@protoyard/player 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +378 -2
- package/dist/app/.vite/manifest.json +9068 -0
- package/dist/app/_headers +4 -0
- package/dist/app/assets/Accept-Cwwa7wcy.js +1 -0
- package/dist/app/assets/ActivityFeed-CrfH1sL-.js +1 -0
- package/dist/app/assets/AgendaView-C5fmV7Io.js +1 -0
- package/dist/app/assets/AgendaView-CQIjS41D.css +1 -0
- package/dist/app/assets/Alert-7hPBdjVV.js +1 -0
- package/dist/app/assets/AlertDialog-BCpSMdNI.js +1 -0
- package/dist/app/assets/AlertDialog-ZQ7m9_88.css +1 -0
- package/dist/app/assets/AlertDialog-vQsVfmLA.js +1 -0
- package/dist/app/assets/AlertSurface-BCxhaD8C.js +1 -0
- package/dist/app/assets/AlertSurface-BDie0P7w.css +1 -0
- package/dist/app/assets/AnalyticsDashboard-DBekx5FK.css +1 -0
- package/dist/app/assets/AnalyticsDashboard-bUhk_eDj.js +1 -0
- package/dist/app/assets/AppNav-OAH4X39o.js +2 -0
- package/dist/app/assets/AppNavDrawer-AvJ-4j1I.js +1 -0
- package/dist/app/assets/AuditHistory-B6b_HwwN.js +1 -0
- package/dist/app/assets/AuthSplitHostLayout-B3Nk7vTh.js +1 -0
- package/dist/app/assets/Avatar-B328P5yQ.css +1 -0
- package/dist/app/assets/Avatar-BfdmP-J8.js +1 -0
- package/dist/app/assets/Avatar-XwYTvfOl.js +1 -0
- package/dist/app/assets/AvatarPicker-bTKfODdb.js +1 -0
- package/dist/app/assets/Axis--q6fWbpd.css +1 -0
- package/dist/app/assets/Axis-Bi34B7RT.js +1 -0
- package/dist/app/assets/Badge-B9mnZVCl.js +1 -0
- package/dist/app/assets/BigStat-Bdj3dEad.css +1 -0
- package/dist/app/assets/BigStat-CzOIrdvi.js +1 -0
- package/dist/app/assets/BlockHost-DeJ8R8qV.js +2 -0
- package/dist/app/assets/BlockIcon-D1BO1xRF.js +1 -0
- package/dist/app/assets/BlockRenderer-CaDsvtSu.js +1 -0
- package/dist/app/assets/BlockRenderer-_VHGXNST.js +1 -0
- package/dist/app/assets/BoardMoveMenu-BsqA9edS.js +1 -0
- package/dist/app/assets/BrowserChrome-B3AGDR4k.js +1 -0
- package/dist/app/assets/BrowserChrome-DpygC_0y.css +1 -0
- package/dist/app/assets/BrowserFrame-Cu9SJGiA.js +1 -0
- package/dist/app/assets/Button-5BamLyf0.css +1 -0
- package/dist/app/assets/Button-CYExAoxT.js +1 -0
- package/dist/app/assets/CalendarMoveMenu-BA3QPzDD.css +1 -0
- package/dist/app/assets/CalendarMoveMenu-DKK_6KCg.js +1 -0
- package/dist/app/assets/Card-DkeUHZOp.css +1 -0
- package/dist/app/assets/Card-DnZFo53x.js +1 -0
- package/dist/app/assets/CardDescription-Bofq-yjt.js +1 -0
- package/dist/app/assets/CardFooter-BrVVXKds.js +1 -0
- package/dist/app/assets/CardImage-zFQFoK0b.js +1 -0
- package/dist/app/assets/CardTitle-CEnDciCv.js +1 -0
- package/dist/app/assets/CellEditor-BcAzWb4V.js +1 -0
- package/dist/app/assets/ChartAnswer-Qqa0K1zD.js +2 -0
- package/dist/app/assets/ChartRoot-BXxWpPAx.css +1 -0
- package/dist/app/assets/ChartRoot-Bpm6tvrV.js +1 -0
- package/dist/app/assets/ChartSlide-BLCvki57.js +1 -0
- package/dist/app/assets/ChartSlide-Dvsn90GG.css +1 -0
- package/dist/app/assets/ChartTable-D-NrUNFX.js +1 -0
- package/dist/app/assets/ChatWorkspaceHost-C1etG-BC.js +1 -0
- package/dist/app/assets/Checkbox-TnscN5Ty.js +1 -0
- package/dist/app/assets/Checkout-DZanjUSm.js +3 -0
- package/dist/app/assets/ChromeIcon-DB-lFa_K.js +1 -0
- package/dist/app/assets/ChromeIcon-a26EbbrF.css +1 -0
- package/dist/app/assets/ChromeTooltip-B8ZTaHUe.js +1 -0
- package/dist/app/assets/ChromeTooltip-gGOiJThu.css +1 -0
- package/dist/app/assets/Close-DfWci-do.js +1 -0
- package/dist/app/assets/ClosingCta-CRmWJTND.css +1 -0
- package/dist/app/assets/ClosingCta-DQFPLYOV.js +1 -0
- package/dist/app/assets/Code-DUo3CdRR.js +1 -0
- package/dist/app/assets/CodeBlockView-B2cVVPd7.js +3 -0
- package/dist/app/assets/CodeBlockView-DT5p81IC.css +1 -0
- package/dist/app/assets/CodeEditorHost-ZMIwHVlp.js +2 -0
- package/dist/app/assets/CodeWithCallout-B3l16LCL.js +1 -0
- package/dist/app/assets/CodeWithCallout-DAwHztXq.css +1 -0
- package/dist/app/assets/ColorControl-EvxrBAz3.js +1 -0
- package/dist/app/assets/ComparisonTable-BjjmHI2w.css +1 -0
- package/dist/app/assets/ComparisonTable-CzLNhoIW.js +1 -0
- package/dist/app/assets/Consent-Bp78LjnB.js +1 -0
- package/dist/app/assets/Content-IdcbAwsA.js +1 -0
- package/dist/app/assets/CustomSlide-CSOTGmAX.js +1 -0
- package/dist/app/assets/CustomSlide-CvgRw7LD.css +1 -0
- package/dist/app/assets/DashboardGridLayout-B8IT4MIo.js +1 -0
- package/dist/app/assets/DashboardGridLayout-CxOqxnD1.css +1 -0
- package/dist/app/assets/DataBlockView-dCrBHGJ3.css +1 -0
- package/dist/app/assets/DataBlockView-lwCNpzKh.js +2 -0
- package/dist/app/assets/DataTable-7ohAfSZV.css +1 -0
- package/dist/app/assets/DataTable-Dn6P_bZq.js +1 -0
- package/dist/app/assets/DateControl-DygPjzrm.js +1 -0
- package/dist/app/assets/DatePicker-IIBEUEbq.js +1 -0
- package/dist/app/assets/DateTimeControl-BGrVT_Un.js +1 -0
- package/dist/app/assets/DeckDebugPanel-DesIkIFZ.js +2 -0
- package/dist/app/assets/DeckPrintPages-BPdBA-Hm.css +1 -0
- package/dist/app/assets/DeckPrintPages-ERnGVhr8.js +2 -0
- package/dist/app/assets/DeckSlidePreview-OUG6ZxaB.css +1 -0
- package/dist/app/assets/DeckSlidePreview-nxiBN1P4.js +1 -0
- package/dist/app/assets/DeckStudioPanel-CCYZHpuj.js +1 -0
- package/dist/app/assets/Description-B1DprNxQ.js +1 -0
- package/dist/app/assets/DesignCanvasHost-D-XVHB8o.js +1 -0
- package/dist/app/assets/DesignSystemStudio-p0HKwaQe.js +1 -0
- package/dist/app/assets/DesktopWindowFrame-CIiNXwms.js +1 -0
- package/dist/app/assets/DiagramFamily-C35zN39m.js +1 -0
- package/dist/app/assets/DiagramFamily-viFFdQze.css +1 -0
- package/dist/app/assets/Dialog-Cd02u7mU.js +1 -0
- package/dist/app/assets/DocEditor-B66K591L.css +1 -0
- package/dist/app/assets/DocEditor-BjHgSt1q.js +14 -0
- package/dist/app/assets/DocNotice-BJFPVdS8.js +1 -0
- package/dist/app/assets/DocsLayout-DtEm_If0.js +1 -0
- package/dist/app/assets/DocsLayout-Z4s5JfAy.css +1 -0
- package/dist/app/assets/DualSidebarLayout-DE_SGjZy.js +1 -0
- package/dist/app/assets/EmbedBlockView-BOp2jlgv.css +1 -0
- package/dist/app/assets/EmbedBlockView-CoL0Srab.js +1 -0
- package/dist/app/assets/EmptyState-CpNqjZhx.js +1 -0
- package/dist/app/assets/EntityDetail-EnPDepKl.js +2 -0
- package/dist/app/assets/EntityForm-P7FaYgT6.js +2 -0
- package/dist/app/assets/EntityForm-qCCvcBQm.css +1 -0
- package/dist/app/assets/EntityList-B6e0epY5.js +2 -0
- package/dist/app/assets/ErrorState-CGHpqSC3.js +1 -0
- package/dist/app/assets/EventButton-BpOkCPkf.js +1 -0
- package/dist/app/assets/EventButton-Cz5I0sd_.css +1 -0
- package/dist/app/assets/ExtensionPopupFrame-CLudOMdO.js +1 -0
- package/dist/app/assets/ExtensionPopupFrame-DC0cyRlp.css +1 -0
- package/dist/app/assets/Field-B2FE05jU.js +1 -0
- package/dist/app/assets/Field-Dx5hJCdk.css +1 -0
- package/dist/app/assets/FileControl-DqMs0DQl.js +1 -0
- package/dist/app/assets/FileInput-Be-fNVHQ.js +1 -0
- package/dist/app/assets/FileUpload-Bc23jR9k.js +1 -0
- package/dist/app/assets/FileUpload-CUDnO_wv.css +1 -0
- package/dist/app/assets/FilesPanel-BLXbgsKc.js +1 -0
- package/dist/app/assets/FirstRunHint-BhAIc5vw.css +1 -0
- package/dist/app/assets/FirstRunHint-CNmp67kD.js +1 -0
- package/dist/app/assets/FormBlock-Bpn45cbF.css +1 -0
- package/dist/app/assets/FormBlock-DQfKUV1g.js +1 -0
- package/dist/app/assets/FreeSlide-BgiNQp85.js +1 -0
- package/dist/app/assets/FreeSlide-ByTVS6jJ.css +1 -0
- package/dist/app/assets/FullscreenOverlay--QRf9wKW.css +1 -0
- package/dist/app/assets/FullscreenOverlay-B9QLcIw8.js +1 -0
- package/dist/app/assets/HostSlot-DFSehYHz.js +1 -0
- package/dist/app/assets/Icon-6iVpsw1O.js +1 -0
- package/dist/app/assets/Icon-B2CYXdo3.js +1 -0
- package/dist/app/assets/Icon-CxE9sx-Y.css +1 -0
- package/dist/app/assets/Icon-CzgWZ-Sj.js +1 -0
- package/dist/app/assets/IconButton-BfgEhgel.js +1 -0
- package/dist/app/assets/Image-BS9v30rK.js +1 -0
- package/dist/app/assets/Image-DdZtECpz.css +1 -0
- package/dist/app/assets/ImageFullBleed-C--JkckF.js +1 -0
- package/dist/app/assets/ImageFullBleed-D8fs9Sry.css +1 -0
- package/dist/app/assets/Inbox-DytVaI45.js +1 -0
- package/dist/app/assets/Input-B5IDQk3l.css +1 -0
- package/dist/app/assets/Input-D3Bgj1Zz.js +1 -0
- package/dist/app/assets/Input-DxOKBx2W.js +1 -0
- package/dist/app/assets/InteractiveBlockView-C4uBph_o.js +2 -0
- package/dist/app/assets/InteractiveBlockView-KuPs8kTL.css +1 -0
- package/dist/app/assets/InteractivePlot-DwIeuF55.js +2 -0
- package/dist/app/assets/InteractiveTable-B1YjlEBd.js +1 -0
- package/dist/app/assets/Kbd-DkNq1Ju_.js +1 -0
- package/dist/app/assets/KeyboardHelp-C9YZKYdn.js +1 -0
- package/dist/app/assets/KeyboardHelp-Cl-Rod-K.css +1 -0
- package/dist/app/assets/KpiTile-BwrBMJXp.js +1 -0
- package/dist/app/assets/LaserPointer-Bv4v3HkH.css +1 -0
- package/dist/app/assets/LaserPointer-DpjrmFeF.js +1 -0
- package/dist/app/assets/LayoutChrome-5HE-aeqe.js +1 -0
- package/dist/app/assets/LayoutImage-B3_ql3ij.css +1 -0
- package/dist/app/assets/LayoutImage-Ce5FsjXF.js +1 -0
- package/dist/app/assets/LayoutVideo-B8YtGfsu.js +2 -0
- package/dist/app/assets/LayoutVideo-CXAuL1g5.css +1 -0
- package/dist/app/assets/Legend-DBu9BLVq.js +1 -0
- package/dist/app/assets/Link-DHBvi9qI.js +1 -0
- package/dist/app/assets/LoadingState-Bn2cSCGG.js +1 -0
- package/dist/app/assets/LucideIcon-BLXM0Ftv.js +1 -0
- package/dist/app/assets/MagicLink-CyzjLDJc.js +1 -0
- package/dist/app/assets/MapBlockView-B3hct9rD.js +1 -0
- package/dist/app/assets/MapBlockView-CtKG3O98.css +1 -0
- package/dist/app/assets/MarketingLayout-CRBsTKd2.js +1 -0
- package/dist/app/assets/MarketingLayout-Cs6sUquJ.css +1 -0
- package/dist/app/assets/MasterDetailLayout-uo7y2cyF.js +1 -0
- package/dist/app/assets/MediaBlockView-BGvh4k2D.css +1 -0
- package/dist/app/assets/MediaBlockView-Cp33fCST.js +1 -0
- package/dist/app/assets/MediaCentered-BVJMLylg.js +1 -0
- package/dist/app/assets/MediaCentered-D2VYTdBx.css +1 -0
- package/dist/app/assets/MediaSide-B6d9V1JC.js +1 -0
- package/dist/app/assets/MediaSide-DhPjwOoY.css +1 -0
- package/dist/app/assets/MenuSeparator-BEBXTaSh.js +1 -0
- package/dist/app/assets/MenuSeparator-LrO79zGl.css +1 -0
- package/dist/app/assets/MessageText-j9J6kCwr.js +1 -0
- package/dist/app/assets/Mfa-ChJVCc4E.js +1 -0
- package/dist/app/assets/MobileDrawerLayout-BgWxoM1H.js +1 -0
- package/dist/app/assets/MobileFrame-B7JUIeWg.js +1 -0
- package/dist/app/assets/MobileFrame-Cv-rn28k.css +1 -0
- package/dist/app/assets/MobileTabsLayout-alL9j-_-.js +1 -0
- package/dist/app/assets/MonthView-BTvPwYX7.css +1 -0
- package/dist/app/assets/MonthView-BcEfT7yB.js +1 -0
- package/dist/app/assets/MoreMenu-BFOepBME.js +1 -0
- package/dist/app/assets/MoreMenu-DM-vkNTW.css +1 -0
- package/dist/app/assets/Notice-Dt6krYhT.js +1 -0
- package/dist/app/assets/Onboarding-CvS3xYao.js +1 -0
- package/dist/app/assets/OverlayOutlet-boEdrRbl.js +1 -0
- package/dist/app/assets/PhoneCode-w7cif7hk.js +1 -0
- package/dist/app/assets/PhoneFrame-CG6KHfRD.js +1 -0
- package/dist/app/assets/PhoneSignIn-CrRIOXK6.js +1 -0
- package/dist/app/assets/Plans-eSoge3Og.js +1 -0
- package/dist/app/assets/Popover-BNon6UGI.css +1 -0
- package/dist/app/assets/Popover-DaHAXRCb.js +1 -0
- package/dist/app/assets/Portal-B18y85-k.js +1 -0
- package/dist/app/assets/PresenterStatus-Bg_qUxt9.js +1 -0
- package/dist/app/assets/PresenterStatus-uRRLug-B.css +1 -0
- package/dist/app/assets/PresenterUpNext-CyM0w8Q3.js +1 -0
- package/dist/app/assets/PresenterUpNext-DBic3Xad.css +1 -0
- package/dist/app/assets/ProcessSteps-B6xPhUMP.css +1 -0
- package/dist/app/assets/ProcessSteps-DH5ezOhp.js +1 -0
- package/dist/app/assets/Progress-DW5KkCUF.js +1 -0
- package/dist/app/assets/ProgressControl-CRiDrNrR.js +1 -0
- package/dist/app/assets/QueryState-CBwt9G55.js +1 -0
- package/dist/app/assets/Quote-DcKGkLzK.css +1 -0
- package/dist/app/assets/Quote-jDI87v18.js +1 -0
- package/dist/app/assets/RadioControl-BI6X31TE.js +1 -0
- package/dist/app/assets/RadioGroup-w1hFC0p4.js +1 -0
- package/dist/app/assets/RailLayout-k-JcVNK2.js +1 -0
- package/dist/app/assets/RecordAvatar-BcXBXdMe.js +1 -0
- package/dist/app/assets/RelatedPanel-DzEJYVZz.js +1 -0
- package/dist/app/assets/ResetPassword-CXsGD2Bp.js +1 -0
- package/dist/app/assets/ReviewPanel-BrVXs-6q.js +1 -0
- package/dist/app/assets/ReviewPanel-enBwfHGS.css +1 -0
- package/dist/app/assets/ReviewSession-BK_WyaPk.css +1 -0
- package/dist/app/assets/ReviewSession-D4MUDdgp.js +13 -0
- package/dist/app/assets/RichText-By77-MWe.css +1 -0
- package/dist/app/assets/RichText-DOb1t7J3.js +13 -0
- package/dist/app/assets/SchemaForm-C290YN2K.css +1 -0
- package/dist/app/assets/SchemaForm-jeaBTDUH.js +2 -0
- package/dist/app/assets/SectionDivider-CErBkM1q.css +1 -0
- package/dist/app/assets/SectionDivider-CJmHce4d.js +1 -0
- package/dist/app/assets/Segmented-BFxRPNuU.js +1 -0
- package/dist/app/assets/Select-BUwDUC6S.js +1 -0
- package/dist/app/assets/SelectValue-Cn6C_Jw7.js +1 -0
- package/dist/app/assets/SelectValue-Nfj3YFHu.css +1 -0
- package/dist/app/assets/Settings-DUuWcvB7.js +1 -0
- package/dist/app/assets/SheetContent-DAy2jGR3.js +1 -0
- package/dist/app/assets/SidePanelFrame-BjN1rHWI.js +2 -0
- package/dist/app/assets/Sidebar-BQ4iR0Hi.js +1 -0
- package/dist/app/assets/Sidebar-iqYbDpJV.css +1 -0
- package/dist/app/assets/SidebarLayout-CPacSOAm.js +1 -0
- package/dist/app/assets/SignIn-BUGkXMb7.js +1 -0
- package/dist/app/assets/SignUp-CG-qmCLV.js +1 -0
- package/dist/app/assets/Skeleton-C81ERDQ2.js +1 -0
- package/dist/app/assets/SlashMenu-B6emsRi9.js +1 -0
- package/dist/app/assets/SlideJumpList-1Syr81sy.css +1 -0
- package/dist/app/assets/SlideJumpList-DZS0ibKU.js +1 -0
- package/dist/app/assets/SlidePlaceholder-CrrSy1kr.js +1 -0
- package/dist/app/assets/Slider-BrVPdB-w.js +1 -0
- package/dist/app/assets/Slider-D5WUpT4E.css +1 -0
- package/dist/app/assets/SliderControl-BXHwzc2b.js +1 -0
- package/dist/app/assets/SourcePicker-DW4OCnw2.js +2 -0
- package/dist/app/assets/Spinner-BoiMf0zZ.js +1 -0
- package/dist/app/assets/Spinner-RvxP_-WC.js +1 -0
- package/dist/app/assets/SsoButtons-BIXfJxaj.js +1 -0
- package/dist/app/assets/StaleWorldNotice-B7m6HyVU.js +1 -0
- package/dist/app/assets/Stat-CcTIg36H.js +1 -0
- package/dist/app/assets/StatusBar-DGtjajwn.js +1 -0
- package/dist/app/assets/Stepper-D_kAIMyP.js +1 -0
- package/dist/app/assets/Stepper-aBGVFtgT.css +1 -0
- package/dist/app/assets/StructureFamily-D21hf1K1.css +1 -0
- package/dist/app/assets/StructureFamily-FUvkWUum.js +2 -0
- package/dist/app/assets/Switch-CUXRVOl-.js +1 -0
- package/dist/app/assets/TableCaption-D1fSnEjI.js +1 -0
- package/dist/app/assets/TableEmpty-DUTWeqQF.js +1 -0
- package/dist/app/assets/TableRow-Cz2pDHwf.js +1 -0
- package/dist/app/assets/TableRow-IBOM0IqQ.css +1 -0
- package/dist/app/assets/TableToggle-CtxLIjOc.js +1 -0
- package/dist/app/assets/TableView-Cx6arz4U.js +1 -0
- package/dist/app/assets/TabletFrame-5qNzgpfv.js +1 -0
- package/dist/app/assets/Tabs-B8FXzu_E.css +1 -0
- package/dist/app/assets/Tabs-BPImSDg6.js +1 -0
- package/dist/app/assets/Tabs-D0A0WVnx.js +1 -0
- package/dist/app/assets/Tag-BdgQ_KKx.js +1 -0
- package/dist/app/assets/TagsControl-Dw7l3f4k.js +1 -0
- package/dist/app/assets/TeamAvatars-CVTW9kfV.css +1 -0
- package/dist/app/assets/TeamAvatars-DsDUSJQS.js +1 -0
- package/dist/app/assets/TextBlockView-1XjLPcMK.css +1 -0
- package/dist/app/assets/TextBlockView-C1uK7o3U.js +1 -0
- package/dist/app/assets/Textarea-DMvNCflX.js +1 -0
- package/dist/app/assets/ThemeStudioSection-DZGAenHY.js +2 -0
- package/dist/app/assets/ThreeColumnCards-B0lz1TmH.css +1 -0
- package/dist/app/assets/ThreeColumnCards-BifySiFG.js +1 -0
- package/dist/app/assets/TimeControl-l7MoDReJ.js +1 -0
- package/dist/app/assets/TimeField-IgTM9sZp.js +1 -0
- package/dist/app/assets/TimeGridView-B0jd7myg.css +1 -0
- package/dist/app/assets/TimeGridView-LbTfS9J4.js +1 -0
- package/dist/app/assets/Timeline-BfHfJrVr.js +1 -0
- package/dist/app/assets/Timeline-CNuUuaLH.css +1 -0
- package/dist/app/assets/Title-DddwkS7C.css +1 -0
- package/dist/app/assets/Title-WanbpRaG.js +1 -0
- package/dist/app/assets/TitleHero-BPP1CygL.js +1 -0
- package/dist/app/assets/TitleHero-BTJ96TzB.css +1 -0
- package/dist/app/assets/Toggle-B6jXR4VA.js +1 -0
- package/dist/app/assets/Toggle-DXp7a4gR.css +1 -0
- package/dist/app/assets/Tooltip-C7L6teXl.css +1 -0
- package/dist/app/assets/Tooltip-Coeua376.js +1 -0
- package/dist/app/assets/TopNavLayout-DO0PNmJi.js +1 -0
- package/dist/app/assets/Trigger-CYRsN0K_.js +2 -0
- package/dist/app/assets/Trigger-cdFIqc65.js +1 -0
- package/dist/app/assets/TwoColumnSplit-DddU-Tbh.css +1 -0
- package/dist/app/assets/TwoColumnSplit-bZ3w2X49.js +1 -0
- package/dist/app/assets/VerifyEmail-C7RJZGT5.js +1 -0
- package/dist/app/assets/VideoCaptions-DOnrXhl_.css +1 -0
- package/dist/app/assets/VideoCaptions-DYwOwAwo.js +10 -0
- package/dist/app/assets/Viewport-DXR4OKQY.css +1 -0
- package/dist/app/assets/Viewport-wpvkz4nh.js +1 -0
- package/dist/app/assets/WidgetHostFrame-BNU6xNfL.js +4 -0
- package/dist/app/assets/WizardHostLayout-DUZLfxS5.js +1 -0
- package/dist/app/assets/adapter-BDhPWFRd.js +1 -0
- package/dist/app/assets/aggregate-DqdDm8iS.js +1 -0
- package/dist/app/assets/amber-BSACaYsc.js +1 -0
- package/dist/app/assets/analytics-CB5pkvuX.js +2 -0
- package/dist/app/assets/analytics-myLc4sqM.js +3 -0
- package/dist/app/assets/anchor-DWe2XjD2.js +1 -0
- package/dist/app/assets/anchors-DxCA6Vjx.js +1 -0
- package/dist/app/assets/animate-BeveF4EZ.js +1 -0
- package/dist/app/assets/announcer-C9Q-PqE3.js +1 -0
- package/dist/app/assets/apex-rose-7rvPFrU-.js +1 -0
- package/dist/app/assets/api-stnFBkFG.js +1 -0
- package/dist/app/assets/app-B7ehy0Iy.js +2 -0
- package/dist/app/assets/app-BDdF2hG8.css +1 -0
- package/dist/app/assets/app-BIoUeLrs.js +2 -0
- package/dist/app/assets/app-Ba1M_fVZ.css +1 -0
- package/dist/app/assets/app-model-xaX4i0zU.js +1 -0
- package/dist/app/assets/apply-B8URYyvp.js +1 -0
- package/dist/app/assets/apply-CT-2ixg7.js +1 -0
- package/dist/app/assets/apply-CvJWBke_.js +1 -0
- package/dist/app/assets/aqua-foam-DNjmnsob.js +1 -0
- package/dist/app/assets/arc-D3OP3Fwv.js +1 -0
- package/dist/app/assets/arctic-console-A6v_iB0T.js +1 -0
- package/dist/app/assets/arrow-down-CLlVuBdb.js +1 -0
- package/dist/app/assets/arrow-left-ESVlQdxY.js +1 -0
- package/dist/app/assets/arrow-right-CGTmO3zN.js +1 -0
- package/dist/app/assets/artifact-shell-BMXo6w_E.js +1 -0
- package/dist/app/assets/ash-plain-DDC0aM7H.js +1 -0
- package/dist/app/assets/atlas-indigo-D6lTgj_p.js +1 -0
- package/dist/app/assets/attributes-ZVEMdrPN.js +1 -0
- package/dist/app/assets/auth-DbsvQ_nN.js +1 -0
- package/dist/app/assets/auth-settings-CL6uPD51.css +1 -0
- package/dist/app/assets/avatar-DG5usQub.js +1 -0
- package/dist/app/assets/avatars-CA9KfGtD.js +1 -0
- package/dist/app/assets/azure-grid-DEvKhXkM.js +1 -0
- package/dist/app/assets/backdrop-Be1Do1pV.js +1 -0
- package/dist/app/assets/bark-trail-FHy4_3hi.js +1 -0
- package/dist/app/assets/bash-KZnOBl2m.js +2 -0
- package/dist/app/assets/beacon-red-DCnMPSD6.js +1 -0
- package/dist/app/assets/bindings.svelte-CtFtf-Gl.js +1 -0
- package/dist/app/assets/blaze-amber-DkpJEBMV.js +1 -0
- package/dist/app/assets/blocks-DTgQq_iR.js +1 -0
- package/dist/app/assets/blush-petal-C1awwnKU.js +1 -0
- package/dist/app/assets/board-B12CFPyX.css +1 -0
- package/dist/app/assets/board-CN3K6nbq.js +5 -0
- package/dist/app/assets/boot-DN9ZFpxa.js +2 -0
- package/dist/app/assets/boot-kind-DPTe2SOs.js +2 -0
- package/dist/app/assets/brand-CTlkhLj0.js +1 -0
- package/dist/app/assets/brick-lane-DXB3yYgT.js +1 -0
- package/dist/app/assets/build-zoHPE5DM.js +1 -0
- package/dist/app/assets/builders-BPwZ8kKF.js +1 -0
- package/dist/app/assets/builtin-DBNCQiwB.js +1 -0
- package/dist/app/assets/burgundy-page-DkYjJU-j.js +1 -0
- package/dist/app/assets/butter-cream-ZmzoxiJI.js +1 -0
- package/dist/app/assets/byte-orange-D4tbgUmz.js +1 -0
- package/dist/app/assets/calendar-BjK1rPE1.css +1 -0
- package/dist/app/assets/calendar-D2s-49uQ.js +1 -0
- package/dist/app/assets/calendar-DX_dfOPf.js +2 -0
- package/dist/app/assets/calendar-DpJ7wmld.js +1 -0
- package/dist/app/assets/calendar-fx3DxxVm.css +1 -0
- package/dist/app/assets/canvas-BIrIHh0m.css +1 -0
- package/dist/app/assets/canvas-C15Z6wU9.js +1 -0
- package/dist/app/assets/canvas-Cc9cbxpy.js +1 -0
- package/dist/app/assets/canvas-DwntzNQA.js +1 -0
- package/dist/app/assets/cartesian-BGtGfDKG.css +1 -0
- package/dist/app/assets/cartesian-BzcRSvEP.js +2 -0
- package/dist/app/assets/cartesian-CjAiRKmF.js +1 -0
- package/dist/app/assets/cartesian-IyDqy2kK.css +1 -0
- package/dist/app/assets/catalog-CwrB5cVQ.js +3 -0
- package/dist/app/assets/cedar-cabin-CYOby6Sg.js +1 -0
- package/dist/app/assets/chalk-line-bMWOWnTJ.js +1 -0
- package/dist/app/assets/charcoal-type-CesmyxgM.js +1 -0
- package/dist/app/assets/chart-BbbjO4C1.js +1 -0
- package/dist/app/assets/charts-UaISBi-6.js +1 -0
- package/dist/app/assets/charts-mzplRo0A.js +1 -0
- package/dist/app/assets/child-BNsqGBSq.js +1 -0
- package/dist/app/assets/chroma-teal-iJ_CVhaZ.js +1 -0
- package/dist/app/assets/cinnamon-bar-D8fdLIq9.js +1 -0
- package/dist/app/assets/cipher-slate-DHAzG4rl.js +1 -0
- package/dist/app/assets/clay-river-CnAguPf1.js +1 -0
- package/dist/app/assets/clay-workshop-DXkoigzn.js +1 -0
- package/dist/app/assets/client-Lkh5rkjG.js +1 -0
- package/dist/app/assets/cloud-ledger-BlJnC3I0.js +1 -0
- package/dist/app/assets/cn-BxvfSbXx.js +1 -0
- package/dist/app/assets/cobalt-lab-DE2y1JGN.js +1 -0
- package/dist/app/assets/code-3UjlUtTj.js +1 -0
- package/dist/app/assets/code-CtjvTSbP.js +1 -0
- package/dist/app/assets/code-family-CQgEu8fF.js +2 -0
- package/dist/app/assets/colors-Cx4WWjfl.js +1 -0
- package/dist/app/assets/columns-np8Xxa5b.js +1 -0
- package/dist/app/assets/compact-B2lGBpNM.js +1 -0
- package/dist/app/assets/compact-C1b-Izb7.css +1 -0
- package/dist/app/assets/compact-Dv9I-p5L.js +1 -0
- package/dist/app/assets/compile-core-CfcBAAWu.js +1 -0
- package/dist/app/assets/console-violet-CK6xd-Mw.js +1 -0
- package/dist/app/assets/content-BzmfjOu-.css +2 -0
- package/dist/app/assets/context-BLdfKUNL.js +1 -0
- package/dist/app/assets/context-BtWxNPQO.js +1 -0
- package/dist/app/assets/context-CLhMaQ-R.js +1 -0
- package/dist/app/assets/context-CpU1iXoW.js +1 -0
- package/dist/app/assets/context-CsSYm_2z.js +1 -0
- package/dist/app/assets/context-DJ4ajOGM.js +1 -0
- package/dist/app/assets/context-mgza7i31.js +1 -0
- package/dist/app/assets/contract-DDgQdfcT.js +1 -0
- package/dist/app/assets/contrast-s6qwb-S-.js +1 -0
- package/dist/app/assets/control-props-OVgLyhvo.js +1 -0
- package/dist/app/assets/controls-BqZMVgrJ.js +1 -0
- package/dist/app/assets/conversational-B2Tdb0qH.js +2 -0
- package/dist/app/assets/copper-byline-DN833JFD.js +1 -0
- package/dist/app/assets/copper-kiln-DF7EcgeK.js +1 -0
- package/dist/app/assets/copy-CdPoo-W-.js +1 -0
- package/dist/app/assets/copy-text-XLkoKZ1X.js +1 -0
- package/dist/app/assets/coral-market-DR9yOAmR.js +1 -0
- package/dist/app/assets/core-Bmmm_BwB.js +4 -0
- package/dist/app/assets/core-DNACw26e.js +5 -0
- package/dist/app/assets/core-X3vERPZ1.js +1 -0
- package/dist/app/assets/crimson-spread-CQAjt3SH.js +1 -0
- package/dist/app/assets/crt-cyan-7TsQf6_Q.js +1 -0
- package/dist/app/assets/css-0ZUm4Gxu.js +1 -0
- package/dist/app/assets/csv-DSEjLlp3.js +4 -0
- package/dist/app/assets/csv-guard-B4eq8ytq.js +1 -0
- package/dist/app/assets/cx-BNZ52w-j.js +1 -0
- package/dist/app/assets/cyan-dock-BVeKfgp6.js +1 -0
- package/dist/app/assets/dashboard-9uzNepgS.js +2 -0
- package/dist/app/assets/data-D6cqNiF_.js +1 -0
- package/dist/app/assets/data-DVx1JsC5.js +2 -0
- package/dist/app/assets/date-picker-N6_jTsxm.js +1 -0
- package/dist/app/assets/date-range-CzmaaHwU.js +1 -0
- package/dist/app/assets/dates-yNpz1s0F.js +1 -0
- package/dist/app/assets/debug-rose-BS0PYjb3.js +1 -0
- package/dist/app/assets/deck-B1BRfPKS.js +1 -0
- package/dist/app/assets/deck-BzEIlGEY.js +1 -0
- package/dist/app/assets/deck-CzcaAjST.css +2 -0
- package/dist/app/assets/deck-DGOD2pK9.js +1 -0
- package/dist/app/assets/deck-interactive-DvQy5sye.js +1 -0
- package/dist/app/assets/definitions-BWyE3Fv_.js +1 -0
- package/dist/app/assets/demo.blueprint-C8vkzYKr.js +1 -0
- package/dist/app/assets/denim-suite-vNiDjU_o.js +1 -0
- package/dist/app/assets/depth-B-HdV9yB.js +1 -0
- package/dist/app/assets/depth-B8LlXWcm.css +1 -0
- package/dist/app/assets/design-CU39NsEw.js +2 -0
- package/dist/app/assets/design-CjV7E-Q-.js +1 -0
- package/dist/app/assets/design-Di0kxX1v.js +1 -0
- package/dist/app/assets/design-defaults-DW6_LbVN.js +1 -0
- package/dist/app/assets/design-system-DmXNcxZq.js +2 -0
- package/dist/app/assets/design-systems-DzkHB4mN.js +2 -0
- package/dist/app/assets/devices-B2GmUWdq.js +1 -0
- package/dist/app/assets/dexie-DCNEq46v.js +3 -0
- package/dist/app/assets/diagram-BvQUv1fk.js +2 -0
- package/dist/app/assets/diagram-Cu4IKopi.js +1 -0
- package/dist/app/assets/dir-locale-Bp4_WmZL.js +1 -0
- package/dist/app/assets/disclose-version-xihTtKlq.js +1 -0
- package/dist/app/assets/dist-4Z-F-C1l.js +16 -0
- package/dist/app/assets/dist-yVFZAMG4.js +16 -0
- package/dist/app/assets/doc-3blIf2YS.js +1 -0
- package/dist/app/assets/doc-COyhFBH8.js +1 -0
- package/dist/app/assets/doc-CSNpzE1l.css +1 -0
- package/dist/app/assets/doc-dtPmqGIc.js +2 -0
- package/dist/app/assets/doc-edits-BwF6JDix.js +1 -0
- package/dist/app/assets/doc-export-DPSAXN9Y.js +2 -0
- package/dist/app/assets/docx-DI5zUf1s.js +3 -0
- package/dist/app/assets/dove-note-lvW-sJWI.js +1 -0
- package/dist/app/assets/durations-DOq5QZxl.js +1 -0
- package/dist/app/assets/electric-lime-D3hc7xI6.js +1 -0
- package/dist/app/assets/ellipsis-Bb_OrSmF.js +1 -0
- package/dist/app/assets/embed-CX7-gJPL.js +1 -0
- package/dist/app/assets/embed-Cw6qD64z.js +2 -0
- package/dist/app/assets/embed-DKltvQQa.js +1 -0
- package/dist/app/assets/embed-x8Z8BOS3.js +1 -0
- package/dist/app/assets/ember-lounge-CLD3vGmo.js +1 -0
- package/dist/app/assets/emerald-DTYTxEu6.js +1 -0
- package/dist/app/assets/emerald-essay-DHL5z3v_.js +1 -0
- package/dist/app/assets/empty-BXesJ4-L.css +1 -0
- package/dist/app/assets/engine-DWsPKszG.js +1 -0
- package/dist/app/assets/env-guq4m6_s.js +1 -0
- package/dist/app/assets/envelope-D-omwZF5.js +2 -0
- package/dist/app/assets/environment-qEbacsJ-.js +1 -0
- package/dist/app/assets/esm-qyRVQ_H0.js +1 -0
- package/dist/app/assets/evaluate-Ctzw_e6W.js +1 -0
- package/dist/app/assets/events-BZIKUW6N.js +1 -0
- package/dist/app/assets/extent-Dsibp8xv.js +1 -0
- package/dist/app/assets/extras-CswrO-8Z.js +2 -0
- package/dist/app/assets/extras-TgPYo1oJ.css +1 -0
- package/dist/app/assets/family-BDAK6NX3.js +2 -0
- package/dist/app/assets/family-B_5VMS2O.js +2 -0
- package/dist/app/assets/family-B_PGS6qf.js +2 -0
- package/dist/app/assets/family-BwYS13Ee.js +2 -0
- package/dist/app/assets/family-CrTyJnox.js +2 -0
- package/dist/app/assets/family-XnCyNnED.js +2 -0
- package/dist/app/assets/fern-glade-BoQQBVwK.js +1 -0
- package/dist/app/assets/file-text-Raziu4cI.js +1 -0
- package/dist/app/assets/filename-ivwFod08.js +1 -0
- package/dist/app/assets/filter-BFcSp9fb.js +1 -0
- package/dist/app/assets/filters-BGxKX8Ca.js +1 -0
- package/dist/app/assets/filters-q99MILjr.css +1 -0
- package/dist/app/assets/first-run-BqQTFz0h.js +1 -0
- package/dist/app/assets/fit-BblfZ2JV.js +1 -0
- package/dist/app/assets/fit-width-4RmWpKte.js +1 -0
- package/dist/app/assets/flare-yellow-BKfO8CAR.js +1 -0
- package/dist/app/assets/flow-BEUk60qf.js +1 -0
- package/dist/app/assets/flow-fOO3pyYh.css +1 -0
- package/dist/app/assets/fog-studio-CnpmaWuv.js +1 -0
- package/dist/app/assets/fonts-CyzGCo-s.js +1 -0
- package/dist/app/assets/fonts-D1WlLkio.js +1 -0
- package/dist/app/assets/forest-floor-Dnxqb6g1.js +1 -0
- package/dist/app/assets/forest-op-ed-DqCOXDYz.js +1 -0
- package/dist/app/assets/forge-lime-OFrUbI9j.js +1 -0
- package/dist/app/assets/form-bridge-BFV-h8qv.js +1 -0
- package/dist/app/assets/form-services-erliHCBc.js +2 -0
- package/dist/app/assets/format-CqE6be1W.js +1 -0
- package/dist/app/assets/format-Dx3CqdSJ.js +1 -0
- package/dist/app/assets/free-prefetch-DhqfcoZr.js +1 -0
- package/dist/app/assets/from-texuli-F7aPl70I.js +1 -0
- package/dist/app/assets/frost-panel-DpMOEQuj.js +1 -0
- package/dist/app/assets/generate-world-core-f4yY0k-I.js +2 -0
- package/dist/app/assets/generate.worker-Co6WrZj8.js +1 -0
- package/dist/app/assets/generator-B1rj3uJL.js +1 -0
- package/dist/app/assets/generator-BvCWWAUx.js +1 -0
- package/dist/app/assets/generator-CJFX3jms.js +114 -0
- package/dist/app/assets/generator-version-CdlsXqvR.js +1 -0
- package/dist/app/assets/geo-B1z_l1iU.js +1 -0
- package/dist/app/assets/geo-DM9iJR25.css +1 -0
- package/dist/app/assets/gesture-RUgWcPhG.js +1 -0
- package/dist/app/assets/glacier-bay-ItPQs3g9.js +1 -0
- package/dist/app/assets/gold-serif-9JJwgGmi.js +1 -0
- package/dist/app/assets/graphite-desk-Dav8DSip.js +1 -0
- package/dist/app/assets/grid-BO23S3Mu.css +1 -0
- package/dist/app/assets/grid-Cdz9gsoH.js +1 -0
- package/dist/app/assets/grid-editing-DFAO-r3z.css +1 -0
- package/dist/app/assets/handlers-ByGe01Fz.js +1 -0
- package/dist/app/assets/handlers-CkNHDF5y.js +1 -0
- package/dist/app/assets/hash-DwRSCZN9.js +1 -0
- package/dist/app/assets/hash-router.svelte-LQpr7yof.js +1 -0
- package/dist/app/assets/hc-amber-black-B3HHCJXu.js +1 -0
- package/dist/app/assets/hc-black-yellow-DQVjFciE.js +1 -0
- package/dist/app/assets/hc-blue-white-CXE4sdPO.js +1 -0
- package/dist/app/assets/hc-cyan-black-Bvpic4Gm.js +1 -0
- package/dist/app/assets/hc-green-black-CaylabS3.js +1 -0
- package/dist/app/assets/hc-ink-paper-DaIkq3N9.js +1 -0
- package/dist/app/assets/hc-lime-black-CEEaqO8C.js +1 -0
- package/dist/app/assets/hc-navy-yellow-c3FWHdSa.js +1 -0
- package/dist/app/assets/hc-orange-black-CjFhZ4ah.js +1 -0
- package/dist/app/assets/hc-paper-ink-DfJu-vfc.js +1 -0
- package/dist/app/assets/hc-rose-black-CS2IUqTa.js +1 -0
- package/dist/app/assets/hc-teal-black-kEmvWQ-B.js +1 -0
- package/dist/app/assets/hc-violet-black-BxxFmQYv.js +1 -0
- package/dist/app/assets/hc-white-blue-D8eiAdVW.js +1 -0
- package/dist/app/assets/heap-pink-C-tTNlUA.js +1 -0
- package/dist/app/assets/helpers-Dz5ykqCN.js +1 -0
- package/dist/app/assets/histogram-BT6t9qji.css +1 -0
- package/dist/app/assets/histogram-Dm6hbvFl.js +1 -0
- package/dist/app/assets/honey-desk-Biy8CO_z.js +1 -0
- package/dist/app/assets/horizon-cyan-CAPaDPAF.js +1 -0
- package/dist/app/assets/host-BCsVoLLF.js +1 -0
- package/dist/app/assets/host-BGSJ7oX2.js +1 -0
- package/dist/app/assets/host-CTMGjDes.js +1 -0
- package/dist/app/assets/host-VGPZpGL6.css +1 -0
- package/dist/app/assets/hot-fuchsia-9nsrLLfH.js +1 -0
- package/dist/app/assets/html-CMNXYbB0.js +1 -0
- package/dist/app/assets/http-DMBu8uO0.js +1 -0
- package/dist/app/assets/i18n-C1FxoBbJ.js +1 -0
- package/dist/app/assets/ice-signal-BYNVRzxA.js +1 -0
- package/dist/app/assets/identity-BALMSfWg.js +1 -0
- package/dist/app/assets/ids-BFXF9Z_4.js +1 -0
- package/dist/app/assets/import-D4irzKhk.js +1 -0
- package/dist/app/assets/inbox-DHWQ6nEV.js +1 -0
- package/dist/app/assets/inbox-DqLTuwwq.js +1 -0
- package/dist/app/assets/index-BzeBadoN.css +2 -0
- package/dist/app/assets/index-Cq6TefQR.js +2 -0
- package/dist/app/assets/index-client-BOGsOwg5.js +2 -0
- package/dist/app/assets/index-client-x7oDvRVJ.js +1 -0
- package/dist/app/assets/indigo-harbor-CukFAP4N.js +1 -0
- package/dist/app/assets/indigo-review-CrjkEt5d.js +1 -0
- package/dist/app/assets/inert-CX0JFWuY.js +1 -0
- package/dist/app/assets/ink-folio-5IYpY7BF.js +1 -0
- package/dist/app/assets/interaction-D9RsjR3d.css +1 -0
- package/dist/app/assets/interactive-B7CrCosy.css +1 -0
- package/dist/app/assets/interactive-DQrgNUih.js +7 -0
- package/dist/app/assets/interactive-UHxR0Aj1.js +1 -0
- package/dist/app/assets/invitations-u_Bd2_8r.js +1 -0
- package/dist/app/assets/iron-wire-BHsuMYq8.js +1 -0
- package/dist/app/assets/ivory-press-Dj-2SPbS.js +1 -0
- package/dist/app/assets/javascript-CCI0EWvj.js +1 -0
- package/dist/app/assets/json-bL97VrYM.js +1 -0
- package/dist/app/assets/kernel-teal-BOkCWD-A.js +1 -0
- package/dist/app/assets/keys-P79j73dU.js +1 -0
- package/dist/app/assets/kind-boot-CvPxMUUS.js +2 -0
- package/dist/app/assets/kinds-DRBJyTc7.js +1 -0
- package/dist/app/assets/laser-violet-CVybDQx3.js +1 -0
- package/dist/app/assets/lavender-room-nrpj1UbY.js +1 -0
- package/dist/app/assets/layout-D9RK8lq3.js +1 -0
- package/dist/app/assets/lazy-B6nhhbj_.js +1 -0
- package/dist/app/assets/lazy-list-motion-8Yn4B5SH.js +2 -0
- package/dist/app/assets/leaf-canopy-DyJbL1z6.js +1 -0
- package/dist/app/assets/ledger-teal-Ds1nPGV2.js +1 -0
- package/dist/app/assets/legacy-BUWNFmiS.js +1 -0
- package/dist/app/assets/lemon-air-CMViSloH.js +1 -0
- package/dist/app/assets/library-X49Tko4M.js +1 -0
- package/dist/app/assets/library-expand-BpgXbQrz.js +2 -0
- package/dist/app/assets/lilac-mist-B-pwve9X.js +1 -0
- package/dist/app/assets/limits-BgH0UjBK.js +1 -0
- package/dist/app/assets/line-spec-CohEnjEp.js +1 -0
- package/dist/app/assets/links-DmmwIr6L.js +1 -0
- package/dist/app/assets/live-reload-CO9BzYNv.js +1 -0
- package/dist/app/assets/loaders-Bcj89mSn.js +1 -0
- package/dist/app/assets/loam-field-C1q4MmF_.js +1 -0
- package/dist/app/assets/local-B65mbeuY.js +1 -0
- package/dist/app/assets/lock-Cj8g2CPo.js +1 -0
- package/dist/app/assets/mail-B4gN9oWI.js +1 -0
- package/dist/app/assets/manifest-0Q1tYlhS.js +1 -0
- package/dist/app/assets/map-3ILfjCWd.js +2 -0
- package/dist/app/assets/map-BB2XSw-y.js +2 -0
- package/dist/app/assets/map-CWyqmMKH.js +1 -0
- package/dist/app/assets/map-D0MMMgbF.js +1 -0
- package/dist/app/assets/map-DUYCiE7G.css +1 -0
- package/dist/app/assets/marine-ops-BahDPKWB.js +1 -0
- package/dist/app/assets/markdown-D4NHC39u.js +37 -0
- package/dist/app/assets/markdown-DPZV6n9H.js +9 -0
- package/dist/app/assets/markup-DPhOtZg7.js +1 -0
- package/dist/app/assets/maroon-hall-wz6mmW1X.js +1 -0
- package/dist/app/assets/matrix-Czbbtrbd.css +1 -0
- package/dist/app/assets/matrix-DDOYNYj9.js +3 -0
- package/dist/app/assets/matrix-green-C4R1I12F.js +1 -0
- package/dist/app/assets/media-8dNZKNsx.js +1 -0
- package/dist/app/assets/media-ChFaDYF5.js +1 -0
- package/dist/app/assets/media-CzHCpYar.js +1 -0
- package/dist/app/assets/media-DYb1exX4.js +1 -0
- package/dist/app/assets/media-family-D1T4Oizj.js +1 -0
- package/dist/app/assets/menus-1-mWffKr.js +1 -0
- package/dist/app/assets/message-square-x7OYMgev.js +1 -0
- package/dist/app/assets/messages-3lN2Kn4z.js +1 -0
- package/dist/app/assets/messages-B7u5Jh8M.js +1 -0
- package/dist/app/assets/messages-BQTlK_mM.js +1 -0
- package/dist/app/assets/messages-BdrxZBiS.js +1 -0
- package/dist/app/assets/metadata-BpPlGhv5.js +1 -0
- package/dist/app/assets/mfa-Ch_BMU5H.js +1 -0
- package/dist/app/assets/migrate-MC61YhKH.js +1 -0
- package/dist/app/assets/migrate-chunk-wtWFyG75.js +1 -0
- package/dist/app/assets/migrations-1f7gzI99.js +1 -0
- package/dist/app/assets/min-max-D9wTXnDJ.js +1 -0
- package/dist/app/assets/mint-breeze-sKiqpNPB.js +1 -0
- package/dist/app/assets/mist-panel-Up7IvgtE.js +1 -0
- package/dist/app/assets/modal-features-DIO0C55l.js +1 -0
- package/dist/app/assets/model-Be4ObL07.js +1 -0
- package/dist/app/assets/model-BwaEiJpp.js +1 -0
- package/dist/app/assets/model-CmkZtpEH.css +1 -0
- package/dist/app/assets/model-D1cQTAPI.js +1 -0
- package/dist/app/assets/model-DfCj0GmH.js +1 -0
- package/dist/app/assets/model-DzyBMwio.js +1 -0
- package/dist/app/assets/model-muSt3KQl.css +1 -0
- package/dist/app/assets/models-CEEgF0ul.js +1 -0
- package/dist/app/assets/modifiers-dKloufht.js +1 -0
- package/dist/app/assets/money-BNXN8K1Z.js +1 -0
- package/dist/app/assets/monochrome-BkrxgxEy.js +1 -0
- package/dist/app/assets/moss-path-DGziirQ2.js +1 -0
- package/dist/app/assets/motion-BHsSl-4E.js +1 -0
- package/dist/app/assets/motion-C03qaSuL.js +1 -0
- package/dist/app/assets/motion-L4GdCnBp.js +1 -0
- package/dist/app/assets/motion-capture-DdoMzbzW.js +2 -0
- package/dist/app/assets/motion-hold-Ck8JB-jY.js +1 -0
- package/dist/app/assets/mount-B54S61Ta.js +2 -0
- package/dist/app/assets/names-_PDy7Bq8.js +1 -0
- package/dist/app/assets/nav-xyVo3Dhy.js +1 -0
- package/dist/app/assets/navigation-CKFsulut.js +1 -0
- package/dist/app/assets/navy-bridge-BRtgRfvI.js +1 -0
- package/dist/app/assets/navy-column-doHezJ_z.js +1 -0
- package/dist/app/assets/neon-magenta-D4oUS0l1.js +1 -0
- package/dist/app/assets/nested-main-jYQPb9H2.js +1 -0
- package/dist/app/assets/nexus-pink-9h6-k-7P.js +1 -0
- package/dist/app/assets/no-flash-Dj4XzHOU.js +1 -0
- package/dist/app/assets/northstar-blue-DzqF_y-a.js +1 -0
- package/dist/app/assets/notifications-8JaiuubQ.js +1 -0
- package/dist/app/assets/oauth-CmTD9LUy.js +1 -0
- package/dist/app/assets/ocean-De6WGsd9.js +1 -0
- package/dist/app/assets/ochre-field-BqEyoLbX.js +1 -0
- package/dist/app/assets/oklch-DhPyiYB2.js +1 -0
- package/dist/app/assets/olive-grove-Cp0VFQ2S.js +1 -0
- package/dist/app/assets/orbit-orange-Cc95GpUx.js +1 -0
- package/dist/app/assets/orchid-note-D1I5IuoK.js +1 -0
- package/dist/app/assets/org-access-D_6JvvNN.js +1 -0
- package/dist/app/assets/pack-Cfr5vWx8.css +1 -0
- package/dist/app/assets/pack-beqgWGKz.js +1 -0
- package/dist/app/assets/page-AjDft1OD.js +1 -0
- package/dist/app/assets/page-C2uyTZnk.css +2 -0
- package/dist/app/assets/page-DUH2ASc0.css +1 -0
- package/dist/app/assets/page-N-0kku8e.js +3 -0
- package/dist/app/assets/page-YAQf_3ei.js +1 -0
- package/dist/app/assets/pages-CnVvai3k.js +1 -0
- package/dist/app/assets/paint-DTnILvSK.js +2 -0
- package/dist/app/assets/palette-D3qxDLiu.js +1 -0
- package/dist/app/assets/palette-DU0H4nZe.js +1 -0
- package/dist/app/assets/panel-state.svelte-C2lUNfn2.js +1 -0
- package/dist/app/assets/parse-B7SUs8-I.js +1 -0
- package/dist/app/assets/parse-BD8wgjWR.js +1 -0
- package/dist/app/assets/parse-family-DwIdkDBQ.js +1 -0
- package/dist/app/assets/parse-mWm0ww2Y.js +1 -0
- package/dist/app/assets/part-whole-ANkXTHe7.css +1 -0
- package/dist/app/assets/part-whole-AxLzbEP6.js +1 -0
- package/dist/app/assets/part-whole-CqtzIrDq.js +1 -0
- package/dist/app/assets/part-whole-OqVs8SJS.css +1 -0
- package/dist/app/assets/pdf-DTD4ZFZG.js +11 -0
- package/dist/app/assets/peach-foam-nsXLznbT.js +1 -0
- package/dist/app/assets/peach-studio-C5wX85NC.js +1 -0
- package/dist/app/assets/pewter-grid-wI4QcPMd.js +1 -0
- package/dist/app/assets/phone-Kw6S6yud.js +1 -0
- package/dist/app/assets/phosphor-amber-DDel8BqJ.js +1 -0
- package/dist/app/assets/pick-BqbZUEL6.js +1 -0
- package/dist/app/assets/pine-ridge-uilBHo5-.js +1 -0
- package/dist/app/assets/pipe-slate-D-H7swYU.js +1 -0
- package/dist/app/assets/pistachio-tile-CjiejIrq.js +1 -0
- package/dist/app/assets/plasma-pink-CBLl0t7i.js +1 -0
- package/dist/app/assets/plum-chapter-BmA1UD4I.js +1 -0
- package/dist/app/assets/polar-dash-B1qzbMkX.js +1 -0
- package/dist/app/assets/policy-DzdNmXdr.js +1 -0
- package/dist/app/assets/popup-DjQbNwaG.css +1 -0
- package/dist/app/assets/popup-XAoQf3yX.js +1 -0
- package/dist/app/assets/port-meridian-DlsIsyfe.js +1 -0
- package/dist/app/assets/portal-scope-DVg3DZrI.js +1 -0
- package/dist/app/assets/position-floating-DVYNUqB9.js +1 -0
- package/dist/app/assets/powder-blue-BaOLGO-R.js +1 -0
- package/dist/app/assets/pptx-v2-CfMQMOWr.js +1 -0
- package/dist/app/assets/preload-helper-CRzLMJPS.js +1 -0
- package/dist/app/assets/presence-zf-tyTu4.js +1 -0
- package/dist/app/assets/presentation-D-6oDXkX.js +1 -0
- package/dist/app/assets/presenter-Df4KfiDD.js +1 -0
- package/dist/app/assets/presets-yYeapXmM.js +1 -0
- package/dist/app/assets/prime-amber-6-qXBjQo.js +1 -0
- package/dist/app/assets/primitives-C9dJjR2F.js +1 -0
- package/dist/app/assets/print-paint-BInhmGTw.js +1 -0
- package/dist/app/assets/prompt-blue-kUotakIj.js +1 -0
- package/dist/app/assets/prototype-BEkp3Df8.js +1 -0
- package/dist/app/assets/pulse-orange-CvpfS6f_.js +1 -0
- package/dist/app/assets/pulse-violet-BqGVSj7g.js +1 -0
- package/dist/app/assets/python-CllnL83l.js +1 -0
- package/dist/app/assets/quartz-mute-mGF9j7GA.js +1 -0
- package/dist/app/assets/radio-group-DGPBxyW6.js +1 -0
- package/dist/app/assets/random--LplQdQC.js +1 -0
- package/dist/app/assets/range-Dhwl92-a.js +1 -0
- package/dist/app/assets/records-uXFbdI0w.js +1 -0
- package/dist/app/assets/ref-oE2opvHT.js +1 -0
- package/dist/app/assets/refresh-cw-zx0DS0qE.js +1 -0
- package/dist/app/assets/registry-BZiqneBm.js +2 -0
- package/dist/app/assets/registry-C4R3jj3j.js +2 -0
- package/dist/app/assets/registry-DiNy1R7M.js +2 -0
- package/dist/app/assets/registry-exXUF-5L.js +2 -0
- package/dist/app/assets/renderer-deck-DkVnQ4xX.js +2 -0
- package/dist/app/assets/renderer-doc-BFROgm2K.js +2 -0
- package/dist/app/assets/renderer-page-CaVkgQn_.js +2 -0
- package/dist/app/assets/renderers-DjsTiK4_.js +1 -0
- package/dist/app/assets/resolve-BGfaV2Mp.js +1 -0
- package/dist/app/assets/resolve-CED007Y_.js +1 -0
- package/dist/app/assets/resolve-DPWba9Mv.js +1 -0
- package/dist/app/assets/review-BYpI0k9p.js +1 -0
- package/dist/app/assets/rocket-red-Bn6gOzMm.js +1 -0
- package/dist/app/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/dist/app/assets/root-red-CCCxlc4l.js +1 -0
- package/dist/app/assets/rose-D3WOkFis.js +1 -0
- package/dist/app/assets/rosewater-desk-DFvWOCXU.js +1 -0
- package/dist/app/assets/round-ySvX3_gz.js +1 -0
- package/dist/app/assets/roving-CztmB2zQ.js +1 -0
- package/dist/app/assets/ruled-BaNeLwP3.css +1 -0
- package/dist/app/assets/run-kind-B2WZjgm4.js +2 -0
- package/dist/app/assets/runtime-A0jTJCh8.js +1 -0
- package/dist/app/assets/runtime-EwbZURIF.js +1 -0
- package/dist/app/assets/rust-archive-CDPNIudx.js +1 -0
- package/dist/app/assets/saas-DaFcHIjZ.js +2 -0
- package/dist/app/assets/safe-href-Ca6kZWby.js +1 -0
- package/dist/app/assets/safe-image-src-DQWk9Hmw.js +1 -0
- package/dist/app/assets/safe-image-srcset-CV9HT60O.js +1 -0
- package/dist/app/assets/safe-media-src-R00i3PMn.js +1 -0
- package/dist/app/assets/safety-D6ZEk3Nu.js +2 -0
- package/dist/app/assets/saffron-stall-30TT6Xsy.js +1 -0
- package/dist/app/assets/sage-veil-BvumFO-4.js +1 -0
- package/dist/app/assets/sandstone-wall-DRdLPNb8.js +1 -0
- package/dist/app/assets/scenario-DfCy7uDa.js +1 -0
- package/dist/app/assets/schema-B4oYXjN0.js +1 -0
- package/dist/app/assets/schema-BCkhdl2K.js +1 -0
- package/dist/app/assets/schema-BFedOb5n.js +1 -0
- package/dist/app/assets/schema-BRYG8Msr.js +1 -0
- package/dist/app/assets/schema-D3SaYfNO.js +1 -0
- package/dist/app/assets/schema-DKYwyX0Q.js +1 -0
- package/dist/app/assets/schema-DNUzj-FZ.js +1 -0
- package/dist/app/assets/schema-Mk2CqAZk.js +1 -0
- package/dist/app/assets/schema-form-BwNSJCDz.js +1 -0
- package/dist/app/assets/schema-xXY7gBvH.js +1 -0
- package/dist/app/assets/schemas-Cd-wWAs4.js +55 -0
- package/dist/app/assets/scroll-lock-nMA4N7QX.js +1 -0
- package/dist/app/assets/seam-BuX-L7O-.js +2 -0
- package/dist/app/assets/seed-C9w8QDA_.js +1 -0
- package/dist/app/assets/select-DDJqBLM4.js +1 -0
- package/dist/app/assets/semantic-BZOGW1yM.js +1 -0
- package/dist/app/assets/sepia-margin-D_rRa0SV.js +1 -0
- package/dist/app/assets/services-B-NMB4En.js +1 -0
- package/dist/app/assets/services-DDXopNe8.js +1 -0
- package/dist/app/assets/session-Qh0_5nJW.js +1 -0
- package/dist/app/assets/settings-CZ7Ckx-g.js +1 -0
- package/dist/app/assets/share-2-C2TxFOjz.js +1 -0
- package/dist/app/assets/share-4ZDhjJFD.js +1 -0
- package/dist/app/assets/shared-A0Sab6lK.js +1 -0
- package/dist/app/assets/shared-BaZKMJeO.js +1 -0
- package/dist/app/assets/shared-CCIZQSIr.js +1 -0
- package/dist/app/assets/shared-DjyRof-V.js +1 -0
- package/dist/app/assets/sheet-6sPgzZ6r.js +1 -0
- package/dist/app/assets/sheet-CyLyPMjt.js +15 -0
- package/dist/app/assets/sheet-FlI38DCB.css +1 -0
- package/dist/app/assets/sheet-y5v1hHge.css +1 -0
- package/dist/app/assets/shell-lime-BZD_mkY4.js +1 -0
- package/dist/app/assets/signal-cyan-B8bCz3Zk.js +1 -0
- package/dist/app/assets/silver-rail-gc5O-YFl.js +1 -0
- package/dist/app/assets/sky-soft-V0Sqf28f.js +1 -0
- package/dist/app/assets/skyline-app-CT9-3-aR.js +1 -0
- package/dist/app/assets/slash-C9_sqsLT.js +2 -0
- package/dist/app/assets/slate-board-Ao5Q8zQ3.js +1 -0
- package/dist/app/assets/slate-masthead-ClFWhpEr.js +1 -0
- package/dist/app/assets/slots-DCt2_WmY.js +1 -0
- package/dist/app/assets/smoke-frame-DCw2Y7CE.js +1 -0
- package/dist/app/assets/soil-brown-CeZMoPYy.js +1 -0
- package/dist/app/assets/spark-blue-CMmmPe9e.js +1 -0
- package/dist/app/assets/sparkline-lite-BRCTxuP1.js +1 -0
- package/dist/app/assets/sparkline-lite-D0vAJO6h.css +1 -0
- package/dist/app/assets/sql-aFQXr0OI.js +1 -0
- package/dist/app/assets/src-B3zSoEr2.js +2 -0
- package/dist/app/assets/src-BFXdMRyG.css +1 -0
- package/dist/app/assets/src-Bpgs1rH6.js +1 -0
- package/dist/app/assets/src-C1fW89IZ.js +1 -0
- package/dist/app/assets/src-CQQcUQZN.js +1 -0
- package/dist/app/assets/src-D0pvR3Pn.js +1 -0
- package/dist/app/assets/src-DthoX0U1.js +4 -0
- package/dist/app/assets/src-E7_MqRCx.js +2 -0
- package/dist/app/assets/src-fg_sJxDE.css +1 -0
- package/dist/app/assets/stack-yellow-C_8EYxb0.js +1 -0
- package/dist/app/assets/stat-DClndHHt.css +1 -0
- package/dist/app/assets/stat-DITCupas.js +1 -0
- package/dist/app/assets/state-Di2Pzrl0.js +1 -0
- package/dist/app/assets/steel-card-D_sikLET.js +1 -0
- package/dist/app/assets/steps-BKE6MxvE.js +1 -0
- package/dist/app/assets/steps-CzwQF2X9.css +1 -0
- package/dist/app/assets/steps-r0h4TUR5.js +1 -0
- package/dist/app/assets/storage-BP4N_Kde.js +4 -0
- package/dist/app/assets/storage-Bxp2oaxI.js +1 -0
- package/dist/app/assets/storage-D0KrPAuS.js +1 -0
- package/dist/app/assets/storage-Dysq-9Vj.css +1 -0
- package/dist/app/assets/structure-Bxx8Z738.js +2 -0
- package/dist/app/assets/structure-CV2XMg1i.js +1 -0
- package/dist/app/assets/structure-DOnYuZyy.js +1 -0
- package/dist/app/assets/studio-BpSjJ4sH.js +2 -0
- package/dist/app/assets/style-DEgj0nDO.js +2 -0
- package/dist/app/assets/style-DUWXOzM3.js +2 -0
- package/dist/app/assets/style-presets-CzynjwRw.js +1 -0
- package/dist/app/assets/style-presets-NvFQjCjA.js +1 -0
- package/dist/app/assets/summit-green-CVMfipPc.js +1 -0
- package/dist/app/assets/sunset-pier-BefTZXzl.js +1 -0
- package/dist/app/assets/tags-color-C3EKP-d5.css +1 -0
- package/dist/app/assets/teal-current-DkXZ0vcN.js +1 -0
- package/dist/app/assets/terracotta-hearth-CQxakqN9.js +1 -0
- package/dist/app/assets/text-DG6IKpbn.js +5 -0
- package/dist/app/assets/text-Wb8u2Uyt.js +1 -0
- package/dist/app/assets/text-YMPMGPMj.js +1 -0
- package/dist/app/assets/text-family-C-XJGuET.js +1 -0
- package/dist/app/assets/texuli-27exlwkX.js +1 -0
- package/dist/app/assets/texuli-DB0v-fcn.js +1 -0
- package/dist/app/assets/texuli-document-D3sLYHof.js +3 -0
- package/dist/app/assets/theme-B8Wr-JbW.js +1 -0
- package/dist/app/assets/theme-CC-SlXOF.js +1 -0
- package/dist/app/assets/theme-gO6KESO1.js +1 -0
- package/dist/app/assets/thumbnails-BPHPAv1P.js +1 -0
- package/dist/app/assets/thumbs-up-DlPgXRcT.js +1 -0
- package/dist/app/assets/timeline-BbxkFqUC.js +1 -0
- package/dist/app/assets/timeline-C9WiHoJO.css +1 -0
- package/dist/app/assets/times-BwGcelwK.js +1 -0
- package/dist/app/assets/toast-store-DLJO-Udw.js +1 -0
- package/dist/app/assets/tokenizer-BQW3V3DA.js +2 -0
- package/dist/app/assets/tooltip-CRWPut-S.js +1 -0
- package/dist/app/assets/trace-indigo-hZ1ZxHXP.js +1 -0
- package/dist/app/assets/trust-DZxM74pz.js +1 -0
- package/dist/app/assets/typeahead-BP48qCAc.js +1 -0
- package/dist/app/assets/types-B0IEHQCD.js +1 -0
- package/dist/app/assets/types-BiUdY2U5.js +1 -0
- package/dist/app/assets/ultra-indigo-B0ARavak.js +1 -0
- package/dist/app/assets/umber-studio-BYTkK72X.js +1 -0
- package/dist/app/assets/untrusted-BfWtxngP.js +2 -0
- package/dist/app/assets/upload-Bm4b-FQV.js +1 -0
- package/dist/app/assets/use-messages-BqadSYrT.js +1 -0
- package/dist/app/assets/use-messages-CMG1vOXg.js +1 -0
- package/dist/app/assets/use-overlay-layer.svelte-DvlCPqto.js +1 -0
- package/dist/app/assets/use-overlay-portal.svelte-DDHakN83.js +1 -0
- package/dist/app/assets/users-Bh5Rc6T0.js +1 -0
- package/dist/app/assets/validate-6AAyBgB0.js +1 -0
- package/dist/app/assets/validate-CTbZGtO4.js +1 -0
- package/dist/app/assets/validation-B537KH3-.js +1 -0
- package/dist/app/assets/validation-CMBKmHTL.js +1 -0
- package/dist/app/assets/validation-FspKIls2.js +1 -0
- package/dist/app/assets/validation-v_P8RXAm.js +2 -0
- package/dist/app/assets/variants-0EUR5zUc.js +1 -0
- package/dist/app/assets/variants-BSgG2nVA.js +1 -0
- package/dist/app/assets/variants-BoB1dKDA.css +1 -0
- package/dist/app/assets/variants-C-9Fb7C7.js +1 -0
- package/dist/app/assets/variants-CHGzXb-Y.css +1 -0
- package/dist/app/assets/variants-CjnNSDuw.css +1 -0
- package/dist/app/assets/variants-CqLUuoxu.js +1 -0
- package/dist/app/assets/variants-DBzK3oU6.js +1 -0
- package/dist/app/assets/variants-DFYRPBYV.css +1 -0
- package/dist/app/assets/variants-DOyT6BC2.js +1 -0
- package/dist/app/assets/variants-DT9zGmPF.css +1 -0
- package/dist/app/assets/variants-SS1JhYSo.js +1 -0
- package/dist/app/assets/variants-r80xbn9B.css +1 -0
- package/dist/app/assets/vector-sky-CLaOPlE1.js +1 -0
- package/dist/app/assets/violet-DfxdNaZd.js +1 -0
- package/dist/app/assets/virtual-DbN7LpUm.js +1 -0
- package/dist/app/assets/volt-green-CR4A9QcB.js +1 -0
- package/dist/app/assets/wheat-barn-lFw7UkLn.js +1 -0
- package/dist/app/assets/workspaces-CRosbN6a.js +1 -0
- package/dist/app/assets/x-CzT3WLwV.js +1 -0
- package/dist/app/assets/yaml-KSSTK7w3.js +1 -0
- package/dist/app/assets/zap-DaNHL6EY.js +1 -0
- package/dist/app/assets/zip-BssPsXf3.js +1 -0
- package/dist/app/avatars/128/av-001.webp +0 -0
- package/dist/app/avatars/128/av-002.webp +0 -0
- package/dist/app/avatars/128/av-003.webp +0 -0
- package/dist/app/avatars/128/av-004.webp +0 -0
- package/dist/app/avatars/128/av-005.webp +0 -0
- package/dist/app/avatars/128/av-006.webp +0 -0
- package/dist/app/avatars/128/av-007.webp +0 -0
- package/dist/app/avatars/128/av-008.webp +0 -0
- package/dist/app/avatars/128/av-009.webp +0 -0
- package/dist/app/avatars/128/av-010.webp +0 -0
- package/dist/app/avatars/128/av-011.webp +0 -0
- package/dist/app/avatars/128/av-012.webp +0 -0
- package/dist/app/avatars/128/av-013.webp +0 -0
- package/dist/app/avatars/128/av-014.webp +0 -0
- package/dist/app/avatars/128/av-015.webp +0 -0
- package/dist/app/avatars/128/av-016.webp +0 -0
- package/dist/app/avatars/128/av-017.webp +0 -0
- package/dist/app/avatars/128/av-018.webp +0 -0
- package/dist/app/avatars/128/av-019.webp +0 -0
- package/dist/app/avatars/128/av-020.webp +0 -0
- package/dist/app/avatars/128/av-021.webp +0 -0
- package/dist/app/avatars/128/av-022.webp +0 -0
- package/dist/app/avatars/128/av-023.webp +0 -0
- package/dist/app/avatars/128/av-024.webp +0 -0
- package/dist/app/avatars/128/av-025.webp +0 -0
- package/dist/app/avatars/128/av-026.webp +0 -0
- package/dist/app/avatars/128/av-027.webp +0 -0
- package/dist/app/avatars/128/av-028.webp +0 -0
- package/dist/app/avatars/128/av-029.webp +0 -0
- package/dist/app/avatars/128/av-030.webp +0 -0
- package/dist/app/avatars/128/av-031.webp +0 -0
- package/dist/app/avatars/128/av-032.webp +0 -0
- package/dist/app/avatars/128/av-033.webp +0 -0
- package/dist/app/avatars/128/av-034.webp +0 -0
- package/dist/app/avatars/128/av-035.webp +0 -0
- package/dist/app/avatars/128/av-036.webp +0 -0
- package/dist/app/avatars/128/av-037.webp +0 -0
- package/dist/app/avatars/128/av-038.webp +0 -0
- package/dist/app/avatars/128/av-039.webp +0 -0
- package/dist/app/avatars/128/av-040.webp +0 -0
- package/dist/app/avatars/128/av-041.webp +0 -0
- package/dist/app/avatars/128/av-042.webp +0 -0
- package/dist/app/avatars/128/av-043.webp +0 -0
- package/dist/app/avatars/128/av-044.webp +0 -0
- package/dist/app/avatars/128/av-045.webp +0 -0
- package/dist/app/avatars/128/av-046.webp +0 -0
- package/dist/app/avatars/128/av-047.webp +0 -0
- package/dist/app/avatars/128/av-048.webp +0 -0
- package/dist/app/avatars/128/av-049.webp +0 -0
- package/dist/app/avatars/128/av-050.webp +0 -0
- package/dist/app/avatars/128/av-051.webp +0 -0
- package/dist/app/avatars/128/av-052.webp +0 -0
- package/dist/app/avatars/128/av-053.webp +0 -0
- package/dist/app/avatars/128/av-054.webp +0 -0
- package/dist/app/avatars/128/av-055.webp +0 -0
- package/dist/app/avatars/128/av-056.webp +0 -0
- package/dist/app/avatars/128/av-057.webp +0 -0
- package/dist/app/avatars/128/av-058.webp +0 -0
- package/dist/app/avatars/128/av-059.webp +0 -0
- package/dist/app/avatars/128/av-060.webp +0 -0
- package/dist/app/avatars/128/av-061.webp +0 -0
- package/dist/app/avatars/128/av-062.webp +0 -0
- package/dist/app/avatars/128/av-063.webp +0 -0
- package/dist/app/avatars/128/av-064.webp +0 -0
- package/dist/app/avatars/128/av-065.webp +0 -0
- package/dist/app/avatars/128/av-066.webp +0 -0
- package/dist/app/avatars/128/av-067.webp +0 -0
- package/dist/app/avatars/128/av-068.webp +0 -0
- package/dist/app/avatars/128/av-069.webp +0 -0
- package/dist/app/avatars/128/av-070.webp +0 -0
- package/dist/app/avatars/128/av-071.webp +0 -0
- package/dist/app/avatars/128/av-072.webp +0 -0
- package/dist/app/avatars/128/av-073.webp +0 -0
- package/dist/app/avatars/128/av-074.webp +0 -0
- package/dist/app/avatars/128/av-075.webp +0 -0
- package/dist/app/avatars/128/av-076.webp +0 -0
- package/dist/app/avatars/128/av-077.webp +0 -0
- package/dist/app/avatars/128/av-078.webp +0 -0
- package/dist/app/avatars/128/av-079.webp +0 -0
- package/dist/app/avatars/128/av-080.webp +0 -0
- package/dist/app/avatars/128/av-081.webp +0 -0
- package/dist/app/avatars/128/av-082.webp +0 -0
- package/dist/app/avatars/128/av-083.webp +0 -0
- package/dist/app/avatars/128/av-084.webp +0 -0
- package/dist/app/avatars/128/av-085.webp +0 -0
- package/dist/app/avatars/128/av-086.webp +0 -0
- package/dist/app/avatars/128/av-087.webp +0 -0
- package/dist/app/avatars/128/av-088.webp +0 -0
- package/dist/app/avatars/128/av-089.webp +0 -0
- package/dist/app/avatars/128/av-090.webp +0 -0
- package/dist/app/avatars/128/av-091.webp +0 -0
- package/dist/app/avatars/128/av-092.webp +0 -0
- package/dist/app/avatars/128/av-093.webp +0 -0
- package/dist/app/avatars/128/av-094.webp +0 -0
- package/dist/app/avatars/128/av-095.webp +0 -0
- package/dist/app/avatars/128/av-096.webp +0 -0
- package/dist/app/avatars/128/av-097.webp +0 -0
- package/dist/app/avatars/128/av-098.webp +0 -0
- package/dist/app/avatars/128/av-099.webp +0 -0
- package/dist/app/avatars/128/av-100.webp +0 -0
- package/dist/app/avatars/128/av-101.webp +0 -0
- package/dist/app/avatars/128/av-102.webp +0 -0
- package/dist/app/avatars/128/av-103.webp +0 -0
- package/dist/app/avatars/128/av-104.webp +0 -0
- package/dist/app/avatars/128/av-105.webp +0 -0
- package/dist/app/avatars/128/av-106.webp +0 -0
- package/dist/app/avatars/128/av-107.webp +0 -0
- package/dist/app/avatars/128/av-108.webp +0 -0
- package/dist/app/avatars/128/av-109.webp +0 -0
- package/dist/app/avatars/128/av-110.webp +0 -0
- package/dist/app/avatars/128/av-111.webp +0 -0
- package/dist/app/avatars/128/av-112.webp +0 -0
- package/dist/app/avatars/128/av-113.webp +0 -0
- package/dist/app/avatars/128/av-114.webp +0 -0
- package/dist/app/avatars/128/av-115.webp +0 -0
- package/dist/app/avatars/128/av-116.webp +0 -0
- package/dist/app/avatars/128/av-117.webp +0 -0
- package/dist/app/avatars/128/av-118.webp +0 -0
- package/dist/app/avatars/128/av-119.webp +0 -0
- package/dist/app/avatars/128/av-120.webp +0 -0
- package/dist/app/avatars/128/av-121.webp +0 -0
- package/dist/app/avatars/128/av-122.webp +0 -0
- package/dist/app/avatars/128/av-123.webp +0 -0
- package/dist/app/avatars/128/av-124.webp +0 -0
- package/dist/app/avatars/128/av-125.webp +0 -0
- package/dist/app/avatars/128/av-126.webp +0 -0
- package/dist/app/avatars/128/av-127.webp +0 -0
- package/dist/app/avatars/128/av-128.webp +0 -0
- package/dist/app/avatars/128/av-129.webp +0 -0
- package/dist/app/avatars/128/av-130.webp +0 -0
- package/dist/app/avatars/128/av-131.webp +0 -0
- package/dist/app/avatars/128/av-132.webp +0 -0
- package/dist/app/avatars/128/av-133.webp +0 -0
- package/dist/app/avatars/128/av-134.webp +0 -0
- package/dist/app/avatars/128/av-135.webp +0 -0
- package/dist/app/avatars/128/av-136.webp +0 -0
- package/dist/app/avatars/128/av-137.webp +0 -0
- package/dist/app/avatars/128/av-138.webp +0 -0
- package/dist/app/avatars/128/av-139.webp +0 -0
- package/dist/app/avatars/128/av-140.webp +0 -0
- package/dist/app/avatars/128/av-141.webp +0 -0
- package/dist/app/avatars/128/av-142.webp +0 -0
- package/dist/app/avatars/128/av-143.webp +0 -0
- package/dist/app/avatars/128/av-144.webp +0 -0
- package/dist/app/avatars/128/av-145.webp +0 -0
- package/dist/app/avatars/128/av-146.webp +0 -0
- package/dist/app/avatars/128/av-147.webp +0 -0
- package/dist/app/avatars/128/av-148.webp +0 -0
- package/dist/app/avatars/128/av-149.webp +0 -0
- package/dist/app/avatars/128/av-150.webp +0 -0
- package/dist/app/avatars/128/av-151.webp +0 -0
- package/dist/app/avatars/128/av-152.webp +0 -0
- package/dist/app/avatars/128/av-153.webp +0 -0
- package/dist/app/avatars/128/av-154.webp +0 -0
- package/dist/app/avatars/128/av-155.webp +0 -0
- package/dist/app/avatars/128/av-156.webp +0 -0
- package/dist/app/avatars/128/av-157.webp +0 -0
- package/dist/app/avatars/128/av-158.webp +0 -0
- package/dist/app/avatars/128/av-159.webp +0 -0
- package/dist/app/avatars/128/av-160.webp +0 -0
- package/dist/app/avatars/128/av-161.webp +0 -0
- package/dist/app/avatars/128/av-162.webp +0 -0
- package/dist/app/avatars/128/av-163.webp +0 -0
- package/dist/app/avatars/128/av-164.webp +0 -0
- package/dist/app/avatars/128/av-165.webp +0 -0
- package/dist/app/avatars/128/av-166.webp +0 -0
- package/dist/app/avatars/128/av-167.webp +0 -0
- package/dist/app/avatars/128/av-168.webp +0 -0
- package/dist/app/avatars/128/av-169.webp +0 -0
- package/dist/app/avatars/128/av-170.webp +0 -0
- package/dist/app/avatars/128/av-171.webp +0 -0
- package/dist/app/avatars/128/av-172.webp +0 -0
- package/dist/app/avatars/128/av-173.webp +0 -0
- package/dist/app/avatars/128/av-174.webp +0 -0
- package/dist/app/avatars/128/av-175.webp +0 -0
- package/dist/app/avatars/64/av-001.webp +0 -0
- package/dist/app/avatars/64/av-002.webp +0 -0
- package/dist/app/avatars/64/av-003.webp +0 -0
- package/dist/app/avatars/64/av-004.webp +0 -0
- package/dist/app/avatars/64/av-005.webp +0 -0
- package/dist/app/avatars/64/av-006.webp +0 -0
- package/dist/app/avatars/64/av-007.webp +0 -0
- package/dist/app/avatars/64/av-008.webp +0 -0
- package/dist/app/avatars/64/av-009.webp +0 -0
- package/dist/app/avatars/64/av-010.webp +0 -0
- package/dist/app/avatars/64/av-011.webp +0 -0
- package/dist/app/avatars/64/av-012.webp +0 -0
- package/dist/app/avatars/64/av-013.webp +0 -0
- package/dist/app/avatars/64/av-014.webp +0 -0
- package/dist/app/avatars/64/av-015.webp +0 -0
- package/dist/app/avatars/64/av-016.webp +0 -0
- package/dist/app/avatars/64/av-017.webp +0 -0
- package/dist/app/avatars/64/av-018.webp +0 -0
- package/dist/app/avatars/64/av-019.webp +0 -0
- package/dist/app/avatars/64/av-020.webp +0 -0
- package/dist/app/avatars/64/av-021.webp +0 -0
- package/dist/app/avatars/64/av-022.webp +0 -0
- package/dist/app/avatars/64/av-023.webp +0 -0
- package/dist/app/avatars/64/av-024.webp +0 -0
- package/dist/app/avatars/64/av-025.webp +0 -0
- package/dist/app/avatars/64/av-026.webp +0 -0
- package/dist/app/avatars/64/av-027.webp +0 -0
- package/dist/app/avatars/64/av-028.webp +0 -0
- package/dist/app/avatars/64/av-029.webp +0 -0
- package/dist/app/avatars/64/av-030.webp +0 -0
- package/dist/app/avatars/64/av-031.webp +0 -0
- package/dist/app/avatars/64/av-032.webp +0 -0
- package/dist/app/avatars/64/av-033.webp +0 -0
- package/dist/app/avatars/64/av-034.webp +0 -0
- package/dist/app/avatars/64/av-035.webp +0 -0
- package/dist/app/avatars/64/av-036.webp +0 -0
- package/dist/app/avatars/64/av-037.webp +0 -0
- package/dist/app/avatars/64/av-038.webp +0 -0
- package/dist/app/avatars/64/av-039.webp +0 -0
- package/dist/app/avatars/64/av-040.webp +0 -0
- package/dist/app/avatars/64/av-041.webp +0 -0
- package/dist/app/avatars/64/av-042.webp +0 -0
- package/dist/app/avatars/64/av-043.webp +0 -0
- package/dist/app/avatars/64/av-044.webp +0 -0
- package/dist/app/avatars/64/av-045.webp +0 -0
- package/dist/app/avatars/64/av-046.webp +0 -0
- package/dist/app/avatars/64/av-047.webp +0 -0
- package/dist/app/avatars/64/av-048.webp +0 -0
- package/dist/app/avatars/64/av-049.webp +0 -0
- package/dist/app/avatars/64/av-050.webp +0 -0
- package/dist/app/avatars/64/av-051.webp +0 -0
- package/dist/app/avatars/64/av-052.webp +0 -0
- package/dist/app/avatars/64/av-053.webp +0 -0
- package/dist/app/avatars/64/av-054.webp +0 -0
- package/dist/app/avatars/64/av-055.webp +0 -0
- package/dist/app/avatars/64/av-056.webp +0 -0
- package/dist/app/avatars/64/av-057.webp +0 -0
- package/dist/app/avatars/64/av-058.webp +0 -0
- package/dist/app/avatars/64/av-059.webp +0 -0
- package/dist/app/avatars/64/av-060.webp +0 -0
- package/dist/app/avatars/64/av-061.webp +0 -0
- package/dist/app/avatars/64/av-062.webp +0 -0
- package/dist/app/avatars/64/av-063.webp +0 -0
- package/dist/app/avatars/64/av-064.webp +0 -0
- package/dist/app/avatars/64/av-065.webp +0 -0
- package/dist/app/avatars/64/av-066.webp +0 -0
- package/dist/app/avatars/64/av-067.webp +0 -0
- package/dist/app/avatars/64/av-068.webp +0 -0
- package/dist/app/avatars/64/av-069.webp +0 -0
- package/dist/app/avatars/64/av-070.webp +0 -0
- package/dist/app/avatars/64/av-071.webp +0 -0
- package/dist/app/avatars/64/av-072.webp +0 -0
- package/dist/app/avatars/64/av-073.webp +0 -0
- package/dist/app/avatars/64/av-074.webp +0 -0
- package/dist/app/avatars/64/av-075.webp +0 -0
- package/dist/app/avatars/64/av-076.webp +0 -0
- package/dist/app/avatars/64/av-077.webp +0 -0
- package/dist/app/avatars/64/av-078.webp +0 -0
- package/dist/app/avatars/64/av-079.webp +0 -0
- package/dist/app/avatars/64/av-080.webp +0 -0
- package/dist/app/avatars/64/av-081.webp +0 -0
- package/dist/app/avatars/64/av-082.webp +0 -0
- package/dist/app/avatars/64/av-083.webp +0 -0
- package/dist/app/avatars/64/av-084.webp +0 -0
- package/dist/app/avatars/64/av-085.webp +0 -0
- package/dist/app/avatars/64/av-086.webp +0 -0
- package/dist/app/avatars/64/av-087.webp +0 -0
- package/dist/app/avatars/64/av-088.webp +0 -0
- package/dist/app/avatars/64/av-089.webp +0 -0
- package/dist/app/avatars/64/av-090.webp +0 -0
- package/dist/app/avatars/64/av-091.webp +0 -0
- package/dist/app/avatars/64/av-092.webp +0 -0
- package/dist/app/avatars/64/av-093.webp +0 -0
- package/dist/app/avatars/64/av-094.webp +0 -0
- package/dist/app/avatars/64/av-095.webp +0 -0
- package/dist/app/avatars/64/av-096.webp +0 -0
- package/dist/app/avatars/64/av-097.webp +0 -0
- package/dist/app/avatars/64/av-098.webp +0 -0
- package/dist/app/avatars/64/av-099.webp +0 -0
- package/dist/app/avatars/64/av-100.webp +0 -0
- package/dist/app/avatars/64/av-101.webp +0 -0
- package/dist/app/avatars/64/av-102.webp +0 -0
- package/dist/app/avatars/64/av-103.webp +0 -0
- package/dist/app/avatars/64/av-104.webp +0 -0
- package/dist/app/avatars/64/av-105.webp +0 -0
- package/dist/app/avatars/64/av-106.webp +0 -0
- package/dist/app/avatars/64/av-107.webp +0 -0
- package/dist/app/avatars/64/av-108.webp +0 -0
- package/dist/app/avatars/64/av-109.webp +0 -0
- package/dist/app/avatars/64/av-110.webp +0 -0
- package/dist/app/avatars/64/av-111.webp +0 -0
- package/dist/app/avatars/64/av-112.webp +0 -0
- package/dist/app/avatars/64/av-113.webp +0 -0
- package/dist/app/avatars/64/av-114.webp +0 -0
- package/dist/app/avatars/64/av-115.webp +0 -0
- package/dist/app/avatars/64/av-116.webp +0 -0
- package/dist/app/avatars/64/av-117.webp +0 -0
- package/dist/app/avatars/64/av-118.webp +0 -0
- package/dist/app/avatars/64/av-119.webp +0 -0
- package/dist/app/avatars/64/av-120.webp +0 -0
- package/dist/app/avatars/64/av-121.webp +0 -0
- package/dist/app/avatars/64/av-122.webp +0 -0
- package/dist/app/avatars/64/av-123.webp +0 -0
- package/dist/app/avatars/64/av-124.webp +0 -0
- package/dist/app/avatars/64/av-125.webp +0 -0
- package/dist/app/avatars/64/av-126.webp +0 -0
- package/dist/app/avatars/64/av-127.webp +0 -0
- package/dist/app/avatars/64/av-128.webp +0 -0
- package/dist/app/avatars/64/av-129.webp +0 -0
- package/dist/app/avatars/64/av-130.webp +0 -0
- package/dist/app/avatars/64/av-131.webp +0 -0
- package/dist/app/avatars/64/av-132.webp +0 -0
- package/dist/app/avatars/64/av-133.webp +0 -0
- package/dist/app/avatars/64/av-134.webp +0 -0
- package/dist/app/avatars/64/av-135.webp +0 -0
- package/dist/app/avatars/64/av-136.webp +0 -0
- package/dist/app/avatars/64/av-137.webp +0 -0
- package/dist/app/avatars/64/av-138.webp +0 -0
- package/dist/app/avatars/64/av-139.webp +0 -0
- package/dist/app/avatars/64/av-140.webp +0 -0
- package/dist/app/avatars/64/av-141.webp +0 -0
- package/dist/app/avatars/64/av-142.webp +0 -0
- package/dist/app/avatars/64/av-143.webp +0 -0
- package/dist/app/avatars/64/av-144.webp +0 -0
- package/dist/app/avatars/64/av-145.webp +0 -0
- package/dist/app/avatars/64/av-146.webp +0 -0
- package/dist/app/avatars/64/av-147.webp +0 -0
- package/dist/app/avatars/64/av-148.webp +0 -0
- package/dist/app/avatars/64/av-149.webp +0 -0
- package/dist/app/avatars/64/av-150.webp +0 -0
- package/dist/app/avatars/64/av-151.webp +0 -0
- package/dist/app/avatars/64/av-152.webp +0 -0
- package/dist/app/avatars/64/av-153.webp +0 -0
- package/dist/app/avatars/64/av-154.webp +0 -0
- package/dist/app/avatars/64/av-155.webp +0 -0
- package/dist/app/avatars/64/av-156.webp +0 -0
- package/dist/app/avatars/64/av-157.webp +0 -0
- package/dist/app/avatars/64/av-158.webp +0 -0
- package/dist/app/avatars/64/av-159.webp +0 -0
- package/dist/app/avatars/64/av-160.webp +0 -0
- package/dist/app/avatars/64/av-161.webp +0 -0
- package/dist/app/avatars/64/av-162.webp +0 -0
- package/dist/app/avatars/64/av-163.webp +0 -0
- package/dist/app/avatars/64/av-164.webp +0 -0
- package/dist/app/avatars/64/av-165.webp +0 -0
- package/dist/app/avatars/64/av-166.webp +0 -0
- package/dist/app/avatars/64/av-167.webp +0 -0
- package/dist/app/avatars/64/av-168.webp +0 -0
- package/dist/app/avatars/64/av-169.webp +0 -0
- package/dist/app/avatars/64/av-170.webp +0 -0
- package/dist/app/avatars/64/av-171.webp +0 -0
- package/dist/app/avatars/64/av-172.webp +0 -0
- package/dist/app/avatars/64/av-173.webp +0 -0
- package/dist/app/avatars/64/av-174.webp +0 -0
- package/dist/app/avatars/64/av-175.webp +0 -0
- package/dist/app/deck.html +140 -0
- package/dist/app/doc.html +140 -0
- package/dist/app/favicon.svg +1 -0
- package/dist/app/index.html +141 -0
- package/dist/app/manifest.webmanifest +18 -0
- package/dist/app/page.html +140 -0
- package/dist/app/protoyard-player-assets.json +6377 -0
- package/dist/app/sw.js +89 -0
- package/dist/boot/PlayerApp.svelte +89 -0
- package/dist/boot/PlayerApp.svelte.d.ts +3 -0
- package/dist/boot/archetypes/business/AnalyticsApp.svelte +39 -0
- package/dist/boot/archetypes/business/AnalyticsApp.svelte.d.ts +14 -0
- package/dist/boot/archetypes/business/AnalyticsDashboard.svelte +162 -0
- package/dist/boot/archetypes/business/AnalyticsDashboard.svelte.d.ts +3 -0
- package/dist/boot/archetypes/business/SaasApp.svelte +46 -0
- package/dist/boot/archetypes/business/SaasApp.svelte.d.ts +14 -0
- package/dist/boot/archetypes/business/adapter.d.ts +45 -0
- package/dist/boot/archetypes/business/adapter.js +64 -0
- package/dist/boot/archetypes/business/analytics.d.ts +2 -0
- package/dist/boot/archetypes/business/analytics.js +2 -0
- package/dist/boot/archetypes/business/definition.d.ts +26 -0
- package/dist/boot/archetypes/business/definition.js +127 -0
- package/dist/boot/archetypes/business/metrics.d.ts +27 -0
- package/dist/boot/archetypes/business/metrics.js +38 -0
- package/dist/boot/archetypes/business/nav.d.ts +7 -0
- package/dist/boot/archetypes/business/nav.js +19 -0
- package/dist/boot/archetypes/business/saas.d.ts +3 -0
- package/dist/boot/archetypes/business/saas.js +3 -0
- package/dist/boot/archetypes/conversational/ConversationalApp.svelte +108 -0
- package/dist/boot/archetypes/conversational/ConversationalApp.svelte.d.ts +7 -0
- package/dist/boot/archetypes/conversational/adapter.d.ts +24 -0
- package/dist/boot/archetypes/conversational/adapter.js +74 -0
- package/dist/boot/archetypes/conversational/index.d.ts +4 -0
- package/dist/boot/archetypes/conversational/index.js +4 -0
- package/dist/boot/archetypes/conversational/reply.d.ts +6 -0
- package/dist/boot/archetypes/conversational/reply.js +28 -0
- package/dist/boot/boot.d.ts +46 -0
- package/dist/boot/boot.js +96 -0
- package/dist/boot/cache/index.d.ts +90 -0
- package/dist/boot/cache/index.js +299 -0
- package/dist/boot/player-blueprint.d.ts +9 -0
- package/dist/boot/player-blueprint.js +13 -0
- package/dist/boot/review-endpoint.d.ts +7 -0
- package/dist/boot/review-endpoint.js +7 -0
- package/dist/boot/storage/index.d.ts +54 -0
- package/dist/boot/storage/index.js +170 -0
- package/dist/boot/validation/ValidationPanel.svelte +110 -0
- package/dist/boot/validation/ValidationPanel.svelte.d.ts +8 -0
- package/dist/boot/validation/index.d.ts +26 -0
- package/dist/boot/validation/index.js +50 -0
- package/dist/boot/validation/session.d.ts +71 -0
- package/dist/boot/validation/session.js +150 -0
- package/dist/boot/validation/store.d.ts +49 -0
- package/dist/boot/validation/store.js +82 -0
- package/dist/boot/worker/generate-worker-runtime.d.ts +7 -0
- package/dist/boot/worker/generate-worker-runtime.js +20 -0
- package/dist/boot/worker/generate-world-core.d.ts +4 -0
- package/dist/boot/worker/generate-world-core.js +8 -0
- package/dist/boot/worker/generate-world.d.ts +32 -0
- package/dist/boot/worker/generate-world.js +80 -0
- package/dist/boot/worker/generate.worker.d.ts +1 -0
- package/dist/boot/worker/generate.worker.js +2 -0
- package/dist/boot/worker/protocol.d.ts +13 -0
- package/dist/embed/client.d.ts +51 -0
- package/dist/embed/client.js +101 -0
- package/dist/embed/index.d.ts +32 -0
- package/dist/embed/index.js +37 -0
- package/dist/embed/listener.d.ts +37 -0
- package/dist/embed/listener.js +91 -0
- package/dist/embed/origins.d.ts +31 -0
- package/dist/embed/origins.js +67 -0
- package/dist/embed/protocol.d.ts +73 -0
- package/dist/embed/protocol.js +123 -0
- package/package.json +96 -3
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppModel, Blueprint } from '@protoyard/blueprint';
|
|
3
|
+
import { getRuntime } from '@protoyard/renderer-svelte';
|
|
4
|
+
import { createBilling } from '@protoyard/saas';
|
|
5
|
+
import { provideSaas, saasRoutes } from '@protoyard/saas-ui';
|
|
6
|
+
import { type Component, untrack } from 'svelte';
|
|
7
|
+
import { createBusinessAdapter } from './adapter.js';
|
|
8
|
+
import { PLAYER_BILLING_PLANS } from './definition.js';
|
|
9
|
+
import { withArchetypeNav } from './nav.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The blueprint's app with the SaaS kit: sign-up and sign-in, the onboarding
|
|
13
|
+
* wizard at the archetype's route, invitations, an inbox and simulated
|
|
14
|
+
* billing, all lazy kit routes. Settings and members stay the blueprint's.
|
|
15
|
+
*/
|
|
16
|
+
let {
|
|
17
|
+
blueprint,
|
|
18
|
+
model,
|
|
19
|
+
themeLibrary,
|
|
20
|
+
BlueprintApp,
|
|
21
|
+
}: {
|
|
22
|
+
blueprint: Blueprint;
|
|
23
|
+
model: AppModel;
|
|
24
|
+
themeLibrary?: () => Promise<{ id: string; name: string }[]>;
|
|
25
|
+
// biome-ignore lint/suspicious/noExplicitAny: the crud app component is passed through.
|
|
26
|
+
BlueprintApp: Component<any>;
|
|
27
|
+
} = $props();
|
|
28
|
+
|
|
29
|
+
const runtime = getRuntime();
|
|
30
|
+
// The kit context and routes are fixed for the app's lifetime (BlueprintApp reads them once).
|
|
31
|
+
const adapter = untrack(() => createBusinessAdapter(blueprint));
|
|
32
|
+
provideSaas(runtime, {
|
|
33
|
+
lazy: true,
|
|
34
|
+
onboardingPath: adapter.path,
|
|
35
|
+
billing: createBilling(runtime, PLAYER_BILLING_PLANS),
|
|
36
|
+
});
|
|
37
|
+
const extraRoutes = saasRoutes({
|
|
38
|
+
session: runtime.session,
|
|
39
|
+
lazy: true,
|
|
40
|
+
onboardingPath: adapter.path,
|
|
41
|
+
include: ['auth', 'onboarding', 'billing', 'invites', 'inbox'],
|
|
42
|
+
});
|
|
43
|
+
const appModel = $derived(withArchetypeNav(model, adapter));
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<BlueprintApp {blueprint} model={appModel} {themeLibrary} {extraRoutes} />
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AppModel, Blueprint } from '@protoyard/blueprint';
|
|
2
|
+
import { type Component } from 'svelte';
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
blueprint: Blueprint;
|
|
5
|
+
model: AppModel;
|
|
6
|
+
themeLibrary?: () => Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}[]>;
|
|
10
|
+
BlueprintApp: Component<any>;
|
|
11
|
+
};
|
|
12
|
+
declare const SaasApp: Component<$$ComponentProps, {}, "">;
|
|
13
|
+
type SaasApp = ReturnType<typeof SaasApp>;
|
|
14
|
+
export default SaasApp;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Blueprint, BlueprintArchetype, ScreenNavIcon } from '@protoyard/blueprint';
|
|
2
|
+
/**
|
|
3
|
+
* Business archetypes in the player (ADR-032): `saas-onboarding` and
|
|
4
|
+
* `analytics`. They keep the blueprint's whole CRUD app and add the kit's
|
|
5
|
+
* screens as extra routes, so the archetype is a destination in the same app,
|
|
6
|
+
* not a replacement for it. This module only reads the validated archetype
|
|
7
|
+
* block; it imports no kit.
|
|
8
|
+
*/
|
|
9
|
+
export type BusinessArchetype = Extract<BlueprintArchetype, {
|
|
10
|
+
id: 'saas-onboarding' | 'analytics';
|
|
11
|
+
}>;
|
|
12
|
+
export interface AnalyticsFields {
|
|
13
|
+
eventEntity: string;
|
|
14
|
+
metricEntity: string;
|
|
15
|
+
/** A `datetime` or `date` field the dashboard buckets by (`createdAt` without one). */
|
|
16
|
+
dateField: string;
|
|
17
|
+
/** An `enum` field the dashboard breaks events down by, when there is one. */
|
|
18
|
+
typeField: string | null;
|
|
19
|
+
typeValues: readonly string[];
|
|
20
|
+
/** A `money`, `number` or `integer` field the dashboard sums, when there is one. */
|
|
21
|
+
valueField: string | null;
|
|
22
|
+
valueUnit: 'cents' | 'number';
|
|
23
|
+
/** The value field's label for its KPI tile (`Revenue`). */
|
|
24
|
+
valueLabel: string;
|
|
25
|
+
metricNameField: string;
|
|
26
|
+
metricValueField: string | null;
|
|
27
|
+
}
|
|
28
|
+
export interface BusinessAdapter {
|
|
29
|
+
readonly id: BusinessArchetype['id'];
|
|
30
|
+
/** The kit screen's route (`/onboarding`, `/analytics`). */
|
|
31
|
+
readonly path: string;
|
|
32
|
+
readonly navLabel: string;
|
|
33
|
+
readonly navIcon: ScreenNavIcon;
|
|
34
|
+
/** Present for `analytics`. */
|
|
35
|
+
readonly analytics: AnalyticsFields | null;
|
|
36
|
+
/** Present for `saas-onboarding`: the blueprint entities the kit's workspace and member slots name. */
|
|
37
|
+
readonly saas: {
|
|
38
|
+
workspaceEntity: string;
|
|
39
|
+
memberEntity: string;
|
|
40
|
+
} | null;
|
|
41
|
+
}
|
|
42
|
+
export declare function isBusinessArchetype(blueprint: Blueprint): blueprint is Blueprint & {
|
|
43
|
+
archetype: BusinessArchetype;
|
|
44
|
+
};
|
|
45
|
+
export declare function createBusinessAdapter(blueprint: Blueprint): BusinessAdapter;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export function isBusinessArchetype(blueprint) {
|
|
2
|
+
const id = blueprint.archetype?.id;
|
|
3
|
+
return id === 'saas-onboarding' || id === 'analytics';
|
|
4
|
+
}
|
|
5
|
+
function entity(blueprint, name) {
|
|
6
|
+
const found = blueprint.entities.find((candidate) => candidate.name === name);
|
|
7
|
+
if (!found)
|
|
8
|
+
throw new Error(`The archetype names an unknown entity "${name}".`);
|
|
9
|
+
return found;
|
|
10
|
+
}
|
|
11
|
+
function analyticsFields(blueprint, slots) {
|
|
12
|
+
const events = entity(blueprint, slots.events);
|
|
13
|
+
const metrics = entity(blueprint, slots.metrics);
|
|
14
|
+
const date = events.fields.find((field) => field.kind === 'datetime') ??
|
|
15
|
+
events.fields.find((field) => field.kind === 'date');
|
|
16
|
+
const type = events.fields.find((field) => field.kind === 'enum');
|
|
17
|
+
const value = events.fields.find((field) => field.kind === 'money') ??
|
|
18
|
+
events.fields.find((field) => field.kind === 'number' || field.kind === 'integer');
|
|
19
|
+
const metricValue = metrics.fields.find((field) => field.kind === 'number' || field.kind === 'integer' || field.kind === 'money');
|
|
20
|
+
return {
|
|
21
|
+
eventEntity: events.name,
|
|
22
|
+
metricEntity: metrics.name,
|
|
23
|
+
dateField: date?.name ?? 'createdAt',
|
|
24
|
+
typeField: type?.name ?? null,
|
|
25
|
+
typeValues: type && 'values' in type ? type.values : [],
|
|
26
|
+
valueField: value?.name ?? null,
|
|
27
|
+
valueUnit: value?.kind === 'money' ? 'cents' : 'number',
|
|
28
|
+
valueLabel: value
|
|
29
|
+
? (value.label ?? value.name.charAt(0).toUpperCase() + value.name.slice(1))
|
|
30
|
+
: 'Value',
|
|
31
|
+
metricNameField: metrics.titleField,
|
|
32
|
+
metricValueField: metricValue?.name ?? null,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function createBusinessAdapter(blueprint) {
|
|
36
|
+
if (!isBusinessArchetype(blueprint)) {
|
|
37
|
+
throw new Error('The player business adapter needs a saas-onboarding or analytics archetype.');
|
|
38
|
+
}
|
|
39
|
+
const archetype = blueprint.archetype;
|
|
40
|
+
const path = archetype.screens[0].path;
|
|
41
|
+
if (archetype.id === 'analytics') {
|
|
42
|
+
return {
|
|
43
|
+
id: 'analytics',
|
|
44
|
+
path,
|
|
45
|
+
navLabel: 'Analytics',
|
|
46
|
+
navIcon: 'chart-line',
|
|
47
|
+
analytics: analyticsFields(blueprint, archetype.entities),
|
|
48
|
+
saas: null,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
entity(blueprint, archetype.entities.workspaces);
|
|
52
|
+
entity(blueprint, archetype.entities.members);
|
|
53
|
+
return {
|
|
54
|
+
id: 'saas-onboarding',
|
|
55
|
+
path,
|
|
56
|
+
navLabel: 'Get started',
|
|
57
|
+
navIcon: 'zap',
|
|
58
|
+
analytics: null,
|
|
59
|
+
saas: {
|
|
60
|
+
workspaceEntity: archetype.entities.workspaces,
|
|
61
|
+
memberEntity: archetype.entities.members,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Blueprint } from '@protoyard/blueprint';
|
|
2
|
+
import type { PrototypeDefinition } from '@protoyard/core';
|
|
3
|
+
export declare function withSaasKit(definition: PrototypeDefinition, blueprint: Blueprint): PrototypeDefinition;
|
|
4
|
+
/** Plans for the simulated billing screens (integer cents per seat; no card, no charge). */
|
|
5
|
+
export declare const PLAYER_BILLING_PLANS: readonly [{
|
|
6
|
+
readonly id: "starter";
|
|
7
|
+
readonly name: "Starter";
|
|
8
|
+
readonly unitAmountCents: 0;
|
|
9
|
+
readonly currency: "USD";
|
|
10
|
+
readonly interval: "month";
|
|
11
|
+
readonly trialDays: 14;
|
|
12
|
+
}, {
|
|
13
|
+
readonly id: "team";
|
|
14
|
+
readonly name: "Team";
|
|
15
|
+
readonly unitAmountCents: 1200;
|
|
16
|
+
readonly currency: "USD";
|
|
17
|
+
readonly interval: "month";
|
|
18
|
+
readonly trialDays: 14;
|
|
19
|
+
}, {
|
|
20
|
+
readonly id: "business";
|
|
21
|
+
readonly name: "Business";
|
|
22
|
+
readonly unitAmountCents: 4500;
|
|
23
|
+
readonly currency: "USD";
|
|
24
|
+
readonly interval: "month";
|
|
25
|
+
readonly trialDays: 14;
|
|
26
|
+
}];
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { BILLING_CAPABILITY, DEFAULT_ONBOARDING_CAPABILITY, generateSaasWorld, mergeIntegrity, SAAS_GENERATOR_VERSION, saasIntegrity, saasStores, WORKSPACE_CAPABILITIES, } from '@protoyard/saas';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the SaaS kit to a blueprint's runtime definition, the way
|
|
4
|
+
* docs/SAAS_KITS.md describes for a hand-written prototype:
|
|
5
|
+
*
|
|
6
|
+
* - the kit's `saas_*` stores in one more database version (the blueprint's
|
|
7
|
+
* own versions are untouched, so existing worlds upgrade in place);
|
|
8
|
+
* - kit integrity merged with the blueprint's;
|
|
9
|
+
* - kit rows (accounts, invitations, inbox, billing) generated from the same
|
|
10
|
+
* team the blueprint generator produced, after it, so worlds stay
|
|
11
|
+
* deterministic;
|
|
12
|
+
* - the kit's self-service capabilities for every role, and workspace,
|
|
13
|
+
* member and billing management for roles that may change the archetype's
|
|
14
|
+
* workspace entity.
|
|
15
|
+
*
|
|
16
|
+
* Simulated: sign-in, invitations and billing are UX, never security or a
|
|
17
|
+
* real provider.
|
|
18
|
+
*/
|
|
19
|
+
const SELF_SERVICE = [
|
|
20
|
+
DEFAULT_ONBOARDING_CAPABILITY,
|
|
21
|
+
'profile:update',
|
|
22
|
+
'settings:notifications',
|
|
23
|
+
'settings:security',
|
|
24
|
+
WORKSPACE_CAPABILITIES.create,
|
|
25
|
+
WORKSPACE_CAPABILITIES.leave,
|
|
26
|
+
];
|
|
27
|
+
const MANAGE = [
|
|
28
|
+
BILLING_CAPABILITY,
|
|
29
|
+
'members:invite',
|
|
30
|
+
'members:transfer',
|
|
31
|
+
WORKSPACE_CAPABILITIES.rename,
|
|
32
|
+
];
|
|
33
|
+
function canManage(capabilities, workspaceEntity) {
|
|
34
|
+
return capabilities.some((capability) => capability === '*' ||
|
|
35
|
+
capability === `${workspaceEntity}:*` ||
|
|
36
|
+
capability === `${workspaceEntity}:update` ||
|
|
37
|
+
capability === '*:update');
|
|
38
|
+
}
|
|
39
|
+
export function withSaasKit(definition, blueprint) {
|
|
40
|
+
const archetype = blueprint.archetype;
|
|
41
|
+
if (archetype?.id !== 'saas-onboarding')
|
|
42
|
+
return definition;
|
|
43
|
+
const versions = definition.database.versions;
|
|
44
|
+
const last = versions[versions.length - 1]?.version ?? 0;
|
|
45
|
+
const version = last + 1;
|
|
46
|
+
const roles = Object.fromEntries(Object.entries(definition.policy?.roles ?? {}).map(([role, capabilities]) => [
|
|
47
|
+
role,
|
|
48
|
+
[
|
|
49
|
+
...new Set([
|
|
50
|
+
...capabilities,
|
|
51
|
+
...SELF_SERVICE,
|
|
52
|
+
...(canManage(capabilities, archetype.entities.workspaces) ? MANAGE : []),
|
|
53
|
+
]),
|
|
54
|
+
],
|
|
55
|
+
]));
|
|
56
|
+
const baseGenerate = definition.generate;
|
|
57
|
+
// Kit rows need the runtime's GenerateContext (rng, faker, ids), so this
|
|
58
|
+
// archetype opts out of the context-free generateWorld path: the runtime
|
|
59
|
+
// then calls generate, whose base still generates in the worker.
|
|
60
|
+
const { generateWorld: _contextFree, ...rest } = definition;
|
|
61
|
+
return {
|
|
62
|
+
...rest,
|
|
63
|
+
manifest: {
|
|
64
|
+
...definition.manifest,
|
|
65
|
+
storage: { ...definition.manifest.storage, schemaVersion: version },
|
|
66
|
+
},
|
|
67
|
+
database: {
|
|
68
|
+
...definition.database,
|
|
69
|
+
versions: [...versions, { version, stores: saasStores() }],
|
|
70
|
+
},
|
|
71
|
+
integrity: mergeIntegrity(definition.integrity, saasIntegrity()),
|
|
72
|
+
policy: { ...definition.policy, roles },
|
|
73
|
+
generatorVersion: ((definition.generatorVersion ?? 1) * 31 + SAAS_GENERATOR_VERSION) >>> 0,
|
|
74
|
+
async generate(ctx) {
|
|
75
|
+
const base = await baseGenerate(ctx);
|
|
76
|
+
const organization = base.organizations.find((candidate) => candidate.id === ctx.scenario.organization.id) ??
|
|
77
|
+
base.organizations[0];
|
|
78
|
+
const actor = base.personas.find((candidate) => candidate.id === ctx.scenario.actor.id) ??
|
|
79
|
+
base.personas[0];
|
|
80
|
+
if (!organization || !actor)
|
|
81
|
+
return base;
|
|
82
|
+
const saas = generateSaasWorld(ctx, {
|
|
83
|
+
team: {
|
|
84
|
+
organizations: base.organizations,
|
|
85
|
+
personas: base.personas,
|
|
86
|
+
memberships: base.memberships,
|
|
87
|
+
organization,
|
|
88
|
+
actor,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
...base,
|
|
93
|
+
organizations: saas.organizations,
|
|
94
|
+
personas: saas.personas,
|
|
95
|
+
memberships: saas.memberships,
|
|
96
|
+
tables: { ...base.tables, ...saas.tables },
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/** Plans for the simulated billing screens (integer cents per seat; no card, no charge). */
|
|
102
|
+
export const PLAYER_BILLING_PLANS = [
|
|
103
|
+
{
|
|
104
|
+
id: 'starter',
|
|
105
|
+
name: 'Starter',
|
|
106
|
+
unitAmountCents: 0,
|
|
107
|
+
currency: 'USD',
|
|
108
|
+
interval: 'month',
|
|
109
|
+
trialDays: 14,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: 'team',
|
|
113
|
+
name: 'Team',
|
|
114
|
+
unitAmountCents: 1200,
|
|
115
|
+
currency: 'USD',
|
|
116
|
+
interval: 'month',
|
|
117
|
+
trialDays: 14,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'business',
|
|
121
|
+
name: 'Business',
|
|
122
|
+
unitAmountCents: 4500,
|
|
123
|
+
currency: 'USD',
|
|
124
|
+
interval: 'month',
|
|
125
|
+
trialDays: 14,
|
|
126
|
+
},
|
|
127
|
+
];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type DateRange } from '@protoyard/analytics';
|
|
2
|
+
import type { DateRangeValue } from '@protoyard/analytics-ui/date-range';
|
|
3
|
+
import type { Row } from '@protoyard/core';
|
|
4
|
+
import type { AnalyticsFields } from './adapter.ts';
|
|
5
|
+
/**
|
|
6
|
+
* Pure dashboard numbers from event rows: the totals for the selected range,
|
|
7
|
+
* the same numbers for the comparison range, and a breakdown by type.
|
|
8
|
+
* Deterministic for the same rows, range and simulated "now".
|
|
9
|
+
*/
|
|
10
|
+
export interface DashboardNumbers {
|
|
11
|
+
range: DateRange;
|
|
12
|
+
previous: DateRange | null;
|
|
13
|
+
events: {
|
|
14
|
+
current: number;
|
|
15
|
+
previous: number | null;
|
|
16
|
+
};
|
|
17
|
+
value: {
|
|
18
|
+
current: number;
|
|
19
|
+
previous: number | null;
|
|
20
|
+
} | null;
|
|
21
|
+
byType: {
|
|
22
|
+
type: string;
|
|
23
|
+
count: number;
|
|
24
|
+
previous: number | null;
|
|
25
|
+
}[];
|
|
26
|
+
}
|
|
27
|
+
export declare function dashboardNumbers(rows: readonly Row[], fields: AnalyticsFields, value: DateRangeValue, now: number): DashboardNumbers;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { comparisonRange, resolveDateRange } from '@protoyard/analytics';
|
|
2
|
+
function timeOf(row, field) {
|
|
3
|
+
const raw = row[field];
|
|
4
|
+
if (typeof raw !== 'string')
|
|
5
|
+
return null;
|
|
6
|
+
const ms = Date.parse(raw);
|
|
7
|
+
return Number.isNaN(ms) ? null : ms;
|
|
8
|
+
}
|
|
9
|
+
const within = (rows, field, range) => rows.filter((row) => {
|
|
10
|
+
const at = timeOf(row, field);
|
|
11
|
+
return at !== null && at >= range.start && at < range.end;
|
|
12
|
+
});
|
|
13
|
+
const sum = (rows, field) => rows.reduce((total, row) => total + (typeof row[field] === 'number' ? row[field] : 0), 0);
|
|
14
|
+
export function dashboardNumbers(rows, fields, value, now) {
|
|
15
|
+
const range = resolveDateRange(value.range, now);
|
|
16
|
+
const previous = comparisonRange(range, value.comparison);
|
|
17
|
+
const current = within(rows, fields.dateField, range);
|
|
18
|
+
const before = previous ? within(rows, fields.dateField, previous) : null;
|
|
19
|
+
const typeField = fields.typeField;
|
|
20
|
+
return {
|
|
21
|
+
range,
|
|
22
|
+
previous,
|
|
23
|
+
events: { current: current.length, previous: before ? before.length : null },
|
|
24
|
+
value: fields.valueField
|
|
25
|
+
? {
|
|
26
|
+
current: sum(current, fields.valueField),
|
|
27
|
+
previous: before ? sum(before, fields.valueField) : null,
|
|
28
|
+
}
|
|
29
|
+
: null,
|
|
30
|
+
byType: typeField
|
|
31
|
+
? fields.typeValues.map((type) => ({
|
|
32
|
+
type,
|
|
33
|
+
count: current.filter((row) => row[typeField] === type).length,
|
|
34
|
+
previous: before ? before.filter((row) => row[typeField] === type).length : null,
|
|
35
|
+
}))
|
|
36
|
+
: [],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AppModel } from '@protoyard/blueprint';
|
|
2
|
+
import type { BusinessAdapter } from './adapter.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The app model with the archetype's screen in navigation: right after Home,
|
|
5
|
+
* and first in the Overview group, so the kit screen is one click away.
|
|
6
|
+
*/
|
|
7
|
+
export declare function withArchetypeNav(model: AppModel, adapter: BusinessAdapter): AppModel;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The app model with the archetype's screen in navigation: right after Home,
|
|
3
|
+
* and first in the Overview group, so the kit screen is one click away.
|
|
4
|
+
*/
|
|
5
|
+
export function withArchetypeNav(model, adapter) {
|
|
6
|
+
if (model.nav.some((item) => item.path === adapter.path))
|
|
7
|
+
return model;
|
|
8
|
+
const item = { path: adapter.path, label: adapter.navLabel, icon: adapter.navIcon };
|
|
9
|
+
const [home, ...rest] = model.nav;
|
|
10
|
+
const groups = model.navGroups.map((group, index) => index === 0
|
|
11
|
+
? { ...group, paths: [group.paths[0] ?? '/', adapter.path, ...group.paths.slice(1)] }
|
|
12
|
+
: group);
|
|
13
|
+
return {
|
|
14
|
+
...model,
|
|
15
|
+
nav: home ? [home, item, ...rest] : [item],
|
|
16
|
+
navGroups: groups.length > 0 ? groups : [{ label: 'Overview', paths: [adapter.path] }],
|
|
17
|
+
icons: model.icons.includes(adapter.navIcon) ? model.icons : [...model.icons, adapter.navIcon],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AssistantSendInput } from '@protoyard/ai-ui';
|
|
3
|
+
import { type Blueprint, createEntityServices } from '@protoyard/blueprint';
|
|
4
|
+
import { getRuntime, liveQuery } from '@protoyard/renderer-svelte';
|
|
5
|
+
import { ErrorState, LoadingState } from '@protoyard/ui';
|
|
6
|
+
import { createConversationalAdapter } from './adapter.js';
|
|
7
|
+
import { scriptedReply } from './reply.js';
|
|
8
|
+
|
|
9
|
+
let { blueprint }: { blueprint: Blueprint } = $props();
|
|
10
|
+
const runtime = getRuntime();
|
|
11
|
+
// Derived from the prop, so a different blueprint rebuilds the services and queries.
|
|
12
|
+
const services = $derived(createEntityServices(runtime, blueprint));
|
|
13
|
+
const adapter = $derived(createConversationalAdapter(blueprint));
|
|
14
|
+
const conversationService = $derived(services[adapter.conversationEntity]);
|
|
15
|
+
const messageService = $derived(services[adapter.messageEntity]);
|
|
16
|
+
const memberService = $derived(adapter.memberEntity ? services[adapter.memberEntity] : undefined);
|
|
17
|
+
|
|
18
|
+
const conversationRows = liveQuery(() => conversationService?.list() ?? Promise.resolve([]), {
|
|
19
|
+
initial: [],
|
|
20
|
+
deps: () => [conversationService],
|
|
21
|
+
});
|
|
22
|
+
const messageRows = liveQuery(() => messageService?.list() ?? Promise.resolve([]), {
|
|
23
|
+
initial: [],
|
|
24
|
+
deps: () => [messageService],
|
|
25
|
+
});
|
|
26
|
+
const memberRows = liveQuery(() => memberService?.list() ?? Promise.resolve([]), {
|
|
27
|
+
initial: [],
|
|
28
|
+
deps: () => [memberService],
|
|
29
|
+
});
|
|
30
|
+
const conversations = $derived(adapter.conversations(conversationRows.current ?? []));
|
|
31
|
+
let selectedId = $state('');
|
|
32
|
+
const actorId = $derived(memberRows.current?.[0] ? String(memberRows.current[0].id) : undefined);
|
|
33
|
+
const messages = $derived(adapter.messages(messageRows.current ?? [], selectedId, actorId));
|
|
34
|
+
const kit = import('@protoyard/ai-ui');
|
|
35
|
+
|
|
36
|
+
$effect(() => {
|
|
37
|
+
if (!conversations.some((conversation) => conversation.id === selectedId)) {
|
|
38
|
+
selectedId = conversations[0]?.id ?? '';
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
async function send(conversationId: string, input: AssistantSendInput): Promise<boolean> {
|
|
43
|
+
if (!messageService) return false;
|
|
44
|
+
const prompt = input.prompt.trim();
|
|
45
|
+
if (!prompt) return false;
|
|
46
|
+
const now = runtime.clock.now().toISOString();
|
|
47
|
+
await messageService.create(adapter.messageInput(conversationId, prompt, now, 'user', actorId));
|
|
48
|
+
const reply = await scriptedReply(runtime, conversationId, prompt);
|
|
49
|
+
await messageService.create(
|
|
50
|
+
adapter.messageInput(conversationId, reply, runtime.clock.now().toISOString(), 'assistant')
|
|
51
|
+
);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function rename(conversationId: string, title: string): Promise<void> {
|
|
56
|
+
if (!conversationService) return;
|
|
57
|
+
const clean = title.trim();
|
|
58
|
+
if (!clean) return;
|
|
59
|
+
await conversationService.update(
|
|
60
|
+
conversationId,
|
|
61
|
+
blueprint.archetype?.id === 'team-chat' ? { name: clean } : { title: clean }
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function selectConversation(id: string): void {
|
|
66
|
+
selectedId = id;
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<!--
|
|
71
|
+
The CRUD app paints its surface through LayoutHost; this archetype has no layout,
|
|
72
|
+
so it paints the theme background itself (otherwise dark mode shows the browser's
|
|
73
|
+
white canvas behind dark-theme text).
|
|
74
|
+
-->
|
|
75
|
+
<div class="min-h-full bg-background text-foreground" data-testid="player-conversational-surface">
|
|
76
|
+
<section
|
|
77
|
+
class="mx-auto w-full max-w-7xl px-4 py-6 pb-safe sm:px-6 lg:px-8"
|
|
78
|
+
data-testid="player-conversational-archetype"
|
|
79
|
+
data-archetype={adapter.id}
|
|
80
|
+
data-route={adapter.path}
|
|
81
|
+
>
|
|
82
|
+
<div class="mb-4">
|
|
83
|
+
<p class="text-xs font-medium uppercase tracking-wide text-muted-foreground">{adapter.id === 'team-chat' ? 'Team chat' : 'Assistant workspace'} · Simulated</p>
|
|
84
|
+
<h1 class="text-2xl font-semibold">{blueprint.name}</h1>
|
|
85
|
+
</div>
|
|
86
|
+
{#if conversationRows.error || messageRows.error}
|
|
87
|
+
<ErrorState title="The conversation could not be loaded" message="The simulated conversation data is unavailable." />
|
|
88
|
+
{:else if conversationRows.loading || messageRows.loading}
|
|
89
|
+
<LoadingState label="Loading conversations" class="py-16" />
|
|
90
|
+
{:else}
|
|
91
|
+
{#await kit then { AssistantWorkspace }}
|
|
92
|
+
<AssistantWorkspace
|
|
93
|
+
{conversations}
|
|
94
|
+
{messages}
|
|
95
|
+
selectedConversationId={selectedId}
|
|
96
|
+
onSend={send}
|
|
97
|
+
onSelectConversation={selectConversation}
|
|
98
|
+
onRenameConversation={rename}
|
|
99
|
+
/>
|
|
100
|
+
{:catch error}
|
|
101
|
+
<ErrorState
|
|
102
|
+
title="The conversational kit could not be loaded"
|
|
103
|
+
message={error instanceof Error ? error.message : String(error)}
|
|
104
|
+
/>
|
|
105
|
+
{/await}
|
|
106
|
+
{/if}
|
|
107
|
+
</section>
|
|
108
|
+
</div>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Blueprint } from '@protoyard/blueprint';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
blueprint: Blueprint;
|
|
4
|
+
};
|
|
5
|
+
declare const ConversationalApp: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type ConversationalApp = ReturnType<typeof ConversationalApp>;
|
|
7
|
+
export default ConversationalApp;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AssistantConversation, AssistantMessage } from '@protoyard/ai-ui';
|
|
2
|
+
import type { Blueprint, BlueprintArchetype } from '@protoyard/blueprint';
|
|
3
|
+
import type { Row } from '@protoyard/core';
|
|
4
|
+
type ConversationalArchetype = Extract<BlueprintArchetype, {
|
|
5
|
+
id: 'assistant' | 'team-chat';
|
|
6
|
+
}>;
|
|
7
|
+
export interface ConversationalAdapter {
|
|
8
|
+
readonly id: ConversationalArchetype['id'];
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly conversationEntity: string;
|
|
11
|
+
readonly messageEntity: string;
|
|
12
|
+
readonly memberEntity?: string;
|
|
13
|
+
readonly parentProperty: 'conversationId' | 'roomId';
|
|
14
|
+
readonly contentProperty: 'content' | 'body';
|
|
15
|
+
conversations(rows: readonly Row[]): AssistantConversation[];
|
|
16
|
+
messages(rows: readonly Row[], conversationId: string, actorId?: string): AssistantMessage[];
|
|
17
|
+
messageInput(conversationId: string, content: string, now: string, role: 'user' | 'assistant', actorId?: string): Record<string, unknown>;
|
|
18
|
+
conversationInput(title: string): Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export declare function isConversationalArchetype(blueprint: Blueprint): blueprint is Blueprint & {
|
|
21
|
+
archetype: ConversationalArchetype;
|
|
22
|
+
};
|
|
23
|
+
export declare function createConversationalAdapter(blueprint: Blueprint): ConversationalAdapter;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
function text(row, property, fallback) {
|
|
2
|
+
const value = row[property];
|
|
3
|
+
return typeof value === 'string' && value.trim() ? value : fallback;
|
|
4
|
+
}
|
|
5
|
+
function timestamp(row) {
|
|
6
|
+
return text(row, 'updatedAt', text(row, 'createdAt', '1970-01-01T00:00:00.000Z'));
|
|
7
|
+
}
|
|
8
|
+
function idOf(row) {
|
|
9
|
+
return String(row.id);
|
|
10
|
+
}
|
|
11
|
+
export function isConversationalArchetype(blueprint) {
|
|
12
|
+
const id = blueprint.archetype?.id;
|
|
13
|
+
return id === 'assistant' || id === 'team-chat';
|
|
14
|
+
}
|
|
15
|
+
export function createConversationalAdapter(blueprint) {
|
|
16
|
+
if (!isConversationalArchetype(blueprint)) {
|
|
17
|
+
throw new Error('The player conversational adapter needs an assistant or team-chat archetype.');
|
|
18
|
+
}
|
|
19
|
+
const archetype = blueprint.archetype;
|
|
20
|
+
const teamChat = archetype.id === 'team-chat';
|
|
21
|
+
const conversationEntity = teamChat ? archetype.entities.rooms : archetype.entities.conversations;
|
|
22
|
+
const messageEntity = archetype.entities.messages;
|
|
23
|
+
const memberEntity = teamChat ? archetype.entities.members : undefined;
|
|
24
|
+
const parentProperty = teamChat ? 'roomId' : 'conversationId';
|
|
25
|
+
const contentProperty = teamChat ? 'body' : 'content';
|
|
26
|
+
return {
|
|
27
|
+
id: archetype.id,
|
|
28
|
+
path: archetype.screens[0].path,
|
|
29
|
+
conversationEntity,
|
|
30
|
+
messageEntity,
|
|
31
|
+
memberEntity,
|
|
32
|
+
parentProperty,
|
|
33
|
+
contentProperty,
|
|
34
|
+
conversations(rows) {
|
|
35
|
+
return rows.map((row) => ({
|
|
36
|
+
id: idOf(row),
|
|
37
|
+
title: text(row, teamChat ? 'name' : 'title', 'New conversation'),
|
|
38
|
+
updatedAt: timestamp(row),
|
|
39
|
+
...(typeof row.pinned === 'boolean' ? { pinned: row.pinned } : {}),
|
|
40
|
+
...(typeof row.folder === 'string' ? { folder: row.folder } : {}),
|
|
41
|
+
}));
|
|
42
|
+
},
|
|
43
|
+
messages(rows, conversationId, actorId) {
|
|
44
|
+
return rows
|
|
45
|
+
.filter((row) => String(row[parentProperty]) === conversationId)
|
|
46
|
+
.map((row) => ({
|
|
47
|
+
id: idOf(row),
|
|
48
|
+
role: teamChat && actorId
|
|
49
|
+
? String(row.authorId) === actorId
|
|
50
|
+
? 'user'
|
|
51
|
+
: 'assistant'
|
|
52
|
+
: row.role === 'user'
|
|
53
|
+
? 'user'
|
|
54
|
+
: 'assistant',
|
|
55
|
+
content: text(row, contentProperty, ''),
|
|
56
|
+
createdAt: text(row, 'sentAt', timestamp(row)),
|
|
57
|
+
}));
|
|
58
|
+
},
|
|
59
|
+
messageInput(conversationId, content, now, role, actorId) {
|
|
60
|
+
if (teamChat) {
|
|
61
|
+
return {
|
|
62
|
+
body: content,
|
|
63
|
+
roomId: conversationId,
|
|
64
|
+
sentAt: now,
|
|
65
|
+
...(actorId && role === 'user' ? { authorId: actorId } : {}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return { content, role, conversationId, sentAt: now };
|
|
69
|
+
},
|
|
70
|
+
conversationInput(title) {
|
|
71
|
+
return teamChat ? { name: title, visibility: 'public' } : { title, status: 'active' };
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Lazy conversational archetype entry: assistant and team-chat share the AI UI kit. */
|
|
2
|
+
export { type ConversationalAdapter, createConversationalAdapter, isConversationalArchetype, } from './adapter.ts';
|
|
3
|
+
export { default as ConversationalApp } from './ConversationalApp.svelte';
|
|
4
|
+
export { scriptedReply } from './reply.ts';
|