@protoyard/player 1.1.0 → 1.1.1

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.
Files changed (855) hide show
  1. package/README.md +13 -25
  2. package/dist/app/.vite/manifest.json +2888 -2888
  3. package/dist/app/assets/Accept-CGkL5IVT.js +1 -0
  4. package/dist/app/assets/ActivityFeed-DMLYUJnO.js +1 -0
  5. package/dist/app/assets/AgendaView-BoJCiSNv.css +1 -0
  6. package/dist/app/assets/AgendaView-C_birR0h.js +1 -0
  7. package/dist/app/assets/Alert-BxM9whyb.js +1 -0
  8. package/dist/app/assets/AlertDialog-Dz9nkXWl.js +1 -0
  9. package/dist/app/assets/AlertDialog-Haq7IhWm.js +1 -0
  10. package/dist/app/assets/AlertDialog-nZ-QMI_Q.css +1 -0
  11. package/dist/app/assets/AlertSurface-B-Z7YWCM.js +1 -0
  12. package/dist/app/assets/AnalyticsDashboard-B2ehbJfC.js +1 -0
  13. package/dist/app/assets/AnalyticsDashboard-Dl7vfTc-.css +1 -0
  14. package/dist/app/assets/AppNav-Cqh-81ZK.js +2 -0
  15. package/dist/app/assets/AppNavDrawer-CraL8gep.js +1 -0
  16. package/dist/app/assets/AuditHistory-CXwIZYZl.js +1 -0
  17. package/dist/app/assets/AuthSplitHostLayout-BBmShp6K.js +1 -0
  18. package/dist/app/assets/Avatar-CqXbF4uK.js +1 -0
  19. package/dist/app/assets/Avatar-D6dmuwto.js +1 -0
  20. package/dist/app/assets/AvatarPicker-sDE9_lak.js +1 -0
  21. package/dist/app/assets/Axis-x-uG1NRy.js +1 -0
  22. package/dist/app/assets/Badge-CRhJ8sWH.js +1 -0
  23. package/dist/app/assets/BigStat-5Dlwgi6p.js +1 -0
  24. package/dist/app/assets/BigStat-Bk9Diq8w.css +1 -0
  25. package/dist/app/assets/BlockHost-BVn3KygM.js +2 -0
  26. package/dist/app/assets/BlockIcon-CrDIGMcW.js +1 -0
  27. package/dist/app/assets/BlockRenderer-D8RTz2Ra.js +1 -0
  28. package/dist/app/assets/BlockRenderer-DJQc-O2d.js +1 -0
  29. package/dist/app/assets/BoardMoveMenu-BoLySSiq.js +1 -0
  30. package/dist/app/assets/BrowserChrome-CLhhjfV9.js +1 -0
  31. package/dist/app/assets/BrowserFrame-CpGSoGOz.js +1 -0
  32. package/dist/app/assets/Button-_rgUrOXL.js +1 -0
  33. package/dist/app/assets/CalendarMoveMenu-Cr1Keu3y.css +1 -0
  34. package/dist/app/assets/CalendarMoveMenu-ZVPWd0K3.js +1 -0
  35. package/dist/app/assets/Card-BrCr7hZi.js +1 -0
  36. package/dist/app/assets/CardDescription-Dw37vYyc.js +1 -0
  37. package/dist/app/assets/CardFooter-C1Lf9S3G.js +1 -0
  38. package/dist/app/assets/CardImage-CKJHH6N9.js +1 -0
  39. package/dist/app/assets/CardTitle-D0DAv1yG.js +1 -0
  40. package/dist/app/assets/CellEditor-C52Vp08I.js +1 -0
  41. package/dist/app/assets/ChartAnswer-zNYESHaD.js +2 -0
  42. package/dist/app/assets/ChartRoot-CzBaOrPA.js +1 -0
  43. package/dist/app/assets/ChartSlide-BdCjq_zK.css +1 -0
  44. package/dist/app/assets/ChartSlide-C_HN8BJy.js +1 -0
  45. package/dist/app/assets/ChartTable-Byb9S_QK.js +1 -0
  46. package/dist/app/assets/ChatWorkspaceHost-CXDZbfEI.js +1 -0
  47. package/dist/app/assets/Checkbox-D5lHY5ZQ.js +1 -0
  48. package/dist/app/assets/Checkout-jh0eFlmr.js +3 -0
  49. package/dist/app/assets/ChromeIcon-CE_UXRfl.js +1 -0
  50. package/dist/app/assets/ChromeIcon-DktINEqy.css +1 -0
  51. package/dist/app/assets/ChromeTooltip-Cj4JqYq1.css +1 -0
  52. package/dist/app/assets/ChromeTooltip-DQfokD5S.js +1 -0
  53. package/dist/app/assets/Close-COceBUJV.js +1 -0
  54. package/dist/app/assets/ClosingCta-BnEawssQ.js +1 -0
  55. package/dist/app/assets/ClosingCta-CKgLaqve.css +1 -0
  56. package/dist/app/assets/Code-0eXheR4p.js +1 -0
  57. package/dist/app/assets/CodeBlockView-BZEQ9CiS.js +3 -0
  58. package/dist/app/assets/CodeEditorHost-BTvdKo9G.js +2 -0
  59. package/dist/app/assets/CodeWithCallout-AxtGHMWp.js +1 -0
  60. package/dist/app/assets/CodeWithCallout-Pccn1G4N.css +1 -0
  61. package/dist/app/assets/ColorControl-CsJCYo0M.js +1 -0
  62. package/dist/app/assets/ComparisonTable-D2hhz7N3.css +1 -0
  63. package/dist/app/assets/ComparisonTable-DrRE2HJs.js +1 -0
  64. package/dist/app/assets/Consent-BpdpIOZo.js +1 -0
  65. package/dist/app/assets/Content-B9dQiA5c.js +1 -0
  66. package/dist/app/assets/CustomSlide-CTjTLR5q.js +1 -0
  67. package/dist/app/assets/DashboardGridLayout-B8BIaiRS.js +1 -0
  68. package/dist/app/assets/DataBlockView-CN7uuQkq.css +1 -0
  69. package/dist/app/assets/DataBlockView-CxxPN79x.js +2 -0
  70. package/dist/app/assets/DataTable-DDPhYAAe.js +1 -0
  71. package/dist/app/assets/DateControl-B9nK0RaB.js +1 -0
  72. package/dist/app/assets/DatePicker-BvUwj5Z1.js +1 -0
  73. package/dist/app/assets/DateTimeControl-rw4lFEpB.js +1 -0
  74. package/dist/app/assets/DeckDebugPanel-CI5sPaz7.js +2 -0
  75. package/dist/app/assets/DeckPrintPages-BRhPtDTj.css +1 -0
  76. package/dist/app/assets/DeckPrintPages-CfsHNafR.js +2 -0
  77. package/dist/app/assets/DeckSlidePreview-CSk2TAJf.css +1 -0
  78. package/dist/app/assets/DeckSlidePreview-NgmyCnLI.js +1 -0
  79. package/dist/app/assets/DeckStudioPanel-D3cqYfG0.js +1 -0
  80. package/dist/app/assets/Description-B0VtOkN1.js +1 -0
  81. package/dist/app/assets/DesignCanvasHost-DgpgyEgk.js +1 -0
  82. package/dist/app/assets/DesignSystemStudio-DvPBGvF3.js +1 -0
  83. package/dist/app/assets/DesktopWindowFrame-DoIUKy7b.js +1 -0
  84. package/dist/app/assets/DiagramFamily-DwO6z5ji.js +1 -0
  85. package/dist/app/assets/Dialog-DQs7mloK.js +1 -0
  86. package/dist/app/assets/DocEditor-BViZqV0C.css +1 -0
  87. package/dist/app/assets/DocEditor-DU1WoXfI.js +14 -0
  88. package/dist/app/assets/DocNotice-SpRy0Qbj.js +1 -0
  89. package/dist/app/assets/DocsLayout-Dls8HBPp.js +1 -0
  90. package/dist/app/assets/DualSidebarLayout-ArUd2K3r.js +1 -0
  91. package/dist/app/assets/EmbedBlockView-DL29RLMk.js +1 -0
  92. package/dist/app/assets/EmbedBlockView-DbLGZ0Zk.css +1 -0
  93. package/dist/app/assets/EmptyState-DoCJlewL.js +1 -0
  94. package/dist/app/assets/EntityDetail-BsYPvHiO.js +2 -0
  95. package/dist/app/assets/EntityForm-BcVXXsPy.js +2 -0
  96. package/dist/app/assets/EntityList-DUF_f21S.js +2 -0
  97. package/dist/app/assets/ErrorState-ZN9W18_A.js +1 -0
  98. package/dist/app/assets/EventButton-CMlhcc11.css +1 -0
  99. package/dist/app/assets/EventButton-D1j4ayNL.js +1 -0
  100. package/dist/app/assets/ExtensionPopupFrame-bOfOlsku.js +1 -0
  101. package/dist/app/assets/Field-uGkaxoeW.js +1 -0
  102. package/dist/app/assets/FileControl-BSc05YVU.js +1 -0
  103. package/dist/app/assets/FileInput-DfbaFJjK.js +1 -0
  104. package/dist/app/assets/FileUpload-C58M1WUA.js +1 -0
  105. package/dist/app/assets/FilesPanel-oF7fXK8Z.js +1 -0
  106. package/dist/app/assets/FirstRunHint-BU_etcjO.js +1 -0
  107. package/dist/app/assets/FirstRunHint-Cznbatyp.css +1 -0
  108. package/dist/app/assets/FormBlock-CGPd3ZgN.js +1 -0
  109. package/dist/app/assets/FreeSlide-C4gb14Pb.js +1 -0
  110. package/dist/app/assets/FullscreenOverlay-DhVdxMK5.css +1 -0
  111. package/dist/app/assets/FullscreenOverlay-WRO4spsA.js +1 -0
  112. package/dist/app/assets/HostSlot-BRbppBYk.js +1 -0
  113. package/dist/app/assets/Icon-CRpKDuC7.js +1 -0
  114. package/dist/app/assets/Icon-DhNPWeWS.js +1 -0
  115. package/dist/app/assets/Icon-Dp7XOf8B.js +1 -0
  116. package/dist/app/assets/IconButton-CAhITzFQ.js +1 -0
  117. package/dist/app/assets/Image-BH2P4wNC.js +1 -0
  118. package/dist/app/assets/Image-BqPB6TMh.css +1 -0
  119. package/dist/app/assets/ImageFullBleed-CMruFy_r.css +1 -0
  120. package/dist/app/assets/ImageFullBleed-DrqoYgYe.js +1 -0
  121. package/dist/app/assets/Inbox-DxNeTx40.js +1 -0
  122. package/dist/app/assets/Input-CF7GrLbV.js +1 -0
  123. package/dist/app/assets/Input-D-wg5ud0.js +1 -0
  124. package/dist/app/assets/InteractiveBlockView-Z81KgLnX.js +2 -0
  125. package/dist/app/assets/InteractivePlot-BSvfeZF0.js +2 -0
  126. package/dist/app/assets/InteractiveTable-Cggdql8G.js +1 -0
  127. package/dist/app/assets/Kbd-CZUQIsAX.js +1 -0
  128. package/dist/app/assets/KeyboardHelp-D3nZstlH.css +1 -0
  129. package/dist/app/assets/KeyboardHelp-cvDZwmkT.js +1 -0
  130. package/dist/app/assets/KpiTile-Bt5U5Udm.js +1 -0
  131. package/dist/app/assets/LaserPointer-BtSKWTuX.css +1 -0
  132. package/dist/app/assets/LaserPointer-DbFgkMGg.js +1 -0
  133. package/dist/app/assets/LayoutChrome-CAx0No-E.js +1 -0
  134. package/dist/app/assets/LayoutImage-CckWKV6C.js +1 -0
  135. package/dist/app/assets/LayoutImage-DYaBBBD7.css +1 -0
  136. package/dist/app/assets/LayoutVideo-BuJ_rxqB.css +1 -0
  137. package/dist/app/assets/LayoutVideo-CT5hgZXC.js +2 -0
  138. package/dist/app/assets/Legend-Dzpk5lDl.js +1 -0
  139. package/dist/app/assets/Link-DUtdbfue.js +1 -0
  140. package/dist/app/assets/LoadingState-aqt3fEhx.js +1 -0
  141. package/dist/app/assets/LucideIcon-DSpLZVOH.js +1 -0
  142. package/dist/app/assets/MagicLink-D7uwYdkP.js +1 -0
  143. package/dist/app/assets/MapBlockView-CATTVnRf.css +1 -0
  144. package/dist/app/assets/MapBlockView-CQPWuDWt.js +1 -0
  145. package/dist/app/assets/MarketingLayout-fRIgvioc.js +1 -0
  146. package/dist/app/assets/MasterDetailLayout-a35jW57j.js +1 -0
  147. package/dist/app/assets/MediaBlockView-2Z9UujRP.css +1 -0
  148. package/dist/app/assets/MediaBlockView-BQs_QISd.js +1 -0
  149. package/dist/app/assets/MediaCentered-Bv5FQEBG.js +1 -0
  150. package/dist/app/assets/MediaCentered-D1jAraam.css +1 -0
  151. package/dist/app/assets/MediaSide-DPvF8q9o.js +1 -0
  152. package/dist/app/assets/MediaSide-DzvDKntG.css +1 -0
  153. package/dist/app/assets/MenuSeparator-BS2o3DZi.js +1 -0
  154. package/dist/app/assets/MessageText-BBXy3k9_.js +1 -0
  155. package/dist/app/assets/Mfa-BFMnSCaT.js +1 -0
  156. package/dist/app/assets/MobileDrawerLayout-b8EsVHmM.js +1 -0
  157. package/dist/app/assets/MobileFrame-3CIRTooD.js +1 -0
  158. package/dist/app/assets/MobileTabsLayout-iucCasKY.js +1 -0
  159. package/dist/app/assets/MonthView-BSClld3Q.css +1 -0
  160. package/dist/app/assets/MonthView-D82M_gw6.js +1 -0
  161. package/dist/app/assets/MoreMenu-BLH-5Gvp.js +1 -0
  162. package/dist/app/assets/MoreMenu-CkIrG5F9.css +1 -0
  163. package/dist/app/assets/Notice-adNYURnx.js +1 -0
  164. package/dist/app/assets/Onboarding-DRlA5bwT.js +1 -0
  165. package/dist/app/assets/OverlayOutlet-CRs5G14T.js +1 -0
  166. package/dist/app/assets/PhoneCode-DECg0q7X.js +1 -0
  167. package/dist/app/assets/PhoneFrame-CJo4PU9H.js +1 -0
  168. package/dist/app/assets/PhoneSignIn-C17yjqRm.js +1 -0
  169. package/dist/app/assets/Plans-IP22KPeu.js +1 -0
  170. package/dist/app/assets/Popover-BJa4rwXq.js +1 -0
  171. package/dist/app/assets/Portal-DAmplzko.js +1 -0
  172. package/dist/app/assets/PresenterStatus-BG4uEwkH.js +1 -0
  173. package/dist/app/assets/PresenterStatus-Dh5bOtYL.css +1 -0
  174. package/dist/app/assets/PresenterUpNext-BD84Svjl.js +1 -0
  175. package/dist/app/assets/PresenterUpNext-D-Xx2UBn.css +1 -0
  176. package/dist/app/assets/ProcessSteps-Bzu0rGe6.js +1 -0
  177. package/dist/app/assets/ProcessSteps-DvGQTSov.css +1 -0
  178. package/dist/app/assets/Progress-bNTXPebc.js +1 -0
  179. package/dist/app/assets/ProgressControl-CeO2MyMB.js +1 -0
  180. package/dist/app/assets/QueryState-C5kit5U_.js +1 -0
  181. package/dist/app/assets/Quote-BoZfPzZH.css +1 -0
  182. package/dist/app/assets/Quote-CnGV45E9.js +1 -0
  183. package/dist/app/assets/RadioControl-Cuinq5zi.js +1 -0
  184. package/dist/app/assets/RadioGroup-zYTPVu8Q.js +1 -0
  185. package/dist/app/assets/RailLayout-CNJbKMQN.js +1 -0
  186. package/dist/app/assets/RecordAvatar-Dq9Q_ECl.js +1 -0
  187. package/dist/app/assets/RelatedPanel-Zx46LYFQ.js +1 -0
  188. package/dist/app/assets/ResetPassword-CD5j3dlW.js +1 -0
  189. package/dist/app/assets/ReviewPanel-IctKGAYF.js +1 -0
  190. package/dist/app/assets/ReviewSession-BvoB_ZV5.js +13 -0
  191. package/dist/app/assets/RichText-BCfjyl-x.css +1 -0
  192. package/dist/app/assets/RichText-D1v-HxaQ.js +13 -0
  193. package/dist/app/assets/SchemaForm-DUAv9zW-.js +2 -0
  194. package/dist/app/assets/SectionDivider-CCrbcyNE.js +1 -0
  195. package/dist/app/assets/SectionDivider-ChSFRraf.css +1 -0
  196. package/dist/app/assets/Segmented-BJe49U8y.js +1 -0
  197. package/dist/app/assets/Select-B7WptPsd.js +1 -0
  198. package/dist/app/assets/SelectValue-dQDYClnM.js +1 -0
  199. package/dist/app/assets/Settings-C_QQITJ0.js +1 -0
  200. package/dist/app/assets/SheetContent-Di33iVo2.js +1 -0
  201. package/dist/app/assets/SidePanelFrame-DQ8ahWBO.js +2 -0
  202. package/dist/app/assets/Sidebar-DyYV2QHi.js +1 -0
  203. package/dist/app/assets/SidebarLayout-CizAF8JU.js +1 -0
  204. package/dist/app/assets/SignIn-mkUy-YFr.js +1 -0
  205. package/dist/app/assets/SignUp-C1enzfw4.js +1 -0
  206. package/dist/app/assets/Skeleton-Cd-5byG5.js +1 -0
  207. package/dist/app/assets/SlashMenu-sLWmQqE1.js +1 -0
  208. package/dist/app/assets/SlideJumpList-CNMdgNU7.css +1 -0
  209. package/dist/app/assets/SlideJumpList-D9zOhZ-J.js +1 -0
  210. package/dist/app/assets/SlidePlaceholder-C8s_f2FB.js +1 -0
  211. package/dist/app/assets/Slider-eo7lM48l.js +1 -0
  212. package/dist/app/assets/SliderControl-BIXEZT9D.js +1 -0
  213. package/dist/app/assets/SourcePicker-C2GB8KG4.js +2 -0
  214. package/dist/app/assets/Spinner-DAbE5KuW.js +1 -0
  215. package/dist/app/assets/Spinner-DFzF63dS.js +1 -0
  216. package/dist/app/assets/SsoButtons-UyEm6RhU.js +1 -0
  217. package/dist/app/assets/StaleWorldNotice-BQqYS-Lw.js +1 -0
  218. package/dist/app/assets/Stat-CLOwLvk7.js +1 -0
  219. package/dist/app/assets/StatusBar-BGRSuCms.js +1 -0
  220. package/dist/app/assets/Stepper-CjlrJo0A.js +1 -0
  221. package/dist/app/assets/StructureFamily-Pp8Qr664.js +2 -0
  222. package/dist/app/assets/Switch-8QZM_9mj.js +1 -0
  223. package/dist/app/assets/TableCaption-p0xxPZlK.js +1 -0
  224. package/dist/app/assets/TableEmpty-BR911ScN.js +1 -0
  225. package/dist/app/assets/TableRow-DN0855j9.js +1 -0
  226. package/dist/app/assets/TableToggle-Cvp3fpb5.js +1 -0
  227. package/dist/app/assets/TableView-Dkhs_E-R.js +1 -0
  228. package/dist/app/assets/TabletFrame-BTJ_jmpF.js +1 -0
  229. package/dist/app/assets/Tabs-A8-PiUFM.js +1 -0
  230. package/dist/app/assets/Tabs-D7YB4XtT.js +1 -0
  231. package/dist/app/assets/Tag-GChaMFDw.js +1 -0
  232. package/dist/app/assets/TagsControl-BdoxUW9o.js +1 -0
  233. package/dist/app/assets/TeamAvatars-C0e-j-DR.js +1 -0
  234. package/dist/app/assets/TeamAvatars-DBAggLCb.css +1 -0
  235. package/dist/app/assets/TextBlockView-BHOo0GRP.css +1 -0
  236. package/dist/app/assets/TextBlockView-DRlzMSVn.js +1 -0
  237. package/dist/app/assets/Textarea-B2NFoybO.js +1 -0
  238. package/dist/app/assets/ThemeStudioSection-eHl2sA8_.js +2 -0
  239. package/dist/app/assets/ThreeColumnCards-BPLqtN6W.js +1 -0
  240. package/dist/app/assets/ThreeColumnCards-ChTpCcz8.css +1 -0
  241. package/dist/app/assets/TimeControl-C-BT3jjN.js +1 -0
  242. package/dist/app/assets/TimeField-DWg-QjNk.js +1 -0
  243. package/dist/app/assets/TimeGridView-BLvWNnEy.css +1 -0
  244. package/dist/app/assets/TimeGridView-C78bCMzf.js +1 -0
  245. package/dist/app/assets/Timeline-2GhKlfmd.css +1 -0
  246. package/dist/app/assets/Timeline-66X3nU-w.js +1 -0
  247. package/dist/app/assets/Title-BoCID0Xq.js +1 -0
  248. package/dist/app/assets/Title-DZQyv1Uw.css +1 -0
  249. package/dist/app/assets/TitleHero-BqOmWwID.js +1 -0
  250. package/dist/app/assets/TitleHero-DMDxz18F.css +1 -0
  251. package/dist/app/assets/Toggle-onm4fbkV.js +1 -0
  252. package/dist/app/assets/Tooltip-C_r8hAHs.js +1 -0
  253. package/dist/app/assets/TopNavLayout-Ces0LOyx.js +1 -0
  254. package/dist/app/assets/Trigger-8w9c0DhN.js +1 -0
  255. package/dist/app/assets/Trigger-Dm3W-y9X.js +2 -0
  256. package/dist/app/assets/TwoColumnSplit-DYBoT_R_.js +1 -0
  257. package/dist/app/assets/TwoColumnSplit-Y6JkObVm.css +1 -0
  258. package/dist/app/assets/VerifyEmail-DuOya8Qx.js +1 -0
  259. package/dist/app/assets/VideoCaptions-C-ebsQ5-.js +10 -0
  260. package/dist/app/assets/Viewport-DWfYShxg.css +1 -0
  261. package/dist/app/assets/Viewport-YaG8BTV_.js +1 -0
  262. package/dist/app/assets/WidgetHostFrame-DFcMnyyE.js +4 -0
  263. package/dist/app/assets/WizardHostLayout-B8fzs6Uk.js +1 -0
  264. package/dist/app/assets/analytics-BPxBOuv8.js +2 -0
  265. package/dist/app/assets/analytics-WBIZqtP8.js +3 -0
  266. package/dist/app/assets/app-B2_KfZ06.js +2 -0
  267. package/dist/app/assets/app-BB5CNOCm.css +1 -0
  268. package/dist/app/assets/app-kiFTTAun.js +2 -0
  269. package/dist/app/assets/arrow-down-DlqQl5aL.js +1 -0
  270. package/dist/app/assets/arrow-left-CKydKZrI.js +1 -0
  271. package/dist/app/assets/arrow-right-DK7vE3kH.js +1 -0
  272. package/dist/app/assets/bindings.svelte-DcC1eEn4.js +1 -0
  273. package/dist/app/assets/board-0q6Fdnjz.js +5 -0
  274. package/dist/app/assets/board-Ct1Niyhg.css +1 -0
  275. package/dist/app/assets/boot-B1w609xS.js +2 -0
  276. package/dist/app/assets/boot-kind-luWYepUM.js +2 -0
  277. package/dist/app/assets/builtin-D-08NJJ_.js +1 -0
  278. package/dist/app/assets/calendar-CC-XH4BQ.css +1 -0
  279. package/dist/app/assets/calendar-D3xaSsit.js +2 -0
  280. package/dist/app/assets/calendar-DdWo8l-F.js +1 -0
  281. package/dist/app/assets/calendar-DeXlGkQg.css +1 -0
  282. package/dist/app/assets/canvas-Bg4JmNxQ.js +1 -0
  283. package/dist/app/assets/canvas-CdpPrdGz.css +1 -0
  284. package/dist/app/assets/cartesian-CoBPstQd.js +2 -0
  285. package/dist/app/assets/cartesian-CzV-Cyc1.css +1 -0
  286. package/dist/app/assets/cartesian-D2AhdEIV.js +1 -0
  287. package/dist/app/assets/code-ABp_0ixK.js +1 -0
  288. package/dist/app/assets/code-BU7PFz64.js +1 -0
  289. package/dist/app/assets/compact-5pMdWyMw.css +1 -0
  290. package/dist/app/assets/compact-7mkiGE8N.js +1 -0
  291. package/dist/app/assets/compact-D4ch775J.js +1 -0
  292. package/dist/app/assets/context-8yltX8ZM.js +1 -0
  293. package/dist/app/assets/context-BGEY9AUE.js +1 -0
  294. package/dist/app/assets/context-BihgecFf.js +1 -0
  295. package/dist/app/assets/context-BozNHYDn.js +1 -0
  296. package/dist/app/assets/context-Cvg_Jb8K.js +1 -0
  297. package/dist/app/assets/context-Cww_I6dB.js +1 -0
  298. package/dist/app/assets/context-DTcuz85x.js +1 -0
  299. package/dist/app/assets/conversational-C0P36SMt.js +2 -0
  300. package/dist/app/assets/copy-BRPalUx6.js +1 -0
  301. package/dist/app/assets/core-DisCXK86.js +4 -0
  302. package/dist/app/assets/dashboard-vjiRJ-2a.js +2 -0
  303. package/dist/app/assets/data-BT9r5CfS.js +1 -0
  304. package/dist/app/assets/data-DYs_X2a6.js +2 -0
  305. package/dist/app/assets/date-picker-DKRcvBau.js +1 -0
  306. package/dist/app/assets/date-range-D2dj6dGY.js +1 -0
  307. package/dist/app/assets/deck-CPwPSgE3.js +1 -0
  308. package/dist/app/assets/design-defaults-DAxTKvKt.js +1 -0
  309. package/dist/app/assets/design-system-s_7Gm55A.js +2 -0
  310. package/dist/app/assets/diagram-B04gM2Zo.js +2 -0
  311. package/dist/app/assets/diagram-CqFRhJCk.js +1 -0
  312. package/dist/app/assets/doc-BthZSDuE.js +1 -0
  313. package/dist/app/assets/doc-D7QlyhMQ.js +2 -0
  314. package/dist/app/assets/ellipsis-D2B-U6JZ.js +1 -0
  315. package/dist/app/assets/embed-7IfIjInk.js +1 -0
  316. package/dist/app/assets/embed-BjxhIu1D.js +2 -0
  317. package/dist/app/assets/events-CgGVkmNN.js +1 -0
  318. package/dist/app/assets/extras--tBwws6r.js +2 -0
  319. package/dist/app/assets/extras-D-yEXOuq.css +1 -0
  320. package/dist/app/assets/family-BHrF5iui.js +2 -0
  321. package/dist/app/assets/family-Bw7g3nle.js +2 -0
  322. package/dist/app/assets/family-Cx1ea07k.js +2 -0
  323. package/dist/app/assets/family-DjA1hVK3.js +2 -0
  324. package/dist/app/assets/family-Djp18LqC.js +2 -0
  325. package/dist/app/assets/family-zSZ3st7P.js +2 -0
  326. package/dist/app/assets/file-text-Bhw0ZLUp.js +1 -0
  327. package/dist/app/assets/filters-BmlrNSK4.js +1 -0
  328. package/dist/app/assets/flow-CjzYxj3T.css +1 -0
  329. package/dist/app/assets/flow-Dse75s3k.js +1 -0
  330. package/dist/app/assets/free-prefetch-CQtOUoO_.js +1 -0
  331. package/dist/app/assets/geo-BUoHwLMI.css +1 -0
  332. package/dist/app/assets/geo-Badu06LW.js +1 -0
  333. package/dist/app/assets/hash-router.svelte-D7ILwv8b.js +1 -0
  334. package/dist/app/assets/helpers-vedUmioA.js +1 -0
  335. package/dist/app/assets/histogram-Bxs2w5Qg.js +1 -0
  336. package/dist/app/assets/histogram-CaF8L-uN.css +1 -0
  337. package/dist/app/assets/host-Bo5nUYrD.js +1 -0
  338. package/dist/app/assets/inbox-DZCtuxQ1.js +1 -0
  339. package/dist/app/assets/index-BmZaQzLA.js +2 -0
  340. package/dist/app/assets/index-client-BJ7uZa7c.js +2 -0
  341. package/dist/app/assets/index-client-ncr-aJHg.js +1 -0
  342. package/dist/app/assets/interactive-B8_XXgu9.js +7 -0
  343. package/dist/app/assets/interactive-DzJIKNzh.js +1 -0
  344. package/dist/app/assets/kind-boot-BlKFHtYr.js +2 -0
  345. package/dist/app/assets/lazy-list-motion-BABubg52.js +2 -0
  346. package/dist/app/assets/legacy-Bj_uQCIx.js +1 -0
  347. package/dist/app/assets/lock-DqGqAl7w.js +1 -0
  348. package/dist/app/assets/mail-BOe0duGE.js +1 -0
  349. package/dist/app/assets/map-BBq86YoI.js +2 -0
  350. package/dist/app/assets/map-BvsdIhqc.js +1 -0
  351. package/dist/app/assets/map-CT94tmB0.js +2 -0
  352. package/dist/app/assets/map-CsZfhGqK.css +1 -0
  353. package/dist/app/assets/map-DqX3aYqC.js +1 -0
  354. package/dist/app/assets/matrix-DFjJIxow.css +1 -0
  355. package/dist/app/assets/matrix-DGsEk8w3.js +3 -0
  356. package/dist/app/assets/media-BUKoXNHc.js +1 -0
  357. package/dist/app/assets/media-CTs3Ucym.js +1 -0
  358. package/dist/app/assets/menus-BvsN38bq.js +1 -0
  359. package/dist/app/assets/message-square-n_qADYKq.js +1 -0
  360. package/dist/app/assets/model-BmpSCB4_.js +1 -0
  361. package/dist/app/assets/model-D-DRw_p6.css +1 -0
  362. package/dist/app/assets/motion-DTTALmY8.js +1 -0
  363. package/dist/app/assets/mount-8dOQyqXG.js +2 -0
  364. package/dist/app/assets/pack-CBHejNSf.css +1 -0
  365. package/dist/app/assets/pack-DzF58nZc.js +1 -0
  366. package/dist/app/assets/page-DkK906Sn.js +3 -0
  367. package/dist/app/assets/page-I-0RZem6.js +1 -0
  368. package/dist/app/assets/paint-BdZUBGOz.js +2 -0
  369. package/dist/app/assets/palette-BKs1Lqh5.js +1 -0
  370. package/dist/app/assets/panel-state.svelte-CO6Zoy9K.js +1 -0
  371. package/dist/app/assets/part-whole-B2gsi6CR.css +1 -0
  372. package/dist/app/assets/part-whole-JgLPIqtJ.js +1 -0
  373. package/dist/app/assets/part-whole-lCSLwC5U.js +1 -0
  374. package/dist/app/assets/popup-B-0xjgYx.js +1 -0
  375. package/dist/app/assets/popup-CHgoACQq.css +1 -0
  376. package/dist/app/assets/presentation-BcQDlabb.js +1 -0
  377. package/dist/app/assets/print-paint-BQYY7n_n.js +1 -0
  378. package/dist/app/assets/radio-group-CHua9Z13.js +1 -0
  379. package/dist/app/assets/refresh-cw-CyWpDKzd.js +1 -0
  380. package/dist/app/assets/registry-B7w9AKsi.js +2 -0
  381. package/dist/app/assets/registry-v2IddHqe.js +2 -0
  382. package/dist/app/assets/renderer-deck-CjT2ONB5.js +2 -0
  383. package/dist/app/assets/renderer-doc-CL21_nmz.js +2 -0
  384. package/dist/app/assets/renderer-page-Dub8qzwD.js +2 -0
  385. package/dist/app/assets/renderers-CM6H1JjM.js +1 -0
  386. package/dist/app/assets/run-kind-BDhjcKJl.js +2 -0
  387. package/dist/app/assets/saas-DhbGb-OK.js +2 -0
  388. package/dist/app/assets/schema-form-YQSrAkGf.js +1 -0
  389. package/dist/app/assets/seam-CFtr05Bk.js +2 -0
  390. package/dist/app/assets/select-CqgC4MJd.js +1 -0
  391. package/dist/app/assets/services-CFh4V3Ek.js +1 -0
  392. package/dist/app/assets/settings-D9B7v99L.js +1 -0
  393. package/dist/app/assets/share-2-CWdppD0U.js +1 -0
  394. package/dist/app/assets/sheet-D0dvjVIX.js +15 -0
  395. package/dist/app/assets/sheet-DCuu075w.js +1 -0
  396. package/dist/app/assets/slash-BpRt_lYy.js +2 -0
  397. package/dist/app/assets/sparkline-lite-Dbg5FeZK.css +1 -0
  398. package/dist/app/assets/sparkline-lite-HVucD2kL.js +1 -0
  399. package/dist/app/assets/src-CSsYWR7m.js +2 -0
  400. package/dist/app/assets/src-Dak84v00.css +1 -0
  401. package/dist/app/assets/src-_ograGmM.js +4 -0
  402. package/dist/app/assets/stat-DjV1jC5s.js +1 -0
  403. package/dist/app/assets/steps-Bzi6Yd9e.js +1 -0
  404. package/dist/app/assets/steps-CHC3yyeH.css +1 -0
  405. package/dist/app/assets/storage-CW0L1wSF.js +4 -0
  406. package/dist/app/assets/structure-BoiNh_D7.js +2 -0
  407. package/dist/app/assets/structure-Br3Nb4YD.js +1 -0
  408. package/dist/app/assets/studio-BSVb0bUy.js +2 -0
  409. package/dist/app/assets/style-B4rREfL0.js +2 -0
  410. package/dist/app/assets/text-Be7wymXC.js +1 -0
  411. package/dist/app/assets/text-DeZb_mYn.js +1 -0
  412. package/dist/app/assets/thumbnails-3t8t55Yv.js +1 -0
  413. package/dist/app/assets/thumbs-up-DcRYH8LK.js +1 -0
  414. package/dist/app/assets/timeline-CQMPn0NA.js +1 -0
  415. package/dist/app/assets/timeline-WobC-yTK.css +1 -0
  416. package/dist/app/assets/upload-DTXE5Ssx.js +1 -0
  417. package/dist/app/assets/use-messages-69sBkkeA.js +1 -0
  418. package/dist/app/assets/use-messages-BEfUIgrO.js +1 -0
  419. package/dist/app/assets/use-overlay-layer.svelte-BJ8IxdY5.js +1 -0
  420. package/dist/app/assets/use-overlay-portal.svelte-7FKpygVS.js +1 -0
  421. package/dist/app/assets/users-CHDp9Ej9.js +1 -0
  422. package/dist/app/assets/validation-DA5oeRTn.js +2 -0
  423. package/dist/app/assets/variants-CcasJKbC.js +1 -0
  424. package/dist/app/assets/x-Bl2Frdss.js +1 -0
  425. package/dist/app/assets/zap-BIOQCInS.js +1 -0
  426. package/dist/app/deck.html +7 -7
  427. package/dist/app/doc.html +7 -7
  428. package/dist/app/index.html +8 -8
  429. package/dist/app/page.html +7 -7
  430. package/dist/app/protoyard-player-assets.json +1069 -1069
  431. package/dist/app/sw.js +1 -1
  432. package/package.json +23 -23
  433. package/dist/app/assets/Accept-Cwwa7wcy.js +0 -1
  434. package/dist/app/assets/ActivityFeed-CrfH1sL-.js +0 -1
  435. package/dist/app/assets/AgendaView-C5fmV7Io.js +0 -1
  436. package/dist/app/assets/AgendaView-CQIjS41D.css +0 -1
  437. package/dist/app/assets/Alert-7hPBdjVV.js +0 -1
  438. package/dist/app/assets/AlertDialog-BCpSMdNI.js +0 -1
  439. package/dist/app/assets/AlertDialog-ZQ7m9_88.css +0 -1
  440. package/dist/app/assets/AlertDialog-vQsVfmLA.js +0 -1
  441. package/dist/app/assets/AlertSurface-BCxhaD8C.js +0 -1
  442. package/dist/app/assets/AnalyticsDashboard-DBekx5FK.css +0 -1
  443. package/dist/app/assets/AnalyticsDashboard-bUhk_eDj.js +0 -1
  444. package/dist/app/assets/AppNav-OAH4X39o.js +0 -2
  445. package/dist/app/assets/AppNavDrawer-AvJ-4j1I.js +0 -1
  446. package/dist/app/assets/AuditHistory-B6b_HwwN.js +0 -1
  447. package/dist/app/assets/AuthSplitHostLayout-B3Nk7vTh.js +0 -1
  448. package/dist/app/assets/Avatar-BfdmP-J8.js +0 -1
  449. package/dist/app/assets/Avatar-XwYTvfOl.js +0 -1
  450. package/dist/app/assets/AvatarPicker-bTKfODdb.js +0 -1
  451. package/dist/app/assets/Axis-Bi34B7RT.js +0 -1
  452. package/dist/app/assets/Badge-B9mnZVCl.js +0 -1
  453. package/dist/app/assets/BigStat-Bdj3dEad.css +0 -1
  454. package/dist/app/assets/BigStat-CzOIrdvi.js +0 -1
  455. package/dist/app/assets/BlockHost-DeJ8R8qV.js +0 -2
  456. package/dist/app/assets/BlockIcon-D1BO1xRF.js +0 -1
  457. package/dist/app/assets/BlockRenderer-CaDsvtSu.js +0 -1
  458. package/dist/app/assets/BlockRenderer-_VHGXNST.js +0 -1
  459. package/dist/app/assets/BoardMoveMenu-BsqA9edS.js +0 -1
  460. package/dist/app/assets/BrowserChrome-B3AGDR4k.js +0 -1
  461. package/dist/app/assets/BrowserFrame-Cu9SJGiA.js +0 -1
  462. package/dist/app/assets/Button-CYExAoxT.js +0 -1
  463. package/dist/app/assets/CalendarMoveMenu-BA3QPzDD.css +0 -1
  464. package/dist/app/assets/CalendarMoveMenu-DKK_6KCg.js +0 -1
  465. package/dist/app/assets/Card-DnZFo53x.js +0 -1
  466. package/dist/app/assets/CardDescription-Bofq-yjt.js +0 -1
  467. package/dist/app/assets/CardFooter-BrVVXKds.js +0 -1
  468. package/dist/app/assets/CardImage-zFQFoK0b.js +0 -1
  469. package/dist/app/assets/CardTitle-CEnDciCv.js +0 -1
  470. package/dist/app/assets/CellEditor-BcAzWb4V.js +0 -1
  471. package/dist/app/assets/ChartAnswer-Qqa0K1zD.js +0 -2
  472. package/dist/app/assets/ChartRoot-Bpm6tvrV.js +0 -1
  473. package/dist/app/assets/ChartSlide-BLCvki57.js +0 -1
  474. package/dist/app/assets/ChartSlide-Dvsn90GG.css +0 -1
  475. package/dist/app/assets/ChartTable-D-NrUNFX.js +0 -1
  476. package/dist/app/assets/ChatWorkspaceHost-C1etG-BC.js +0 -1
  477. package/dist/app/assets/Checkbox-TnscN5Ty.js +0 -1
  478. package/dist/app/assets/Checkout-DZanjUSm.js +0 -3
  479. package/dist/app/assets/ChromeIcon-DB-lFa_K.js +0 -1
  480. package/dist/app/assets/ChromeIcon-a26EbbrF.css +0 -1
  481. package/dist/app/assets/ChromeTooltip-B8ZTaHUe.js +0 -1
  482. package/dist/app/assets/ChromeTooltip-gGOiJThu.css +0 -1
  483. package/dist/app/assets/Close-DfWci-do.js +0 -1
  484. package/dist/app/assets/ClosingCta-CRmWJTND.css +0 -1
  485. package/dist/app/assets/ClosingCta-DQFPLYOV.js +0 -1
  486. package/dist/app/assets/Code-DUo3CdRR.js +0 -1
  487. package/dist/app/assets/CodeBlockView-B2cVVPd7.js +0 -3
  488. package/dist/app/assets/CodeEditorHost-ZMIwHVlp.js +0 -2
  489. package/dist/app/assets/CodeWithCallout-B3l16LCL.js +0 -1
  490. package/dist/app/assets/CodeWithCallout-DAwHztXq.css +0 -1
  491. package/dist/app/assets/ColorControl-EvxrBAz3.js +0 -1
  492. package/dist/app/assets/ComparisonTable-BjjmHI2w.css +0 -1
  493. package/dist/app/assets/ComparisonTable-CzLNhoIW.js +0 -1
  494. package/dist/app/assets/Consent-Bp78LjnB.js +0 -1
  495. package/dist/app/assets/Content-IdcbAwsA.js +0 -1
  496. package/dist/app/assets/CustomSlide-CSOTGmAX.js +0 -1
  497. package/dist/app/assets/DashboardGridLayout-B8IT4MIo.js +0 -1
  498. package/dist/app/assets/DataBlockView-dCrBHGJ3.css +0 -1
  499. package/dist/app/assets/DataBlockView-lwCNpzKh.js +0 -2
  500. package/dist/app/assets/DataTable-Dn6P_bZq.js +0 -1
  501. package/dist/app/assets/DateControl-DygPjzrm.js +0 -1
  502. package/dist/app/assets/DatePicker-IIBEUEbq.js +0 -1
  503. package/dist/app/assets/DateTimeControl-BGrVT_Un.js +0 -1
  504. package/dist/app/assets/DeckDebugPanel-DesIkIFZ.js +0 -2
  505. package/dist/app/assets/DeckPrintPages-BPdBA-Hm.css +0 -1
  506. package/dist/app/assets/DeckPrintPages-ERnGVhr8.js +0 -2
  507. package/dist/app/assets/DeckSlidePreview-OUG6ZxaB.css +0 -1
  508. package/dist/app/assets/DeckSlidePreview-nxiBN1P4.js +0 -1
  509. package/dist/app/assets/DeckStudioPanel-CCYZHpuj.js +0 -1
  510. package/dist/app/assets/Description-B1DprNxQ.js +0 -1
  511. package/dist/app/assets/DesignCanvasHost-D-XVHB8o.js +0 -1
  512. package/dist/app/assets/DesignSystemStudio-p0HKwaQe.js +0 -1
  513. package/dist/app/assets/DesktopWindowFrame-CIiNXwms.js +0 -1
  514. package/dist/app/assets/DiagramFamily-C35zN39m.js +0 -1
  515. package/dist/app/assets/Dialog-Cd02u7mU.js +0 -1
  516. package/dist/app/assets/DocEditor-B66K591L.css +0 -1
  517. package/dist/app/assets/DocEditor-BjHgSt1q.js +0 -14
  518. package/dist/app/assets/DocNotice-BJFPVdS8.js +0 -1
  519. package/dist/app/assets/DocsLayout-DtEm_If0.js +0 -1
  520. package/dist/app/assets/DualSidebarLayout-DE_SGjZy.js +0 -1
  521. package/dist/app/assets/EmbedBlockView-BOp2jlgv.css +0 -1
  522. package/dist/app/assets/EmbedBlockView-CoL0Srab.js +0 -1
  523. package/dist/app/assets/EmptyState-CpNqjZhx.js +0 -1
  524. package/dist/app/assets/EntityDetail-EnPDepKl.js +0 -2
  525. package/dist/app/assets/EntityForm-P7FaYgT6.js +0 -2
  526. package/dist/app/assets/EntityList-B6e0epY5.js +0 -2
  527. package/dist/app/assets/ErrorState-CGHpqSC3.js +0 -1
  528. package/dist/app/assets/EventButton-BpOkCPkf.js +0 -1
  529. package/dist/app/assets/EventButton-Cz5I0sd_.css +0 -1
  530. package/dist/app/assets/ExtensionPopupFrame-CLudOMdO.js +0 -1
  531. package/dist/app/assets/Field-B2FE05jU.js +0 -1
  532. package/dist/app/assets/FileControl-DqMs0DQl.js +0 -1
  533. package/dist/app/assets/FileInput-Be-fNVHQ.js +0 -1
  534. package/dist/app/assets/FileUpload-Bc23jR9k.js +0 -1
  535. package/dist/app/assets/FilesPanel-BLXbgsKc.js +0 -1
  536. package/dist/app/assets/FirstRunHint-BhAIc5vw.css +0 -1
  537. package/dist/app/assets/FirstRunHint-CNmp67kD.js +0 -1
  538. package/dist/app/assets/FormBlock-DQfKUV1g.js +0 -1
  539. package/dist/app/assets/FreeSlide-BgiNQp85.js +0 -1
  540. package/dist/app/assets/FullscreenOverlay--QRf9wKW.css +0 -1
  541. package/dist/app/assets/FullscreenOverlay-B9QLcIw8.js +0 -1
  542. package/dist/app/assets/HostSlot-DFSehYHz.js +0 -1
  543. package/dist/app/assets/Icon-6iVpsw1O.js +0 -1
  544. package/dist/app/assets/Icon-B2CYXdo3.js +0 -1
  545. package/dist/app/assets/Icon-CzgWZ-Sj.js +0 -1
  546. package/dist/app/assets/IconButton-BfgEhgel.js +0 -1
  547. package/dist/app/assets/Image-BS9v30rK.js +0 -1
  548. package/dist/app/assets/Image-DdZtECpz.css +0 -1
  549. package/dist/app/assets/ImageFullBleed-C--JkckF.js +0 -1
  550. package/dist/app/assets/ImageFullBleed-D8fs9Sry.css +0 -1
  551. package/dist/app/assets/Inbox-DytVaI45.js +0 -1
  552. package/dist/app/assets/Input-D3Bgj1Zz.js +0 -1
  553. package/dist/app/assets/Input-DxOKBx2W.js +0 -1
  554. package/dist/app/assets/InteractiveBlockView-C4uBph_o.js +0 -2
  555. package/dist/app/assets/InteractivePlot-DwIeuF55.js +0 -2
  556. package/dist/app/assets/InteractiveTable-B1YjlEBd.js +0 -1
  557. package/dist/app/assets/Kbd-DkNq1Ju_.js +0 -1
  558. package/dist/app/assets/KeyboardHelp-C9YZKYdn.js +0 -1
  559. package/dist/app/assets/KeyboardHelp-Cl-Rod-K.css +0 -1
  560. package/dist/app/assets/KpiTile-BwrBMJXp.js +0 -1
  561. package/dist/app/assets/LaserPointer-Bv4v3HkH.css +0 -1
  562. package/dist/app/assets/LaserPointer-DpjrmFeF.js +0 -1
  563. package/dist/app/assets/LayoutChrome-5HE-aeqe.js +0 -1
  564. package/dist/app/assets/LayoutImage-B3_ql3ij.css +0 -1
  565. package/dist/app/assets/LayoutImage-Ce5FsjXF.js +0 -1
  566. package/dist/app/assets/LayoutVideo-B8YtGfsu.js +0 -2
  567. package/dist/app/assets/LayoutVideo-CXAuL1g5.css +0 -1
  568. package/dist/app/assets/Legend-DBu9BLVq.js +0 -1
  569. package/dist/app/assets/Link-DHBvi9qI.js +0 -1
  570. package/dist/app/assets/LoadingState-Bn2cSCGG.js +0 -1
  571. package/dist/app/assets/LucideIcon-BLXM0Ftv.js +0 -1
  572. package/dist/app/assets/MagicLink-CyzjLDJc.js +0 -1
  573. package/dist/app/assets/MapBlockView-B3hct9rD.js +0 -1
  574. package/dist/app/assets/MapBlockView-CtKG3O98.css +0 -1
  575. package/dist/app/assets/MarketingLayout-CRBsTKd2.js +0 -1
  576. package/dist/app/assets/MasterDetailLayout-uo7y2cyF.js +0 -1
  577. package/dist/app/assets/MediaBlockView-BGvh4k2D.css +0 -1
  578. package/dist/app/assets/MediaBlockView-Cp33fCST.js +0 -1
  579. package/dist/app/assets/MediaCentered-BVJMLylg.js +0 -1
  580. package/dist/app/assets/MediaCentered-D2VYTdBx.css +0 -1
  581. package/dist/app/assets/MediaSide-B6d9V1JC.js +0 -1
  582. package/dist/app/assets/MediaSide-DhPjwOoY.css +0 -1
  583. package/dist/app/assets/MenuSeparator-BEBXTaSh.js +0 -1
  584. package/dist/app/assets/MessageText-j9J6kCwr.js +0 -1
  585. package/dist/app/assets/Mfa-ChJVCc4E.js +0 -1
  586. package/dist/app/assets/MobileDrawerLayout-BgWxoM1H.js +0 -1
  587. package/dist/app/assets/MobileFrame-B7JUIeWg.js +0 -1
  588. package/dist/app/assets/MobileTabsLayout-alL9j-_-.js +0 -1
  589. package/dist/app/assets/MonthView-BTvPwYX7.css +0 -1
  590. package/dist/app/assets/MonthView-BcEfT7yB.js +0 -1
  591. package/dist/app/assets/MoreMenu-BFOepBME.js +0 -1
  592. package/dist/app/assets/MoreMenu-DM-vkNTW.css +0 -1
  593. package/dist/app/assets/Notice-Dt6krYhT.js +0 -1
  594. package/dist/app/assets/Onboarding-CvS3xYao.js +0 -1
  595. package/dist/app/assets/OverlayOutlet-boEdrRbl.js +0 -1
  596. package/dist/app/assets/PhoneCode-w7cif7hk.js +0 -1
  597. package/dist/app/assets/PhoneFrame-CG6KHfRD.js +0 -1
  598. package/dist/app/assets/PhoneSignIn-CrRIOXK6.js +0 -1
  599. package/dist/app/assets/Plans-eSoge3Og.js +0 -1
  600. package/dist/app/assets/Popover-DaHAXRCb.js +0 -1
  601. package/dist/app/assets/Portal-B18y85-k.js +0 -1
  602. package/dist/app/assets/PresenterStatus-Bg_qUxt9.js +0 -1
  603. package/dist/app/assets/PresenterStatus-uRRLug-B.css +0 -1
  604. package/dist/app/assets/PresenterUpNext-CyM0w8Q3.js +0 -1
  605. package/dist/app/assets/PresenterUpNext-DBic3Xad.css +0 -1
  606. package/dist/app/assets/ProcessSteps-B6xPhUMP.css +0 -1
  607. package/dist/app/assets/ProcessSteps-DH5ezOhp.js +0 -1
  608. package/dist/app/assets/Progress-DW5KkCUF.js +0 -1
  609. package/dist/app/assets/ProgressControl-CRiDrNrR.js +0 -1
  610. package/dist/app/assets/QueryState-CBwt9G55.js +0 -1
  611. package/dist/app/assets/Quote-DcKGkLzK.css +0 -1
  612. package/dist/app/assets/Quote-jDI87v18.js +0 -1
  613. package/dist/app/assets/RadioControl-BI6X31TE.js +0 -1
  614. package/dist/app/assets/RadioGroup-w1hFC0p4.js +0 -1
  615. package/dist/app/assets/RailLayout-k-JcVNK2.js +0 -1
  616. package/dist/app/assets/RecordAvatar-BcXBXdMe.js +0 -1
  617. package/dist/app/assets/RelatedPanel-DzEJYVZz.js +0 -1
  618. package/dist/app/assets/ResetPassword-CXsGD2Bp.js +0 -1
  619. package/dist/app/assets/ReviewPanel-BrVXs-6q.js +0 -1
  620. package/dist/app/assets/ReviewSession-D4MUDdgp.js +0 -13
  621. package/dist/app/assets/RichText-By77-MWe.css +0 -1
  622. package/dist/app/assets/RichText-DOb1t7J3.js +0 -13
  623. package/dist/app/assets/SchemaForm-jeaBTDUH.js +0 -2
  624. package/dist/app/assets/SectionDivider-CErBkM1q.css +0 -1
  625. package/dist/app/assets/SectionDivider-CJmHce4d.js +0 -1
  626. package/dist/app/assets/Segmented-BFxRPNuU.js +0 -1
  627. package/dist/app/assets/Select-BUwDUC6S.js +0 -1
  628. package/dist/app/assets/SelectValue-Cn6C_Jw7.js +0 -1
  629. package/dist/app/assets/Settings-DUuWcvB7.js +0 -1
  630. package/dist/app/assets/SheetContent-DAy2jGR3.js +0 -1
  631. package/dist/app/assets/SidePanelFrame-BjN1rHWI.js +0 -2
  632. package/dist/app/assets/Sidebar-BQ4iR0Hi.js +0 -1
  633. package/dist/app/assets/SidebarLayout-CPacSOAm.js +0 -1
  634. package/dist/app/assets/SignIn-BUGkXMb7.js +0 -1
  635. package/dist/app/assets/SignUp-CG-qmCLV.js +0 -1
  636. package/dist/app/assets/Skeleton-C81ERDQ2.js +0 -1
  637. package/dist/app/assets/SlashMenu-B6emsRi9.js +0 -1
  638. package/dist/app/assets/SlideJumpList-1Syr81sy.css +0 -1
  639. package/dist/app/assets/SlideJumpList-DZS0ibKU.js +0 -1
  640. package/dist/app/assets/SlidePlaceholder-CrrSy1kr.js +0 -1
  641. package/dist/app/assets/Slider-BrVPdB-w.js +0 -1
  642. package/dist/app/assets/SliderControl-BXHwzc2b.js +0 -1
  643. package/dist/app/assets/SourcePicker-DW4OCnw2.js +0 -2
  644. package/dist/app/assets/Spinner-BoiMf0zZ.js +0 -1
  645. package/dist/app/assets/Spinner-RvxP_-WC.js +0 -1
  646. package/dist/app/assets/SsoButtons-BIXfJxaj.js +0 -1
  647. package/dist/app/assets/StaleWorldNotice-B7m6HyVU.js +0 -1
  648. package/dist/app/assets/Stat-CcTIg36H.js +0 -1
  649. package/dist/app/assets/StatusBar-DGtjajwn.js +0 -1
  650. package/dist/app/assets/Stepper-D_kAIMyP.js +0 -1
  651. package/dist/app/assets/StructureFamily-FUvkWUum.js +0 -2
  652. package/dist/app/assets/Switch-CUXRVOl-.js +0 -1
  653. package/dist/app/assets/TableCaption-D1fSnEjI.js +0 -1
  654. package/dist/app/assets/TableEmpty-DUTWeqQF.js +0 -1
  655. package/dist/app/assets/TableRow-Cz2pDHwf.js +0 -1
  656. package/dist/app/assets/TableToggle-CtxLIjOc.js +0 -1
  657. package/dist/app/assets/TableView-Cx6arz4U.js +0 -1
  658. package/dist/app/assets/TabletFrame-5qNzgpfv.js +0 -1
  659. package/dist/app/assets/Tabs-BPImSDg6.js +0 -1
  660. package/dist/app/assets/Tabs-D0A0WVnx.js +0 -1
  661. package/dist/app/assets/Tag-BdgQ_KKx.js +0 -1
  662. package/dist/app/assets/TagsControl-Dw7l3f4k.js +0 -1
  663. package/dist/app/assets/TeamAvatars-CVTW9kfV.css +0 -1
  664. package/dist/app/assets/TeamAvatars-DsDUSJQS.js +0 -1
  665. package/dist/app/assets/TextBlockView-1XjLPcMK.css +0 -1
  666. package/dist/app/assets/TextBlockView-C1uK7o3U.js +0 -1
  667. package/dist/app/assets/Textarea-DMvNCflX.js +0 -1
  668. package/dist/app/assets/ThemeStudioSection-DZGAenHY.js +0 -2
  669. package/dist/app/assets/ThreeColumnCards-B0lz1TmH.css +0 -1
  670. package/dist/app/assets/ThreeColumnCards-BifySiFG.js +0 -1
  671. package/dist/app/assets/TimeControl-l7MoDReJ.js +0 -1
  672. package/dist/app/assets/TimeField-IgTM9sZp.js +0 -1
  673. package/dist/app/assets/TimeGridView-B0jd7myg.css +0 -1
  674. package/dist/app/assets/TimeGridView-LbTfS9J4.js +0 -1
  675. package/dist/app/assets/Timeline-BfHfJrVr.js +0 -1
  676. package/dist/app/assets/Timeline-CNuUuaLH.css +0 -1
  677. package/dist/app/assets/Title-DddwkS7C.css +0 -1
  678. package/dist/app/assets/Title-WanbpRaG.js +0 -1
  679. package/dist/app/assets/TitleHero-BPP1CygL.js +0 -1
  680. package/dist/app/assets/TitleHero-BTJ96TzB.css +0 -1
  681. package/dist/app/assets/Toggle-B6jXR4VA.js +0 -1
  682. package/dist/app/assets/Tooltip-Coeua376.js +0 -1
  683. package/dist/app/assets/TopNavLayout-DO0PNmJi.js +0 -1
  684. package/dist/app/assets/Trigger-CYRsN0K_.js +0 -2
  685. package/dist/app/assets/Trigger-cdFIqc65.js +0 -1
  686. package/dist/app/assets/TwoColumnSplit-DddU-Tbh.css +0 -1
  687. package/dist/app/assets/TwoColumnSplit-bZ3w2X49.js +0 -1
  688. package/dist/app/assets/VerifyEmail-C7RJZGT5.js +0 -1
  689. package/dist/app/assets/VideoCaptions-DYwOwAwo.js +0 -10
  690. package/dist/app/assets/Viewport-DXR4OKQY.css +0 -1
  691. package/dist/app/assets/Viewport-wpvkz4nh.js +0 -1
  692. package/dist/app/assets/WidgetHostFrame-BNU6xNfL.js +0 -4
  693. package/dist/app/assets/WizardHostLayout-DUZLfxS5.js +0 -1
  694. package/dist/app/assets/analytics-CB5pkvuX.js +0 -2
  695. package/dist/app/assets/analytics-myLc4sqM.js +0 -3
  696. package/dist/app/assets/app-B7ehy0Iy.js +0 -2
  697. package/dist/app/assets/app-BDdF2hG8.css +0 -1
  698. package/dist/app/assets/app-BIoUeLrs.js +0 -2
  699. package/dist/app/assets/arrow-down-CLlVuBdb.js +0 -1
  700. package/dist/app/assets/arrow-left-ESVlQdxY.js +0 -1
  701. package/dist/app/assets/arrow-right-CGTmO3zN.js +0 -1
  702. package/dist/app/assets/bindings.svelte-CtFtf-Gl.js +0 -1
  703. package/dist/app/assets/board-B12CFPyX.css +0 -1
  704. package/dist/app/assets/board-CN3K6nbq.js +0 -5
  705. package/dist/app/assets/boot-DN9ZFpxa.js +0 -2
  706. package/dist/app/assets/boot-kind-DPTe2SOs.js +0 -2
  707. package/dist/app/assets/builtin-DBNCQiwB.js +0 -1
  708. package/dist/app/assets/calendar-BjK1rPE1.css +0 -1
  709. package/dist/app/assets/calendar-D2s-49uQ.js +0 -1
  710. package/dist/app/assets/calendar-DX_dfOPf.js +0 -2
  711. package/dist/app/assets/calendar-fx3DxxVm.css +0 -1
  712. package/dist/app/assets/canvas-BIrIHh0m.css +0 -1
  713. package/dist/app/assets/canvas-DwntzNQA.js +0 -1
  714. package/dist/app/assets/cartesian-BGtGfDKG.css +0 -1
  715. package/dist/app/assets/cartesian-BzcRSvEP.js +0 -2
  716. package/dist/app/assets/cartesian-CjAiRKmF.js +0 -1
  717. package/dist/app/assets/code-3UjlUtTj.js +0 -1
  718. package/dist/app/assets/code-CtjvTSbP.js +0 -1
  719. package/dist/app/assets/compact-B2lGBpNM.js +0 -1
  720. package/dist/app/assets/compact-C1b-Izb7.css +0 -1
  721. package/dist/app/assets/compact-Dv9I-p5L.js +0 -1
  722. package/dist/app/assets/context-BLdfKUNL.js +0 -1
  723. package/dist/app/assets/context-BtWxNPQO.js +0 -1
  724. package/dist/app/assets/context-CLhMaQ-R.js +0 -1
  725. package/dist/app/assets/context-CpU1iXoW.js +0 -1
  726. package/dist/app/assets/context-CsSYm_2z.js +0 -1
  727. package/dist/app/assets/context-DJ4ajOGM.js +0 -1
  728. package/dist/app/assets/context-mgza7i31.js +0 -1
  729. package/dist/app/assets/conversational-B2Tdb0qH.js +0 -2
  730. package/dist/app/assets/copy-CdPoo-W-.js +0 -1
  731. package/dist/app/assets/core-Bmmm_BwB.js +0 -4
  732. package/dist/app/assets/dashboard-9uzNepgS.js +0 -2
  733. package/dist/app/assets/data-D6cqNiF_.js +0 -1
  734. package/dist/app/assets/data-DVx1JsC5.js +0 -2
  735. package/dist/app/assets/date-picker-N6_jTsxm.js +0 -1
  736. package/dist/app/assets/date-range-CzmaaHwU.js +0 -1
  737. package/dist/app/assets/deck-DGOD2pK9.js +0 -1
  738. package/dist/app/assets/design-defaults-DW6_LbVN.js +0 -1
  739. package/dist/app/assets/design-system-DmXNcxZq.js +0 -2
  740. package/dist/app/assets/diagram-BvQUv1fk.js +0 -2
  741. package/dist/app/assets/diagram-Cu4IKopi.js +0 -1
  742. package/dist/app/assets/doc-COyhFBH8.js +0 -1
  743. package/dist/app/assets/doc-dtPmqGIc.js +0 -2
  744. package/dist/app/assets/ellipsis-Bb_OrSmF.js +0 -1
  745. package/dist/app/assets/embed-Cw6qD64z.js +0 -2
  746. package/dist/app/assets/embed-x8Z8BOS3.js +0 -1
  747. package/dist/app/assets/events-BZIKUW6N.js +0 -1
  748. package/dist/app/assets/extras-CswrO-8Z.js +0 -2
  749. package/dist/app/assets/extras-TgPYo1oJ.css +0 -1
  750. package/dist/app/assets/family-BDAK6NX3.js +0 -2
  751. package/dist/app/assets/family-B_5VMS2O.js +0 -2
  752. package/dist/app/assets/family-B_PGS6qf.js +0 -2
  753. package/dist/app/assets/family-BwYS13Ee.js +0 -2
  754. package/dist/app/assets/family-CrTyJnox.js +0 -2
  755. package/dist/app/assets/family-XnCyNnED.js +0 -2
  756. package/dist/app/assets/file-text-Raziu4cI.js +0 -1
  757. package/dist/app/assets/filters-BGxKX8Ca.js +0 -1
  758. package/dist/app/assets/flow-BEUk60qf.js +0 -1
  759. package/dist/app/assets/flow-fOO3pyYh.css +0 -1
  760. package/dist/app/assets/free-prefetch-DhqfcoZr.js +0 -1
  761. package/dist/app/assets/geo-B1z_l1iU.js +0 -1
  762. package/dist/app/assets/geo-DM9iJR25.css +0 -1
  763. package/dist/app/assets/hash-router.svelte-LQpr7yof.js +0 -1
  764. package/dist/app/assets/helpers-Dz5ykqCN.js +0 -1
  765. package/dist/app/assets/histogram-BT6t9qji.css +0 -1
  766. package/dist/app/assets/histogram-Dm6hbvFl.js +0 -1
  767. package/dist/app/assets/host-CTMGjDes.js +0 -1
  768. package/dist/app/assets/inbox-DqLTuwwq.js +0 -1
  769. package/dist/app/assets/index-Cq6TefQR.js +0 -2
  770. package/dist/app/assets/index-client-BOGsOwg5.js +0 -2
  771. package/dist/app/assets/index-client-x7oDvRVJ.js +0 -1
  772. package/dist/app/assets/interactive-DQrgNUih.js +0 -7
  773. package/dist/app/assets/interactive-UHxR0Aj1.js +0 -1
  774. package/dist/app/assets/kind-boot-CvPxMUUS.js +0 -2
  775. package/dist/app/assets/lazy-list-motion-8Yn4B5SH.js +0 -2
  776. package/dist/app/assets/legacy-BUWNFmiS.js +0 -1
  777. package/dist/app/assets/lock-Cj8g2CPo.js +0 -1
  778. package/dist/app/assets/mail-B4gN9oWI.js +0 -1
  779. package/dist/app/assets/map-3ILfjCWd.js +0 -2
  780. package/dist/app/assets/map-BB2XSw-y.js +0 -2
  781. package/dist/app/assets/map-CWyqmMKH.js +0 -1
  782. package/dist/app/assets/map-D0MMMgbF.js +0 -1
  783. package/dist/app/assets/map-DUYCiE7G.css +0 -1
  784. package/dist/app/assets/matrix-Czbbtrbd.css +0 -1
  785. package/dist/app/assets/matrix-DDOYNYj9.js +0 -3
  786. package/dist/app/assets/media-8dNZKNsx.js +0 -1
  787. package/dist/app/assets/media-ChFaDYF5.js +0 -1
  788. package/dist/app/assets/menus-1-mWffKr.js +0 -1
  789. package/dist/app/assets/message-square-x7OYMgev.js +0 -1
  790. package/dist/app/assets/model-CmkZtpEH.css +0 -1
  791. package/dist/app/assets/model-DfCj0GmH.js +0 -1
  792. package/dist/app/assets/motion-BHsSl-4E.js +0 -1
  793. package/dist/app/assets/mount-B54S61Ta.js +0 -2
  794. package/dist/app/assets/pack-Cfr5vWx8.css +0 -1
  795. package/dist/app/assets/pack-beqgWGKz.js +0 -1
  796. package/dist/app/assets/page-N-0kku8e.js +0 -3
  797. package/dist/app/assets/page-YAQf_3ei.js +0 -1
  798. package/dist/app/assets/paint-DTnILvSK.js +0 -2
  799. package/dist/app/assets/palette-DU0H4nZe.js +0 -1
  800. package/dist/app/assets/panel-state.svelte-C2lUNfn2.js +0 -1
  801. package/dist/app/assets/part-whole-AxLzbEP6.js +0 -1
  802. package/dist/app/assets/part-whole-CqtzIrDq.js +0 -1
  803. package/dist/app/assets/part-whole-OqVs8SJS.css +0 -1
  804. package/dist/app/assets/popup-DjQbNwaG.css +0 -1
  805. package/dist/app/assets/popup-XAoQf3yX.js +0 -1
  806. package/dist/app/assets/presentation-D-6oDXkX.js +0 -1
  807. package/dist/app/assets/print-paint-BInhmGTw.js +0 -1
  808. package/dist/app/assets/radio-group-DGPBxyW6.js +0 -1
  809. package/dist/app/assets/refresh-cw-zx0DS0qE.js +0 -1
  810. package/dist/app/assets/registry-C4R3jj3j.js +0 -2
  811. package/dist/app/assets/registry-DiNy1R7M.js +0 -2
  812. package/dist/app/assets/renderer-deck-DkVnQ4xX.js +0 -2
  813. package/dist/app/assets/renderer-doc-BFROgm2K.js +0 -2
  814. package/dist/app/assets/renderer-page-CaVkgQn_.js +0 -2
  815. package/dist/app/assets/renderers-DjsTiK4_.js +0 -1
  816. package/dist/app/assets/run-kind-B2WZjgm4.js +0 -2
  817. package/dist/app/assets/saas-DaFcHIjZ.js +0 -2
  818. package/dist/app/assets/schema-form-BwNSJCDz.js +0 -1
  819. package/dist/app/assets/seam-BuX-L7O-.js +0 -2
  820. package/dist/app/assets/select-DDJqBLM4.js +0 -1
  821. package/dist/app/assets/services-B-NMB4En.js +0 -1
  822. package/dist/app/assets/settings-CZ7Ckx-g.js +0 -1
  823. package/dist/app/assets/share-2-C2TxFOjz.js +0 -1
  824. package/dist/app/assets/sheet-6sPgzZ6r.js +0 -1
  825. package/dist/app/assets/sheet-CyLyPMjt.js +0 -15
  826. package/dist/app/assets/slash-C9_sqsLT.js +0 -2
  827. package/dist/app/assets/sparkline-lite-BRCTxuP1.js +0 -1
  828. package/dist/app/assets/sparkline-lite-D0vAJO6h.css +0 -1
  829. package/dist/app/assets/src-B3zSoEr2.js +0 -2
  830. package/dist/app/assets/src-DthoX0U1.js +0 -4
  831. package/dist/app/assets/src-fg_sJxDE.css +0 -1
  832. package/dist/app/assets/stat-DITCupas.js +0 -1
  833. package/dist/app/assets/steps-BKE6MxvE.js +0 -1
  834. package/dist/app/assets/steps-CzwQF2X9.css +0 -1
  835. package/dist/app/assets/storage-BP4N_Kde.js +0 -4
  836. package/dist/app/assets/structure-Bxx8Z738.js +0 -2
  837. package/dist/app/assets/structure-CV2XMg1i.js +0 -1
  838. package/dist/app/assets/studio-BpSjJ4sH.js +0 -2
  839. package/dist/app/assets/style-DEgj0nDO.js +0 -2
  840. package/dist/app/assets/text-Wb8u2Uyt.js +0 -1
  841. package/dist/app/assets/text-YMPMGPMj.js +0 -1
  842. package/dist/app/assets/thumbnails-BPHPAv1P.js +0 -1
  843. package/dist/app/assets/thumbs-up-DlPgXRcT.js +0 -1
  844. package/dist/app/assets/timeline-BbxkFqUC.js +0 -1
  845. package/dist/app/assets/timeline-C9WiHoJO.css +0 -1
  846. package/dist/app/assets/upload-Bm4b-FQV.js +0 -1
  847. package/dist/app/assets/use-messages-BqadSYrT.js +0 -1
  848. package/dist/app/assets/use-messages-CMG1vOXg.js +0 -1
  849. package/dist/app/assets/use-overlay-layer.svelte-DvlCPqto.js +0 -1
  850. package/dist/app/assets/use-overlay-portal.svelte-DDHakN83.js +0 -1
  851. package/dist/app/assets/users-Bh5Rc6T0.js +0 -1
  852. package/dist/app/assets/validation-v_P8RXAm.js +0 -2
  853. package/dist/app/assets/variants-SS1JhYSo.js +0 -1
  854. package/dist/app/assets/x-CzT3WLwV.js +0 -1
  855. package/dist/app/assets/zap-DaNHL6EY.js +0 -1
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ThemeStudioSection-DZGAenHY.js","./theme-gO6KESO1.js","./schemas-Cd-wWAs4.js","./preload-helper-CRzLMJPS.js","./contrast-s6qwb-S-.js","./presets-yYeapXmM.js","./rolldown-runtime-XKyaHtl9.js","./apply-CT-2ixg7.js","./fonts-CyzGCo-s.js","./seed-C9w8QDA_.js","./types-BiUdY2U5.js","./oklch-DhPyiYB2.js","./palette-D3qxDLiu.js","./from-texuli-F7aPl70I.js","./charts-UaISBi-6.js","./registry-exXUF-5L.js","./ids-BFXF9Z_4.js","./registry-BZiqneBm.js","./metadata-BpPlGhv5.js","./records-uXFbdI0w.js","./types-B0IEHQCD.js","./FileInput-Be-fNVHQ.js","./scenario-DfCy7uDa.js","./devices-B2GmUWdq.js","./environment-qEbacsJ-.js","./random--LplQdQC.js","./manifest-0Q1tYlhS.js","./index-client-BOGsOwg5.js","./disclose-version-xihTtKlq.js","./FileUpload-Bc23jR9k.js","./safe-image-src-DQWk9Hmw.js","./trust-DZxM74pz.js","./safe-href-Ca6kZWby.js","./variants-CqLUuoxu.js","./cx-BNZ52w-j.js","./design-defaults-DW6_LbVN.js","./i18n-C1FxoBbJ.js","./use-messages-CMG1vOXg.js","./index-client-x7oDvRVJ.js","./events-BZIKUW6N.js","./use-messages-BqadSYrT.js","./handlers-CkNHDF5y.js","./control-props-OVgLyhvo.js","./FileUpload-CUDnO_wv.css","./SelectValue-Cn6C_Jw7.js","./handlers-ByGe01Fz.js","./core-X3vERPZ1.js","./env-guq4m6_s.js","./presence-zf-tyTu4.js","./state-Di2Pzrl0.js","./typeahead-BP48qCAc.js","./keys-P79j73dU.js","./position-floating-DVYNUqB9.js","./form-bridge-BFV-h8qv.js","./SelectValue-Nfj3YFHu.css","./style-presets-NvFQjCjA.js","./Textarea-DMvNCflX.js","./Input-D3Bgj1Zz.js","./Input-B5IDQk3l.css","./Checkbox-TnscN5Ty.js","./child-BNsqGBSq.js","./variants-BSgG2nVA.js","./variants-BoB1dKDA.css","./Slider-BrVPdB-w.js","./context-DJ4ajOGM.js","./Slider-D5WUpT4E.css","./design-systems-DzkHB4mN.js","./apply-B8URYyvp.js","./attributes-ZVEMdrPN.js","./texuli-27exlwkX.js","./validate-6AAyBgB0.js","./semantic-BZOGW1yM.js","./Segmented-BFxRPNuU.js","./Button-CYExAoxT.js","./Button-5BamLyf0.css","./Card-DnZFo53x.js","./Card-DkeUHZOp.css","./radio-group-DGPBxyW6.js","./roving-CztmB2zQ.js","./dir-locale-Bp4_WmZL.js","./Spinner-BoiMf0zZ.js","./variants-DOyT6BC2.js","./variants-CjnNSDuw.css"])))=>i.map(i=>d[i]);
2
- import{a as e,s as t,t as n}from"./devices-B2GmUWdq.js";import{a as r,r as i}from"./environment-qEbacsJ-.js";import{f as a,u as o}from"./manifest-0Q1tYlhS.js";import{r as s}from"./theme-gO6KESO1.js";import{a as c,n as l,s as u,t as d}from"./storage-Bxp2oaxI.js";import{t as f}from"./preload-helper-CRzLMJPS.js";import{t as p}from"./Avatar-XwYTvfOl.js";import{t as m}from"./presets-yYeapXmM.js";import{o as h,t as g}from"./ids-BFXF9Z_4.js";import{f as _,r as v,t as y,v as b}from"./registry-exXUF-5L.js";import{n as x}from"./no-flash-Dj4XzHOU.js";import{a as S,c as C,i as w,n as T,o as E,r as D,s as ee,t as te}from"./FileInput-Be-fNVHQ.js";import{a as ne,i as re,n as ie,r as ae,t as O}from"./style-presets-NvFQjCjA.js";import{A as oe,B as k,C as se,D as ce,Dt as le,F as A,G as ue,I as de,J as fe,K as pe,M as j,N as me,O as he,Ot as ge,P as _e,S as ve,Tt as M,V as N,W as P,Z as F,a as ye,at as I,bt as be,ct as L,dt as xe,et as R,h as z,i as Se,it as B,j as Ce,k as V,kt as we,l as Te,lt as H,mt as U,n as Ee,ot as W,pt as De,q as Oe,r as ke,st as G,t as Ae,tt as K,ut as q,wt as J,x as je,yt as Me,z as Y}from"./index-client-BOGsOwg5.js";import"./disclose-version-xihTtKlq.js";import{t as Ne}from"./Badge-B9mnZVCl.js";import"./events-BZIKUW6N.js";import{t as Pe}from"./Icon-CzgWZ-Sj.js";import{t as Fe}from"./Icon-B2CYXdo3.js";import{t as Ie}from"./Textarea-DMvNCflX.js";import{t as Le}from"./Input-D3Bgj1Zz.js";import{t as Re}from"./Checkbox-TnscN5Ty.js";import{n as ze,t as Be}from"./RadioGroup-w1hFC0p4.js";import{t as Ve}from"./Switch-CUXRVOl-.js";import{t as He}from"./LucideIcon-BLXM0Ftv.js";import{t as Ue}from"./Alert-7hPBdjVV.js";import{n as We,r as Ge,t as Ke}from"./users-Bh5Rc6T0.js";import{t as qe}from"./copy-CdPoo-W-.js";import{n as Je,r as Ye,t as Xe}from"./upload-Bm4b-FQV.js";import{t as Ze}from"./palette-DU0H4nZe.js";import{t as Qe}from"./presentation-D-6oDXkX.js";import{t as $e}from"./refresh-cw-zx0DS0qE.js";import{t as et}from"./share-2-C2TxFOjz.js";import{t as tt}from"./Slider-BrVPdB-w.js";import{c as nt}from"./names-_PDy7Bq8.js";import{i as X,n as rt,r as Z,t as it}from"./Segmented-BFxRPNuU.js";var at={name:`flask-conical`,size:24,node:[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`}],[`path`,{d:`M6.453 15h11.094`}],[`path`,{d:`M8.5 2h7`}]]};at.node;var ot=new Set([`$$slots`,`$$events`,`$$legacy`]);function st(e,t){let n=Se(t,ot);Fe(e,ye(()=>n,{get icon(){return at}}))}var ct={name:`camera`,size:24,node:[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`}],[`circle`,{cx:`12`,cy:`13`,r:`3`}]]};ct.node;var lt=new Set([`$$slots`,`$$events`,`$$legacy`]);function ut(e,t){let n=Se(t,lt);Fe(e,ye(()=>n,{get icon(){return ct}}))}var dt={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`}],[`path`,{d:`m6.18 5.276 3.1 3.899`}]]};dt.node;var ft=new Set([`$$slots`,`$$events`,`$$legacy`]);function pt(e,t){let n=Se(t,ft);Fe(e,ye(()=>n,{get icon(){return dt}}))}var mt={name:`eraser`,size:24,node:[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`}],[`path`,{d:`m5.082 11.09 8.828 8.828`}]]};mt.node;var ht=new Set([`$$slots`,`$$events`,`$$legacy`]);function gt(e,t){let n=Se(t,ht);Fe(e,ye(()=>n,{get icon(){return mt}}))}var _t={name:`wifi`,size:24,node:[[`path`,{d:`M12 20h.01`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`}]]};_t.node;var vt=new Set([`$$slots`,`$$events`,`$$legacy`]);function yt(e,t){let n=Se(t,vt);Fe(e,ye(()=>n,{get icon(){return _t}}))}var bt={open:!1,tab:`scenario`};function xt(e){return`protoyard.${e}.devtools`}function St(e,t=x()){try{let n=t?.getItem(xt(e));if(!n)return{...bt};let r=JSON.parse(n);return{open:typeof r.open==`boolean`?r.open:bt.open,tab:typeof r.tab==`string`?r.tab:bt.tab}}catch{return{...bt}}}function Ct(e,t,n=x()){try{n?.setItem(xt(e),JSON.stringify(t))}catch{}}var wt=N(`<span class="contents"><!></span>`);function Q(e,t){var n=k(),r=I(n),i=e=>{Pe(e,{get icon(){return t.icon},get class(){return t.class},get label(){return t.label},get"aria-hidden"(){return t[`aria-hidden`]}})},a=e=>{var n=wt(),r=B(n);He(r,{get icon(){return t.icon},get class(){return t.class},get label(){return t.label}}),M(n),R(()=>z(n,`aria-hidden`,t[`aria-hidden`])),Y(e,n)};j(r,e=>{typeof t.icon==`string`?e(i):e(a,-1)}),Y(e,n)}var Tt=N(`<div class="mt-2" data-py-devtools-inline-error=""><!></div>`);function Et(e,t){var n=k(),r=I(n),i=e=>{var n=Tt(),r=B(n);Ue(r,{tone:`error`,get text(){return t.message},hideIcon:!0}),M(n),Y(e,n)};j(r,e=>{t.message&&e(i)}),Y(e,n)}var Dt=N(` <span class="sr-only"> </span>`,1);function $(e,t){let n={override:`default`,preference:`info`,scenario:`secondary`,default:`outline`},r={override:`Temporary DevTools override`,preference:`Saved in the active persona's preferences`,scenario:`Defined by the loaded scenario`,default:`Prototype or platform default`};Ne(e,{get variant(){return n[t.source]},get title(){return r[t.source]},get"data-py-devtools-source"(){return t.source},class:`uppercase tracking-wide font-mono text-[10px]`,children:(e,n)=>{J();var i=Dt(),a=I(i,!0),o=G(a),s=W(o);R(()=>{A(a,t.source),A(s,`: ${r[t.source]??``}`)}),Y(e,i)},$$slots:{default:!0}})}function Ot(e,t){let n=ke(t,`disabled`,3,!1),r=ke(t,`hideLabel`,3,!1);var i=k(),a=I(i),o=e=>{Ve(e,{get checked(){return t.checked},get disabled(){return n()},size:`sm`,get onCheckedChange(){return t.onchange},get"aria-label"(){return t.label},"data-py-devtools-toggle":``})},s=e=>{Ve(e,{get checked(){return t.checked},get disabled(){return n()},size:`sm`,get label(){return t.label},get onCheckedChange(){return t.onchange},"data-py-devtools-toggle":``})};j(a,e=>{r()?e(o):e(s,-1)}),Y(e,i)}var kt=N(`<div class="grid gap-2"><!> <label class="block text-[11px] text-muted-foreground"><span class="flex justify-between"><span>Fine tune</span><span class="font-mono text-foreground"> </span></span> <!></label></div>`),At=N(`<!> <!> <!> <!> <!>`,1);function jt(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=U(()=>t.dt.appearance),i=U(()=>t.dt.isBusy(`appearance`)),a=`theme`;async function o(e,r){return await t.dt.run(`appearance:style:${e}`,()=>F(n).theme.setOverride(r)),t.dt.errorFor(`appearance`)===null}let s=e=>[{value:a,label:`Theme`},...e.map(e=>({value:e.id,label:e.label}))],c=U(()=>F(r).density?.value??1),l=q(1);K(()=>{H(l,F(c),!0)});let u,d=!1;async function f(e){if(u=e,!d){d=!0;try{for(;u!==void 0;){for(;F(i);)await new Promise(e=>setTimeout(e,0));let e=u;u=void 0,await o(`density`,{density:e})||H(l,F(c),!0)}}finally{d=!1,u!==void 0&&f(u)}}}let p=U(()=>F(r).density?.source===`override`?O.find(e=>e.density===F(c))?.id??`custom`:a),m=e=>`${e.toFixed(3).replace(/0+$/,``).replace(/\.$/,``)}×`;var h=At(),g=I(h);Z(g,{title:`Density`,description:`Scales the whole spacing system. Always a temporary override.`,actions:e=>{var t=k(),n=I(t),i=e=>{$(e,{get source(){return F(r).density.source}})};j(n,e=>{F(r).density&&e(i)}),Y(e,t)},children:(e,t)=>{var n=kt(),r=B(n);{let e=U(()=>s(O));it(r,{label:`Density preset`,get value(){return F(p)},get options(){return F(e)},get busy(){return F(i)},onchange:e=>{o(`density`,{density:O.find(t=>t.id===e)?.density})}})}var a=G(r,2),c=B(a),u=G(B(c)),d=W(u,!0);M(c);var h=G(c,2);tt(h,{min:.75,max:1.25,step:.025,class:`mt-1 w-full accent-primary`,get value(){return F(l)},label:`Density`,"aria-label":`Density`,getValueText:e=>`${e} times`,onValueChange:e=>{typeof e==`number`&&H(l,e,!0)},onValueCommit:e=>{typeof e==`number`&&f(e)}}),M(a),M(n),R(e=>A(d,e),[()=>m(F(l))]),Y(e,n)},$$slots:{actions:!0,default:!0}});var _=G(g,2);Z(_,{title:`Corner radius`,description:`Rounds buttons, cards and inputs. A temporary override on top of the theme.`,actions:e=>{var t=k(),n=I(t),i=e=>{$(e,{get source(){return F(r).radius.source}})};j(n,e=>{F(r).radius&&e(i)}),Y(e,t)},children:(e,t)=>{{let t=U(()=>F(r).radius?.value??a),n=U(()=>s(ne));it(e,{label:`Corner radius`,get value(){return F(t)},get options(){return F(n)},get busy(){return F(i)},onchange:e=>o(`radius`,{radius:e===a?void 0:e})})}},$$slots:{actions:!0,default:!0}});var v=G(_,2);Z(v,{title:`Elevation`,description:`Shadow character: flat, soft, crisp, glow or layered.`,actions:e=>{var t=k(),n=I(t),i=e=>{$(e,{get source(){return F(r).elevation.source}})};j(n,e=>{F(r).elevation&&e(i)}),Y(e,t)},children:(e,t)=>{{let t=U(()=>F(r).elevation?.value??a),n=U(()=>s(ie));it(e,{label:`Elevation`,get value(){return F(t)},get options(){return F(n)},get busy(){return F(i)},onchange:e=>o(`elevation`,{elevation:e===a?void 0:e})})}},$$slots:{actions:!0,default:!0}});var y=G(v,2);Z(y,{title:`Font pairing`,description:`System-first font stacks; nothing is downloaded.`,actions:e=>{var t=k(),n=I(t),i=e=>{$(e,{get source(){return F(r).font.source}})};j(n,e=>{F(r).font&&e(i)}),Y(e,t)},children:(e,t)=>{{let t=U(()=>F(r).font?.value??a),n=U(()=>[{value:a,label:`Theme`},...ae.map(e=>({value:e.id,label:e.label}))]);ee(e,{class:`h-8 w-full rounded-md border border-input bg-background px-2 text-xs text-foreground disabled:opacity-60`,label:`Font pairing`,get value(){return F(t)},get disabled(){return F(i)},onchange:e=>{o(`font`,{font:e===a?void 0:e})},get options(){return F(n)}})}},$$slots:{actions:!0,default:!0}});var b=G(y,2);Z(b,{title:`Motion`,description:`Transition speed and easing. Reduced motion still wins.`,actions:e=>{var t=k(),n=I(t),i=e=>{$(e,{get source(){return F(r).motion.source}})};j(n,e=>{F(r).motion&&e(i)}),Y(e,t)},children:(e,t)=>{{let t=U(()=>F(r).motion?.value??a),n=U(()=>s(re));it(e,{label:`Motion`,get value(){return F(t)},get options(){return F(n)},get busy(){return F(i)},onchange:e=>o(`motion`,{motion:e===a?void 0:e})})}},$$slots:{actions:!0,default:!0}}),Y(e,h),Me()}function Mt(e){return[e.seed,e.secondary??e.seed]}var Nt=N(`<span class="h-5 flex-1"></span>`),Pt=N(`<span class="flex w-full overflow-hidden rounded border border-border/60" aria-hidden="true"></span> <span class="flex w-full items-center justify-between gap-1 text-[11px] font-medium"><span class="truncate"> </span> <!></span>`,1),Ft=N(`<p class="text-[11px] text-muted-foreground" role="status"> </p>`),It=N(`<div class="grid gap-1.5"><p class="text-[11px] font-medium text-muted-foreground"> </p> <div class="grid grid-cols-3 gap-1.5" role="radiogroup" tabindex="-1"></div></div>`),Lt=N(` <span class="tabular-nums"> </span>`,1),Rt=N(`<p class="flex items-center gap-1.5 text-[11px] text-muted-foreground" role="status"><!> </p>`),zt=N(`<p class="text-xs text-muted-foreground">No library theme matches.</p>`),Bt=N(`<div class="grid grid-cols-3 gap-1.5" role="radiogroup" aria-labelledby="theme-group-library" tabindex="-1"></div>`),Vt=N(`<div class="flex items-center justify-between gap-2"><p class="text-[11px] font-medium text-muted-foreground" id="theme-group-library">Theme library</p> <!></div> <div class="flex flex-wrap gap-1" role="group" aria-label="Collections"><!> <!></div> <label class="grid gap-1 text-[11px] text-muted-foreground">Tag <!></label> <!> <!>`,1),Ht=N(`<div class="grid gap-3" data-testid="theme-browser"><label class="grid gap-1 text-[11px] text-muted-foreground">Search themes <!></label> <!> <!> <div class="grid gap-1.5"><!></div></div>`);function Ut(e,t){be(t,!0);let n=(e,n=ge,a=ge,o=ge,s=ge,c=ge)=>{let l=U(()=>F(r).theme.value===n()),u=U(()=>t.dt.isBusy(`appearance:theme:${n()}`));{let t=U(()=>F(u)||void 0),r=U(()=>ce(c(),n())),d=U(()=>F(i)&&!F(u)),f=U(()=>F(l)?`border-primary ring-1 ring-primary`:`border-border hover:bg-muted/60`);X(e,{type:`button`,role:`radio`,get"aria-checked"(){return F(l)},get"aria-busy"(){return F(t)},get tabindex(){return F(r)},get disabled(){return F(d)},get title(){return o()},get"data-theme-id"(){return n()},get class(){return`group flex min-h-touch flex-col items-start gap-1.5 rounded-md border p-2 text-left focus-visible:outline-2 focus-visible:outline-ring ${F(f)??``} disabled:opacity-60`},onclick:()=>k(n()),children:(e,t)=>{var n=Pt(),r=I(n);V(r,21,s,oe,(e,t)=>{var n=Nt();let r;R(()=>r=je(n,``,r,{"background-color":F(t)})),Y(e,n)}),M(r);var i=G(r,2),o=B(i),c=W(o,!0),d=G(o,2),f=e=>{rt(e,{class:`text-primary`})},p=e=>{Q(e,{icon:`check`,class:`size-3 shrink-0 text-primary`,"aria-hidden":`true`})};j(d,e=>{F(u)?e(f):F(l)&&e(p,1)}),M(i),R(()=>A(c,a())),Y(e,n)},$$slots:{default:!0}})}},r=U(()=>t.dt.appearance),i=U(()=>t.dt.isBusy(`appearance`)),a=U(()=>t.dt.runtime.theme),o=q(``),s=q(``),c=q(``),l=q(!1),u=new Set(m.map(e=>e.id)),d=q(L(y)),f=q(!1),p=!1,x=U(()=>v(F(d)).filter(e=>e.count>0)),S=U(()=>[...new Set(F(d).flatMap(e=>e.tags))].sort()),C=U(()=>F(o).toLowerCase().split(/\s+/).filter(Boolean)),w=U(()=>F(C).length>0||F(s)!==``||F(c)!==``);function T(e){if(F(s)!==``||F(c)!==``)return!1;let t=`${e.name} ${e.id} ${e.description}`.toLowerCase();return F(C).every(e=>t.includes(e))}let E=U(()=>t.themes.filter(e=>!u.has(e.id)&&!h(e.id)&&!F(a).isCustom?.(e.id)&&!F(a).isLibrary?.(e.id))),D=U(()=>t.themes.filter(e=>u.has(e.id))),te=U(()=>t.themes.filter(e=>F(a).isCustom?.(e.id))),ne=U(()=>b(F(d),F(o)).filter(e=>(F(s)===``||e.collection===F(s))&&(F(c)===``||e.tags.includes(F(c))))),re=U(()=>[{id:`own`,label:`This prototype`,themes:F(E).filter(T)},{id:`builtin`,label:`Built-in`,themes:F(D).filter(T)},{id:`custom`,label:`Custom`,themes:F(te).filter(T)}].filter(e=>e.themes.length>0)),ie=U(()=>F(l)||F(w));K(()=>{F(ie)&&!p&&(p=!0,H(f,!0),_().then(e=>{H(d,e,!0)}).finally(()=>{H(f,!1)}))});let ae=U(()=>F(re).reduce((e,t)=>e+t.themes.length,0)+F(ne).length),O=e=>t.themes.find(t=>t.id===e);function k(e){F(i)||t.select(e)}function se(e){if(![`ArrowRight`,`ArrowDown`,`ArrowLeft`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`[role="radio"]`)],n=t.indexOf(document.activeElement);if(n===-1)return;e.preventDefault();let r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowRight`||e.key===`ArrowDown`?(n+1)%t.length:(n-1+t.length)%t.length]?.focus()}function ce(e,t){let n=F(r).theme.value;return e.includes(n)?t===n?0:-1:t===e[0]?0:-1}var le=Ht(),ue=B(le),de=G(B(ue));Le(de,{type:`search`,class:`h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground`,placeholder:`Name, mood, tag or category`,"aria-label":`Search themes`,get value(){return F(o)},set value(e){H(o,e,!0)}}),M(ue);var fe=G(ue,2),me=e=>{var t=Ft(),n=W(t,!0);R(()=>A(n,F(ae)===1?`1 theme matches`:`${F(ae)} themes match`)),Y(e,t)};j(fe,e=>{F(w)&&e(me)});var he=G(fe,2);V(he,17,()=>F(re),e=>e.id,(e,t)=>{let i=U(()=>F(t).themes.map(e=>e.id));var a=It(),o=B(a),s=W(o,!0),c=G(o,2);V(c,21,()=>F(t).themes,e=>e.id,(e,t)=>{let a=U(()=>F(r).resolvedMode===`dark`?F(t).dark:F(t).light);n(e,()=>F(t).id,()=>F(t).name,()=>F(t).description,()=>[F(a).primary,F(a).accent,F(a).surface,F(a).foreground],()=>F(i))}),M(c),M(a),R(()=>{z(o,`id`,`theme-group-${F(t).id??``}`),A(s,F(t).label),z(c,`aria-labelledby`,`theme-group-${F(t).id??``}`)}),pe(`keydown`,c,se),Y(e,a)});var _e=G(he,2),ve=B(_e),N=e=>{X(e,{type:`button`,class:`min-h-touch rounded-md border border-dashed border-border px-2 py-1.5 text-xs font-medium hover:bg-muted/60 focus-visible:outline-2 focus-visible:outline-ring`,"aria-expanded":`false`,onclick:()=>H(l,!0),children:(e,t)=>{J();var n=P();R(()=>A(n,`Browse ${g.length??``} more themes`)),Y(e,n)},$$slots:{default:!0}})},ye=e=>{var t=Vt(),i=I(t),a=G(B(i),2),o=e=>{X(e,{type:`button`,class:`rounded px-1.5 text-[11px] text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,"aria-expanded":`true`,onclick:()=>H(l,!1),children:(e,t)=>{J();var n=P(`Hide library`);Y(e,n)},$$slots:{default:!0}})};j(a,e=>{F(l)&&!F(w)&&e(o)}),M(i);var u=G(i,2),d=B(u);{let e=U(()=>F(s)===``),t=U(()=>F(s)===``?`border-primary bg-primary/10 text-foreground`:`border-border text-muted-foreground`);X(d,{type:`button`,get"aria-pressed"(){return F(e)},get class(){return`rounded-full border px-2 py-0.5 text-[11px] ${F(t)??``}`},onclick:()=>H(s,``),children:(e,t)=>{J();var n=P(`All`);Y(e,n)},$$slots:{default:!0}})}var p=G(d,2);V(p,17,()=>F(x),e=>e.id,(e,t)=>{{let n=U(()=>F(s)===F(t).id),r=U(()=>F(s)===F(t).id?`border-primary bg-primary/10 text-foreground`:`border-border text-muted-foreground`);X(e,{type:`button`,get"aria-pressed"(){return F(n)},get class(){return`rounded-full border px-2 py-0.5 text-[11px] ${F(r)??``}`},onclick:()=>H(s,F(s)===F(t).id?``:F(t).id,!0),children:(e,n)=>{J();var r=Lt(),i=I(r),a=G(i),o=W(a,!0);R(()=>{A(i,`${F(t).id??``} `),A(o,F(t).count)}),Y(e,r)},$$slots:{default:!0}})}}),M(u);var m=G(u,2),h=G(B(m));{let e=U(()=>[{value:``,label:`Any tag`},...F(S).map(e=>({value:e,label:e}))]);ee(h,{class:`h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground`,get value(){return F(c)},label:`Filter by tag`,onchange:e=>H(c,e,!0),get options(){return F(e)}})}M(m);var _=G(m,2),v=e=>{var t=Rt(),n=B(t);rt(n,{class:`text-primary`});var r=G(n);M(t),R(()=>A(r,` Loading ${g.length-y.length} more library themes…`)),Y(e,t)};j(_,e=>{F(f)&&e(v)});var b=G(_,2),C=e=>{var t=zt();Y(e,t)},T=e=>{let t=U(()=>F(ne).map(e=>e.id));var i=Bt();V(i,21,()=>F(ne),e=>e.id,(e,i)=>{let a=U(()=>O(F(i).id)),o=U(()=>F(a)?F(r).resolvedMode===`dark`?F(a).dark:F(a).light:void 0);{let r=U(()=>F(o)?[F(o).primary,F(o).accent,F(o).surface,F(o).foreground]:Mt(F(i)));n(e,()=>F(i).id,()=>F(i).name,()=>`${F(i).description} (${F(i).collection}, ${F(i).category})`,()=>F(r),()=>F(t))}}),M(i),pe(`keydown`,i,se),Y(e,i)};j(b,e=>{F(ne).length===0?e(C):e(T,-1)}),Y(e,t)};j(ve,e=>{F(ie)?e(ye,-1):e(N)}),M(_e),M(le),Y(e,le),Me()}ue([`keydown`]);var Wt=N(`<!> <p class="mt-1.5 text-[11px] text-muted-foreground"> </p>`,1),Gt=N(`<!> <!>`,1),Kt=N(`<p class="text-xs text-destructive" role="alert"> </p>`),qt=N(`<p class="text-xs text-muted-foreground" role="status">Loading Theme Studio…</p>`),Jt=N(`<p class="mt-1.5 text-[11px] text-muted-foreground"> </p>`),Yt=N(`<!> <!> <div class="mt-2.5 flex items-center justify-between"><!> <!></div>`,1),Xt=N(`<label class="block text-[11px] text-muted-foreground"><span class="mb-1 block">App layout</span> <!></label> <!>`,1),Zt=N(`More shells <!>`,1),Qt=N(`<div class="mt-1.5 grid grid-cols-2 gap-1" role="group" aria-label="More shells"></div>`),$t=N(`<div class="mt-2"><!> <!></div>`),en=N(`<p class="mt-1.5 text-[11px] text-muted-foreground">Effective shell: <span class="font-mono text-foreground"> </span> <!></p>`),tn=N(`<div class="mb-2.5 flex items-center justify-between gap-2"><!> <span class="text-[11px] text-muted-foreground"> </span></div> <!> <!> <!>`,1),nn=N(`<label class="block text-[11px] text-muted-foreground"><span class="mb-1 block">Device</span> <!></label>`),rn=N(`<p class="mt-1.5 text-[11px] text-muted-foreground">This device stays in landscape.</p>`),an=N(`<!> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function on(r,i){be(i,!0);let c=U(()=>i.dt.runtime),l=U(()=>i.dt.appearance),u=U(()=>{F(l);let e=F(c).theme.themes();return e.length?[...e]:i.dt.themes}),d=q(!1),p=()=>f(()=>import(`./ThemeStudioSection-DZGAenHY.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82]),import.meta.url),m=U(()=>F(c).manifest.platform),h=U(()=>i.dt.overrides),g=U(()=>F(c).manifest.preview.layout),_=U(()=>(F(g)?.id??`custom`)!==`custom`||F(g)?.supported!==void 0),v=U(()=>a(F(g)).map(e=>({value:e,label:o.find(t=>t.id===e)?.label??e}))),y=q(`override`),b=q(`phone`),x=q(!1),S=U(()=>[`themeId`,`mode`,`reducedMotion`,`viewport`,`density`,`shell`,`device`,`orientation`,`layout`,...s].some(e=>F(h)[e]!==void 0)),C=U(()=>i.dt.isBusy(`appearance`)),w=U(()=>i.dt.isBusy(`appearance:layout`));async function T(e){await i.dt.run(`appearance:layout`,()=>F(c).theme.setOverride({layout:e}))}async function E(e,t=`appearance:look`){await i.dt.run(t,()=>F(y)===`override`?F(c).theme.setOverride(e):F(c).theme.setPreference(e))}async function D(e){e.shell!==void 0&&e.shell!==`none`&&H(b,e.shell,!0),await i.dt.run(`appearance:shell`,()=>F(c).theme.setOverride(e))}let te=[{value:`desktop`,label:`Desktop`},{value:`tablet`,label:`Tablet`},{value:`iphone`,label:`iPhone`},{value:`android`,label:`Android`}],ne=[{value:`auto`,label:`Auto`},{value:`none`,label:`None`},{value:`phone`,label:`Phone`},{value:`tablet`,label:`Tablet`},{value:`desktop-window`,label:`Window`},{value:`browser`,label:`Browser`},{value:`widget-host`,label:`Widget`},{value:`extension-popup`,label:`Ext. popup`},{value:`side-panel`,label:`Side panel`}];function re(e){return e===`mobile`?[`auto`,`phone`,`tablet`,`none`]:e===`desktop`?[`auto`,`none`,`desktop-window`,`browser`,`phone`]:[`auto`,`none`,`phone`,`desktop-window`,`browser`]}let ie=U(()=>ne.filter(e=>re(F(m)).includes(e.value))),ae=U(()=>ne.filter(e=>!re(F(m)).includes(e.value))),O=U(()=>F(h).shell??F(c).manifest.preview.shell??`auto`),oe=U(()=>F(l).shell.value!==`none`),se=U(()=>n.filter(t=>e(t.id,F(l).shell.value))),le=U(()=>F(l).device.value),ue=U(()=>t(F(le))),de=U(()=>F(l).orientation.value),fe=U(()=>!!F(ue)?.rotatable);async function pe(e){e?await D({shell:F(b)===`none`?F(m)===`mobile`?`phone`:`desktop-window`:F(b)}):(F(O)!==`none`&&H(b,F(O),!0),await D({shell:`none`}))}var he=an(),ge=I(he);Z(ge,{title:`Apply changes as`,children:(e,t)=>{var n=Wt(),r=I(n);it(r,{label:`Where appearance changes are stored`,get value(){return F(y)},options:[{value:`override`,label:`Temporary override`},{value:`preference`,label:`Persona preference`}],onchange:e=>H(y,e,!0)});var a=G(r,2),o=W(a,!0);R(()=>A(o,F(y)===`override`?`A design preview for you only; the persona keeps its own choice.`:`Saved for ${i.dt.principal?.persona.name??`the active persona`} and restored when you switch back.`)),Y(e,n)},$$slots:{default:!0}});var _e=G(ge,2);Z(_e,{title:`Theme`,actions:e=>{$(e,{get source(){return F(l).theme.source}})},children:(e,t)=>{var n=Gt(),r=I(n);Ut(r,{get dt(){return i.dt},get themes(){return F(u)},select:e=>E({themeId:e},`appearance:theme:${e}`)});var a=G(r,2);{let e=U(()=>i.dt.errorFor(`appearance`));Et(a,{get message(){return F(e)}})}Y(e,n)},$$slots:{actions:!0,default:!0}});var ve=G(_e,2);Z(ve,{title:`Theme Studio`,description:`Create a theme from a brand color, preview it live, save, export or import it.`,actions:e=>{X(e,{get"aria-expanded"(){return F(d)},onclick:()=>H(d,!F(d)),children:(e,t)=>{J();var n=P();R(()=>A(n,F(d)?`Close studio`:`Open studio`)),Y(e,n)},$$slots:{default:!0}})},children:(e,t)=>{var n=k(),r=I(n),a=e=>{var t=k(),n=I(t);me(n,p,e=>{var t=qt();Y(e,t)},(e,t)=>{var n=U(()=>{var{default:e}=F(t);return{ThemeStudio:e}}),r=U(()=>F(n).ThemeStudio),a=k(),o=I(a);ce(o,()=>F(r),(e,t)=>{t(e,{get dt(){return i.dt}})}),Y(e,a)},(e,t)=>{var n=Kt(),r=W(n);R(e=>A(r,`Theme Studio could not load: ${e??``}`),[()=>F(t)instanceof Error?F(t).message:String(F(t))]),Y(e,n)}),Y(e,t)};j(r,e=>{F(d)&&e(a)}),Y(e,n)},$$slots:{actions:!0,default:!0}});var N=G(ve,2);Z(N,{title:`Color mode`,actions:e=>{$(e,{get source(){return F(l).mode.source}})},children:(e,t)=>{var n=Yt(),r=I(n);it(r,{label:`Color mode`,get value(){return F(l).mode.value},options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`},{value:`system`,label:`System`}],get busy(){return F(C)},onchange:e=>E({mode:e})});var i=G(r,2),a=e=>{var t=Jt(),n=W(t);R(()=>A(n,`System currently resolves to ${F(l).resolvedMode??``}.`)),Y(e,t)};j(i,e=>{F(l).mode.value===`system`&&e(a)});var o=G(i,2),s=B(o);Ot(s,{get checked(){return F(l).reducedMotion.value},label:`Reduced motion`,onchange:e=>E({reducedMotion:e})}),$(G(s,2),{get source(){return F(l).reducedMotion.source}}),M(o),Y(e,n)},$$slots:{actions:!0,default:!0}});var ye=G(N,2);jt(ye,{get dt(){return i.dt}});var L=G(ye,2);Z(L,{title:`Viewport preset`,description:`Narrows the app column. Media queries still follow the real window — use the gallery device preview for true breakpoints.`,actions:e=>{$(e,{get source(){return F(l).viewport.source}})},children:(e,t)=>{{let t=U(()=>F(l).viewport.value===`custom`?`desktop`:F(l).viewport.value);it(e,{label:`Viewport preset`,get value(){return F(t)},get options(){return te},get busy(){return F(C)},onchange:e=>i.dt.run(`appearance`,()=>F(c).theme.setOverride({viewport:e}))})}},$$slots:{actions:!0,default:!0}});var xe=G(L,2),z=e=>{Z(e,{title:`Layout`,description:`Temporary app frame override. Share links include ?layout= when set.`,actions:e=>{$(e,{get source(){return F(l).layout.source}})},children:(e,t)=>{var n=Xt(),r=I(n),a=G(B(r),2);{let e=U(()=>F(w)||void 0);ee(a,{class:`w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-50`,label:`App layout`,get"aria-busy"(){return F(e)},get disabled(){return F(w)},get value(){return F(l).layout.value},onchange:e=>T(e),get options(){return F(v)}})}M(r);var o=G(r,2);{let e=U(()=>i.dt.errorFor(`appearance`));Et(o,{get message(){return F(e)}})}Y(e,n)},$$slots:{actions:!0,default:!0}})};j(xe,e=>{F(_)&&e(z)});var Se=G(xe,2);Z(Se,{title:`Shell`,description:`Presentation frame around the app (ADR-016). Always a temporary override. Share links carry ?shell= when set.`,actions:e=>{$(e,{get source(){return F(l).shell.source}})},children:(e,t)=>{var n=tn(),r=I(n),i=B(r);Ot(i,{get checked(){return F(oe)},label:`Device frame`,onchange:e=>pe(e)});var a=G(i,2),o=W(a,!0);M(r);var s=G(r,2);it(s,{label:`Shell`,get value(){return F(O)},get options(){return F(ie)},get busy(){return F(C)},onchange:e=>D({shell:e})});var c=G(s,2),u=e=>{var t=$t(),n=B(t);X(n,{type:`button`,class:`inline-flex min-h-touch items-center gap-1 text-[11px] font-medium text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring sm:min-h-7`,get"aria-expanded"(){return F(x)},onclick:()=>H(x,!F(x)),children:(e,t)=>{J();var n=Zt(),r=G(I(n));{let e=U(()=>F(x)?`rotate-180`:``);Q(r,{icon:`chevron-down`,get class(){return`size-3.5 transition-transform ${F(e)??``}`},"aria-hidden":`true`})}Y(e,n)},$$slots:{default:!0}});var r=G(n,2),i=e=>{var t=Qt();V(t,21,()=>F(ae),e=>e.value,(e,t)=>{let n=U(()=>F(O)===F(t).value);{let r=U(()=>F(n)?`border-primary bg-primary/5 text-foreground ring-1 ring-primary`:`border-border text-muted-foreground hover:bg-muted/60 hover:text-foreground`);X(e,{type:`button`,get class(){return`min-h-touch rounded-md border px-2 text-left text-[11px] font-medium focus-visible:outline-2 focus-visible:outline-ring sm:min-h-7 ${F(r)??``}`},get"aria-pressed"(){return F(n)},onclick:()=>D({shell:F(t).value}),children:(e,n)=>{J();var r=P();R(()=>A(r,F(t).label)),Y(e,r)},$$slots:{default:!0}})}}),M(t),Y(e,t)};j(r,e=>{F(x)&&e(i)}),M(t),Y(e,t)};j(c,e=>{F(ae).length>0&&e(u)});var d=G(c,2),f=e=>{var t=en(),n=G(B(t)),r=W(n,!0),i=G(n,2),a=e=>{var t=P(`(from auto)`);Y(e,t)};j(i,e=>{F(O)===`auto`&&e(a)}),M(t),R(()=>A(r,F(l).shell.value)),Y(e,t)};j(d,e=>{(F(O)===`auto`||F(O)!==F(l).shell.value)&&e(f)}),R(()=>A(o,F(oe)?`On`:`Off (full-bleed)`)),Y(e,n)},$$slots:{actions:!0,default:!0}});var Ce=G(Se,2),we=e=>{var t=Gt(),n=I(t);Z(n,{title:`Device`,description:`Catalog device the shell frames. Brand-neutral form factors only.`,actions:e=>{$(e,{get source(){return F(l).device.source}})},children:(e,t)=>{var n=nn(),r=G(B(n),2);{let e=U(()=>F(se).map(e=>({value:e.id,label:e.label})));ee(r,{class:`w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground focus-visible:outline-2 focus-visible:outline-ring`,label:`Device`,get value(){return F(le)},onchange:e=>D({device:e}),get options(){return F(e)}})}M(n),Y(e,n)},$$slots:{actions:!0,default:!0}});var r=G(n,2);Z(r,{title:`Orientation`,description:`Portrait or landscape when the device can rotate.`,actions:e=>{$(e,{get source(){return F(l).orientation.source}})},children:(e,t)=>{var n=Gt(),r=I(n);{let e=U(()=>!F(fe));it(r,{label:`Orientation`,get value(){return F(de)},options:[{value:`portrait`,label:`Portrait`},{value:`landscape`,label:`Landscape`}],get disabled(){return F(e)},onchange:e=>D({orientation:e})})}var i=G(r,2),a=e=>{var t=rn();Y(e,t)};j(i,e=>{F(fe)||e(a)}),Y(e,n)},$$slots:{actions:!0,default:!0}}),Y(e,t)};j(Ce,e=>{F(l).shell.value!==`none`&&e(we)});var Te=G(Ce,2);Z(Te,{title:`Reset`,children:(e,t)=>{{let t=U(()=>!F(S));X(e,{get disabled(){return F(t)},onclick:()=>i.dt.run(`appearance:clear`,()=>F(c).theme.clearOverride(),`Appearance overrides cleared.`),children:(e,t)=>{J();var n=P(`Clear appearance overrides`);Y(e,n)},$$slots:{default:!0}})}},$$slots:{default:!0}}),Y(r,he),Me()}var sn=N(`<div class="mt-2"><!></div>`),cn=N(`<!>Working…`,1),ln=N(`<div class="w-full rounded-md border border-destructive/40 bg-destructive/5 p-2.5" role="group"><p class="text-xs text-foreground"> </p> <!> <div class="mt-2 flex gap-1.5"><!> <!></div></div>`);function un(e,t){be(t,!0);let n=ke(t,`confirmLabel`,3,`Confirm`),r=ke(t,`busy`,3,!1),i=ke(t,`variant`,3,`outline`),a=ke(t,`disabled`,3,!1),o=q(!1);async function s(){await t.onconfirm(),H(o,!1)}var c=k(),l=I(c),u=e=>{var i=ln(),a=B(i),c=W(a,!0),l=G(a,2),u=e=>{var n=sn(),r=B(n);he(r,()=>t.extra),M(n),Y(e,n)};j(l,e=>{t.extra&&e(u)});var d=G(l,2),f=B(d);X(f,{variant:`danger`,get busy(){return r()},onclick:s,children:(e,t)=>{var i=k(),a=I(i),o=e=>{var t=cn(),n=I(t);rt(n,{}),J(),Y(e,t)},s=e=>{var t=P();R(()=>A(t,n())),Y(e,t)};j(a,e=>{r()?e(o):e(s,-1)}),Y(e,i)},$$slots:{default:!0}});var p=G(f,2);X(p,{variant:`ghost`,get disabled(){return r()},onclick:()=>H(o,!1),children:(e,t)=>{J();var n=P(`Cancel`);Y(e,n)},$$slots:{default:!0}}),M(d),M(i),R(()=>{z(i,`aria-label`,t.label),A(c,t.message)}),Y(e,i)},d=e=>{X(e,{get variant(){return i()},get disabled(){return a()},onclick:()=>H(o,!0),children:(e,n)=>{J();var r=P();R(()=>A(r,t.label)),Y(e,r)},$$slots:{default:!0}})};j(l,e=>{F(o)?e(u):e(d,-1)}),Y(e,c),Me()}var dn=N(`<p class="mb-2 text-xs text-destructive" role="alert"> </p>`),fn=N(`<span> </span> <span class="font-mono tabular-nums text-muted-foreground"> </span>`,1),pn=N(`<li><!></li>`),mn=N(`<!> <ul class="grid grid-cols-2 gap-1"></ul>`,1),hn=N(`<th scope="col" class="px-2 py-1 font-mono font-medium whitespace-nowrap"> </th>`),gn=N(`<td class="max-w-40 truncate px-2 py-1 font-mono"> </td>`),_n=N(`<tr class="border-t border-border"></tr>`),vn=N(`<tr><td class="px-2 py-3 text-center text-muted-foreground">No rows.</td></tr>`),yn=N(`<div class="overflow-x-auto rounded-md border border-border" tabindex="0" role="region"><table class="w-full text-left text-[11px]"><thead class="bg-muted text-muted-foreground"><tr></tr></thead><tbody></tbody></table></div> <div class="mt-2 flex items-center justify-between text-[11px] text-muted-foreground"><span> </span> <div class="flex gap-1"><!> <!></div></div>`,1),bn=N(`<dt class="text-muted-foreground">Database</dt> <dd class="truncate font-mono"> </dd>`,1),xn=N(`<p class="mt-1.5 text-[11px] text-destructive"> </p>`),Sn=N(`<div class="mt-2"><!></div>`),Cn=N(`<dl class="grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[11px]"><dt class="text-muted-foreground">World</dt> <dd> </dd> <!> <dt class="text-muted-foreground">Backend</dt> <dd class="font-mono"> </dd> <dt class="text-muted-foreground">Eviction-protected</dt> <dd> </dd> <dt class="text-muted-foreground">Origin usage</dt> <dd class="font-mono"> </dd></dl> <!> <!>`,1),wn=N(`<p class="text-[11px] text-muted-foreground">This browser can't list databases, so other sandboxes can't be shown here.</p>`),Tn=N(`<p class="text-[11px] text-muted-foreground">No sandboxes for this prototype.</p>`),En=N(`<p class="mb-2 text-[11px] text-muted-foreground"> </p> <!>`,1),Dn=N(`<!> <!> <!> <!> <!>`,1);function On(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=q(L({})),i=q(``),a=q(0),o=q(L([])),s=q(!1),c=q(null),u=U(()=>F(n).data.tables()),f=U(()=>F(i)?F(r)[F(i)]??0:0),p=U(()=>{let e=new Set;for(let t of F(o))for(let n of Object.keys(t))e.add(n);return[...e].slice(0,6)});async function m(){H(s,!0),H(c,null);try{H(r,await F(n).data.counts(),!0),F(i)||H(i,F(u).find(e=>!e.startsWith(`py_`))??F(u)[0]??``,!0),F(i)&&H(o,await F(n).data.rows(F(i),{limit:10,offset:F(a)}),!0)}catch(e){H(c,e instanceof Error?e.message:String(e),!0)}finally{H(s,!1)}}K(()=>{t.dt.worldVersion,F(i),F(a),m()});let h=U(()=>(t.dt.worldVersion,F(n).storage())),g=q(null),_=q(null),v=typeof navigator<`u`&&!!navigator.storage?.persisted;async function y(){try{H(g,await navigator.storage?.persisted?.()??null,!0),H(_,await navigator.storage?.estimate?.()??null,!0)}catch{H(g,null)}}K(()=>{y()});async function b(){let e=await t.dt.run(`data:persist`,()=>navigator.storage.persist());await y(),t.dt.notify(e?`success`:`info`,e?`Storage is now persistent.`:`The browser declined persistent storage (it decides, not the page).`)}function x(e){return e===void 0?`—`:`${(e/1048576).toFixed(1)} MB`}let S=U(()=>F(n).sandbox),C=U(()=>F(n).db?.name),T=q(L([])),E=q(!1);async function D(){try{let e=await l(F(n).manifest.storage.namespace);H(E,e.supported,!0),H(T,e.sandboxes.filter(e=>e!==F(S)),!0)}catch{H(E,!1)}}K(()=>{t.dt.worldVersion,D()});async function ee(){await t.dt.run(`data:discard`,async()=>{if(!F(n).discardSandbox)throw Error(`This runtime cannot discard sandboxes.`);await F(n).discardSandbox();let e=new URL(location.href);e.searchParams.delete(`sandbox`),location.assign(e.toString())})}async function te(){let e=[...F(T)];await t.dt.run(`data:clear-sandboxes`,async()=>{for(let t of e)await d(nt(F(n).manifest.storage.namespace,t))},`Deleted ${e.length} sandbox${e.length===1?``:`es`}.`),await D()}K(()=>{let e=setInterval(()=>void m(),5e3);return()=>clearInterval(e)});function ne(e){H(i,e,!0),H(a,0)}var re=Dn(),ie=I(re);Z(ie,{title:`Tables`,actions:e=>{X(e,{variant:`ghost`,get busy(){return F(s)},onclick:m,"aria-label":`Refresh counts`,children:(e,t)=>{Q(e,{get icon(){return $e},class:`size-3.5`,"aria-hidden":`true`})},$$slots:{default:!0}})},children:(e,t)=>{var n=mn(),a=I(n),o=e=>{var t=dn(),n=W(t,!0);R(()=>A(n,F(c))),Y(e,t)};j(a,e=>{F(c)&&e(o)});var s=G(a,2);V(s,20,()=>F(u),e=>e,(e,t)=>{var n=pn(),a=B(n);{let e=U(()=>F(i)===t?`border-primary/60 bg-primary/5`:`border-border hover:bg-muted/60`),n=U(()=>F(i)===t);X(a,{type:`button`,get class(){return`flex min-h-touch w-full items-center justify-between gap-2 rounded-md border px-2 text-left text-xs focus-visible:outline-2 focus-visible:outline-ring sm:min-h-7 ${F(e)??``}`},get"aria-pressed"(){return F(n)},onclick:()=>ne(t),children:(e,n)=>{var i=fn(),a=I(i),o=W(a,!0),s=G(a,2),c=W(s,!0);R(e=>{ve(a,1,`truncate font-mono ${e??``}`),A(o,t),A(c,F(r)[t]??`…`)},[()=>t.startsWith(`py_`)?`text-muted-foreground`:``]),Y(e,i)},$$slots:{default:!0}})}M(n),Y(e,n)}),M(s),Y(e,n)},$$slots:{actions:!0,default:!0}});var ae=G(ie,2),O=e=>{{let t=U(()=>`Inspector · ${F(i)}`);Z(e,{get title(){return F(t)},description:`Read-only. Edit data through the app so services and permissions apply.`,children:(e,t)=>{var n=yn(),r=I(n),s=B(r),c=B(s),l=B(c);V(l,20,()=>F(p),e=>e,(e,t)=>{var n=hn(),r=W(n,!0);R(()=>A(r,t)),Y(e,n)}),M(l),M(c);var u=G(c);V(u,23,()=>F(o),(e,t)=>String(e.id??t),(e,t)=>{var n=_n();V(n,20,()=>F(p),e=>e,(e,n)=>{var r=gn(),i=W(r,!0);R((e,t)=>{z(r,`title`,e),A(i,t)},[()=>w(F(t)[n]),()=>w(F(t)[n])]),Y(e,r)}),M(n),Y(e,n)},e=>{var t=vn(),n=W(t);R(e=>z(n,`colspan`,e),[()=>Math.max(1,F(p).length)]),Y(e,t)}),M(u),M(s),M(r);var d=G(r,2),m=B(d),h=W(m),g=G(m,2),_=B(g);{let e=U(()=>F(a)===0);X(_,{get disabled(){return F(e)},onclick:()=>H(a,Math.max(0,F(a)-10),!0),children:(e,t)=>{J();var n=P(`Previous`);Y(e,n)},$$slots:{default:!0}})}var v=G(_,2);{let e=U(()=>F(a)+10>=F(f));X(v,{get disabled(){return F(e)},onclick:()=>H(a,F(a)+10),children:(e,t)=>{J();var n=P(`Next`);Y(e,n)},$$slots:{default:!0}})}M(g),M(d),R(e=>{z(r,`aria-label`,`${F(i)} rows`),A(h,`${F(f)===0?0:F(a)+1}–${e??``} of ${F(f)??``}`)},[()=>Math.min(F(a)+10,F(f))]),Y(e,n)},$$slots:{default:!0}})}};j(ae,e=>{F(i)&&e(O)});var oe=G(ae,2);Z(oe,{title:`Storage`,children:(e,n)=>{var r=Cn(),i=I(r),a=G(B(i),2),o=W(a,!0),s=G(a,2),c=e=>{var t=bn(),n=G(I(t),2),r=W(n,!0);R(()=>{z(n,`title`,F(C)),A(r,F(C))}),Y(e,t)};j(s,e=>{typeof F(C)==`string`&&e(c)});var l=G(s,4),u=W(l),d=G(l,4),f=W(d,!0),p=G(d,4),m=W(p);M(i);var y=G(i,2),w=e=>{var t=xn(),n=W(t,!0);R(()=>A(n,F(h).warning)),Y(e,t)};j(y,e=>{F(h).warning&&e(w)});var T=G(y,2),E=e=>{var n=Sn(),r=B(n);{let e=U(()=>t.dt.isBusy(`data:persist`));X(r,{get busy(){return F(e)},onclick:b,children:(e,t)=>{J();var n=P(`Request persistent storage`);Y(e,n)},$$slots:{default:!0}})}M(n),Y(e,n)};j(T,e=>{v&&F(g)===!1&&F(h).backend===`indexeddb`&&e(E)}),R((e,t)=>{A(o,F(S)?`sandbox “${F(S)}”`:`default`),A(u,`${F(h).backend??``}${F(h).persistent?``:` (not saved across reloads)`}`),A(f,v?F(g)===null?`—`:F(g)?`yes (persisted)`:`no — the browser may clear it under pressure`:`not supported by this browser`),A(m,`${e??``} of ${t??``}`)},[()=>x(F(_)?.usage),()=>x(F(_)?.quota)]),Y(e,r)},$$slots:{default:!0}});var se=G(oe,2);Z(se,{title:`Sandboxes`,description:`Disposable worlds opened with ?sandbox=<name>; each has its own databases.`,children:(e,n)=>{var r=k(),i=I(r),a=e=>{{let n=U(()=>`Deletes the “${F(S)}” sandbox's data only, then reloads the default world.`),r=U(()=>t.dt.isBusy(`data:discard`));un(e,{label:`Discard sandbox`,confirmLabel:`Delete sandbox`,get message(){return F(n)},get busy(){return F(r)},onconfirm:ee})}},o=e=>{var t=wn();Y(e,t)},s=e=>{var t=Tn();Y(e,t)},c=e=>{var n=En(),r=I(n),i=W(r,!0),a=G(r,2);{let e=U(()=>`Clear ${F(T).length} sandbox${F(T).length===1?``:`es`}`),n=U(()=>t.dt.isBusy(`data:clear-sandboxes`));un(a,{get label(){return F(e)},confirmLabel:`Delete sandboxes`,message:`Deletes every other sandbox of this prototype. The default world is untouched.`,get busy(){return F(n)},onconfirm:te})}R(e=>A(i,e),[()=>F(T).map(e=>`“${e}”`).join(`, `)]),Y(e,n)};j(i,e=>{F(S)?e(a):F(E)?F(T).length===0?e(s,2):e(c,-1):e(o,1)}),Y(e,r)},$$slots:{default:!0}});var ce=G(se,2);Z(ce,{title:`Danger zone`,children:(e,r)=>{{let r=U(()=>t.dt.isBusy(`data:reset`));un(e,{label:`Reset scenario data`,confirmLabel:`Reset data`,message:`Rebuilds every table from the active scenario's seed. A safety snapshot is saved first.`,get busy(){return F(r)},onconfirm:async()=>{await t.dt.run(`data:reset`,()=>F(n).scenarios.reset({snapshotFirst:!0}),`Data reset (safety snapshot saved).`),t.dt.touchWorld()}})}},$$slots:{default:!0}}),Y(e,re),Me()}var kn=new WeakMap,An=new WeakMap;function jn(e){return[...kn.get(e)??[]]}function Mn(e,t){let n=An.get(e)??new Set;return n.add(t),An.set(e,n),()=>{n.delete(t)}}var Nn=N(`<p class="text-[11px] text-muted-foreground">This prototype has no mock API (createMockApi).</p>`),Pn=N(`<p class="text-[11px] text-muted-foreground">No mock API requests yet.</p>`),Fn=N(`<!> <span class="w-10 shrink-0 font-mono font-semibold"> </span> <span class="min-w-0 flex-1 truncate font-mono"> </span> <span> </span> <span class="w-12 shrink-0 text-right font-mono text-muted-foreground tabular-nums"> </span>`,1),In=N(`<dt class="text-muted-foreground">Error</dt> <dd class="text-destructive"> </dd>`,1),Ln=N(`<dt class="text-muted-foreground">Request</dt> <dd><pre class="max-h-32 overflow-auto font-mono text-[10px] whitespace-pre-wrap break-all"> </pre></dd>`,1),Rn=N(`<dt class="text-muted-foreground">Response</dt> <dd><pre class="max-h-32 overflow-auto font-mono text-[10px] whitespace-pre-wrap break-all"> </pre></dd>`,1),zn=N(`<dl class="grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 bg-muted/40 px-3 py-2 text-[11px]"><dt class="text-muted-foreground">Route</dt> <dd class="font-mono"> </dd> <dt class="text-muted-foreground">At</dt> <dd class="font-mono"> </dd> <!> <!> <!></dl>`),Bn=N(`<li><!> <!></li>`),Vn=N(`<ul class="divide-y divide-border overflow-hidden rounded-md border border-border" aria-label="Mock API requests"></ul>`);function Hn(e,t){be(t,!0);let n=q(jn(t.dt.runtime)),r=q([]),i=q(null);K(()=>Mn(t.dt.runtime,e=>H(n,e))),K(()=>{let e=()=>{H(r,F(n).flatMap(e=>e.log.entries().map(t=>({api:e.baseUrl,entry:t}))).sort((e,t)=>t.entry.at.localeCompare(e.entry.at)||t.entry.id-e.entry.id))};e();let t=F(n).map(t=>t.log.subscribe(e));return()=>{for(let e of t)e()}});function a(e){return e===null?{label:`offline`,cls:`bg-muted text-muted-foreground`}:e<300?{label:String(e),cls:`bg-success text-success-foreground`}:e<500?{label:String(e),cls:`bg-warning text-warning-foreground`}:{label:String(e),cls:`bg-destructive text-destructive-foreground`}}Z(e,{title:`Mock API requests`,description:`Simulated HTTP from @protoyard/http. Set failure scope “http.” to fail only these.`,actions:e=>{var t=k(),i=I(t),a=e=>{X(e,{variant:`ghost`,onclick:()=>F(n).forEach(e=>e.log.clear()),children:(e,t)=>{J();var n=P(`Clear`);Y(e,n)},$$slots:{default:!0}})};j(i,e=>{F(r).length>0&&e(a)}),Y(e,t)},children:(e,t)=>{var o=k(),s=I(o),c=e=>{var t=Nn();Y(e,t)},l=e=>{var t=Pn();Y(e,t)},u=e=>{var t=Vn();V(t,21,()=>F(r),({api:e,entry:t})=>`${e}#${t.id}`,(e,t)=>{let n=()=>F(t).api,r=()=>F(t).entry,o=U(()=>`${n()}#${r().id}`),s=U(()=>a(r().status));var c=Bn(),l=B(c);{let e=U(()=>F(i)===F(o));X(l,{type:`button`,class:`flex min-h-touch w-full items-center gap-2 px-2 py-1 text-left text-[11px] hover:bg-muted/60 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring sm:min-h-7`,get"aria-expanded"(){return F(e)},onclick:()=>H(i,F(i)===F(o)?null:F(o),!0),children:(e,t)=>{var n=Fn(),a=I(n);{let e=U(()=>[`size-3 shrink-0 transition-transform motion-reduce:transition-none`,F(i)===F(o)&&`rotate-90`]);Q(a,{icon:`chevron-right`,get class(){return F(e)},"aria-hidden":`true`})}var c=G(a,2),l=W(c,!0),u=G(c,2),d=W(u,!0),f=G(u,2),p=W(f,!0),m=G(f,2),h=W(m);R(e=>{A(l,r().method),z(u,`title`,r().url),A(d,r().url),ve(f,1,`shrink-0 rounded px-1 font-mono text-[10px] font-medium ${F(s).cls??``}`),A(p,F(s).label),A(h,`${e??``} ms`)},[()=>Math.round(r().durationMs)]),Y(e,n)},$$slots:{default:!0}})}var u=G(l,2),d=e=>{var t=zn(),n=G(B(t),2),i=W(n,!0),a=G(n,4),o=W(a,!0),s=G(a,2),c=e=>{var t=In(),n=G(I(t),2),i=W(n,!0);R(()=>A(i,r().error)),Y(e,t)};j(s,e=>{r().error&&e(c)});var l=G(s,2),u=e=>{var t=Ln(),n=G(I(t),2),i=B(n),a=W(i,!0);M(n),R(()=>A(a,r().requestBody)),Y(e,t)};j(l,e=>{r().requestBody&&e(u)});var d=G(l,2),f=e=>{var t=Rn(),n=G(I(t),2),i=B(n),a=W(i,!0);M(n),R(()=>A(a,r().responseBody)),Y(e,t)};j(d,e=>{r().responseBody&&e(f)}),M(t),R(e=>{A(i,r().route??`no match`),A(o,e)},[()=>S(r().at)]),Y(e,t)};j(u,e=>{F(i)===F(o)&&e(d)}),M(c),Y(e,c)}),M(t),Y(e,t)};j(s,e=>{F(n).length===0?e(c):F(r).length===0?e(l,1):e(u,-1)}),Y(e,o)},$$slots:{actions:!0,default:!0}}),Me()}var Un=N(`<!> <label class="mt-2.5 flex items-center gap-2 text-[11px] text-muted-foreground"><span class="flex-1">Extra latency (ms) <!></span> <!></label> <p class="mt-1.5 text-[11px] text-muted-foreground">Affects services that run through <code class="font-mono">environment.run()</code>, not native browser requests.</p> <!>`,1),Wn=N(`<span class="inline-flex items-center gap-1 rounded bg-muted py-0.5 pr-0.5 pl-1.5 font-mono text-[11px] text-foreground"> <!></span>`),Gn=N(`<span class="italic">all operations</span>`),Kn=N(`<!>Add`,1),qn=N(`<div class="space-y-2.5"><label class="flex items-center gap-2 text-[11px] text-muted-foreground"><span class="flex-1">Mode <!></span> <!></label> <label class="block text-[11px] text-muted-foreground"><span class="flex items-center justify-between"><span>Failure rate <!></span> <span class="font-mono text-foreground"> </span></span> <!></label> <div class="text-[11px] text-muted-foreground"><span class="flex items-center gap-1">Scope <!></span> <p class="mt-0.5">Operation prefixes that fail (e.g. <code class="font-mono">agents.</code>). Empty = every operation.</p> <div class="mt-1.5 flex flex-wrap gap-1"></div> <form class="mt-1.5 flex gap-1.5"><label class="sr-only" for="py-dt-scope">Add failure scope prefix</label> <!> <!></form></div></div>`),Jn=N(`<li class="flex items-center justify-between gap-2"><span class="flex min-w-0 items-center gap-1.5"><code class="truncate font-mono text-[11px]"> </code> <!></span> <!></li>`),Yn=N(`<li class="text-[11px] text-muted-foreground">No feature flags defined by this scenario.</li>`),Xn=N(`<!>Flag`,1),Zn=N(`<fieldset class="m-0 min-w-0 border-0 p-0"><label class="flex items-center gap-2 text-[11px] text-muted-foreground"><span class="flex-1">Subscription <!></span> <!></label> <ul class="mt-2.5 space-y-0.5"></ul> <form class="mt-2 flex gap-1.5"><label class="sr-only" for="py-dt-flag">New feature flag</label> <!> <!></form></fieldset>`),Qn=N(`<!> <!> <!> <!> <!>`,1);function $n(e,t){be(t,!0);let n=U(()=>t.dt.runtime),a=U(()=>t.dt.environment),o=U(()=>t.dt.overrides.environment??{}),s=U(()=>t.dt.active?.scenario.environment??{});function c(e){return F(o)[e]===void 0?F(s)[e]!==void 0||e===`subscription`&&t.dt.active?.scenario.organization.subscription?`scenario`:`default`:`override`}function l(e){return F(o).featureFlags?.[e]===void 0?F(s).featureFlags?.[e]!==void 0||t.dt.active?.scenario.organization.featureFlags[e]!==void 0?`scenario`:`default`:`override`}let u=U(()=>t.dt.isBusy(`env`));async function d(e,r){F(u)||await t.dt.run(`env`,()=>F(n).overrides.set({environment:{...F(o),...e}}),r)}let f=i.options,p=r.options,m=U(()=>Object.entries(F(a).featureFlags).sort(([e],[t])=>e.localeCompare(t))),h=U(()=>F(a).failureScope??[]),g=q(``),_=q(``),v=q(L(String(F(a).latencyMs))),y=q(0),b,x=!1;K(()=>{H(v,String(F(a).latencyMs),!0)}),K(()=>{H(y,Math.round(F(a).failureRate*100),!0)});async function S(e){if(b=e,!x){x=!0;try{for(;b!==void 0;){for(;F(u);)await new Promise(e=>setTimeout(e,0));let e=b;b=void 0,await t.dt.run(`env`,()=>F(n).overrides.set({environment:{...F(o),failureRate:e/100}}),`Failure rate set to ${e}%.`),t.dt.errorFor(`env`)&&H(y,Math.round(F(a).failureRate*100),!0)}}finally{x=!1,b!==void 0&&S(b)}}}function C(){let e=Number.parseInt(F(v),10);!Number.isFinite(e)||e<0||e>3e4?(t.dt.notify(`error`,`Latency must be between 0 and 30000 ms.`),H(v,String(F(a).latencyMs),!0)):e!==F(a).latencyMs&&d({latencyMs:e},`Latency set to ${e} ms.`)}function w(){let e=F(g).trim();/^[A-Za-z0-9_.:-]{1,48}$/.test(e)?(d({featureFlags:{...F(o).featureFlags??{},[e]:!0}},`Flag “${e}” enabled.`),H(g,``)):t.dt.notify(`error`,`Flag names use letters, digits, dots, dashes or underscores.`)}function T(){let e=F(_).trim();e&&!F(h).includes(e)&&(d({failureScope:[...F(h),e]}),H(_,``))}var E=Qn(),D=I(E);Z(D,{title:`Network`,actions:e=>{{let t=U(()=>c(`network`));$(e,{get source(){return F(t)}})}},children:(e,n)=>{var r=Un(),i=I(r);it(i,{label:`Network mode`,get value(){return F(a).network},options:[{value:`online`,label:`Online`},{value:`slow`,label:`Slow`},{value:`offline`,label:`Offline`}],get busy(){return F(u)},onchange:e=>d({network:e})});var o=G(i,2),s=B(o),l=G(B(s));{let e=U(()=>c(`latencyMs`));$(l,{get source(){return F(e)}})}M(s);var f=G(s,2);Le(f,{type:`number`,min:`0`,max:`30000`,step:`100`,class:`min-h-touch w-24 rounded-md border border-input bg-surface px-2 text-right font-mono text-xs text-surface-foreground sm:min-h-7`,onchange:C,get disabled(){return F(u)},get value(){return F(v)},set value(e){H(v,e,!0)}}),M(o);var p=G(o,4);{let e=U(()=>t.dt.errorFor(`env`));Et(p,{get message(){return F(e)}})}Y(e,r)},$$slots:{actions:!0,default:!0}});var te=G(D,2);Z(te,{title:`Failures`,description:`Reproducible: the same operation fails the same way on every run.`,children:(e,t)=>{var n=qn(),r=B(n),i=B(r),o=G(B(i));{let e=U(()=>c(`failureMode`));$(o,{get source(){return F(e)}})}M(i);var s=G(i,2);{let e=U(()=>f.map(e=>({value:e,label:e})));ee(s,{class:`min-h-touch rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,label:`Failure mode`,get disabled(){return F(u)},get value(){return F(a).failureMode},onchange:e=>d({failureMode:e}),get options(){return F(e)}})}M(r);var l=G(r,2),p=B(l),m=B(p),g=G(B(m));{let e=U(()=>c(`failureRate`));$(g,{get source(){return F(e)}})}M(m);var v=G(m,2),b=W(v);M(p);var x=G(p,2);{let e=U(()=>F(a).failureMode===`none`);tt(x,{min:0,max:100,step:5,class:`mt-1 w-full accent-primary`,get value(){return F(y)},get disabled(){return F(e)},label:`Failure rate`,"aria-label":`Failure rate`,getValueText:e=>`${e}%`,onValueChange:e=>{typeof e==`number`&&H(y,e,!0)},onValueCommit:e=>{typeof e==`number`&&S(e)}})}M(l);var C=G(l,2),w=B(C),E=G(B(w));{let e=U(()=>c(`failureScope`));$(E,{get source(){return F(e)}})}M(w);var D=G(w,4);V(D,20,()=>F(h),e=>e,(e,t)=>{var n=Wn(),r=B(n),i=G(r);{let e=U(()=>`Remove scope ${t}`);X(i,{type:`button`,class:`inline-flex size-5 items-center justify-center rounded hover:bg-background focus-visible:outline-2 focus-visible:outline-ring`,get"aria-label"(){return F(e)},get disabled(){return F(u)},onclick:()=>d({failureScope:F(h).filter(e=>e!==t)}),children:(e,t)=>{Q(e,{icon:`close`,class:`size-3`,"aria-hidden":`true`})},$$slots:{default:!0}})}M(n),R(()=>A(r,`${t??``} `)),Y(e,n)},e=>{var t=Gn();Y(e,t)}),M(D);var te=G(D,2),ne=G(B(te),2);Le(ne,{id:`py-dt-scope`,class:`min-h-touch min-w-0 flex-1 rounded-md border border-input bg-surface px-2 font-mono text-xs text-surface-foreground sm:min-h-7`,placeholder:`deals.`,get disabled(){return F(u)},get value(){return F(_)},set value(e){H(_,e,!0)}});var re=G(ne,2);{let e=U(()=>F(u)||!F(_).trim());X(re,{type:`submit`,get disabled(){return F(e)},children:(e,t)=>{var n=Kn();Q(I(n),{icon:`plus`,class:`size-3.5`,"aria-hidden":`true`}),J(),Y(e,n)},$$slots:{default:!0}})}M(te),M(C),M(n),R(()=>{z(n,`aria-busy`,F(u)||void 0),A(b,`${F(y)??``}%`)}),Oe(`submit`,te,e=>{e.preventDefault(),T()}),Y(e,n)},$$slots:{default:!0}});var ne=G(te,2);Z(ne,{title:`Subscription & flags`,children:(e,t)=>{var n=Zn(),r=B(n),i=B(r),s=G(B(i));{let e=U(()=>c(`subscription`));$(s,{get source(){return F(e)}})}M(i);var f=G(i,2);{let e=U(()=>F(a).subscription??``),t=U(()=>[{value:``,label:`(organization default)`},...p.map(e=>({value:e,label:e}))]);ee(f,{class:`min-h-touch rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,label:`Subscription`,get value(){return F(e)},onchange:e=>{d(e?{subscription:e}:{subscription:void 0})},get options(){return F(t)}})}M(r);var h=G(r,2);V(h,21,()=>F(m),([e,t])=>e,(e,t)=>{var n=U(()=>we(F(t),2));let r=()=>F(n)[0],i=()=>F(n)[1];var a=Jn(),s=B(a),c=B(s),u=W(c,!0),f=G(c,2);{let e=U(()=>l(r()));$(f,{get source(){return F(e)}})}M(s);var p=G(s,2);{let e=U(()=>`Feature flag ${r()}`);Ot(p,{get checked(){return i()},get label(){return F(e)},hideLabel:!0,onchange:e=>d({featureFlags:{...F(o).featureFlags??{},[r()]:e}})})}M(a),R(()=>A(u,r())),Y(e,a)},e=>{var t=Yn();Y(e,t)}),M(h);var _=G(h,2),v=G(B(_),2);Le(v,{id:`py-dt-flag`,class:`min-h-touch min-w-0 flex-1 rounded-md border border-input bg-surface px-2 font-mono text-xs text-surface-foreground sm:min-h-7`,placeholder:`new-flag`,get value(){return F(g)},set value(e){H(g,e,!0)}});var y=G(v,2);{let e=U(()=>!F(g).trim());X(y,{type:`submit`,get disabled(){return F(e)},children:(e,t)=>{var n=Xn();Q(I(n),{icon:`plus`,class:`size-3.5`,"aria-hidden":`true`}),J(),Y(e,n)},$$slots:{default:!0}})}M(_),M(n),R(()=>{n.disabled=F(u),z(n,`aria-busy`,F(u)||void 0)}),Oe(`submit`,_,e=>{e.preventDefault(),w()}),Y(e,n)},$$slots:{default:!0}});var re=G(ne,2);Z(re,{title:`Reset`,children:(e,r)=>{{let r=U(()=>Object.keys(F(o)).length===0);X(e,{get disabled(){return F(r)},onclick:()=>t.dt.run(`env:clear`,()=>F(n).overrides.clear([`environment`]),`Environment back to the scenario values.`),children:(e,t)=>{J();var n=P(`Clear environment overrides`);Y(e,n)},$$slots:{default:!0}})}},$$slots:{default:!0}}),Hn(G(re,2),{get dt(){return t.dt}}),Y(e,E),Me()}function er(e,t){let n=ke(t,`size`,3,`md`);{let r=U(()=>n()===`sm`?`sm`:`md`),i=U(()=>t.color??`transparent`);p(e,{get name(){return t.name},get src(){return t.src},get srcset(){return t.srcset},get size(){return F(r)},decorative:!0,class:`devtools-persona-avatar`,get style(){return`--devtools-persona-color: ${F(i)??``}`},"data-persona-avatar":``})}}var tr=N(`<code> </code>`),nr=N(`<span class="text-muted-foreground">none</span>`),rr=N(`<div class="flex items-center gap-3 rounded-lg border border-border bg-surface p-3"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-semibold"> </p> <p class="truncate text-[11px] text-muted-foreground"> </p></div> <div class="flex flex-col items-end gap-1"><span class="rounded bg-muted px-1.5 py-0.5 font-mono text-[11px]"> </span> <!></div></div> <dl class="mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[11px]"><dt class="text-muted-foreground">Organization</dt> <dd class="truncate"> </dd> <dt class="text-muted-foreground">Capabilities</dt> <dd class="flex flex-wrap gap-1"></dd></dl>`,1),ir=N(`<p class="text-xs text-muted-foreground">No active persona. Load a scenario first.</p>`),ar=N(`<!> <span class="min-w-0 flex-1"><span class="block truncate text-xs font-medium"> </span> <span class="block truncate text-[11px] text-muted-foreground"> </span></span> <!> <span class="font-mono text-[10px] text-muted-foreground"> </span>`,1),or=N(`<li><!></li>`),sr=N(`<li class="text-xs text-muted-foreground">This scenario has no personas.</li>`),cr=N(`<ul class="space-y-1"></ul> <!>`,1),lr=N(`<label class="block text-[11px] text-muted-foreground">Organization <!></label>`),ur=N(`<div class="space-y-2.5"><label class="block text-[11px] text-muted-foreground"><span class="flex items-center justify-between">Role override <!></span> <!></label> <!></div>`),dr=N(`<!> <!> <!>`,1);function fr(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=U(()=>(t.dt.principal,t.dt.worldVersion,F(n).session.personas())),i=U(()=>(t.dt.principal,t.dt.worldVersion,F(n).session.memberships())),a=U(()=>(t.dt.worldVersion,F(n).session.organizations())),o=U(()=>Object.keys(F(n).policy.definition.roles)),s=U(()=>t.dt.principal),c=U(()=>t.dt.overrides.role),l=U(()=>F(s)?[...F(s).capabilities].sort():[]),u=U(()=>t.dt.isBusy(`persona`));function d(e){let t=F(s)?.organization?.id;return F(i).find(n=>n.personaId===e&&(!t||n.organizationId===t))?.role??F(i).find(t=>t.personaId===e)?.role??`—`}async function f(e){let i=F(r).find(t=>t.id===e);await t.dt.run(`persona:${e}`,()=>F(n).session.switchActor(e),`Now acting as ${i?.name??e}. Records are unchanged.`)}async function p(e){await t.dt.run(`persona:role`,()=>e?F(n).overrides.set({role:e}):F(n).overrides.clear([`role`]),e?`Role overridden to “${e}”.`:`Role override cleared.`)}async function m(e){await t.dt.run(`persona:org`,()=>F(n).session.switchOrganization(e),`Organization switched.`)}var h=dr(),g=I(h);Z(g,{title:`Acting as`,children:(e,n)=>{var r=k(),i=I(r),a=e=>{var n=rr(),r=I(n),i=B(r);{let e=U(()=>t.dt.avatarImage(F(s).persona.avatar));er(i,ye({get name(){return F(s).persona.name},get color(){return F(s).persona.avatarColor}},()=>F(e)))}var a=G(i,2),o=B(a),u=W(o,!0),d=G(o,2),f=W(d,!0);M(a);var p=G(a,2),m=B(p),h=W(m,!0),g=G(m,2);{let e=U(()=>F(c)?`override`:`scenario`);$(g,{get source(){return F(e)}})}M(p),M(r);var _=G(r,2),v=G(B(_),2),y=W(v,!0),b=G(v,4);V(b,20,()=>F(l),e=>e,(e,t)=>{var n=tr(),r=W(n,!0);R(e=>{ve(n,1,`rounded px-1 font-mono text-[10px] ${e??``}`),A(r,t)},[()=>t.startsWith(`-`)?`bg-muted text-muted-foreground line-through`:`bg-muted`]),Y(e,n)},e=>{var t=nr();Y(e,t)}),M(b),M(_),R(()=>{A(u,F(s).persona.name),A(f,F(s).persona.title??F(s).persona.email??F(s).persona.id),A(h,F(s).role??`no role`),A(y,F(s).organization?.name??`—`)}),Y(e,n)},o=e=>{var t=ir();Y(e,t)};j(i,e=>{F(s)?e(a):e(o,-1)}),Y(e,r)},$$slots:{default:!0}});var _=G(g,2);Z(_,{title:`Switch persona`,description:`Non-destructive: data stays, visibility and permissions adapt.`,children:(e,n)=>{var i=cr(),a=I(i);V(a,21,()=>F(r),e=>e.id,(e,n)=>{let r=U(()=>F(s)?.persona.id===F(n).id),i=U(()=>t.dt.isBusy(`persona:${F(n).id}`));var a=or(),o=B(a);{let e=U(()=>F(r)?`border-primary/60 bg-primary/5`:`border-border hover:bg-muted/60`),a=U(()=>F(r)||F(i)),s=U(()=>F(i)||void 0),c=U(()=>F(r)||F(u));X(o,{type:`button`,get class(){return`flex min-h-touch w-full items-center gap-2.5 rounded-md border px-2 py-1.5 text-left transition-colors focus-visible:outline-2 focus-visible:outline-ring disabled:cursor-default ${F(e)??``}`},get"aria-pressed"(){return F(a)},get"aria-busy"(){return F(s)},get disabled(){return F(c)},onclick:()=>f(F(n).id),children:(e,r)=>{var a=ar(),o=I(a);{let e=U(()=>t.dt.avatarImage(F(n).avatar));er(o,ye({get name(){return F(n).name},get color(){return F(n).avatarColor},size:`sm`},()=>F(e)))}var s=G(o,2),c=B(s),l=W(c,!0),u=G(c,2),f=W(u,!0);M(s);var p=G(s,2),m=e=>{rt(e,{class:`text-primary`})};j(p,e=>{F(i)&&e(m)});var h=G(p,2),g=W(h,!0);R(e=>{A(l,F(n).name),A(f,F(n).summary??F(n).title??F(n).id),A(g,e)},[()=>d(F(n).id)]),Y(e,a)},$$slots:{default:!0}})}M(a),Y(e,a)},e=>{var t=sr();Y(e,t)}),M(a);var o=G(a,2);{let e=U(()=>t.dt.errorFor(`persona`));Et(o,{get message(){return F(e)}})}Y(e,i)},$$slots:{default:!0}});var v=G(_,2);Z(v,{title:`Overrides`,children:(e,t)=>{var n=ur(),r=B(n),i=B(r),l=G(B(i)),d=e=>{$(e,{source:`override`})};j(l,e=>{F(c)&&e(d)}),M(i);var f=G(i,2);{let e=U(()=>F(c)??``),t=U(()=>[{value:``,label:`Membership role (${F(s)?.membership?.role??`—`})`},...F(o).map(e=>({value:e,label:e}))]),n=U(()=>!F(s)||F(u));ee(f,{class:`mt-1 block min-h-touch w-full rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,label:`Role override`,get value(){return F(e)},onchange:p,get options(){return F(t)},get disabled(){return F(n)}})}M(r);var h=G(r,2),g=e=>{var t=lr(),n=G(B(t));{let e=U(()=>F(s)?.organization?.id??``),t=U(()=>F(a).map(e=>({value:e.id,label:e.name})));ee(n,{class:`mt-1 block min-h-touch w-full rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,label:`Organization`,get value(){return F(e)},onchange:m,get options(){return F(t)},get disabled(){return F(u)}})}M(t),Y(e,t)};j(h,e=>{F(a).length>1&&e(g)}),M(n),Y(e,n)},$$slots:{default:!0}}),Y(e,h),Me()}var pr=N(`<p class="mt-2 text-xs text-muted-foreground"> </p>`),mr=N(`<dt class="text-muted-foreground">Prototype generator</dt> <dd class="font-mono"> </dd>`,1),hr=N(`<!> Copy link`,1),gr=N(`<div class="rounded-lg border border-border bg-surface p-3"><div class="flex items-start justify-between gap-2"><div class="min-w-0"><p class="truncate text-sm font-semibold"> </p> <p class="font-mono text-[11px] text-muted-foreground"> </p></div> <span class="rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground"> </span></div> <!> <dl class="mt-2.5 grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"><dt class="text-muted-foreground">Seed</dt> <dd class="font-mono"> </dd> <dt class="text-muted-foreground">Reference time</dt> <dd class="font-mono"> </dd> <dt class="text-muted-foreground">Scenario version</dt> <dd class="font-mono"> </dd> <dt class="text-muted-foreground">Generator SDK</dt> <dd class="font-mono"> </dd> <!> <dt class="text-muted-foreground">Loaded</dt> <dd class="font-mono"> </dd></dl> <div class="mt-3 flex flex-wrap gap-1.5"><!> <!></div></div>`),_r=N(`<p class="text-xs text-muted-foreground">No scenario loaded yet.</p>`),vr=N(`<div class="h-full w-1/3 animate-pulse rounded-full bg-primary"></div>`),yr=N(`<div class="h-full rounded-full bg-primary transition-[width] motion-reduce:transition-none"></div>`),br=N(`<p class="text-xs" role="status"> <span class="font-mono text-muted-foreground"> </span></p> <div class="mt-2 h-1.5 overflow-hidden rounded-full bg-muted" role="progressbar" aria-label="Scenario load progress"><!></div>`,1),xr=N(`<span class="rounded bg-success px-1 text-[10px] font-medium text-success-foreground">Active</span>`),Sr=N(`<fieldset class="disabled:opacity-60"><legend class="mb-1 text-[11px] font-medium text-muted-foreground"> </legend> <div class="space-y-1"><!></div></fieldset>`),Cr=N(`<p class="text-[11px] text-destructive">Seed must be a whole number.</p>`),wr=N(`<div class="space-y-3"><!> <div class="grid grid-cols-[1fr_auto] items-end gap-2"><label class="block text-[11px] text-muted-foreground">Seed (optional) <!></label> <!></div> <!> <!> <!></div>`),Tr=N(`<p class="text-[11px] text-muted-foreground"><kbd class="rounded border border-border bg-muted px-1 font-mono">Ctrl</kbd>/<kbd class="rounded border border-border bg-muted px-1 font-mono">⌘</kbd> + <kbd class="rounded border border-border bg-muted px-1 font-mono">.</kbd> toggles this panel.</p>`),Er=N(`<!> <!> <!> <!>`,1);function Dr(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=U(()=>{let e=new Map;for(let t of F(n).scenarios.list()){let n=e.get(t.group)??[];n.push(t),e.set(t.group,n)}return[...e.entries()]}),i=q(L(t.dt.active?.scenario.id??F(n).scenarios.list()[0]?.id??``)),a=q(``),o=q(!0),s=q(!1),c=U(()=>F(n).scenarios.get(F(i))),l=U(()=>F(a)===``||/^\d{1,10}$/.test(F(a))),u=U(()=>t.dt.isBusy(`scenario`)||t.dt.progress!==null);async function d(){F(c)&&F(l)&&(await t.dt.run(`scenario:load`,()=>F(n).scenarios.load(F(c).id,{snapshotFirst:F(o),...F(a)?{seed:Number(F(a))}:{}}),`Loaded “${F(c).name}”${F(o)?` (safety snapshot saved)`:``}.`),t.dt.touchWorld())}async function f(){await t.dt.run(`scenario:reset`,()=>F(n).scenarios.reset({snapshotFirst:F(o)}),`Scenario reset to its seed.`),t.dt.touchWorld()}async function p(){H(s,await T(C(F(n))),!0),t.dt.notify(F(s)?`success`:`error`,F(s)?`Reproducible link copied.`:`Could not access the clipboard.`),setTimeout(()=>H(s,!1),1500)}var m=Er(),h=I(m);Z(h,{title:`Active scenario`,children:(e,n)=>{var r=k(),i=I(r),a=e=>{var n=gr(),r=B(n),i=B(r),a=B(i),o=W(a,!0),c=G(a,2),l=W(c,!0);M(i);var d=G(i,2),m=W(d,!0);M(r);var h=G(r,2),g=e=>{var n=pr(),r=W(n,!0);R(()=>A(r,t.dt.active.scenario.description)),Y(e,n)};j(h,e=>{t.dt.active.scenario.description&&e(g)});var _=G(h,2),v=G(B(_),2),y=W(v,!0),b=G(v,4),x=W(b,!0),C=G(b,4),w=W(C),T=G(C,4),E=W(T),D=G(T,2),ee=e=>{var n=mr(),r=G(I(n),2),i=W(r);R(()=>A(i,`v${t.dt.active.prototypeGeneratorVersion??``}`)),Y(e,n)};j(D,e=>{t.dt.active.prototypeGeneratorVersion!==void 0&&e(ee)});var te=G(D,4),ne=W(te,!0);M(_);var re=G(_,2),ie=B(re);{let e=U(()=>t.dt.isBusy(`scenario:reset`));un(ie,{label:`Reset scenario`,confirmLabel:`Reset data`,message:`Rebuilds this prototype's data from the scenario seed. Your edits are replaced.`,get busy(){return F(e)},get disabled(){return F(u)},onconfirm:f})}var ae=G(ie,2);X(ae,{onclick:p,children:(e,t)=>{var n=hr(),r=I(n),i=e=>{Q(e,{icon:`check`,class:`size-3.5`,"aria-hidden":`true`})},a=e=>{Q(e,{get icon(){return qe},class:`size-3.5`,"aria-hidden":`true`})};j(r,e=>{F(s)?e(i):e(a,-1)}),J(),Y(e,n)},$$slots:{default:!0}}),M(re),M(n),R((e,n)=>{A(o,t.dt.active.scenario.name),A(l,t.dt.active.scenario.id),A(m,t.dt.active.scenario.group),A(y,t.dt.active.seed),A(x,e),A(w,`v${t.dt.active.scenario.version??``}`),A(E,`v${t.dt.active.generatorVersion??``}`),A(ne,n)},[()=>S(t.dt.active.scenario.referenceTime),()=>S(t.dt.active.loadedAt)]),Y(e,n)},o=e=>{var t=_r();Y(e,t)};j(i,e=>{t.dt.active?e(a):e(o,-1)}),Y(e,r)},$$slots:{default:!0}});var g=G(h,2),_=e=>{let n=U(()=>t.dt.progress),r=U(()=>F(n).phase===`write`&&F(n).total>0?F(n).done/F(n).total:F(n).phase===`done`?1:null);Z(e,{title:`Loading`,children:(e,t)=>{var i=br(),a=I(i),o=B(a),s=G(o),c=W(s,!0);M(a);var l=G(a,2);z(l,`aria-valuemin`,0),z(l,`aria-valuemax`,100);var u=B(l),d=e=>{var t=vr();Y(e,t)},f=e=>{var t=yr();let n;R(e=>n=je(t,``,n,{width:e}),[()=>`${Math.round(F(r)*100)}%`]),Y(e,t)};j(u,e=>{F(r)===null?e(d):e(f,-1)}),M(l),R((e,t)=>{A(o,`${e??``} `),A(c,F(n).scenarioId),z(l,`aria-valuenow`,t)},[()=>F(n).phase===`generate`?`Generating the world…`:F(n).phase===`validate`?`Checking integrity…`:F(n).phase===`write`?`Writing ${F(n).done.toLocaleString(`en-US`)} of ${F(n).total.toLocaleString(`en-US`)} rows…`:`Scenario loaded.`,()=>F(r)===null?void 0:Math.round(F(r)*100)]),Y(e,i)},$$slots:{default:!0}})};j(g,e=>{t.dt.progress&&e(_)});var v=G(g,2);Z(v,{title:`Load a scenario`,description:`Rebuilds the world from a versioned seed. Only this prototype's data changes.`,children:(e,n)=>{var s=wr(),f=B(s);V(f,17,()=>F(r),([e,t])=>e,(e,n)=>{var r=U(()=>we(F(n),2));let a=()=>F(r)[0],o=()=>F(r)[1];var s=Sr(),c=B(s),l=W(c,!0),d=G(c,2),f=B(d);Be(f,{name:`py-dt-scenario`,get disabled(){return F(u)},class:`space-y-1`,get value(){return F(i)},set value(e){H(i,e,!0)},children:(e,n)=>{var r=k(),a=I(r);V(a,17,o,e=>e.id,(e,n)=>{let r=U(()=>t.dt.active?.scenario.id===F(n).id);{let t=U(()=>F(i)===F(n).id?`border-primary/60 bg-primary/5`:`border-border hover:bg-muted/60`);ze(e,{get value(){return F(n).id},get label(){return F(n).name},get description(){return F(n).description},get class(){return`flex cursor-pointer items-start gap-2.5 rounded-md border p-2 text-left transition-colors has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-ring ${F(t)??``}`},children:(e,t)=>{var n=k(),i=I(n),a=e=>{var t=xr();Y(e,t)};j(i,e=>{F(r)&&e(a)}),Y(e,n)},$$slots:{default:!0}})}}),Y(e,r)},$$slots:{default:!0}}),M(d),M(s),R(()=>{s.disabled=F(u),A(l,a())}),Y(e,s)});var p=G(f,2),m=B(p),h=G(B(m));{let e=U(()=>String(F(c)?.seed??``)),t=U(()=>!F(l));Le(h,{type:`text`,inputmode:`numeric`,class:`mt-1 block min-h-touch w-full rounded-md border border-input bg-surface px-2 font-mono text-xs text-surface-foreground sm:min-h-7`,get placeholder(){return F(e)},get"aria-invalid"(){return F(t)},get value(){return F(a)},set value(e){H(a,e,!0)}})}M(m);var g=G(m,2);Re(g,{label:`Snapshot first`,class:`text-[11px]`,get checked(){return F(o)},set checked(e){H(o,e,!0)}}),M(p);var _=G(p,2),v=e=>{var t=Cr();Y(e,t)};j(_,e=>{F(l)||e(v)});var y=G(_,2);{let e=U(()=>F(c)?`Load “${F(c).name}”`:`Load`),n=U(()=>!F(c)||!F(l)||F(u)),r=U(()=>`Loading replaces this prototype's current data${F(o)?` — a safety snapshot is saved first`:``}.`),i=U(()=>t.dt.isBusy(`scenario:load`));un(y,{get label(){return F(e)},confirmLabel:`Replace data`,variant:`primary`,get disabled(){return F(n)},get message(){return F(r)},get busy(){return F(i)},onconfirm:d})}var b=G(y,2);{let e=U(()=>t.dt.errorFor(`scenario`));Et(b,{get message(){return F(e)}})}M(s),Y(e,s)},$$slots:{default:!0}});var y=G(v,2);Z(y,{title:`Shortcuts`,children:(e,t)=>{var n=Tr();Y(e,n)},$$slots:{default:!0}}),Y(e,m),Me()}var Or=N(`<div><p class="mb-1 text-[11px] text-muted-foreground"> </p> <div class="flex items-stretch gap-1"><code> </code> <!></div></div>`),kr=N(`<div class="space-y-2.5"><!> <!> <!></div>`),Ar=N(`<div class="space-y-2.5"></div>`),jr=N(`<!> <!>`,1);function Mr(e,t){be(t,!0);let n=(e,t=ge,n=ge,r=ge,i)=>{let a=De(()=>le(i?.(),!0));var o=Or(),s=B(o),c=W(s,!0),d=G(s,2),f=B(d),p=W(f,!0),m=G(f,2);{let e=U(()=>`Copy: ${n()}`);X(m,{type:`button`,class:`inline-flex min-h-touch w-9 shrink-0 items-center justify-center rounded-md border border-border hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring sm:min-h-0 sm:w-8`,get"aria-label"(){return F(e)},onclick:()=>u(t(),r()),children:(e,n)=>{var r=k(),i=I(r),a=e=>{Q(e,{icon:`check`,class:`size-3.5 text-success`,"aria-hidden":`true`})},o=e=>{Q(e,{get icon(){return qe},class:`size-3.5`,"aria-hidden":`true`})};j(i,e=>{F(l)===t()?e(a):e(o,-1)}),Y(e,r)},$$slots:{default:!0}})}M(d),M(o),R(()=>{A(c,n()),ve(f,1,`min-w-0 flex-1 truncate rounded-md border border-border bg-muted px-2 py-1.5 text-[11px] ${F(a)?`font-mono`:``}`),z(f,`title`,r()),A(p,r())}),Y(e,o)},r=U(()=>t.dt.runtime),i=U(()=>F(r).manifest.slug),a=U(()=>(t.dt.active,t.dt.principal,C(F(r)))),o=U(()=>(t.dt.active,t.dt.principal,C(F(r),{presentation:!0}))),s=U(()=>[{label:`Run locally`,command:`pnpm protoyard dev ${F(i)}`},{label:`Build static site`,command:`pnpm protoyard build ${F(i)}`},{label:`Export ZIP`,command:`pnpm protoyard export ${F(i)}`},{label:`Publish (dry run)`,command:`pnpm protoyard publish ${F(i)} --provider cloudflare --dry-run`}]),c=U(()=>{let e=new URL(F(a));return e.searchParams.set(`sandbox`,`try`),e.toString()}),l=q(null);async function u(e,n){let r=await T(n);H(l,r?e:null,!0),t.dt.notify(r?`success`:`error`,r?`Copied to the clipboard.`:`Could not access the clipboard.`),setTimeout(()=>{F(l)===e&&H(l,null)},1500)}var d=jr(),f=I(d);Z(f,{title:`Reproducible link`,description:`Carries scenario, persona, seed, shell (?shell=) and app layout (?layout=) when overridden. Manual data edits travel as snapshot files.`,children:(e,t)=>{var r=kr(),i=B(r);n(i,()=>`link`,()=>`Open this scenario`,()=>F(a));var s=G(i,2);n(s,()=>`presentation`,()=>`Presentation mode (no DevTools)`,()=>F(o));var l=G(s,2);n(l,()=>`sandbox`,()=>`Fresh sandbox (separate data; your world stays intact)`,()=>F(c)),M(r),Y(e,r)},$$slots:{default:!0}});var p=G(f,2);Z(p,{title:`From your terminal`,description:`Building and publishing run in the CLI. The browser never deploys anything.`,children:(e,t)=>{var r=Ar();V(r,21,()=>F(s),e=>e.command,(e,t)=>{n(e,()=>F(t).command,()=>F(t).label,()=>F(t).command)}),M(r),Y(e,r)},$$slots:{default:!0}}),Y(e,d),Me()}var Nr=N(`<!>Export current world`,1),Pr=N(`<form class="space-y-2"><label class="block text-[11px] text-muted-foreground">Name <!></label> <label class="block text-[11px] text-muted-foreground">Notes (optional) <!></label> <div class="flex flex-wrap gap-1.5"><!> <!></div> <p class="text-[11px] text-muted-foreground">Snapshots are JSON: uploaded file contents are not included, only their details.</p></form>`),Fr=N(`<p class="text-xs text-destructive" role="alert"> </p>`),Ir=N(`<p class="mt-1 text-[11px] text-muted-foreground"> </p>`),Lr=N(`<li class="rounded-md border border-border bg-surface p-2.5"><div class="flex items-start justify-between gap-2"><div class="min-w-0"><p class="truncate text-xs font-medium"> </p> <p class="text-[11px] text-muted-foreground"> </p> <!></div> <div class="flex shrink-0 gap-0.5"><!></div></div> <div class="mt-2 flex flex-wrap gap-1.5"><!> <!></div></li>`),Rr=N(`<li class="text-[11px] text-muted-foreground">No snapshots yet. Scenario loads with “snapshot first” also appear here.</li>`),zr=N(`<!> <ul class="space-y-1.5"></ul>`,1),Br=N(`<!>Choose snapshot file…`,1),Vr=N(`<p class="mt-2 text-xs text-destructive" role="alert"> </p>`),Hr=N(`<li> </li>`),Ur=N(`<ul class="mt-1.5 list-disc space-y-0.5 pl-4 text-foreground"></ul>`),Wr=N(`<!>Discard`,1),Gr=N(`<div class="mt-2.5 rounded-md border border-border bg-surface p-2.5 text-[11px]"><p class="text-xs font-medium"> </p> <p class="text-muted-foreground"> </p> <p class="mt-1 text-muted-foreground"> </p> <!> <div class="mt-2 flex flex-wrap gap-1.5"><!> <!> <!></div></div>`),Kr=N(`<!> <!> <!> <!>`,1),qr=N(`<!> <!> <!>`,1);function Jr(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=q(L([])),i=q(null),a=q(``),o=q(``),s=q(null),c=q(``),l=q(null),d=q(null),f=q(null);async function p(){try{H(r,await F(n).snapshots.list(),!0),H(i,null)}catch(e){H(i,e instanceof Error?e.message:String(e),!0)}}K(()=>{t.dt.worldVersion,p()});async function m(e){e.preventDefault();let r=F(a).trim();r&&await t.dt.run(`snap:save`,()=>F(n).snapshots.save({name:r,...F(o).trim()?{notes:F(o).trim()}:{}}),`Snapshot “${r}” saved.`)&&(H(a,``),H(o,``),await p())}async function h(e){await t.dt.run(`snap:restore`,()=>F(n).snapshots.restore(e.id),`Restored “${e.name}”.`),t.dt.touchWorld()}async function g(e){await t.dt.run(`snap:remove`,()=>F(n).snapshots.remove(e.id),`Deleted “${e.name}”.`),await p()}async function _(e){let r=await t.dt.run(`snap:export:${e??`current`}`,()=>F(n).snapshots.exportJson(e));r&&(D(r.filename,r.json),t.dt.notify(`success`,`Downloaded ${r.filename}.`))}async function v(e){let t=e.currentTarget,r=t.files?.[0];if(t.value=``,H(l,null),H(d,null),H(s,null),r){if(H(c,r.name,!0),r.size>26214400)H(d,`This file is larger than ${Math.round(u/1048576)} MB and was not imported.`);else try{let e=await r.text();H(l,await F(n).snapshots.previewImport(e),!0),H(s,e,!0)}catch(e){H(d,e instanceof Error?e.message:String(e),!0)}}}async function y(e){if(!F(s))return;let r=F(s);await t.dt.run(`snap:import`,()=>F(n).snapshots.importJson(r,{restore:e}),e?`Snapshot imported and restored.`:`Snapshot imported.`)&&(H(s,null),H(l,null),e&&t.dt.touchWorld(),await p())}function b(e){return Object.values(e).reduce((e,t)=>e+t,0)}var x=qr(),C=I(x);Z(C,{title:`Save the current world`,description:`Captures records, persona, clock, environment and appearance — including manual edits.`,children:(e,n)=>{var r=Pr(),i=B(r),s=G(B(i));Le(s,{class:`mt-1 block min-h-touch w-full rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,maxlength:120,required:!0,placeholder:`Before the demo`,get value(){return F(a)},set value(e){H(a,e,!0)}}),M(i);var c=G(i,2),l=G(B(c));Ie(l,{class:`mt-1 block w-full rounded-md border border-input bg-surface px-2 py-1 text-xs text-surface-foreground`,rows:2,maxlength:2e3,get value(){return F(o)},set value(e){H(o,e,!0)}}),M(c);var u=G(c,2),d=B(u);{let e=U(()=>!F(a).trim()),n=U(()=>t.dt.isBusy(`snap:save`));X(d,{type:`submit`,variant:`primary`,get disabled(){return F(e)},get busy(){return F(n)},children:(e,t)=>{J();var n=P(`Save snapshot`);Y(e,n)},$$slots:{default:!0}})}var f=G(d,2);{let e=U(()=>t.dt.isBusy(`snap:export:current`));X(f,{get busy(){return F(e)},onclick:()=>_(),children:(e,t)=>{var n=Nr();Q(I(n),{get icon(){return Ye},class:`size-3.5`,"aria-hidden":`true`}),J(),Y(e,n)},$$slots:{default:!0}})}M(u),J(2),M(r),Oe(`submit`,r,m),Y(e,r)},$$slots:{default:!0}});var w=G(C,2);{let e=U(()=>`Saved snapshots (${F(r).length})`);Z(w,{get title(){return F(e)},children:(e,n)=>{var a=zr(),o=I(a),s=e=>{var t=Fr(),n=W(t,!0);R(()=>A(n,F(i))),Y(e,t)};j(o,e=>{F(i)&&e(s)});var c=G(o,2);V(c,21,()=>F(r),e=>e.id,(e,n)=>{var r=Lr(),i=B(r),a=B(i),o=B(a),s=W(o,!0),c=G(o,2),l=W(c),u=G(c,2),d=e=>{var t=Ir(),r=W(t,!0);R(()=>A(r,F(n).notes)),Y(e,t)};j(u,e=>{F(n).notes&&e(d)}),M(a);var f=G(a,2),p=B(f);{let e=U(()=>`Download ${F(n).name}`);X(p,{variant:`ghost`,get"aria-label"(){return F(e)},onclick:()=>_(F(n).id),children:(e,t)=>{Q(e,{get icon(){return Ye},class:`size-3.5`,"aria-hidden":`true`})},$$slots:{default:!0}})}M(f),M(i);var m=G(i,2),v=B(m);{let e=U(()=>`Replaces the current data with “${F(n).name}”. Save a snapshot first if you want to keep it.`),r=U(()=>t.dt.isBusy(`snap:restore`));un(v,{label:`Restore`,confirmLabel:`Restore`,get message(){return F(e)},get busy(){return F(r)},onconfirm:()=>h(F(n))})}var y=G(v,2);{let e=U(()=>`Deletes “${F(n).name}” from this browser. The current data is not affected.`),r=U(()=>t.dt.isBusy(`snap:remove`));un(y,{label:`Delete`,confirmLabel:`Delete snapshot`,variant:`ghost`,get message(){return F(e)},get busy(){return F(r)},onconfirm:()=>g(F(n))})}M(m),M(r),R((e,t)=>{A(s,F(n).name),A(l,`${e??``} · ${F(n).scenarioId??`no scenario`??``} · ${t??``} rows`)},[()=>S(F(n).createdAt),()=>b(F(n).stats)]),Y(e,r)},e=>{var t=Rr();Y(e,t)}),M(c),Y(e,a)},$$slots:{default:!0}})}var T=G(w,2);Z(T,{title:`Import`,description:`Snapshot files are validated as data and never executed.`,children:(e,n)=>{var r=Kr(),i=I(r);te(i,{accept:`.json,application/json`,class:`sr-only`,label:`Snapshot file`,hidden:!0,onchange:v,get ref(){return F(f)},set ref(e){H(f,e,!0)}});var a=G(i,2);X(a,{onclick:()=>F(f)?.click(),children:(e,t)=>{var n=Br();Q(I(n),{get icon(){return Xe},class:`size-3.5`,"aria-hidden":`true`}),J(),Y(e,n)},$$slots:{default:!0}});var o=G(a,2),u=e=>{var t=Vr(),n=W(t,!0);R(()=>A(n,F(d))),Y(e,t)};j(o,e=>{F(d)&&e(u)});var p=G(o,2),m=e=>{var n=Gr(),r=B(n),i=W(r,!0),a=G(r,2),o=W(a),u=G(a,2),d=W(u,!0),f=G(u,2),p=e=>{var t=Ur();V(t,21,()=>F(l).warnings,oe,(e,t)=>{var n=Hr(),r=W(n,!0);R(()=>A(r,F(t))),Y(e,n)}),M(t),Y(e,t)};j(f,e=>{F(l).warnings.length&&e(p)});var m=G(f,2),h=B(m);{let e=U(()=>t.dt.isBusy(`snap:import`));X(h,{get busy(){return F(e)},onclick:()=>y(!1),children:(e,t)=>{J();var n=P(`Import only`);Y(e,n)},$$slots:{default:!0}})}var g=G(h,2);{let e=U(()=>t.dt.isBusy(`snap:import`));un(g,{label:`Import & restore`,confirmLabel:`Replace data`,variant:`primary`,message:`Stores the snapshot and replaces the current data with it.`,get busy(){return F(e)},onconfirm:()=>y(!0)})}var _=G(g,2);X(_,{variant:`ghost`,onclick:()=>{H(l,null),H(s,null)},children:(e,t)=>{var n=Wr();Q(I(n),{get icon(){return Je},class:`size-3.5`,"aria-hidden":`true`}),J(),Y(e,n)},$$slots:{default:!0}}),M(m),M(n),R(e=>{A(i,F(l).snapshot.name),A(o,`${F(c)??``} · ${F(l).snapshot.prototypeId??``} v${F(l).snapshot.prototypeVersion??``} · schema v${F(l).snapshot.schemaVersion??``}`),A(d,e)},[()=>Object.entries(F(l).rowCounts).map(([e,t])=>`${e}: ${t}`).join(` · `)||`No rows`]),Y(e,n)};j(p,e=>{F(l)&&e(m)}),Y(e,r)},$$slots:{default:!0}}),Y(e,x),Me()}var Yr=N(`<span class="rounded bg-warning px-1 font-sans text-[10px] font-medium text-warning-foreground"> </span>`),Xr=N(`<dl class="grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-[11px]"><dt class="text-muted-foreground">UI time</dt> <dd class="flex items-center gap-1.5 font-mono"> <!></dd> <dt class="text-muted-foreground">Committed</dt> <dd class="font-mono"> <span class="text-muted-foreground"> </span></dd> <dt class="text-muted-foreground">Reference</dt> <dd class="font-mono"> </dd></dl>`),Zr=N(`<div class="grid grid-cols-4 gap-1.5"></div> <div class="mt-2 flex gap-1.5"><label class="sr-only" for="py-dt-preview-at">Preview at (UTC)</label> <!> <!></div> <div class="mt-2"><!></div>`,1),Qr=N(`<p class="mt-2 text-[11px] text-muted-foreground"> </p>`),$r=N(`<div class="flex flex-wrap gap-1.5"><!> <!></div> <!> <!> <div class="mt-3"><!></div>`,1),ei=N(`<!> <!> <!>`,1);function ti(e,t){be(t,!0);let n=U(()=>t.dt.runtime),r=U(()=>{let e=t.dt.clock;return{now:F(n).clock.now(),committed:F(n).clock.committed(),reference:F(n).clock.reference(),previewing:e.previewOffsetMs!==0,previewOffsetMs:e.previewOffsetMs,committedOffsetMs:e.committedOffsetMs}}),i=U(()=>typeof F(n).definition.timeline==`function`),a=q(null),o=q(``),s=[{label:`−1 day`,duration:{days:-1}},{label:`+1 day`,duration:{days:1}},{label:`+7 days`,duration:{days:7}},{label:`+30 days`,duration:{days:30}}],c=U(()=>t.dt.isBusy(`time`));async function l(e){if(F(c))return;let r=await t.dt.run(`time:advance:${e}`,()=>F(n).scenarios.advance({days:e}));r&&(t.dt.touchWorld(),H(a,F(i)?`Advanced ${e} day${e===1?``:`s`}: ${r.applied} event${r.applied===1?``:`s`} applied, ${r.skipped} already applied.`:`Advanced ${e} day${e===1?``:`s`}. This prototype has no timeline, so no records changed.`,!0),t.dt.notify(`success`,F(a)))}function u(){if(!F(o))return;let e=new Date(`${F(o)}:00Z`);Number.isNaN(e.getTime())?t.dt.notify(`error`,`Enter a valid date and time.`):F(n).clock.setTime(e)}var d=ei(),f=I(d);Z(f,{title:`Simulated clock`,children:(e,t)=>{var n=Xr(),i=G(B(n),2),a=B(i),o=G(a),s=e=>{var t=Yr(),n=W(t);R(e=>A(n,`preview ${e??``}`),[()=>E(F(r).previewOffsetMs)]),Y(e,t)};j(o,e=>{F(r).previewing&&e(s)}),M(i);var c=G(i,4),l=B(c),u=G(l),d=W(u);M(c);var f=G(c,4),p=W(f,!0);M(n),R((e,t,n,r)=>{A(a,`${e??``} `),A(l,`${t??``} `),A(d,`(${n??``})`),A(p,r)},[()=>S(F(r).now),()=>S(F(r).committed),()=>E(F(r).committedOffsetMs),()=>S(F(r).reference)]),Y(e,n)},$$slots:{default:!0}});var p=G(f,2);Z(p,{title:`Preview`,description:`Moves only the time the UI sees. No data changes.`,children:(e,t)=>{var i=Zr(),a=I(i);V(a,21,()=>s,e=>e.label,(e,t)=>{X(e,{onclick:()=>F(n).clock.preview(F(t).duration),children:(e,n)=>{J();var r=P();R(()=>A(r,F(t).label)),Y(e,r)},$$slots:{default:!0}})}),M(a);var c=G(a,2),l=G(B(c),2);Le(l,{id:`py-dt-preview-at`,type:`datetime-local`,class:`min-h-touch min-w-0 flex-1 rounded-md border border-input bg-surface px-2 text-xs text-surface-foreground sm:min-h-7`,get value(){return F(o)},set value(e){H(o,e,!0)}});var d=G(l,2);{let e=U(()=>!F(o));X(d,{onclick:u,get disabled(){return F(e)},children:(e,t)=>{J();var n=P(`Preview at`);Y(e,n)},$$slots:{default:!0}})}M(c);var f=G(c,2),p=B(f);{let e=U(()=>!F(r).previewing);X(p,{variant:`ghost`,get disabled(){return F(e)},onclick:()=>F(n).clock.clearPreview(),children:(e,t)=>{J();var n=P(`Clear preview`);Y(e,n)},$$slots:{default:!0}})}M(f),Y(e,i)},$$slots:{default:!0}});var m=G(p,2);{let e=U(()=>F(i)?`Commits deterministic timeline events. Idempotent: 7 × 1 day equals 1 × 7 days.`:`This prototype defines no timeline: advancing moves committed time only.`);Z(m,{title:`Advance`,get description(){return F(e)},children:(e,r)=>{var i=$r(),o=I(i),s=B(o);{let e=U(()=>t.dt.isBusy(`time:advance:1`));X(s,{variant:`primary`,get busy(){return F(e)},get disabled(){return F(c)},onclick:()=>l(1),children:(e,t)=>{J();var n=P(`Advance 1 day`);Y(e,n)},$$slots:{default:!0}})}var u=G(s,2);{let e=U(()=>t.dt.isBusy(`time:advance:7`));X(u,{variant:`primary`,get busy(){return F(e)},get disabled(){return F(c)},onclick:()=>l(7),children:(e,t)=>{J();var n=P(`Advance 7 days`);Y(e,n)},$$slots:{default:!0}})}M(o);var d=G(o,2);{let e=U(()=>t.dt.errorFor(`time`));Et(d,{get message(){return F(e)}})}var f=G(d,2),p=e=>{var t=Qr(),n=W(t,!0);R(()=>A(n,F(a))),Y(e,t)};j(f,e=>{F(a)&&e(p)});var m=G(f,2);un(B(m),{label:`Reset clock`,confirmLabel:`Reset clock`,message:`Returns the clock to the scenario reference time. Events already applied stay in the data — reset the scenario to undo them.`,onconfirm:()=>F(n).clock.resetClock()}),M(m),Y(e,i)},$$slots:{default:!0}})}Y(e,d),Me()}var ni=()=>({});function ri(e,t,n=ni){let r=q(e.session.principal()),i=q(e.theme.appearance()),a=q(e.scenarios.active()),o=q(e.overrides.get()),s=q(e.environmentState()),c=q(e.clock.getState()),l=q(e.scenarios.progress?.()??null),u=q(0),d=q(null),f=L({}),p=L({}),m=q(L(e.pending?.count()??0)),h=e=>e.split(`:`)[0]??e,g,_=()=>{H(s,e.environmentState())},v=[e.session.subscribe(()=>{H(r,e.session.principal())}),e.theme.subscribe(()=>{H(i,e.theme.appearance())}),e.scenarios.subscribe(()=>{H(a,e.scenarios.active()),xe(u)}),e.overrides.subscribe(()=>{H(o,e.overrides.get()),_()}),e.environment.subscribe(_),e.clock.subscribe(()=>{H(c,e.clock.getState())}),e.pending?.subscribe(e=>{H(m,e.length,!0)})??(()=>{}),e.scenarios.subscribeProgress?.(e=>{H(l,e)})??(()=>{})],y=(e,t)=>{H(d,{kind:e,text:t}),clearTimeout(g),g=setTimeout(()=>{H(d,null)},e===`error`?8e3:4e3)};return{runtime:e,themes:t,avatarImage:n,get principal(){return F(r)},get appearance(){return F(i)},get active(){return F(a)},get overrides(){return F(o)},get environment(){return F(s)},get clock(){return F(c)},get progress(){return F(l)},get worldVersion(){return F(u)},touchWorld(){xe(u)},get status(){return F(d)},notify:y,async run(e,t,n){let r=h(e);f[e]=!0,delete p[r];try{let e=await t();return n&&y(`success`,n),e}catch(e){let t=e instanceof Error?e.message:String(e);p[r]=t,y(`error`,t);return}finally{f[e]=!1}},isBusy:e=>Object.entries(f).some(([t,n])=>n&&(t===e||t.startsWith(`${e}:`))),errorFor:e=>p[e]??null,get working(){return Object.values(f).some(Boolean)||F(m)>0||F(l)!==null},destroy(){clearTimeout(g);for(let e of v)e()}}}var ii=N(`<span class="rounded-full bg-primary px-1.5 text-[10px] font-semibold text-primary-foreground"> </span>`),ai=N(`<!> DevTools <!>`,1),oi=N(`<div class="pointer-events-none absolute inset-x-0 -bottom-px h-0.5 overflow-hidden bg-primary/15" role="progressbar" aria-label="Applying changes" data-dt-working=""><div class="h-full w-1/3 animate-pulse bg-primary motion-reduce:w-full motion-reduce:animate-none"></div></div>`),si=N(`<span class="mr-1 rounded bg-warning px-1 font-medium text-warning-foreground"> </span>`),ci=N(`<!> `,1),li=N(`<!> <span class="max-w-full truncate"> </span>`,1),ui=N(`<p class="p-4 text-muted-foreground" role="status"> </p>`),di=N(`<p class="p-4 text-destructive" role="alert"> </p>`),fi=N(`<span> </span>`),pi=N(`<span class="text-muted-foreground">Simulation only — nothing here is real security or real infrastructure.</span>`),mi=N(`<aside class="fixed inset-x-0 bottom-0 z-[2147483000] flex max-h-[85dvh] flex-col overflow-hidden rounded-t-2xl border border-border bg-background shadow-float sm:inset-x-auto sm:right-[calc(1rem+var(--devtools-fixed-right-edge,0px))] sm:bottom-4 sm:h-[min(680px,calc(100dvh-2rem))] sm:max-h-none sm:w-[400px] sm:rounded-xl" aria-label="Protoyard DevTools"><div class="mx-auto mt-2 h-1 w-10 rounded-full bg-border sm:hidden" aria-hidden="true"></div> <header class="relative flex items-center gap-2 border-b border-border px-3 py-2"><!> <!> <div class="min-w-0 flex-1"><h2 tabindex="-1" class="truncate text-xs font-semibold outline-none"> <span class="font-normal text-muted-foreground">· DevTools</span></h2> <p class="truncate text-[11px] text-muted-foreground"><!> </p></div> <!> <!> <!></header> <div role="tablist" aria-label="DevTools sections" tabindex="-1" class="grid shrink-0 gap-0.5 border-b border-border px-1.5 py-1.5"></div> <div id="py-dt-tabpanel" role="tabpanel" class="min-h-0 flex-1 overflow-y-auto overscroll-contain"><!></div> <div class="min-h-8 border-t border-border px-3 py-1.5 pb-safe text-[11px]" aria-live="polite" role="status"><!></div></aside>`),hi=N(`<div class="py-devtools-root pointer-events-auto font-sans text-[13px] leading-normal text-foreground antialiased"><!></div>`);function gi(e,t){be(t,!0);let n=ke(t,`themes`,19,()=>[]),r=ke(t,`extraTabs`,19,()=>[]),i=ri(t.runtime,n(),t.avatarImage),a=t.runtime.manifest.storage.namespace,o=St(a),s=[{id:`scenario`,label:`Scenario`,icon:pt,view:Dr},{id:`personas`,label:`Personas`,icon:Ke,view:fr},{id:`time`,label:`Time`,icon:Ge,view:ti},{id:`data`,label:`Data`,icon:We,view:On},{id:`env`,label:`Env`,icon:yt,view:$n},{id:`look`,label:`Look`,icon:Ze,view:on},{id:`snapshots`,label:`Snaps`,icon:ut,view:Jr},{id:`share`,label:`Share`,icon:et,view:Mr}],c=U(()=>{let e=new Set(s.map(e=>e.id));return[...s,...r().filter(t=>!e.has(t.id)&&(e.add(t.id),!0))]}),l=q(L(o.open)),u=q(L(F(c).some(e=>e.id===o.tab)?o.tab:`scenario`)),d=L({}),f=q(L([])),p=L({}),m=q(null),h=q(void 0),g=q(void 0),_=U(()=>F(c).find(e=>e.id===F(u))??F(c)[0]),v=U(()=>Object.values(i.overrides).filter(e=>e!==void 0).length),y=U(()=>F(f).includes(F(u)));K(()=>{Ct(a,{open:F(l),tab:F(u)})}),Ee(()=>{let e=F(c).find(e=>e.id===F(u));e&&!(`view`in e)&&te(e)});let b=q(0),x=q(`0px`),S=q(`0px`),w=q(!1),T=q(!1);K(()=>{let e=0,t=()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{H(x,getComputedStyle(document.documentElement).getPropertyValue(`--py-fixed-right-edge`).trim()||`0px`,!0),H(S,getComputedStyle(document.documentElement).getPropertyValue(`--py-devtools-offset`).trim()||`0px`,!0);let e=0;for(let t of document.querySelectorAll(`[data-py-bottom-nav], [data-tx-bottom-nav], [data-tx-mobile-tabs]`)){let n=t.getBoundingClientRect();getComputedStyle(t).position===`fixed`&&n.height>0&&n.bottom>=window.innerHeight-1&&(e=Math.max(e,n.height))}H(b,e,!0),H(T,window.innerWidth<640),H(w,[...document.querySelectorAll(`[role="dialog"][aria-modal="true"], [role="alertdialog"]`)].some(e=>!e.closest(`.py-devtools`)),!0)})};t();let n=new MutationObserver(t);n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`aria-modal`,`role`,`class`,`style`]}),n.observe(document.documentElement,{attributes:!0,attributeFilter:[`style`]});let r=fe(window,`resize`,t);return()=>{cancelAnimationFrame(e),n.disconnect(),r()}}),K(()=>()=>i.destroy()),K(()=>{F(l),F(T),F(w),F(b),F(x),F(S),window.dispatchEvent(new Event(`protoyard:floating`))});function E(e,t=!0){H(l,e,!0),t&&queueMicrotask(()=>F(e?h:m)?.focus())}K(()=>fe(window,`keydown`,e=>{(e.ctrlKey||e.metaKey)&&e.key===`.`&&(e.preventDefault(),E(!F(l)))}));function D(e){e.key===`Escape`&&!e.defaultPrevented&&(e.stopPropagation(),E(!1))}function ee(e){let t=F(c).findIndex(e=>e.id===F(u)),n=t;if(e.key===`ArrowRight`)n=(t+1)%F(c).length;else if(e.key===`ArrowLeft`)n=(t-1+F(c).length)%F(c).length;else if(e.key===`Home`)n=0;else if(e.key===`End`)n=F(c).length-1;else return;e.preventDefault();let r=F(c)[n];r&&te(r),queueMicrotask(()=>F(g)?.querySelector(`#py-dt-tab-${F(u)}`)?.focus())}async function te(e){if(H(u,e.id,!0),p[e.id]=``,!(`view`in e||d[e.id]||F(f).includes(e.id))){H(f,[...F(f),e.id],!0);try{d[e.id]=await e.load()}catch(t){p[e.id]=t instanceof Error?t.message:`Could not load ${e.label}.`}finally{H(f,F(f).filter(t=>t!==e.id),!0)}}}async function ne(){await i.run(`overrides:clear`,()=>t.runtime.overrides.clear(),`All overrides cleared.`)}function re(){H(l,!1),Ct(a,{open:!1,tab:F(u)}),location.assign(C(t.runtime,{presentation:!0}))}var ie=hi(),ae=B(ie),O=e=>{var t=k(),n=I(t),r=e=>{X(e,{type:`button`,class:`fixed top-1/2 right-[var(--devtools-fixed-right-edge,0px)] z-[2147483000] inline-flex size-11 -translate-y-1/2 items-center justify-center rounded-l-xl border border-r-0 border-border bg-elevated text-primary shadow-float focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring`,"aria-label":`Open Protoyard DevTools (Ctrl or Command + period)`,"aria-expanded":`false`,onclick:()=>E(!0),get ref(){return F(m)},set ref(e){H(m,e,!0)},children:(e,t)=>{Q(e,{get icon(){return st},class:`size-4`,"aria-hidden":`true`})},$$slots:{default:!0}})},i=e=>{{let t=U(()=>`bottom: ${F(b)>0?`calc(${F(b)+12}px + var(--devtools-offset, 0px))`:`calc(1rem + env(safe-area-inset-bottom, 0px) + var(--devtools-offset, 0px))`}`),n=U(()=>F(v)>0?`Open Protoyard DevTools ${F(v)} active overrides (Ctrl or Command + period)`:`Open Protoyard DevTools (Ctrl or Command + period)`);X(e,{type:`button`,class:`fixed right-[calc(1rem+var(--devtools-fixed-right-edge,0px))] z-[2147483000] inline-flex h-11 items-center gap-2 rounded-full border border-border bg-elevated pr-4 pl-3 text-xs font-semibold text-foreground shadow-float transition-transform hover:-translate-y-0.5 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring motion-reduce:transition-none`,get style(){return F(t)},get"aria-label"(){return F(n)},"aria-expanded":`false`,onclick:()=>E(!0),get ref(){return F(m)},set ref(e){H(m,e,!0)},children:(e,t)=>{var n=ai(),r=I(n);Q(r,{get icon(){return st},class:`size-4 text-primary`,"aria-hidden":`true`});var i=G(r,2),a=e=>{var t=ii(),n=W(t,!0);R(()=>A(n,F(v))),Y(e,t)};j(i,e=>{F(v)>0&&e(a)}),Y(e,n)},$$slots:{default:!0}})}};j(n,e=>{F(w)||F(T)?e(r):e(i,-1)}),Y(e,t)},oe=e=>{var n=mi(),r=G(B(n),2),a=B(r),o=e=>{var t=oi();Y(e,t)};j(a,e=>{i.working&&e(o)});var s=G(a,2);Q(s,{get icon(){return st},class:`size-4 shrink-0 text-primary`,"aria-hidden":`true`});var l=G(s,2),f=B(l),m=B(f);J(),M(f),Te(f,e=>H(h,e),()=>F(h));var b=G(f,2),x=B(b),S=e=>{var n=si(),r=W(n);R(()=>A(r,`Sandbox: ${t.runtime.sandbox??``}`)),Y(e,n)};j(x,e=>{t.runtime.sandbox&&e(S)});var C=G(x);M(b),M(l);var w=G(l,2),T=e=>{{let t=U(()=>i.isBusy(`overrides:clear`));X(e,{type:`button`,class:`inline-flex min-h-touch items-center gap-1 rounded-md px-2 text-[11px] font-medium text-primary hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring sm:min-h-7`,title:`Clear every temporary override (actor, role, environment, appearance)`,get disabled(){return F(t)},onclick:ne,children:(e,t)=>{var n=ci(),r=I(n);Q(r,{get icon(){return gt},class:`size-3.5`,"aria-hidden":`true`});var i=G(r);R(()=>A(i,`Reset ${F(v)??``}`)),Y(e,n)},$$slots:{default:!0}})}};j(w,e=>{F(v)>0&&e(T)});var ie=G(w,2);X(ie,{type:`button`,class:`inline-flex size-11 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring sm:size-7`,"aria-label":`Presentation mode: reload without DevTools`,title:`Presentation mode (?devtools=0)`,onclick:re,children:(e,t)=>{Q(e,{get icon(){return Qe},class:`size-4`,"aria-hidden":`true`})},$$slots:{default:!0}});var ae=G(ie,2);X(ae,{type:`button`,class:`inline-flex size-11 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring sm:size-7`,"aria-label":`Close DevTools`,onclick:()=>E(!1),children:(e,t)=>{Q(e,{icon:`close`,class:`size-4`,"aria-hidden":`true`})},$$slots:{default:!0}}),M(r);var O=G(r,2);let oe;V(O,21,()=>F(c),e=>e.id,(e,t)=>{let n=U(()=>F(t).id===F(u));{let r=U(()=>`py-dt-tab-${F(t).id}`),i=U(()=>F(n)?0:-1),a=U(()=>F(n)?`bg-primary/10 font-semibold text-foreground [&_svg]:text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`);X(e,{get id(){return F(r)},type:`button`,role:`tab`,get"aria-selected"(){return F(n)},"aria-controls":`py-dt-tabpanel`,get tabindex(){return F(i)},get class(){return`flex min-h-touch min-w-0 flex-col items-center justify-center gap-0.5 rounded-md px-0.5 py-1 text-[10px] font-medium transition-colors focus-visible:outline-2 focus-visible:outline-ring ${F(a)??``}`},onclick:()=>te(F(t)),children:(e,n)=>{var r=li(),i=I(r);Q(i,{get icon(){return F(t).icon},class:`size-4`});var a=G(i,2),o=W(a,!0);R(()=>A(o,F(t).label)),Y(e,r)},$$slots:{default:!0}})}}),M(O),Te(O,e=>H(g,e),()=>F(g));var le=G(O,2),ue=B(le);Ce(ue,()=>F(u),e=>{var t=k(),n=I(t),r=e=>{var t=k(),n=I(t);ce(n,()=>F(_).view,(e,t)=>{t(e,{get dt(){return i}})}),Y(e,t)},a=e=>{let t=U(()=>d[F(u)]);var n=k(),r=I(n);ce(r,()=>F(t),(e,t)=>{t(e,ye({get dt(){return i}},()=>`props`in F(_)?F(_).props:{}))}),Y(e,n)},o=e=>{var t=ui(),n=W(t);R(()=>A(n,`Loading ${F(_).label??``}…`)),Y(e,t)},s=e=>{var t=di(),n=W(t,!0);R(()=>A(n,p[F(u)])),Y(e,t)};j(n,e=>{`view`in F(_)?e(r):d[F(u)]?e(a,1):F(y)?e(o,2):p[F(u)]&&e(s,3)}),Y(e,t)}),M(le);var de=G(le,2),fe=B(de),me=e=>{var t=fi(),n=W(t,!0);R(()=>{ve(t,1,se(i.status.kind===`error`?`text-destructive`:i.status.kind===`success`?`text-success`:`text-muted-foreground`)),A(n,i.status.text)}),Y(e,t)},he=e=>{var t=pi();Y(e,t)};j(fe,e=>{i.status?e(me):e(he,-1)}),M(de),M(n),R(e=>{z(r,`aria-busy`,i.working||F(y)||void 0),A(m,`${t.runtime.manifest.name??``} `),A(C,` ${i.active?.scenario.name??`No scenario`??``} · ${i.principal?.persona.name??`nobody`??``}
3
- (${i.principal?.role??`—`??``})`),oe=je(O,``,oe,{"grid-template-columns":e}),z(le,`aria-labelledby`,`py-dt-tab-${F(u)}`)},[()=>`repeat(${Math.min(F(c).length,9)}, minmax(0, 1fr))`]),pe(`keydown`,n,D),pe(`keydown`,O,ee),Y(e,n)};j(ae,e=>{F(l)?e(oe,-1):e(O)}),M(ie),R(()=>je(ie,`--devtools-fixed-right-edge: ${F(x)}; --devtools-offset: ${F(S)}`)),Y(e,ie),Me()}ue([`keydown`]);function _i(e){let t=e.target??document.body.appendChild(document.createElement(`div`));t.classList.add(`py-devtools`),t.dataset.protoyardDevtools=``,c(),f(async()=>{let{restoreDesignSystems:e}=await import(`./design-systems-DzkHB4mN.js`);return{restoreDesignSystems:e}},__vite__mapDeps([66,1,2,3,7,4,5,6,67,68,69,70,10,71,13]),import.meta.url).then(({restoreDesignSystems:t})=>t(e.runtime)).catch(e=>console.error(`[protoyard/devtools] design systems`,e));let n=t.appendChild(document.createElement(`div`));n.style.display=`contents`;let r=vi(t),i=_e(gi,{target:n,props:{runtime:e.runtime,themes:e.themes??[],...e.avatarImage?{avatarImage:e.avatarImage}:{},...e.extraTabs?{extraTabs:e.extraTabs}:{}}});return{async destroy(){await de(i),r(),n.remove(),e.target||t.remove()}}}function vi(e){let t=t=>t.composedPath().includes(e),n=e=>{t(e)&&e.stopImmediatePropagation()},r=e=>e.stopPropagation(),i=[`pointerdown`,`mousedown`,`touchstart`,`click`,`focusin`];window.addEventListener(`focusin`,n,!0);for(let t of i)e.addEventListener(t,r);return()=>{window.removeEventListener(`focusin`,n,!0);for(let t of i)e.removeEventListener(t,r)}}var yi=class extends Error{issues;constructor(e){super(`Invalid tour definition: ${e.join(`; `)}`),this.name=`TourDefinitionError`,this.issues=e}};function bi(e){let t=[];if(!e||typeof e!=`object`)throw new yi([`definition must be an object`]);(typeof e.id!=`string`||e.id.trim()===``)&&t.push(`id is required`),(typeof e.title!=`string`||e.title.trim()===``)&&t.push(`title is required`),(!Array.isArray(e.steps)||e.steps.length===0)&&t.push(`steps must be a non-empty array`);let n=new Set,r=0,i=[];for(let a=0;a<(e.steps?.length??0);a++){let o=e.steps[a],s=`steps[${a}]`;if(!o||typeof o!=`object`){t.push(`${s} must be an object`);continue}if(typeof o.id!=`string`||o.id.trim()===``){t.push(`${s}.id is required`);continue}n.has(o.id)&&t.push(`${s}.id "${o.id}" is duplicated`),n.add(o.id),(typeof o.title!=`string`||o.title.trim()===``)&&t.push(`${s}.title is required`),typeof o.body!=`string`&&t.push(`${s}.body must be a string`);let c;o.day!==void 0&&(typeof o.day!=`number`||!Number.isFinite(o.day)||!Number.isInteger(o.day)?t.push(`${s}.day must be a finite integer`):o.day<0?t.push(`${s}.day must be ≥ 0`):o.day<r?t.push(`${s}.day (${o.day}) must be ≥ previous day (${r})`):(c=o.day,r=o.day)),o.target!==void 0&&typeof o.target!=`string`&&t.push(`${s}.target must be a string when set`),i.push({id:o.id,title:o.title,body:o.body??``,...typeof o.target==`string`&&o.target.trim()!==``?{target:o.target}:{},...c===void 0?{}:{day:c}})}if(t.length>0)throw new yi(t);return{id:e.id.trim(),title:e.title.trim(),steps:i}}function xi(e,t){if(t<0||t>=e.length)return 0;let n=e[t];if(!n||n.day===void 0){for(let n=t-1;n>=0;n--){let t=e[n];if(t?.day!==void 0)return t.day}return 0}return n.day}function Si(e,t,n){if(n<=t||n<0||n>=e.steps.length)return null;let r=t<0?0:xi(e.steps,t),i=xi(e.steps,n),a=i-r;if(!(a>0))return null;let o=e.steps[n];return o?{days:a,fromDay:r,toDay:i,stepId:o.id,tourId:e.id}:null}function Ci(e,t=typeof document<`u`?document:null){if(!e||e.trim()===``||!t)return null;try{return t.querySelector(e)}catch{return null}}function wi(e){return{tourId:e,status:`idle`,stepIndex:-1,storyDay:0}}function Ti(e,t={}){let n=bi(e),r=wi(n.id),i=null,a=new Set,o=t.resolveTarget??(e=>Ci(e,t.root??void 0)),s=()=>{let e={...r};for(let t of a)t(e)},c=e=>(r=e,s(),r),l=async e=>{if(e<0||e>=n.steps.length)throw RangeError(`Tour step index out of range: ${e}`);let a=xi(n.steps,e),o=r.storyDay,s=a-o,l=n.steps[e],u=s>0&&l?{days:s,fromDay:o,toDay:a,stepId:l.id,tourId:n.id}:null;u?(i=u,t.onClockAdvance&&(await t.onClockAdvance(u),i=null)):i=null;let d=Math.max(r.storyDay,a);return c({tourId:n.id,status:`active`,stepIndex:e,storyDay:d})};return{definition:n,getState:()=>({...r}),currentStep(){return r.status!==`active`||r.stepIndex<0?null:n.steps[r.stepIndex]??null},currentTarget(){let e=this.currentStep();return e?.target?o(e.target):null},lastClockRequest:()=>i,clearClockRequest(){i=null},async start(){return r.status===`active`?this.getState():(i=null,l(0))},async next(){if(r.status===`dismissed`)throw Error(`Tour was dismissed. Call reset() before starting again.`);if(r.status===`idle`)return this.start();if(r.status===`completed`)return this.getState();let e=r.stepIndex+1;return e>=n.steps.length?c({...r,status:`completed`,stepIndex:n.steps.length-1}):l(e)},back(){return r.status!==`active`||r.stepIndex<=0?this.getState():c({...r,stepIndex:r.stepIndex-1,status:`active`})},async goTo(e){if(r.status===`dismissed`)throw Error(`Tour was dismissed. Call reset() before starting again.`);if(e<0||e>=n.steps.length)throw RangeError(`Tour step index out of range: ${e}`);return(r.status===`idle`||r.stepIndex<0)&&(await l(0),e===0)||e===r.stepIndex?this.getState():e<r.stepIndex?c({...r,stepIndex:e,status:`active`}):l(e)},dismiss(){return i=null,c({tourId:n.id,status:`dismissed`,stepIndex:-1,storyDay:r.storyDay})},reset(){return i=null,c(wi(n.id))},subscribe(e){return a.add(e),()=>{a.delete(e)}}}}function Ei(e){return async t=>{t.days>0&&await e({days:t.days})}}var Di=N(`<div class="py-tour-spotlight svelte-n2ic0p" aria-hidden="true"></div>`),Oi=N(` <!>`,1),ki=N(`<h2 id="py-tour-title" class="py-tour-title svelte-n2ic0p"> </h2> <p id="py-tour-body" class="py-tour-body svelte-n2ic0p"> </p>`,1),Ai=N(`<h2 id="py-tour-title" class="py-tour-title svelte-n2ic0p">Tour complete</h2> <p id="py-tour-body" class="py-tour-body svelte-n2ic0p">You reached the end of this guided tour. Dismiss it or reset from DevTools to run it
4
- again.</p>`,1),ji=N(`<p class="py-tour-error svelte-n2ic0p" role="alert"> </p>`),Mi=N(`<div class="py-tour svelte-n2ic0p"><!> <div class="py-tour-card svelte-n2ic0p" role="dialog" aria-modal="false" aria-labelledby="py-tour-title" aria-describedby="py-tour-body" tabindex="-1"><header class="py-tour-header svelte-n2ic0p"><p class="py-tour-eyebrow svelte-n2ic0p"> </p> <p class="py-tour-progress svelte-n2ic0p" aria-live="polite"><!></p></header> <!> <!> <div class="py-tour-actions svelte-n2ic0p"><!> <div class="py-tour-actions-end svelte-n2ic0p"><!> <!></div></div></div></div>`);function Ni(e,t){be(t,!0);let n=t.controller,r=q(L(n.getState())),i=q(L(n.currentStep())),a=q(null),o=q(!1),s=q(null),c=q(void 0),l=n.subscribe(e=>{H(r,e,!0),H(i,n.currentStep(),!0),u()});function u(){let e=n.currentTarget();H(a,e?e.getBoundingClientRect():null,!0)}async function d(e){if(!F(o)){H(o,!0),H(s,null);try{await e(),u()}catch(e){H(s,e instanceof Error?e.message:String(e),!0)}finally{H(o,!1)}}}function f(){n.dismiss(),t.onClose?.()}Ee(()=>{u();let e=()=>u();return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),n.getState().status===`idle`&&d(()=>n.start()),queueMicrotask(()=>F(c)?.focus()),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}}),Ae(()=>{l()});let p=n.definition.steps.length,m=U(()=>F(r).stepIndex>=0?F(r).stepIndex+1:0),h=U(()=>F(r).status===`completed`),g=U(()=>F(r).status===`dismissed`),_=U(()=>F(r).status===`active`&&F(r).stepIndex>0),v=U(()=>F(h)?`Done`:F(r).stepIndex>=p-1?`Finish`:`Next`);var y=k(),b=I(y),x=e=>{var t=Mi(),l=B(t),u=e=>{var t=Di();let n;R(()=>n=je(t,``,n,{top:`${F(a).top-4}px`,left:`${F(a).left-4}px`,width:`${F(a).width+8}px`,height:`${F(a).height+8}px`})),Y(e,t)};j(l,e=>{F(a)&&e(u)});var g=G(l,2),y=B(g),b=B(y),x=W(b,!0),S=G(b,2),C=B(S),w=e=>{var t=P(`Complete`);Y(e,t)},T=e=>{var t=Oi(),n=I(t),i=G(n),a=e=>{var t=P();R(()=>A(t,`· Day ${F(r).storyDay??``}`)),Y(e,t)};j(i,e=>{F(r).storyDay>0&&e(a)}),R(()=>A(n,`Step ${F(m)??``} of ${p??``} `)),Y(e,t)};j(C,e=>{F(h)?e(w):e(T,-1)}),M(S),M(y);var E=G(y,2),D=e=>{var t=ki(),n=I(t),r=W(n,!0),a=G(n,2),o=W(a,!0);R(()=>{A(r,F(i).title),A(o,F(i).body)}),Y(e,t)},ee=e=>{var t=Ai();J(2),Y(e,t)};j(E,e=>{F(i)?e(D):F(h)&&e(ee,1)});var te=G(E,2),ne=e=>{var t=ji(),n=W(t,!0);R(()=>A(n,F(s))),Y(e,t)};j(te,e=>{F(s)&&e(ne)});var re=G(te,2),ie=B(re);X(ie,{variant:`ghost`,get disabled(){return F(o)},onclick:f,children:(e,t)=>{J();var n=P(`Dismiss`);Y(e,n)},$$slots:{default:!0}});var ae=G(ie,2),O=B(ae),oe=e=>{X(e,{variant:`outline`,get disabled(){return F(o)},onclick:()=>d(()=>n.back()),children:(e,t)=>{J();var n=P(`Back`);Y(e,n)},$$slots:{default:!0}})};j(O,e=>{F(_)&&e(oe)});var k=G(O,2),se=e=>{X(e,{variant:`primary`,get disabled(){return F(o)},onclick:f,children:(e,t)=>{J();var n=P();R(()=>A(n,F(v))),Y(e,n)},$$slots:{default:!0}})},ce=e=>{X(e,{variant:`primary`,get busy(){return F(o)},get disabled(){return F(o)},onclick:()=>d(()=>n.next()),children:(e,t)=>{J();var n=P();R(()=>A(n,F(v))),Y(e,n)},$$slots:{default:!0}})};j(k,e=>{F(h)?e(se):e(ce,-1)}),M(ae),M(re),M(g),Te(g,e=>H(c,e),()=>F(c)),M(t),R(()=>{z(t,`data-tour-id`,n.definition.id),z(t,`data-tour-status`,F(r).status),z(t,`data-tour-step`,F(i)?.id??``),A(x,n.definition.title)}),Y(e,t)};j(b,e=>{F(g)||e(x)}),Y(e,y),Me()}export{gi as DevtoolsPanel,yi as TourDefinitionError,Ni as TourPlayer,Si as clockRequestForAdvance,Ei as createScenarioClockHandler,Ti as createTourController,wi as initialTourState,vi as isolateFromAppLayers,_i as mountDevtools,bi as parseTourDefinition,C as reproducibleLink,Ci as resolveTourTarget,xi as stepDay};
@@ -1 +0,0 @@
1
- @layer tx.components{.tx-chat-composer.svelte-16d8rfu{gap:var(--tx-chat-composer-gap,var(--tx-space-2));border:var(--tx-border-width-thin) solid var(--tx-border,CanvasText);border-radius:var(--tx-chat-composer-radius,var(--tx-shape-radius-lg));background:var(--tx-surface,Canvas);padding:var(--tx-chat-composer-padding,var(--tx-space-3));display:grid}.tx-chat-composer.svelte-16d8rfu:focus-within{border-color:var(--tx-ring,Highlight)}.tx-chat-composer__field.svelte-16d8rfu{box-sizing:border-box;border:var(--tx-border-width-thin) solid var(--tx-input,var(--tx-border,CanvasText));border-radius:var(--tx-chat-composer-radius,var(--tx-shape-radius-lg));background:var(--tx-surface,Canvas);min-block-size:2.5rem;max-block-size:none;inline-size:100%;min-inline-size:0;color:var(--tx-foreground,CanvasText);padding:calc(var(--tx-space-unit) * 2.5) var(--tx-space-3);font-family:var(--tx-font-sans,system-ui, sans-serif);resize:none;line-height:1.4;font-size:var(--tx-type-body-size);outline:none;margin:0;overflow-y:hidden}.tx-chat-composer__field.svelte-16d8rfu:focus-visible{border-color:var(--tx-ring,Highlight);box-shadow:0 0 0 2px color-mix(in oklab, var(--tx-ring,Highlight) 30%, transparent)}.tx-chat-composer__field.svelte-16d8rfu:disabled{cursor:not-allowed;opacity:.6}.tx-chat-composer__field.svelte-16d8rfu::placeholder{color:var(--tx-muted-foreground,GrayText);opacity:1}.tx-chat-composer__actions.svelte-16d8rfu{justify-content:space-between;align-items:end;gap:var(--tx-space-3);display:flex}.tx-chat-composer__end.svelte-16d8rfu{align-items:center;gap:var(--tx-space-2);display:flex}.tx-chat-composer__attachments.svelte-16d8rfu{align-items:center;gap:var(--tx-space-2);flex-wrap:wrap;min-inline-size:0;display:flex}.tx-chat-composer__error.svelte-16d8rfu{color:var(--tx-destructive,Mark);font-size:var(--tx-type-label-size);margin:0}.visually-hidden.svelte-16d8rfu{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}@media (min-width:640px){.tx-chat-composer__field.svelte-16d8rfu{font-size:var(--tx-type-label-size)}}.tx-chat-mention.svelte-1ya1vf6{border-radius:var(--tx-shape-radius-sm);background:color-mix(in srgb, currentColor 12%, transparent);padding-inline:.2em;font-weight:600}.tx-chat-mention[data-self].svelte-1ya1vf6{background:var(--tx-warning,Mark);color:var(--tx-warning-foreground,MarkText)}.tx-chat-date.svelte-1ya1vf6{text-underline-offset:.2em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tx-chat-status-chip.svelte-1ya1vf6{border:var(--tx-border-width-thin) solid currentColor;border-radius:var(--tx-shape-radius-full);vertical-align:baseline;padding:0 .5em;font-size:.8em;font-weight:600;line-height:1.5;display:inline-block}.tx-chat-status-chip[data-tone=info].svelte-1ya1vf6{color:var(--tx-info,LinkText)}.tx-chat-status-chip[data-tone=success].svelte-1ya1vf6{color:var(--tx-success,CanvasText)}.tx-chat-status-chip[data-tone=warning].svelte-1ya1vf6{color:var(--tx-warning,CanvasText)}.tx-chat-status-chip[data-tone=danger].svelte-1ya1vf6{color:var(--tx-destructive,Mark)}.tx-chat-message--own .tx-chat-status-chip.svelte-1ya1vf6{color:inherit}a.svelte-1ya1vf6{color:inherit;text-underline-offset:.15em;text-decoration:underline}code.svelte-1ya1vf6{border-radius:var(--tx-shape-radius-sm);background:var(--tx-surface,Canvas);color:var(--tx-foreground,CanvasText);font-family:var(--tx-font-mono,ui-monospace, monospace);padding-inline:.2em}.tx-chat-message-list.svelte-dk9bjd{overscroll-behavior:contain;min-block-size:0;padding:var(--tx-space-4);color:var(--tx-foreground,CanvasText);outline:none;flex-direction:column;flex:1;display:flex;position:relative;overflow:auto}.tx-chat-message-list.svelte-dk9bjd:focus-visible{outline:var(--tx-focus-ring-width,2px) solid var(--tx-ring,Highlight);outline-offset:-2px}.tx-chat-message-list__canvas.svelte-dk9bjd{gap:var(--tx-space-3);flex-direction:column;display:flex}.tx-chat-message-list__canvas--virtual.svelte-dk9bjd{flex:none;display:block;position:relative}.tx-chat-message-group--virtual.svelte-dk9bjd{position:absolute;inset-inline:0}.tx-chat-message-group.svelte-dk9bjd{flex-direction:column;min-inline-size:0;display:flex}.tx-chat-message-group__row.svelte-dk9bjd{align-items:flex-start;gap:calc(var(--tx-space-unit) * 2.5);min-inline-size:0;display:flex}.tx-chat-message-group__avatar .tx-avatar__surface[data-tone]{color:var(--tx-foreground,CanvasText)}.tx-chat-message-group__avatar.svelte-dk9bjd{flex:none;margin-block-start:var(--tx-space-5)}.tx-chat-message-group__avatar-spacer.svelte-dk9bjd{flex:none;inline-size:1.75rem}.tx-chat-message-group__content.svelte-dk9bjd{align-items:flex-start;gap:var(--tx-space-1);flex-direction:column;min-inline-size:0;max-inline-size:min(85%,42rem);display:flex}.tx-chat-message-group__content--own.svelte-dk9bjd{align-items:flex-end;margin-inline-start:auto}.tx-chat-message-group__meta.svelte-dk9bjd{align-items:baseline;gap:var(--tx-space-2);padding-inline:var(--tx-space-1);color:var(--tx-muted-foreground,GrayText);font-size:var(--tx-type-caption-size);margin:0;display:flex}.tx-chat-message-group__author.svelte-dk9bjd{color:var(--tx-foreground,CanvasText);font-weight:600}.tx-chat-message-group__you.svelte-dk9bjd{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.tx-chat-message.svelte-dk9bjd{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:var(--tx-chat-bubble-radius,calc(var(--tx-shape-radius-lg) * 2));background:var(--tx-muted,ButtonFace);max-inline-size:100%;padding:var(--tx-chat-bubble-padding-block,var(--tx-space-2)) var(--tx-chat-bubble-padding-inline,calc(var(--tx-space-unit) * 3.5));border-end-start-radius:var(--tx-chat-bubble-tail-radius,var(--tx-shape-radius-sm))}.tx-chat-message--own.svelte-dk9bjd{border-radius:var(--tx-chat-bubble-radius,calc(var(--tx-shape-radius-lg) * 2));background:var(--tx-primary,Highlight);color:var(--tx-primary-foreground,HighlightText);border-end-end-radius:var(--tx-chat-bubble-tail-radius,var(--tx-shape-radius-sm))}.tx-chat-message--failed.svelte-dk9bjd{outline:2px solid var(--tx-destructive,Mark)}.tx-chat-message__sr.svelte-dk9bjd{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.tx-chat-message__caret.svelte-dk9bjd{vertical-align:text-bottom;background:currentColor;block-size:1em;inline-size:.5em;margin-inline-start:.1em;animation:1s step-end infinite svelte-dk9bjd-tx-chat-caret;display:inline-block}@keyframes svelte-dk9bjd-tx-chat-caret{50%{opacity:0}}.tx-chat-message.svelte-dk9bjd a{color:inherit;text-underline-offset:.15em;text-decoration:underline}.tx-chat-message-group__status.svelte-dk9bjd{color:var(--tx-muted-foreground,GrayText);margin:0;font-size:.7rem}.tx-chat-message-group__status--failed.svelte-dk9bjd{color:var(--tx-destructive,Mark);font-weight:600}.tx-chat-message-list__day.svelte-dk9bjd{margin-block:calc(var(--tx-space-unit) * 1.4);color:var(--tx-muted-foreground,GrayText);font-size:var(--tx-type-caption-size);justify-content:center;align-items:center;display:flex;position:relative}.tx-chat-message-list__day.svelte-dk9bjd:before{background:var(--tx-border,ButtonBorder);content:"";block-size:1px;position:absolute;inset-inline:0}.tx-chat-message-list__day.svelte-dk9bjd span:where(.svelte-dk9bjd){background:var(--tx-surface,Canvas);padding-inline:var(--tx-space-2);position:relative}.tx-chat-message__actions.svelte-dk9bjd{align-items:center;gap:var(--tx-space-1);flex-wrap:wrap;display:flex}.tx-chat-message-edit.svelte-dk9bjd{gap:var(--tx-space-2);inline-size:min(100%,32rem);display:grid}.tx-chat-message-edit__field.svelte-dk9bjd{box-sizing:border-box;border:var(--tx-border-width-thin) solid var(--tx-input,var(--tx-border,CanvasText));border-radius:var(--tx-shape-radius-lg);background:var(--tx-surface,Canvas);inline-size:100%;color:var(--tx-foreground,CanvasText);padding:var(--tx-space-2) var(--tx-space-3);font:inherit;resize:vertical;margin:0}.tx-chat-message-edit__field.svelte-dk9bjd:focus-visible{outline:var(--tx-focus-ring-width,2px) solid var(--tx-ring,Highlight);outline-offset:1px}.tx-chat-message-edit__actions.svelte-dk9bjd{justify-content:flex-end;gap:var(--tx-space-2);display:flex}.tx-chat-message-list__jump.svelte-dk9bjd{flex:none;justify-content:center;align-items:flex-end;block-size:0;display:flex;position:sticky;inset-block-end:0;overflow:visible}.tx-chat-message-list__empty.svelte-dk9bjd{color:var(--tx-muted-foreground,GrayText);text-align:center;margin:auto}@media (min-width:640px){.tx-chat-message-group__content.svelte-dk9bjd{max-inline-size:min(70%,42rem)}}@media (forced-colors:active){.tx-chat-message.svelte-dk9bjd{border:var(--tx-border-width-thin) solid CanvasText}.tx-chat-message-list__day.svelte-dk9bjd:before{background:canvastext}}@media (prefers-reduced-motion:reduce){.tx-chat-message-list.svelte-dk9bjd{scroll-behavior:auto}.tx-chat-message__caret.svelte-dk9bjd{animation:none}}}
@@ -1 +0,0 @@
1
- import{B as e,H as t,M as n,at as r,z as i}from"./index-client-BOGsOwg5.js";import"./disclose-version-xihTtKlq.js";var a=t(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M3 17l6-6 4 4 7-7" stroke-linecap="round" stroke-linejoin="round"></path><path d="M14 8h6v6" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),o=t(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M3 7l6 6 4-4 7 7" stroke-linecap="round" stroke-linejoin="round"></path><path d="M14 16h6v-6" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),s=t(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M5 12h14" stroke-linecap="round"></path></svg>`);function c(t,c){var l=e(),u=r(l),d=e=>{var t=a();i(e,t)},f=e=>{var t=o();i(e,t)},p=e=>{var t=s();i(e,t)};n(u,e=>{c.trend===`up`?e(d):c.trend===`down`?e(f,1):e(p,-1)}),i(t,l)}function l(e,t){return t||(typeof e==`number`?e>0?`up`:e<0?`down`:`neutral`:`neutral`)}function u(e,t=`up`){return e===`neutral`?`tx-stat__delta--neutral`:e===t?`tx-stat__delta--good`:`tx-stat__delta--bad`}function d(e){return e===`up`?`Increased`:e===`down`?`Decreased`:`No change`}function f(e){if(e!==void 0)return typeof e==`number`?`${e>0?`+`:``}${e.toLocaleString()}`:e}export{c as a,d as i,l as n,u as r,f as t};
@@ -1 +0,0 @@
1
- import{O as e,Tt as t,V as n,et as r,h as i,it as a,p as o,r as s,z as c}from"./index-client-BOGsOwg5.js";import"./disclose-version-xihTtKlq.js";import{n as l}from"./context-CpU1iXoW.js";var u=n(`<div class="tx-deck-layout svelte-rkvh0"><div><!></div></div>`);function d(n,l){let d=s(l,`root`,19,()=>({}));var f=u(),p=a(f);o(p,()=>({class:`tx-deck-layout__body`,...d()}),void 0,void 0,void 0,`svelte-rkvh0`);var m=a(p);e(m,()=>l.children),t(p),t(f),r(()=>{i(f,`data-tx-deck-design`,l.layout),i(f,`data-tx-deck-bleed`,l.bleed)}),c(n,f)}function f(e){return{at(t){return e?e.attributes([`props`,...t]):{}},highlight(t){return e?.codeHighlight([`props`,...t])?.index}}}function p(e){let t=l(),n=()=>f(t??e().step);return{at:e=>n().at(e),highlight:e=>n().highlight(e)}}export{d as n,p as t};
@@ -1 +0,0 @@
1
- .tx-deck-layout.svelte-rkvh0{--tx-deck-type-display:clamp(56px, 7.5cqi, 112px);--tx-deck-type-stat:clamp(96px, 15cqi, 220px);--tx-deck-type-title:clamp(40px, 4.2cqi, 60px);--tx-deck-type-quote:clamp(36px, 4.4cqi, 60px);--tx-deck-type-lead:clamp(28px, 2.6cqi, 36px);--tx-deck-type-body:clamp(24px, 2.1cqi, 28px);--tx-deck-type-label:clamp(18px, 1.5cqi, 20px);--tx-deck-accent:var(--tx-primary,currentColor);--tx-deck-layout-pad-block:clamp(40px, 6cqi, 80px);--tx-deck-layout-pad-inline:clamp(40px, 7cqi, 96px);--tx-deck-layout-gap:clamp(20px, 2.6cqi, 36px);--tx-deck-panel:color-mix(in oklch, currentColor 7%, transparent);--tx-deck-panel-border:color-mix(in oklch, currentColor 18%, transparent);--tx-deck-layout-radius:var(--tx-deck-radius,.625rem);color:inherit;font-family:var(--tx-font-sans,inherit);position:absolute;inset:0;overflow:hidden;container-type:size}.tx-deck-layout__body.svelte-rkvh0{box-sizing:border-box;gap:var(--tx-deck-layout-gap);block-size:100%;inline-size:100%;min-inline-size:0;padding-block:var(--tx-deck-layout-pad-block);padding-inline:var(--tx-deck-layout-pad-inline);flex-direction:column;display:flex;position:relative}.tx-deck-layout[data-tx-deck-bleed=edge].svelte-rkvh0 .tx-deck-layout__body:where(.svelte-rkvh0){padding:0}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__display,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__title,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__quote,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__stat{font-family:var(--tx-font-heading,var(--tx-font-sans,inherit));text-wrap:balance;overflow-wrap:anywhere;margin:0}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__display{font-size:var(--tx-deck-type-display);letter-spacing:-.03em;font-weight:700;line-height:1.04}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__title{font-size:var(--tx-deck-type-title);letter-spacing:-.02em;font-weight:700;line-height:1.1}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__quote{font-size:var(--tx-deck-type-quote);letter-spacing:-.01em;font-weight:600;line-height:1.2}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__stat{font-size:var(--tx-deck-type-stat);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-weight:800;line-height:.92}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__lead{font-size:var(--tx-deck-type-lead);margin:0;line-height:1.3}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__text{font-size:var(--tx-deck-type-body);overflow-wrap:anywhere;margin:0;line-height:1.4}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__label{font-size:var(--tx-deck-type-label);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:600;line-height:1.25}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__caption{font-size:var(--tx-deck-type-label);margin:0;line-height:1.35}.tx-deck-layout.svelte-rkvh0 [data-clamp]{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tx-deck-layout.svelte-rkvh0 [data-clamp="1"]{-webkit-line-clamp:1;line-clamp:1}.tx-deck-layout.svelte-rkvh0 [data-clamp="2"]{-webkit-line-clamp:2;line-clamp:2}.tx-deck-layout.svelte-rkvh0 [data-clamp="3"]{-webkit-line-clamp:3;line-clamp:3}.tx-deck-layout.svelte-rkvh0 [data-clamp="5"]{-webkit-line-clamp:5;line-clamp:5}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__accent{background:var(--tx-deck-accent);border-radius:999px;flex:none;block-size:clamp(6px,.7cqi,10px);inline-size:clamp(64px,8cqi,112px);display:block}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__panel{box-sizing:border-box;border:1px solid var(--tx-deck-panel-border);border-radius:calc(var(--tx-deck-layout-radius) * 1.6);background:var(--tx-deck-panel);min-inline-size:0;padding:clamp(20px,2.6cqi,36px)}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media{border-radius:calc(var(--tx-deck-layout-radius) * 1.6);background:var(--tx-deck-panel);min-block-size:0;min-inline-size:0;position:relative;overflow:hidden}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media .tx-image,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media img,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media video{border-radius:0;block-size:100%;inline-size:100%;max-inline-size:none;display:block}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media img,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media video{object-fit:cover}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media[data-fit=contain] img,.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__media[data-fit=contain] video{object-fit:contain}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__refused{box-sizing:border-box;border:2px dashed var(--tx-deck-panel-border);border-radius:inherit;block-size:100%;inline-size:100%;font-size:var(--tx-deck-type-label);text-align:center;place-items:center;margin:0;padding:24px;display:grid}@media (forced-colors:active){.tx-deck-layout.svelte-rkvh0 [data-tx-deck-decor]{display:none}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__accent{background:canvastext}.tx-deck-layout.svelte-rkvh0 .tx-deck-layout__panel{background:canvas;border-color:canvastext}}
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./style-presets-CzynjwRw.js","./style-presets-NvFQjCjA.js","./fonts-CyzGCo-s.js","./StaleWorldNotice-B7m6HyVU.js","./index-client-BOGsOwg5.js","./disclose-version-xihTtKlq.js","./Button-CYExAoxT.js","./safe-href-Ca6kZWby.js","./trust-DZxM74pz.js","./cx-BNZ52w-j.js","./variants-CqLUuoxu.js","./design-defaults-DW6_LbVN.js","./Button-5BamLyf0.css","./messages-BQTlK_mM.js","./Icon-6iVpsw1O.js","./MessageText-j9J6kCwr.js","./library-X49Tko4M.js","./rolldown-runtime-XKyaHtl9.js","./ids-BFXF9Z_4.js","./registry-exXUF-5L.js","./preload-helper-CRzLMJPS.js","./from-texuli-F7aPl70I.js","./theme-gO6KESO1.js","./schemas-Cd-wWAs4.js","./registry-BZiqneBm.js","./metadata-BpPlGhv5.js","./records-uXFbdI0w.js","./types-B0IEHQCD.js","./mount-B54S61Ta.js","./LucideIcon-BLXM0Ftv.js","./Icon-CzgWZ-Sj.js","./Icon-CxE9sx-Y.css","./message-square-x7OYMgev.js","./Icon-B2CYXdo3.js","./panel-state.svelte-C2lUNfn2.js","./src-DthoX0U1.js","./devices-B2GmUWdq.js","./environment-qEbacsJ-.js","./random--LplQdQC.js","./manifest-0Q1tYlhS.js","./storage-Bxp2oaxI.js","./prototype-BEkp3Df8.js","./apply-CT-2ixg7.js","./contrast-s6qwb-S-.js","./presets-yYeapXmM.js","./apply-CvJWBke_.js","./validate-6AAyBgB0.js","./types-BiUdY2U5.js","./semantic-BZOGW1yM.js","./durations-DOq5QZxl.js","./texuli-27exlwkX.js","./dexie-DCNEq46v.js","./names-_PDy7Bq8.js","./scenario-DfCy7uDa.js","./Avatar-XwYTvfOl.js","./safe-image-src-DQWk9Hmw.js","./safe-image-srcset-CV9HT60O.js","./context-DJ4ajOGM.js","./child-BNsqGBSq.js","./state-Di2Pzrl0.js","./Avatar-B328P5yQ.css","./no-flash-Dj4XzHOU.js","./FileInput-Be-fNVHQ.js","./seed-C9w8QDA_.js","./oklch-DhPyiYB2.js","./FileUpload-Bc23jR9k.js","./i18n-C1FxoBbJ.js","./use-messages-CMG1vOXg.js","./index-client-x7oDvRVJ.js","./events-BZIKUW6N.js","./use-messages-BqadSYrT.js","./handlers-CkNHDF5y.js","./control-props-OVgLyhvo.js","./FileUpload-CUDnO_wv.css","./SelectValue-Cn6C_Jw7.js","./handlers-ByGe01Fz.js","./core-X3vERPZ1.js","./env-guq4m6_s.js","./presence-zf-tyTu4.js","./typeahead-BP48qCAc.js","./keys-P79j73dU.js","./position-floating-DVYNUqB9.js","./form-bridge-BFV-h8qv.js","./SelectValue-Nfj3YFHu.css","./Badge-B9mnZVCl.js","./variants-C-9Fb7C7.js","./variants-CHGzXb-Y.css","./Textarea-DMvNCflX.js","./Input-D3Bgj1Zz.js","./Input-B5IDQk3l.css","./Checkbox-TnscN5Ty.js","./variants-BSgG2nVA.js","./variants-BoB1dKDA.css","./RadioGroup-w1hFC0p4.js","./radio-group-DGPBxyW6.js","./roving-CztmB2zQ.js","./dir-locale-Bp4_WmZL.js","./Switch-CUXRVOl-.js","./Alert-7hPBdjVV.js","./AlertSurface-BCxhaD8C.js","./AlertSurface-BDie0P7w.css","./users-Bh5Rc6T0.js","./copy-CdPoo-W-.js","./upload-Bm4b-FQV.js","./palette-DU0H4nZe.js","./presentation-D-6oDXkX.js","./refresh-cw-zx0DS0qE.js","./share-2-C2TxFOjz.js","./Slider-BrVPdB-w.js","./Slider-D5WUpT4E.css","./Segmented-BFxRPNuU.js","./Card-DnZFo53x.js","./Card-DkeUHZOp.css","./Spinner-BoiMf0zZ.js","./variants-DOyT6BC2.js","./variants-CjnNSDuw.css","./src-BFXdMRyG.css","./avatars-CA9KfGtD.js","./session-Qh0_5nJW.js"])))=>i.map(i=>d[i]);
2
- import{a as e,i as t,n}from"./src-Bpgs1rH6.js";import{a as r,c as i,i as a,s as o}from"./devices-B2GmUWdq.js";import{r as s}from"./random--LplQdQC.js";import{o as c,t as l}from"./environment-qEbacsJ-.js";import{c as u,f as d,i as f,l as p,r as m}from"./manifest-0Q1tYlhS.js";import{o as h,r as g}from"./theme-gO6KESO1.js";import{a as _,c as v,i as y,l as b,o as x,r as S,t as C,u as w}from"./storage-Bxp2oaxI.js";import{t as T}from"./prototype-BEkp3Df8.js";import{i as E,n as D,r as O,t as ee}from"./runtime-A0jTJCh8.js";import{i as te,o as k,r as ne}from"./scenario-DfCy7uDa.js";import{i as re,l as ie,n as ae,o as oe,r as se,s as ce,t as le}from"./session-Qh0_5nJW.js";import{n as ue,t as de}from"./validation-CMBKmHTL.js";import{t as fe}from"./preload-helper-CRzLMJPS.js";import{t as pe}from"./presets-yYeapXmM.js";import{a as me,o as he,t as ge}from"./apply-CT-2ixg7.js";import{n as _e,t as ve}from"./no-flash-Dj4XzHOU.js";import{$ as ye,B as A,C as be,D as xe,F as j,I as Se,M,N as Ce,O as we,Ot as Te,P as Ee,Q as De,S as Oe,Tt as N,U as ke,V as P,W as Ae,Z as F,_t as je,a as Me,at as I,bt as L,ct as Ne,et as R,f as Pe,h as Fe,i as Ie,it as z,k as Le,l as B,lt as V,mt as H,n as Re,nt as ze,ot as U,p as Be,r as W,s as Ve,st as G,t as He,tt as K,ut as q,wt as Ue,x as We,xt as Ge,yt as J,z as Y}from"./index-client-BOGsOwg5.js";import"./disclose-version-xihTtKlq.js";import{t as Ke}from"./cx-BNZ52w-j.js";import{t as qe}from"./variants-CqLUuoxu.js";import{t as Je}from"./use-messages-CMG1vOXg.js";import{t as X}from"./Button-CYExAoxT.js";import{t as Ye}from"./env-guq4m6_s.js";import{n as Xe,t as Ze}from"./handlers-ByGe01Fz.js";import{t as Qe}from"./use-messages-BqadSYrT.js";import{t as $e}from"./state-Di2Pzrl0.js";import{_ as et,h as tt,i as nt,n as rt,o as it}from"./seam-BuX-L7O-.js";import{t as at}from"./handlers-CkNHDF5y.js";import{n as ot}from"./inert-CX0JFWuY.js";import{r as st,t as ct}from"./backdrop-Be1Do1pV.js";import{n as lt,t as ut}from"./use-overlay-portal.svelte-DDHakN83.js";import{t as dt}from"./Checkbox-TnscN5Ty.js";import{t as ft}from"./Progress-DW5KkCUF.js";import{t as pt}from"./announcer-C9Q-PqE3.js";import{n as mt,r as ht,t as gt}from"./toast-store-DLJO-Udw.js";import{n as _t}from"./motion-BHsSl-4E.js";import{t as vt}from"./dexie-DCNEq46v.js";import{i as yt,r as bt}from"./context-mgza7i31.js";import{o as xt,r as St}from"./bindings.svelte-CtFtf-Gl.js";import{i as Ct,n as wt,t as Tt}from"./messages-BQTlK_mM.js";import{c as Et}from"./names-_PDy7Bq8.js";import{t as Dt}from"./Icon-6iVpsw1O.js";import{t as Ot}from"./MessageText-j9J6kCwr.js";import{a as kt,i as At,n as jt,o as Mt,r as Nt,s as Pt,t as Ft}from"./registry-DiNy1R7M.js";function It(e={}){let t=e.onError??(e=>{console.error(`[protoyard/pending]`,e)}),n=[],r=1,i=new Set,a=()=>{for(let e of[...i])try{e(n)}catch(e){t(e)}},o=e=>{let t={id:r++,kind:e.kind??`other`,label:e.label};n=[...n,t],a();let i=!1;return()=>{i||(i=!0,n=n.filter(e=>e.id!==t.id),a())}};return{list:()=>n,count:()=>n.length,begin:o,async track(e,t){let n=o(e);try{return await t()}finally{n()}},subscribe(e){return i.add(e),()=>{i.delete(e)}}}}var Lt=new Set([`__proto__`,`constructor`,`prototype`]);function Rt(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function zt(e,...t){let n=Rt(e)?{...e}:e;for(let e of t){if(e===void 0)continue;if(!Rt(n)||!Rt(e)){n=Rt(e)?zt({},e):e;continue}let t={...n};for(let[n,r]of Object.entries(e)){if(r===void 0||Lt.has(n))continue;let e=t[n];t[n]=Rt(e)&&Rt(r)?zt(e,r):r}n=t}return n}var Bt=class extends Error{constructor(e){super(e),this.name=`ScenarioDefinitionError`}};function Vt(e,t){return`Scenario "${e}" is invalid:\n${t.issues.map(e=>` • ${e.path.map(String).join(`.`)||`root`}: ${e.message}`).join(`
3
- `)}`}function Ht(e){let t=te.safeParse(e);if(!t.success)throw new Bt(Vt(Rt(e)&&typeof e.id==`string`?e.id:`(no id)`,t.error));return t.data}function Ut(e,t={}){let n=new Map;for(let t of e){let e=t.id;if(typeof e!=`string`||e.length===0)throw new Bt(`Every scenario needs a string "id".`);if(n.has(e))throw new Bt(`Duplicate scenario id "${e}".`);n.set(e,t)}let r=(e,i,a)=>{let o=e.extends;if(!o)return e;let s=e.id??`(anonymous)`,c=!a&&o!==s?n.get(o):void 0,l=c??t[o];if(!l)throw new Bt(`Scenario "${s}" extends unknown scenario or preset "${o}".`);let u=`${c?`own`:`preset`}:${o}`;if(i.includes(u))throw new Bt(`Scenario "extends" cycle: ${[...i,u].map(e=>e.slice(e.indexOf(`:`)+1)).join(` → `)}.`);let{extends:d,...f}=r(l,[...i,u],!c);return zt({},f,e)};return e.map(e=>Ht(r(e,[`own:${e.id}`],!1)))}var Wt={py_organizations:e=>e.organizations,py_personas:e=>e.personas,py_memberships:e=>e.memberships,py_events:e=>e.events??[]};function Gt(e,t){let n=Wt[t];return n?n(e):e.tables?.[t]}function Kt(e){if(e instanceof Date)return e.getTime();if(typeof e==`string`||typeof e==`number`){let t=typeof e==`number`?e:Date.parse(e);return Number.isNaN(t)?void 0:t}}function qt(e,t={}){let n=[],r=t.referenceTime?Date.parse(t.referenceTime):void 0,i=(e,t,r,i)=>{n.push({table:e,rowId:typeof t.id==`string`?t.id:String(t.id),...i?{field:i}:{},message:r})},a=new Map,o=[...Object.keys(Wt),...Object.keys(e.tables??{})];for(let t of o){let n=new Set;for(let r of Gt(e,t)??[])typeof r.id!=`string`||r.id.length===0?i(t,r,`row has no string "id"`,`id`):(n.has(r.id)&&i(t,r,`duplicate id "${r.id}"`,`id`),n.add(r.id));a.set(t,n)}let s=new Map;for(let t of e.organizations){let e=Kt(t.createdAt);e===void 0?i(`py_organizations`,t,`createdAt is not a date`,`createdAt`):(s.set(t.id,e),r!==void 0&&e>r&&i(`py_organizations`,t,`organization is created after the reference time`,`createdAt`))}let c=s.size?Math.min(...s.values()):void 0;for(let t of e.personas){let e=Kt(t.joinedAt);e===void 0?i(`py_personas`,t,`joinedAt is not a date`,`joinedAt`):r!==void 0&&e>r&&i(`py_personas`,t,`persona joins after the reference time`,`joinedAt`)}let l=a.get(`py_personas`)??new Set,u=a.get(`py_organizations`)??new Set;for(let t of e.memberships){l.has(t.personaId)||i(`py_memberships`,t,`unknown persona "${t.personaId}"`,`personaId`),u.has(t.organizationId)||i(`py_memberships`,t,`unknown organization "${t.organizationId}"`,`organizationId`);let e=Kt(t.joinedAt),n=s.get(t.organizationId);e!==void 0&&n!==void 0&&e<n&&i(`py_memberships`,t,`member joined before the organization existed`,`joinedAt`)}for(let[r,o]of Object.entries(t.relations??{})){let t=Gt(e,r);if(t)for(let[e,s]of Object.entries(o)){let o=a.get(s);if(!o)n.push({table:r,rowId:`*`,field:e,message:`relation target table "${s}" is not in the seed`});else for(let n of t){let t=n[e];if(t==null)continue;let a=Array.isArray(t)?t:[t];for(let t of a)(typeof t!=`string`||!o.has(t))&&i(r,n,`${e} → "${String(t)}" does not exist in ${s}`,e)}}}for(let[n,a]of Object.entries(t.timestamps??{}))for(let t of Gt(e,n)??[]){let e=typeof t.organizationId==`string`?t.organizationId:void 0,o=(e?s.get(e):void 0)??c;for(let e of a){let a=t[e];if(a==null)continue;let s=Kt(a);s===void 0?i(n,t,`${e} is not a date`,e):(r!==void 0&&s>r&&i(n,t,`${e} is after the reference time`,e),o!==void 0&&s<o&&i(n,t,`${e} is before the organization was created`,e))}}return n}var Jt=class extends Error{scenarioId;violations;constructor(e,t){let n=t.slice(0,10).map(e=>` • ${e.table}#${e.rowId}${e.field?`.${e.field}`:``}: ${e.message}`).join(`
4
- `),r=t.length>10?`\n …and ${t.length-10} more`:``;super(`Generator for scenario "${e}" produced ${t.length} integrity violation(s):\n${n}${r}`),this.name=`WorldIntegrityError`,this.scenarioId=e,this.violations=t}},Yt=`2026-03-02T09:00:00.000Z`,Xt=20260302,Z={density:e=>({density:e}),activity:e=>({activity:{level:e}}),role:e=>({actor:{role:e}}),tenure:e=>({actor:{joinedDaysAgo:e}}),organizationAge:e=>({organization:{ageDays:e}}),organizationSize:e=>({organization:{size:e}}),accountAge:e=>({organization:{ageDays:e},actor:{joinedDaysAgo:e}}),onboarding:e=>({actor:{onboardingComplete:e>=1,onboardingProgress:e}}),subscription:e=>({organization:{subscription:e}}),network:(e,t=0)=>({environment:{network:e,latencyMs:t}}),featureFlags:e=>({organization:{featureFlags:e}}),appearance:e=>({appearance:e}),tags:(...e)=>({tags:e}),history:e=>({organization:{ageDays:e},generators:{series:{historyDays:e}}}),seasonality:e=>({generators:{series:{seasonality:e}}}),spike:(e,t,n=3)=>({generators:{series:{spikes:[{daysAgo:e,factor:t,decayDays:n}]}}}),occupancy:e=>({generators:{schedule:{occupancy:e}}})},Zt=`org_0001`,Qt=`user_0001`;function $t(e,t,n,r,i,...a){let o=`journey-${e}`,s=zt({},{id:o,name:t,group:`Journeys`,description:n,seed:Xt,referenceTime:Yt,organization:{id:Zt},actor:{id:Qt,role:i.actor.role}},Z.organizationSize(i.people.min),Z.organizationAge(i.organizationAgeDays),Z.tenure(i.actor.tenureDays),Z.onboarding(+!!i.actor.onboardingComplete),...a,Z.tags(`journey`,e));return{stage:e,presetId:o,name:t,description:n,persona:r,time:{referenceTime:Yt,organizationAgeDays:i.organizationAgeDays,actorTenureDays:i.actor.tenureDays},scenario:s,expect:i}}var en=[$t(`signup`,`Journey: just signed up`,`The account was created a minute ago: one person, an empty workspace, onboarding not started.`,{role:`owner`,summary:`The person who just registered and owns the new workspace.`},{people:{min:1,max:1},actor:{role:`owner`,tenureDays:0,onboardingComplete:!1},organizationAgeDays:0,joinedBeforeActor:0},Z.density(`empty`),Z.activity(`none`)),$t(`invited`,`Journey: invited to a team`,`Accepted an invitation today into a team that has worked here for three months.`,{role:`member`,summary:`A new member who has not finished onboarding yet.`},{people:{min:6,max:6},actor:{role:`member`,tenureDays:0,onboardingComplete:!1},organizationAgeDays:90,joinedBeforeActor:1},Z.density(`normal`),Z.activity(`normal`)),$t(`first-week`,`Journey: first week`,`Seven days after signing up: onboarding done, a small team, the first real records.`,{role:`owner`,summary:`The owner, a week in, still learning the product.`},{people:{min:3,max:3},actor:{role:`owner`,tenureDays:7,onboardingComplete:!0},organizationAgeDays:7,joinedBeforeActor:0},Z.history(7),Z.density(`sparse`),Z.activity(`normal`)),$t(`established`,`Journey: established team`,`Three months of regular use by a team of eight, with a weekly rhythm in its history.`,{role:`owner`,summary:`The owner of a team that uses the product every week.`},{people:{min:8,max:8},actor:{role:`owner`,tenureDays:90,onboardingComplete:!0},organizationAgeDays:90,joinedBeforeActor:0},Z.history(90),Z.seasonality(`weekly`),Z.density(`normal`),Z.activity(`normal`))],tn=Object.fromEntries(en.map(e=>[e.presetId,e.scenario])),nn={seed:Xt,referenceTime:Yt};function Q(e,t,n,r,...i){return zt({},nn,{id:e,name:t,group:n,description:r},...i)}var rn={"brand-new-signup":Q(`brand-new-signup`,`Brand-new signup`,`Lifecycle`,`Signed up a minute ago: empty workspace, onboarding not started.`,Z.accountAge(0),Z.onboarding(0),Z.density(`empty`),Z.activity(`none`),Z.tags(`lifecycle`,`empty-state`)),"onboarding-in-progress":Q(`onboarding-in-progress`,`Onboarding halfway`,`Lifecycle`,`Started onboarding yesterday and stopped halfway through.`,Z.accountAge(1),Z.onboarding(.5),Z.density(`sparse`),Z.activity(`low`),Z.tags(`lifecycle`,`onboarding`)),"first-week":Q(`first-week`,`First week`,`Lifecycle`,`Seven days in: a few records, still learning the product.`,Z.accountAge(7),Z.organizationSize(3),Z.density(`sparse`),Z.activity(`normal`),Z.tags(`lifecycle`)),"active-month":Q(`active-month`,`Day-30 active user`,`Lifecycle`,`A month of regular use by a small team.`,Z.accountAge(30),Z.organizationSize(5),Z.density(`normal`),Z.activity(`normal`),Z.tags(`lifecycle`)),"six-month-new-member":Q(`six-month-new-member`,`New member in a 6-month-old team`,`Lifecycle`,`The organization has six months of history; the actor was invited today.`,Z.organizationAge(180),Z.organizationSize(12),Z.tenure(0),Z.role(`member`),Z.onboarding(0),Z.density(`normal`),Z.activity(`normal`),Z.tags(`lifecycle`,`invited`)),"power-user-year-one":Q(`power-user-year-one`,`Year-one power user`,`Lifecycle`,`A year of intense daily use: lots of data and history.`,Z.accountAge(365),Z.organizationSize(20),Z.density(`dense`),Z.activity(`intense`),Z.tags(`lifecycle`,`power-user`)),"dormant-account":Q(`dormant-account`,`Dormant account`,`Lifecycle`,`Active once, untouched for months: stale data everywhere.`,Z.accountAge(240),Z.organizationSize(4),Z.density(`sparse`),Z.activity(`dormant`),Z.tags(`lifecycle`,`stale`)),"read-only-viewer":Q(`read-only-viewer`,`Read-only viewer`,`Roles`,`Can see everything, change nothing.`,Z.organizationAge(60),Z.tenure(14),Z.organizationSize(8),Z.role(`viewer`),Z.tags(`roles`)),"workspace-admin":Q(`workspace-admin`,`Workspace admin`,`Roles`,`Manages people and settings, but not billing.`,Z.organizationAge(90),Z.tenure(60),Z.organizationSize(8),Z.role(`admin`),Z.tags(`roles`)),"workspace-owner":Q(`workspace-owner`,`Workspace owner`,`Roles`,`Created the workspace and can do everything, including billing.`,Z.accountAge(90),Z.organizationSize(8),Z.role(`owner`),Z.tags(`roles`)),"subscription-free":Q(`subscription-free`,`Free plan`,`Billing`,`On the free plan: paid features are locked.`,Z.accountAge(30),Z.subscription(`free`),Z.tags(`billing`)),"subscription-pro":Q(`subscription-pro`,`Pro plan`,`Billing`,`Paying customer with every paid feature unlocked.`,Z.accountAge(30),Z.subscription(`pro`),Z.tags(`billing`)),"subscription-expired":Q(`subscription-expired`,`Expired subscription`,`Billing`,`The paid plan lapsed: data is still there, upgrades are prompted.`,Z.accountAge(400),Z.subscription(`expired`),Z.activity(`low`),Z.tags(`billing`)),offline:Q(`offline`,`Offline`,`Conditions`,`No connection: services routed through the environment fail with an offline error.`,Z.accountAge(30),Z.network(`offline`),Z.tags(`conditions`,`network`)),"slow-network":Q(`slow-network`,`Slow network`,`Conditions`,`Every simulated request takes noticeably longer.`,Z.accountAge(30),Z.network(`slow`,400),Z.tags(`conditions`,`network`)),"large-organization":Q(`large-organization`,`Large organization`,`Scale`,`A 250-person organization with massive data volume.`,Z.accountAge(400),Z.organizationSize(250),Z.density(`massive`),Z.activity(`intense`),Z.subscription(`enterprise`),Z.tags(`scale`)),"quarter-of-history":Q(`quarter-of-history`,`Quarter of history`,`Data`,`Ninety days of steady use with a weekly rhythm: full charts and analytics.`,Z.accountAge(90),Z.history(90),Z.seasonality(`weekly`),Z.organizationSize(10),Z.density(`normal`),Z.activity(`normal`),Z.tags(`data`,`series`)),"launch-spike":Q(`launch-spike`,`Launch spike`,`Data`,`A launch three days ago multiplied traffic by five; it is still settling.`,Z.accountAge(45),Z.history(45),Z.seasonality(`weekly`),Z.spike(3,5,4),Z.organizationSize(10),Z.density(`dense`),Z.activity(`intense`),Z.tags(`data`,`series`,`spike`)),"busy-week":Q(`busy-week`,`Busy week`,`Data`,`Calendars are nearly full this week: few free slots, many conflicts to avoid.`,Z.accountAge(60),Z.history(60),Z.occupancy(.9),Z.organizationSize(12),Z.density(`dense`),Z.activity(`intense`),Z.tags(`data`,`schedule`)),...tn};Object.keys(rn);var an=`[data-py-bottom-nav], [data-tx-bottom-nav], [data-tx-mobile-tabs]`,on=Symbol(`texuli-toast-provider`),sn=Symbol(`texuli-toast-item`),cn=Symbol(`texuli-toast-viewport`);function ln(e){Ge(on,e)}function un(){let e=je(on);if(!e)throw Error(`Toast parts must be used inside Toast.Provider`);return e}function dn(e){Ge(sn,e)}function fn(){let e=je(sn);if(!e)throw Error(`Toast.Title/Description/Action/Close require Toast.Root`);return e}function pn(e){Ge(cn,e)}var mn=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`altText`,`children`,`onclick`,`type`,`ref`]),hn=P(`<button><!></button>`);function gn(e,t){L(t,!0);let n=W(t,`type`,3,`button`),r=W(t,`ref`,15,null),i=Ie(t,mn),a=fn();function o(e){t.onclick?.(e),e.defaultPrevented||a.dismiss()}var s=hn();Be(s,()=>({...i,type:n(),class:typeof t.class==`string`?t.class:void 0,"data-tx-toast-action":!0,"aria-label":t.altText,onclick:o}));var c=z(s);we(c,()=>t.children??Te),N(s),B(s,e=>r(e),()=>r()),Y(e,s),J()}var _n=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`children`,`onclick`,`type`,`ref`]),vn=P(`<button><!></button>`);function yn(e,t){L(t,!0);let n=W(t,`type`,3,`button`),r=W(t,`ref`,15,null),i=Ie(t,_n),a=Qe(),o=fn();function s(e){t.onclick?.(e),e.defaultPrevented||o.dismiss()}var c=vn();Be(c,e=>({...i,type:n(),class:typeof t.class==`string`?t.class:void 0,"data-tx-toast-close":!0,"aria-label":e,onclick:s}),[()=>i[`aria-label`]??a(`primitives.toast.close.dismiss-notification`,`Dismiss notification`)]);var l=z(c),u=e=>{var n=A(),r=I(n);we(r,()=>t.children),Y(e,n)},d=e=>{var t=Ae(`×`);Y(e,t)};M(l,e=>{t.children?e(u):e(d,-1)}),N(c),B(c,e=>r(e),()=>r()),Y(e,c),J()}var bn=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`children`,`ref`]),xn=P(`<div><!></div>`);function Sn(e,t){L(t,!0);let n=W(t,`ref`,15,null),r=Ie(t,bn),i=fn();var a=xn();Be(a,()=>({...r,class:typeof t.class==`string`?t.class:void 0,"data-tx-toast-description":!0}));var o=z(a),s=e=>{var n=A(),r=I(n);we(r,()=>t.children),Y(e,n)},c=e=>{var t=Ae();R(()=>j(t,i.toast.description)),Y(e,t)};M(o,e=>{t.children?e(s):e(c,-1)}),N(a),B(a,e=>n(e),()=>n()),Y(e,a),J()}function Cn(e,t){L(t,!0);let n=W(t,`label`,3,`Notifications`),r=W(t,`hotkey`,3,`F6`),i=ye(()=>t.manager)??ht(),a=new Set,o=!1,s=null;function c(){if(!o){o=!0;for(let e of a)e(!0)}}function l(){if(o){o=!1;for(let e of a)e(!1)}}let u={manager:i,get label(){return n()},get hotkey(){return r()},pauseAll:c,resumeAll:l,isPaused:()=>o,registerPauser(e){return a.add(e),e(o),()=>{a.delete(e)}},focusRegion(){s?.()},setFocusHandler(e){s=e}};ln(u);let d=0;K(()=>i.subscribe(e=>{let t=[...e].sort((e,t)=>t.createdAt-e.createdAt)[0];if(!(!t||t.createdAt<=d)){d=t.createdAt;try{let e=Ye(typeof document<`u`?document.body:null);if(!e)return;let n=pt(e),r=[t.title,t.description].filter(Boolean).join(`. `);if(!r)return;n.announce(r,{politeness:t.tone===`foreground`?`assertive`:`polite`,immediate:!0})}catch{}}})),K(()=>{let e=Ye(typeof document<`u`?document.body:null);if(!e)return;let t=r(),n=e=>{(e.key===t||e.code===t)&&(t!==`F6`||e.key===`F6`)&&(e.defaultPrevented||(e.preventDefault(),u.focusRegion()))};return e.addEventListener(`keydown`,n,!0),()=>e.removeEventListener(`keydown`,n,!0)}),He(()=>{a.clear(),s=null});var f=A(),p=I(f);we(p,()=>t.children??Te),Y(e,f),J()}var wn=new Set([`$$slots`,`$$events`,`$$legacy`,`toast`,`class`,`children`,`ref`,`onpointerdown`,`onpointermove`,`onpointerup`,`onpointercancel`]),Tn=P(`<li><!></li>`);function En(e,t){L(t,!0);let n=W(t,`ref`,15,null),r=Ie(t,wn),i=un(),a=q(null);K(()=>{n(F(a)??null)});let o=q(0),s=q(!1),c=q(!1);ze(()=>{F(s)||(V(o,t.toast.duration,!0),V(s,!0))});let l=0,u,d=0,f=!1,p=q(0);function m(){u!==void 0&&clearTimeout(u),u=void 0}function h(){m(),i.manager.dismiss(t.toast.id)}dn({get toast(){return t.toast},dismiss:h});function g(){m(),!(F(o)<=0||!Number.isFinite(F(o)))&&(i.isPaused()||(V(c,!0),l=Date.now(),u=setTimeout(()=>{u=void 0,V(c,!1),h()},F(o))))}function _(){F(c)&&(m(),V(o,Math.max(0,F(o)-(Date.now()-l)),!0),V(c,!1))}K(()=>{let e=i.registerPauser(e=>{e?_():g()});return g(),()=>{e(),m()}});function v(e){if(e.pointerType===`mouse`&&e.button!==0)return;let t=e.target;t instanceof Element&&t.closest(`button, a, input, textarea, select`)||(f=!0,d=e.clientX,V(p,0),F(a)?.setPointerCapture?.(e.pointerId),_())}function y(e){f&&(V(p,e.clientX-d),F(a)&&F(a).style.setProperty(`translate`,`${F(p)}px 0`))}function b(e){f&&(f=!1,F(a)?.releasePointerCapture?.(e.pointerId),Math.abs(F(p))>64?h():(V(p,0),F(a)&&F(a).style.removeProperty(`translate`),i.isPaused()||g()))}var x=Tn();Be(x,(e,n,i,a,o)=>({...r,class:typeof t.class==`string`?t.class:void 0,"data-tx-toast-root":!0,"data-toast-id":t.toast.id,"data-priority":t.toast.priority,"data-tone":t.toast.tone,...e,onpointerdown:n,onpointermove:i,onpointerup:a,onpointercancel:o}),[()=>$e(`open`),()=>Xe(t.onpointerdown,v),()=>Ze(t.onpointermove,y),()=>Ze(t.onpointerup,b),()=>Ze(t.onpointercancel,b)]);var S=z(x);we(S,()=>t.children??Te),N(x),B(x,e=>V(a,e),()=>F(a)),Y(e,x),J()}var Dn=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`children`,`ref`]),On=P(`<div><!></div>`);function kn(e,t){L(t,!0);let n=W(t,`ref`,15,null),r=Ie(t,Dn),i=fn();var a=On();Be(a,()=>({...r,class:typeof t.class==`string`?t.class:void 0,"data-tx-toast-title":!0}));var o=z(a),s=e=>{var n=A(),r=I(n);we(r,()=>t.children),Y(e,n)},c=e=>{var t=Ae();R(()=>j(t,i.toast.title)),Y(e,t)};M(o,e=>{t.children?e(s):e(c,-1)}),N(a),B(a,e=>n(e),()=>n()),Y(e,a),J()}var An=new Set([`$$slots`,`$$events`,`$$legacy`,`class`,`hotkeyLabel`,`children`,`mode`,`container`,`positioned`,`active`,`ref`,`onpointerenter`,`onpointerleave`,`onfocusin`,`onfocusout`]),jn=P(`<span data-tx-toast-hotkey-hint="" class="tx-toast-hotkey-hint"> </span>`),Mn=P(`<section><!> <!></section>`);function Nn(e,t){L(t,!0);let n=W(t,`mode`,3,`top-layer`),r=W(t,`container`,3,null),i=W(t,`positioned`,3,!1),a=W(t,`active`,3,!0),o=W(t,`ref`,15,null),s=Ie(t,An),c=un(),l=q(null);K(()=>{o(F(l)??null)}),pn({element:()=>F(l)}),K(()=>{let e=F(l);if(!e)return;let t=null;try{t=ot().exempt({element:e,label:`toast-region`})}catch{t=null}return c.setFocusHandler(()=>{e.querySelector(`button:not([disabled]), [href], input:not([disabled]), [tabindex]:not([tabindex="-1"])`)?.focus()}),()=>{c.setFocusHandler(null),t?.release()}}),K(()=>{let e=F(l),t=r();if(!e||n()!==`contained`||!t)return;let a=st(e,{target:t}),o=()=>{},s=()=>{};if(!i()){let e=t.ownerDocument.defaultView,n=()=>{s=()=>{},o=ct(t)};if(e&&typeof e.requestAnimationFrame==`function`){let t=e.requestAnimationFrame(n);s=()=>e.cancelAnimationFrame(t)}else{let e=setTimeout(n,0);s=()=>clearTimeout(e)}}return()=>{s(),a.destroy(),o()}}),K(()=>{let e=F(l);if(!e||n()!==`top-layer`||!a())return;try{typeof e.showPopover==`function`&&!e.matches(`:popover-open`)&&e.showPopover()}catch{}let t=e.ownerDocument,r=t=>{let n=t.target;if(n!==e&&n instanceof Element&&!n.hasAttribute(`data-tx-toast-viewport`)&&t.newState===`open`)try{if(!e.matches(`:popover-open`))return;e.hidePopover(),e.showPopover()}catch{}};return t.addEventListener(`toggle`,r,!0),()=>{t.removeEventListener(`toggle`,r,!0);try{typeof e.hidePopover==`function`&&e.matches(`:popover-open`)&&e.hidePopover()}catch{}}});function u(){c.pauseAll()}function d(e){let t=F(l),n=e.relatedTarget;t&&n instanceof Node&&t.contains(n)||c.resumeAll()}function f(){c.pauseAll()}function p(e){let t=F(l),n=e.relatedTarget;t&&n instanceof Node&&t.contains(n)||c.resumeAll()}var m=Mn();Be(m,(e,r,i,a,o)=>({...s,class:typeof t.class==`string`?t.class:void 0,popover:n()===`top-layer`?`manual`:void 0,"data-mode":n(),role:`region`,"aria-label":c.label,"data-tx-toast-viewport":!0,"data-state":e,tabindex:`-1`,onpointerenter:r,onpointerleave:i,onfocusin:a,onfocusout:o}),[()=>c.manager.list().length>0?`visible`:`empty`,()=>Ze(t.onpointerenter,u),()=>Ze(t.onpointerleave,d),()=>Ze(t.onfocusin,f),()=>Ze(t.onfocusout,p)]);var h=z(m),g=e=>{var n=jn(),r=U(n,!0);R(()=>j(r,t.hotkeyLabel)),Y(e,n)};M(h,e=>{t.hotkeyLabel&&e(g)});var _=G(h,2);we(_,()=>t.children??Te),N(m),B(m,e=>V(l,e),()=>F(l)),Y(e,m),J()}var Pn=qe({base:`tx-toast`,variants:{kind:{success:`tx-toast--success`,error:`tx-toast--error`,info:`tx-toast--info`,warning:`tx-toast--warning`}},defaultVariants:{kind:`info`}}),Fn=qe({base:`tx-toaster`,variants:{},defaultVariants:{}}),In=new Set([`$$slots`,`$$events`,`$$legacy`,`label`,`position`,`offset`,`store`,`dismissLabel`,`class`,`mode`,`container`,`positioned`,`onpointerenter`,`onpointerleave`,`onfocusin`,`onfocusout`,`motion`,`ref`]),Ln=P(`<p class="tx-toast__error" role="alert"> </p>`),Rn=P(`<span aria-hidden="true">×</span>`),zn=P(`<span class="tx-toast__icon" aria-hidden="true"> </span> <div class="tx-toast__body"><!> <!> <!> <!></div> <!>`,1),Bn=P(`<ol class="tx-toaster__list" data-tx-toast-list=""></ol>`),Vn=P(`<div><!></div>`);function Hn(e,t){let n=ke();L(t,!0);let r=W(t,`position`,3,`bottom-end`),i=W(t,`mode`,3,`top-layer`),a=W(t,`container`,3,null),o=W(t,`positioned`,3,!1),s=W(t,`ref`,15,null),c=Ie(t,In),l=Je(),u=H(()=>t.label??l(`texuli.toaster.label`,`Notifications`)),d=H(()=>t.dismissLabel??l(`texuli.toaster.dismiss-label`,`Dismiss notification`)),f=ye(()=>t.store)??gt(),p=`toaster:${n}`,m=!1,h=!1;function g(){m||h?f.pause(p):f.resume(p)}function _(){m=!0,g()}function v(){m=!1,g()}function y(){h=!0,g()}function b(e){let t=e.currentTarget,n=e.relatedTarget;t instanceof Node&&n instanceof Node&&t.contains(n)||(h=!1,g())}let x={enter:`rise`,exit:`fade`,layout:!0,duration:`base`},S=q(Ne(f.items().map(e=>({item:e,leaving:!1})))),C=new Map,w=q(null),T=et(),E=nt({motion:()=>t.motion,defaults:x}),D=rt({motion:()=>t.motion,defaults:x,items:()=>Array.from(F(w)?.querySelectorAll(`:scope > [data-toast-id]`)??[],e=>[e.getAttribute(`data-toast-id`)??``,e]),enter:()=>tt(t.motion,x).enter===!1?!1:r().startsWith(`top`)?`block-start`:`block-end`});function O(){return typeof T.reducedMotion==`boolean`?T.reducedMotion:typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}function ee(){return!O()&&T.level!==`none`&&tt(t.motion,x).exit!==!1}function te(e){let t=C.get(e);t!==void 0&&clearTimeout(t),C.delete(e),V(S,F(S).filter(t=>!(t.leaving&&t.item.id===e)),!0)}function k(e){it().then(()=>{if(!C.has(e))return;let t=F(w)?.querySelector(`:scope > [data-toast-id="${CSS.escape(e)}"]`),n=t?E.exit(t):null;n?n.finished.then(()=>{C.has(e)&&te(e)}):te(e)})}function ne(e){let t=new Set(e.map(e=>e.id)),n=e.map(e=>({item:e,leaving:!1})),r=[];ee()&&F(S).forEach((e,i)=>{if(!t.has(e.item.id)&&(n.splice(Math.min(i,n.length),0,{item:e.item,leaving:!0}),!C.has(e.item.id))){let t=e.item.id;C.set(t,setTimeout(()=>te(t),1200)),r.push(t)}});for(let e of n){if(e.leaving)continue;let t=C.get(e.item.id);t!==void 0&&(clearTimeout(t),C.delete(e.item.id))}V(S,n,!0);for(let e of r)k(e);n.length===0&&(m||h)&&(m=!1,h=!1,g())}K(()=>{let e=f.subscribe(e=>ye(()=>ne(e)));return()=>{e(),f.resume(p);for(let e of C.values())clearTimeout(e);C.clear()}}),ze(()=>{F(S),ye(()=>D.measure())}),K(()=>{F(S),ye(()=>D.play())});let re=H(()=>t.offset===void 0?void 0:typeof t.offset==`number`?`${t.offset}px`:t.offset),ie=H(()=>Ke(Fn(),t.class)),ae={success:`✓`,error:`!`,info:`i`,warning:`!`};function oe(e){f.action(e.id)}Cn(e,{get manager(){return f.manager},get label(){return F(u)},children:(e,n)=>{var l=Vn();Be(l,(e,t,n,r)=>({...c,class:F(ie),"data-tx-toaster":``,onpointerenter:e,onpointerleave:t,onfocusin:n,onfocusout:r,[Pe]:{"--tx-toast-offset":F(re)}}),[()=>at(t.onpointerenter,_),()=>at(t.onpointerleave,v),()=>at(t.onfocusin,y),()=>at(t.onfocusout,b)]);var u=z(l);{let e=H(()=>F(S).length>0);Nn(u,{class:`tx-toaster__viewport`,get"data-position"(){return r()},get mode(){return i()},get container(){return a()},get positioned(){return o()},get active(){return F(e)},children:(e,t)=>{var n=A(),r=I(n),i=e=>{var t=Bn();Le(t,21,()=>F(S),({item:e,leaving:t})=>e.id,(e,t)=>{let n=()=>F(t).item,r=()=>F(t).leaving;{let t=H(()=>({id:n().id,title:n().title,description:n().description??``,duration:0,priority:n().priority,tone:n().tone,createdAt:n().createdAt})),i=H(()=>Pn({kind:n().kind})),a=H(()=>n().pending?`true`:void 0),o=H(()=>n().error?`true`:void 0),s=H(()=>r()?`true`:void 0),c=H(()=>r()?`true`:void 0);En(e,{get toast(){return F(t)},get class(){return F(i)},get"data-kind"(){return n().kind},get"data-pending"(){return F(a)},get"data-error"(){return F(o)},get"data-leaving"(){return F(s)},get"aria-hidden"(){return F(c)},get inert(){return r()},children:(e,t)=>{var r=zn(),i=I(r),a=U(i,!0),o=G(i,2),s=z(o);kn(s,{class:`tx-toast__title`});var c=G(s,2),l=e=>{Sn(e,{class:`tx-toast__description`})};M(c,e=>{n().description&&e(l)});var u=G(c,2),f=e=>{var t=Ln(),r=U(t,!0);R(()=>j(r,n().error)),Y(e,t)};M(u,e=>{n().error&&e(f)});var p=G(u,2),m=e=>{gn(e,{class:`tx-toast__action`,onclick:e=>{e.preventDefault(),oe(n())},children:(e,t)=>{Ue();var r=Ae();R(()=>j(r,n().action.label)),Y(e,r)},$$slots:{default:!0}})};M(p,e=>{n().action&&e(m)}),N(o);var h=G(o,2);{let e=H(()=>`${F(d)}: ${n().title}`);yn(h,{class:`tx-toast__close`,get"aria-label"(){return F(e)},children:(e,t)=>{var n=Rn();Y(e,n)},$$slots:{default:!0}})}R(()=>j(a,ae[n().kind])),Y(e,r)},$$slots:{default:!0}})}}),N(t),B(t,e=>V(w,e),()=>F(w)),Y(e,t)};M(r,e=>{F(S).length>0&&e(i)}),Y(e,n)},$$slots:{default:!0}})}N(l),B(l,e=>s(e),()=>s()),Y(e,l)},$$slots:{default:!0}}),J()}var Un=new Set([`$$slots`,`$$events`,`$$legacy`,`ref`]);function Wn(e,t){L(t,!0);let n=W(t,`ref`,15,null),r=Ie(t,Un),i=ut(),a=H(()=>i.mode===`contained`&&t.container===void 0);Hn(e,Me({get mode(){return i.mode},get container(){return i.container},get positioned(){return F(a)}},()=>r,{get ref(){return n()},set ref(e){n(e)}})),J()}function Gn(e){let t={};for(let n of g){let r=e[n]?.value;r&&(t[n]=r)}return Object.keys(t).length?t:null}function Kn(e,t,n=document.documentElement){let r=e.manifest.storage.namespace,i,a=!1,o=!1,s=()=>{let c=e.theme.appearance(),l=e.theme.themes(),u=me(c.theme.value,l.length?l:t),d=Gn(c);if(d&&i===void 0){a||(a=!0,fe(()=>import(`./style-presets-CzynjwRw.js`).then(e=>{i=e},e=>{console.error(`[protoyard/renderer]`,e),i=null}),__vite__mapDeps([0,1,2]),import.meta.url).then(()=>{o||s()}));return}if(d&&i)try{u=i.styledTheme(u,d)}catch(e){console.error(`[protoyard/renderer]`,e)}let f=ge(n,{theme:u,resolvedMode:c.resolvedMode,reducedMotion:c.reducedMotion.value,...c.density?{density:c.density.value}:{}}),p=c.viewport.value;p===`desktop`||p===`custom`?delete n.dataset.pyViewport:n.dataset.pyViewport=p,ve(r,f)};_([n]),s();let c=e.theme.subscribe(()=>{s()});return()=>{o=!0,c()}}var qn={id:`protoyard.player`,slug:`player`,version:`1.0.0`,namespace:`player`,builtAt:`2026-11-01T14:36:20.804Z`,mode:`build`,offline:!0,frameWhenEmbedded:!1},Jn=1e3;async function Yn(e){let t=e.allTables;try{return await e.transaction(`r`,[...t],async()=>{let n=[];for(let r of t)n.push({name:r,rows:await e.table(r).toArray()});return n})}catch(e){throw y(e)}}async function Xn(e,t,n={}){let r=new Set(n.knownTables??e.allTables),i=[],a=[],o=new Map;for(let n of t)r.has(n.name)&&e.hasTable(n.name)?o.set(n.name,[...o.get(n.name)??[],...n.rows]):a.push(n.name);let s=e.allTables.filter(e=>r.has(e));try{await e.transaction(`rw`,s,async()=>{for(let t of s){let n=e.table(t);await n.clear();let r=o.get(t);if(r?.length){for(let e=0;e<r.length;e+=Jn)await n.bulkAdd(r.slice(e,e+Jn));i.push(t)}}})}catch(e){throw y(e)}return{restored:i,skipped:a}}async function Zn(e){let t=e.allTables;try{return await e.transaction(`r`,[...t],async()=>{let n={};for(let r of t)n[r]=await e.table(r).count();return n})}catch(e){throw y(e)}}var Qn=class extends Error{code=`invalid-identity`;issues;constructor(e,t){super(`Invalid ${e}: ${Object.values(t).join(`; `)||`unknown error`}.`),this.name=`IdentityValidationError`,this.issues=t}},$n=[`py_personas`,`py_organizations`,`py_memberships`];function er(e,t,n){let r=t.safeParse(n);if(r.success)return r.data;let i={};for(let t of r.error.issues){let n=t.path.map(String).join(`.`)||e;i[n]??=t.message}throw new Qn(e,i)}function tr(e){let t=()=>e.clock.now().toISOString(),n=()=>e.db.table(`py_personas`),r=()=>e.db.table(`py_organizations`),i=()=>e.db.table(`py_memberships`),a={async putPersona(e){let r=er(`persona`,oe,{...e,id:e.id??s(`user`),joinedAt:e.joinedAt??t()});return await n().put(r),r},async putOrganization(e){let n=er(`organization`,se,{...e,id:e.id??s(`org`),createdAt:e.createdAt??t()});return await r().put(n),n},async putMembership(e){let a=er(`membership`,ae,{...e,id:e.id??s(`mem`),joinedAt:e.joinedAt??t()}),o={};if(await n().get(a.personaId)||(o.personaId=`Unknown persona "${a.personaId}"`),await r().get(a.organizationId)?(await i().where(`personaId`).equals(a.personaId).toArray()).some(e=>e.organizationId===a.organizationId&&e.id!==a.id)&&(o.organizationId=`This persona already belongs to that organization`):o.organizationId=`Unknown organization "${a.organizationId}"`,Object.keys(o).length)throw new Qn(`membership`,o);return await i().put(a),a},getPersona:e=>n().get(e),getOrganization:e=>r().get(e),getMembership:e=>i().get(e),listMemberships(e={}){return(e.personaId===void 0?e.organizationId===void 0?i().toCollection():i().where(`organizationId`).equals(e.organizationId):i().where(`personaId`).equals(e.personaId)).toArray().then(t=>t.filter(t=>(e.personaId===void 0||t.personaId===e.personaId)&&(e.organizationId===void 0||t.organizationId===e.organizationId)).sort((e,t)=>e.joinedAt.localeCompare(t.joinedAt)||e.id.localeCompare(t.id)))},removeMembership:e=>i().delete(e)};return{async write(t,n={}){let r=[...new Set([...$n,...n.tables??[]])];for(let t of r)if(!e.db.hasTable(t))throw Error(`Unknown table "${t}".`);let i=await e.db.transaction(`rw`,r,async()=>t(a));return await e.reloadIdentity(),e.refreshDerived(),i}}}function nr(e){let t=new Set;return{emit(n){for(let r of[...t])try{r(n)}catch(t){e(t)}},subscribe(e){return t.add(e),()=>{t.delete(e)}},clear:()=>t.clear()}}function rr(){let e=Promise.resolve();return function(t){let n=e.then(t,t);return e=n.catch(()=>void 0),n}}var ir=class extends Error{constructor(e){super(e),this.name=`InvalidOverrideError`}};function $(e,t){let n=ar(t);return e.overrides=n,e.refreshDerived(),e.events.overrides.emit(n),e.writeControl({overrides:Object.keys(n).length?n:null})}function ar(e){let t=b.safeParse(e);if(!t.success){let e=t.error.issues[0];throw new ir(`Invalid override${e?` ${e.path.join(`.`)}: ${e.message}`:``}.`)}return or(t.data,e)}function or(e,t){let n={},r=new Set(Object.keys(t.environment??{}));for(let[t,i]of Object.entries(e))if(i!==void 0){if(t===`environment`){let e=Object.fromEntries(Object.entries(i).filter(([e,t])=>t!==void 0&&r.has(e)));if(Object.keys(e).length===0)continue;n[t]=e}else n[t]=i}return n}function sr(e,t){let n={...e};for(let[r,i]of Object.entries(t))i===void 0?delete n[r]:r===`environment`?n.environment={...e.environment,...i}:n[r]=i;return n}function cr(e){return{get:()=>e.overrides,set:async t=>$(e,sr(e.overrides,t)),async clear(t){if(!t)return $(e,{});let n={...e.overrides};for(let e of t)delete n[e];return $(e,n)},subscribe:t=>e.events.overrides.subscribe(t)}}function lr(e){return{get:()=>e.env.get(),set(t){let n={...e.overrides.environment,...t};$(e,{...e.overrides,environment:n}).catch(e.report)},reset(){let{environment:t,...n}=e.overrides;$(e,n).catch(e.report)},isFeatureEnabled:(t,n)=>e.env.isFeatureEnabled(t,n),run:(t,n)=>e.env.run(t,n),subscribe:t=>e.env.subscribe(t)}}var ur=`customThemes`,dr=65536,fr=`protoyard-theme/v1`;function pr(e,t,n){let r=new Set;if(e==null)return r;if(!Array.isArray(e))return n(Error(`Ignoring stored custom themes: expected a list.`)),r;for(let i of e.slice(0,24)){let e=h.safeParse(i);e.success?t.some(t=>t.id===e.data.id)?n(Error(`Ignoring custom theme "${e.data.id}": that id is already in use.`)):(t.push(e.data),r.add(e.data.id)):n(Error(`Ignoring an invalid stored custom theme: ${e.error.message}`))}return r}function mr(e){let t=e.themes,n=()=>t.filter(t=>e.customThemeIds.has(t.id)),r=()=>e.control.setState(ur,n()),i=()=>{e.refreshDerived(),e.events.appearance.emit(e.appearance)},a=async n=>{let a=ue(h,n);if(t.some(e=>e.id===a.id)&&!e.customThemeIds.has(a.id))throw new de({id:`"${a.id}" is a built-in or prototype theme. Pick another id.`});let o=t.findIndex(e=>e.id===a.id);if(o<0&&e.customThemeIds.size>=24)throw new de({form:`You can keep up to 24 custom themes. Delete one first.`});let s=o<0?void 0:t[o];o<0?t.push(a):t[o]=a,e.customThemeIds.add(a.id);try{await r()}catch(n){throw s?t[o]=s:(t.splice(t.indexOf(a),1),e.customThemeIds.delete(a.id)),n}return i(),a};return{ensure:t=>e.ensureTheme(t),isLibrary:t=>e.libraryThemeIds.has(t),customThemes:n,isCustom:t=>e.customThemeIds.has(t),saveCustom:e=>a(e),async removeCustom(n){if(!e.customThemeIds.has(n))throw Error(`"${n}" is not a custom theme.`);let a=t.findIndex(e=>e.id===n),[o]=t.splice(a,1);e.customThemeIds.delete(n);try{await r()}catch(r){throw o&&t.splice(a,0,o),e.customThemeIds.add(n),r}i()},exportTheme(e){let r=n().find(t=>t.id===e)??t.find(t=>t.id===e);if(!r)throw Error(`Unknown theme "${e}".`);return JSON.stringify({format:fr,theme:r},null,2)},async importTheme(e){if(e.length>65536)throw new de({form:`That file is too large for a theme (limit ${dr/1024} KB).`});let t;try{t=JSON.parse(e)}catch{throw new de({form:`That is not valid JSON.`})}let n=typeof t==`object`&&!!t&&t.format===`protoyard-theme/v1`;return a(n?t.theme:t)}}}var hr=e=>e?JSON.stringify([e.persona,e.organization?.id,e.membership?.id,e.role,[...e.capabilities].sort()]):`null`;function gr(){let e=globalThis.matchMedia;return typeof e==`function`?t=>e.call(globalThis,t):void 0}async function _r(e,n,r){let i=r.onError??(e=>{console.error(`[protoyard/runtime]`,e)}),a=r.now??(()=>Date.now()),{db:o,control:s}=n,l=[...r.themes??[]];for(let t of e.themes??[])l.some(e=>e.id===t.id)||l.push(t);let u=await s.readState(),d=pr(u.customThemes,l,i),f={};try{f=ar(u.overrides??{})}catch(e){i(e)}let p={referenceTime:u.activeScenario?.scenario.referenceTime??new Date(a()).toISOString()},m;try{m=t(u.clock??p),m.now().toISOString()}catch(e){i(e),m=t(p)}let g=r.matchMedia??gr(),_=g?.(`(prefers-color-scheme: dark)`),v=g?.(`(prefers-reduced-motion: reduce)`),y=``,b=``,x=``,S=!1,C=It({onError:i}),w=c(r.sleep?{sleep:r.sleep}:{}),T={...w,run:(e,t)=>C.track({kind:`service`,label:e},()=>w.run(e,t))},E=new Set,D=new Map,O=new Set,ee=async e=>{try{let t=await r.resolveTheme(e);if(t){let n=h.parse(t);if(n.id!==e)throw Error(`Theme resolver: got "${n.id}" for "${e}".`);return l.some(t=>t.id===e)||(l.push(n),E.add(e)),l.find(t=>t.id===e)}}catch(e){i(e)}O.add(e)},te,k={definition:e,db:o,control:s,status:n.status,backend:n.backend,options:r,scenarios:Ut(e.scenarios,rn),themes:l,customThemeIds:d,libraryThemeIds:E,policy:ce(e.policy??le),clock:m,env:T,pending:C,now:a,serial:rr(),report:i,active:u.activeScenario??null,overrides:f,actorId:u.actorId??null,organizationId:u.organizationId??null,signedOut:u.signedOut??(!u.activeScenario&&vr(e)),personas:[],organizations:[],memberships:[],preferences:new Map((await s.listPreferences()).map(e=>[e.personaId,e])),principal:null,appearance:void 0,events:{scenario:nr(i),session:nr(i),overrides:nr(i),appearance:nr(i)},async reloadIdentity(){let[e,t,n]=await o.transaction(`r`,[`py_personas`,`py_organizations`,`py_memberships`],()=>Promise.all([o.table(`py_personas`).toArray(),o.table(`py_organizations`).toArray(),o.table(`py_memberships`).toArray()]));k.personas=e,k.organizations=t,k.memberships=n},async ensureTheme(e){let t=l.find(t=>t.id===e);if(t||!r.resolveTheme)return t;let n=D.get(e);return n||(n=C.track({kind:`other`,label:`Loading theme “${e}”…`},()=>ee(e)).finally(()=>D.delete(e)),D.set(e,n)),n},refreshDerived(){k.principal=yr(k);let e=hr(k.principal),t=e!==y;y=e;let n=br(k),a=JSON.stringify(n);a!==x&&(x=a,k.env.set(n)),k.appearance=Cr(k,{prefersDark:_?.matches??!1,prefersReducedMotion:v?.matches??!1});let o=JSON.stringify(k.appearance),s=o!==b;b=o,t&&k.events.session.emit(k.principal),s&&k.events.appearance.emit(k.appearance);let c=Sr(k).value;r.resolveTheme&&!O.has(c)&&!l.some(e=>e.id===c)&&(te=k.ensureTheme(c).then(e=>{e&&k.refreshDerived()}).catch(i))},writeControl:e=>s.writeState(e),setClockSilently(e){S=!0;try{m.setState(e)}finally{S=!1}},dispose(){ne(),_?.removeEventListener(`change`,re),v?.removeEventListener(`change`,re);for(let e of Object.values(k.events))e.clear()}},ne=m.subscribe(e=>{S||s.setState(`clock`,e).catch(i)}),re=()=>k.refreshDerived();return _?.addEventListener(`change`,re),v?.addEventListener(`change`,re),await k.reloadIdentity(),k.refreshDerived(),await te,k}function vr(e){return T.parse(e.auth??{}).signedOutByDefault}function yr(e){if(e.personas.length===0||e.signedOut&&e.overrides.actorId===void 0)return null;let t=e.active?.scenario.actor.id,n=e.overrides.actorId??e.actorId??t,r=e.personas.find(e=>e.id===n)??e.personas.find(e=>e.id===t)??e.personas[0],i=e.memberships.filter(e=>e.personaId===r.id),a=e.overrides.organizationId??e.organizationId??e.active?.scenario.organization.id,o=i.find(e=>e.organizationId===a)??null,s=null;return o?s=e.organizations.find(e=>e.id===o?.organizationId)??null:e.overrides.organizationId?s=e.organizations.find(t=>t.id===e.overrides.organizationId)??null:(o=i[0]??null,s=o?e.organizations.find(e=>e.id===o?.organizationId)??null:null),ie(r,s,o,e.policy,e.overrides.role??null)}function br(e){let t=e.active?.scenario,n=t?.environment??{},r=e.overrides.environment??{},i=e.principal?.organization??null,a=r.subscription??n.subscription??t?.organization.subscription,o={...l,...n,...r,featureFlags:{...t?.organization.featureFlags,...i?.featureFlags,...n.featureFlags,...r.featureFlags}};return a?o.subscription=a:delete o.subscription,o}function xr(e){let t=e.principal?.persona,n=t?e.preferences.get(t.id):void 0;return{...t?.preferences,...n}}function Sr(e){let t=xr(e);return w({override:e.overrides.themeId,preference:t.themeId,scenario:e.active?.scenario.appearance?.themeId},e.definition.manifest.defaultTheme)}function Cr(e,t){let n=e.definition.manifest,r=e.active?.scenario.appearance??{},i=xr(e),a=e.overrides,o=Sr(e);e.themes.length>0&&!e.themes.some(e=>e.id===o.value)&&(o={value:e.themes.some(e=>e.id===n.defaultTheme)?n.defaultTheme:e.themes[0].id,source:`default`});let s=w({override:a.mode,preference:i.mode,scenario:r.mode},n.defaultMode);return{theme:o,mode:s,resolvedMode:s.value===`system`?t.prefersDark?`dark`:`light`:s.value,reducedMotion:w({override:a.reducedMotion,preference:i.reducedMotion,scenario:r.reducedMotion},t.prefersReducedMotion),density:w({override:a.density},e.themes.find(e=>e.id===o.value)?.density??1),...wr(r,a),viewport:w({override:a.viewport,scenario:r.viewport},n.preview.viewport),...Er(n,r,a),layout:Tr(n,r,a)}}function wr(e,t){return Object.fromEntries(g.map(n=>[n,w({override:t[n],scenario:e[n]},null)]))}function Tr(e,t,n){let r=e.preview.layout,i=r?.id??`custom`,a=w({override:n.layout,scenario:t.layout},i);return d(r).includes(a.value)?a:{value:i,source:`default`}}function Er(e,t,n){let i=e.preview,s=w({override:n.shell,scenario:t.shell},i.shell??`auto`),c={value:u(s.value,e.platform),source:s.source},l=i.device&&r(i.device,c.value)?i.device:a(c.value,i.viewport),d=w({override:n.device,scenario:t.device},l);r(d.value,c.value)||(d={value:l,source:`default`});let f=o(d.value),p=w({override:n.orientation,scenario:t.orientation},i.orientation??f.orientation);return!f.rotatable&&p.value!==f.orientation&&(p={value:f.orientation,source:`default`}),{shell:c,device:d,orientation:p}}function Dr(e){return new Qn(`member`,e)}function Or(e){return`${e.normalize(`NFKD`).toLowerCase().replace(/[^a-z0-9]+/g,`.`).replace(/^\.+|\.+$/g,``)||`member`}@example.com`}function kr(e,t,n){return e.listMemberships({organizationId:t}).then(e=>e.filter(e=>e.role===`owner`&&e.id!==n).length)}var Ar=`An organization needs at least one owner. Transfer ownership first.`;function jr(e,t){let n=()=>Object.keys(e.policy.definition.roles),r=e=>{if(!n().includes(e))throw Dr({role:`Unknown role "${e}". Roles: ${n().join(`, `)}`})},i=(t,n)=>e.policy.assert(e.principal,t,n);async function a(t){let n=await e.db.table(`py_memberships`).get(t);if(!n)throw Error(`Membership "${t}" was not found.`);return n}function o(e,t){return e.getMembership(t).then(e=>{if(!e)throw Error(`Membership "${t}" was not found.`);return e})}let s=(t,n)=>{let r=e.principal;if(!r?.organization||r.organization.id!==t)throw new re(n,r?.role??null)};return{list(t){let n=t??e.principal?.organization?.id;if(!n)return[];let r=new Map(e.personas.map(e=>[e.id,e]));return e.memberships.filter(e=>e.organizationId===n&&r.has(e.personaId)).sort((e,t)=>e.joinedAt.localeCompare(t.joinedAt)||e.id.localeCompare(t.id)).map(e=>({membership:e,persona:r.get(e.personaId)}))},async invite(n){let a=n.organizationId??e.principal?.organization?.id;a&&s(a,D.invite),i(D.invite,{organizationId:a,role:n.role}),n.role===`owner`&&i(D.transfer,{organizationId:a});let o=ee.safeParse(n);if(!o.success){let e={};for(let t of o.error.issues)e[t.path.map(String).join(`.`)||`member`]??=t.message;throw Dr(e)}let c=o.data;if(r(c.role),!a)throw Dr({organizationId:`No active organization to invite to`});let l=c.email??Or(c.name);if(!E(l))throw Dr({email:`Use a fictional address at example.com`});return e.env.run(`members.invite`,()=>t.write(async t=>{if(!await t.getOrganization(a))throw Dr({organizationId:`Unknown organization "${a}"`});s(a,D.invite);let n=(await e.db.table(`py_personas`).toArray()).find(e=>e.email?.toLowerCase()===l);if(n&&(await t.listMemberships({personaId:n.id,organizationId:a})).length)throw Dr({email:`${l} is already a member`});let r=n??await t.putPersona({name:c.name,email:l,...c.title?{title:c.title}:{},onboardingComplete:!1,summary:`${c.title??`Invited member`}, invited`});return{persona:r,membership:await t.putMembership({personaId:r.id,organizationId:a,role:c.role})}}))},async changeRole(n,c){let l=await a(n);return s(l.organizationId,D.update),i(D.update,{membership:l,role:c}),(c===`owner`||l.role===`owner`)&&i(D.transfer,{membership:l,role:c}),r(c),e.env.run(`members.changeRole`,()=>t.write(async e=>{let t=await o(e,n);if(s(t.organizationId,D.update),t.role===`owner`&&c!==`owner`&&await kr(e,t.organizationId,t.id)===0)throw Dr({role:Ar});return e.putMembership({...t,role:c})}))},async remove(n){let r=await a(n);s(r.organizationId,D.remove),i(D.remove,{membership:r}),r.role===`owner`&&i(D.transfer,{membership:r}),await e.env.run(`members.remove`,()=>t.write(async e=>{let t=await o(e,n);if(s(t.organizationId,D.remove),t.role===`owner`&&await kr(e,t.organizationId,t.id)===0)throw Dr({membership:Ar});await e.removeMembership(t.id)}))},async transferOwnership(n,s={}){let c=await a(n);i(D.transfer,{membership:c});let l=e.principal,u=l?.membership;if(!l||!u||l.role!==`owner`||u.organizationId!==c.organizationId)throw new re(D.transfer,l?.role??null);if(u.id===c.id)throw Dr({membership:`You already own this organization`});let d=s.formerOwnerRole??`admin`;r(d),await e.env.run(`members.transferOwnership`,()=>t.write(async e=>{let t=await o(e,c.id),n=await o(e,u.id);await e.putMembership({...t,role:O}),await e.putMembership({...n,role:d})}))}}}function Mr(e){let t={};for(let n of g)e[n]!==void 0&&Object.assign(t,{[n]:e[n]});return t}var Nr=class extends Error{scenarioId;constructor(e){super(`Unknown scenario "${e}". Check src/scenarios/index.ts and protoyard.json.`),this.name=`UnknownScenarioError`,this.scenarioId=e}},Pr=()=>new Promise(e=>setTimeout(e,0));function Fr(e){let t=e.definition.generatorVersion;return{generatorVersion:3,...t===void 0?{}:{prototypeGeneratorVersion:t}}}function Ir(e,t){return e.generatorVersion!==t.generatorVersion||e.prototypeGeneratorVersion!==t.prototypeGeneratorVersion}function Lr(e){return e.prototypeGeneratorVersion===void 0?`SDK v${e.generatorVersion}`:`SDK v${e.generatorVersion}, prototype v${e.prototypeGeneratorVersion}`}function Rr(e){if(e&&typeof e==`object`&&`id`in e&&typeof e.id==`string`)return e.id}function zr(e,t){return t===e.seed?e:{...e,seed:t}}function Br(e,t,n){let r=[];for(let n of Object.keys(t.tables))e.db.domainTables.includes(n)||r.push({table:n,rowId:`*`,message:`table "${n}" is not declared in database/schema.ts`});let i=e.options.integrity??e.definition.integrity??{};return[...r,...qt(t,{...i,referenceTime:n.referenceTime})]}function Vr(t,r){let i=null,a=null,o=!!(t.options.link?.sandbox&&ne.test(t.options.link.sandbox)),s=null,c=e=>t.scenarios.find(t=>t.id===e),l=null,u=nr(t.report);function f(e,n){if(l=e,e&&n)try{n(e)}catch(e){t.report(e)}u.emit(e)}async function p(e,t,n={}){let r=(t,r,i)=>f({scenarioId:e.id,phase:t,done:r,total:i},n.onProgress);try{await m(e,t,r,n.writeChunkSize)}finally{f(null)}}async function m(e,r,i,a){let o=zr(e,r),c={generateMs:0,validateMs:0,writeMs:0,rows:0};i(`generate`,0,1),await Pr();let l=performance.now(),{generateWorld:u}=t.definition,d=u?await u.call(t.definition,o):await t.definition.generate(await n(o));c.generateMs=performance.now()-l,i(`generate`,1,1),i(`validate`,0,1),await Pr(),l=performance.now();let f=Br(t,d,o);c.validateMs=performance.now()-l;let p=t.options.validation??`throw`;if(f.length&&p!==`off`){let t=new Jt(e.id,f);if(p===`throw`)throw t;console.warn(t.message)}i(`validate`,1,1);let m=t.db,h=[[`py_organizations`,d.organizations],[`py_personas`,d.personas],[`py_memberships`,d.memberships],[`py_events`,(d.events??[]).map(e=>({...e,source:e.source??`seed`}))],...Object.entries(d.tables).filter(([e])=>m.domainTables.includes(e))],g=h.reduce((e,[,t])=>e+t.length,0),_=Math.max(1,a??t.options.writeChunkSize??1e3);c.rows=g,i(`write`,0,g),await Pr(),l=performance.now(),await m.transaction(`rw`,[...m.allTables],async()=>{for(let e of m.allTables)await m.table(e).clear();let e=0;for(let[t,n]of h)for(let r=0;r<n.length;r+=_){let a=n.slice(r,r+_);await m.table(t).bulkAdd(a),e+=a.length,i(`write`,e,g)}}),c.writeMs=performance.now()-l,s={scenarioId:e.id,...c},i(`done`,g,g);let v={scenario:e,seed:r,...Fr(t),loadedAt:new Date(t.now()).toISOString()},y={referenceTime:e.referenceTime,committedOffsetMs:0,previewOffsetMs:0,running:!1},b=vr(t.definition);await t.writeControl({activeScenario:v,clock:y,overrides:null,actorId:e.actor.id,organizationId:e.organization.id,signedOut:b?!0:null,timelineCheckpoint:{committedOffsetMs:0,at:new Date(Date.parse(e.referenceTime)).toISOString()}}),t.active=v,t.overrides={},t.actorId=e.actor.id,t.organizationId=e.organization.id,t.signedOut=b,t.setClockSilently(y),await t.reloadIdentity(),e.appearance.themeId&&await t.ensureTheme(e.appearance.themeId),t.refreshDerived(),t.events.overrides.emit(t.overrides),t.events.scenario.emit(v)}async function h(e,n={}){let a=c(e);if(!a)throw new Nr(e);n.snapshotFirst&&t.active&&await r(`Before loading ${a.name}`),await p(a,n.seed??a.seed,n),i=null}async function _(e){let n=Fr(t),i={generatorVersion:e.generatorVersion,...e.prototypeGeneratorVersion===void 0?{}:{prototypeGeneratorVersion:e.prototypeGeneratorVersion}};if(!Ir(i,n))return;let s={scenario:e.scenario.id,seed:e.seed,stored:i,current:n},l;if(!o)try{l=Rr(await r(`Before refreshing ${e.scenario.name}`))}catch(e){t.report(e),a={...s,status:`kept`,reason:`This data was generated by ${Lr(i)}, the prototype now uses ${Lr(n)}, and a safety snapshot could not be saved, so the data was kept. Reset the scenario to rebuild it.`};return}await p(c(e.scenario.id)??e.scenario,e.seed),a={...s,status:`reseeded`,...l===void 0?{}:{snapshotId:l},reason:`This data was generated by ${Lr(i)} and the prototype now uses ${Lr(n)}, so the scenario was rebuilt${l===void 0?`.`:`. Your previous data is in a safety snapshot.`}`}}return{list:()=>t.scenarios,get:c,active:()=>t.active,pendingLink:()=>i,staleWorld:()=>a,ensureSeeded:()=>t.serial(async()=>{let e=t.options.link??{};if(t.active&&await _(t.active),!t.active){let n=await t.db.table(`py_personas`).count(),r=(e.scenario?c(e.scenario):void 0)??(t.definition.manifest.defaultScenario?c(t.definition.manifest.defaultScenario):void 0)??t.scenarios[0];if(!r)throw Error(`This prototype declares no scenarios; add one in src/scenarios/index.ts.`);if(n>0){let e={scenario:r,seed:r.seed,...Fr(t),loadedAt:new Date(t.now()).toISOString()};await t.writeControl({activeScenario:e}),t.active=e,t.refreshDerived(),t.events.scenario.emit(e)}else{let t=e.scenario===r.id?e.seed:void 0;await h(r.id,t===void 0?{}:{seed:t})}}else if(e.scenario){let n=e.scenario!==t.active.scenario.id||e.seed!==void 0&&e.seed!==t.active.seed;n&&o&&c(e.scenario)&&await h(e.scenario,e.seed===void 0?{}:{seed:e.seed}),i=n&&!(o&&c(e.scenario))?{scenario:e.scenario,...e.seed===void 0?{}:{seed:e.seed},reason:c(e.scenario)?`This browser already has edits for another scenario. Load the linked scenario to replace them.`:`The link points to unknown scenario "${e.scenario}".`}:null}e.actor&&e.actor!==t.principal?.persona.id&&t.personas.some(t=>t.id===e.actor)&&(t.actorId=e.actor,await t.writeControl({actorId:e.actor}),t.refreshDerived());let n=e.theme?await t.ensureTheme(e.theme)!==void 0:!1,r=e.layout&&d(t.definition.manifest.preview.layout).includes(e.layout);(n&&e.theme!==t.overrides.themeId||e.mode&&e.mode!==t.overrides.mode||e.shell&&e.shell!==t.overrides.shell||r&&e.layout!==t.overrides.layout||g.some(n=>e[n]&&e[n]!==t.overrides[n]))&&await $(t,{...t.overrides,...n?{themeId:e.theme}:{},...e.mode?{mode:e.mode}:{},...e.shell?{shell:e.shell}:{},...r?{layout:e.layout}:{},...Mr(e)})}),load:(e,n)=>t.pending.track({kind:`scenario`,label:`Loading scenario “${c(e)?.name??e}”…`},()=>t.serial(()=>h(e,n))),reset:(e={})=>t.pending.track({kind:`scenario`,label:`Resetting scenario…`},()=>t.serial(async()=>{let n=t.active;if(!n)throw Error(`No active scenario to reset. Load one first.`);e.snapshotFirst&&await r(`Before resetting ${n.scenario.name}`),await p(c(n.scenario.id)??n.scenario,n.seed,e)})),advance:r=>t.pending.track({kind:`time`,label:`Advancing time…`},()=>t.serial(async()=>{let i=t.active;if(!i)throw Error(`No active scenario. Load one before advancing time.`);let a=e(r);if(!(a>0))throw RangeError(`advance(): duration must be positive`);let o=t.clock.committed().getTime(),s=new Date(o),c=new Date(o+a),l=0,u=0,d=t.definition.timeline;if(d){let e=await d({...await n(zr(i.scenario,i.seed)),from:s,to:c,read:e=>t.db.rows(e).toArray()}),r=new Map;for(let t of e)r.has(t.id)||r.set(t.id,t);let a=[...r.values()],o=t.db;await o.transaction(`rw`,[...o.allTables],async()=>{let e=await o.table(`py_events`).bulkGet(a.map(e=>e.id)),n=a.filter((t,n)=>e[n]===void 0);u=a.length-n.length;let r=t.definition.applyEvent,i={put:async(e,t)=>{await o.rows(e).put(t)},get:(e,t)=>o.rows(e).get(t),remove:(e,t)=>o.rows(e).delete(t)};n.sort((e,t)=>e.at.localeCompare(t.at)||e.id.localeCompare(t.id));for(let e of n)r&&await r(e,i),await o.table(`py_events`).add({...e,source:e.source??`timeline`});l=n.length})}t.setClockSilently({...t.clock.getState(),committedOffsetMs:t.clock.getState().committedOffsetMs+a});let f=t.clock.getState();return await t.writeControl({clock:f,timelineCheckpoint:{committedOffsetMs:f.committedOffsetMs,at:c.toISOString()}}),l>0&&(await t.reloadIdentity(),t.refreshDerived()),{applied:l,skipped:u}})),subscribe:e=>t.events.scenario.subscribe(e),progress:()=>l,subscribeProgress:e=>u.subscribe(e),lastLoadTimings:()=>s}}function Hr(e){async function t(t=Promise.resolve()){if(e.overrides.actorId!==void 0){let{actorId:n,...r}=e.overrides;await Promise.all([t,$(e,r)])}else e.refreshDerived(),await t}async function n(n,r){if(!e.personas.some(e=>e.id===n))throw Error(`Unknown persona "${n}".`);e.actorId=n,e.signedOut=r;let i=e.memberships.filter(e=>e.personaId===n);i.length&&!i.some(t=>t.organizationId===e.organizationId)&&(e.organizationId=i[0]?.organizationId??e.organizationId),await t(e.writeControl({actorId:n,...e.organizationId?{organizationId:e.organizationId}:{},signedOut:r?!0:null}))}return{principal:()=>e.principal,personas:()=>e.personas,organizations:()=>e.organizations,memberships:()=>e.memberships,switchActor:t=>e.pending.track({kind:`session`,label:`Switching persona…`},()=>n(t,e.signedOut)),signIn:t=>e.pending.track({kind:`session`,label:`Signing in…`},()=>n(t,!1)),signOut:()=>e.pending.track({kind:`session`,label:`Signing out…`},async()=>{e.signedOut=!0,await t(e.writeControl({signedOut:!0}))}),isSignedIn:()=>e.principal!==null,authState:()=>e.principal?`signed-in`:`signed-out`,switchOrganization:t=>e.pending.track({kind:`session`,label:`Switching organization…`},async()=>{if(!e.organizations.some(e=>e.id===t))throw Error(`Unknown organization "${t}".`);e.organizationId=t;let n=e.writeControl({organizationId:t});if(e.overrides.organizationId!==void 0){let{organizationId:t,...r}=e.overrides;await Promise.all([n,$(e,r)])}else e.refreshDerived(),await n}),can:(t,n)=>e.policy.can(e.principal,t,n),assert:(t,n)=>e.policy.assert(e.principal,t,n),async refresh(){await e.reloadIdentity(),e.refreshDerived()},subscribe:t=>e.events.session.subscribe(t)}}function Ur(e){return{themes:()=>e.themes,get:t=>e.themes.find(e=>e.id===t),appearance:()=>e.appearance,async setPreference(t){let n=e.principal?.persona;if(!n)throw Error(`No active persona: load a scenario before saving preferences.`);t.themeId!==void 0&&await e.ensureTheme(t.themeId);let r=await e.control.setPreference(n.id,t);e.preferences.set(n.id,r),e.refreshDerived()},async setOverride(t){t.themeId!==void 0&&await e.ensureTheme(t.themeId);let n={...e.overrides};for(let[e,r]of Object.entries(t))r===void 0?delete n[e]:n[e]=r;await $(e,n)},async clearOverride(){let{themeId:t,mode:n,reducedMotion:r,density:i,viewport:a,shell:o,device:s,orientation:c,layout:l,...u}=e.overrides;for(let e of g)delete u[e];await $(e,u)},subscribe:t=>e.events.appearance.subscribe(t)}}var Wr=class extends Error{constructor(e){super(e),this.name=`SnapshotImportError`}};function Gr(e){let{tables:t,...n}=e;return n}var Kr=25e4,qr=864e13;function Jr(e){return new Wr(`${e} Nothing was changed.`)}function Yr(e){let t=0;for(let n of e.tables){if(t+=n.rows.length,t>25e4)throw Jr(`Snapshot has more than ${Kr.toLocaleString(`en-US`)} rows.`);n.rows.forEach((e,t)=>{let r=e.id;if(!(typeof r==`string`&&r.length>0&&r.length<=512||typeof r==`number`&&Number.isFinite(r)))throw Jr(`Row ${t+1} of table "${n.name}" has no valid id.`)})}}function Xr(e){let t=Date.parse(e.referenceTime),n=t+e.committedOffsetMs,r=n+e.previewOffsetMs;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)||Math.abs(n)>qr||Math.abs(r)>qr||e.runningSince!==void 0&&!Number.isFinite(e.runningSince))throw Jr(`Snapshot clock is not a valid point in time.`);return{committedOffsetMs:e.committedOffsetMs,at:new Date(n).toISOString()}}function Zr(e,t,n){return`${e}-${p(t)||`snapshot`}-${n.slice(0,10)}.protoyard.json`}function Qr(e){return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob}function $r(e){let t=0;return{tables:e.map(e=>({...e,rows:e.rows.map(e=>{if(!e||typeof e!=`object`)return e;let n=null;for(let[r,i]of Object.entries(e))Qr(i)&&(n??={...e},n[r]=null,t+=1);return n??e})})),excluded:t}}var ei=[`simulatedPassword`];function ti(e,t=ei){let n=0;return{tables:e.map(e=>({...e,rows:e.rows.map(e=>{if(!e||typeof e!=`object`)return e;let r=null;for(let i of t)e[i]!=null&&(r??={...e},r[i]=null,n+=1);return r??e})})),redacted:n}}function ni(e){let t=e.definition.manifest,n=()=>({prototypeId:t.id,schemaVersion:e.db.schemaVersion,tables:e.db.allTables}),r=[];async function i(n={name:`Current world`}){let[r,i]=await Promise.all([Yn(e.db),Zn(e.db)]),{tables:a}=$r(r),o=e.active,c=e.appearance;return{format:x,formatVersion:1,id:s(`snap`),name:n.name.trim().slice(0,120)||`Snapshot`,notes:(n.notes??``).slice(0,2e3),prototypeId:t.id,prototypeVersion:t.version,schemaVersion:e.db.schemaVersion,scenarioId:o?.scenario.id??null,scenarioVersion:o?.scenario.version??null,seed:o?.seed??null,referenceTime:o?.scenario.referenceTime??null,createdAt:new Date(e.now()).toISOString(),actorId:e.principal?.persona.id??e.actorId,organizationId:e.principal?.organization?.id??e.organizationId,...e.signedOut?{signedOut:!0}:{},clock:e.clock.getState(),environment:e.env.get(),overrides:{...e.overrides},appearance:{themeId:c.theme.value,mode:c.mode.value},tables:a,stats:i}}async function a(t,n={tablesRestored:!1}){let i=[];Yr(t);let a=t.scenarioId?e.scenarios.find(e=>e.id===t.scenarioId):void 0;t.scenarioId&&!a&&i.push(`Scenario "${t.scenarioId}" no longer exists; records were restored without it.`);let o=a?{scenario:a,seed:t.seed??a.seed,...Fr(e),loadedAt:t.createdAt}:null,s={};try{s=ar(t.overrides)}catch{i.push(`Snapshot overrides were invalid and were ignored.`)}let c=t.referenceTime??o?.scenario.referenceTime,l=t.clock?{...t.clock,...t.clock.running?{runningSince:e.now()}:{}}:c?{referenceTime:c,committedOffsetMs:0,previewOffsetMs:0,running:!1}:null,u=l?Xr(l):null,d=await Xn(e.db,t.tables,{knownTables:e.db.allTables});n.tablesRestored=!0;for(let e of d.skipped)i.push(`Unknown table "${e}" was skipped.`);t.schemaVersion<e.db.schemaVersion&&i.push(`Snapshot rows use schema v${t.schemaVersion}; they were restored as-is into v${e.db.schemaVersion}.`),await e.writeControl({activeScenario:o,overrides:Object.keys(s).length?s:null,actorId:t.actorId,organizationId:t.organizationId,signedOut:t.signedOut?!0:null,clock:l,timelineCheckpoint:u}),e.active=o,e.overrides=s,e.actorId=t.actorId,e.organizationId=t.organizationId,e.signedOut=t.signedOut===!0,l&&e.setClockSilently(l),await e.reloadIdentity(),e.refreshDerived();let f=t.appearance,p={};return f.themeId&&f.themeId!==e.appearance.theme.value&&(await e.ensureTheme(f.themeId)?p.themeId=f.themeId:i.push(`Theme "${f.themeId}" is not available here; kept the current theme.`)),f.mode&&f.mode!==e.appearance.mode.value&&(p.mode=f.mode),Object.keys(p).length?await $(e,{...e.overrides,...p}):e.events.overrides.emit(e.overrides),e.events.scenario.emit(o),r=i,i}async function o(t){let n=await i(t);return await e.control.putSnapshot(n),Gr(n)}function c(e){let t=v(e,n());if(!t.ok)throw new Wr(t.error);return Yr(t.snapshot),t.snapshot.clock&&Xr(t.snapshot.clock),t}return{list:()=>e.control.listSnapshots(),save:o,build:()=>i(),lastWarnings:()=>r,restore:t=>e.pending.track({kind:`snapshot`,label:`Restoring snapshot…`},()=>e.serial(async()=>{let n=await e.control.getSnapshot(t);if(!n)throw Error(`Snapshot "${t}" was not found.`);await a(n)})),remove:t=>e.control.deleteSnapshot(t),async exportJson(n){let r=n?await e.control.getSnapshot(n):await i();if(!r)throw Error(`Snapshot "${n}" was not found.`);let a={...r,tables:ti(r.tables).tables};return{filename:Zr(t.slug,r.name,r.createdAt),json:`${JSON.stringify(a,null,2)}\n`}},async previewImport(e){let{snapshot:t,warnings:n}=c(e),r={};for(let e of t.tables)r[e.name]=(r[e.name]??0)+e.rows.length;return{snapshot:Gr(t),warnings:n,rowCounts:r}},importJson:(t,n={})=>e.pending.track({kind:`snapshot`,label:n.restore?`Restoring snapshot…`:`Importing snapshot…`},()=>e.serial(async()=>{let{snapshot:i,warnings:o}=c(t),l={...i,id:s(`snap`)};if(await e.control.putSnapshot(l),n.restore){let t={tablesRestored:!1};try{let e=await a(l,t);r=[...new Set([...o,...e])]}catch(n){throw t.tablesRestored||await e.control.deleteSnapshot(l.id).catch(e.report),n}}else r=o;return Gr(l)}))}}function ri(e){return{tables:()=>e.db.allTables,counts:()=>Zn(e.db),async rows(t,n={}){let r=Math.min(Math.max(1,Math.floor(n.limit??50)),500),i=Math.max(0,Math.floor(n.offset??0));return e.db.rows(t).offset(i).limit(r).toArray()}}}async function ii(e,t={}){let n=t.link?.sandbox&&ne.test(t.link.sandbox)?t.link.sandbox:void 0,r=n?Et(e.manifest.storage.namespace,n):e.manifest.storage.namespace,i={manifest:{storage:{...e.manifest.storage,namespace:r}},database:e.database},a=await S(i,{...t.indexedDB?{indexedDB:t.indexedDB}:{},...t.IDBKeyRange?{IDBKeyRange:t.IDBKeyRange}:{},...t.allowMemoryFallback===void 0?{}:{allowMemoryFallback:t.allowMemoryFallback}}),o;try{o=await _r(e,a,t)}catch(e){throw a.db.close(),a.control.close(),e}let s=ni(o),c=Vr(o,e=>s.save({name:e,notes:`Saved automatically before replacing the world.`})),l=tr(o),u=!1,d=()=>{u||(u=!0,o.dispose(),o.db.close(),o.control.close())},f={prototypeId:e.manifest.id,...n?{sandbox:n}:{},manifest:e.manifest,definition:e,db:o.db,scenarios:c,session:Hr(o),identity:l,members:jr(o,l),clock:o.clock,theme:{...Ur(o),...mr(o)},environment:lr(o),snapshots:s,overrides:cr(o),policy:o.policy,data:ri(o),pending:o.pending,storage:()=>({...o.status}),environmentState:()=>o.env.get(),get closed(){return u},async destroy(){await o.serial(async()=>void 0),d(),await C(r,o.backend)},async discardSandbox(){if(!n)throw Error(`This runtime is not running in a sandbox.`);await f.destroy()},close:d};return f}var ai=/^[a-z][a-z0-9-]*$/,oi=/^[A-Za-z0-9_-]{1,64}$/,si=/^[a-z][a-z0-9-]*$/;function ci(e,t){if(!e.startsWith(`#`))return null;let n=e.slice(1).split(`--`);if(n.length<1||n.length>3)return null;let r=n[0];if(!r||!ai.test(r)||!t.scenarios.includes(r))return null;let i=new URLSearchParams({scenario:r}),a=n[1],o=n[2],s,c;return a!==void 0&&(t.personas?.includes(a)&&oi.test(a)?s=a:t.themes?.includes(a)&&si.test(a)&&(c=a)),o!==void 0&&t.themes?.includes(o)&&si.test(o)&&(c=o),s&&i.set(`actor`,s),c&&i.set(`theme`,c),`?${i.toString()}`}function li(e){if(typeof location>`u`)return;let t=ci(location.hash,e);if(t)return history.replaceState(history.state,``,`${location.pathname}${location.search}#/`),t}var ui=P(`<p class="font-mono text-xs text-muted-foreground"> </p>`),di=P(`<p class="mt-3 text-sm text-destructive" role="alert"> </p>`),fi=P(`<!> `,1),pi=P(`<!> <!>`,1),mi=P(`<main class="flex min-h-dvh items-center justify-center bg-background px-4 py-10 text-foreground"><section class="w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-float" aria-labelledby="py-boot-error-title"><div class="flex items-center gap-3"><span class="inline-flex size-10 items-center justify-center rounded-lg bg-destructive/10 text-destructive"><!></span> <div><h1 id="py-boot-error-title" class="text-lg font-semibold"> </h1> <!></div></div> <p class="mt-4 text-sm text-surface-foreground"> </p> <p class="mt-2 text-sm text-muted-foreground"> </p> <!> <div class="mt-6 flex flex-wrap gap-2"><!> <!></div></section></main>`);function hi(e,t){L(t,!0);let n=H(()=>t.error instanceof Error?t.error.message:String(t.error)),r=H(()=>t.error?.code),i=q(!1),a=q(!1),o=q(null);function s(e){return new Promise((t,n)=>{let r=indexedDB.deleteDatabase(e);r.onsuccess=()=>t(),r.onerror=()=>n(r.error??Error(`Could not delete ${e}`)),r.onblocked=()=>n(Error(Tt().boot.otherTab))})}async function c(){if(t.namespace){V(a,!0),V(o,null);try{await s(`protoyard.${t.namespace}.data`),await s(`protoyard.${t.namespace}.control`),await s(`protoyard.${t.namespace}.validation`),location.reload()}catch(e){V(o,e instanceof Error?e.message:String(e),!0),V(a,!1)}}}let l=Tt().boot;var u=mi(),d=z(u),f=z(d),p=z(f),m=z(p);Dt(m,{name:`alert`,class:`size-5`}),N(p);var h=G(p,2),g=z(h),_=U(g,!0),v=G(g,2),y=e=>{var t=ui(),n=U(t,!0);R(()=>j(n,F(r))),Y(e,t)};M(v,e=>{typeof F(r)==`string`&&e(y)}),N(h),N(f);var b=G(f,2),x=U(b,!0),S=G(b,2),C=U(S,!0),w=G(S,2),T=e=>{var t=di(),n=U(t,!0);R(()=>j(n,F(o))),Y(e,t)};M(w,e=>{F(o)&&e(T)});var E=G(w,2),D=z(E);X(D,{type:`button`,size:`sm`,class:`inline-flex min-h-touch items-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary-hover sm:min-h-9`,onclick:()=>location.reload(),children:(e,t)=>{var n=fi(),r=I(n);Dt(r,{name:`refresh`});var i=G(r);R(()=>j(i,` ${l.reload??``}`)),Y(e,n)},$$slots:{default:!0}});var O=G(D,2),ee=e=>{var t=A(),n=I(t),r=e=>{var t=pi(),n=I(t);X(n,{type:`button`,variant:`destructive`,size:`sm`,class:`inline-flex min-h-touch items-center rounded-md bg-destructive px-4 text-sm font-medium text-destructive-foreground hover:bg-destructive-hover disabled:opacity-60 sm:min-h-9`,get disabled(){return F(a)},get"aria-busy"(){return F(a)},onclick:c,children:(e,t)=>{Ue();var n=Ae();R(()=>j(n,F(a)?l.resetting:l.confirmReset)),Y(e,n)},$$slots:{default:!0}});var r=G(n,2);X(r,{type:`button`,variant:`outline`,size:`sm`,class:`inline-flex min-h-touch items-center rounded-md border border-border px-4 text-sm font-medium hover:bg-muted sm:min-h-9`,get disabled(){return F(a)},onclick:()=>V(i,!1),children:(e,t)=>{Ue();var n=Ae();R(()=>j(n,l.cancel)),Y(e,n)},$$slots:{default:!0}}),Y(e,t)},o=e=>{X(e,{type:`button`,variant:`outline`,size:`sm`,class:`inline-flex min-h-touch items-center rounded-md border border-border px-4 text-sm font-medium hover:bg-muted sm:min-h-9`,onclick:()=>V(i,!0),children:(e,t)=>{Ue();var n=Ae();R(()=>j(n,l.reset)),Y(e,n)},$$slots:{default:!0}})};M(n,e=>{F(i)?e(r):e(o,-1)}),Y(e,t)};M(O,e=>{t.namespace&&e(ee)}),N(E),N(d),N(u),R(e=>{j(_,e),j(x,F(n)),j(C,l.explanation)},[()=>wt(l.title,{name:t.name})]),Y(e,u),J()}var gi=[`bottom-left`,`bottom-right`,`top-left`,`top-right`];function _i(e,t,n,r=12){return{left:e.endsWith(`left`)?t.left+r:t.left+t.width-r-n.width,top:e.startsWith(`top`)?t.top+r:t.top+t.height-r-n.height,width:n.width,height:n.height}}function vi(e,t=16){let n=Math.max(2,Math.ceil(e.width/t)+1),r=Math.max(2,Math.ceil(e.height/t)+1),i=[];for(let t=0;t<r;t++)for(let a=0;a<n;a++)i.push([e.left+1+(e.width-2)*a/(n-1),e.top+1+(e.height-2)*t/(r-1)]);return i}function yi(e){let t=gi[0],n=1/0;for(let r of gi){let i=e(r);if(i===0)return r;i<n&&(t=r,n=i)}return t}var bi=[`a[href]`,`button`,`input`,`select`,`textarea`,`summary`,`label`,`[contenteditable]:not([contenteditable="false"])`,`[tabindex]:not([tabindex="-1"])`,`[role="button"]`,`[role="link"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="option"]`,`[role="slider"]`,`[role="textbox"]`,`[role="combobox"]`].join(`,`);function xi(e,t,n){for(let r of e.childNodes){if(r.nodeType!==3||!r.textContent?.trim())continue;let i=e.ownerDocument.createRange();if(i.selectNodeContents(r),typeof i.getClientRects!=`function`)return!0;let a=i.getClientRects();if(a.length===0)return!0;for(let e of a)if(t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom)return!0}return!1}function Si(e,t,n){return yi(r=>Ci(_i(r,e,t),n))}function Ci(e,t,n=16){let r=0;for(let[i,a]of vi(e,n)){let e=t(i,a);e&&(e.closest(bi)?r+=100:xi(e,i,a)&&(r+=1))}return r}function wi(e,t,n){return gi.every(r=>Ci(_i(r,e,t),n)>=100)}function Ti(e,t=8){let n={width:20,height:20},r=gi.map(t=>_i(t,e,n,4)),i=e.left+4,a=e.left+e.width-4-20;for(let o of[e.top+e.height-4-20,e.top+4])for(let e=i+t;e<a;e+=t)r.push({left:e,top:o,...n});return r}function Ei(e,t){let n,r=1/0;for(let i of Ti(e)){let e=Ci(i,t,6);if(e===0)return i;e<r&&(n=i,r=e)}return n}var Di=`protoyard:floating`,Oi=[`bottom-right`,`top-right`,`bottom-left`,`top-left`];function ki(e,t,n=8,r=12){let i=Oi.map(n=>_i(n,e,t,r)),a=e.left+r,o=e.left+e.width-r-t.width;for(let s of[e.top+e.height-r-t.height,e.top+r])for(let e=o-n;e>a;e-=n)i.push({left:e,top:s,...t});return i}var Ai=(e,t)=>e.left<t.left+t.width&&t.left<e.left+e.width&&e.top<t.top+t.height&&t.top<e.top+e.height;function ji(e,t,n,r=[]){let i,a=1/0;for(let o of ki(e,t)){let e=Ci(o,n,8)+r.filter(e=>Ai(o,e)).length*100*100;if(e===0)return o;e<a&&(i=o,a=e)}return i}function Mi(e=window){let t=e.innerWidth,n=e.innerHeight,r=e.visualViewport;return{left:r?.offsetLeft??0,top:r?.offsetTop??0,width:r?.width??t,height:r?.height??n}}function Ni(e,t=window){return e?{container:e,origin:{left:e.left,top:e.top}}:{container:Mi(t),origin:{left:0,top:0}}}var Pi=`--py-fixed-right-edge`;function Fi(e=window){let t=e.visualViewport;return t?Math.max(0,Math.round(e.innerWidth-(t.offsetLeft+t.width))):0}function Ii(e=document.documentElement,t=window){let n=``,r=()=>{let r=`${Fi(t)}px`;r!==n&&(n=r,e.style.setProperty(Pi,r))};r();let i=t.visualViewport;return t.addEventListener(`resize`,r),i?.addEventListener(`resize`,r),i?.addEventListener(`scroll`,r),()=>{t.removeEventListener(`resize`,r),i?.removeEventListener(`resize`,r),i?.removeEventListener(`scroll`,r),e.style.removeProperty(Pi)}}function Li(e,t={}){let n,r=``,i,a,o,s=()=>{if(!e.isConnected||typeof document.elementFromPoint!=`function`)return;let n=(t.handle?.()??e).getBoundingClientRect();if(!n.width||!n.height)return;let s=e.getBoundingClientRect(),c=window.innerWidth,l=window.innerHeight,u=Mi(window),d=document.querySelector(`[data-py-demo-badge]`),f=[];if(d){let e=d.getBoundingClientRect();e.width&&e.height&&f.push({left:e.left,top:e.top,width:e.width,height:e.height})}if(u.width<=767){let e=document.querySelector(an);if(e){let t=e.getBoundingClientRect();t.width&&t.height&&f.push({left:t.left,top:t.top,width:t.width,height:t.height})}}let p=document.querySelector(`[data-py-review-overlay]`),m=e.closest(`[data-py-review-root]`),h=(t,n)=>(typeof document.elementsFromPoint==`function`?document.elementsFromPoint(t,n):[document.elementFromPoint(t,n)]).find(t=>t&&!e.contains(t)&&!d?.contains(t)&&!p?.contains(t)&&!m?.contains(t))??null,g={width:Math.min(Math.max(n.width,s.width),u.width-24),height:Math.max(n.height,s.height)},_=e.style.visibility;e.style.visibility=`hidden`;let v;try{v=ji(u,g,h,f)}finally{e.style.visibility=_}if(i&&a&&o){let e={left:a===`right`?u.left+u.width-12-g.width:i.left,top:o===`bottom`?u.top+u.height-12-g.height:i.top,...g},t=e.left>=u.left+12&&e.top>=u.top+12&&e.left+e.width<=u.left+u.width-12&&e.top+e.height<=u.top+u.height-12,n=Ci(e,h,8)+f.filter(t=>Ai(e,t)).length*100*100;t&&n===0&&(v=e)}let y=v.left+v.width/2>u.left+u.width/2,b=v.top+v.height/2>u.top+u.height/2,x=e.style,S=u.width<c||u.height<l||u.left!==0||u.top!==0,C=S&&s.width>n.width+1,w=S||!y?`${Math.round(C?u.left+12:v.left)}px`:`auto`,T=S||!y?`auto`:`${Math.round(u.left+u.width-v.left-v.width)}px`,E=S||!b?`${Math.round(v.top)}px`:`auto`,D=S||!b?`auto`:`${Math.round(u.top+u.height-v.top-v.height)}px`,O=C||S?`left`:y?`right`:`left`,ee=b?`bottom`:`top`,te=S?`top`:ee,k=`${w}|${T}|${E}|${D}|${O}|${ee}`;k!==r&&(r=k,x.position=`fixed`,x.setProperty(`transition`,`none`,`important`),x.left=w,x.right=T,x.top=E,x.bottom=D,e.dataset.pyFloatX=O,e.dataset.pyFloatY=ee,i={left:w===`auto`?u.left+u.width-Number.parseFloat(T)-g.width:Number.parseFloat(w),top:E===`auto`?u.top+u.height-Number.parseFloat(D)-g.height:Number.parseFloat(E),...g},a=O,o=te,window.dispatchEvent(new Event(Di)))},c=e=>typeof requestIdleCallback==`function`?requestIdleCallback(e,{timeout:1e3}):e(),l=()=>{clearTimeout(n),n=setTimeout(()=>c(s),150)};e.style.position=`fixed`,e.style.right=`12px`,e.style.bottom=`12px`,s(),l();let u=typeof MutationObserver>`u`?void 0:new MutationObserver(t=>{t.some(({target:t})=>!e.contains(t))&&l()});u?.observe(document.getElementById(`app`)??document.body,{childList:!0,subtree:!0}),u?.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-py-shell`,`data-py-viewport`]}),window.addEventListener(`resize`,l),window.addEventListener(`hashchange`,l),window.addEventListener(Di,l);let d=window.visualViewport;return d?.addEventListener(`resize`,l),d?.addEventListener(`scroll`,l),{update(){clearTimeout(n),s()},destroy(){clearTimeout(n),u?.disconnect(),window.removeEventListener(`resize`,l),window.removeEventListener(`hashchange`,l),window.removeEventListener(Di,l),d?.removeEventListener(`resize`,l),d?.removeEventListener(`scroll`,l)}}}var Ri=P(`<span class="size-1.5 rounded-full bg-primary" aria-hidden="true"></span>`),zi=P(`<span role="status"> </span>`),Bi=P(`<aside data-py-demo-badge="compact" class="pointer-events-none fixed z-30 flex size-5 select-none"><!> <!></aside>`),Vi=P(`<aside><span class="mr-1 inline-block size-1.5 rounded-full bg-primary align-middle" aria-hidden="true"></span> </aside>`);function Hi(e,t){L(t,!0);let n=q(`bottom-left`),r=q(null),i=q(!1),a=q(void 0),o={width:0,height:0};function s(){let e=F(a)?.closest(`#app`);if(e&&getComputedStyle(e).transform!==`none`){let t=e.getBoundingClientRect();return Ni({left:t.left,top:t.top,width:t.width,height:t.height})}return Ni(null)}function c(){let e=document.documentElement;if(!F(a))return;if(e.hasAttribute(`data-py-shell`)){V(r,null);return}if(F(r)||(o={width:F(a).offsetWidth,height:F(a).offsetHeight}),!o.width||typeof document.elementFromPoint!=`function`)return;let{container:t,origin:c}=s(),l=(e,t)=>{let n=document.elementFromPoint(e,t);return n&&F(a)?.contains(n)?null:n};if(!wi(t,o,l)){V(r,null),V(i,!1),V(n,Si(t,o,l),!0);return}let u=Ei(t,l);V(r,{left:u.left-c.left,top:u.top-c.top,right:u.left-t.left>t.width/2,bottom:u.top-t.top>t.height/2},!0)}Re(()=>{let e,t=e=>typeof requestIdleCallback==`function`?requestIdleCallback(e,{timeout:1e3}):e(),n=()=>{clearTimeout(e),e=setTimeout(()=>t(c),150)};n();let r=new MutationObserver(n);r.observe(document.getElementById(`app`)??document.body,{childList:!0,subtree:!0}),r.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-py-shell`,`data-py-viewport`]});let a=()=>V(i,!1),o=e=>{e.key===`Escape`&&a()};return window.addEventListener(`resize`,n),window.addEventListener(Di,n),window.addEventListener(`hashchange`,n),window.addEventListener(`hashchange`,a),window.addEventListener(`keydown`,o),()=>{window.removeEventListener(`hashchange`,a),window.removeEventListener(`keydown`,o),clearTimeout(e),r.disconnect(),window.removeEventListener(`resize`,n),window.removeEventListener(Di,n),window.removeEventListener(`hashchange`,n)}});let l=Tt().badge;var u=A(),d=I(u),f=e=>{var n=Bi();let o;var s=z(n);{let e=H(()=>wt(l.title,{name:t.name}));X(s,{variant:`ghost`,size:`icon`,type:`button`,class:`pointer-events-auto inline-flex size-5 items-center justify-center rounded-full border border-border bg-elevated/90 shadow-soft backdrop-blur focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none`,get"aria-expanded"(){return F(i)},get"aria-label"(){return l.text},get title(){return F(e)},onclick:()=>V(i,!F(i)),children:(e,t)=>{var n=Ri();Y(e,n)},$$slots:{default:!0}})}var c=G(s,2),u=e=>{var t=zi(),n=U(t,!0);R(()=>{Oe(t,1,be([`absolute whitespace-nowrap rounded-full border border-border bg-elevated px-2.5 py-1 text-[11px] font-medium text-muted-foreground shadow-soft`,F(r).bottom?`bottom-full mb-1`:`top-full mt-1`,F(r).right?`right-0`:`left-0`])),j(n,l.text)}),Y(e,t)};M(c,e=>{F(i)&&e(u)}),N(n),B(n,e=>V(a,e),()=>F(a)),R(()=>{Fe(n,`aria-label`,l.label),o=We(n,``,o,{left:`${F(r).left??``}px`,top:`${F(r).top??``}px`})}),Y(e,n)},p=e=>{var r=Vi(),i=G(z(r));N(r),B(r,e=>V(a,e),()=>F(a)),R((e,t)=>{Fe(r,`aria-label`,l.label),Fe(r,`data-py-demo-badge`,F(n)),Oe(r,1,e),Fe(r,`title`,t),j(i,` ${l.text??``}`)},[()=>be([`pointer-events-none fixed z-30 select-none whitespace-nowrap rounded-full border border-border bg-elevated px-2.5 py-1 text-[11px] font-medium text-muted-foreground shadow-soft`,F(n).startsWith(`top`)?`top-3`:`bottom-3 pb-safe`,F(n).endsWith(`left`)?`left-3`:`right-[calc(0.75rem+var(--py-fixed-right-edge,0px))]`]),()=>wt(l.title,{name:t.name})]),Y(e,r)};M(d,e=>{F(r)?e(f):e(p,-1)}),Y(e,u),J()}function Ui(e){switch(e.phase){case`generate`:return{label:`Generating the world…`,fraction:null};case`validate`:return{label:`Checking integrity…`,fraction:null};case`write`:{let t=e=>e.toLocaleString(`en-US`);return e.total>0?{label:`Writing ${t(e.done)} of ${t(e.total)} rows…`,fraction:e.done/e.total}:{label:`Writing rows…`,fraction:null}}default:return{label:`Scenario loaded.`,fraction:1}}}var Wi=P(`<!> <p class="sr-only" aria-live="polite" aria-atomic="true" data-py-pending-status=""> </p>`,1);function Gi(e,t){L(t,!0);let n=W(t,`delayMs`,3,150),r=W(t,`announceAfterMs`,3,1e3),i=xt(t.runtime),a=q(t.runtime.scenarios.progress?.()??null);K(()=>t.runtime.scenarios.subscribeProgress?.(e=>V(a,e)));let o=H(()=>i.active||F(a)!==null),s=q(!1),c=q(!1);K(()=>{if(!F(o)){V(s,!1),V(c,!1);return}let e=setTimeout(()=>V(s,!0),n()),t=setTimeout(()=>V(c,!0),r());return()=>{clearTimeout(e),clearTimeout(t)}});let l=H(()=>F(a)?Ui(F(a)):null),u=H(()=>F(l)?.fraction??null),d=H(()=>{if(F(l))return F(l).label;let e=i.operations[0];return e&&e.kind!==`service`?e.label:Tt().pending.working});var f=Wi(),p=I(f),m=e=>{{let t=H(()=>F(u)===null?null:Math.round(F(u)*100));ft(e,{class:`py-pending-bar`,"data-py-pending-bar":!0,size:`sm`,get value(){return F(t)},get ariaLabel(){return F(d)}})}};M(p,e=>{F(s)&&e(m)});var h=G(p,2),g=U(h,!0);R(()=>j(g,F(c)?F(d):``)),Y(e,f),J()}var Ki=P(`<p class="mt-1 text-xs font-medium text-destructive" role="alert"> </p>`),qi=P(`<div role="region" class="relative z-40 border-b border-border bg-accent px-4 py-3 text-sm text-accent-foreground"><div class="mx-auto flex max-w-5xl flex-col gap-3 sm:flex-row sm:items-center"><!> <div class="min-w-0 flex-1"><p><!></p> <p class="text-xs opacity-80"> </p> <!></div> <label class="inline-flex min-h-touch items-center gap-2 text-xs sm:min-h-0"><!> </label> <div class="flex gap-2"><!> <!></div></div></div>`);function Ji(e,t){L(t,!0);function n(){let e=t.runtime.scenarios;return typeof e.pendingLink==`function`?e.pendingLink():null}let r=q(Ne(n())),i=q(!0),a=Tt().linkedScenario,o=Tt().pending.loading,s=q(!1),c=q(null),l=H(()=>F(r)?t.runtime.scenarios.get(F(r).scenario)?.name??F(r).scenario:``);async function u(){if(F(r)){V(s,!0),V(c,null);try{await t.runtime.scenarios.load(F(r).scenario,{...F(r).seed===void 0?{}:{seed:F(r).seed},snapshotFirst:F(i)}),V(r,null)}catch(e){V(c,e instanceof Error?e.message:String(e),!0)}finally{V(s,!1)}}}var d=A(),f=I(d),p=e=>{var t=qi(),n=z(t),d=z(n);Dt(d,{name:`link`,class:`hidden size-4 shrink-0 sm:block`});var f=G(d,2),p=z(f),m=z(p);{let e=H(()=>F(r).seed===void 0?a.body:a.bodyWithSeed),t=H(()=>({scenario:F(l),...F(r).seed===void 0?{}:{seed:F(r).seed}}));Ot(m,{get template(){return F(e)},get values(){return F(t)},strong:[`scenario`]})}N(p);var h=G(p,2),g=U(h,!0),_=G(h,2),v=e=>{var t=Ki(),n=U(t,!0);R(()=>j(n,F(c))),Y(e,t)};M(_,e=>{F(c)&&e(v)}),N(f);var y=G(f,2),b=z(y);dt(b,{get checked(){return F(i)},onCheckedChange:e=>V(i,e===!0)});var x=G(b);N(y);var S=G(y,2),C=z(S);X(C,{type:`button`,size:`sm`,class:`inline-flex min-h-touch items-center rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground hover:bg-primary-hover disabled:opacity-60 sm:min-h-8`,get disabled(){return F(s)},get"aria-busy"(){return F(s)},onclick:u,children:(e,t)=>{Ue();var n=Ae();R(()=>j(n,F(s)?o:a.load)),Y(e,n)},$$slots:{default:!0}});var w=G(C,2);X(w,{type:`button`,variant:`outline`,size:`sm`,class:`inline-flex min-h-touch items-center rounded-md border border-border bg-surface px-3 text-sm font-medium text-surface-foreground hover:bg-muted sm:min-h-8`,get disabled(){return F(s)},onclick:()=>V(r,null),children:(e,t)=>{Ue();var n=Ae();R(()=>j(n,a.keep)),Y(e,n)},$$slots:{default:!0}}),N(S),N(n),N(t),R(()=>{Fe(t,`aria-label`,a.label),j(g,F(r).reason),j(x,` ${a.snapshotFirst??``}`)}),Y(e,t)};M(f,e=>{F(r)&&e(p)}),Y(e,d),J()}var Yi=`default`;function Xi(e){return`protoyard.${e}.frame-return`}function Zi(e,t,n=_e()){try{n?.setItem(Xi(e),t??Yi)}catch{}}function Qi(e,t=_e()){try{let n=t?.getItem(Xi(e)),r=f.safeParse(n);return r.success&&r.data!==`none`?r.data:void 0}catch{return}}function $i(e,t=_e()){try{t?.removeItem(Xi(e))}catch{}}function ea(e){let t=new URL(e,`http://protoyard.local`);return t.searchParams.get(`frame`)===`none`&&t.searchParams.delete(`frame`),t.searchParams.get(`shell`)===`none`&&t.searchParams.delete(`shell`),/^https?:\/\//.test(e)?t.toString():`${t.pathname}${t.search}${t.hash}`}var ta=[`[role="dialog"]`,`[role="alertdialog"]`,`[role="menu"]`,`[role="listbox"]`,`[aria-modal="true"]`,`dialog[open]`].join(`,`);function na(e){if(!(e instanceof Element))return!1;if(e.closest(`input, textarea, select`))return!0;let t=e.closest(`[contenteditable]`);return t!==null&&t.getAttribute(`contenteditable`)!==`false`}function ra(e,t=document){return e.key!==`Escape`||e.defaultPrevented||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||na(e.target)?!1:![...t.querySelectorAll(ta)].some(e=>e.closest(`[inert], [aria-hidden="true"], [hidden]`)===null)}function ia(e){return e.overrides.get().shell??e.scenarios.active()?.scenario.appearance?.shell??e.manifest.preview.shell??`auto`}function aa(e){return e.manifest.build.frameWhenEmbedded&&ia(e)!==`auto`}function oa(e,t){let{shell:n}=e.theme.appearance();if(n.value!==`none`||n.source!==`override`)return;let s=e.manifest,c=Qi(s.storage.namespace)??e.scenarios.active()?.scenario.appearance?.shell??s.preview.shell??`auto`,l=u(c,s.platform);if(l===`none`)return;let d=s.preview,f=d.device&&r(d.device,l)?d.device:a(l,d.viewport),p=o(f),m=p?i(p,d.orientation??p.orientation):void 0;return jt({shell:l,spec:m,...t})===`none`?void 0:l}async function sa(e,t={}){Zi(e.manifest.storage.namespace,e.overrides.get().shell),t.browser&&document.documentElement.requestFullscreen?.().catch(()=>{}),await e.theme.setOverride({shell:`none`})}async function ca(e){let t=e.manifest.storage.namespace,n=Qi(t);if($i(t),typeof document<`u`&&document.fullscreenElement&&document.exitFullscreen?.().catch(()=>{}),typeof location<`u`){let e=ea(location.href);e!==location.href&&history.replaceState(history.state,``,e)}n?await e.theme.setOverride({shell:n}):await e.overrides.clear([`shell`])}var la=P(`<p data-py-frame-hint="" role="status" class="pointer-events-none fixed top-3 left-1/2 z-[70] -translate-x-1/2 rounded-full bg-zinc-900/85 px-3 py-1 text-xs text-white shadow-sm"> </p>`),ua=P(`<!> <!>`,1);function da(e,t){L(t,!0);let n=q(!0);Re(()=>{let e=setTimeout(()=>V(n,!1),4e3),r=e=>{ra(e)&&(e.preventDefault(),t.onexit())},i=!!document.fullscreenElement,a=()=>{let e=!!document.fullscreenElement;i&&!e&&t.onexit(),i=e};return window.addEventListener(`keydown`,r),document.addEventListener(`fullscreenchange`,a),()=>{clearTimeout(e),window.removeEventListener(`keydown`,r),document.removeEventListener(`fullscreenchange`,a)}});let r=Tt().frame;var i=ua(),a=I(i);X(a,{type:`button`,variant:`ghost`,size:`icon`,"data-py-frame-toggle":!0,get"aria-label"(){return r.exit},"aria-pressed":`true`,get title(){return r.exitHint},class:`pointer-events-none fixed top-2 right-2 z-[70] flex size-8 items-center justify-center rounded-full border border-white/20 bg-zinc-800/90 text-white opacity-0 shadow-sm focus-visible:pointer-events-auto focus-visible:opacity-100 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring dark:bg-zinc-950/90`,get onclick(){return t.onexit},children:(e,t)=>{Dt(e,{name:`shrink`,class:`size-4`})},$$slots:{default:!0}});var o=G(a,2),s=e=>{var t=la(),n=U(t,!0);R(()=>j(n,r.fullScreenNotice)),Y(e,t)};M(o,e=>{F(n)&&e(s)}),Y(e,i),J()}var fa=P(`<!> <span aria-hidden="true"> </span>`,1);function pa(e,t){L(t,!0);let n=W(t,`offset`,3,0),r=Tt().frame;{let i=H(()=>`bottom: calc(100% + ${n()+8}px); right: ${-n()}px`);X(e,{type:`button`,variant:`ghost`,size:`sm`,"data-py-frame-toggle":!0,get"aria-label"(){return r.enter},"aria-pressed":`false`,get title(){return r.enterHint},get style(){return F(i)},class:`pointer-events-auto absolute z-[35] inline-flex h-8 items-center gap-1.5 whitespace-nowrap rounded-full border border-white/20 bg-zinc-800/85 px-3 text-xs font-medium text-white shadow-sm hover:bg-zinc-700/90 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring dark:bg-zinc-950/85`,onclick:e=>t.onenter({browser:e.shiftKey}),children:(e,t)=>{var n=fa(),i=I(n);Dt(i,{name:`expand`,class:`size-3.5`});var a=G(i,2),o=U(a,!0);R(()=>j(o,r.enterShort)),Y(e,n)},$$slots:{default:!0}})}J()}var ma=P(`<!> <div data-py-shell-part="stage"><div data-py-shell-part="sizer"><div data-py-shell-part="device"><div data-py-shell-part="screen"><!></div> <!> <!></div></div></div>`,1);function ha(e,t){L(t,!0);let n=St(t.runtime),r=typeof window<`u`&&kt(),a=H(()=>(n.current,r&&!aa(t.runtime))),s=typeof document<`u`&&At(),c=!1,l=q(Ne(typeof window>`u`?0:window.innerWidth)),u=q(void 0),d=q(Ne({width:0,height:0})),f=H(()=>{let e=o(n.current.device.value);return e?i(e,n.current.orientation.value):void 0}),p=H(()=>jt({shell:n.current.shell.value,spec:F(f),windowWidth:F(l),embedded:F(a),cssReady:s})),m=H(()=>F(p)===`none`?void 0:Ft[F(p)]),h=H(()=>F(p)!==`none`&&F(f)!==void 0&&F(m)!==void 0),g=H(()=>F(f)?Pt(F(f),F(m)):void 0),_=H(()=>F(g)?.inset??Mt(F(m))),v=H(()=>F(g)?.safe),y=[`widget-host`,`side-panel`,`extension-popup`],b=H(()=>!y.includes(F(p))),x=q(!1),S=q(!1);K(()=>{F(p),V(x,!1),V(S,!1)});let C=H(()=>F(h)&&F(f)&&F(m)?Nt(F(d),F(f),F(m),F(x)):void 0),w=H(()=>(n.current,oa(t.runtime,{windowWidth:F(l),embedded:F(a),cssReady:s}))),T=H(()=>{if(!F(C))return;let e=(e,t)=>e===0&&t===0?F(C).radius:0;return`${e(F(_).top,F(_).left)}px ${e(F(_).top,F(_).right)}px ${e(F(_).bottom,F(_).right)}px ${e(F(_).bottom,F(_).left)}px`}),E=q(null),D=q(void 0);K(()=>{let e=F(m);if(V(E,null),!e)return;let t=!1;return e.load().then(e=>{t||V(E,e.default)},e=>{console.error(`[protoyard] shell frame failed to load`,e)}),()=>{t=!0}}),K(()=>(F(h)&&F(D)?lt(F(D)):lt(null),()=>lt(null))),K(()=>{s||c||n.current.shell.value===`none`||(c=!0,console.warn(`[protoyard] The "${n.current.shell.value}" shell needs the renderer stylesheet, so the app renders full-bleed. Add \`@import '@protoyard/renderer-svelte/app.css';\` to this prototype's src/app.css.`))}),K(()=>{let e=document.documentElement;return F(h)?e.dataset.pyShell=F(p):delete e.dataset.pyShell,()=>{delete e.dataset.pyShell}}),K(()=>{if(!F(u)||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(([e])=>{e&&V(d,{width:e.contentRect.width,height:e.contentRect.height},!0)});return e.observe(F(u)),()=>e.disconnect()});var O=ma(),ee=I(O),te=e=>{da(e,{onexit:()=>void ca(t.runtime).catch(console.error)})};M(ee,e=>{F(w)&&e(te)});var k=G(ee,2),ne=z(k);let re;var ie=z(ne);let ae;var oe=z(ie);let se;var ce=z(oe);{let e=H(()=>n.current.reducedMotion.value?!0:void 0);_t(ce,{get reducedMotion(){return F(e)},children:(e,n)=>{var r=A(),i=I(r);we(i,()=>t.children),Y(e,r)},$$slots:{default:!0}})}N(oe),B(oe,e=>V(D,e),()=>F(D));var le=G(oe,2),ue=e=>{var n=A(),r=I(n);{let e=H(()=>({name:t.runtime.manifest.name,icon:t.runtime.manifest.icon}));xe(r,()=>F(E),(n,r)=>{r(n,{get spec(){return F(f)},get shell(){return F(p)},get chrome(){return t.runtime.manifest.preview.chrome},get app(){return F(e)},get maximized(){return F(x)},setMaximized:e=>V(x,e,!0),setScreenHidden:e=>V(S,e,!0)})})}Y(e,n)};M(le,e=>{F(C)&&F(E)&&F(f)&&e(ue)});var de=G(le,2),fe=e=>{{let n=H(()=>F(m).bezel??0);pa(e,{get offset(){return F(n)},onenter:e=>void sa(t.runtime,e).catch(console.error)})}};M(de,e=>{F(C)&&F(m)&&!F(x)&&e(fe)}),N(ie),N(ne),N(k),B(k,e=>V(u,e),()=>F(u)),R(()=>{re=We(ne,``,re,{width:F(C)?`${F(C).width*F(C).scale}px`:void 0,height:F(C)?`${F(C).height*F(C).scale}px`:void 0}),Fe(ie,`data-py-maximized`,F(C)&&F(x)?``:void 0),ae=We(ie,``,ae,{"--py-device-radius":F(C)?`${F(C).radius}px`:void 0,width:F(C)?`${F(C).width}px`:void 0,height:F(C)?`${F(C).height}px`:void 0,transform:F(C)&&F(C).scale<1?`scale(${F(C).scale})`:void 0}),Fe(oe,`data-py-portal-root`,F(h)?``:void 0),Fe(oe,`aria-hidden`,F(C)&&F(S)?`true`:void 0),se=We(oe,``,se,{inset:F(C)&&F(b)?`${F(_).top}px ${F(_).right}px ${F(_).bottom}px ${F(_).left}px`:void 0,visibility:F(C)&&F(S)?`hidden`:void 0,"border-radius":F(b)?F(T):void 0,"--py-app-height":F(C)&&F(b)?`${F(C).height-F(_).top-F(_).bottom}px`:void 0,"--py-safe-top":F(C)&&F(v)&&F(b)?`${F(v).top}px`:void 0,"--py-safe-right":F(C)&&F(v)&&F(b)?`${F(v).right}px`:void 0,"--py-safe-bottom":F(C)&&F(v)&&F(b)?`${F(v).bottom}px`:void 0,"--py-safe-left":F(C)&&F(v)&&F(b)?`${F(v).left}px`:void 0,"--tx-safe-top":F(C)&&F(v)&&F(b)?`${F(v).top}px`:void 0,"--tx-safe-right":F(C)&&F(v)&&F(b)?`${F(v).right}px`:void 0,"--tx-safe-bottom":F(C)&&F(v)&&F(b)?`${F(v).bottom}px`:void 0,"--tx-safe-left":F(C)&&F(v)&&F(b)?`${F(v).left}px`:void 0})}),Ve(`innerWidth`,e=>V(l,e,!0)),Y(e,O),J()}var ga=P(`<div role="status" class="relative z-40 flex items-start gap-3 border-b border-border bg-warning px-4 py-2.5 pt-safe text-sm text-warning-foreground"><!> <p class="min-w-0 flex-1"><strong class="font-semibold"> </strong> </p> <!></div>`);function _a(e,t){L(t,!0);let n=q(!1),r=Tt().storage;var i=A(),a=I(i),o=e=>{var i=ga(),a=z(i);Dt(a,{name:`alert`,class:`mt-0.5 size-4 shrink-0`});var o=G(a,2),s=z(o),c=U(s,!0),l=G(s);N(o);var u=G(o,2);X(u,{type:`button`,variant:`ghost`,size:`icon`,class:`-m-1 inline-flex size-11 shrink-0 items-center justify-center rounded-md hover:bg-black/10 sm:size-7`,get"aria-label"(){return r.dismiss},onclick:()=>V(n,!0),children:(e,t)=>{Dt(e,{name:`close`})},$$slots:{default:!0}}),N(i),R(()=>{j(c,r.title),j(l,` ${t.storage.warning??r.body??``}`)}),Y(e,i)};M(a,e=>{F(n)||e(o)}),Y(e,i),J()}var va=P(`<!> <div data-py-scroll-root=""><!></div> <!>`,1),ya=P(`<!> <!> <!> <!> <!>`,1);function ba(e,t){L(t,!0);let n=W(t,`demoBadge`,3,!1),r=W(t,`devtools`,3,!1);bt(t.runtime);let i=t.runtime.storage(),a=xt(t.runtime),o=t.runtime.scenarios,s=typeof o.staleWorld==`function`?o.staleWorld():null;var c=ya(),l=I(c),u=e=>{_a(e,{get storage(){return i}})};M(l,e=>{i.persistent||e(u)});var d=G(l,2);Ji(d,{get runtime(){return t.runtime}});var f=G(d,2),p=e=>{var n=A(),i=I(n);Ce(i,()=>fe(()=>import(`./StaleWorldNotice-B7m6HyVU.js`),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url),null,(e,n)=>{var i=H(()=>{var{default:e}=F(n);return{StaleWorldNotice:e}}),a=H(()=>F(i).StaleWorldNotice),o=A(),c=I(o);xe(c,()=>F(a),(e,n)=>{n(e,{get runtime(){return t.runtime},get stale(){return s},get devtools(){return r()}})}),Y(e,o)}),Y(e,n)};M(f,e=>{s&&e(p)});var m=G(f,2);ha(m,{get runtime(){return t.runtime},children:(e,n)=>{var r=va(),i=I(r);Gi(i,{get runtime(){return t.runtime}});var o=G(i,2),s=z(o);xe(s,()=>t.App,(e,t)=>{t(e,{})}),N(o),Wn(G(o,2),{}),R(()=>Fe(o,`aria-busy`,a.active||void 0)),Y(e,r)},$$slots:{default:!0}});var h=G(m,2),g=e=>{Hi(e,{get name(){return t.runtime.manifest.name}})};M(h,e=>{n()&&e(g)}),Y(e,c),J()}async function xa(e){let{findLibraryThemeMeta:t,loadLibraryTheme:n}=await fe(async()=>{let{findLibraryThemeMeta:e,loadLibraryTheme:t}=await import(`./library-X49Tko4M.js`).then(e=>e.t);return{findLibraryThemeMeta:e,loadLibraryTheme:t}},__vite__mapDeps([16,17,18,19,20,21,22,23,24,25,26,27]),import.meta.url);return await t(e)?n(e):void 0}function Sa(e,t){let n=e.manifest,r=t?.namespace&&t.namespace!==n.storage.namespace?t.namespace:void 0,i=t?.frameWhenEmbedded===!0&&!n.build.frameWhenEmbedded;return!r&&!i?e:{...e,manifest:{...n,...r?{storage:{...n.storage,namespace:r}}:{},...i?{build:{...n.build,frameWhenEmbedded:!0}}:{}}}}function Ca(e,t){let n=e.manifest,r=t?.namespace!==void 0&&t.namespace!==n.storage.namespace?m.parse(t.namespace):void 0,i=t?.frameWhenEmbedded!==void 0&&t.frameWhenEmbedded!==n.build.frameWhenEmbedded?t.frameWhenEmbedded:void 0;return r===void 0&&i===void 0?e:{...e,manifest:{...n,...r?{storage:{...n.storage,namespace:r}}:{},...i===void 0?{}:{build:{...n.build,frameWhenEmbedded:i}}}}}async function wa(e){let{App:t,target:n,build:r}=e;try{Ct(e.messages)}catch(t){return Ct(),Ta(e.definition,n,t)}let i;try{i=Ca(Sa(e.definition,qn),r)}catch(t){return Ta(e.definition,n,t)}let a=he(pe,i.themes),o=e.search===void 0?li({scenarios:i.scenarios.map(e=>e.id),personas:i.scenarios.flatMap(e=>e.actor?.id?[e.actor.id]:[]),themes:a.map(e=>e.id)}):void 0,s=new URLSearchParams(e.search??location.search);if(o)for(let[e,t]of new URLSearchParams(o))s.set(e,t);let c=k(s.toString()),l=document.documentElement;delete l.dataset.protoyardReady;let u=[],d=e=>Ta(i,n,e),f=null;try{f=await(e.createRuntime??ii)(i,{themes:a,link:c,resolveTheme:xa});let t=!1,n=f.scenarios.subscribeProgress(e=>{e?.phase===`generate`&&(t=!0)});try{await f.scenarios.ensureSeeded()}finally{n()}performance.mark(`protoyard:world-ready`,{detail:{seeded:t}})}catch(e){return f?.close(),d(e)}let p=f;yt(p),window.__protoyard=p,u.push(Kn(p,a,l)),u.push(Ii());let m=r?.devtools??e.devtools??c.devtools!==!1;n.replaceChildren();let h;try{h=Ee(ba,{target:n,props:{runtime:p,App:t,demoBadge:r?.demoBadge??e.demoBadge??!0,devtools:m}})}catch(e){for(let e of u.reverse())await e();return yt(null),window.__protoyard===p&&delete window.__protoyard,p.close(),d(e)}u.push(()=>Se(h)),await De(),l.dataset.protoyardReady=`1`,performance.mark(`protoyard:ready`);let g;if(m&&new URLSearchParams(e.search??location.search).get(`comments`)===`1`)try{let{mountReview:e}=await fe(async()=>{let{mountReview:e}=await import(`./mount-B54S61Ta.js`);return{mountReview:e}},__vite__mapDeps([28,20,4,5,29,11,30,10,9,31,32,33,34]),import.meta.url),t=await e({definition:i,runtime:p,root:n,place:Li,devtools:m});g=t.devtoolsTab,u.push(()=>t.destroy())}catch(e){console.error(`[protoyard] review comments failed to load`,e)}if(m)try{let[{mountDevtools:t},{avatarImage:n}]=await Promise.all([fe(()=>import(`./src-DthoX0U1.js`),__vite__mapDeps([35,36,23,37,38,39,22,40,41,20,42,43,44,17,45,46,47,48,49,50,21,51,52,53,54,55,8,7,56,4,5,10,9,11,57,58,59,60,18,19,24,25,26,27,61,62,2,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,1,84,85,86,30,31,33,87,88,89,90,91,92,93,94,95,96,97,29,98,99,6,12,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116]),import.meta.url),fe(()=>import(`./avatars-CA9KfGtD.js`).then(e=>e.i),__vite__mapDeps([117,17,118,23,39,36]),import.meta.url)]),r=t({runtime:p,themes:a,avatarImage:n,...e.devtoolsTabs?.length||g?{extraTabs:[...e.devtoolsTabs??[],...g?[g]:[]]}:{}});u.push(()=>r.destroy())}catch(e){console.error(`[protoyard] DevTools failed to load`,e)}return Ea(p),u.push(Da()),l.dataset.pyReady=`true`,{runtime:p,error:null,async destroy(){for(let e of u.reverse())await e();yt(null),window.__protoyard===p&&delete window.__protoyard,delete l.dataset.pyReady,delete l.dataset.protoyardReady,p.close()}}}function Ta(e,t,n){console.error(`[protoyard] boot failed`,n),t.replaceChildren();let r=Ee(hi,{target:t,props:{error:n,namespace:e.manifest.storage.namespace,name:e.manifest.name}});return document.documentElement.dataset.pyReady=`error`,{runtime:null,error:n,destroy:async()=>{await Se(r)}}}async function Ea(e){if(e.storage().backend===`indexeddb`)try{let e=typeof navigator<`u`?navigator.storage:void 0;return e?.persist?await e.persisted?.()?!0:await e.persist():void 0}catch{return}}function Da(){let e=()=>{mt.info(`Update available`,{id:`protoyard-offline-update`,description:`A newer version of this prototype is ready. Your data is kept.`,duration:0,action:{label:`Reload`,onClick:()=>window.__protoyardOffline?.applyUpdate()}})};return window.__protoyardOffline?.updateAvailable&&e(),window.addEventListener(`protoyard:offline-update`,e),()=>window.removeEventListener(`protoyard:offline-update`,e)}var Oa=`/api/comments`,ka=`protoyard.player.index`,Aa=`protoyard.player.active-namespace`,ja=80,Ma=class extends vt{explorations;constructor(e){super(ka,e?{indexedDB:e}:void 0),this.version(1).stores({explorations:`namespace,lastOpened`})}};function Na(e){return e??globalThis.indexedDB}async function Pa(){let e=globalThis.navigator?.storage;if(e?.estimate)try{let t=await e.estimate();return typeof t.usage==`number`?t.usage:void 0}catch{return}}function Fa(e){let t=e.trim(),n=[...t].some(e=>{let t=e.charCodeAt(0);return t<32||t===127});if(!t||t.length>ja||n)throw Error(`keep name must be 1-${ja} printable characters`);return t}function Ia(e){let t=new URLSearchParams(e).get(`keep`);return t===null||t.trim()===``?null:Fa(t)}async function La(e){let t=Fa(e).normalize(`NFKC`).toLowerCase(),n=globalThis.crypto?.subtle;if(!n)throw Error(`keep mode needs Web Crypto (crypto.subtle)`);let r=new Uint8Array(await n.digest(`SHA-256`,new TextEncoder().encode(`protoyard.keep\u0000${t}`)));return`keep-${Array.from(r,e=>e.toString(16).padStart(2,`0`)).join(``).slice(0,26)}`}async function Ra(e,t,n=``){let r=Ia(n);return{identity:t,namespace:r?await La(r):t.namespace,name:r??e.name,keepName:r}}async function za(e){if(!Na(e))throw Error(`IndexedDB is unavailable for the player index`);let t=new Ma(e);return await t.open(),{async list(){return(await t.explorations.orderBy(`lastOpened`).reverse().toArray()).map(e=>({...e,sizeEstimateBytes:e.sizeEstimateBytes??null}))},async put(e){await t.explorations.put(e)},async remove(e){await t.explorations.delete(e)},close(){t.close()}}}async function Ba(e,t){if(!Na(t))return!1;let n=await za(t);try{let t=await Pa();return await n.put({namespace:e.namespace,name:e.name,identitySha256:e.identity.sha256,lastOpened:new Date().toISOString(),...t===void 0?{}:{sizeEstimateBytes:t}}),!0}finally{n.close()}}function Va(e,t=(()=>{try{return globalThis.localStorage}catch{return}})()){try{return t?.setItem(Aa,e),!!t}catch{return!1}}export{wa as a,Oa as i,Ba as n,Ra as r,Va as t};