@cardstack/boxel-cli 0.13.0-unstable.4 → 0.13.0-unstable.5

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 (1050) hide show
  1. package/bundled-realms/pretui/components/doc-report.gts +2 -2
  2. package/bundled-realms/pretui/components/doc-report.usage.gts +3 -3
  3. package/bundled-realms/pretui/components/form-field.md +1 -1
  4. package/bundled-realms/pretui/components/icon-button.md +1 -1
  5. package/bundled-realms/pretui/components/popup.md +1 -1
  6. package/bundled-realms/pretui/components/switch.gts +13 -0
  7. package/bundled-realms/pretui/components/switch.md +5 -3
  8. package/bundled-realms/pretui/components/theme-frame.gts +49 -22
  9. package/bundled-realms/pretui/components/tooltip.gts +141 -42
  10. package/bundled-realms/pretui/components/tooltip.md +10 -12
  11. package/bundled-realms/pretui/components/tooltip.usage.gts +3 -5
  12. package/bundled-realms/pretui/docs/structure.md +1 -1
  13. package/bundled-realms/pretui/internal/overlay.gts +4 -2
  14. package/bundled-realms/pretui/pretui-css.gts +6 -2
  15. package/bundled-realms/pretui/theme-scoped-css.gts +262 -0
  16. package/bundled-test-harness/assets/account-switch-failed-test-DwAZq6Sc.js +45 -0
  17. package/bundled-test-harness/assets/adapter-C_6pnsx1.js +2 -0
  18. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-zMYtJWBv.js +112 -0
  19. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-CwhAV-Ow.js +130 -0
  20. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DNgclkGJ.js +46 -0
  21. package/bundled-test-harness/assets/ai-assistant-test-DGYFiRTb.js +2223 -0
  22. package/bundled-test-harness/assets/ai-function-generation-test-Dj6WzKkh.js +1176 -0
  23. package/bundled-test-harness/assets/ai-module-creation-test-EsOoJpQ1.js +151 -0
  24. package/bundled-test-harness/assets/aibot-message-uGaCPn5o.js +1312 -0
  25. package/bundled-test-harness/assets/app-pIzBYfiZ.js +14146 -0
  26. package/bundled-test-harness/assets/apply-markdown-edit-test-CPhfeg1i.js +230 -0
  27. package/bundled-test-harness/assets/ask-user-picker-NVRkhKwt.js +370 -0
  28. package/bundled-test-harness/assets/ask-user-picker-test-SsZqFm9W.js +39 -0
  29. package/bundled-test-harness/assets/assistant-transcript-test-DesuBCIB.js +57 -0
  30. package/bundled-test-harness/assets/audio-metadata-extractor-test-8JM6oZXG.js +1176 -0
  31. package/bundled-test-harness/assets/authed-fetch-test-yPTMe-9V.js +73 -0
  32. package/bundled-test-harness/assets/avif-image-def-test-Kyknj908.js +187 -0
  33. package/bundled-test-harness/assets/basic-test-D9OrrMaq.js +139 -0
  34. package/bundled-test-harness/assets/binary-upload-dedupe-test-Dnxlbbu6.js +308 -0
  35. package/bundled-test-harness/assets/bot-registration-test-Bk2lTaCW.js +97 -0
  36. package/bundled-test-harness/assets/box-test-BbV9sMyU.js +50 -0
  37. package/bundled-test-harness/assets/brand-guide-attachments-test-z4wTsKbI.js +84 -0
  38. package/bundled-test-harness/assets/brand-guide-custom-css-test-BlSJE8xo.js +196 -0
  39. package/bundled-test-harness/assets/brand-guide-edit-test-DJ1OQ6IB.js +140 -0
  40. package/bundled-test-harness/assets/brand-logo-mark-field-test-ux7eetkO.js +86 -0
  41. package/bundled-test-harness/assets/broken-link-template-test-CqB3MWyw.js +192 -0
  42. package/bundled-test-harness/assets/bundled-base-modules-test-B2oNLZSJ.js +54 -0
  43. package/bundled-test-harness/assets/bundled-base-oracle-test-DelPfFjn.js +37 -0
  44. package/bundled-test-harness/assets/buried-stack-item-scroll-test-Ixsl1tS0.js +236 -0
  45. package/bundled-test-harness/assets/button-BvYQm_A1.js +141 -0
  46. package/bundled-test-harness/assets/bxl-cyclic-graph-test-p23WCLRW.js +47 -0
  47. package/bundled-test-harness/assets/bxl-expression-test-CVTQYT_C.js +250 -0
  48. package/bundled-test-harness/assets/bxl-indexing-test-D_A7X2sr.js +212 -0
  49. package/bundled-test-harness/assets/bxl-platform-module-test-Cltfyybp.js +71 -0
  50. package/bundled-test-harness/assets/can-invoke-test-DJi7jMaU.js +455 -0
  51. package/bundled-test-harness/assets/can-read-realm-test-CIz6WX_K.js +56 -0
  52. package/bundled-test-harness/assets/cancel-indexing-job-test-0LlrOgYK.js +69 -0
  53. package/bundled-test-harness/assets/capture-test-diHIWmh0.js +360 -0
  54. package/bundled-test-harness/assets/card-api-test-Ci9b0ghP.js +198 -0
  55. package/bundled-test-harness/assets/card-basics-test-RKQoQWZD.js +5364 -0
  56. package/bundled-test-harness/assets/card-chooser-paging-test-BoUyFMEw.js +235 -0
  57. package/bundled-test-harness/assets/card-chooser-test-7ZwhxxkH.js +393 -0
  58. package/bundled-test-harness/assets/card-context-search-results-KmkXJbmC.js +30 -0
  59. package/bundled-test-harness/assets/card-context-search-results-test-CpMr8OlX.js +184 -0
  60. package/bundled-test-harness/assets/card-def-field-def-relationships-test-ByPl5n55.js +562 -0
  61. package/bundled-test-harness/assets/card-def-menu-items-test-ohuHc0b4.js +228 -0
  62. package/bundled-test-harness/assets/card-delete-test-Be971b-V.js +466 -0
  63. package/bundled-test-harness/assets/card-error-3q1o3i0e.js +72 -0
  64. package/bundled-test-harness/assets/card-error-awaiting-index-test-DPgYKfbF.js +53 -0
  65. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-CVfeJyjt.js +219 -0
  66. package/bundled-test-harness/assets/card-playground-test-D-7bi4PQ.js +1491 -0
  67. package/bundled-test-harness/assets/card-prerender-DemTfK_a.js +12939 -0
  68. package/bundled-test-harness/assets/card-thunk-error-test-DCBh1vRT.js +48 -0
  69. package/bundled-test-harness/assets/card-type-service-test-DXPrfVYk.js +161 -0
  70. package/bundled-test-harness/assets/check-correctness-test-DjE7r1X2.js +1093 -0
  71. package/bundled-test-harness/assets/check-domain-availability-test-U10xSKbY.js +98 -0
  72. package/bundled-test-harness/assets/chip-0r_r9SC8.js +44 -0
  73. package/bundled-test-harness/assets/choreo-Ci5dG5fv.js +2 -0
  74. package/bundled-test-harness/assets/choreo-D1K9RyjM.js +1031 -0
  75. package/bundled-test-harness/assets/choreo-feature-reel-test-vzmW-SFd.js +155 -0
  76. package/bundled-test-harness/assets/choreo-gallery-build-order-test-J6n0_PKm.js +436 -0
  77. package/bundled-test-harness/assets/choreo-gallery-compositor-test-DSi1N9bi.js +399 -0
  78. package/bundled-test-harness/assets/choreo-gallery-cover-test-BT05gNKC.js +214 -0
  79. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-BIuLOZH6.js +133 -0
  80. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-ClGjpnj6.js +42 -0
  81. package/bundled-test-harness/assets/choreo-gallery-drift-test-OjxMXV0Y.js +620 -0
  82. package/bundled-test-harness/assets/choreo-gallery-escort-test-D6VL4FfT.js +187 -0
  83. package/bundled-test-harness/assets/choreo-gallery-films-test-DBcDHGx8.js +140 -0
  84. package/bundled-test-harness/assets/choreo-gallery-filter-test-BUghtJZe.js +46 -0
  85. package/bundled-test-harness/assets/choreo-gallery-fold-test-0D9-_h_I.js +180 -0
  86. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-DS41eNNV.js +114 -0
  87. package/bundled-test-harness/assets/choreo-gallery-guides-test-CZnaxUNJ.js +321 -0
  88. package/bundled-test-harness/assets/choreo-gallery-hang-test-WFvsJ-MJ.js +426 -0
  89. package/bundled-test-harness/assets/choreo-gallery-highlight-test-Dn0hYPLC.js +60 -0
  90. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-C5WvS67s.js +370 -0
  91. package/bundled-test-harness/assets/choreo-gallery-interruption-test-CgT9RKTe.js +176 -0
  92. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-BZgqbTJd.js +104 -0
  93. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CWzXkvbW.js +193 -0
  94. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Dt71t4CU.js +111 -0
  95. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-B_rDq4em.js +127 -0
  96. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-j_cZ9cAM.js +100 -0
  97. package/bundled-test-harness/assets/choreo-gallery-presentation-test-CIFKR65J.js +157 -0
  98. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BvRCiCvB.js +145 -0
  99. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-DgO2MBzU.js +89 -0
  100. package/bundled-test-harness/assets/choreo-gallery-sheet-test-BntUKT_P.js +48 -0
  101. package/bundled-test-harness/assets/choreo-gallery-site-test-CvSE6Jyq.js +237 -0
  102. package/bundled-test-harness/assets/choreo-gallery-stage-Dj6tFzon.js +256 -0
  103. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-CkDrAPA8.js +102 -0
  104. package/bundled-test-harness/assets/choreo-gallery-stages-test-DHUmzoRW.js +35 -0
  105. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-BZ9-cDFh.js +138 -0
  106. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-7uP6mZpo.js +144 -0
  107. package/bundled-test-harness/assets/choreo-gallery-theater-test-DgEue9FD.js +252 -0
  108. package/bundled-test-harness/assets/choreo-gallery-tuning-test-CfPx5iCp.js +95 -0
  109. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-o9T2EFKq.js +88 -0
  110. package/bundled-test-harness/assets/choreo-gallery-wires-test-73JLkxn6.js +148 -0
  111. package/bundled-test-harness/assets/client-telemetry-test-DFM4mML2.js +340 -0
  112. package/bundled-test-harness/assets/clip-CsRtHZiN.js +92 -0
  113. package/bundled-test-harness/assets/clip-CycGr0Lf.js +2 -0
  114. package/bundled-test-harness/assets/code-block-DRE8KQZQ.js +502 -0
  115. package/bundled-test-harness/assets/code-ref-test-CDcqE8_C.js +163 -0
  116. package/bundled-test-harness/assets/code-submode-availability-test-DPTqZYYm.js +198 -0
  117. package/bundled-test-harness/assets/code-submode-test-AHV4mzJ4.js +1839 -0
  118. package/bundled-test-harness/assets/codeblocks-test-D9pbJMK8.js +418 -0
  119. package/bundled-test-harness/assets/codemirror-editor-test-BeAMVivu.js +1512 -0
  120. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bnb7_KUT.js +366 -0
  121. package/bundled-test-harness/assets/color-field-test-CR6gGEqE.js +212 -0
  122. package/bundled-test-harness/assets/compaction-test-BSqAGv4g.js +150 -0
  123. package/bundled-test-harness/assets/computed-test-DtyZGgdc.js +1320 -0
  124. package/bundled-test-harness/assets/container-CEslVSTe.js +10884 -0
  125. package/bundled-test-harness/assets/content-preview-components-test-BztI4fz-.js +462 -0
  126. package/bundled-test-harness/assets/copy-and-edit-test-Cqw7kcur.js +292 -0
  127. package/bundled-test-harness/assets/copy-card-test-D5m3eVEH.js +218 -0
  128. package/bundled-test-harness/assets/copy-file-to-realm-test-FPY-6Ddm.js +148 -0
  129. package/bundled-test-harness/assets/copy-source-test-9pJD-qey.js +56 -0
  130. package/bundled-test-harness/assets/create-file-test-DjMf88u_.js +1086 -0
  131. package/bundled-test-harness/assets/create-file-test-XbgOqg38.js +464 -0
  132. package/bundled-test-harness/assets/create-listing-modal-test-DyGlGMWu.js +273 -0
  133. package/bundled-test-harness/assets/create-listing-pr-request-test-CBtIV0Z8.js +117 -0
  134. package/bundled-test-harness/assets/create-spec-test-4xR0gM7E.js +256 -0
  135. package/bundled-test-harness/assets/create-submission-workflow-test-DQpWrpGT.js +132 -0
  136. package/bundled-test-harness/assets/create-workspace-test-BQAudgpS.js +104 -0
  137. package/bundled-test-harness/assets/credential-fields-test-DXKBdbZD.js +200 -0
  138. package/bundled-test-harness/assets/csv-file-def-test-Cnp4y834.js +102 -0
  139. package/bundled-test-harness/assets/dashboard-CmuOhIYC.js +3628 -0
  140. package/bundled-test-harness/assets/dashboard-CzN49x74.css +2400 -0
  141. package/bundled-test-harness/assets/dashboard-add-workspace-test-T32hWB-g.js +50 -0
  142. package/bundled-test-harness/assets/dashboard-agents-test-BN5maCgQ.js +334 -0
  143. package/bundled-test-harness/assets/dashboard-archive-test-BzwUte_Z.js +128 -0
  144. package/bundled-test-harness/assets/dashboard-delete-test-D2Gcp81V.js +163 -0
  145. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-BgKNIr35.js +71 -0
  146. package/bundled-test-harness/assets/dashboard-duplicate-test-D7JEWylc.js +222 -0
  147. package/bundled-test-harness/assets/dashboard-get-started-test-DOGPzGoA.js +374 -0
  148. package/bundled-test-harness/assets/dashboard-ir2bakJS.js +142 -0
  149. package/bundled-test-harness/assets/dashboard-pinned-cards-test-Bn_P9xJU.js +220 -0
  150. package/bundled-test-harness/assets/dashboard-publish-test-64sGQ0nG.js +70 -0
  151. package/bundled-test-harness/assets/dashboard-reindex-test-DJjYq1ct.js +115 -0
  152. package/bundled-test-harness/assets/dashboard-section-rail-test-ZkAhWu5V.js +169 -0
  153. package/bundled-test-harness/assets/dashboard-state-test-BbkpPB5L.js +162 -0
  154. package/bundled-test-harness/assets/dashboard-test-CBLdPrSt.js +545 -0
  155. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DFT3R1Zx.js +62 -0
  156. package/bundled-test-harness/assets/dashboard-workspace-test-DqBdCFo2.js +537 -0
  157. package/bundled-test-harness/assets/dashboard-workspaces-section-test-CH1HDfxR.js +410 -0
  158. package/bundled-test-harness/assets/data-file-def-preview-test-CNsZwQEJ.js +155 -0
  159. package/bundled-test-harness/assets/date-time-fields-test-CEFaZTnF.js +359 -0
  160. package/bundled-test-harness/assets/debug-message-test-0hv0RwE_.js +117 -0
  161. package/bundled-test-harness/assets/declared-captures-test-C-0yPRU7.js +879 -0
  162. package/bundled-test-harness/assets/delete-workspace-test-CZOwGy78.js +102 -0
  163. package/bundled-test-harness/assets/diffing-test-BEKI905O.js +210 -0
  164. package/bundled-test-harness/assets/download-file-to-realm-test-C1kAGDll.js +119 -0
  165. package/bundled-test-harness/assets/editor-test-C9x5ZY6g.js +688 -0
  166. package/bundled-test-harness/assets/edits-D76-aanh.js +651 -0
  167. package/bundled-test-harness/assets/email-field-test-LGkrB_2B.js +75 -0
  168. package/bundled-test-harness/assets/enum-field-test-CPyV1J-m.js +935 -0
  169. package/bundled-test-harness/assets/error-display-test-bWuUtfIG.js +343 -0
  170. package/bundled-test-harness/assets/evaluate-module-test-CbS5h8t3.js +91 -0
  171. package/bundled-test-harness/assets/execute-atomic-operations-test-B4Kfco0k.js +113 -0
  172. package/bundled-test-harness/assets/externals-CDQm-Lm7.js +4393 -0
  173. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DQSiTzvj.js +207 -0
  174. package/bundled-test-harness/assets/fallback-banner-test-CJFKLpOy.js +225 -0
  175. package/bundled-test-harness/assets/fallback-banner-test-DQkrFE4-.js +53 -0
  176. package/bundled-test-harness/assets/fallback-models-test-CiWfmxaB.js +161 -0
  177. package/bundled-test-harness/assets/fetch-card-json-test-DULUqUEu.js +61 -0
  178. package/bundled-test-harness/assets/field-configuration-test-BXZq28xa.js +551 -0
  179. package/bundled-test-harness/assets/field-markdown-domain-test-DdXCifs6.js +616 -0
  180. package/bundled-test-harness/assets/field-markdown-oversize-test-DouPPTHX.js +88 -0
  181. package/bundled-test-harness/assets/field-markdown-primitives-test-DSRGJeyl.js +365 -0
  182. package/bundled-test-harness/assets/field-markdown-specialized-test-DlTYLl_s.js +534 -0
  183. package/bundled-test-harness/assets/field-playground-test-NhS4VvoN.js +894 -0
  184. package/bundled-test-harness/assets/field-support-predicates-test-DWpyT1Qf.js +167 -0
  185. package/bundled-test-harness/assets/file-attachment-test-m72-VerW.js +796 -0
  186. package/bundled-test-harness/assets/file-chooser-panel-test-DuAqD9bn.js +153 -0
  187. package/bundled-test-harness/assets/file-chooser-test-CjaXXwpT.js +504 -0
  188. package/bundled-test-harness/assets/file-def-format-templates-test-BDs4OmHq.js +380 -0
  189. package/bundled-test-harness/assets/file-def-live-reload-test-BqTdnq-W.js +124 -0
  190. package/bundled-test-harness/assets/file-def-menu-items-test-DqdINXsD.js +138 -0
  191. package/bundled-test-harness/assets/file-def-navigation-test-BPGr0SQy.js +109 -0
  192. package/bundled-test-harness/assets/file-def-serialization-test-CvjW-FlC.js +89 -0
  193. package/bundled-test-harness/assets/file-def-test-C-Yv_NjS.js +216 -0
  194. package/bundled-test-harness/assets/file-preview-live-reload-test-MzwGwasU.js +310 -0
  195. package/bundled-test-harness/assets/file-resource-primitives-test-D3GmfqNs.js +255 -0
  196. package/bundled-test-harness/assets/file-tree-from-index-test-CfldnUgm.js +96 -0
  197. package/bundled-test-harness/assets/file-tree-test--0ZCPRe9.js +851 -0
  198. package/bundled-test-harness/assets/file-view-model-test-BDIAeBV8.js +346 -0
  199. package/bundled-test-harness/assets/filedef-export-shape-test-B2tgU404.js +61 -0
  200. package/bundled-test-harness/assets/film-D1E-odYG.js +13 -0
  201. package/bundled-test-harness/assets/film-D25Y0ED6.js +2 -0
  202. package/bundled-test-harness/assets/film-D97U-ydx.js +4074 -0
  203. package/bundled-test-harness/assets/flac-audio-def-test-ByoXMoQ1.js +143 -0
  204. package/bundled-test-harness/assets/font-metadata-extractor-test-hawLTDTG.js +415 -0
  205. package/bundled-test-harness/assets/formatted-aibot-message-test-Bdx_-Ktn.js +109 -0
  206. package/bundled-test-harness/assets/formatted-user-message-test-CodbrU3t.js +43 -0
  207. package/bundled-test-harness/assets/freestyle-test-faQhSciz.js +17 -0
  208. package/bundled-test-harness/assets/full-reindex-realm-test-CE5RJTIC.js +101 -0
  209. package/bundled-test-harness/assets/garbage-collection-test-v-3sev77.js +403 -0
  210. package/bundled-test-harness/assets/general-test-DQuxDvXK.js +923 -0
  211. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-CucWyrkH.js +65 -0
  212. package/bundled-test-harness/assets/generic-file-def-preview-test-_EDRsebi.js +71 -0
  213. package/bundled-test-harness/assets/get-available-realm-identifiers-test-CV023yek.js +47 -0
  214. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test--DOu3DyV.js +47 -0
  215. package/bundled-test-harness/assets/get-default-writable-realm-test-Bic8jl6R.js +54 -0
  216. package/bundled-test-harness/assets/get-published-realms-test-DrA5YcFN.js +71 -0
  217. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-jfU6SIWn.js +54 -0
  218. package/bundled-test-harness/assets/get-relationship-membership-state-test-Ccy2Z7MN.js +1308 -0
  219. package/bundled-test-harness/assets/get-user-system-card-test-Bmq2lmWv.js +67 -0
  220. package/bundled-test-harness/assets/gif-image-def-test-N1mMQC-X.js +188 -0
  221. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-DzPKH76g.js +160 -0
  222. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-D9mlcQuN.js +74 -0
  223. package/bundled-test-harness/assets/gts-file-def-test-BL1jpQ9J.js +100 -0
  224. package/bundled-test-harness/assets/head-format-preview-test-BVCaPQqc.js +158 -0
  225. package/bundled-test-harness/assets/helpers-Ds68JxHe.js +5 -0
  226. package/bundled-test-harness/assets/host-mode-service-B4bisRdR.js +262 -0
  227. package/bundled-test-harness/assets/host-mode-test-BmkN2PCJ.js +831 -0
  228. package/bundled-test-harness/assets/host-submode-test-C6SxQ796.js +1392 -0
  229. package/bundled-test-harness/assets/html-component-test-CNQ9wF0Q.js +65 -0
  230. package/bundled-test-harness/assets/html-def-test-BcaCVVQq.js +160 -0
  231. package/bundled-test-harness/assets/html-meta-extractor-test-BU1hjkTp.js +60 -0
  232. package/bundled-test-harness/assets/hydratable-card-test-CX6MWiti.js +426 -0
  233. package/bundled-test-harness/assets/icon-button-C1zH38Nc.js +67 -0
  234. package/bundled-test-harness/assets/image-metadata-extractor-test-CakSBPZ_.js +1109 -0
  235. package/bundled-test-harness/assets/index-changes-test-D8RtgfyG.js +367 -0
  236. package/bundled-test-harness/assets/index-query-engine-test-BOvxkx07.js +2593 -0
  237. package/bundled-test-harness/assets/index-writer-test-B_bR2fjw.js +3040 -0
  238. package/bundled-test-harness/assets/inspector-test-BwPXJj1S.js +2058 -0
  239. package/bundled-test-harness/assets/instance-filter-matcher-test-COAlkUed.js +788 -0
  240. package/bundled-test-harness/assets/instantiate-card-test-BVQhZjpq.js +164 -0
  241. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DzQLG41H.js +475 -0
  242. package/bundled-test-harness/assets/interact-submode-setup-C5bKXq73.js +566 -0
  243. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-Cd3dpjhB.js +99 -0
  244. package/bundled-test-harness/assets/invite-user-to-room-test-Brabz1tt.js +142 -0
  245. package/bundled-test-harness/assets/invoke-card-operation-test-C1Q1FUf4.js +333 -0
  246. package/bundled-test-harness/assets/isolated-render-test-BLJfS7BU.js +51 -0
  247. package/bundled-test-harness/assets/job-scoped-doc-cache-test-Bgv5woaB.js +181 -0
  248. package/bundled-test-harness/assets/job-scoped-instance-residency-test-C_bB6KpR.js +103 -0
  249. package/bundled-test-harness/assets/jpg-image-def-test-gdLIKocD.js +697 -0
  250. package/bundled-test-harness/assets/json-file-def-test-CPYMRBY-.js +95 -0
  251. package/bundled-test-harness/assets/key-notices-badge-test-DemslfLw.js +155 -0
  252. package/bundled-test-harness/assets/key-readiness-test-5tq5JycL.js +190 -0
  253. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-BbhDZ2PH.js +398 -0
  254. package/bundled-test-harness/assets/linksto-error-sentinel-test-C2t7fFPi.js +238 -0
  255. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test--U_UvUty.js +354 -0
  256. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-Dj3Xy0ZF.js +303 -0
  257. package/bundled-test-harness/assets/linksto-sentinel-reload-test-D0dK4Jjs.js +197 -0
  258. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test---IYiXok.js +260 -0
  259. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CT04MhES.js +196 -0
  260. package/bundled-test-harness/assets/lint-and-fix-test-aadgx7rX.js +51 -0
  261. package/bundled-test-harness/assets/live-test-BGij_vuc.js +100 -0
  262. package/bundled-test-harness/assets/live-test-CppvValf.js +2 -0
  263. package/bundled-test-harness/assets/load-default-skills-test-Cp2m_ebp.js +74 -0
  264. package/bundled-test-harness/assets/loader-parallel-prefetch-test-vU_26Jqu.js +257 -0
  265. package/bundled-test-harness/assets/loader-test-CTaw8K_B.js +482 -0
  266. package/bundled-test-harness/assets/loading-test-DGGt4qZZ.js +63 -0
  267. package/bundled-test-harness/assets/m4a-audio-def-test-DAiReOXH.js +190 -0
  268. package/bundled-test-harness/assets/main-DUKPWRts.js +5 -0
  269. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIXq9FqR.js +470 -0
  270. package/bundled-test-harness/assets/markdown-embed-chooser-test-zFGh9WfP.js +334 -0
  271. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-Byn_WFwY.js +447 -0
  272. package/bundled-test-harness/assets/markdown-embed-preview-test-Y3iFMttg.js +368 -0
  273. package/bundled-test-harness/assets/markdown-fallback-test-Br1TPkLZ.js +316 -0
  274. package/bundled-test-harness/assets/markdown-file-def-test-Crm2MAnq.js +380 -0
  275. package/bundled-test-harness/assets/markdown-helpers-test-CZ9Vvywc.js +188 -0
  276. package/bundled-test-harness/assets/markdown-highlighting-test-CFMkoVDl.js +244 -0
  277. package/bundled-test-harness/assets/markdown-preview-Df5fp1SY.js +72 -0
  278. package/bundled-test-harness/assets/markdown-preview-test-DDaPzsVs.js +238 -0
  279. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-aH6HQly1.js +146 -0
  280. package/bundled-test-harness/assets/markdown-skill-search-test-CiNLQs-5.js +80 -0
  281. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-DaA8w1Jj.js +63 -0
  282. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-21GIlf55.js +300 -0
  283. package/bundled-test-harness/assets/matrix-service-personal-realm-test-jn9DUENm.js +125 -0
  284. package/bundled-test-harness/assets/matrix-service-realm-servers-test-eNZVJakl.js +55 -0
  285. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-Cabm8_dY.js +132 -0
  286. package/bundled-test-harness/assets/matrix-service-relogin-test-C77EFgjc.js +59 -0
  287. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-BgM0fPiO.js +35 -0
  288. package/bundled-test-harness/assets/menu-Cl50TSFe.js +3561 -0
  289. package/bundled-test-harness/assets/message-service-subscription-test-CfEqH2jP.js +110 -0
  290. package/bundled-test-harness/assets/message-service-test-DsTzH1In.js +144 -0
  291. package/bundled-test-harness/assets/message-tool-test-C5xVfTtj.js +33 -0
  292. package/bundled-test-harness/assets/midi-audio-def-test-goLRCNCZ.js +182 -0
  293. package/bundled-test-harness/assets/migrate-skill-test-yPCbVfxG.js +161 -0
  294. package/bundled-test-harness/assets/mini-YXjrY_tH.js +1404 -0
  295. package/bundled-test-harness/assets/mini-card-chooser-test-DrllikHB.js +272 -0
  296. package/bundled-test-harness/assets/mini-file-chooser-test-BfqayhmI.js +201 -0
  297. package/bundled-test-harness/assets/mock-matrix-C7BrPS6S.js +2 -0
  298. package/bundled-test-harness/assets/mock-matrix-FjsXmU7-.js +15107 -0
  299. package/bundled-test-harness/assets/modal-BgaZavcs.js +322 -0
  300. package/bundled-test-harness/assets/model-cost-tier-test-CZlu1zww.js +174 -0
  301. package/bundled-test-harness/assets/model-file-extract-test-CjEBupY5.js +206 -0
  302. package/bundled-test-harness/assets/module-transpile-cache-test-XW6DDsmz.js +67 -0
  303. package/bundled-test-harness/assets/monaco-test-DkoRuFiQ.js +100 -0
  304. package/bundled-test-harness/assets/mp3-audio-def-test-v369NNsQ.js +133 -0
  305. package/bundled-test-harness/assets/multiple-stacks-test-CJpYPWdM.js +208 -0
  306. package/bundled-test-harness/assets/nested-query-field-render-test-CfDrBcUN.js +249 -0
  307. package/bundled-test-harness/assets/no-stacks-test-MmsJeLpz.js +48 -0
  308. package/bundled-test-harness/assets/number-field-test-A7B2r0M5.js +184 -0
  309. package/bundled-test-harness/assets/office-file-def-test-BNRvFmCB.js +263 -0
  310. package/bundled-test-harness/assets/office-metadata-extractor-test-zlDoEIEp.js +218 -0
  311. package/bundled-test-harness/assets/office-poster-capture-test-DdFEaOxR.js +203 -0
  312. package/bundled-test-harness/assets/ogg-audio-def-test-kk91BzQY.js +196 -0
  313. package/bundled-test-harness/assets/open-create-listing-modal-test-D1Dl1pov.js +131 -0
  314. package/bundled-test-harness/assets/open-image-in-new-tab-test-DyCmdMyO.js +52 -0
  315. package/bundled-test-harness/assets/open-secure-window-test-dz1vPudF.js +253 -0
  316. package/bundled-test-harness/assets/open-workspace-test-BvTcskzP.js +46 -0
  317. package/bundled-test-harness/assets/operation-lowering-test-CKkamOQt.js +2957 -0
  318. package/bundled-test-harness/assets/operations-invocation-test-BMj42rQe.js +523 -0
  319. package/bundled-test-harness/assets/operations-optimistic-test-KJLyzT8v.js +203 -0
  320. package/bundled-test-harness/assets/operations-query-test-J3HcnaoK.js +459 -0
  321. package/bundled-test-harness/assets/operations-store-reconciliation-test-CkbGBMBQ.js +406 -0
  322. package/bundled-test-harness/assets/operations-test-C7zXXpRW.js +2518 -0
  323. package/bundled-test-harness/assets/operator-mode-acceptance-test-BPolI_RD.js +1195 -0
  324. package/bundled-test-harness/assets/operator-mode-card-chooser-test-CQ1v8med.js +1036 -0
  325. package/bundled-test-harness/assets/operator-mode-links-test-BMHEauS3.js +797 -0
  326. package/bundled-test-harness/assets/operator-mode-test-blL_JVF8.js +696 -0
  327. package/bundled-test-harness/assets/operator-mode-ui-test-BG6I7-Hc.js +1045 -0
  328. package/bundled-test-harness/assets/overlay-D2rQi8lJ.js +427 -0
  329. package/bundled-test-harness/assets/overlay-menu-items-test-D-zmRQQ0.js +331 -0
  330. package/bundled-test-harness/assets/overlays-COinwHCP.js +2 -0
  331. package/bundled-test-harness/assets/overlays-detached-element-test-C73nMXes.js +56 -0
  332. package/bundled-test-harness/assets/overlays-nTqcu69K.js +75 -0
  333. package/bundled-test-harness/assets/panel-D9SEMehG.js +15124 -0
  334. package/bundled-test-harness/assets/past-sessions-test-De9N4wVX.js +321 -0
  335. package/bundled-test-harness/assets/patch-fields-test-Bp2IE0Jw.js +1014 -0
  336. package/bundled-test-harness/assets/patch-instance-test-DssuRGKP.js +348 -0
  337. package/bundled-test-harness/assets/pdf-file-def-test-Barj9ffD.js +111 -0
  338. package/bundled-test-harness/assets/pdf-metadata-extractor-test-B7KnXcIm.js +130 -0
  339. package/bundled-test-harness/assets/permission-checking-realm-test-OBzvhDB_.js +306 -0
  340. package/bundled-test-harness/assets/persist-module-inspector-view-test-BIdbkdPr.js +60 -0
  341. package/bundled-test-harness/assets/persist-scroll-position-test-Bhb7wJiy.js +254 -0
  342. package/bundled-test-harness/assets/phone-number-field-test-C2yuCrXY.js +73 -0
  343. package/bundled-test-harness/assets/pill-menu-test-BIp91YXi.js +60 -0
  344. package/bundled-test-harness/assets/plate-DAr_pvwC.js +41 -0
  345. package/bundled-test-harness/assets/plate-DeoQd99m.js +2 -0
  346. package/bundled-test-harness/assets/player-BvXGBItd.js +2 -0
  347. package/bundled-test-harness/assets/player-CAVQUyKk.js +82 -0
  348. package/bundled-test-harness/assets/playground-B02e8uqB.js +58 -0
  349. package/bundled-test-harness/assets/plural-field-components-test-C1acuN-A.js +198 -0
  350. package/bundled-test-harness/assets/png-image-def-test-B9QeVo1f.js +266 -0
  351. package/bundled-test-harness/assets/policy-audit-confirmation-test-CeVquvc_.js +155 -0
  352. package/bundled-test-harness/assets/policy-scoped-search-test-SFPiIqR3.js +339 -0
  353. package/bundled-test-harness/assets/prerender-file-extract-test-HSJKAHyO.js +346 -0
  354. package/bundled-test-harness/assets/prerender-html-test-BTAcFCme.js +670 -0
  355. package/bundled-test-harness/assets/prerender-meta-test-Csyz2b21.js +614 -0
  356. package/bundled-test-harness/assets/prerender-module-test-DpTYAbmI.js +409 -0
  357. package/bundled-test-harness/assets/prerender-persistence-block-test-BhIt-7kK.js +124 -0
  358. package/bundled-test-harness/assets/prerender-pre-model-error-test-DxKPQKqx.js +61 -0
  359. package/bundled-test-harness/assets/prerender-serialize-cycle-test-C8V5YWQO.js +134 -0
  360. package/bundled-test-harness/assets/prerendered-html-read-test-Cq7JVGwg.js +191 -0
  361. package/bundled-test-harness/assets/pretui-components-test-Ducr9fLT.css +743 -0
  362. package/bundled-test-harness/assets/pretui-components-test-Hs0uyIUQ.js +992 -0
  363. package/bundled-test-harness/assets/pretui-primitives-CRs8NRm0.js +69 -0
  364. package/bundled-test-harness/assets/preview-format-test-cCqLrfdY.js +103 -0
  365. package/bundled-test-harness/assets/preview-test-BMqJSoR1.js +474 -0
  366. package/bundled-test-harness/assets/process-card-test-578tfDvr.js +94 -0
  367. package/bundled-test-harness/assets/profile-settings-modal-CVnNl7Yu.js +990 -0
  368. package/bundled-test-harness/assets/publish-realm-COoeWexp.js +82 -0
  369. package/bundled-test-harness/assets/publish-realm-test-a5nkx0Ov.js +210 -0
  370. package/bundled-test-harness/assets/query-field-barrier-test-qX3xVPfk.js +113 -0
  371. package/bundled-test-harness/assets/query-field-error-sentinel-test-V6JDPFLX.js +201 -0
  372. package/bundled-test-harness/assets/query-field-membership-status-test-CK7eDf-K.js +323 -0
  373. package/bundled-test-harness/assets/query-field-page-optin-test-B5YBHUvU.js +126 -0
  374. package/bundled-test-harness/assets/query-field-schema-test-D4SjOGlK.js +231 -0
  375. package/bundled-test-harness/assets/query-field-search-throttle-test-BVkm1-D8.js +154 -0
  376. package/bundled-test-harness/assets/query-field-stale-prerender-test-9g7hcD91.js +152 -0
  377. package/bundled-test-harness/assets/query-fields-test-CQYqhzpN.js +535 -0
  378. package/bundled-test-harness/assets/quick-look-test-icQwb1NJ.js +139 -0
  379. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D0mJorwH.js +91 -0
  380. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-B_F_2GEB.js +45 -0
  381. package/bundled-test-harness/assets/read-source-test-BgJV4B4F.js +67 -0
  382. package/bundled-test-harness/assets/read-text-file-test-DaeLzg4u.js +124 -0
  383. package/bundled-test-harness/assets/realm-C_a9su1j.js +2858 -0
  384. package/bundled-test-harness/assets/realm-api-keys-D5USFOoS.js +2 -0
  385. package/bundled-test-harness/assets/realm-api-keys-m_VOcixC.js +578 -0
  386. package/bundled-test-harness/assets/realm-api-keys-test-C_uZnTmq.js +588 -0
  387. package/bundled-test-harness/assets/realm-api-keys-test-gtJ8XZCE.js +109 -0
  388. package/bundled-test-harness/assets/realm-config-m5eccPW8.js +833 -0
  389. package/bundled-test-harness/assets/realm-config-policy-standing-test-CXJ4ZMde.js +290 -0
  390. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-DoEunShH.js +274 -0
  391. package/bundled-test-harness/assets/realm-config-settings-test-BYi9i4O6.js +187 -0
  392. package/bundled-test-harness/assets/realm-field-test-B_PUoqnk.js +100 -0
  393. package/bundled-test-harness/assets/realm-indexing-test-8iLjeV_e.js +4380 -0
  394. package/bundled-test-harness/assets/realm-policy-fitted-test-Bptvra0U.js +206 -0
  395. package/bundled-test-harness/assets/realm-policy-test-DwG0qqXE.js +1141 -0
  396. package/bundled-test-harness/assets/realm-querying-test-Dvw26A6Q.js +1067 -0
  397. package/bundled-test-harness/assets/realm-server-form-agnostic-test-DrXQH0UP.js +96 -0
  398. package/bundled-test-harness/assets/realm-server-subscriber-test-Dkj23vQK.js +46 -0
  399. package/bundled-test-harness/assets/realm-service-info-test-CdRlDhj-.js +67 -0
  400. package/bundled-test-harness/assets/realm-test-DGYN48Qx.js +2364 -0
  401. package/bundled-test-harness/assets/realm-token-refresh-test-CEWATL9h.js +153 -0
  402. package/bundled-test-harness/assets/realm-url-tooltip-test-8ZjTNPuy.js +78 -0
  403. package/bundled-test-harness/assets/reasoning-test-WUx-4agu.js +221 -0
  404. package/bundled-test-harness/assets/recent-files-test-Dc6L6Dm4.js +450 -0
  405. package/bundled-test-harness/assets/reindex-realm-test-CFRSt39u.js +117 -0
  406. package/bundled-test-harness/assets/relationship-loading-state-test-FKbtOFUr.js +290 -0
  407. package/bundled-test-harness/assets/remix-card-test-CKGC_Sgq.js +58 -0
  408. package/bundled-test-harness/assets/rendered-markdown-B_jWmDrK.js +292 -0
  409. package/bundled-test-harness/assets/rendered-markdown-test-sdWhU0NA.js +587 -0
  410. package/bundled-test-harness/assets/resident-instance-reuse-test-BjdhE6CM.js +82 -0
  411. package/bundled-test-harness/assets/result-tile-o6dtjgX4.js +144 -0
  412. package/bundled-test-harness/assets/rich-markdown-field-test-VXr6l20h.js +1647 -0
  413. package/bundled-test-harness/assets/room-message-test-BYNhZ39n.js +484 -0
  414. package/bundled-test-harness/assets/run-FzaqmBEl.js +3959 -0
  415. package/bundled-test-harness/assets/run-realm-code-DsBUf1si.js +2964 -0
  416. package/bundled-test-harness/assets/run-realm-code-test-cS0DzaKo.js +3844 -0
  417. package/bundled-test-harness/assets/sanitize-module-list-test-CvuOOiUY.js +85 -0
  418. package/bundled-test-harness/assets/save-card-skip-index-wait-test-fpJ1eq32.js +89 -0
  419. package/bundled-test-harness/assets/schema-editor-test-NkKjCgyf.js +785 -0
  420. package/bundled-test-harness/assets/schema-generation-test-Dmg3lWl7.js +28 -0
  421. package/bundled-test-harness/assets/scrolling-test-Dd4gv_fj.js +412 -0
  422. package/bundled-test-harness/assets/search-adorn-test-CZebk7_y.js +136 -0
  423. package/bundled-test-harness/assets/search-and-choose-test-Bd4NZUup.js +154 -0
  424. package/bundled-test-harness/assets/search-correlation-id-test-DXKlEO55.js +139 -0
  425. package/bundled-test-harness/assets/search-entries-result-test-QQawA8Fm.js +234 -0
  426. package/bundled-test-harness/assets/search-entries-test-3DlqGPQq.js +1486 -0
  427. package/bundled-test-harness/assets/search-entries-tool-test-D1TvDE9D.js +504 -0
  428. package/bundled-test-harness/assets/search-google-images-test-DqsoQGr1.js +166 -0
  429. package/bundled-test-harness/assets/search-results-DGrNaPxh.js +266 -0
  430. package/bundled-test-harness/assets/search-results-test-CqVHYNRt.js +578 -0
  431. package/bundled-test-harness/assets/search-selection-menu-test-D6bIjKiH.js +108 -0
  432. package/bundled-test-harness/assets/search-sheet-files-test-Bf37TQXo.js +126 -0
  433. package/bundled-test-harness/assets/search-sheet-persistence-test-CV4_XdxR.js +131 -0
  434. package/bundled-test-harness/assets/search-test-Dlb-wg3a.js +2249 -0
  435. package/bundled-test-harness/assets/search-tool-test-BJLgVMoL.js +156 -0
  436. package/bundled-test-harness/assets/searchable-option-test-eJaIPH_L.js +322 -0
  437. package/bundled-test-harness/assets/searchable-search-doc-test-yH9fLGNS.js +1271 -0
  438. package/bundled-test-harness/assets/section-rail-CNFCebtT.js +113 -0
  439. package/bundled-test-harness/assets/section-rail-test-KNJAWWl6.js +256 -0
  440. package/bundled-test-harness/assets/secure-sign-in-Dyljp0Th.js +174 -0
  441. package/bundled-test-harness/assets/secure-sign-in-test-QnqNuTP3.js +373 -0
  442. package/bundled-test-harness/assets/segmented-control-DxJdoJ4Z.js +173 -0
  443. package/bundled-test-harness/assets/select-BiQTg2ts.js +175 -0
  444. package/bundled-test-harness/assets/send-ai-assistant-message-test-CAn7M2dZ.js +52 -0
  445. package/bundled-test-harness/assets/send-bot-trigger-event-test-qBu5E_jy.js +56 -0
  446. package/bundled-test-harness/assets/send-request-via-proxy-test-CLuwLBq_.js +380 -0
  447. package/bundled-test-harness/assets/sending-test-Dt9Dh2wW.js +659 -0
  448. package/bundled-test-harness/assets/serialization-rri-form-audit-test-hMJukiKt.js +136 -0
  449. package/bundled-test-harness/assets/serialization-test-W5e3wKbz.js +8758 -0
  450. package/bundled-test-harness/assets/set-user-system-card-test-CjgWLkNV.js +59 -0
  451. package/bundled-test-harness/assets/setup-CssMNvui.js +772 -0
  452. package/bundled-test-harness/assets/setup-D8YXvK-p.js +2 -0
  453. package/bundled-test-harness/assets/shared-link-target-reuse-test-D42UO8DC.js +207 -0
  454. package/bundled-test-harness/assets/show-card-test-CHEaS514.js +365 -0
  455. package/bundled-test-harness/assets/signed-capture-link-test-BgEu0F-S.js +132 -0
  456. package/bundled-test-harness/assets/single-stack-test-DYcu_v7Z.js +652 -0
  457. package/bundled-test-harness/assets/skills-test-BP8QNesE.js +648 -0
  458. package/bundled-test-harness/assets/skip-boot-index-guard-test-BzRIncDN.js +46 -0
  459. package/bundled-test-harness/assets/spec-test-BYvFR6Xb.js +1077 -0
  460. package/bundled-test-harness/assets/spinner-Bx9x55NA.js +49 -0
  461. package/bundled-test-harness/assets/src-LqENIikj.js +5 -0
  462. package/bundled-test-harness/assets/src-a4d10Hra.js +216 -0
  463. package/bundled-test-harness/assets/stick-to-bottom-resize-test-BBLiCR3X.js +56 -0
  464. package/bundled-test-harness/assets/store-add-test-D_9IHQjZ.js +50 -0
  465. package/bundled-test-harness/assets/store-module-rebuild-test-BRGZoLRV.js +454 -0
  466. package/bundled-test-harness/assets/store-search-test-3G8JHuj2.js +175 -0
  467. package/bundled-test-harness/assets/store-test-Dd4WQp7L.js +3672 -0
  468. package/bundled-test-harness/assets/structured-theme-test-11TNsgUW.js +377 -0
  469. package/bundled-test-harness/assets/summarize-session-test-CwzD_ZbD.js +172 -0
  470. package/bundled-test-harness/assets/svg-image-def-test-zV6aMK9q.js +167 -0
  471. package/bundled-test-harness/assets/switch-submode-test-DQU2cP5_.js +168 -0
  472. package/bundled-test-harness/assets/sync-openrouter-models-test-xrXVaC2H.js +97 -0
  473. package/bundled-test-harness/assets/test-support-QTh6wGxu.js +3 -0
  474. package/bundled-test-harness/assets/test-support-Tr-PYFgc.js +99 -0
  475. package/bundled-test-harness/assets/tests-zLlwPutr.js +3598 -0
  476. package/bundled-test-harness/assets/text-file-def-test-Cyq78UFY.js +94 -0
  477. package/bundled-test-harness/assets/text-input-validator-test-C1uDVZU7.js +156 -0
  478. package/bundled-test-harness/assets/text-suggestion-test-C4XAqWqY.js +340 -0
  479. package/bundled-test-harness/assets/theme-card-test-dVNz4tgU.js +621 -0
  480. package/bundled-test-harness/assets/theme-dashboard-nav-test-DYSn5pqo.js +196 -0
  481. package/bundled-test-harness/assets/theme-scheme-island-test-C1WpkfEP.js +264 -0
  482. package/bundled-test-harness/assets/theme-scoped-css-parity-test-BVluppsE.js +176 -0
  483. package/bundled-test-harness/assets/titles-0a1luoTq.js +52 -0
  484. package/bundled-test-harness/assets/titles-DKHNLVwC.js +2 -0
  485. package/bundled-test-harness/assets/to-device-streaming-test-3A6jI0_r.js +163 -0
  486. package/bundled-test-harness/assets/token-usage-test-33ovcqPk.js +160 -0
  487. package/bundled-test-harness/assets/tools-J_Knr_W6.js +774 -0
  488. package/bundled-test-harness/assets/tools-calling-test-CfqZX0Ed.js +200 -0
  489. package/bundled-test-harness/assets/tools-test-B4x58ZmI.js +1624 -0
  490. package/bundled-test-harness/assets/tools-test-DtUQp5ez.js +3204 -0
  491. package/bundled-test-harness/assets/tooltip-B0rEgyMW.css +66 -0
  492. package/bundled-test-harness/assets/tooltip-DvUMUgVX.js +195 -0
  493. package/bundled-test-harness/assets/transform-cards-test-CYQbZeD9.js +341 -0
  494. package/bundled-test-harness/assets/ts-file-def-preview-test-m39f8Zio.js +95 -0
  495. package/bundled-test-harness/assets/ts-file-def-test-xIcL5xWe.js +92 -0
  496. package/bundled-test-harness/assets/ttf-font-def-test-ClQ2SzFF.js +206 -0
  497. package/bundled-test-harness/assets/turn-settling-test-DqYk312r.js +160 -0
  498. package/bundled-test-harness/assets/turn-summary-Bmt7ZxTS.js +1039 -0
  499. package/bundled-test-harness/assets/unpublish-realm-test-0ToTJczx.js +102 -0
  500. package/bundled-test-harness/assets/update-room-skills-test-o_j8NOUV.js +240 -0
  501. package/bundled-test-harness/assets/use-ai-assistant-test-D7HFpxKJ.js +384 -0
  502. package/bundled-test-harness/assets/user-message-BAOt1hS3.js +262 -0
  503. package/bundled-test-harness/assets/validate-realm-test-e3xIbNLB.js +67 -0
  504. package/bundled-test-harness/assets/video-metadata-extractor-test-D8naLSlg.js +520 -0
  505. package/bundled-test-harness/assets/view-visually-test-BuhGau5E.js +335 -0
  506. package/bundled-test-harness/assets/virtual-network-reset-test-CgaFNGPi.js +96 -0
  507. package/bundled-test-harness/assets/wav-audio-def-test-CWG_UdCh.js +160 -0
  508. package/bundled-test-harness/assets/webp-image-def-test-sN4yw8Zu.js +226 -0
  509. package/bundled-test-harness/assets/workspace-0LfPqbYB.js +445 -0
  510. package/bundled-test-harness/assets/workspace-a11y-test-DQxYDRAP.js +197 -0
  511. package/bundled-test-harness/assets/workspace-actions-jGJSfl8M.js +588 -0
  512. package/bundled-test-harness/assets/workspace-behavior-test-BnF-bmBN.js +338 -0
  513. package/bundled-test-harness/assets/workspace-delete-multiple-test-D-rxPDuT.js +212 -0
  514. package/bundled-test-harness/assets/workspace-delete-summary-test-C2-Mve5R.js +63 -0
  515. package/bundled-test-harness/assets/workspace-hosting-test-BvDKdlOb.js +138 -0
  516. package/bundled-test-harness/assets/workspace-indexing-test-B34T3kqD.js +71 -0
  517. package/bundled-test-harness/assets/workspace-test-CJivgv-m.js +51 -0
  518. package/bundled-test-harness/assets/workspace-test-CuSRpPnQ.js +385 -0
  519. package/bundled-test-harness/assets/workspace-timestamp-labels-test-aWgjdbCp.js +68 -0
  520. package/bundled-test-harness/assets/workspace-unit-test-DHMUf2KT.js +122 -0
  521. package/bundled-test-harness/assets/write-binary-file-test-P-hVQuin.js +124 -0
  522. package/bundled-test-harness/assets/write-text-file-test-fXvJueDd.js +191 -0
  523. package/bundled-test-harness/assets/zip-archive-test-C2P5CUSR.js +285 -0
  524. package/bundled-test-harness/assets/zip-file-def-test-BfJZAmGt.js +164 -0
  525. package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
  526. package/bundled-test-harness/index.html +47 -47
  527. package/bundled-test-harness/tests/index.html +49 -49
  528. package/bundled-types/boxel-ui/helpers/theme-scoped-css.ts +4 -0
  529. package/bundled-types/choreo/choreo.gts +13 -1
  530. package/bundled-types/choreo/run.ts +19 -0
  531. package/bundled-types/host-app/components/operator-mode/dashboard/get-started.gts +152 -7
  532. package/bundled-types/host-app/components/operator-mode/dashboard/index.gts +2 -0
  533. package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +5 -3
  534. package/bundled-types/host-app/components/operator-mode/dashboard-modals/workspace-modals.gts +5 -22
  535. package/bundled-types/host-app/components/operator-mode/host-submode/publishing-realm-popover.gts +1 -1
  536. package/bundled-types/host-app/components/operator-mode/host-submode.gts +111 -37
  537. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +1 -0
  538. package/bundled-types/host-app/lib/modal-focus-trap.ts +33 -0
  539. package/bundled-types/host-app/lib/workspace-actions.ts +21 -0
  540. package/bundled-types/host-app/services/host-mode-service.ts +39 -0
  541. package/bundled-types/host-app/services/realm.ts +14 -0
  542. package/bundled-types/host-tests/helpers/dashboard.ts +67 -0
  543. package/package.json +1 -1
  544. package/bundled-test-harness/assets/account-switch-failed-test-FytUFiPO.js +0 -45
  545. package/bundled-test-harness/assets/adapter-DvmPwSZv.js +0 -2
  546. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-DN525jiY.js +0 -112
  547. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-q3tKqVJQ.js +0 -130
  548. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DgeXcCyi.js +0 -46
  549. package/bundled-test-harness/assets/ai-assistant-test-lDIGPKFP.js +0 -2223
  550. package/bundled-test-harness/assets/ai-function-generation-test-D5GbLyvL.js +0 -1176
  551. package/bundled-test-harness/assets/ai-module-creation-test-I3-j2beD.js +0 -151
  552. package/bundled-test-harness/assets/aibot-message-Dmsjifs6.js +0 -1312
  553. package/bundled-test-harness/assets/app-BS9_-DhN.js +0 -14146
  554. package/bundled-test-harness/assets/apply-markdown-edit-test-4zlwt0Db.js +0 -230
  555. package/bundled-test-harness/assets/ask-user-picker-Dr-0qpNr.js +0 -370
  556. package/bundled-test-harness/assets/ask-user-picker-test-633AFdmS.js +0 -39
  557. package/bundled-test-harness/assets/assistant-transcript-test-BgRnLvMg.js +0 -57
  558. package/bundled-test-harness/assets/audio-metadata-extractor-test-4xsQqL-0.js +0 -1176
  559. package/bundled-test-harness/assets/authed-fetch-test-663mT5_N.js +0 -73
  560. package/bundled-test-harness/assets/avif-image-def-test-h01BPIJy.js +0 -187
  561. package/bundled-test-harness/assets/basic-test-DiD6T-8Q.js +0 -139
  562. package/bundled-test-harness/assets/binary-upload-dedupe-test-CkjMPO_e.js +0 -308
  563. package/bundled-test-harness/assets/bot-registration-test-CFZHpwdj.js +0 -97
  564. package/bundled-test-harness/assets/box-test-C3pSy5ED.js +0 -50
  565. package/bundled-test-harness/assets/brand-guide-attachments-test-EoC_u7Vc.js +0 -84
  566. package/bundled-test-harness/assets/brand-guide-custom-css-test-Dn3fvblr.js +0 -196
  567. package/bundled-test-harness/assets/brand-guide-edit-test-NeiT3MyK.js +0 -140
  568. package/bundled-test-harness/assets/brand-logo-mark-field-test-C2A1EnBB.js +0 -86
  569. package/bundled-test-harness/assets/broken-link-template-test-CWn6V5zZ.js +0 -192
  570. package/bundled-test-harness/assets/bundled-base-modules-test-D7mLzpsw.js +0 -54
  571. package/bundled-test-harness/assets/bundled-base-oracle-test-I7xCId_k.js +0 -37
  572. package/bundled-test-harness/assets/buried-stack-item-scroll-test-DFBev0h-.js +0 -236
  573. package/bundled-test-harness/assets/button-BeSuhveJ.js +0 -207
  574. package/bundled-test-harness/assets/bxl-cyclic-graph-test-DPykwvvx.js +0 -47
  575. package/bundled-test-harness/assets/bxl-expression-test-LBWJiFb9.js +0 -250
  576. package/bundled-test-harness/assets/bxl-indexing-test-BuZmLk7y.js +0 -212
  577. package/bundled-test-harness/assets/bxl-platform-module-test-BNIvlkCM.js +0 -71
  578. package/bundled-test-harness/assets/can-invoke-test-t-bFIIeX.js +0 -455
  579. package/bundled-test-harness/assets/can-read-realm-test-2Q_MzRT9.js +0 -56
  580. package/bundled-test-harness/assets/cancel-indexing-job-test-QeYxEukn.js +0 -69
  581. package/bundled-test-harness/assets/capture-test-CJmJG8YR.js +0 -360
  582. package/bundled-test-harness/assets/card-api-test-B43I510H.js +0 -198
  583. package/bundled-test-harness/assets/card-basics-test-CBClzP2y.js +0 -5364
  584. package/bundled-test-harness/assets/card-chooser-paging-test-HEVzf6pR.js +0 -235
  585. package/bundled-test-harness/assets/card-chooser-test-GfjBRPFI.js +0 -393
  586. package/bundled-test-harness/assets/card-context-search-results-CoSr4EdS.js +0 -30
  587. package/bundled-test-harness/assets/card-context-search-results-test-BLMlZu9t.js +0 -184
  588. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DEBOzKan.js +0 -562
  589. package/bundled-test-harness/assets/card-def-menu-items-test-88_h8o0D.js +0 -228
  590. package/bundled-test-harness/assets/card-delete-test-DKom1phy.js +0 -466
  591. package/bundled-test-harness/assets/card-error-awaiting-index-test-DEwgFZMP.js +0 -53
  592. package/bundled-test-harness/assets/card-error-r6_cXst9.js +0 -72
  593. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-B7LiY15e.js +0 -219
  594. package/bundled-test-harness/assets/card-playground-test-CgyIJHui.js +0 -1491
  595. package/bundled-test-harness/assets/card-prerender-rPfzpIOU.js +0 -12939
  596. package/bundled-test-harness/assets/card-thunk-error-test-L0pvg4Ce.js +0 -48
  597. package/bundled-test-harness/assets/card-type-service-test-B2dhqxSD.js +0 -161
  598. package/bundled-test-harness/assets/check-correctness-test-DgqaLlCW.js +0 -1093
  599. package/bundled-test-harness/assets/check-domain-availability-test-B0hJHY5l.js +0 -98
  600. package/bundled-test-harness/assets/chip-D01NW3WH.js +0 -44
  601. package/bundled-test-harness/assets/choreo-D2Jl79RU.js +0 -1019
  602. package/bundled-test-harness/assets/choreo-_E8SOEe-.js +0 -2
  603. package/bundled-test-harness/assets/choreo-feature-reel-test-WLjsZDmS.js +0 -155
  604. package/bundled-test-harness/assets/choreo-gallery-build-order-test-6jnS8PsS.js +0 -436
  605. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CbUZsVB6.js +0 -399
  606. package/bundled-test-harness/assets/choreo-gallery-cover-test-CbvAStgk.js +0 -214
  607. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-tdjvUSa6.js +0 -133
  608. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-CsnM3hQK.js +0 -42
  609. package/bundled-test-harness/assets/choreo-gallery-drift-test-DG2LQTa7.js +0 -620
  610. package/bundled-test-harness/assets/choreo-gallery-escort-test-mn3-qXP1.js +0 -187
  611. package/bundled-test-harness/assets/choreo-gallery-films-test-BuktaC0D.js +0 -140
  612. package/bundled-test-harness/assets/choreo-gallery-filter-test-Dd-zpps0.js +0 -46
  613. package/bundled-test-harness/assets/choreo-gallery-fold-test-CWc1ijGc.js +0 -180
  614. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-tk2QmYPU.js +0 -114
  615. package/bundled-test-harness/assets/choreo-gallery-guides-test-DVbf1zM4.js +0 -321
  616. package/bundled-test-harness/assets/choreo-gallery-hang-test-B7EFp2dx.js +0 -426
  617. package/bundled-test-harness/assets/choreo-gallery-highlight-test-BFgbdesP.js +0 -60
  618. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-DJb8FC5R.js +0 -370
  619. package/bundled-test-harness/assets/choreo-gallery-interruption-test-DWyMXo5D.js +0 -176
  620. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-D3b8LsJ6.js +0 -104
  621. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CjjU6Rvn.js +0 -193
  622. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Le_h3QWU.js +0 -111
  623. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-Cp-DlWj4.js +0 -127
  624. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-DayS4GCJ.js +0 -100
  625. package/bundled-test-harness/assets/choreo-gallery-presentation-test-DeAfuFS7.js +0 -157
  626. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BgPWpggq.js +0 -145
  627. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-PzyoMNYv.js +0 -89
  628. package/bundled-test-harness/assets/choreo-gallery-sheet-test-CxaiNBkL.js +0 -48
  629. package/bundled-test-harness/assets/choreo-gallery-site-test-6xtSntS5.js +0 -237
  630. package/bundled-test-harness/assets/choreo-gallery-stage-E6Q5r-zU.js +0 -256
  631. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-C7aWMr9a.js +0 -102
  632. package/bundled-test-harness/assets/choreo-gallery-stages-test-CDWWgC61.js +0 -35
  633. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-Bkp15XJv.js +0 -138
  634. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CcGRi_3O.js +0 -144
  635. package/bundled-test-harness/assets/choreo-gallery-theater-test-Qph5pLT_.js +0 -252
  636. package/bundled-test-harness/assets/choreo-gallery-tuning-test-C4DhFLVA.js +0 -95
  637. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-LK493r1M.js +0 -88
  638. package/bundled-test-harness/assets/choreo-gallery-wires-test-B7SeUCc8.js +0 -148
  639. package/bundled-test-harness/assets/client-telemetry-test-DGmHzAFx.js +0 -340
  640. package/bundled-test-harness/assets/clip-BpYQPVz_.js +0 -2
  641. package/bundled-test-harness/assets/clip-CNaYbIwL.js +0 -92
  642. package/bundled-test-harness/assets/code-block-Cp2CJo5-.js +0 -502
  643. package/bundled-test-harness/assets/code-ref-test-C8JBHDb-.js +0 -163
  644. package/bundled-test-harness/assets/code-submode-availability-test-CzG1Tv6L.js +0 -198
  645. package/bundled-test-harness/assets/code-submode-test-BclVWjm5.js +0 -1839
  646. package/bundled-test-harness/assets/codeblocks-test-CmQlyxN7.js +0 -418
  647. package/bundled-test-harness/assets/codemirror-editor-test-B74H_yn8.js +0 -1512
  648. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bz6VEysU.js +0 -366
  649. package/bundled-test-harness/assets/color-field-test-DMCPQKIP.js +0 -212
  650. package/bundled-test-harness/assets/compaction-test-saQCLBrQ.js +0 -150
  651. package/bundled-test-harness/assets/computed-test-C05HliJC.js +0 -1320
  652. package/bundled-test-harness/assets/container-Cqcwrd-m.js +0 -10857
  653. package/bundled-test-harness/assets/content-preview-components-test-DZPj4_CU.js +0 -462
  654. package/bundled-test-harness/assets/copy-and-edit-test-DiXTQNTF.js +0 -292
  655. package/bundled-test-harness/assets/copy-card-test-ys7GquUY.js +0 -218
  656. package/bundled-test-harness/assets/copy-file-to-realm-test-Gn0Wn4vT.js +0 -148
  657. package/bundled-test-harness/assets/copy-source-test-BTLrOmPm.js +0 -56
  658. package/bundled-test-harness/assets/create-file-test-BCeIW-Rt.js +0 -464
  659. package/bundled-test-harness/assets/create-file-test-DbHQ5JsS.js +0 -1086
  660. package/bundled-test-harness/assets/create-listing-modal-test-CeHc4ter.js +0 -273
  661. package/bundled-test-harness/assets/create-listing-pr-request-test-DXbJNfMh.js +0 -117
  662. package/bundled-test-harness/assets/create-spec-test-BDIZoyHT.js +0 -256
  663. package/bundled-test-harness/assets/create-submission-workflow-test-Bix5J-3A.js +0 -132
  664. package/bundled-test-harness/assets/create-workspace-test-BmNnLHwC.js +0 -104
  665. package/bundled-test-harness/assets/credential-fields-test-NK1F4QWn.js +0 -200
  666. package/bundled-test-harness/assets/csv-file-def-test-BSfs4TTP.js +0 -102
  667. package/bundled-test-harness/assets/dashboard-C4T7ffKY.js +0 -3576
  668. package/bundled-test-harness/assets/dashboard-CFeHuP5-.js +0 -81
  669. package/bundled-test-harness/assets/dashboard-DQlpW-ux.css +0 -2392
  670. package/bundled-test-harness/assets/dashboard-add-workspace-test--rr6objf.js +0 -50
  671. package/bundled-test-harness/assets/dashboard-agents-test-D1y8H4xH.js +0 -334
  672. package/bundled-test-harness/assets/dashboard-archive-test-bN4EQaXv.js +0 -128
  673. package/bundled-test-harness/assets/dashboard-delete-test-BvsASb8B.js +0 -163
  674. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-DEsd5ZzZ.js +0 -71
  675. package/bundled-test-harness/assets/dashboard-duplicate-test-BnR0sTgB.js +0 -222
  676. package/bundled-test-harness/assets/dashboard-get-started-test-DG4uUXLv.js +0 -246
  677. package/bundled-test-harness/assets/dashboard-pinned-cards-test-AoGGVRAS.js +0 -220
  678. package/bundled-test-harness/assets/dashboard-reindex-test-BN9a96Xp.js +0 -115
  679. package/bundled-test-harness/assets/dashboard-section-rail-test-B3OT9V2T.js +0 -169
  680. package/bundled-test-harness/assets/dashboard-state-test-BY0Zqrmj.js +0 -162
  681. package/bundled-test-harness/assets/dashboard-test-C13oNpWt.js +0 -545
  682. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DZIV4x5j.js +0 -62
  683. package/bundled-test-harness/assets/dashboard-workspace-test-CBnOQViI.js +0 -537
  684. package/bundled-test-harness/assets/dashboard-workspaces-section-test-KU8ZVOYp.js +0 -396
  685. package/bundled-test-harness/assets/data-file-def-preview-test-CI5gcdtK.js +0 -155
  686. package/bundled-test-harness/assets/date-time-fields-test-D2CpR_Pb.js +0 -359
  687. package/bundled-test-harness/assets/debug-message-test-Df1kHesw.js +0 -117
  688. package/bundled-test-harness/assets/declared-captures-test-hQ43zuox.js +0 -879
  689. package/bundled-test-harness/assets/delete-workspace-test-BhfMKsix.js +0 -102
  690. package/bundled-test-harness/assets/diffing-test-CHRh55mC.js +0 -210
  691. package/bundled-test-harness/assets/download-file-to-realm-test-CC1HURCi.js +0 -119
  692. package/bundled-test-harness/assets/editor-test-DkeCv28f.js +0 -688
  693. package/bundled-test-harness/assets/edits-BSJqtUXM.js +0 -651
  694. package/bundled-test-harness/assets/email-field-test-DihK0suO.js +0 -75
  695. package/bundled-test-harness/assets/enum-field-test-Gja3bzt5.js +0 -935
  696. package/bundled-test-harness/assets/error-display-test-GhYZu7cp.js +0 -343
  697. package/bundled-test-harness/assets/evaluate-module-test-D_t4CiUq.js +0 -91
  698. package/bundled-test-harness/assets/execute-atomic-operations-test-xtou8Zeg.js +0 -113
  699. package/bundled-test-harness/assets/externals-B02-sD_L.js +0 -4393
  700. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DtxzNXdE.js +0 -207
  701. package/bundled-test-harness/assets/fallback-banner-test-BfmiQ_68.js +0 -53
  702. package/bundled-test-harness/assets/fallback-banner-test-DLtTdmvn.js +0 -225
  703. package/bundled-test-harness/assets/fallback-models-test-BxNJxhfd.js +0 -161
  704. package/bundled-test-harness/assets/fetch-card-json-test-DofKbzvC.js +0 -61
  705. package/bundled-test-harness/assets/field-configuration-test-SUoPaXWy.js +0 -551
  706. package/bundled-test-harness/assets/field-markdown-domain-test-BwtR0dPP.js +0 -616
  707. package/bundled-test-harness/assets/field-markdown-oversize-test-D8UJcBc3.js +0 -88
  708. package/bundled-test-harness/assets/field-markdown-primitives-test-D5_ZdoDO.js +0 -365
  709. package/bundled-test-harness/assets/field-markdown-specialized-test-Dpd5hs04.js +0 -534
  710. package/bundled-test-harness/assets/field-playground-test-CzhYzKGv.js +0 -894
  711. package/bundled-test-harness/assets/field-support-predicates-test-BSvVOFth.js +0 -167
  712. package/bundled-test-harness/assets/file-attachment-test-fM-yFedm.js +0 -796
  713. package/bundled-test-harness/assets/file-chooser-panel-test-CKj8YTdY.js +0 -153
  714. package/bundled-test-harness/assets/file-chooser-test-Bs8jFXqa.js +0 -504
  715. package/bundled-test-harness/assets/file-def-format-templates-test-CxrRoWoD.js +0 -380
  716. package/bundled-test-harness/assets/file-def-live-reload-test-X_8YEkve.js +0 -124
  717. package/bundled-test-harness/assets/file-def-menu-items-test-Dx879o_o.js +0 -138
  718. package/bundled-test-harness/assets/file-def-navigation-test-MMI_EEO1.js +0 -109
  719. package/bundled-test-harness/assets/file-def-serialization-test-B5lguBQD.js +0 -89
  720. package/bundled-test-harness/assets/file-def-test-Di9QWcrj.js +0 -216
  721. package/bundled-test-harness/assets/file-preview-live-reload-test-aqx93A7c.js +0 -310
  722. package/bundled-test-harness/assets/file-resource-primitives-test-a5abpcSB.js +0 -255
  723. package/bundled-test-harness/assets/file-tree-from-index-test-CnruGxJ8.js +0 -96
  724. package/bundled-test-harness/assets/file-tree-test-BCyWDdSE.js +0 -851
  725. package/bundled-test-harness/assets/file-view-model-test-BfpLa01Y.js +0 -346
  726. package/bundled-test-harness/assets/filedef-export-shape-test-CQ9XbrzS.js +0 -61
  727. package/bundled-test-harness/assets/film-CL1zj_bJ.js +0 -2
  728. package/bundled-test-harness/assets/film-Dq_quZ31.js +0 -13
  729. package/bundled-test-harness/assets/film-xbkQa060.js +0 -4074
  730. package/bundled-test-harness/assets/flac-audio-def-test-BmVp9dMx.js +0 -143
  731. package/bundled-test-harness/assets/focus-Dm4wkM72.js +0 -306
  732. package/bundled-test-harness/assets/font-metadata-extractor-test-OWEh9_MS.js +0 -415
  733. package/bundled-test-harness/assets/formatted-aibot-message-test-BpHsWpuV.js +0 -109
  734. package/bundled-test-harness/assets/formatted-user-message-test-DZW5TAr0.js +0 -43
  735. package/bundled-test-harness/assets/freestyle-test-D_uaPU_3.js +0 -17
  736. package/bundled-test-harness/assets/full-reindex-realm-test-C6vHL5kC.js +0 -101
  737. package/bundled-test-harness/assets/garbage-collection-test-D-Ao4t2n.js +0 -403
  738. package/bundled-test-harness/assets/general-test-PSGI8W0z.js +0 -923
  739. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-J-m-0E6W.js +0 -65
  740. package/bundled-test-harness/assets/generic-file-def-preview-test-BAsOhTYU.js +0 -71
  741. package/bundled-test-harness/assets/get-available-realm-identifiers-test-D5PBOr97.js +0 -47
  742. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-NM9UURHE.js +0 -47
  743. package/bundled-test-harness/assets/get-default-writable-realm-test-BxXc9a3J.js +0 -54
  744. package/bundled-test-harness/assets/get-published-realms-test-C8TJEc4-.js +0 -71
  745. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-Dt8CB6lS.js +0 -54
  746. package/bundled-test-harness/assets/get-relationship-membership-state-test-9_8x3myJ.js +0 -1308
  747. package/bundled-test-harness/assets/get-user-system-card-test-k0UO-uba.js +0 -67
  748. package/bundled-test-harness/assets/gif-image-def-test-BWrqPGDX.js +0 -188
  749. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BgG8QI9E.js +0 -160
  750. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-BKOvNyCN.js +0 -74
  751. package/bundled-test-harness/assets/gts-file-def-test-BCRHwDeZ.js +0 -100
  752. package/bundled-test-harness/assets/head-format-preview-test-DnfUhniI.js +0 -158
  753. package/bundled-test-harness/assets/helpers-DklkegO_.js +0 -5
  754. package/bundled-test-harness/assets/host-mode-service-vOfN0smp.js +0 -232
  755. package/bundled-test-harness/assets/host-mode-test-CCCJFz6_.js +0 -831
  756. package/bundled-test-harness/assets/host-submode-test-CtCfbuPA.js +0 -1342
  757. package/bundled-test-harness/assets/html-component-test-CWyhb5ZX.js +0 -65
  758. package/bundled-test-harness/assets/html-def-test-Cb8C2lUx.js +0 -160
  759. package/bundled-test-harness/assets/html-meta-extractor-test-BHT9Rtir.js +0 -60
  760. package/bundled-test-harness/assets/hydratable-card-test-DpgpdesD.js +0 -426
  761. package/bundled-test-harness/assets/icon-button-ABCGVF3C.js +0 -67
  762. package/bundled-test-harness/assets/image-metadata-extractor-test-ClhPTouq.js +0 -1109
  763. package/bundled-test-harness/assets/index-changes-test-CgnVr3LH.js +0 -367
  764. package/bundled-test-harness/assets/index-query-engine-test-CQTwju5_.js +0 -2593
  765. package/bundled-test-harness/assets/index-writer-test-IoVOoZT2.js +0 -3040
  766. package/bundled-test-harness/assets/inspector-test-BN2Ieb77.js +0 -2058
  767. package/bundled-test-harness/assets/instance-filter-matcher-test-Bq-_Sy89.js +0 -788
  768. package/bundled-test-harness/assets/instantiate-card-test-DEeDTzFV.js +0 -164
  769. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DP6kOyJS.js +0 -475
  770. package/bundled-test-harness/assets/interact-submode-setup-B0_cHqH-.js +0 -566
  771. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-9uUD91Pw.js +0 -99
  772. package/bundled-test-harness/assets/invite-user-to-room-test-CcDA45Ac.js +0 -142
  773. package/bundled-test-harness/assets/invoke-card-operation-test-DmUtgueM.js +0 -333
  774. package/bundled-test-harness/assets/isolated-render-test-B2eXNHu6.js +0 -51
  775. package/bundled-test-harness/assets/job-scoped-doc-cache-test-DF9D7cOc.js +0 -181
  776. package/bundled-test-harness/assets/job-scoped-instance-residency-test-CSS8xUU5.js +0 -103
  777. package/bundled-test-harness/assets/jpg-image-def-test-voECMTht.js +0 -697
  778. package/bundled-test-harness/assets/json-file-def-test-8Y4KLjUC.js +0 -95
  779. package/bundled-test-harness/assets/key-notices-badge-test-d1mYqx0e.js +0 -155
  780. package/bundled-test-harness/assets/key-readiness-test-BtCg7PCk.js +0 -190
  781. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CyCMbJnN.js +0 -398
  782. package/bundled-test-harness/assets/linksto-error-sentinel-test-BDW572-v.js +0 -238
  783. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-B4wM97hD.js +0 -354
  784. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-BhJmtJ0_.js +0 -303
  785. package/bundled-test-harness/assets/linksto-sentinel-reload-test-BpBQ5V_i.js +0 -197
  786. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-pkBBl4e9.js +0 -260
  787. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-Bb6wjUdD.js +0 -196
  788. package/bundled-test-harness/assets/lint-and-fix-test-CcMLn-co.js +0 -51
  789. package/bundled-test-harness/assets/live-test-AyBnq7BX.js +0 -2
  790. package/bundled-test-harness/assets/live-test-CgnAcIDw.js +0 -100
  791. package/bundled-test-harness/assets/load-default-skills-test-BIOwtx0Y.js +0 -74
  792. package/bundled-test-harness/assets/loader-parallel-prefetch-test-D5_oRSER.js +0 -257
  793. package/bundled-test-harness/assets/loader-test-DSc_jR1c.js +0 -482
  794. package/bundled-test-harness/assets/loading-test-8pldx7S-.js +0 -63
  795. package/bundled-test-harness/assets/m4a-audio-def-test-BDI5apzM.js +0 -190
  796. package/bundled-test-harness/assets/main-5kHyCkdm.js +0 -5
  797. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-Wud0s7WZ.js +0 -470
  798. package/bundled-test-harness/assets/markdown-embed-chooser-test-DVzzS-0C.js +0 -334
  799. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B5W_iqsi.js +0 -447
  800. package/bundled-test-harness/assets/markdown-embed-preview-test-CZF_s0fB.js +0 -368
  801. package/bundled-test-harness/assets/markdown-fallback-test-fT6BS4W7.js +0 -316
  802. package/bundled-test-harness/assets/markdown-file-def-test-B1aTzazR.js +0 -380
  803. package/bundled-test-harness/assets/markdown-helpers-test-gNKZf7Mw.js +0 -188
  804. package/bundled-test-harness/assets/markdown-highlighting-test-Du5_CQmD.js +0 -244
  805. package/bundled-test-harness/assets/markdown-preview-h-_aJhRc.js +0 -72
  806. package/bundled-test-harness/assets/markdown-preview-test-DJvoVsXw.js +0 -238
  807. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-VwJi3Paj.js +0 -146
  808. package/bundled-test-harness/assets/markdown-skill-search-test-ysCdf0xM.js +0 -80
  809. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-K2JuMy36.js +0 -63
  810. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-CkdL_-os.js +0 -300
  811. package/bundled-test-harness/assets/matrix-service-personal-realm-test-Dy1DultK.js +0 -125
  812. package/bundled-test-harness/assets/matrix-service-realm-servers-test-DHDDKuEg.js +0 -55
  813. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-DcTbZpMl.js +0 -132
  814. package/bundled-test-harness/assets/matrix-service-relogin-test-D3NQktoa.js +0 -59
  815. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-6CAflWOA.js +0 -35
  816. package/bundled-test-harness/assets/menu-kUSaJIPq.js +0 -3562
  817. package/bundled-test-harness/assets/message-service-subscription-test-DaQdgDWi.js +0 -110
  818. package/bundled-test-harness/assets/message-service-test-BsGEgM_m.js +0 -144
  819. package/bundled-test-harness/assets/message-tool-test-BB_4kw1V.js +0 -33
  820. package/bundled-test-harness/assets/midi-audio-def-test-BbbkFjqf.js +0 -182
  821. package/bundled-test-harness/assets/migrate-skill-test-X9xImDuq.js +0 -161
  822. package/bundled-test-harness/assets/mini-AwF31elJ.js +0 -1404
  823. package/bundled-test-harness/assets/mini-card-chooser-test-BZtrEiWu.js +0 -272
  824. package/bundled-test-harness/assets/mini-file-chooser-test-MIHW3kCI.js +0 -201
  825. package/bundled-test-harness/assets/mock-matrix-Dd8k0DNa.js +0 -15107
  826. package/bundled-test-harness/assets/mock-matrix-DhPN_34j.js +0 -2
  827. package/bundled-test-harness/assets/modal-LTh3_oHK.js +0 -322
  828. package/bundled-test-harness/assets/model-cost-tier-test-h1IkU9mp.js +0 -174
  829. package/bundled-test-harness/assets/model-file-extract-test-ntSo0wZF.js +0 -206
  830. package/bundled-test-harness/assets/module-transpile-cache-test-CDeRaaeP.js +0 -67
  831. package/bundled-test-harness/assets/monaco-test-C0Fa744D.js +0 -100
  832. package/bundled-test-harness/assets/mp3-audio-def-test-B4j4qR9H.js +0 -133
  833. package/bundled-test-harness/assets/multiple-stacks-test-BhA25ywL.js +0 -208
  834. package/bundled-test-harness/assets/nested-query-field-render-test-S9Y8YNKB.js +0 -249
  835. package/bundled-test-harness/assets/no-stacks-test-B7VciWyg.js +0 -48
  836. package/bundled-test-harness/assets/number-field-test-CS74lDPN.js +0 -184
  837. package/bundled-test-harness/assets/office-file-def-test-2cKc1pmd.js +0 -263
  838. package/bundled-test-harness/assets/office-metadata-extractor-test-DC8Fo-OW.js +0 -218
  839. package/bundled-test-harness/assets/office-poster-capture-test-Ba0_5UrT.js +0 -203
  840. package/bundled-test-harness/assets/ogg-audio-def-test-CIPQ1d4w.js +0 -196
  841. package/bundled-test-harness/assets/open-create-listing-modal-test-bmQkY5Zl.js +0 -131
  842. package/bundled-test-harness/assets/open-image-in-new-tab-test-DBD7_vMH.js +0 -52
  843. package/bundled-test-harness/assets/open-secure-window-test-BgeuYAqz.js +0 -253
  844. package/bundled-test-harness/assets/open-workspace-test-DRHGljV0.js +0 -46
  845. package/bundled-test-harness/assets/operation-lowering-test-CH1c0pSH.js +0 -2957
  846. package/bundled-test-harness/assets/operations-invocation-test-B1YkCLrv.js +0 -523
  847. package/bundled-test-harness/assets/operations-optimistic-test-DAbtOwsC.js +0 -203
  848. package/bundled-test-harness/assets/operations-query-test-9p1ZIDe-.js +0 -459
  849. package/bundled-test-harness/assets/operations-store-reconciliation-test-D0EQh3w2.js +0 -406
  850. package/bundled-test-harness/assets/operations-test-BQhlrfe3.js +0 -2518
  851. package/bundled-test-harness/assets/operator-mode-acceptance-test-DtHnonEb.js +0 -1195
  852. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DQUxZxaq.js +0 -1036
  853. package/bundled-test-harness/assets/operator-mode-links-test-BJ26HllS.js +0 -797
  854. package/bundled-test-harness/assets/operator-mode-test-DIPDI0qt.js +0 -696
  855. package/bundled-test-harness/assets/operator-mode-ui-test-CfA-fAh4.js +0 -1045
  856. package/bundled-test-harness/assets/overlay-DecPh3nt.js +0 -123
  857. package/bundled-test-harness/assets/overlay-menu-items-test-C6XqjLtu.js +0 -331
  858. package/bundled-test-harness/assets/overlays-Ctp8ePzZ.js +0 -75
  859. package/bundled-test-harness/assets/overlays-CzWpSg5T.js +0 -2
  860. package/bundled-test-harness/assets/overlays-detached-element-test-DvL_8Bb5.js +0 -56
  861. package/bundled-test-harness/assets/panel-CImumikB.js +0 -15124
  862. package/bundled-test-harness/assets/past-sessions-test-N6riGN_I.js +0 -321
  863. package/bundled-test-harness/assets/patch-fields-test-D30_-KwQ.js +0 -1014
  864. package/bundled-test-harness/assets/patch-instance-test-C5rGscZq.js +0 -348
  865. package/bundled-test-harness/assets/pdf-file-def-test-DtiqGRvZ.js +0 -111
  866. package/bundled-test-harness/assets/pdf-metadata-extractor-test-FU02KmdV.js +0 -130
  867. package/bundled-test-harness/assets/permission-checking-realm-test-DqdNJDwU.js +0 -306
  868. package/bundled-test-harness/assets/persist-module-inspector-view-test-BHOAgPVy.js +0 -60
  869. package/bundled-test-harness/assets/persist-scroll-position-test-qtmS518r.js +0 -254
  870. package/bundled-test-harness/assets/phone-number-field-test-DhdaM7uL.js +0 -73
  871. package/bundled-test-harness/assets/pill-menu-test-C9Mrrepl.js +0 -60
  872. package/bundled-test-harness/assets/plate-9n-sXyCw.js +0 -41
  873. package/bundled-test-harness/assets/plate-BnZcAk-_.js +0 -2
  874. package/bundled-test-harness/assets/player-Cu5b4LEJ.js +0 -82
  875. package/bundled-test-harness/assets/player-unk2mkxV.js +0 -2
  876. package/bundled-test-harness/assets/playground-BwA8wFGK.js +0 -58
  877. package/bundled-test-harness/assets/plural-field-components-test-CFNQKETg.js +0 -198
  878. package/bundled-test-harness/assets/png-image-def-test-DG5Vhlqb.js +0 -266
  879. package/bundled-test-harness/assets/policy-audit-confirmation-test-yfKU47LR.js +0 -155
  880. package/bundled-test-harness/assets/policy-scoped-search-test-BjQRDYqR.js +0 -339
  881. package/bundled-test-harness/assets/prerender-file-extract-test-CEU4SaAZ.js +0 -346
  882. package/bundled-test-harness/assets/prerender-html-test-CGB3ClCS.js +0 -670
  883. package/bundled-test-harness/assets/prerender-meta-test-xqc4fW_0.js +0 -614
  884. package/bundled-test-harness/assets/prerender-module-test-CI1TmZw-.js +0 -409
  885. package/bundled-test-harness/assets/prerender-persistence-block-test-Da0dJO_N.js +0 -124
  886. package/bundled-test-harness/assets/prerender-pre-model-error-test-BVLyhk8R.js +0 -61
  887. package/bundled-test-harness/assets/prerender-serialize-cycle-test-glJFfxHU.js +0 -134
  888. package/bundled-test-harness/assets/prerendered-html-read-test-Mp4L0VHQ.js +0 -191
  889. package/bundled-test-harness/assets/pretui-components-test-BBpA9UnA.js +0 -991
  890. package/bundled-test-harness/assets/pretui-components-test-BqFq7rw_.css +0 -730
  891. package/bundled-test-harness/assets/preview-format-test-C55Bwcur.js +0 -103
  892. package/bundled-test-harness/assets/preview-test-CTAhRGU8.js +0 -474
  893. package/bundled-test-harness/assets/process-card-test-UjqpuxB7.js +0 -94
  894. package/bundled-test-harness/assets/profile-settings-modal-C8bCgTMK.js +0 -989
  895. package/bundled-test-harness/assets/publish-realm-ixUB4FPK.js +0 -82
  896. package/bundled-test-harness/assets/publish-realm-test-CrrsdL4W.js +0 -210
  897. package/bundled-test-harness/assets/query-field-barrier-test-DjivFE93.js +0 -113
  898. package/bundled-test-harness/assets/query-field-error-sentinel-test-0HwnV4Mw.js +0 -201
  899. package/bundled-test-harness/assets/query-field-membership-status-test-C8yTTBkc.js +0 -323
  900. package/bundled-test-harness/assets/query-field-page-optin-test-D4l_GcII.js +0 -126
  901. package/bundled-test-harness/assets/query-field-schema-test-DDbcNNm5.js +0 -231
  902. package/bundled-test-harness/assets/query-field-search-throttle-test-CXp50Ax0.js +0 -154
  903. package/bundled-test-harness/assets/query-field-stale-prerender-test-DErzt-Cv.js +0 -152
  904. package/bundled-test-harness/assets/query-fields-test-Dz67fdSl.js +0 -535
  905. package/bundled-test-harness/assets/quick-look-test-B1ijDsh_.js +0 -139
  906. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-DJxZ16H_.js +0 -91
  907. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-BoRQkZ8c.js +0 -45
  908. package/bundled-test-harness/assets/read-source-test-Bl-NjchO.js +0 -67
  909. package/bundled-test-harness/assets/read-text-file-test-CP37CZoo.js +0 -124
  910. package/bundled-test-harness/assets/realm-CaK5mkT-.js +0 -2852
  911. package/bundled-test-harness/assets/realm-api-keys-BNUFWbGR.js +0 -579
  912. package/bundled-test-harness/assets/realm-api-keys-CkshxhXC.js +0 -2
  913. package/bundled-test-harness/assets/realm-api-keys-test-BP8xifjn.js +0 -109
  914. package/bundled-test-harness/assets/realm-api-keys-test-CwdK9YXp.js +0 -588
  915. package/bundled-test-harness/assets/realm-config-iKwE3Htp.js +0 -833
  916. package/bundled-test-harness/assets/realm-config-policy-standing-test-BgVEIDnB.js +0 -290
  917. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-BoJoKzmX.js +0 -274
  918. package/bundled-test-harness/assets/realm-config-settings-test-Kxw-GHye.js +0 -187
  919. package/bundled-test-harness/assets/realm-field-test-CdGOxrFb.js +0 -100
  920. package/bundled-test-harness/assets/realm-indexing-test-CHtsBV2b.js +0 -4380
  921. package/bundled-test-harness/assets/realm-policy-fitted-test--DhNZSdC.js +0 -206
  922. package/bundled-test-harness/assets/realm-policy-test-D7714iVa.js +0 -1141
  923. package/bundled-test-harness/assets/realm-querying-test-Cj1ekZ0H.js +0 -1067
  924. package/bundled-test-harness/assets/realm-server-form-agnostic-test-CZFPNJfD.js +0 -96
  925. package/bundled-test-harness/assets/realm-server-subscriber-test-C86WmBp0.js +0 -46
  926. package/bundled-test-harness/assets/realm-service-info-test-CdgcwKDR.js +0 -67
  927. package/bundled-test-harness/assets/realm-test-DPoLsvKz.js +0 -2364
  928. package/bundled-test-harness/assets/realm-token-refresh-test-Ch35Siwi.js +0 -153
  929. package/bundled-test-harness/assets/realm-url-tooltip-test-x8xWOENK.js +0 -78
  930. package/bundled-test-harness/assets/reasoning-test-BxpE8Jvf.js +0 -221
  931. package/bundled-test-harness/assets/recent-files-test-DTmEzPLq.js +0 -450
  932. package/bundled-test-harness/assets/reindex-realm-test-BQ8KULn4.js +0 -117
  933. package/bundled-test-harness/assets/relationship-loading-state-test-BJoArPWf.js +0 -290
  934. package/bundled-test-harness/assets/remix-card-test-DsTA1KoG.js +0 -58
  935. package/bundled-test-harness/assets/rendered-markdown-DvukulDO.js +0 -292
  936. package/bundled-test-harness/assets/rendered-markdown-test-DxGptXSV.js +0 -587
  937. package/bundled-test-harness/assets/resident-instance-reuse-test-ZWnVu8uj.js +0 -82
  938. package/bundled-test-harness/assets/result-tile-CPyI6Vmv.js +0 -144
  939. package/bundled-test-harness/assets/rich-markdown-field-test-CdygoXIO.js +0 -1647
  940. package/bundled-test-harness/assets/room-message-test-D3NfMqH0.js +0 -484
  941. package/bundled-test-harness/assets/run-D_Px28eF.js +0 -3956
  942. package/bundled-test-harness/assets/run-realm-code-qWCZxmJ7.js +0 -2964
  943. package/bundled-test-harness/assets/run-realm-code-test-UzyeEJq6.js +0 -3844
  944. package/bundled-test-harness/assets/sanitize-module-list-test-Babq44bP.js +0 -85
  945. package/bundled-test-harness/assets/save-card-skip-index-wait-test-BcELXlQ_.js +0 -89
  946. package/bundled-test-harness/assets/schema-editor-test-CEvruZbt.js +0 -785
  947. package/bundled-test-harness/assets/schema-generation-test-hYAMdCrn.js +0 -28
  948. package/bundled-test-harness/assets/scrolling-test-DVIsh-_1.js +0 -412
  949. package/bundled-test-harness/assets/search-adorn-test-CkVhqFd0.js +0 -136
  950. package/bundled-test-harness/assets/search-and-choose-test-DUhOB3FV.js +0 -154
  951. package/bundled-test-harness/assets/search-correlation-id-test-Drn4r26N.js +0 -139
  952. package/bundled-test-harness/assets/search-entries-result-test-DTCRJ_wc.js +0 -234
  953. package/bundled-test-harness/assets/search-entries-test-CE0B47pw.js +0 -1486
  954. package/bundled-test-harness/assets/search-entries-tool-test-C4aG0ckM.js +0 -504
  955. package/bundled-test-harness/assets/search-google-images-test-LyhcB2f3.js +0 -166
  956. package/bundled-test-harness/assets/search-results-D4pSne0x.js +0 -266
  957. package/bundled-test-harness/assets/search-results-test-CRZHhqhn.js +0 -578
  958. package/bundled-test-harness/assets/search-selection-menu-test-B7Y3E_nj.js +0 -108
  959. package/bundled-test-harness/assets/search-sheet-files-test-C2y534g8.js +0 -126
  960. package/bundled-test-harness/assets/search-sheet-persistence-test-DePC59Bk.js +0 -131
  961. package/bundled-test-harness/assets/search-test-Dy8NxFkU.js +0 -2249
  962. package/bundled-test-harness/assets/search-tool-test-lctDaMH3.js +0 -156
  963. package/bundled-test-harness/assets/searchable-option-test-CE64M8oM.js +0 -322
  964. package/bundled-test-harness/assets/searchable-search-doc-test-C6u3mVvT.js +0 -1271
  965. package/bundled-test-harness/assets/section-rail-B_UQX00B.js +0 -113
  966. package/bundled-test-harness/assets/section-rail-test-DIda7MIw.js +0 -256
  967. package/bundled-test-harness/assets/secure-sign-in-CqqqfQG8.js +0 -174
  968. package/bundled-test-harness/assets/secure-sign-in-test-DimbVr_W.js +0 -373
  969. package/bundled-test-harness/assets/segmented-control-iePxSdTS.js +0 -173
  970. package/bundled-test-harness/assets/select-tNs6_xwW.js +0 -175
  971. package/bundled-test-harness/assets/send-ai-assistant-message-test-2GVrMF9Z.js +0 -52
  972. package/bundled-test-harness/assets/send-bot-trigger-event-test-B_3dKfGN.js +0 -56
  973. package/bundled-test-harness/assets/send-request-via-proxy-test-_clNWyYc.js +0 -380
  974. package/bundled-test-harness/assets/sending-test-DCPFXUVg.js +0 -659
  975. package/bundled-test-harness/assets/serialization-rri-form-audit-test-BI0zCs8Y.js +0 -136
  976. package/bundled-test-harness/assets/serialization-test-bjdtVlZL.js +0 -8758
  977. package/bundled-test-harness/assets/set-user-system-card-test-BUv1vL08.js +0 -59
  978. package/bundled-test-harness/assets/setup-BW1mmC7C.js +0 -772
  979. package/bundled-test-harness/assets/setup-DsIcFT-T.js +0 -2
  980. package/bundled-test-harness/assets/shared-link-target-reuse-test-9NeJEjkb.js +0 -207
  981. package/bundled-test-harness/assets/show-card-test-mfyLwusD.js +0 -365
  982. package/bundled-test-harness/assets/signed-capture-link-test-BOtKNCAM.js +0 -132
  983. package/bundled-test-harness/assets/single-stack-test-B4MGjaLk.js +0 -652
  984. package/bundled-test-harness/assets/skills-test-BuP-Yzk1.js +0 -648
  985. package/bundled-test-harness/assets/skip-boot-index-guard-test-Cmrx2-K7.js +0 -46
  986. package/bundled-test-harness/assets/spec-test-BhZDdhVQ.js +0 -1077
  987. package/bundled-test-harness/assets/spinner-CpIBUG9m.js +0 -49
  988. package/bundled-test-harness/assets/src-DGHttmW-.js +0 -216
  989. package/bundled-test-harness/assets/src-DaNDSbp7.js +0 -5
  990. package/bundled-test-harness/assets/stick-to-bottom-resize-test-Dpy3OVum.js +0 -56
  991. package/bundled-test-harness/assets/store-add-test-_IYS8o74.js +0 -50
  992. package/bundled-test-harness/assets/store-module-rebuild-test-B5VMaICy.js +0 -454
  993. package/bundled-test-harness/assets/store-search-test-C2VZabrH.js +0 -175
  994. package/bundled-test-harness/assets/store-test-D6PObxoD.js +0 -3672
  995. package/bundled-test-harness/assets/structured-theme-test-BHjVeMf-.js +0 -377
  996. package/bundled-test-harness/assets/summarize-session-test-BFtTuhe0.js +0 -172
  997. package/bundled-test-harness/assets/svg-image-def-test-BL6lkWUX.js +0 -167
  998. package/bundled-test-harness/assets/switch-submode-test-6Uv3bZMl.js +0 -168
  999. package/bundled-test-harness/assets/sync-openrouter-models-test-Dp9E05tL.js +0 -97
  1000. package/bundled-test-harness/assets/test-support-DYm8XZ0E.js +0 -3
  1001. package/bundled-test-harness/assets/test-support-DfnhiIMV.js +0 -99
  1002. package/bundled-test-harness/assets/tests-CZk0Iag2.js +0 -3596
  1003. package/bundled-test-harness/assets/text-file-def-test-CHdC0yIU.js +0 -94
  1004. package/bundled-test-harness/assets/text-input-validator-test-B9ZR8XPU.js +0 -156
  1005. package/bundled-test-harness/assets/text-suggestion-test-CGLspKFQ.js +0 -340
  1006. package/bundled-test-harness/assets/theme-card-test-CXZvSEvG.js +0 -621
  1007. package/bundled-test-harness/assets/theme-dashboard-nav-test-CkEE0ILk.js +0 -196
  1008. package/bundled-test-harness/assets/theme-scheme-island-test-URXTjipF.js +0 -264
  1009. package/bundled-test-harness/assets/titles-C6enAdIv.js +0 -2
  1010. package/bundled-test-harness/assets/titles-Dft1HoUT.js +0 -52
  1011. package/bundled-test-harness/assets/to-device-streaming-test-D33ZOc9o.js +0 -163
  1012. package/bundled-test-harness/assets/token-usage-test-BHQlU4J4.js +0 -160
  1013. package/bundled-test-harness/assets/tools-CrudqfS3.js +0 -774
  1014. package/bundled-test-harness/assets/tools-calling-test-jo7IREau.js +0 -200
  1015. package/bundled-test-harness/assets/tools-test-D1wMfUa0.js +0 -1624
  1016. package/bundled-test-harness/assets/tools-test-Dn1LYsXp.js +0 -3204
  1017. package/bundled-test-harness/assets/tooltip-8Wyz4IIn.css +0 -68
  1018. package/bundled-test-harness/assets/tooltip-CqwLzRz5.js +0 -134
  1019. package/bundled-test-harness/assets/transform-cards-test-BPhwPFtp.js +0 -341
  1020. package/bundled-test-harness/assets/ts-file-def-preview-test-Bq3zTgw8.js +0 -95
  1021. package/bundled-test-harness/assets/ts-file-def-test-GLswMl7O.js +0 -92
  1022. package/bundled-test-harness/assets/ttf-font-def-test-DQulvUWs.js +0 -206
  1023. package/bundled-test-harness/assets/turn-settling-test-BspmOUQP.js +0 -160
  1024. package/bundled-test-harness/assets/turn-summary-9A8nvC0-.js +0 -1039
  1025. package/bundled-test-harness/assets/unpublish-realm-test-SkYPEhDz.js +0 -102
  1026. package/bundled-test-harness/assets/update-room-skills-test-cTxb-WU6.js +0 -240
  1027. package/bundled-test-harness/assets/use-ai-assistant-test-uaqW1T_A.js +0 -384
  1028. package/bundled-test-harness/assets/user-message-BudkIP-3.js +0 -262
  1029. package/bundled-test-harness/assets/validate-realm-test-DxrGgH9n.js +0 -67
  1030. package/bundled-test-harness/assets/video-metadata-extractor-test-B2pe-Iqa.js +0 -520
  1031. package/bundled-test-harness/assets/view-visually-test-PNon6fUo.js +0 -335
  1032. package/bundled-test-harness/assets/virtual-network-reset-test-uYJLaQHf.js +0 -96
  1033. package/bundled-test-harness/assets/wav-audio-def-test-F4OrFFR4.js +0 -160
  1034. package/bundled-test-harness/assets/webp-image-def-test-B0a_-Vya.js +0 -226
  1035. package/bundled-test-harness/assets/workspace-Cyftysy9.js +0 -440
  1036. package/bundled-test-harness/assets/workspace-a11y-test-sKiPDcbl.js +0 -197
  1037. package/bundled-test-harness/assets/workspace-actions-BuawjFmZ.js +0 -561
  1038. package/bundled-test-harness/assets/workspace-behavior-test-CKa-pb3T.js +0 -338
  1039. package/bundled-test-harness/assets/workspace-delete-multiple-test-Dt2weG5R.js +0 -212
  1040. package/bundled-test-harness/assets/workspace-delete-summary-test-CkqgFqZ8.js +0 -63
  1041. package/bundled-test-harness/assets/workspace-hosting-test-Ci7EEtHP.js +0 -138
  1042. package/bundled-test-harness/assets/workspace-indexing-test-BPVxxY6W.js +0 -71
  1043. package/bundled-test-harness/assets/workspace-test-CWr7vFbg.js +0 -385
  1044. package/bundled-test-harness/assets/workspace-test-INNpQovc.js +0 -51
  1045. package/bundled-test-harness/assets/workspace-timestamp-labels-test-CigQb5wr.js +0 -68
  1046. package/bundled-test-harness/assets/workspace-unit-test-BwVKpuXT.js +0 -122
  1047. package/bundled-test-harness/assets/write-binary-file-test-BKP3gv1k.js +0 -124
  1048. package/bundled-test-harness/assets/write-text-file-test-B6ijTKTa.js +0 -191
  1049. package/bundled-test-harness/assets/zip-archive-test-C-PBzkTn.js +0 -285
  1050. package/bundled-test-harness/assets/zip-file-def-test-FyCzJT-9.js +0 -164
@@ -0,0 +1,1491 @@
1
+ import { s as __toESM } from "./chunk-Rp0pCe6z.js";
2
+ import { Br as testRealmURL, Lr as testRRI, c as hasExecutableExtension } from "./runtime-common-BTaLJEw-.js";
3
+ import { T as rri } from "./paths-C9-NYXnM.js";
4
+ import { O as baseRealm } from "./constants-Icc0nFW-.js";
5
+ import { A as trimJsonExtension, h as cardDefFormats } from "./bfm-card-references-Cjos2rOp.js";
6
+ import { M as waitUntil, T as settled, d as click, l as triggerEvent, o as waitFor, s as fillIn } from "./dist-BOAdzfkP.js";
7
+ import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
8
+ import { D as realmConfigCardJSON, Et as percySnapshot, F as setupLocalIndexing, I as setupOnSave, L as setupRealmCacheTeardown, Z as withCachedRealmSetup, a as SYSTEM_CARD_FIXTURE_CONTENTS, ct as setupApplicationTest, j as setupAcceptanceTestRealm, k as setMonacoContent, mt as setupAuthEndpoints, s as assertMessages, st as visitOperatorMode, t as setupMockMatrix, tt as withoutLoaderMonitoring, z as setupUserSubscription } from "./mock-matrix-FjsXmU7-.js";
9
+ import { r as getService } from "./dist-CPfIHBla.js";
10
+ import { a as getPlaygroundSelections, d as setPlaygroundSelections, f as togglePlaygroundPanel, i as createNewInstance, l as selectDeclaration, o as openFileInPlayground, r as chooseAnotherInstance, s as removePlaygroundSelections, t as assertCardExists, u as selectFormat } from "./playground-B02e8uqB.js";
11
+ import { a as removeRecentFiles, i as removeRecentCards, o as setRecentCards, r as getRecentFiles, s as setRecentFiles, t as assertRecentFileURLs } from "./recent-files-cards-Ccqvv5_n.js";
12
+ import { t as searchCardsForTest } from "./search-cards-DxcB56HL.js";
13
+ //#region tests/acceptance/code-submode/card-playground-test.gts
14
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
15
+ var codeRefDriverCard = `import { CardDef, field, contains } from '@cardstack/base/card-api';
16
+ import { Component } from '@cardstack/base/card-api';
17
+ import CodeRefField from '@cardstack/base/code-ref';
18
+ export class CodeRefDriver extends CardDef {
19
+ static displayName = "Code Ref Driver";
20
+ @field ref = contains(CodeRefField);
21
+ }`;
22
+ var testSpecCard = `import { Component } from '@cardstack/base/card-api';
23
+ import { Spec } from '@cardstack/base/spec';
24
+ export class TestSpec extends Spec {
25
+ static displayName = 'TestSpec';
26
+ static isolated = class Isolated extends Component<typeof this> {
27
+ <template>
28
+ <div data-test-subclass-spec>Spec Subclass</div>
29
+ </template>
30
+ }
31
+ }`;
32
+ var authorCard = `import { contains, field, CardDef, Component } from "@cardstack/base/card-api";
33
+ import MarkdownField from '@cardstack/base/markdown';
34
+ import StringField from "@cardstack/base/string";
35
+ export class Author extends CardDef {
36
+ static displayName = 'Author';
37
+ @field firstName = contains(StringField);
38
+ @field lastName = contains(StringField);
39
+ @field bio = contains(MarkdownField);
40
+ @field cardTitle = contains(StringField, {
41
+ computeVia: function (this: Author) {
42
+ return [this.firstName, this.lastName].filter(Boolean).join(' ');
43
+ },
44
+ });
45
+ static isolated = class Isolated extends Component<typeof this> {
46
+ <template>
47
+ <article>
48
+ <header>
49
+ <h1 data-test-author-title><@fields.cardTitle /></h1>
50
+ </header>
51
+ <div data-test-author-bio><@fields.bio /></div>
52
+ </article>
53
+ <style scoped>
54
+ article {
55
+ margin-inline: var(--boxel-sp-lg);
56
+ }
57
+ </style>
58
+ </template>
59
+ }
60
+ }`;
61
+ var blogPostCard = `import { contains, field, linksTo, linksToMany, CardDef, Component, StringField } from "@cardstack/base/card-api";
62
+ import DateTimeField from '@cardstack/base/datetime';
63
+ import MarkdownField from '@cardstack/base/markdown';
64
+ import { Author } from './author';
65
+
66
+ export class Category extends CardDef {
67
+ static displayName = 'Category';
68
+ static fitted = class Fitted extends Component<typeof this> {
69
+ <template>
70
+ <div data-test-category-fitted><@fields.cardTitle /></div>
71
+ </template>
72
+ }
73
+ }
74
+
75
+ class LocalCategoryCard extends Category {
76
+ static displayName = 'Local Category'
77
+ }
78
+
79
+ export class RandomClass {}
80
+
81
+ export class BlogPost extends CardDef {
82
+ static displayName = 'Blog Post';
83
+ @field publishDate = contains(DateTimeField);
84
+ @field author = linksTo(Author);
85
+ @field categories = linksToMany(Category);
86
+ @field localCategories = linksToMany(LocalCategoryCard);
87
+ @field body = contains(MarkdownField);
88
+ @field cardTitle = contains(StringField);
89
+
90
+ static isolated = class Isolated extends Component<typeof this> {
91
+ <template>
92
+ <article>
93
+ <header>
94
+ <h1 data-test-post-title><@fields.cardTitle /></h1>
95
+ </header>
96
+ <div data-test-byline><@fields.author /></div>
97
+ <div data-test-post-body><@fields.body /></div>
98
+ </article>
99
+ <style scoped>
100
+ article {
101
+ margin-inline: var(--boxel-sp-lg);
102
+ }
103
+ </style>
104
+ </template>
105
+ }
106
+ }`;
107
+ var personCard = `import { field, linksTo, CardDef } from '@cardstack/base/card-api';
108
+ export class Pet extends CardDef {
109
+ static displayName = 'Pet';
110
+ }
111
+ export class Person extends CardDef {
112
+ static displayName = 'Person';
113
+ @field pet = linksTo(Pet);
114
+ }
115
+ `;
116
+ var customEditCard = `import { contains, field, CardDef, Component } from "@cardstack/base/card-api";
117
+ import StringField from "@cardstack/base/string";
118
+ export class CustomEdit extends CardDef {
119
+ static displayName = 'Custom Edit';
120
+ @field name = contains(StringField);
121
+ static edit = class Edit extends Component<typeof this> {
122
+ <template>
123
+ <div data-test-custom-edit>Custom Edit: <@fields.name /></div>
124
+ </template>
125
+ };
126
+ }`;
127
+ var headPreviewCard = `import { contains, field, CardDef, Component } from "@cardstack/base/card-api";
128
+ import StringField from "@cardstack/base/string";
129
+
130
+ export class HeadPreview extends CardDef {
131
+ static displayName = 'Head Preview';
132
+ @field cardTitle = contains(StringField);
133
+ @field cardDescription = contains(StringField);
134
+ @field url = contains(StringField);
135
+
136
+ static head = class Head extends Component<typeof this> {
137
+ <template>
138
+ <title>{{@model.cardTitle}}</title>
139
+ <meta name='description' content={{@model.cardDescription}} />
140
+ <meta property='og:url' content={{@model.url}} />
141
+ </template>
142
+ };
143
+ }
144
+ `;
145
+ async function waitForHeadPreviewText(selector, expectedText, context) {
146
+ let safeQuerySelector = (selector) => {
147
+ try {
148
+ return {
149
+ element: document.querySelector(selector),
150
+ error: null
151
+ };
152
+ } catch (error) {
153
+ if (error instanceof Error) return {
154
+ element: null,
155
+ error: {
156
+ name: error.name,
157
+ message: error.message
158
+ }
159
+ };
160
+ return {
161
+ element: null,
162
+ error: {
163
+ name: "UnknownError",
164
+ message: String(error)
165
+ }
166
+ };
167
+ }
168
+ };
169
+ let readSelectorText = (selector) => {
170
+ let { element, error } = safeQuerySelector(selector);
171
+ return {
172
+ text: element?.textContent?.trim() ?? null,
173
+ error
174
+ };
175
+ };
176
+ try {
177
+ await waitUntil(() => readSelectorText(selector).text === expectedText, { timeout: 5e3 });
178
+ } catch (error) {
179
+ let actual = readSelectorText(selector);
180
+ let googleTitle = readSelectorText("[data-test-google-title]");
181
+ let googleDescription = readSelectorText("[data-test-google-description]");
182
+ let googleSiteName = readSelectorText("[data-test-google-site-name]");
183
+ let previewPanel = safeQuerySelector("[data-test-playground-panel]");
184
+ console.info("head preview diagnostics", {
185
+ context,
186
+ selector,
187
+ expectedText,
188
+ actualText: actual.text,
189
+ selectorError: actual.error,
190
+ googleTitleText: googleTitle.text,
191
+ googleTitleError: googleTitle.error,
192
+ googleDescriptionText: googleDescription.text,
193
+ googleDescriptionError: googleDescription.error,
194
+ googleSiteNameText: googleSiteName.text,
195
+ googleSiteNameError: googleSiteName.error,
196
+ playgroundPreviewHtml: previewPanel.element?.innerHTML?.slice(0, 2e3) ?? null,
197
+ playgroundPreviewError: previewPanel.error
198
+ }, error);
199
+ throw error;
200
+ }
201
+ }
202
+ var localStyleReferenceCard = { data: {
203
+ type: "card",
204
+ attributes: {
205
+ cardInfo: {
206
+ title: "Local Style Reference",
207
+ cardDescription: "Local card instance for style reference tests",
208
+ cardThumbnailURL: null,
209
+ notes: null
210
+ },
211
+ styleName: "Local Style Reference",
212
+ visualDNA: "Style reference content for playground edit tests",
213
+ inspirations: ["Testing"],
214
+ wallpaperImages: []
215
+ },
216
+ meta: { adoptsFrom: {
217
+ module: "@cardstack/base/style-reference",
218
+ name: "default"
219
+ } }
220
+ } };
221
+ (0, import_qunit.module)("Acceptance | code-submode | card playground", function(_hooks) {
222
+ (0, import_qunit.module)("single realm", function(hooks) {
223
+ let realm;
224
+ setupApplicationTest(hooks);
225
+ setupLocalIndexing(hooks);
226
+ let mockMatrixUtils = setupMockMatrix(hooks, {
227
+ loggedInAs: "@testuser:localhost",
228
+ activeRealms: [testRealmURL]
229
+ });
230
+ let { setRealmPermissions, setActiveRealms, createAndJoinRoom } = mockMatrixUtils;
231
+ setupOnSave(hooks);
232
+ setupRealmCacheTeardown(hooks);
233
+ hooks.beforeEach(async function() {
234
+ let loader = getService("loader-service").loader;
235
+ let cardsGrid;
236
+ cardsGrid = await loader.import("@cardstack/base/cards-grid");
237
+ let { CardsGrid } = cardsGrid;
238
+ createAndJoinRoom({
239
+ sender: "@testuser:localhost",
240
+ name: "room-test"
241
+ });
242
+ setupUserSubscription();
243
+ setupAuthEndpoints();
244
+ ({realm} = await withCachedRealmSetup(async () => setupAcceptanceTestRealm({
245
+ mockMatrixUtils,
246
+ realmURL: testRealmURL,
247
+ contents: {
248
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
249
+ "index.json": new CardsGrid(),
250
+ "author.gts": authorCard,
251
+ "blog-post.gts": blogPostCard,
252
+ "code-ref-driver.gts": codeRefDriverCard,
253
+ "test-spec.gts": testSpecCard,
254
+ "person.gts": personCard,
255
+ "head-preview.gts": headPreviewCard,
256
+ "custom-edit.gts": customEditCard,
257
+ "CustomEdit/sample.json": { data: {
258
+ attributes: { name: "Sample" },
259
+ meta: { adoptsFrom: {
260
+ module: `${testRealmURL}custom-edit`,
261
+ name: "CustomEdit"
262
+ } }
263
+ } },
264
+ "Author/jane-doe.json": { data: {
265
+ attributes: {
266
+ firstName: "Jane",
267
+ lastName: "Doe",
268
+ bio: "Jane Doe is the Senior Managing Editor at <em>Ramped.com</em>, where she leads content strategy, editorial direction, and ensures the highest standards of quality across all publications. With over a decade of experience in digital media and editorial management, Jane has a proven track record of shaping impactful narratives, growing engaged audiences, and collaborating with cross-functional teams to deliver compelling content. When she's not editing, you can find her exploring new books, hiking, or indulging in her love of photography."
269
+ },
270
+ meta: { adoptsFrom: {
271
+ module: `${testRealmURL}author`,
272
+ name: "Author"
273
+ } }
274
+ } },
275
+ "HeadPreview/example.json": { data: {
276
+ attributes: {
277
+ cardTitle: "Definition Title",
278
+ cardDescription: "Definition description",
279
+ url: "https://example.com/definition"
280
+ },
281
+ meta: { adoptsFrom: {
282
+ module: `${testRealmURL}head-preview`,
283
+ name: "HeadPreview"
284
+ } }
285
+ } },
286
+ "BlogPost/remote-work.json": { data: {
287
+ attributes: {
288
+ title: "The Ultimate Guide to Remote Work",
289
+ cardDescription: "In today’s digital age, remote work has transformed from a luxury to a necessity. This comprehensive guide will help you navigate the world of remote work, offering tips, tools, and best practices for success."
290
+ },
291
+ relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
292
+ meta: { adoptsFrom: {
293
+ module: `${testRealmURL}blog-post`,
294
+ name: "BlogPost"
295
+ } }
296
+ } },
297
+ "BlogPost/mad-hatter.json": { data: {
298
+ attributes: { cardTitle: "Mad As a Hatter" },
299
+ relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
300
+ meta: { adoptsFrom: {
301
+ module: `${testRealmURL}blog-post`,
302
+ name: "BlogPost"
303
+ } }
304
+ } },
305
+ "BlogPost/urban-living.json": { data: {
306
+ attributes: { cardTitle: "The Future of Urban Living: Skyscrapers or Sustainable Communities?" },
307
+ relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
308
+ meta: { adoptsFrom: {
309
+ module: `${testRealmURL}blog-post`,
310
+ name: "BlogPost"
311
+ } }
312
+ } },
313
+ "Category/city-design.json": { data: {
314
+ attributes: { cardInfo: { name: "City Design" } },
315
+ meta: { adoptsFrom: {
316
+ module: `${testRealmURL}blog-post`,
317
+ name: "Category"
318
+ } }
319
+ } },
320
+ "Category/future-tech.json": { data: {
321
+ attributes: { cardInfo: { name: "Future Tech" } },
322
+ meta: { adoptsFrom: {
323
+ module: `${testRealmURL}blog-post`,
324
+ name: "Category"
325
+ } }
326
+ } },
327
+ "Category/interior-design.json": { data: {
328
+ attributes: { cardInfo: { name: "Interior Design" } },
329
+ meta: { adoptsFrom: {
330
+ module: `${testRealmURL}blog-post`,
331
+ name: "Category"
332
+ } }
333
+ } },
334
+ "Category/landscaping.json": { data: {
335
+ attributes: { cardInfo: { name: "Landscaping" } },
336
+ meta: { adoptsFrom: {
337
+ module: `${testRealmURL}blog-post`,
338
+ name: "Category"
339
+ } }
340
+ } },
341
+ "Category/home-gym.json": { data: {
342
+ attributes: { cardInfo: { name: "Home Gym" } },
343
+ meta: { adoptsFrom: {
344
+ module: `${testRealmURL}blog-post`,
345
+ name: "Category"
346
+ } }
347
+ } },
348
+ "Person/pet-mango.json": { data: {
349
+ attributes: { cardInfo: { name: "Mango" } },
350
+ meta: { adoptsFrom: {
351
+ module: `${testRealmURL}person`,
352
+ name: "Pet"
353
+ } }
354
+ } }
355
+ }
356
+ })));
357
+ setRecentFiles([
358
+ [testRealmURL, "blog-post.gts"],
359
+ [testRealmURL, "author.gts"],
360
+ [testRealmURL, "CustomEdit/sample.json"],
361
+ [testRealmURL, "custom-edit.gts"],
362
+ [testRealmURL, "BlogPost/mad-hatter.json"],
363
+ [testRealmURL, "Category/city-design.json"],
364
+ [testRealmURL, "Category/future-tech.json"],
365
+ [testRealmURL, "BlogPost/remote-work.json"],
366
+ [testRealmURL, "BlogPost/urban-living.json"],
367
+ [testRealmURL, "Author/jane-doe.json"]
368
+ ]);
369
+ removePlaygroundSelections();
370
+ setActiveRealms([testRealmURL]);
371
+ setRealmPermissions({ [testRealmURL]: ["read", "write"] });
372
+ });
373
+ (0, import_qunit.test)("can render playground panel when an exported card def is selected", async function(assert) {
374
+ await visitOperatorMode({
375
+ submode: "code",
376
+ codePath: `${testRealmURL}blog-post.gts`
377
+ });
378
+ assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists("schema editor is open by default");
379
+ assert.dom("[data-test-playground-panel]").doesNotExist("do not load playground unless panel is open");
380
+ await selectDeclaration("Category");
381
+ await togglePlaygroundPanel();
382
+ assert.dom("[data-test-playground-panel]").exists("playground panel exists for Category (exported card def)");
383
+ await click("[data-test-module-inspector-view=\"schema\"]");
384
+ await selectDeclaration("LocalCategoryCard");
385
+ await togglePlaygroundPanel();
386
+ assert.dom("[data-test-playground-panel]").doesNotExist("playground panel exists for Category (exported card def)");
387
+ assert.dom("[data-test-playground-incompatible-message]").exists();
388
+ assert.dom("[data-test-playground-incompatible-message] span").containsText("Playground is not currently supported for this type.");
389
+ await selectDeclaration("RandomClass");
390
+ assert.dom("[data-test-module-inspector-view=\"preview\"]").exists("inspector exists for RandomClass (not a card or field def)");
391
+ assert.dom("[data-test-playground-incompatible-message]").exists();
392
+ assert.dom("[data-test-playground-incompatible-message] span").containsText("Playground is not currently supported for this type.");
393
+ await selectDeclaration("BlogPost");
394
+ assert.dom("[data-test-playground-panel]").exists("exists for BlogPost (exported card def)");
395
+ });
396
+ (0, import_qunit.test)("playground does not auto-create spec for subclasses of specs", async function(assert) {
397
+ await visitOperatorMode({
398
+ submode: "code",
399
+ codePath: `${testRealmURL}test-spec.gts`
400
+ });
401
+ await selectDeclaration("TestSpec");
402
+ await togglePlaygroundPanel();
403
+ await waitFor("[data-test-playground-panel]");
404
+ assert.dom("[data-test-subclass-spec]").doesNotExist();
405
+ });
406
+ (0, import_qunit.test)("can populate instance chooser dropdown from recent files and pre-select the first card", async function(assert) {
407
+ removePlaygroundSelections();
408
+ removeRecentFiles();
409
+ setRecentFiles([
410
+ [testRealmURL, "BlogPost/mad-hatter.json"],
411
+ [testRealmURL, "Category/city-design.json"],
412
+ [testRealmURL, "Category/future-tech.json"],
413
+ [testRealmURL, "BlogPost/remote-work.json"],
414
+ [testRealmURL, "BlogPost/urban-living.json"],
415
+ [testRealmURL, "Author/jane-doe.json"]
416
+ ]);
417
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
418
+ assert.dom("[data-test-selected-item]").containsText("City Design", "most recent category card is pre-selected");
419
+ assertCardExists(assert, `${testRealmURL}Category/city-design`);
420
+ await selectDeclaration("BlogPost");
421
+ assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "pre-selected card is updated when selected card def changes");
422
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
423
+ await selectDeclaration("Category");
424
+ assert.dom("[data-test-selected-item]").containsText("City Design", "correct card is still pre-selected");
425
+ assertCardExists(assert, `${testRealmURL}Category/city-design`);
426
+ await click("[data-test-instance-chooser]");
427
+ assert.dom("[data-option-index] [data-test-category-fitted]").exists({ count: 2 });
428
+ await click("[data-option-index=\"1\"]");
429
+ assert.dom("[data-test-selected-item]").containsText("Future Tech");
430
+ assertCardExists(assert, `${testRealmURL}Category/future-tech`);
431
+ assert.strictEqual(getPlaygroundSelections()?.[`${testRealmURL}blog-post/Category`]?.cardId, `${testRealmURL}Category/future-tech`, "user-selected card is persisted");
432
+ await selectDeclaration("BlogPost");
433
+ assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "correct card is pre-selected when selected card def changes");
434
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
435
+ await selectDeclaration("Category");
436
+ assert.dom("[data-test-selected-item]").containsText("Future Tech", "persisted card is selected");
437
+ assertCardExists(assert, `${testRealmURL}Category/future-tech`);
438
+ await percySnapshot(assert);
439
+ });
440
+ (0, import_qunit.test)("head format preview renders for card definitions in playground", async function(assert) {
441
+ removePlaygroundSelections();
442
+ setPlaygroundSelections({ [`${testRealmURL}head-preview/HeadPreview`]: {
443
+ cardId: rri(`${testRealmURL}HeadPreview/example`),
444
+ format: "head"
445
+ } });
446
+ await openFileInPlayground("head-preview.gts", testRealmURL, { declaration: "HeadPreview" });
447
+ await selectFormat("head");
448
+ await waitForHeadPreviewText("[data-test-google-title]", "Definition Title", "initial head preview render in card playground");
449
+ assert.dom("[data-test-google-title]").hasText("Definition Title");
450
+ assert.dom("[data-test-google-description]").hasText("Definition description");
451
+ assert.dom("[data-test-google-site-name]").hasText("example.com");
452
+ setMonacoContent(headPreviewCard.replace("</title>", "!!</title>"));
453
+ await waitForHeadPreviewText("[data-test-google-title]", "Definition Title!!", "updated head preview render in card playground");
454
+ assert.dom("[data-test-google-title]").hasText("Definition Title!!");
455
+ });
456
+ (0, import_qunit.test)("can populate instance chooser options from recent-files and recent-cards, ordered by last viewed timestamp", async function(assert) {
457
+ removePlaygroundSelections();
458
+ removeRecentFiles();
459
+ removeRecentCards();
460
+ let ts = Date.now();
461
+ setRecentFiles([
462
+ [
463
+ testRealmURL,
464
+ "Category/home-gym.json",
465
+ null,
466
+ ts
467
+ ],
468
+ [
469
+ testRealmURL,
470
+ "BlogPost/remote-work.json",
471
+ null,
472
+ ts
473
+ ],
474
+ [
475
+ testRealmURL,
476
+ "Category/future-tech.json",
477
+ null,
478
+ ts - 2
479
+ ],
480
+ [
481
+ testRealmURL,
482
+ "Category/city-design.json",
483
+ null,
484
+ ts - 5
485
+ ]
486
+ ]);
487
+ setRecentCards([
488
+ [`${testRealmURL}Category/landscaping.json`, ts - 1],
489
+ [`${testRealmURL}BlogPost/mad-hatter.json`, ts - 1],
490
+ [`${testRealmURL}Category/city-design.json`, ts - 3],
491
+ [`${testRealmURL}Category/future-tech.json`, ts - 4]
492
+ ]);
493
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
494
+ assert.dom("[data-test-selected-item]").containsText("Home Gym", "most recent category instance is pre-selected");
495
+ assertCardExists(assert, `${testRealmURL}Category/home-gym`);
496
+ await click("[data-test-instance-chooser]");
497
+ assert.dom("[data-option-index]").exists({ count: 4 });
498
+ assert.dom("[data-option-index=\"0\"]").containsText("Home Gym");
499
+ assert.dom("[data-option-index=\"1\"]").containsText("Landscaping");
500
+ assert.dom("[data-option-index=\"2\"]").containsText("Future Tech");
501
+ assert.dom("[data-option-index=\"3\"]").containsText("City Design");
502
+ await click(`[data-test-recent-file="${testRealmURL}Category/future-tech.json"]`);
503
+ await click("[data-test-clickable-definition-container]");
504
+ assert.dom("[data-test-selected-item]").containsText("Home Gym", "selected card has not changed");
505
+ assertCardExists(assert, `${testRealmURL}Category/home-gym`);
506
+ await click("[data-test-instance-chooser]");
507
+ assert.dom("[data-option-index]").exists({ count: 4 });
508
+ assert.dom("[data-option-index=\"0\"]").containsText("Future Tech", "recent card order is updated");
509
+ assert.dom("[data-option-index=\"1\"]").containsText("Home Gym");
510
+ assert.dom("[data-option-index=\"2\"]").containsText("Landscaping");
511
+ assert.dom("[data-option-index=\"3\"]").containsText("City Design");
512
+ await click("[data-test-more-options-button]");
513
+ await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
514
+ assert.dom(`[data-test-stack-card="${testRealmURL}Category/home-gym"]`).exists();
515
+ await click("[data-test-open-search-field]");
516
+ await waitFor(`[data-test-search-result="${testRealmURL}Category/landscaping"]`, { timeout: 8e3 });
517
+ await click(`[data-test-search-result="${testRealmURL}Category/landscaping"]`);
518
+ assert.dom(`[data-test-stack-card="${testRealmURL}Category/landscaping"]`).exists();
519
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
520
+ await togglePlaygroundPanel();
521
+ assert.dom("[data-test-selected-item]").containsText("Home Gym", "selected card has not changed");
522
+ assertCardExists(assert, `${testRealmURL}Category/home-gym`);
523
+ await click("[data-test-instance-chooser]");
524
+ assert.dom("[data-option-index]").exists({ count: 4 });
525
+ assert.dom("[data-option-index=\"0\"]").containsText("Landscaping", "recent card order is updated");
526
+ assert.dom("[data-option-index=\"1\"]").containsText("Home Gym");
527
+ assert.dom("[data-option-index=\"2\"]").containsText("Future Tech");
528
+ assert.dom("[data-option-index=\"3\"]").containsText("City Design");
529
+ });
530
+ (0, import_qunit.test)("can update the instance chooser when selected card def changes (same file)", async function(assert) {
531
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
532
+ assert.dom("[data-test-selected-item]").containsText("City Design");
533
+ await click("[data-test-instance-chooser]");
534
+ assert.dom("[data-option-index]").exists({ count: 2 });
535
+ assert.dom("[data-option-index=\"1\"]").containsText("Future Tech");
536
+ await selectDeclaration("BlogPost");
537
+ assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter");
538
+ await click("[data-test-instance-chooser]");
539
+ assert.dom("[data-option-index]").exists({ count: 3 });
540
+ assert.dom("[data-option-index=\"0\"]").containsText("Mad As a Hatter");
541
+ });
542
+ (0, import_qunit.test)("can update the instance chooser when a different file is opened", async function(assert) {
543
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
544
+ assert.dom("[data-test-selected-item]").containsText("City Design");
545
+ assertCardExists(assert, `${testRealmURL}Category/city-design`);
546
+ await click("[data-test-instance-chooser]");
547
+ assert.dom("[data-option-index]").exists({ count: 2 });
548
+ assert.dom("[data-option-index=\"0\"]").containsText("City Design");
549
+ await click("[data-test-file-browser-toggle]");
550
+ await click("[data-test-file=\"author.gts\"]");
551
+ await togglePlaygroundPanel();
552
+ assert.dom("[data-test-selected-item]").containsText("Jane Doe");
553
+ assertCardExists(assert, `${testRealmURL}Author/jane-doe`);
554
+ await click("[data-test-instance-chooser]");
555
+ assert.dom("li.ember-power-select-option").exists({ count: 1 });
556
+ assert.dom("[data-option-index=\"0\"]").containsText("Jane Doe");
557
+ });
558
+ (0, import_qunit.test)("header context menu omits \"Open in Code Mode\" (already in code submode)", async function(assert) {
559
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
560
+ await click("[data-test-more-options-button]");
561
+ assert.dom("[data-test-boxel-dropdown-content] [data-test-boxel-menu-item]").exists({ count: 5 });
562
+ assert.dom("[data-test-boxel-menu-item-text=\"Open in Code Mode\"]").doesNotExist();
563
+ });
564
+ (0, import_qunit.test)("can use the header context menu to open instance in interact mode", async function(assert) {
565
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
566
+ await click("[data-test-more-options-button]");
567
+ await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
568
+ assert.dom(`[data-test-stack-card-index="0"][data-test-stack-card="${testRealmURL}index"]`).exists();
569
+ assert.dom(`[data-test-stack-card-index="1"][data-test-stack-card="${testRealmURL}Author/jane-doe"]`).exists();
570
+ assert.dom("[data-test-author-title]").hasText("Jane Doe");
571
+ });
572
+ (0, import_qunit.test)("can display selected card in the chosen format", async function(assert) {
573
+ const cardId = `${testRealmURL}Author/jane-doe`;
574
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
575
+ assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
576
+ assertCardExists(assert, cardId, "isolated");
577
+ assert.dom("[data-test-author-title]").hasText("Jane Doe");
578
+ assert.dom("[data-test-author-bio]").containsText("Jane Doe is the Senior Managing Editor");
579
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
580
+ assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length });
581
+ await selectFormat("embedded");
582
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasNoClass("active");
583
+ assert.dom("[data-test-format-chooser=\"embedded\"]").hasClass("active");
584
+ assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").doesNotExist();
585
+ assertCardExists(assert, cardId, "embedded");
586
+ await selectFormat("edit");
587
+ assert.dom("[data-test-format-chooser=\"embedded\"]").hasNoClass("active");
588
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
589
+ assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
590
+ assertCardExists(assert, cardId, "edit");
591
+ await selectFormat("atom");
592
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasNoClass("active");
593
+ assert.dom("[data-test-format-chooser=\"atom\"]").hasClass("active");
594
+ assert.dom("[data-test-atom-preview]").hasText("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do Jane Doe tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.");
595
+ await selectFormat("fitted");
596
+ assert.dom("[data-test-format-chooser=\"atom\"]").hasNoClass("active");
597
+ assert.dom("[data-test-format-chooser=\"fitted\"]").hasClass("active");
598
+ assert.dom("[data-test-playground-panel] [data-test-card-format=\"fitted\"]").exists({ count: 16 });
599
+ await selectFormat("markdown");
600
+ assert.dom("[data-test-format-chooser=\"fitted\"]").hasNoClass("active");
601
+ assert.dom("[data-test-format-chooser=\"markdown\"]").hasClass("active");
602
+ assert.dom("[data-test-markdown-preview]").exists("markdown preview container renders");
603
+ assertCardExists(assert, cardId, "markdown");
604
+ });
605
+ (0, import_qunit.test)("shows \"form\" format button only for cards with a custom edit template", async function(assert) {
606
+ const cardId = `${testRealmURL}CustomEdit/sample`;
607
+ await openFileInPlayground("custom-edit.gts", testRealmURL, { declaration: "CustomEdit" });
608
+ assertCardExists(assert, cardId, "isolated");
609
+ assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length + 1 });
610
+ assert.dom("[data-test-format-chooser=\"form\"]").exists("\"form\" button appears because CustomEdit has a custom edit template");
611
+ assert.dom("[data-test-format-chooser=\"edit\"]").exists("\"edit\" button still present alongside \"form\"");
612
+ await selectFormat("form");
613
+ assert.dom("[data-test-format-chooser=\"form\"]").hasClass("active");
614
+ assertCardExists(assert, cardId, "edit");
615
+ assert.dom("[data-test-custom-edit]").doesNotExist("base CardDef template is used, not the custom edit template");
616
+ await selectFormat("edit");
617
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
618
+ assertCardExists(assert, cardId, "edit");
619
+ assert.dom("[data-test-custom-edit]").exists("custom edit template is used when \"edit\" is selected");
620
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
621
+ assert.dom("[data-test-format-chooser=\"form\"]").doesNotExist("\"form\" button absent for cards without a custom edit template");
622
+ });
623
+ (0, import_qunit.test)("can toggle edit format via button on card header", async function(assert) {
624
+ const cardId = `${testRealmURL}Author/jane-doe`;
625
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
626
+ assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
627
+ assertCardExists(assert, cardId, "isolated");
628
+ assert.dom("[data-test-author-title]").hasText("Jane Doe");
629
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
630
+ await click("[data-test-boxel-card-header-actions] [data-test-edit-button]");
631
+ assertCardExists(assert, cardId, "edit");
632
+ assert.dom("[data-test-card-header]").hasClass("is-editing");
633
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasNoClass("active");
634
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
635
+ await click("[data-test-boxel-card-header-actions] [data-test-edit-button]");
636
+ assertCardExists(assert, cardId, "isolated");
637
+ assert.dom("[data-test-card-header]").hasNoClass("is-editing");
638
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasNoClass("active");
639
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
640
+ });
641
+ (0, import_qunit.test)("can use the header context menu to open instance in edit format in interact mode", async function(assert) {
642
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
643
+ await selectFormat("edit");
644
+ await click("[data-test-more-options-button]");
645
+ await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
646
+ assert.dom(`[data-test-stack-card-index="0"][data-test-stack-card="${testRealmURL}index"]`).exists();
647
+ assert.dom(`[data-test-stack-card-index="1"][data-test-stack-card="${testRealmURL}Author/jane-doe"]`).exists();
648
+ assert.dom(`[data-test-stack-item-content] [data-test-card-format="edit"]`).exists();
649
+ });
650
+ (0, import_qunit.test)("can choose another instance to be opened in playground panel", async function(assert) {
651
+ removeRecentFiles();
652
+ let recentFilesService = getService("recent-files-service");
653
+ assert.strictEqual(recentFilesService.recentFiles?.length, 0);
654
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
655
+ await chooseAnotherInstance();
656
+ assert.dom("[data-test-card-chooser-modal]").exists();
657
+ assert.dom("[data-test-item-button]").exists({ count: 3 });
658
+ assert.dom(`[data-test-item-button="${testRealmURL}BlogPost/mad-hatter"]`).exists();
659
+ assert.dom(`[data-test-item-button="${testRealmURL}BlogPost/urban-living"]`).exists();
660
+ assert.dom(`[data-test-item-button="${testRealmURL}BlogPost/remote-work"]`).exists();
661
+ await click(`[data-test-item-button="${testRealmURL}BlogPost/mad-hatter"]`);
662
+ await click("[data-test-card-chooser-go-button]");
663
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`, "isolated");
664
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}BlogPost/mad-hatter.json`, `${testRealmURL}blog-post.gts`]);
665
+ });
666
+ (0, import_qunit.test)("can create new instance", async function(assert) {
667
+ removeRecentFiles();
668
+ let recentFilesService = getService("recent-files-service");
669
+ assert.strictEqual(recentFilesService.recentFiles?.length, 0);
670
+ await visitOperatorMode({
671
+ submode: "code",
672
+ codePath: `${testRealmURL}blog-post.gts`
673
+ });
674
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}blog-post.gts`]);
675
+ await click("[data-boxel-selector-item-text=\"BlogPost\"]");
676
+ await togglePlaygroundPanel();
677
+ assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Mad As a Hatter", "card instance found in realm");
678
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
679
+ let id;
680
+ this.onSave((url) => {
681
+ id = url.href;
682
+ });
683
+ await createNewInstance();
684
+ await waitUntil(() => id);
685
+ assert.strictEqual(recentFilesService.recentFiles?.length, 2, "recent file count is correct");
686
+ assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Untitled Blog Post", "created instance is selected");
687
+ assertCardExists(assert, id, "isolated", "new card is rendered in isolated format");
688
+ assert.dom("[data-option-index]").exists({ count: 1 }, "dropdown instance count is correct");
689
+ assert.dom("[data-option-index]").containsText("Blog Post");
690
+ });
691
+ (0, import_qunit.test)("can create new instance with CodeRef field", async function(assert) {
692
+ await openFileInPlayground("code-ref-driver.gts", testRealmURL, { declaration: "CodeRefDriver" });
693
+ let id;
694
+ this.onSave((url) => {
695
+ id = url.href;
696
+ });
697
+ await createNewInstance();
698
+ await waitUntil(() => id);
699
+ assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Untitled Code Ref Driver", "created instance is selected");
700
+ assert.dom(`[data-test-playground-panel] [data-test-card][data-test-card-format="isolated"]`).exists("new card is rendered in edit format");
701
+ await click("[data-test-edit-button]");
702
+ assert.dom("[data-test-playground-panel] [data-test-card] [data-test-field=\"ref\"] input").hasNoValue("code ref field is empty");
703
+ });
704
+ (0, import_qunit.test)("can set relative CodeRef field", async function(assert) {
705
+ await openFileInPlayground("code-ref-driver.gts", testRealmURL, { declaration: "CodeRefDriver" });
706
+ await createNewInstance();
707
+ await click("[data-test-edit-button]");
708
+ assert.dom("[data-test-playground-panel] [data-test-card] [data-test-ref] [data-test-boxel-input-validation-state=\"valid\"]").doesNotExist("code ref validity is not set");
709
+ await fillIn("[data-test-playground-panel] [data-test-card] [data-test-field=\"ref\"] input", `../blog-post/BlogPost`);
710
+ await waitFor("[data-test-playground-panel] [data-test-card] [data-test-hasValidated]");
711
+ assert.dom("[data-test-playground-panel] [data-test-card] [data-test-field=\"ref\"] [data-test-boxel-input-validation-state=\"valid\"]").exists("code ref is valid");
712
+ });
713
+ (0, import_qunit.test)("playground preview for card with contained fields can live update when module changes", async function(assert) {
714
+ const authorCard = `import { contains, field, CardDef, Component } from "@cardstack/base/card-api";
715
+ import MarkdownField from '@cardstack/base/markdown';
716
+ import StringField from "@cardstack/base/string";
717
+ export class Author extends CardDef {
718
+ static displayName = 'Author';
719
+ @field firstName = contains(StringField);
720
+ @field lastName = contains(StringField);
721
+ @field bio = contains(MarkdownField);
722
+ @field cardTitle = contains(StringField, {
723
+ computeVia: function (this: Author) {
724
+ return [this.firstName, this.lastName].filter(Boolean).join(' ');
725
+ },
726
+ });
727
+ static isolated = class Isolated extends Component<typeof this> {
728
+ <template>
729
+ <article>
730
+ <header>
731
+ <h1 data-test-author-title>Hello <@fields.cardTitle /></h1>
732
+ </header>
733
+ <div data-test-author-bio><@fields.bio /></div>
734
+ </article>
735
+ <style scoped>
736
+ article {
737
+ margin-inline: var(--boxel-sp-lg);
738
+ }
739
+ </style>
740
+ </template>
741
+ }
742
+ }`;
743
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
744
+ await waitFor("[data-test-selected-item]");
745
+ assert.dom("[data-test-selected-item]").containsText("Jane Doe");
746
+ assert.dom("[data-test-author-title]").containsText("Jane Doe");
747
+ await realm.write("author.gts", authorCard);
748
+ await settled();
749
+ await waitFor("[data-test-selected-item]");
750
+ assert.dom("[data-test-selected-item]").containsText("Jane Doe");
751
+ assert.dom("[data-test-author-title]").containsText("Hello Jane Doe");
752
+ });
753
+ (0, import_qunit.test)("playground preview for card with linked fields can live update when module changes", async function(assert) {
754
+ const blogPostCard = `import { contains, field, linksTo, linksToMany, CardDef, Component } from "@cardstack/base/card-api";
755
+ import DateTimeField from '@cardstack/base/datetime';
756
+ import MarkdownField from '@cardstack/base/markdown';
757
+ import StringField from "@cardstack/base/string";
758
+ import { Author } from './author';
759
+
760
+ export class Category extends CardDef {
761
+ static displayName = 'Category';
762
+ static fitted = class Fitted extends Component<typeof this> {
763
+ <template>
764
+ <div data-test-category-fitted><@fields.cardTitle /></div>
765
+ </template>
766
+ }
767
+ }
768
+
769
+ class Status extends StringField {
770
+ static displayName = 'Status';
771
+ }
772
+
773
+ export class BlogPost extends CardDef {
774
+ static displayName = 'Blog Post';
775
+ @field publishDate = contains(DateTimeField);
776
+ @field author = linksTo(Author);
777
+ @field categories = linksToMany(Category);
778
+ @field body = contains(MarkdownField);
779
+ @field status = contains(Status, {
780
+ computeVia: function (this: BlogPost) {
781
+ if (!this.publishDate) {
782
+ return 'Draft';
783
+ }
784
+ if (Date.now() >= Date.parse(String(this.publishDate))) {
785
+ return 'Published';
786
+ }
787
+ return 'Scheduled';
788
+ },
789
+ });
790
+ @field cardTitle = contains(StringField);
791
+
792
+ static isolated = class Isolated extends Component<typeof this> {
793
+ <template>
794
+ <article>
795
+ <header>
796
+ <h1 data-test-post-title>Hello <@fields.cardTitle /></h1>
797
+ </header>
798
+ <div data-test-byline><@fields.author /></div>
799
+ <div data-test-post-body><@fields.body /></div>
800
+ </article>
801
+ <style scoped>
802
+ article {
803
+ margin-inline: var(--boxel-sp-lg);
804
+ }
805
+ </style>
806
+ </template>
807
+ }
808
+ }`;
809
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
810
+ await waitFor("[data-test-selected-item]");
811
+ assert.dom("[data-test-selected-item]").exists("title exists on first render");
812
+ assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "selected item title is correct");
813
+ assert.dom("[data-test-post-title]").hasText("Mad As a Hatter");
814
+ assert.dom("[data-test-byline]").containsText("Jane Doe");
815
+ await realm.write("blog-post.gts", blogPostCard);
816
+ await settled();
817
+ await waitFor("[data-test-selected-item]");
818
+ assert.dom("[data-test-selected-item]").exists("title exists on update");
819
+ assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter");
820
+ assert.dom("[data-test-post-title]").containsText("Hello Mad As a Hatter");
821
+ assert.dom("[data-test-byline]").containsText("Jane Doe");
822
+ });
823
+ (0, import_qunit.test)("playground edit format refreshes even if code invalidations are ignored", async function(assert) {
824
+ await visitOperatorMode({
825
+ submode: "code",
826
+ codePath: `${testRealmURL}person.gts`
827
+ });
828
+ let loaderService = getService("loader-service");
829
+ let resetCount = 0;
830
+ let originalResetLoader = loaderService.resetLoader.bind(loaderService);
831
+ loaderService.resetLoader = (options) => {
832
+ resetCount += 1;
833
+ return originalResetLoader(options);
834
+ };
835
+ let store = getService("store");
836
+ let originalHandleInvalidations = store.handleInvalidations.bind(store);
837
+ store.handleInvalidations = (event) => {
838
+ if (event?.eventName === "index" && event?.indexType === "incremental" && Array.isArray(event?.invalidations) && event.invalidations.some(hasExecutableExtension)) return;
839
+ return originalHandleInvalidations(event);
840
+ };
841
+ try {
842
+ await click("[data-test-module-inspector-view=\"preview\"]");
843
+ await waitFor("[data-test-instance-chooser]");
844
+ await click("[data-test-instance-chooser]");
845
+ await click("[data-option-index=\"0\"]");
846
+ await click("[data-test-edit-button]");
847
+ await waitFor("[data-test-card-format=\"edit\"]");
848
+ await click("[data-test-module-inspector-view=\"schema\"]");
849
+ await waitFor("[data-test-add-field-button]");
850
+ await click("[data-test-add-field-button]");
851
+ await fillIn("[data-test-field-name-input]", "nickname");
852
+ await click("[data-test-save-field-button]");
853
+ await waitFor("[data-test-card-schema=\"Person\"] [data-test-field-name=\"nickname\"]");
854
+ await waitUntil(() => resetCount > 0);
855
+ await click("[data-test-module-inspector-view=\"preview\"]");
856
+ await waitFor("[data-test-instance-chooser]");
857
+ await waitFor("[data-test-card-format=\"edit\"] [data-test-field=\"nickname\"]");
858
+ assert.dom("[data-test-card-format=\"edit\"] [data-test-field=\"nickname\"]").exists();
859
+ } finally {
860
+ loaderService.resetLoader = originalResetLoader;
861
+ store.handleInvalidations = originalHandleInvalidations;
862
+ }
863
+ });
864
+ (0, import_qunit.test)("can remember playground selections and format choices via local storage", async function(assert) {
865
+ const authorModuleId = `${testRealmURL}author/Author`;
866
+ const categoryModuleId = `${testRealmURL}blog-post/Category`;
867
+ const blogPostModuleId = `${testRealmURL}blog-post/BlogPost`;
868
+ const authorId = rri(`${testRealmURL}Author/jane-doe`);
869
+ const categoryId1 = rri(`${testRealmURL}Category/city-design`);
870
+ const categoryId2 = rri(`${testRealmURL}Category/future-tech`);
871
+ const blogPostId1 = rri(`${testRealmURL}BlogPost/mad-hatter`);
872
+ const blogPostId2 = rri(`${testRealmURL}BlogPost/remote-work`);
873
+ setPlaygroundSelections({
874
+ [`${authorModuleId}`]: {
875
+ cardId: authorId,
876
+ format: "edit"
877
+ },
878
+ [`${categoryModuleId}`]: {
879
+ cardId: categoryId1,
880
+ format: "embedded"
881
+ },
882
+ [`${blogPostModuleId}`]: {
883
+ cardId: blogPostId1,
884
+ format: "isolated"
885
+ }
886
+ });
887
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
888
+ assert.dom("[data-test-selected-item]").containsText("Jane Doe");
889
+ assertCardExists(assert, authorId, "edit");
890
+ await selectFormat("atom");
891
+ assertCardExists(assert, authorId, "atom");
892
+ assert.deepEqual(getPlaygroundSelections()?.[authorModuleId], {
893
+ cardId: authorId,
894
+ format: "atom"
895
+ }, "local storage is updated");
896
+ await click(`[data-test-recent-file="${testRealmURL}blog-post.gts"]`);
897
+ await selectDeclaration("Category");
898
+ await togglePlaygroundPanel();
899
+ assert.dom("[data-test-selected-item]").containsText("City Design");
900
+ assertCardExists(assert, categoryId1, "embedded");
901
+ await click("[data-test-instance-chooser]");
902
+ await click("[data-option-index=\"1\"]");
903
+ assert.dom("[data-test-selected-item]").containsText("Future Tech");
904
+ assertCardExists(assert, categoryId2, "embedded");
905
+ assert.deepEqual(getPlaygroundSelections()?.[categoryModuleId], {
906
+ cardId: categoryId2,
907
+ format: "embedded"
908
+ }, "local storage is updated");
909
+ await click("[data-test-inspector-toggle]");
910
+ await click("[data-test-boxel-selector-item-text=\"BlogPost\"]");
911
+ assertCardExists(assert, blogPostId1, "isolated");
912
+ await selectFormat("fitted");
913
+ assert.deepEqual(getPlaygroundSelections()?.[blogPostModuleId], {
914
+ cardId: blogPostId1,
915
+ format: "fitted"
916
+ });
917
+ await click("[data-test-instance-chooser]");
918
+ await click("[data-option-index=\"1\"]");
919
+ assertCardExists(assert, blogPostId2, "fitted");
920
+ assert.deepEqual(getPlaygroundSelections()?.[blogPostModuleId], {
921
+ cardId: blogPostId2,
922
+ format: "fitted"
923
+ });
924
+ assert.strictEqual(JSON.stringify(getPlaygroundSelections()), JSON.stringify({
925
+ [`${authorModuleId}`]: {
926
+ cardId: authorId,
927
+ format: "atom"
928
+ },
929
+ [`${categoryModuleId}`]: {
930
+ cardId: categoryId2,
931
+ format: "embedded"
932
+ },
933
+ [`${blogPostModuleId}`]: {
934
+ cardId: blogPostId2,
935
+ format: "fitted"
936
+ }
937
+ }));
938
+ });
939
+ (0, import_qunit.test)("trigger auto saved in edit format", async function(assert) {
940
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
941
+ await click("[data-test-instance-chooser]");
942
+ await click("[data-option-index=\"0\"]");
943
+ await click("[data-test-edit-button]");
944
+ assert.dom("[data-test-card-format=\"edit\"]").exists();
945
+ let newFirstName = "John";
946
+ this.onSave((_, json) => {
947
+ if (typeof json === "string") throw new Error("expected JSON save data");
948
+ assert.strictEqual(json.data.attributes?.firstName, newFirstName);
949
+ });
950
+ await fillIn("[data-test-field=\"firstName\"] [data-test-boxel-input]", newFirstName);
951
+ });
952
+ (0, import_qunit.test)("automatically attaches the selected card to the AI message", async function(assert) {
953
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
954
+ await click("[data-test-instance-chooser]");
955
+ await click("[data-option-index=\"0\"]");
956
+ await click("[data-test-open-ai-assistant]");
957
+ assert.dom(`[data-test-card="${testRealmURL}Author/jane-doe"]`).exists();
958
+ assert.dom("[data-test-autoattached-card]").hasText("Jane Doe");
959
+ await triggerEvent(`[data-test-autoattached-card]`, "mouseenter");
960
+ assert.dom("[data-test-tooltip-content]").hasText("Current card is shared automatically");
961
+ await click("[data-test-file-browser-toggle]");
962
+ await click("[data-test-file=\"blog-post.gts\"]");
963
+ await togglePlaygroundPanel();
964
+ await click("[data-test-inspector-toggle]");
965
+ await selectDeclaration("Category");
966
+ await click("[data-test-instance-chooser]");
967
+ await click("[data-option-index=\"1\"]");
968
+ assert.dom(`[data-test-card="${testRealmURL}Category/future-tech"]`).exists();
969
+ assert.dom("[data-test-autoattached-card]").hasText("Future Tech");
970
+ await click("[data-test-remove-card-btn]");
971
+ assert.dom("[data-test-autoattached-card]").doesNotExist();
972
+ await click("[data-test-instance-chooser]");
973
+ await click("[data-option-index=\"0\"]");
974
+ assert.dom(`[data-test-card="${testRealmURL}Category/city-design"]`).exists();
975
+ assert.dom("[data-test-autoattached-card]").hasText("City Design");
976
+ await fillIn("[data-test-message-field]", `Message With Card and File`);
977
+ await click("[data-test-send-message-btn]");
978
+ await waitUntil(() => document.querySelectorAll("[data-test-message-idx]").length > 0);
979
+ assertMessages(assert, [{
980
+ from: "testuser",
981
+ message: "Message With Card and File",
982
+ files: [{
983
+ sourceUrl: `${testRealmURL}blog-post.gts`,
984
+ name: "blog-post.gts"
985
+ }],
986
+ cards: [{
987
+ id: `${testRealmURL}Category/city-design`,
988
+ cardTitle: "City Design"
989
+ }]
990
+ }]);
991
+ });
992
+ (0, import_qunit.test)("instance chooser only appears when panel is opened", async function(assert) {
993
+ await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
994
+ assert.dom("[data-test-instance-chooser]").exists();
995
+ await click("[data-test-module-inspector-view=\"spec\"]");
996
+ assert.dom("[data-test-instance-chooser]").doesNotExist();
997
+ });
998
+ (0, import_qunit.test)("can autogenerate card instance if one does not exist in the realm", async function(assert) {
999
+ removeRecentFiles();
1000
+ setRecentFiles([[testRealmURL, "person.gts"]]);
1001
+ let recentFiles = getRecentFiles();
1002
+ assert.strictEqual(recentFiles?.length, 1, "recent file count is correct");
1003
+ let { data: results } = await searchCardsForTest(realm.realmIndexQueryEngine, { filter: { type: {
1004
+ module: testRRI("person"),
1005
+ name: "Person"
1006
+ } } });
1007
+ assert.strictEqual(results.length, 0);
1008
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1009
+ assert.dom("[data-test-selected-item]").containsText("Untitled Person");
1010
+ recentFiles = getRecentFiles();
1011
+ assert.strictEqual(recentFiles?.length, 2, "new card is added to recent files");
1012
+ let newCardId = trimJsonExtension(`${testRealmURL}${recentFiles?.[0][1]}`);
1013
+ assertCardExists(assert, newCardId, "isolated");
1014
+ await click("[data-test-instance-chooser]");
1015
+ assert.dom("[data-option-index]").exists({ count: 1 }, "new card shows up in instance chooser dropdown");
1016
+ ({data: results} = await searchCardsForTest(realm.realmIndexQueryEngine, { filter: { type: {
1017
+ module: testRRI("person"),
1018
+ name: "Person"
1019
+ } } }));
1020
+ assert.strictEqual(results.length, 1);
1021
+ assert.strictEqual(results[0].id, newCardId);
1022
+ });
1023
+ (0, import_qunit.test)("does not autogenerate card instance if one exists in the realm but is not in recent cards", async function(assert) {
1024
+ removeRecentFiles();
1025
+ const cardId = `${testRealmURL}Person/pet-mango`;
1026
+ let { data: results } = await searchCardsForTest(realm.realmIndexQueryEngine, { filter: { type: {
1027
+ module: testRRI("person"),
1028
+ name: "Pet"
1029
+ } } });
1030
+ assert.strictEqual(results.length, 1);
1031
+ assert.strictEqual(results[0].id, cardId);
1032
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Pet" });
1033
+ assert.dom("[data-test-selected-item]").doesNotContainText("Untitled Pet");
1034
+ assert.dom("[data-test-selected-item]").containsText("Mango");
1035
+ assertCardExists(assert, cardId, "isolated");
1036
+ await click("[data-test-instance-chooser]");
1037
+ assert.dom("[data-option-index]").exists({ count: 1 });
1038
+ assert.dom("[data-option-index=\"0\"]").containsText("Mango");
1039
+ ({data: results} = await searchCardsForTest(realm.realmIndexQueryEngine, { filter: { type: {
1040
+ module: testRRI("person"),
1041
+ name: "Pet"
1042
+ } } }));
1043
+ assert.strictEqual(results.length, 1);
1044
+ assert.strictEqual(results[0].id, cardId);
1045
+ });
1046
+ (0, import_qunit.test)("can request AI assistant to fill in sample data", async function(assert) {
1047
+ const prompt = `Fill in sample data for the attached card instance.`;
1048
+ const menuItem = "Fill in Sample Data with AI";
1049
+ const commandMessage = {
1050
+ from: "testuser",
1051
+ message: prompt,
1052
+ cards: [{ id: `${testRealmURL}BlogPost/mad-hatter` }],
1053
+ files: [{
1054
+ name: "blog-post.gts",
1055
+ sourceUrl: `${testRealmURL}blog-post.gts`
1056
+ }]
1057
+ };
1058
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
1059
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
1060
+ await click("[data-test-instance-chooser]");
1061
+ await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1062
+ assertMessages(assert, [commandMessage]);
1063
+ await click("[data-test-more-options-button]");
1064
+ await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1065
+ assertMessages(assert, [commandMessage, commandMessage]);
1066
+ });
1067
+ (0, import_qunit.test)("can request AI assistant to bulk generate samples", async function(assert) {
1068
+ const prompt = `Generate 3 additional instances of the specified card definition, populated with sample data`;
1069
+ const menuItem = `Generate 3 examples with AI`;
1070
+ const commandMessage = {
1071
+ from: "testuser",
1072
+ message: prompt,
1073
+ cards: [{ id: `${testRealmURL}BlogPost/mad-hatter` }],
1074
+ files: [{
1075
+ name: "blog-post.gts",
1076
+ sourceUrl: `${testRealmURL}blog-post.gts`
1077
+ }]
1078
+ };
1079
+ await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
1080
+ assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
1081
+ await click("[data-test-instance-chooser]");
1082
+ await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1083
+ assertMessages(assert, [commandMessage]);
1084
+ await click("[data-test-more-options-button]");
1085
+ await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1086
+ assertMessages(assert, [commandMessage, commandMessage]);
1087
+ });
1088
+ });
1089
+ (0, import_qunit.module)("multiple realms", function(hooks) {
1090
+ let personalRealmURL;
1091
+ let additionalRealmURL;
1092
+ setupApplicationTest(hooks);
1093
+ setupLocalIndexing(hooks);
1094
+ let mockMatrixUtils = setupMockMatrix(hooks, { loggedInAs: "@testuser:localhost" });
1095
+ let { setActiveRealms, setRealmPermissions, createAndJoinRoom } = mockMatrixUtils;
1096
+ setupRealmCacheTeardown(hooks);
1097
+ hooks.beforeEach(async function() {
1098
+ createAndJoinRoom({
1099
+ sender: "@testuser:localhost",
1100
+ name: "room-test"
1101
+ });
1102
+ setupUserSubscription();
1103
+ setupAuthEndpoints();
1104
+ let realmServerService = getService("realm-server");
1105
+ personalRealmURL = `${realmServerService.url}testuser/personal/`;
1106
+ additionalRealmURL = `${realmServerService.url}testuser/aaa/`;
1107
+ setActiveRealms([additionalRealmURL, personalRealmURL]);
1108
+ await withCachedRealmSetup(async () => {
1109
+ await setupAcceptanceTestRealm({
1110
+ mockMatrixUtils,
1111
+ realmURL: personalRealmURL,
1112
+ contents: {
1113
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
1114
+ "author-card.gts": authorCard,
1115
+ "StyleReference/local-style.json": localStyleReferenceCard,
1116
+ "realm.json": realmConfigCardJSON({
1117
+ name: `Test User's Workspace`,
1118
+ backgroundURL: "/test-fixtures/realm-images/4k-origami-flock.jpg",
1119
+ iconURL: "/test-fixtures/realm-images/letter-t.png"
1120
+ })
1121
+ }
1122
+ });
1123
+ await setupAcceptanceTestRealm({
1124
+ mockMatrixUtils,
1125
+ realmURL: additionalRealmURL,
1126
+ contents: {
1127
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
1128
+ "author-card.gts": authorCard,
1129
+ "realm.json": realmConfigCardJSON({
1130
+ name: `Additional Workspace`,
1131
+ backgroundURL: "/test-fixtures/realm-images/4k-powder-puff.jpg",
1132
+ iconURL: "/test-fixtures/realm-images/letter-a.png"
1133
+ })
1134
+ }
1135
+ });
1136
+ });
1137
+ setRealmPermissions({
1138
+ [additionalRealmURL]: [
1139
+ "read",
1140
+ "write",
1141
+ "realm-owner"
1142
+ ],
1143
+ [personalRealmURL]: [
1144
+ "read",
1145
+ "write",
1146
+ "realm-owner"
1147
+ ]
1148
+ });
1149
+ });
1150
+ (0, import_qunit.test)("can create new instance in currently open realm", async function(assert) {
1151
+ removeRecentFiles();
1152
+ await openFileInPlayground("author-card.gts", additionalRealmURL, { declaration: "Author" });
1153
+ assert.dom("[data-test-playground-panel] [data-test-card][data-test-card-format=\"isolated\"]").exists("new card is autogenerated");
1154
+ let recentFiles = getRecentFiles();
1155
+ assert.strictEqual(recentFiles?.[0][0], additionalRealmURL, "realm is correct");
1156
+ assert.strictEqual(recentFiles?.length, 2);
1157
+ await createNewInstance();
1158
+ recentFiles = getRecentFiles();
1159
+ assert.strictEqual(recentFiles?.length, 3, "recent file count is correct");
1160
+ let newCardId = document.querySelector("[data-test-card]")?.getAttribute("data-test-card");
1161
+ assert.ok(newCardId?.startsWith(additionalRealmURL));
1162
+ assert.notOk(newCardId?.startsWith(personalRealmURL));
1163
+ let recentCardId = trimJsonExtension(`${recentFiles?.[0][0]}${recentFiles?.[0][1]}`);
1164
+ assert.strictEqual(newCardId, recentCardId);
1165
+ assertCardExists(assert, recentCardId, "isolated", "new card is rendered in isolated format");
1166
+ });
1167
+ (0, import_qunit.test)("edit format is enabled for writable instances of read-only card definitions", async function(assert) {
1168
+ removePlaygroundSelections();
1169
+ removeRecentFiles();
1170
+ removeRecentCards();
1171
+ try {
1172
+ setRecentFiles([[personalRealmURL, "StyleReference/local-style.json"]]);
1173
+ await openFileInPlayground("style-reference.gts", baseRealm.url);
1174
+ await waitFor("[data-test-instance-chooser]");
1175
+ assert.dom("[data-test-selected-item]").containsText("Local Style Reference");
1176
+ await waitFor("[data-test-edit-button]");
1177
+ assert.dom("[data-test-edit-button]").exists("edit button is shown for writable instance");
1178
+ await click("[data-test-edit-button]");
1179
+ await waitFor("[data-test-card-format=\"edit\"]");
1180
+ assert.dom("[data-test-card-format=\"edit\"]").exists("playground switches to edit format");
1181
+ await fillIn("[data-test-card-format=\"edit\"] [data-test-contains-many=\"inspirations\"] [data-test-item=\"0\"] input", "Updated Inspiration");
1182
+ assert.dom("[data-test-card-format=\"edit\"] [data-test-contains-many=\"inspirations\"] [data-test-item=\"0\"] input").isNotDisabled("inspirations input is enabled for editing");
1183
+ } finally {
1184
+ removePlaygroundSelections();
1185
+ removeRecentFiles();
1186
+ removeRecentCards();
1187
+ }
1188
+ });
1189
+ });
1190
+ (0, import_qunit.module)("error handling", function(hooks) {
1191
+ let realm;
1192
+ setupApplicationTest(hooks);
1193
+ setupLocalIndexing(hooks);
1194
+ setupOnSave(hooks);
1195
+ setupRealmCacheTeardown(hooks);
1196
+ let mockMatrixUtils = setupMockMatrix(hooks, {
1197
+ loggedInAs: "@testuser:localhost",
1198
+ activeRealms: [testRealmURL]
1199
+ });
1200
+ let { setRealmPermissions, setActiveRealms, createAndJoinRoom } = mockMatrixUtils;
1201
+ const boomPet = `import { contains, field, CardDef, Component, FieldDef, StringField, serialize } from '@cardstack/base/card-api';
1202
+ // this field explodes when serialized (saved)
1203
+ export class BoomField extends FieldDef {
1204
+ @field cardTitle = contains(StringField);
1205
+ static [serialize](_boom: any) {
1206
+ throw new Error('Boom!');
1207
+ }
1208
+ static embedded = class Embedded extends Component<typeof this> {
1209
+ <template>
1210
+ <@fields.cardTitle />
1211
+ </template>
1212
+ };
1213
+ }
1214
+ export class BoomPet extends CardDef {
1215
+ static displayName = 'Boom Pet';
1216
+ @field boom = contains(BoomField);
1217
+ }
1218
+ `;
1219
+ const boomPerson = `import { field, contains, CardDef, FieldDef, Component, StringField } from '@cardstack/base/card-api';
1220
+ export class BoomPerson extends CardDef {
1221
+ static displayName = 'Boom Person';
1222
+ @field firstName = contains(StringField);
1223
+ static isolated = class Isolated extends Component<typeof this> {
1224
+ <template>
1225
+ Hello <@fields.firstName />! {{this.boom}}
1226
+ </template>
1227
+ boom = () => fn();
1228
+ }
1229
+ }
1230
+
1231
+ export class FailingField extends FieldDef {
1232
+ static displayName = 'Failing Field';
1233
+ @field cardTitle = contains(StringField);
1234
+ static embedded = class Embedded extends Component<typeof this> {
1235
+ <template>
1236
+ <p>This will fail.</p> {{this.boom}}
1237
+ </template>
1238
+ boom = () => {
1239
+ throw new Error('boom!');
1240
+ };
1241
+ };
1242
+ }
1243
+
1244
+ export class WorkingCard extends CardDef {
1245
+ static displayName = 'Working Card';
1246
+ static isolated = class Isolated extends Component<typeof this> {
1247
+ <template>
1248
+ <p>I am not broken!</p>
1249
+ </template>
1250
+ }
1251
+ }
1252
+ `;
1253
+ const syntaxError = `
1254
+ import { contains, field, CardDef } from "@cardstack/base/card-api";
1255
+ // missing StringField import
1256
+ export class Boom extends CardDef {
1257
+ @field firstName = contains(StringField);
1258
+ }
1259
+ `;
1260
+ hooks.beforeEach(async function() {
1261
+ createAndJoinRoom({
1262
+ sender: "@testuser:localhost",
1263
+ name: "room-test"
1264
+ });
1265
+ setupUserSubscription();
1266
+ setupAuthEndpoints();
1267
+ setActiveRealms([testRealmURL]);
1268
+ setRealmPermissions({ [testRealmURL]: ["read", "write"] });
1269
+ ({realm} = await withCachedRealmSetup(async () => setupAcceptanceTestRealm({
1270
+ mockMatrixUtils,
1271
+ realmURL: testRealmURL,
1272
+ contents: {
1273
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
1274
+ "boom-pet.gts": boomPet,
1275
+ "person.gts": personCard,
1276
+ "boom-person.gts": boomPerson,
1277
+ "syntax-error.gts": syntaxError,
1278
+ "Person/delilah.json": { data: {
1279
+ attributes: { cardInfo: { name: "Delilah" } },
1280
+ meta: { adoptsFrom: {
1281
+ module: `${testRealmURL}person`,
1282
+ name: "Person"
1283
+ } }
1284
+ } }
1285
+ }
1286
+ })));
1287
+ });
1288
+ (0, import_qunit.test)("it renders a module error", async function(assert) {
1289
+ await visitOperatorMode({
1290
+ submode: "code",
1291
+ codePath: `${testRealmURL}syntax-error.gts`
1292
+ });
1293
+ assert.dom("[data-test-syntax-error] [data-test-error-stack]").containsText(`Encountered error while evaluating ${testRealmURL}syntax-error.gts: ReferenceError: StringField is not defined`, "error message is correct (and contains no \"deps\" field)");
1294
+ });
1295
+ (0, import_qunit.test)("it renders a playground instance with an error that has does not have a last known good state", async function(assert) {
1296
+ await realm.write("BoomPet/cassidy.json", JSON.stringify({ data: {
1297
+ attributes: { title: "Cassidy Cat" },
1298
+ meta: { adoptsFrom: {
1299
+ module: `${testRealmURL}boom-pet`,
1300
+ name: "BoomPet"
1301
+ } }
1302
+ } }));
1303
+ setPlaygroundSelections({ [`${testRealmURL}boom-pet/BoomPet`]: {
1304
+ cardId: rri(`${testRealmURL}BoomPet/cassidy`),
1305
+ format: "isolated"
1306
+ } });
1307
+ await openFileInPlayground("boom-pet.gts", testRealmURL, { declaration: "BoomPet" });
1308
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error: Internal Server Error");
1309
+ assert.dom("[data-test-playground-panel] [data-test-field=\"cardTitle\"]").doesNotExist();
1310
+ assert.dom("[data-test-card-error]").containsText("This card contains an error.");
1311
+ assert.dom("[data-test-error-message]").hasText("Boom!");
1312
+ assert.dom("[data-test-format-chooser]").doesNotExist();
1313
+ await click("[data-test-toggle-details]");
1314
+ assert.dom("[data-test-error-details]").includesText("Boom! at [cardstack-serialize]");
1315
+ });
1316
+ (0, import_qunit.test)("it renders error info when creating new instance causes error after file was created in realm", async function(assert) {
1317
+ await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "BoomPerson" });
1318
+ assert.dom("[data-test-instance-chooser]").hasText("Select card instance");
1319
+ assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1320
+ await createNewInstance();
1321
+ assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1322
+ assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1323
+ assert.dom("[data-test-error-message]").hasText("Encountered error rendering HTML for card: fn is not defined");
1324
+ await click("[data-test-toggle-details]");
1325
+ assert.dom("[data-test-error-details]").containsText("fn is not defined");
1326
+ await withoutLoaderMonitoring(async () => {
1327
+ getService("loader-service").resetLoader();
1328
+ await realm.write("boom-person.gts", `import { field, contains, CardDef, Component, StringField } from '@cardstack/base/card-api';
1329
+ export class BoomPerson extends CardDef {
1330
+ static displayName = 'Boom Person';
1331
+ @field firstName = contains(StringField);
1332
+ static isolated = class Isolated extends Component<typeof this> {
1333
+ <template>
1334
+ Hello <@fields.firstName />!
1335
+ </template>
1336
+ boom = () => fn();
1337
+ }
1338
+ }
1339
+ `);
1340
+ });
1341
+ await waitFor(`[data-test-error-container]`, {
1342
+ count: 0,
1343
+ timeout: 5e3
1344
+ });
1345
+ assert.dom("[data-test-error-container]").doesNotExist();
1346
+ });
1347
+ (0, import_qunit.test)("it can clear card-creation error that did not result in new file in the realm", async function(assert) {
1348
+ await openFileInPlayground("boom-pet.gts", testRealmURL, { declaration: "BoomPet" });
1349
+ assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1350
+ await createNewInstance();
1351
+ assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1352
+ assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1353
+ assert.dom("[data-test-error-message]").hasText("Boom!");
1354
+ getService("loader-service").resetLoader();
1355
+ await realm.write("boom-pet.gts", `import { contains, field, CardDef, Component, FieldDef, StringField } from '@cardstack/base/card-api';
1356
+ export class BoomPet extends CardDef {
1357
+ static displayName = 'Boom Pet';
1358
+ @field boom = contains(StringField);
1359
+ }
1360
+ `);
1361
+ await waitFor(`[data-test-error-container]`, {
1362
+ count: 0,
1363
+ timeout: 5e3
1364
+ });
1365
+ assert.dom("[data-test-error-container]").doesNotExist();
1366
+ });
1367
+ (0, import_qunit.test)("it can clear card-creation error (that resulted in new file in the realm) when different card-def is selected", async function(assert) {
1368
+ await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "BoomPerson" });
1369
+ assert.dom("[data-test-instance-chooser]").containsText("Select card instance");
1370
+ assert.dom("[data-test-error-container]").containsText("This card contains an error", "Auto-generated card has error in it");
1371
+ await selectDeclaration("WorkingCard");
1372
+ assert.dom("[data-test-error-container]").doesNotExist("error clears when selecting different card def");
1373
+ await selectDeclaration("BoomPerson");
1374
+ assert.dom("[data-test-error-container]").exists("can navigate back to the error card def");
1375
+ });
1376
+ (0, import_qunit.test)("it can clear card-creation error for a failing field", async function(assert) {
1377
+ await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "FailingField" });
1378
+ assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1379
+ await createNewInstance();
1380
+ assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1381
+ assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1382
+ assert.dom("[data-test-error-message]").hasText("Encountered error rendering HTML for card: boom!");
1383
+ await withoutLoaderMonitoring(async () => {
1384
+ getService("loader-service").resetLoader();
1385
+ await realm.write("boom-person.gts", `import { contains, field, CardDef, Component, FieldDef, StringField } from '@cardstack/base/card-api';
1386
+ export class FailingField extends FieldDef {
1387
+ static displayName = 'Failing Field';
1388
+ @field cardTitle = contains(StringField);
1389
+ static embedded = class Embedded extends Component<typeof this> {
1390
+ <template>
1391
+ <p>This will not fail.</p>
1392
+ </template>
1393
+ };
1394
+ }
1395
+ `);
1396
+ });
1397
+ await waitFor(`[data-test-error-container]`, {
1398
+ count: 0,
1399
+ timeout: 5e3
1400
+ });
1401
+ assert.dom("[data-test-error-container]").doesNotExist();
1402
+ });
1403
+ (0, import_qunit.test)("it can render stale card in edit format when the server is in an error state for the card", async function(assert) {
1404
+ const cardId = rri(`${testRealmURL}Person/delilah`);
1405
+ setRecentFiles([[testRealmURL, "Person/delilah.json"]]);
1406
+ setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1407
+ cardId,
1408
+ format: "isolated"
1409
+ } });
1410
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1411
+ await click("[data-test-edit-button]");
1412
+ assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"] input").hasValue("Delilah");
1413
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1414
+ assert.dom("[data-test-format-chooser]").exists();
1415
+ assert.dom("[data-test-error-container]").doesNotExist();
1416
+ await realm.write("Person/delilah.json", JSON.stringify({ data: {
1417
+ attributes: { cardInfo: { name: "Lila" } },
1418
+ meta: { adoptsFrom: {
1419
+ module: `${testRealmURL}Person/missing-person`,
1420
+ name: "MissingPerson"
1421
+ } }
1422
+ } }));
1423
+ await settled();
1424
+ assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"] input").hasValue("Delilah");
1425
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1426
+ assert.dom("[data-test-format-chooser]").exists();
1427
+ assert.dom("[data-test-error-container]").doesNotExist();
1428
+ });
1429
+ (0, import_qunit.test)("it can render the last known good state for card with error when the not in the edit format", async function(assert) {
1430
+ await realm.write("Person/delilah.json", JSON.stringify({ data: {
1431
+ attributes: { cardInfo: { name: "Lila" } },
1432
+ meta: { adoptsFrom: {
1433
+ module: `${testRealmURL}Person/missing-person`,
1434
+ name: "MissingPerson"
1435
+ } }
1436
+ } }));
1437
+ const cardId = rri(`${testRealmURL}Person/delilah`);
1438
+ setRecentFiles([[testRealmURL, "Person/delilah.json"]]);
1439
+ setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1440
+ cardId,
1441
+ format: "isolated"
1442
+ } });
1443
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1444
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error");
1445
+ assert.dom("[data-test-card-error]").exists();
1446
+ assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"]").containsText("Delilah", "last known good state is rendered");
1447
+ assert.dom("[data-test-error-message]").hasText(`${testRealmURL}Person/missing-person not found`);
1448
+ assert.dom("[data-test-format-chooser]").doesNotExist();
1449
+ await click("[data-test-toggle-details]");
1450
+ assert.dom("[data-test-error-details]").containsText("Person/missing-person not found");
1451
+ assert.dom("[data-test-error-stack]").exists();
1452
+ await realm.write("Person/delilah.json", JSON.stringify({ data: {
1453
+ attributes: { cardInfo: { name: "Lila" } },
1454
+ meta: { adoptsFrom: {
1455
+ module: `${testRealmURL}person`,
1456
+ name: "Person"
1457
+ } }
1458
+ } }));
1459
+ await settled();
1460
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1461
+ assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"]").containsText("Lila");
1462
+ assert.dom("[data-test-error-container]").doesNotExist("can recover from missing link error");
1463
+ });
1464
+ (0, import_qunit.test)("it renders error message for missing file", async function(assert) {
1465
+ setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1466
+ cardId: rri(`${testRealmURL}Person/chef-mike`),
1467
+ format: "isolated"
1468
+ } });
1469
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1470
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error: Not Found");
1471
+ assert.dom("[data-test-card-error]").containsText("File not found. Please choose or create another instance.");
1472
+ });
1473
+ (0, import_qunit.test)("it renders error message for a card whose adoptsFrom module is missing", async function(assert) {
1474
+ await realm.write("Person/chef-mike.json", JSON.stringify({ data: {
1475
+ attributes: { title: "Chef Mike" },
1476
+ meta: { adoptsFrom: {
1477
+ module: `${testRealmURL}Person/missing-person`,
1478
+ name: "MissingPerson"
1479
+ } }
1480
+ } }));
1481
+ setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1482
+ cardId: rri(`${testRealmURL}Person/chef-mike`),
1483
+ format: "isolated"
1484
+ } });
1485
+ await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1486
+ assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error");
1487
+ assert.dom("[data-test-error-message]").containsText(`${testRealmURL}Person/missing-person not found`);
1488
+ });
1489
+ });
1490
+ });
1491
+ //#endregion