@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,1839 @@
1
+ import { s as __toESM } from "./chunk-Rp0pCe6z.js";
2
+ import { Br as testRealmURL, Ls as wrapper_default, Xn as APP_BOXEL_REALM_EVENT_TYPE } from "./runtime-common-BTaLJEw-.js";
3
+ import { T as rri } from "./paths-C9-NYXnM.js";
4
+ import { D as baseRRI, it as baseRealmRRI } from "./constants-Icc0nFW-.js";
5
+ import { _ as fileDefFormats, h as cardDefFormats } from "./bfm-card-references-Cjos2rOp.js";
6
+ import { n as src_default } from "./src-DPaAwa4H.js";
7
+ import { c as ModuleInspectorSelections, g as SpecSelection, u as PlaygroundSelections } from "./local-storage-keys-CS7XLz7J.js";
8
+ import { M as waitUntil, T as settled, c as triggerKeyEvent, d as click, k as visit, l as triggerEvent, n as scrollTo, o as waitFor, s as fillIn } from "./dist-BOAdzfkP.js";
9
+ import { s as Position } from "./editor.api-BinOIICS.js";
10
+ import "./editor.main-BpsSmHD-.js";
11
+ import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
12
+ import { D as realmConfigCardJSON, Et as percySnapshot, F as setupLocalIndexing, H as testModuleRealm, L as setupRealmCacheTeardown, S as getMonacoContent, 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, z as setupUserSubscription } from "./mock-matrix-FjsXmU7-.js";
13
+ import { r as getService } from "./dist-CPfIHBla.js";
14
+ import { c as removeSpecSelection, d as setPlaygroundSelections, s as removePlaygroundSelections } from "./playground-B02e8uqB.js";
15
+ //#region tests/acceptance/code-submode-test.ts
16
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
17
+ var indexCardSource = `
18
+ import { CardDef, Component } from "@cardstack/base/card-api";
19
+
20
+ export class Index extends CardDef {
21
+ static isolated = class Isolated extends Component<typeof this> {
22
+ <template>
23
+ <div data-test-index-card>
24
+ Hello, world!
25
+ </div>
26
+ </template>
27
+ };
28
+ }
29
+ `;
30
+ var postalCodeFieldSource = `
31
+ import {
32
+ contains,
33
+ field,
34
+ Component,
35
+ FieldDef,
36
+ } from '@cardstack/base/card-api';
37
+ import StringField from '@cardstack/base/string';
38
+
39
+ export class PostalCode extends FieldDef {
40
+ static displayName = 'Postal Code';
41
+ @field fiveDigitPostalCode = contains(StringField); // required
42
+ @field fourDigitOptional = contains(StringField);
43
+
44
+ static embedded = class Embedded extends Component<typeof this> {
45
+ <template>
46
+ <address>
47
+ <div><@fields.fiveDigitPostalCode /> - <@fields.fourDigitOptional /></div>
48
+ </address>
49
+ </template>
50
+ };
51
+ }
52
+ `;
53
+ var addressFieldSource = `
54
+ import {
55
+ contains,
56
+ field,
57
+ Component,
58
+ FieldDef,
59
+ } from '@cardstack/base/card-api';
60
+ import StringField from '@cardstack/base/string';
61
+ import { PostalCode } from './postal-code';
62
+
63
+ export class Address extends FieldDef {
64
+ static displayName = 'Address';
65
+ @field streetAddress = contains(StringField); // required
66
+ @field city = contains(StringField); // required
67
+ @field region = contains(StringField);
68
+ @field postalCode = contains(PostalCode);
69
+ @field poBoxNumber = contains(StringField);
70
+ @field country = contains(StringField); // required // dropdown
71
+
72
+ static embedded = class Embedded extends Component<typeof this> {
73
+ <template>
74
+ <address>
75
+ <div><@fields.streetAddress /></div>
76
+ <@fields.city />
77
+ <@fields.region />
78
+ <@fields.postalCode /><@fields.poBoxNumber />
79
+ <@fields.country />
80
+ </address>
81
+ </template>
82
+ };
83
+ }
84
+ `;
85
+ var countryCardSource = `
86
+ import {
87
+ contains,
88
+ field,
89
+ Component,
90
+ CardDef,
91
+ } from '@cardstack/base/card-api';
92
+ import StringField from '@cardstack/base/string';
93
+
94
+ export class Country extends CardDef {
95
+ static displayName = 'Country';
96
+ @field name = contains(StringField);
97
+ @field cardTitle = contains(StringField, {
98
+ computeVia(this: Country) {
99
+ return this.name;
100
+ },
101
+ });
102
+
103
+ static embedded = class Embedded extends Component<typeof this> {
104
+ <template>
105
+ <address>
106
+ <@fields.name />
107
+ </address>
108
+ </template>
109
+ };
110
+ }
111
+ `;
112
+ var tripsFieldSource = `
113
+ import {
114
+ linksToMany,
115
+ field,
116
+ Component,
117
+ FieldDef,
118
+ } from '@cardstack/base/card-api';
119
+ import { Country } from './country';
120
+
121
+ export class Trips extends FieldDef {
122
+ static displayName = 'Trips';
123
+ @field countriesVisited = linksToMany(Country);
124
+
125
+ static embedded = class Embedded extends Component<typeof this> {
126
+ <template>
127
+ <address>
128
+ <@fields.countriesVisited />
129
+ </address>
130
+ </template>
131
+ };
132
+ }
133
+ `;
134
+ var personCardSource = `
135
+ import { contains, containsMany, field, linksTo, linksToMany, CardDef, Component } from "@cardstack/base/card-api";
136
+ import StringField from "@cardstack/base/string";
137
+ import { Friend } from './friend';
138
+ import { Pet } from "./pet";
139
+ import { Address } from './address';
140
+ import { Trips } from './trips';
141
+
142
+ export class Person extends CardDef {
143
+ static displayName = 'Person';
144
+ @field firstName = contains(StringField);
145
+ @field lastName = contains(StringField);
146
+ @field cardTitle = contains(StringField, {
147
+ computeVia: function (this: Person) {
148
+ return [this.firstName, this.lastName].filter(Boolean).join(' ');
149
+ },
150
+ });
151
+ @field pet = linksTo(Pet);
152
+ @field friends = linksToMany(Friend);
153
+ @field address = containsMany(StringField);
154
+ @field addressDetail = contains(Address);
155
+ @field trips = contains(Trips);
156
+ static isolated = class Isolated extends Component<typeof this> {
157
+ <template>
158
+ <div data-test-person>
159
+ <p>First name: <@fields.firstName /></p>
160
+ <p>Last name: <@fields.lastName /></p>
161
+ <p>Title: <@fields.cardTitle /></p>
162
+ <p>Address List: <@fields.address /></p>
163
+ <p>Friends: <@fields.friends /></p>
164
+ </div>
165
+ <style scoped>
166
+ div {
167
+ color: green;
168
+ content: '';
169
+ }
170
+ </style>
171
+ </template>
172
+ };
173
+ }
174
+ `;
175
+ var petCardSource = `
176
+ import { contains, field, Component, CardDef } from "@cardstack/base/card-api";
177
+ import StringField from "@cardstack/base/string";
178
+
179
+ export class Pet extends CardDef {
180
+ static displayName = 'Pet';
181
+ @field name = contains(StringField);
182
+ @field cardTitle = contains(StringField, {
183
+ computeVia: function (this: Pet) {
184
+ return this.name;
185
+ },
186
+ });
187
+ static embedded = class Embedded extends Component<typeof this> {
188
+ <template>
189
+ <h3 data-test-pet={{@model.name}}>
190
+ <@fields.name/>
191
+ </h3>
192
+ </template>
193
+ }
194
+ static isolated = class Isolated extends Component<typeof this> {
195
+ <template>
196
+ <h1>{{@model.cardTitle}}</h1>
197
+ <h2 data-test-pet={{@model.name}}>
198
+ <@fields.name/>
199
+ </h2>
200
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
201
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
202
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
203
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
204
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
205
+ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
206
+ </template>
207
+ }
208
+ }
209
+ `;
210
+ var customEditCardSource = `
211
+ import { contains, field, CardDef, Component } from "@cardstack/base/card-api";
212
+ import StringField from "@cardstack/base/string";
213
+ export class CustomEdit extends CardDef {
214
+ static displayName = 'Custom Edit';
215
+ @field name = contains(StringField);
216
+ static edit = class Edit extends Component<typeof this> {
217
+ <template>
218
+ <div data-test-custom-edit>Custom Edit: <@fields.name /></div>
219
+ </template>
220
+ };
221
+ }
222
+ `;
223
+ var employeeCardSource = `
224
+ import {
225
+ contains,
226
+ field,
227
+ Component,
228
+ CardDef
229
+ } from '@cardstack/base/card-api';
230
+ import StringField from '@cardstack/base/string';
231
+ import DateField from '@cardstack/base/date';
232
+ import BooleanField from '@cardstack/base/boolean';
233
+ import { Person } from './person';
234
+
235
+ export class Isolated extends Component<typeof Employee> {
236
+ <template>
237
+ <@fields.firstName /> <@fields.lastName />
238
+
239
+ Department: <@fields.department />
240
+ </template>
241
+ };
242
+
243
+ export class Employee extends Person {
244
+ static displayName = 'Employee';
245
+ @field department = contains(StringField);
246
+
247
+ static isolated = class Isolated extends Component<typeof this> {
248
+ <template>
249
+ <@fields.firstName /> <@fields.lastName />
250
+
251
+ Department: <@fields.department />
252
+ </template>
253
+ };
254
+ }
255
+
256
+ export function isHourly (this: Employee) {
257
+ return !this.isSalaried;
258
+ }
259
+ `;
260
+ var inThisFileSource = `
261
+ import {
262
+ contains,
263
+ field,
264
+ CardDef,
265
+ FieldDef,
266
+ } from '@cardstack/base/card-api';
267
+ import StringField from '@cardstack/base/string';
268
+
269
+ export const exportedVar = 'exported var';
270
+
271
+ const localVar = 'local var';
272
+
273
+ class LocalClass {}
274
+ export class ExportedClass {}
275
+
276
+ export class ExportedClassInheritLocalClass extends LocalClass {}
277
+
278
+ function localFunction() {}
279
+ export function exportedFunction() {}
280
+
281
+ export { LocalClass as AClassWithExportName };
282
+
283
+ class LocalCard extends CardDef {
284
+ static displayName = 'local card';
285
+ }
286
+
287
+ export class ExportedCard extends CardDef {
288
+ static displayName = 'exported card';
289
+ @field someString = contains(StringField);
290
+ }
291
+
292
+ export class ExportedCardInheritLocalCard extends LocalCard {
293
+ static displayName = 'exported card extends local card';
294
+ }
295
+
296
+ class LocalField extends FieldDef {
297
+ static displayName = 'local field';
298
+ }
299
+ export class ExportedField extends FieldDef {
300
+ static displayName = 'exported field';
301
+ @field someString = contains(StringField);
302
+ }
303
+
304
+ export class ExportedFieldInheritLocalField extends LocalField {
305
+ static displayName = 'exported field extends local field';
306
+ }
307
+
308
+ export default class DefaultClass {}
309
+ `;
310
+ var friendCardSource = `
311
+ import { contains, linksTo, field, CardDef, Component } from "@cardstack/base/card-api";
312
+ import StringField from "@cardstack/base/string";
313
+
314
+ export class Friend extends CardDef {
315
+ static displayName = 'Friend';
316
+ @field name = contains(StringField);
317
+ @field friend = linksTo(() => Friend);
318
+ @field cardTitle = contains(StringField, {
319
+ computeVia: function (this: Friend) {
320
+ return this.name;
321
+ },
322
+ });
323
+ static isolated = class Isolated extends Component<typeof this> {
324
+ <template>
325
+ <div data-test-friend-card={{@model.name}}>
326
+ <p>Friend name: <@fields.name /></p>
327
+ <div data-test-friend-link>
328
+ <@fields.friend />
329
+ </div>
330
+ </div>
331
+ <style scoped>
332
+ div {
333
+ color: green;
334
+ content: '';
335
+ }
336
+ </style>
337
+ </template>
338
+ };
339
+ }
340
+ `;
341
+ var txtSource = `
342
+ Hello, world!
343
+ `;
344
+ var brokenSource = "some text to make the code broken" + friendCardSource;
345
+ var brokenCountryCardSource = countryCardSource.replace("return this.name", "return intentionalError(this.name)");
346
+ var brokenAdoptionInstance = `{
347
+ "data": {
348
+ "type": "card",
349
+ "attributes": {
350
+ "name": "El Campo"
351
+ },
352
+ "meta": {
353
+ "adoptsFrom": {
354
+ "module": "./broken-country",
355
+ "name": "Country"
356
+ }
357
+ }
358
+ }
359
+ }
360
+ `;
361
+ var notFoundAdoptionInstance = `{
362
+ "data": {
363
+ "type": "card",
364
+ "attributes": {
365
+ "firstName": "Alice",
366
+ "lastName": "Enwunder",
367
+ "body": "xyz"
368
+ },
369
+ "meta": {
370
+ "adoptsFrom": {
371
+ "module": "./non-card",
372
+ "name": "Author"
373
+ }
374
+ }
375
+ }
376
+ }
377
+ `;
378
+ var personalRealmURL;
379
+ (0, import_qunit.module)("Acceptance | code submode tests", function(_hooks) {
380
+ (0, import_qunit.module)("multiple realms", function(hooks) {
381
+ let additionalRealmURL;
382
+ let catalogRealmURL;
383
+ setupApplicationTest(hooks);
384
+ setupLocalIndexing(hooks);
385
+ setupRealmCacheTeardown(hooks);
386
+ let mockMatrixUtils = setupMockMatrix(hooks, { loggedInAs: "@testuser:localhost" });
387
+ let { setActiveRealms, createAndJoinRoom } = mockMatrixUtils;
388
+ async function openNewFileModal(menuSelection) {
389
+ await waitFor("[data-test-new-file-button]");
390
+ await click("[data-test-new-file-button]");
391
+ await click(`[data-test-boxel-menu-item-text="${menuSelection}"]`);
392
+ }
393
+ hooks.beforeEach(async function() {
394
+ createAndJoinRoom({
395
+ sender: "@testuser:localhost",
396
+ name: "room-test"
397
+ });
398
+ setupUserSubscription();
399
+ setupAuthEndpoints();
400
+ removePlaygroundSelections();
401
+ removeSpecSelection();
402
+ src_default.localStorage.removeItem(ModuleInspectorSelections);
403
+ src_default.localStorage.removeItem(PlaygroundSelections);
404
+ src_default.localStorage.removeItem(SpecSelection);
405
+ let realmServerService = getService("realm-server");
406
+ personalRealmURL = `${realmServerService.url}testuser/personal/`;
407
+ additionalRealmURL = `${realmServerService.url}testuser/aaa/`;
408
+ catalogRealmURL = `${realmServerService.url}catalog/`;
409
+ setActiveRealms([
410
+ catalogRealmURL,
411
+ additionalRealmURL,
412
+ personalRealmURL
413
+ ]);
414
+ await withCachedRealmSetup(async () => {
415
+ await setupAcceptanceTestRealm({
416
+ mockMatrixUtils,
417
+ realmURL: personalRealmURL,
418
+ permissions: { "@testuser:localhost": [
419
+ "read",
420
+ "write",
421
+ "realm-owner"
422
+ ] },
423
+ contents: {
424
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
425
+ "hello.txt": txtSource,
426
+ "realm.json": realmConfigCardJSON({
427
+ name: `Test User's Workspace`,
428
+ backgroundURL: "/test-fixtures/realm-images/4k-origami-flock.jpg",
429
+ iconURL: "/test-fixtures/realm-images/letter-t.png"
430
+ })
431
+ }
432
+ });
433
+ await setupAcceptanceTestRealm({
434
+ mockMatrixUtils,
435
+ realmURL: additionalRealmURL,
436
+ permissions: { "@testuser:localhost": [
437
+ "read",
438
+ "write",
439
+ "realm-owner"
440
+ ] },
441
+ contents: {
442
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
443
+ "hello.txt": txtSource,
444
+ "realm.json": realmConfigCardJSON({
445
+ name: `Additional Workspace`,
446
+ backgroundURL: "/test-fixtures/realm-images/4k-powder-puff.jpg",
447
+ iconURL: "/test-fixtures/realm-images/letter-a.png"
448
+ })
449
+ }
450
+ });
451
+ await setupAcceptanceTestRealm({
452
+ mockMatrixUtils,
453
+ realmURL: catalogRealmURL,
454
+ permissions: { "*": ["read"] },
455
+ contents: {
456
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
457
+ "hello.txt": txtSource,
458
+ "realm.json": realmConfigCardJSON({
459
+ name: `Catalog Realm`,
460
+ backgroundURL: "/test-fixtures/realm-images/letter-c.png",
461
+ iconURL: "/test-fixtures/realm-images/4k-watercolor-splashes.jpg"
462
+ })
463
+ }
464
+ });
465
+ await setupAcceptanceTestRealm({
466
+ mockMatrixUtils,
467
+ realmURL: testRealmURL,
468
+ permissions: { "@testuser:localhost": [
469
+ "read",
470
+ "write",
471
+ "realm-owner"
472
+ ] },
473
+ contents: { ...SYSTEM_CARD_FIXTURE_CONTENTS }
474
+ });
475
+ });
476
+ setupAuthEndpoints({
477
+ [catalogRealmURL]: ["read"],
478
+ [additionalRealmURL]: [
479
+ "read",
480
+ "write",
481
+ "realm-owner"
482
+ ],
483
+ [personalRealmURL]: [
484
+ "read",
485
+ "write",
486
+ "realm-owner"
487
+ ]
488
+ });
489
+ });
490
+ (0, import_qunit.test)("default realm is the personal realm", async function(assert) {
491
+ await visitOperatorMode({ submode: "code" });
492
+ await waitFor("[data-test-file]");
493
+ assert.dom("[data-test-card-url-bar-realm-info]").containsText(`in Test User's Workspace`);
494
+ });
495
+ (0, import_qunit.test)("first item in add file realm dropdown is the currently displayed realm", async function(assert) {
496
+ await visitOperatorMode({ submode: "code" });
497
+ await waitFor("[data-test-file]");
498
+ await openNewFileModal("Card Definition");
499
+ assert.dom("[data-test-selected-realm]").containsText(`Test User's Workspace`, "the selected (default) realm is correct");
500
+ await click("[data-test-cancel-create-file]");
501
+ await visitOperatorMode({
502
+ submode: "code",
503
+ codePath: `${additionalRealmURL}hello.txt`
504
+ });
505
+ await openNewFileModal("Card Definition");
506
+ assert.dom("[data-test-selected-realm]").containsText(`Additional Workspace`, "the selected realm is correct");
507
+ });
508
+ });
509
+ (0, import_qunit.module)("single realm", function(hooks) {
510
+ let realm;
511
+ let monacoService;
512
+ setupApplicationTest(hooks);
513
+ setupLocalIndexing(hooks);
514
+ setupRealmCacheTeardown(hooks);
515
+ let mockMatrixUtils = setupMockMatrix(hooks, {
516
+ loggedInAs: "@testuser:localhost",
517
+ activeRealms: [testRealmURL]
518
+ });
519
+ let { createAndJoinRoom, setActiveRealms } = mockMatrixUtils;
520
+ hooks.beforeEach(async function() {
521
+ createAndJoinRoom({
522
+ sender: "@testuser:localhost",
523
+ name: "room-test"
524
+ });
525
+ setupUserSubscription();
526
+ setupAuthEndpoints();
527
+ monacoService = getService("monaco-service");
528
+ ({realm} = await withCachedRealmSetup(async () => setupAcceptanceTestRealm({
529
+ mockMatrixUtils,
530
+ contents: {
531
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
532
+ "index.gts": indexCardSource,
533
+ "pet-person.gts": personCardSource,
534
+ "person.gts": personCardSource,
535
+ "pet.gts": petCardSource,
536
+ "friend.gts": friendCardSource,
537
+ "employee.gts": employeeCardSource,
538
+ "in-this-file.gts": inThisFileSource,
539
+ "postal-code.gts": postalCodeFieldSource,
540
+ "address.gts": addressFieldSource,
541
+ "country.gts": countryCardSource,
542
+ "trips.gts": tripsFieldSource,
543
+ "broken.gts": brokenSource,
544
+ "broken-country.gts": brokenCountryCardSource,
545
+ "custom-edit.gts": customEditCardSource,
546
+ "CustomEdit/sample.json": { data: {
547
+ attributes: { name: "Sample" },
548
+ meta: { adoptsFrom: {
549
+ module: `${testRealmURL}custom-edit`,
550
+ name: "CustomEdit"
551
+ } }
552
+ } },
553
+ "broken-adoption-instance.json": brokenAdoptionInstance,
554
+ "not-found-adoption-instance.json": notFoundAdoptionInstance,
555
+ "person-entry.json": { data: {
556
+ type: "card",
557
+ attributes: {
558
+ cardTitle: "Person",
559
+ cardDescription: "Spec",
560
+ specType: "card",
561
+ ref: {
562
+ module: `./person`,
563
+ name: "Person"
564
+ }
565
+ },
566
+ meta: { adoptsFrom: {
567
+ module: `${baseRealmRRI}spec`,
568
+ name: "Spec"
569
+ } }
570
+ } },
571
+ "pet-entry.json": { data: {
572
+ type: "card",
573
+ attributes: {
574
+ specType: "card",
575
+ ref: {
576
+ module: `./pet`,
577
+ name: "Pet"
578
+ }
579
+ },
580
+ meta: { adoptsFrom: {
581
+ module: `${baseRealmRRI}spec`,
582
+ name: "Spec"
583
+ } }
584
+ } },
585
+ "pet-entry-2.json": { data: {
586
+ type: "card",
587
+ attributes: {
588
+ specType: "card",
589
+ ref: {
590
+ module: `./pet`,
591
+ name: "Pet"
592
+ }
593
+ },
594
+ meta: { adoptsFrom: {
595
+ module: `${baseRealmRRI}spec`,
596
+ name: "Spec"
597
+ } }
598
+ } },
599
+ "index.json": { data: {
600
+ type: "card",
601
+ attributes: {},
602
+ meta: { adoptsFrom: {
603
+ module: "./index",
604
+ name: "Index"
605
+ } }
606
+ } },
607
+ "not-json.json": "I am not JSON.",
608
+ "care-guide.md": "# Care Guide\n\nWater weekly.\n",
609
+ "Person/fadhlan.json": { data: {
610
+ attributes: {
611
+ firstName: "Fadhlan",
612
+ address: [{
613
+ city: "Bandung",
614
+ country: "Indonesia",
615
+ shippingInfo: {
616
+ preferredCarrier: "DHL",
617
+ remarks: `Don't let bob deliver the package--he's always bringing it to the wrong address`
618
+ }
619
+ }]
620
+ },
621
+ relationships: { pet: { links: { self: `${testRealmURL}Pet/mango` } } },
622
+ meta: { adoptsFrom: {
623
+ module: `${testRealmURL}person`,
624
+ name: "Person"
625
+ } }
626
+ } },
627
+ "Person/1.json": { data: {
628
+ type: "card",
629
+ attributes: {
630
+ firstName: "Hassan",
631
+ lastName: "Abdel-Rahman"
632
+ },
633
+ meta: { adoptsFrom: {
634
+ module: rri("../person"),
635
+ name: "Person"
636
+ } }
637
+ } },
638
+ "Pet/mango.json": { data: {
639
+ attributes: { name: "Mango" },
640
+ meta: { adoptsFrom: {
641
+ module: `${testRealmURL}pet`,
642
+ name: "Pet"
643
+ } }
644
+ } },
645
+ "Friend/amy.json": { data: {
646
+ attributes: { name: "Amy" },
647
+ relationships: { friend: { links: { self: `${testRealmURL}Friend/bob` } } },
648
+ meta: { adoptsFrom: {
649
+ module: `${testRealmURL}friend`,
650
+ name: "Friend"
651
+ } }
652
+ } },
653
+ "Friend/bob.json": { data: {
654
+ attributes: { name: "Bob" },
655
+ relationships: {},
656
+ meta: { adoptsFrom: {
657
+ module: `${testRealmURL}friend`,
658
+ name: "Friend"
659
+ } }
660
+ } },
661
+ "Person/with-friends.json": { data: {
662
+ attributes: {
663
+ firstName: "With",
664
+ lastName: "Friends"
665
+ },
666
+ relationships: {
667
+ "friends.0": { links: { self: `${testRealmURL}Friend/amy` } },
668
+ "friends.1": { links: { self: `${testRealmURL}Friend/bob` } }
669
+ },
670
+ meta: { adoptsFrom: {
671
+ module: `${testRealmURL}person`,
672
+ name: "Person"
673
+ } }
674
+ } },
675
+ "Country/united-states.json": { data: {
676
+ type: "card",
677
+ attributes: {
678
+ name: "United States",
679
+ cardDescription: null,
680
+ cardThumbnailURL: null
681
+ },
682
+ meta: { adoptsFrom: {
683
+ module: "../country",
684
+ name: "Country"
685
+ } }
686
+ } },
687
+ "BrokenCountry/broken-country.json": { data: {
688
+ type: "card",
689
+ attributes: { name: "Broken Country" },
690
+ meta: { adoptsFrom: {
691
+ module: "../broken-country",
692
+ name: "Country"
693
+ } }
694
+ } },
695
+ "hello.txt": txtSource,
696
+ "z00.json": "{}",
697
+ "z01.json": "{}",
698
+ "z02.json": "{}",
699
+ "z03.json": "{}",
700
+ "z04.json": "{}",
701
+ "z05.json": "{}",
702
+ "z06.json": "{}",
703
+ "z07.json": "{}",
704
+ "z08.json": "{}",
705
+ "z09.json": "{}",
706
+ "z10.json": "{}",
707
+ "z11.json": "{}",
708
+ "z12.json": "{}",
709
+ "z13.json": "{}",
710
+ "z14.json": "{}",
711
+ "z15.json": "{}",
712
+ "z16.json": "{}",
713
+ "z17.json": "{}",
714
+ "z18.json": "{}",
715
+ "z19.json": "{}",
716
+ "zzz/zzz/file.json": "{}",
717
+ "realm.json": realmConfigCardJSON({
718
+ name: "Test Workspace B",
719
+ backgroundURL: "/test-fixtures/realm-images/pawel-czerwinski-Ly-ZLa-A5jti-Y-unsplash.jpg",
720
+ iconURL: "/test-fixtures/realm-images/boxel-logo.png"
721
+ }),
722
+ "noop.gts": `export function noop() {};\nclass NoopClass {}`
723
+ }
724
+ })));
725
+ });
726
+ (0, import_qunit.test)("defaults to inheritance view and can toggle to file view", async function(assert) {
727
+ await visitOperatorMode({
728
+ stacks: [[{
729
+ id: `${testRealmURL}Person/1`,
730
+ format: "isolated"
731
+ }]],
732
+ submode: "code",
733
+ codePath: `${testRealmURL}Person/1.json`
734
+ });
735
+ await waitFor("[data-test-file-view-header]");
736
+ assert.dom("[data-test-file-view-header]").hasAttribute("aria-label", "Inspector");
737
+ assert.dom("[data-test-inspector-toggle]").hasClass("active");
738
+ assert.dom("[data-test-file-browser-toggle]").doesNotHaveClass("active");
739
+ await waitFor("[data-test-card-inspector-panel]");
740
+ assert.dom("[data-test-card-inspector-panel]").exists();
741
+ assert.dom("[data-test-file]").doesNotExist();
742
+ await click("[data-test-file-browser-toggle]");
743
+ assert.dom("[data-test-file-view-header]").hasAttribute("aria-label", "File Browser");
744
+ assert.dom("[data-test-inspector-toggle]").doesNotHaveClass("active");
745
+ assert.dom("[data-test-file-browser-toggle]").hasClass("active");
746
+ await waitFor("[data-test-file]");
747
+ assert.dom("[data-test-inheritance-placeholder]").doesNotExist();
748
+ assert.dom("[data-test-file]").exists();
749
+ });
750
+ (0, import_qunit.test)("non-card JSON is shown as a file instance with file inheritance", async function(assert) {
751
+ await visitOperatorMode({
752
+ stacks: [[{
753
+ id: `${testRealmURL}Person/1`,
754
+ format: "isolated"
755
+ }]],
756
+ submode: "code",
757
+ codePath: `${testRealmURL}z01.json`
758
+ });
759
+ await waitFor("[data-test-card-instance-definition]");
760
+ assert.dom("[data-test-definition-file-extension]").hasText(".json");
761
+ await waitFor("[data-test-definition-realm-name]");
762
+ assert.dom("[data-test-definition-realm-name]").hasText("in Test Workspace B");
763
+ assert.dom("[data-test-code-mode-card-renderer-body]").exists();
764
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-boxel-card-header-title]").includesText("JSON");
765
+ assert.dom("[data-test-format-chooser=\"edit\"]").doesNotExist();
766
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-edit-button]").doesNotExist();
767
+ assert.dom("[data-test-definition-header]").includesText("File Instance");
768
+ assert.dom("[data-test-inheritance-panel-header]").includesText("File Inheritance");
769
+ assert.dom("[data-test-definition-realm-name]").hasText("in Test Workspace B");
770
+ assert.dom("[data-test-action-button=\"Delete\"]").exists();
771
+ });
772
+ (0, import_qunit.test)("invalid JSON is shown as a file instance with file inheritance", async function(assert) {
773
+ await visitOperatorMode({
774
+ stacks: [[{
775
+ id: `${testRealmURL}Person/1`,
776
+ format: "isolated"
777
+ }]],
778
+ submode: "code",
779
+ codePath: `${testRealmURL}not-json.json`
780
+ });
781
+ await waitFor("[data-test-card-instance-definition]");
782
+ assert.dom("[data-test-definition-file-extension]").hasText(".json");
783
+ await waitFor("[data-test-definition-realm-name]");
784
+ assert.dom("[data-test-definition-realm-name]").hasText("in Test Workspace B");
785
+ assert.dom("[data-test-code-mode-card-renderer-body]").exists();
786
+ });
787
+ (0, import_qunit.test)("showing module with a syntax error will display the error", async function(assert) {
788
+ let operatorModeStateParam = wrapper_default({
789
+ stacks: [],
790
+ submode: "code",
791
+ codePath: `${testRealmURL}broken.gts`
792
+ });
793
+ await visit(`/?operatorModeEnabled=true&operatorModeState=${encodeURIComponent(operatorModeStateParam)}`);
794
+ await waitFor("[data-test-error-details]");
795
+ assert.dom("[data-test-error-details]").includesText("Parse Error at broken.gts:1:6: 1:10");
796
+ assert.dom("[data-test-ai-assistant-panel]").doesNotExist();
797
+ await click("[data-test-send-error-to-ai-assistant]");
798
+ assert.dom("[data-test-ai-assistant-panel]").exists();
799
+ assertMessages(assert, [{
800
+ from: "testuser",
801
+ message: `In the attachment file, I encountered an error that needs fixing: Syntax Error Stack trace: Error: Parse Error at broken.gts:1:6: 1:10`,
802
+ files: [{
803
+ name: "broken.gts",
804
+ sourceUrl: `${testRealmURL}broken.gts`
805
+ }]
806
+ }]);
807
+ let roomId = getService("matrix-service").currentRoomId;
808
+ let lastEvent = mockMatrixUtils.getRoomEvents(roomId).pop();
809
+ assert.ok(JSON.parse(lastEvent.content.data).context.agentId, "message has agentId context so that AI assistant knows not to respond to it");
810
+ assert.dom("[data-test-send-error-to-ai-assistant]").exists();
811
+ let originalWriteText = navigator.clipboard.writeText;
812
+ let copiedText;
813
+ navigator.clipboard.writeText = async (text) => {
814
+ copiedText = text;
815
+ return Promise.resolve();
816
+ };
817
+ await click("[data-test-boxel-copy-button]");
818
+ const expected = "{\"message\":\"\",\"stack\":\"Error: Parse Error at broken.gts:1:6: 1:10";
819
+ assert.ok(copiedText.startsWith(expected), `clipboard text starts with ${expected}`);
820
+ navigator.clipboard.writeText = originalWriteText;
821
+ });
822
+ (0, import_qunit.test)("it shows card preview errors", async function(assert) {
823
+ await visitOperatorMode({
824
+ submode: "code",
825
+ codePath: `${testRealmURL}not-found-adoption-instance.json`
826
+ });
827
+ await waitFor("[data-test-card-error]");
828
+ await settled();
829
+ await click("[data-test-toggle-details]");
830
+ assert.dom("[data-test-error-details]").includesText(`${testRealmURL}non-card not found`);
831
+ await settled();
832
+ await visitOperatorMode({
833
+ submode: "code",
834
+ codePath: `${testRealmURL}broken-adoption-instance.json`
835
+ });
836
+ await waitFor("[data-test-card-error]");
837
+ await settled();
838
+ await click("[data-test-toggle-details]");
839
+ assert.dom("[data-test-error-details]").includesText("Stack trace: Error: Encountered error rendering HTML for card: intentionalError is not defined at render");
840
+ await percySnapshot(assert);
841
+ });
842
+ (0, import_qunit.test)("it shows card preview errors and fix it button in playground panel", async function(assert) {
843
+ await visitOperatorMode({
844
+ submode: "code",
845
+ codePath: `${testRealmURL}broken-country.gts`
846
+ });
847
+ await click("[data-test-module-inspector-view=\"preview\"]");
848
+ await waitFor("[data-test-card-error]");
849
+ await click("[data-test-toggle-details]");
850
+ assert.dom("[data-test-error-details]").includesText("Stack trace: Error: Encountered error rendering HTML for card: intentionalError is not defined at render");
851
+ assert.dom("[data-test-ai-assistant-panel]").doesNotExist();
852
+ await click("[data-test-send-error-to-ai-assistant]");
853
+ assert.dom("[data-test-ai-assistant-panel]").exists();
854
+ assertMessages(assert, [{
855
+ from: "testuser",
856
+ message: `In the attachment file, I encountered an error that needs fixing: Card Error Encountered error rendering HTML for card: intentionalError is not defined`,
857
+ files: [{
858
+ name: "broken-country.gts",
859
+ sourceUrl: `${testRealmURL}broken-country.gts`
860
+ }]
861
+ }]);
862
+ assert.dom("[data-test-send-error-to-ai-assistant]").exists();
863
+ });
864
+ (0, import_qunit.test)("erroring cards attached as files instead and errors are included in AI context", async function(assert) {
865
+ await visitOperatorMode({
866
+ submode: "code",
867
+ codePath: `${testRealmURL}broken-country.gts`,
868
+ aiAssistantOpen: true,
869
+ moduleInspector: "preview"
870
+ });
871
+ assert.dom("[data-test-ai-assistant-panel]").exists();
872
+ let roomId = mockMatrixUtils.getRoomIds().pop();
873
+ let instanceId = document.querySelector("[data-test-card-error]")?.getAttribute("data-test-card-error");
874
+ if (!instanceId) assert.ok(false, "could not find instance ID for the instance error");
875
+ else {
876
+ await fillIn("[data-test-message-field]", `Please try to fix the problem`);
877
+ await click("[data-test-send-message-btn]");
878
+ assertMessages(assert, [{
879
+ from: "testuser",
880
+ message: `Please try to fix the problem`,
881
+ files: [{
882
+ name: "broken-country.gts",
883
+ sourceUrl: `${testRealmURL}broken-country.gts`
884
+ }, {
885
+ name: instanceId.split("/").pop(),
886
+ sourceUrl: `${instanceId}.json`
887
+ }]
888
+ }]);
889
+ }
890
+ let matrixEvents = mockMatrixUtils.getRoomEvents(roomId);
891
+ let lastEvent = matrixEvents[matrixEvents.length - 1];
892
+ let aiContext = JSON.parse(lastEvent.content.data).context;
893
+ assert.strictEqual(aiContext.errorsDisplayed[0].message, "Encountered error rendering HTML for card: intentionalError is not defined");
894
+ assert.ok(aiContext.errorsDisplayed[0].stack.match(/at render/));
895
+ assert.strictEqual(aiContext.errorsDisplayed[0].sourceUrl, `${testRealmURL}broken-country.gts`);
896
+ });
897
+ (0, import_qunit.test)("it shows card preview errors and fix it button in module inspector", async function(assert) {
898
+ await visitOperatorMode({
899
+ submode: "code",
900
+ codePath: `${testRealmURL}BrokenCountry/broken-country.json`
901
+ });
902
+ assert.dom("[data-test-error-display]").exists();
903
+ assert.dom("[data-test-error-display] [data-test-error-message]").hasText("Encountered error rendering HTML for card: intentionalError is not defined");
904
+ assert.dom("[data-test-ai-assistant-panel]").doesNotExist();
905
+ await click("[data-test-send-error-to-ai-assistant]");
906
+ assert.dom("[data-test-ai-assistant-panel]").exists();
907
+ assertMessages(assert, [{
908
+ from: "testuser",
909
+ message: `In the attachment file, I encountered an error that needs fixing: Card Error Encountered error rendering HTML for card: intentionalError is not defined`,
910
+ files: [{
911
+ name: "broken-country.gts",
912
+ sourceUrl: `${testRealmURL}broken-country.gts`
913
+ }]
914
+ }]);
915
+ });
916
+ (0, import_qunit.test)("empty state displays default realm info", async function(assert) {
917
+ await visitOperatorMode({ submode: "code" });
918
+ await waitFor("[data-test-file]");
919
+ assert.dom("[data-test-file]").exists();
920
+ assert.dom("[data-test-file-browser-toggle]").hasClass("active");
921
+ assert.dom("[data-test-card-inspector-panel]").doesNotExist();
922
+ assert.dom("[data-test-file-view-header]").hasAttribute("aria-label", "File Browser");
923
+ assert.dom("[data-test-inspector-toggle]").isDisabled();
924
+ assert.dom("[data-test-empty-code-mode]").exists();
925
+ assert.dom("[data-test-empty-code-mode]").containsText("Choose a file on the left to open it");
926
+ assert.dom("[data-test-card-url-bar-input]").hasValue("");
927
+ assert.dom("[data-test-card-url-bar-realm-info]").containsText("in Test Workspace B");
928
+ });
929
+ (0, import_qunit.test)("not-found state displays default realm info", async function(assert) {
930
+ await visitOperatorMode({
931
+ submode: "code",
932
+ codePath: `${testRealmURL}perso`
933
+ });
934
+ await waitFor("[data-test-file]");
935
+ assert.dom("[data-test-file]").exists();
936
+ assert.dom("[data-test-file-browser-toggle]").hasClass("active");
937
+ assert.dom("[data-test-card-inspector-panel]").doesNotExist();
938
+ assert.dom("[data-test-file-view-header]").hasAttribute("aria-label", "File Browser");
939
+ assert.dom("[data-test-inspector-toggle]").isDisabled();
940
+ assert.dom("[data-test-empty-code-mode]").doesNotExist();
941
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}perso`);
942
+ assert.dom("[data-test-card-url-bar-realm-info]").containsText("in Test Workspace B");
943
+ });
944
+ (0, import_qunit.module)("with connection to test realm", function(hooks) {
945
+ hooks.beforeEach(function() {
946
+ setActiveRealms([testRealmURL, `${testModuleRealm}`]);
947
+ });
948
+ (0, import_qunit.test)("code submode handles binary files", async function(assert) {
949
+ await visitOperatorMode({
950
+ submode: "code",
951
+ codePath: `${testModuleRealm}mango.png`
952
+ });
953
+ await waitFor("[data-test-binary-info]");
954
+ await waitFor("[data-test-definition-file-extension]");
955
+ assert.dom("[data-test-definition-file-extension]").hasText(".png");
956
+ await waitFor("[data-test-definition-realm-name]");
957
+ assert.dom("[data-test-definition-realm-name]").hasText("in Test Workspace A");
958
+ assert.dom("[data-test-definition-info-text]").containsText("Last saved");
959
+ assert.dom("[data-test-binary-info] [data-test-file-name]").hasText("mango.png");
960
+ assert.dom("[data-test-binary-info] [data-test-size]").hasText("114.71 kB");
961
+ assert.dom("[data-test-binary-info] [data-test-last-modified]").containsText("Last modified");
962
+ assert.dom("[data-test-code-mode-card-renderer-body]").exists();
963
+ await percySnapshot(assert);
964
+ });
965
+ });
966
+ (0, import_qunit.test)("can handle error when user puts unidentified domain in card URL bar", async function(assert) {
967
+ await visitOperatorMode({
968
+ stacks: [[{
969
+ id: `${testRealmURL}Person/1`,
970
+ format: "isolated"
971
+ }]],
972
+ submode: "code",
973
+ fileView: "browser",
974
+ codePath: `${testRealmURL}Person/1.json`,
975
+ openDirs: { [testRealmURL]: ["Person/"] }
976
+ });
977
+ await fillIn("[data-test-card-url-bar-input]", `http://unknown-domain.com/test/mango.png`);
978
+ await triggerKeyEvent("[data-test-card-url-bar-input]", "keypress", "Enter");
979
+ await waitFor("[data-test-card-url-bar-error]");
980
+ assert.dom("[data-test-card-url-bar-error]").containsText("This resource does not exist");
981
+ });
982
+ (0, import_qunit.test)("card preview will show in the 3rd column when submode is set to code", async function(assert) {
983
+ await visitOperatorMode({
984
+ stacks: [[{
985
+ id: `${testRealmURL}Person/fadhlan`,
986
+ format: "isolated"
987
+ }]],
988
+ submode: "code",
989
+ codePath: `${testRealmURL}Person/fadhlan.json`
990
+ });
991
+ await waitFor("[data-test-card-resource-loaded]");
992
+ assert.dom("[data-test-code-mode-card-renderer-header]").hasText("Person - Fadhlan");
993
+ assert.dom("[data-test-code-mode-card-renderer-body]").includesText("Fadhlan");
994
+ assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length });
995
+ assert.dom("[data-test-format-chooser=\"edit\"]").exists();
996
+ assert.dom("[data-test-format-chooser=\"metadata\"]").doesNotExist();
997
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-edit-button]").exists();
998
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
999
+ await click("[data-test-format-chooser=\"fitted\"]");
1000
+ assert.dom("[data-test-format-chooser=\"fitted\"]").hasClass("active");
1001
+ assert.dom("[data-test-code-mode-card-renderer-body ] .field-component-card.fitted-format").exists();
1002
+ await click("[data-test-format-chooser=\"embedded\"]");
1003
+ assert.dom("[data-test-format-chooser=\"embedded\"]").hasClass("active");
1004
+ assert.dom("[data-test-code-mode-card-renderer-body ] .field-component-card.embedded-format").exists();
1005
+ await click("[data-test-format-chooser=\"atom\"]");
1006
+ assert.dom("[data-test-format-chooser=\"atom\"]").hasClass("active");
1007
+ assert.dom("[data-test-code-mode-card-renderer-body] .atom-format").exists();
1008
+ assert.dom("[data-test-code-mode-card-renderer-body] .atom-format").includesText("Fadhlan");
1009
+ await click("[data-test-format-chooser=\"edit\"]");
1010
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
1011
+ assert.dom("[data-test-code-mode-card-renderer-body ] .field-component-card.edit-format").exists();
1012
+ await click("[data-test-format-chooser=\"markdown\"]");
1013
+ assert.dom("[data-test-format-chooser=\"markdown\"]").hasClass("active");
1014
+ assert.dom("[data-test-code-mode-card-renderer-body] .field-component-card.markdown-format").exists();
1015
+ assert.dom("[data-test-card-schema]").doesNotExist();
1016
+ });
1017
+ (0, import_qunit.test)("\"form\" format button appears only for cards with a custom edit template", async function(assert) {
1018
+ await visitOperatorMode({
1019
+ submode: "code",
1020
+ codePath: `${testRealmURL}CustomEdit/sample.json`
1021
+ });
1022
+ await waitFor("[data-test-card-resource-loaded]");
1023
+ assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length + 1 });
1024
+ assert.dom("[data-test-format-chooser=\"form\"]").exists("\"form\" button appears because CustomEdit defines a custom edit template");
1025
+ assert.dom("[data-test-format-chooser=\"edit\"]").exists("\"edit\" button still present alongside \"form\"");
1026
+ await click("[data-test-format-chooser=\"form\"]");
1027
+ assert.dom("[data-test-format-chooser=\"form\"]").hasClass("active");
1028
+ assert.dom("[data-test-code-mode-card-renderer-body] [data-test-custom-edit]").doesNotExist("base CardDef template is used, not the custom edit template");
1029
+ assert.dom("[data-test-code-mode-card-renderer-body] .field-component-card.edit-format").exists("card renders in edit format");
1030
+ await click("[data-test-format-chooser=\"edit\"]");
1031
+ assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
1032
+ assert.dom("[data-test-code-mode-card-renderer-body] [data-test-custom-edit]").exists("custom edit template is used when \"edit\" is selected");
1033
+ await visitOperatorMode({
1034
+ submode: "code",
1035
+ codePath: `${testRealmURL}Person/fadhlan.json`
1036
+ });
1037
+ await waitFor("[data-test-card-resource-loaded]");
1038
+ assert.dom("[data-test-format-chooser=\"form\"]").doesNotExist("\"form\" button absent for cards without a custom edit template");
1039
+ });
1040
+ (0, import_qunit.test)("non-card file preview shows \"metadata\" format option and not \"edit\"", async function(assert) {
1041
+ await visitOperatorMode({
1042
+ stacks: [[{
1043
+ id: `${testRealmURL}Person/1`,
1044
+ format: "isolated"
1045
+ }]],
1046
+ submode: "code",
1047
+ codePath: `${testRealmURL}z01.json`
1048
+ });
1049
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1050
+ assert.dom("[data-test-format-chooser]").exists({ count: fileDefFormats.length });
1051
+ assert.dom("[data-test-format-chooser=\"metadata\"]").exists();
1052
+ assert.dom("[data-test-format-chooser=\"edit\"]").doesNotExist();
1053
+ assert.dom("[data-test-format-chooser=\"isolated\"]").exists();
1054
+ assert.dom("[data-test-format-chooser=\"embedded\"]").exists();
1055
+ assert.dom("[data-test-format-chooser=\"fitted\"]").exists();
1056
+ assert.dom("[data-test-format-chooser=\"atom\"]").exists();
1057
+ assert.dom("[data-test-format-chooser=\"head\"]").exists();
1058
+ assert.dom("[data-test-format-chooser=\"markdown\"]").exists();
1059
+ });
1060
+ (0, import_qunit.test)("clicking \"metadata\" format for a non-card file shows metadata panel with JSON-API content", async function(assert) {
1061
+ await visitOperatorMode({
1062
+ stacks: [[{
1063
+ id: `${testRealmURL}Person/1`,
1064
+ format: "isolated"
1065
+ }]],
1066
+ submode: "code",
1067
+ codePath: `${testRealmURL}z01.json`
1068
+ });
1069
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1070
+ await click("[data-test-format-chooser=\"metadata\"]");
1071
+ assert.dom("[data-test-format-chooser=\"metadata\"]").hasClass("active", "metadata button is active after clicking");
1072
+ await waitFor("[data-test-metadata-panel]");
1073
+ assert.dom("[data-test-metadata-panel]").exists();
1074
+ await waitFor("[data-test-metadata-content]");
1075
+ assert.dom("[data-test-metadata-content]").exists();
1076
+ let content = document.querySelector("[data-test-metadata-content]")?.textContent ?? "";
1077
+ assert.true(content.includes("\"file-meta\""), "metadata content includes \"file-meta\" type");
1078
+ assert.true(content.includes("adoptsFrom"), "metadata content includes adoptsFrom");
1079
+ });
1080
+ (0, import_qunit.test)("switching away from \"metadata\" format hides the metadata panel", async function(assert) {
1081
+ await visitOperatorMode({
1082
+ stacks: [[{
1083
+ id: `${testRealmURL}Person/1`,
1084
+ format: "isolated"
1085
+ }]],
1086
+ submode: "code",
1087
+ codePath: `${testRealmURL}z01.json`
1088
+ });
1089
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1090
+ await click("[data-test-format-chooser=\"metadata\"]");
1091
+ await waitFor("[data-test-metadata-panel]");
1092
+ assert.dom("[data-test-metadata-panel]").exists();
1093
+ await click("[data-test-format-chooser=\"isolated\"]");
1094
+ assert.dom("[data-test-metadata-panel]").doesNotExist("metadata panel is hidden after switching formats");
1095
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active", "isolated button is active after switching");
1096
+ });
1097
+ (0, import_qunit.test)("format chooser flips to compact mode in a narrow preview panel and restores on widen", async function(assert) {
1098
+ await visitOperatorMode({
1099
+ stacks: [[{
1100
+ id: `${testRealmURL}Person/fadhlan`,
1101
+ format: "isolated"
1102
+ }]],
1103
+ submode: "code",
1104
+ codePath: `${testRealmURL}Person/fadhlan.json`
1105
+ });
1106
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1107
+ let chooser = document.querySelector("[data-test-format-chooser-root]");
1108
+ assert.ok(chooser, "format chooser is rendered");
1109
+ assert.dom("[data-test-format-chooser-root]").hasAttribute("data-test-format-chooser-mode", "full", "chooser starts in full icon+text mode");
1110
+ let previewResizeHandle = Array.from(document.querySelectorAll("[data-test-code-mode] .separator-horizontal[data-boxel-panel-resize-handle-id]")).at(-1);
1111
+ assert.ok(previewResizeHandle, "preview panel resize handle exists");
1112
+ let editorPanel = previewResizeHandle.previousElementSibling;
1113
+ let previewPanel = previewResizeHandle.nextElementSibling;
1114
+ assert.dom(editorPanel).hasAttribute("data-boxel-panel-id", /.+/, "the element before the handle is a resizable panel");
1115
+ assert.dom(previewPanel).hasAttribute("data-boxel-panel-id", /.+/, "the element after the handle is a resizable panel");
1116
+ let initialEditorWidth = editorPanel.getBoundingClientRect().width;
1117
+ let initialPreviewWidth = previewPanel.getBoundingClientRect().width;
1118
+ let dragDistance = Math.round(initialPreviewWidth * .75);
1119
+ let shrinkRect = previewResizeHandle.getBoundingClientRect();
1120
+ await triggerEvent(previewResizeHandle, "pointerdown", {
1121
+ button: 0,
1122
+ pointerId: 1,
1123
+ clientX: shrinkRect.x + shrinkRect.width / 2,
1124
+ clientY: shrinkRect.y + shrinkRect.height / 2
1125
+ });
1126
+ await triggerEvent(previewResizeHandle, "pointermove", {
1127
+ pointerId: 1,
1128
+ buttons: 1,
1129
+ clientX: shrinkRect.x + shrinkRect.width / 2 + dragDistance,
1130
+ clientY: shrinkRect.y + shrinkRect.height / 2
1131
+ });
1132
+ await triggerEvent(previewResizeHandle, "pointerup", {
1133
+ pointerId: 1,
1134
+ clientX: shrinkRect.x + shrinkRect.width / 2 + dragDistance,
1135
+ clientY: shrinkRect.y + shrinkRect.height / 2
1136
+ });
1137
+ await waitUntil(() => chooser?.getAttribute("data-test-format-chooser-mode") === "compact");
1138
+ assert.dom("[data-test-format-chooser-root]").hasAttribute("data-test-format-chooser-mode", "compact", "chooser switches to compact icon-only mode");
1139
+ let embeddedButton = document.querySelector("[data-test-format-chooser=\"embedded\"]");
1140
+ assert.ok(embeddedButton, "embedded format button exists");
1141
+ let embeddedRect = embeddedButton.getBoundingClientRect();
1142
+ await triggerEvent(embeddedButton, "mouseenter", {
1143
+ clientX: embeddedRect.x + embeddedRect.width / 2,
1144
+ clientY: embeddedRect.y + embeddedRect.height / 2
1145
+ });
1146
+ await triggerEvent(embeddedButton, "mousemove", {
1147
+ clientX: embeddedRect.x + embeddedRect.width / 2,
1148
+ clientY: embeddedRect.y + embeddedRect.height / 2
1149
+ });
1150
+ await waitFor("[data-test-tooltip-content]");
1151
+ assert.dom("[data-test-tooltip-content]").hasText("embedded", "compact chooser shows an instant hover tooltip");
1152
+ let widenRect = previewResizeHandle.getBoundingClientRect();
1153
+ await triggerEvent(previewResizeHandle, "pointerdown", {
1154
+ button: 0,
1155
+ pointerId: 2,
1156
+ clientX: widenRect.x + widenRect.width / 2,
1157
+ clientY: widenRect.y + widenRect.height / 2
1158
+ });
1159
+ await triggerEvent(previewResizeHandle, "pointermove", {
1160
+ pointerId: 2,
1161
+ buttons: 1,
1162
+ clientX: widenRect.x + widenRect.width / 2 - dragDistance,
1163
+ clientY: widenRect.y + widenRect.height / 2
1164
+ });
1165
+ await triggerEvent(previewResizeHandle, "pointerup", {
1166
+ pointerId: 2,
1167
+ clientX: widenRect.x + widenRect.width / 2 - dragDistance,
1168
+ clientY: widenRect.y + widenRect.height / 2
1169
+ });
1170
+ await waitUntil(() => chooser?.getAttribute("data-test-format-chooser-mode") === "full");
1171
+ await triggerEvent(chooser, "mouseleave");
1172
+ assert.dom("[data-test-format-chooser-root]").hasAttribute("data-test-format-chooser-mode", "full", "chooser returns to full icon+text mode after widening");
1173
+ assert.dom("[data-test-tooltip-content]").doesNotExist("compact tooltip does not stick after widening");
1174
+ assert.dom("[data-test-format-chooser-pill-label]").hasText("isolated", "full chooser label is restored");
1175
+ assert.ok(Math.abs(previewPanel.getBoundingClientRect().width - initialPreviewWidth) <= 1, "preview panel is back to the width it started at");
1176
+ assert.ok(Math.abs(editorPanel.getBoundingClientRect().width - initialEditorWidth) <= 1, "code editor panel is back to the width it started at");
1177
+ });
1178
+ (0, import_qunit.test)("displays clear message when a schema-editor incompatible item is selected within a valid file type", async function(assert) {
1179
+ await visitOperatorMode({
1180
+ submode: "code",
1181
+ codePath: `${testRealmURL}employee.gts`
1182
+ });
1183
+ await waitFor("[data-test-loading-indicator]", { count: 0 });
1184
+ await waitFor("[data-test-in-this-file-selector] [data-test-boxel-selector-item-selected]");
1185
+ assert.dom("[data-test-in-this-file-selector] [data-test-boxel-selector-item-selected]").hasText("isHourly function");
1186
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").hasText(`No tools are available for the selected item: function "isHourly". Select a card or field definition in the inspector.`);
1187
+ await click("[data-test-boxel-selector-item-text=\"Isolated\"]");
1188
+ await waitFor("[data-test-loading-indicator]", { count: 0 });
1189
+ assert.dom("[data-test-in-this-file-selector] [data-test-boxel-selector-item-selected]").hasText("Isolated class");
1190
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").hasText(`No tools are available for the selected item: class "Isolated". Select a card or field definition in the inspector.`);
1191
+ await visitOperatorMode({
1192
+ submode: "code",
1193
+ codePath: `${testRealmURL}employee.gts`
1194
+ });
1195
+ await waitFor("[data-test-loading-indicator]", { count: 0 });
1196
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").exists();
1197
+ });
1198
+ (0, import_qunit.test)("displays clear message on schema-editor when file is completely unsupported", async function(assert) {
1199
+ await visitOperatorMode({
1200
+ submode: "code",
1201
+ codePath: `${testRealmURL}hello.txt`
1202
+ });
1203
+ assert.dom("[data-test-code-mode-card-renderer-body]").exists();
1204
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-boxel-card-header-title]").includesText("File");
1205
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-boxel-card-header-title]").includesText("hello.txt");
1206
+ assert.dom("[data-test-format-chooser=\"edit\"]").doesNotExist();
1207
+ assert.dom("[data-test-code-mode-card-renderer-header] [data-test-edit-button]").doesNotExist();
1208
+ await waitFor("[data-test-definition-file-extension]");
1209
+ assert.dom("[data-test-definition-file-extension]").hasText(".txt");
1210
+ });
1211
+ (0, import_qunit.test)("Clicking card in search panel opens card JSON in editor", async function(assert) {
1212
+ await visitOperatorMode({
1213
+ submode: "code",
1214
+ codePath: `${testRealmURL}employee.gts`
1215
+ });
1216
+ assert.dom("[data-test-search-sheet]").doesNotHaveClass("prompt");
1217
+ await click("[data-test-open-search-field]");
1218
+ assert.dom("[data-test-search-sheet]").hasClass("prompt");
1219
+ await fillIn("[data-test-search-field]", "Mango");
1220
+ assert.dom("[data-test-search-sheet]").hasClass("results");
1221
+ await waitFor(`[data-test-search-result="${testRealmURL}Pet/mango"]`, { timeout: 2e3 });
1222
+ await click(`[data-test-search-result="${testRealmURL}Pet/mango"]`);
1223
+ assert.dom("[data-test-search-sheet]").doesNotHaveClass("results");
1224
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
1225
+ attributes: { name: "Mango" },
1226
+ meta: { adoptsFrom: {
1227
+ module: `${testRealmURL}pet`,
1228
+ name: "Pet"
1229
+ } }
1230
+ } });
1231
+ });
1232
+ (0, import_qunit.test)("Clicking a search result while the dashboard is open closes the dashboard and shows the file", async function(assert) {
1233
+ await visitOperatorMode({
1234
+ submode: "code",
1235
+ codePath: `${testRealmURL}employee.gts`,
1236
+ workspaceChooserOpened: true
1237
+ });
1238
+ assert.dom("[data-test-dashboard]").exists();
1239
+ await click("[data-test-open-search-field]");
1240
+ await fillIn("[data-test-search-field]", "Mango");
1241
+ await waitFor(`[data-test-search-result="${testRealmURL}Pet/mango"]`, { timeout: 2e3 });
1242
+ await click(`[data-test-search-result="${testRealmURL}Pet/mango"]`);
1243
+ assert.dom("[data-test-dashboard]").doesNotExist();
1244
+ await waitFor("[data-test-card-url-bar-input]");
1245
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}Pet/mango.json`);
1246
+ });
1247
+ (0, import_qunit.test)("Clicking a file in search panel opens the file itself (no .json appended)", async function(assert) {
1248
+ await visitOperatorMode({
1249
+ submode: "code",
1250
+ codePath: `${testRealmURL}employee.gts`
1251
+ });
1252
+ await click("[data-test-open-search-field]");
1253
+ await fillIn("[data-test-search-field]", "care-guide");
1254
+ await waitFor(`[data-test-search-result="${testRealmURL}care-guide.md"]`, { timeout: 2e3 });
1255
+ await click(`[data-test-search-result="${testRealmURL}care-guide.md"]`);
1256
+ assert.dom("[data-test-search-sheet]").doesNotHaveClass("results");
1257
+ await waitFor("[data-test-card-url-bar-input]");
1258
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}care-guide.md`, "the file opens at its own URL, without a .json extension appended");
1259
+ assert.true(getMonacoContent().includes("Care Guide"), "the markdown file content is loaded in the editor");
1260
+ });
1261
+ (0, import_qunit.test)("clicking a linksTo field in card renderer panel opens the linked card JSON", async function(assert) {
1262
+ let operatorModeStateService = getService("operator-mode-state-service");
1263
+ await visitOperatorMode({
1264
+ stacks: [[{
1265
+ id: `${testRealmURL}Friend/amy`,
1266
+ format: "isolated"
1267
+ }]],
1268
+ submode: "code",
1269
+ codePath: `${testRealmURL}Friend/amy.json`
1270
+ });
1271
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1272
+ assert.dom(`[data-test-card="${testRealmURL}Friend/amy"]`).exists();
1273
+ await waitFor(`[data-test-card="${testRealmURL}Friend/bob"]`);
1274
+ await click(`[data-test-card="${testRealmURL}Friend/bob"]`);
1275
+ await waitUntil(() => operatorModeStateService.state?.codePath?.endsWith("Friend/bob.json"));
1276
+ assert.strictEqual(operatorModeStateService.state?.codePath, `${testRealmURL}Friend/bob.json`);
1277
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
1278
+ attributes: { name: "Bob" },
1279
+ meta: { adoptsFrom: {
1280
+ module: `${testRealmURL}friend`,
1281
+ name: "Friend"
1282
+ } },
1283
+ relationships: {}
1284
+ } });
1285
+ });
1286
+ (0, import_qunit.test)("clicking a linksToMany field in card renderer panel opens the linked card JSON", async function(assert) {
1287
+ let operatorModeStateService = getService("operator-mode-state-service");
1288
+ await visitOperatorMode({
1289
+ stacks: [[{
1290
+ id: `${testRealmURL}Person/with-friends`,
1291
+ format: "isolated"
1292
+ }]],
1293
+ submode: "code",
1294
+ codePath: `${testRealmURL}Person/with-friends.json`
1295
+ });
1296
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1297
+ assert.dom(`[data-test-card="${testRealmURL}Person/with-friends"]`).exists();
1298
+ await waitFor(`[data-test-card="${testRealmURL}Friend/bob"]`);
1299
+ await click(`[data-test-card="${testRealmURL}Friend/bob"]`);
1300
+ await waitUntil(() => operatorModeStateService.state?.codePath?.endsWith("Friend/bob.json"));
1301
+ assert.strictEqual(operatorModeStateService.state?.codePath, `${testRealmURL}Friend/bob.json`);
1302
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
1303
+ attributes: { name: "Bob" },
1304
+ meta: { adoptsFrom: {
1305
+ module: `${testRealmURL}friend`,
1306
+ name: "Friend"
1307
+ } },
1308
+ relationships: {}
1309
+ } });
1310
+ });
1311
+ (0, import_qunit.test)("clicking a linksTo field in playground panel opens the linked card JSON", async function(assert) {
1312
+ let operatorModeStateService = getService("operator-mode-state-service");
1313
+ await visitOperatorMode({
1314
+ stacks: [[{
1315
+ id: `${testRealmURL}Friend/amy`,
1316
+ format: "isolated"
1317
+ }]],
1318
+ submode: "code",
1319
+ codePath: `${testRealmURL}friend.gts`
1320
+ });
1321
+ await click("[data-test-module-inspector-view=\"preview\"]");
1322
+ assert.dom(`[data-test-card="${testRealmURL}Friend/amy"]`).exists();
1323
+ await click(`[data-test-card="${testRealmURL}Friend/bob"]`);
1324
+ await waitUntil(() => operatorModeStateService.state?.codePath?.endsWith("Friend/bob.json"));
1325
+ assert.strictEqual(operatorModeStateService.state?.codePath, `${testRealmURL}Friend/bob.json`);
1326
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
1327
+ attributes: { name: "Bob" },
1328
+ meta: { adoptsFrom: {
1329
+ module: `${testRealmURL}friend`,
1330
+ name: "Friend"
1331
+ } },
1332
+ relationships: {}
1333
+ } });
1334
+ });
1335
+ (0, import_qunit.test)("clicking a linksToMany field in playground panel opens the linked card JSON", async function(assert) {
1336
+ let operatorModeStateService = getService("operator-mode-state-service");
1337
+ setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1338
+ cardId: rri(`${testRealmURL}Person/with-friends`),
1339
+ format: "isolated"
1340
+ } });
1341
+ await visitOperatorMode({
1342
+ stacks: [[{
1343
+ id: `${testRealmURL}Person/with-friends`,
1344
+ format: "isolated"
1345
+ }]],
1346
+ submode: "code",
1347
+ codePath: `${testRealmURL}person.gts`
1348
+ });
1349
+ await click("[data-test-module-inspector-view=\"preview\"]");
1350
+ assert.dom(`[data-test-card="${testRealmURL}Person/with-friends"]`).exists();
1351
+ await waitFor(`[data-test-card="${testRealmURL}Friend/amy"]`);
1352
+ await click(`[data-test-card="${testRealmURL}Friend/amy"]`);
1353
+ await waitUntil(() => operatorModeStateService.state?.codePath?.endsWith("Friend/amy.json"));
1354
+ assert.strictEqual(operatorModeStateService.state?.codePath, `${testRealmURL}Friend/amy.json`);
1355
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
1356
+ attributes: { name: "Amy" },
1357
+ meta: { adoptsFrom: {
1358
+ module: `${testRealmURL}friend`,
1359
+ name: "Friend"
1360
+ } },
1361
+ relationships: { friend: { links: { self: `${testRealmURL}Friend/bob` } } }
1362
+ } });
1363
+ });
1364
+ (0, import_qunit.test)("changes cursor position when selected module declaration is changed", async function(assert) {
1365
+ await visitOperatorMode({
1366
+ submode: "code",
1367
+ codePath: `${testRealmURL}in-this-file.gts`
1368
+ });
1369
+ await waitFor("[data-test-card-inspector-panel]");
1370
+ await waitFor("[data-test-current-module-name]");
1371
+ await waitFor("[data-test-in-this-file-selector]");
1372
+ let elementName = "default (DefaultClass) class";
1373
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(11)").hasText(elementName);
1374
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(elementName);
1375
+ assert.true(monacoService.getLineCursorOn()?.includes("DefaultClass"), "cursor is on DefaultClass line");
1376
+ elementName = "ExportedCard";
1377
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1378
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName), "cursor is on ExportedCard line");
1379
+ elementName = "ExportedField";
1380
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1381
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName), "cursor is on ExportedField line");
1382
+ elementName = "exportedFunction";
1383
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1384
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName), "cursor is on exportedFunction line");
1385
+ });
1386
+ (0, import_qunit.test)("changes selected module declaration when cursor position is changed", async function(assert) {
1387
+ await visitOperatorMode({
1388
+ submode: "code",
1389
+ codePath: `${testRealmURL}in-this-file.gts`
1390
+ });
1391
+ await waitFor("[data-test-card-inspector-panel]");
1392
+ await waitFor("[data-test-current-module-name]");
1393
+ await waitFor("[data-test-in-this-file-selector]");
1394
+ let elementName = "default (DefaultClass) class";
1395
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(11)").hasText(elementName);
1396
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(elementName);
1397
+ assert.true(monacoService.getLineCursorOn()?.includes("DefaultClass"));
1398
+ elementName = "ExportedFieldInheritLocalField";
1399
+ let position = new Position(45, 0);
1400
+ monacoService.updateCursorPosition(position);
1401
+ await waitFor(`[data-test-boxel-selector-item-selected] [data-test-boxel-selector-item-text="${elementName}"]`);
1402
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} field def`);
1403
+ elementName = "LocalField";
1404
+ position = new Position(38, 0);
1405
+ monacoService.updateCursorPosition(position);
1406
+ await waitFor(`[data-test-boxel-selector-item-selected] [data-test-boxel-selector-item-text="${elementName}"]`);
1407
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} field def`);
1408
+ elementName = "ExportedCard";
1409
+ position = new Position(31, 0);
1410
+ monacoService.updateCursorPosition(position);
1411
+ await waitFor(`[data-test-boxel-selector-item-selected] [data-test-boxel-selector-item-text="${elementName}"]`);
1412
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
1413
+ });
1414
+ (0, import_qunit.test)("the monaco cursor position is maintained during an auto-save", async function(assert) {
1415
+ assert.expect(2);
1416
+ await visitOperatorMode({
1417
+ submode: "code",
1418
+ codePath: `${testRealmURL}in-this-file.gts`
1419
+ });
1420
+ let originalPosition;
1421
+ setMonacoContent(`// This is a change \n${inThisFileSource}`);
1422
+ monacoService.updateCursorPosition(new Position(45, 0));
1423
+ originalPosition = monacoService.getCursorPosition();
1424
+ await waitFor("[data-test-saved]");
1425
+ await waitFor("[data-test-save-idle]");
1426
+ let currentPosition = monacoService.getCursorPosition();
1427
+ assert.strictEqual(originalPosition.lineNumber, currentPosition?.lineNumber, "cursor position line number has not changed");
1428
+ assert.strictEqual(originalPosition.column, currentPosition?.column, "cursor position column has not changed");
1429
+ });
1430
+ (0, import_qunit.test)("cursor is placed at the correct declaration when user opens definition", async function(assert) {
1431
+ await visitOperatorMode({
1432
+ submode: "code",
1433
+ codePath: `${testRealmURL}employee.gts`
1434
+ });
1435
+ await waitFor(`[data-boxel-selector-item-text="Employee"]`);
1436
+ await click(`[data-boxel-selector-item-text="Employee"]`);
1437
+ let lineCursorOn = monacoService.getLineCursorOn();
1438
+ assert.true(lineCursorOn?.includes("Employee"), "cursor is at Employee declaration");
1439
+ await click(`[data-test-clickable-definition-container`);
1440
+ await waitFor(`[data-boxel-selector-item-text="Person"]`);
1441
+ await waitUntil(() => monacoService.hasFocus);
1442
+ lineCursorOn = monacoService.getLineCursorOn();
1443
+ assert.true(lineCursorOn?.includes("Person"), "cursor is at Person declaration");
1444
+ });
1445
+ (0, import_qunit.test)("cursor must not be in editor if user focuses on other elements", async function(assert) {
1446
+ await visitOperatorMode({
1447
+ submode: "code",
1448
+ codePath: `${testRealmURL}employee.gts`
1449
+ });
1450
+ await waitFor(`[data-boxel-selector-item-text="Employee"]`);
1451
+ await click(`[data-boxel-selector-item-text="Employee"]`);
1452
+ assert.true(monacoService.hasFocus);
1453
+ await fillIn("[data-test-card-url-bar] input", `${testRealmURL}person.gts`);
1454
+ assert.false(monacoService.hasFocus);
1455
+ await triggerKeyEvent("[data-test-card-url-bar-input]", "keypress", "Enter");
1456
+ await waitFor(`[data-boxel-selector-item-text="Person"]`);
1457
+ assert.true(monacoService.hasFocus);
1458
+ await fillIn("[data-test-card-url-bar] input", `${testRealmURL}person.gts-test`);
1459
+ assert.false(monacoService.hasFocus);
1460
+ });
1461
+ (0, import_qunit.test)("scroll position persists when changing card preview format", async function(assert) {
1462
+ await visitOperatorMode({
1463
+ submode: "code",
1464
+ codePath: `${testRealmURL}Pet/mango.json`
1465
+ });
1466
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1467
+ await scrollTo("[data-test-code-mode-card-renderer-body]", 0, 100);
1468
+ await click("[data-test-format-chooser=\"edit\"]");
1469
+ await click("[data-test-format-chooser=\"isolated\"]");
1470
+ let element = document.querySelector("[data-test-code-mode-card-renderer-body]");
1471
+ assert.strictEqual(element.scrollTop, 100, "the scroll position is correct");
1472
+ });
1473
+ (0, import_qunit.skip)("updates values in preview panel must be represented in editor panel", async function(assert) {
1474
+ await visitOperatorMode({
1475
+ submode: "code",
1476
+ codePath: `${testRealmURL}Person/fadhlan.json`
1477
+ });
1478
+ await waitFor("[data-test-code-mode-card-renderer-body]");
1479
+ await click("[data-test-format-chooser=\"edit\"]");
1480
+ await fillIn("[data-test-field=\"lastName\"] input", "Ridhwanallah");
1481
+ await fillIn("[data-test-field=\"streetAddress\"] input", "Unknown Address");
1482
+ await fillIn("[data-test-field=\"city\"] input", "Bandung");
1483
+ await fillIn("[data-test-field=\"fiveDigitPostalCode\"] input", "12345");
1484
+ await fillIn("[data-test-field=\"fourDigitOptional\"] input", "1234");
1485
+ await click("[data-test-links-to-many=\"countriesVisited\"] [data-test-add-new]");
1486
+ await waitFor(`[data-test-item-button="${testRealmURL}Country/united-states"]`);
1487
+ await click(`[data-test-item-button="${testRealmURL}Country/united-states"]`);
1488
+ await click(`[data-test-card-chooser-go-button]`);
1489
+ await waitFor("[data-test-saved]");
1490
+ await waitFor("[data-test-save-idle]");
1491
+ await settled();
1492
+ let content = getMonacoContent();
1493
+ await waitUntil(() => content.includes("Ridhwanallah"));
1494
+ assert.ok(content.includes("Ridhwanallah"), "content includes Ridhwanallah");
1495
+ assert.ok(content.includes("Unknown Address"), "content includes Unknown Address");
1496
+ assert.ok(content.includes("Bandung"), "content includes Bandung");
1497
+ assert.ok(content.includes("12345"), "content includes 12345");
1498
+ assert.ok(content.includes("1234"), "content includes 1234");
1499
+ assert.ok(content.includes(`${testRealmURL}Country/united-states`), "content includes Country/united-states");
1500
+ });
1501
+ (0, import_qunit.test)("monaco editor shows a change made just after the file opens", async function(assert) {
1502
+ await visitOperatorMode({
1503
+ submode: "code",
1504
+ codePath: `${testRealmURL}Person/fadhlan.json`
1505
+ });
1506
+ await waitUntil(() => getMonacoContent().includes("Fadhlan"), { timeout: 5e3 });
1507
+ await realm.write("Person/fadhlan.json", JSON.stringify({ data: {
1508
+ type: "card",
1509
+ attributes: { firstName: "FadhlanYYY" },
1510
+ meta: { adoptsFrom: {
1511
+ module: rri("../person"),
1512
+ name: "Person"
1513
+ } }
1514
+ } }));
1515
+ await waitUntil(() => getMonacoContent().includes("FadhlanYYY"), {
1516
+ timeout: 5e3,
1517
+ timeoutMessage: "monaco did not show the change made elsewhere"
1518
+ });
1519
+ assert.strictEqual(JSON.parse(getMonacoContent()).data.attributes.firstName, "FadhlanYYY", "monaco shows the saved document");
1520
+ });
1521
+ (0, import_qunit.test)("monaco editor live updates when index changes", async function(assert) {
1522
+ await visitOperatorMode({
1523
+ stacks: [[{
1524
+ id: `${testRealmURL}Person/fadhlan`,
1525
+ format: "isolated"
1526
+ }]],
1527
+ submode: "code",
1528
+ codePath: `${testRealmURL}Person/fadhlan.json`
1529
+ });
1530
+ await waitUntil(() => getMonacoContent().includes("Fadhlan"), { timeout: 5e3 });
1531
+ await realm.write("Person/fadhlan.json", JSON.stringify({ data: {
1532
+ type: "card",
1533
+ attributes: { firstName: "FadhlanXXX" },
1534
+ meta: { adoptsFrom: {
1535
+ module: rri("../person"),
1536
+ name: "Person"
1537
+ } }
1538
+ } }));
1539
+ try {
1540
+ await waitUntil(() => getMonacoContent().includes("FadhlanXXX"), { timeout: 5e3 });
1541
+ } catch (err) {
1542
+ let monacoContent = getMonacoContent();
1543
+ let sourceProbe;
1544
+ let sourceOk;
1545
+ try {
1546
+ let res = await getService("network").authedFetch(`${testRealmURL}Person/fadhlan.json`, { headers: { Accept: "application/vnd.card+source" } });
1547
+ let body = await res.text();
1548
+ sourceOk = res.ok;
1549
+ sourceProbe = sourceOk ? body : `<source-probe non-ok: ${res.status} ${res.statusText} body=${JSON.stringify(body)}>`;
1550
+ } catch (e) {
1551
+ sourceOk = false;
1552
+ sourceProbe = `<source-probe error: ${e?.message ?? e}>`;
1553
+ }
1554
+ console.warn(`[monaco-live-updates flake-probe] waitUntil timed out. monaco includes "FadhlanXXX"=${monacoContent.includes("FadhlanXXX")}; source fetch ok=${sourceOk}; source on disk includes "FadhlanXXX"=${sourceOk && sourceProbe.includes("FadhlanXXX")}. monaco snapshot: ${JSON.stringify(monacoContent)}. source snapshot: ${JSON.stringify(sourceProbe)}.`);
1555
+ throw err;
1556
+ }
1557
+ assert.true(getMonacoContent().includes("FadhlanXXX"), "monaco editor updated from index event");
1558
+ });
1559
+ (0, import_qunit.test)("code editor shows size limit error when json save exceeds limit", async function(assert) {
1560
+ let environmentService = getService("environment-service");
1561
+ let originalMaxSize = environmentService.cardSizeLimitBytes;
1562
+ try {
1563
+ await visitOperatorMode({
1564
+ submode: "code",
1565
+ codePath: `${testRealmURL}person-entry.json`
1566
+ });
1567
+ await waitFor("[data-test-editor]");
1568
+ let content = getMonacoContent();
1569
+ let currentSize = new TextEncoder().encode(content).length;
1570
+ environmentService.cardSizeLimitBytes = currentSize + 50;
1571
+ let doc = JSON.parse(content);
1572
+ doc.data.attributes = {
1573
+ ...doc.data.attributes ?? {},
1574
+ title: "x".repeat(currentSize + 200)
1575
+ };
1576
+ setMonacoContent(JSON.stringify(doc, null, 2));
1577
+ await waitFor("[data-test-save-error]");
1578
+ assert.dom("[data-test-save-error]").includesText(`exceeds maximum allowed size (${environmentService.cardSizeLimitBytes} bytes)`);
1579
+ } finally {
1580
+ environmentService.cardSizeLimitBytes = originalMaxSize;
1581
+ }
1582
+ });
1583
+ (0, import_qunit.test)("card preview live updates when index changes", async function(assert) {
1584
+ await visitOperatorMode({
1585
+ stacks: [[{
1586
+ id: `${testRealmURL}Person/fadhlan`,
1587
+ format: "isolated"
1588
+ }]],
1589
+ submode: "code",
1590
+ codePath: `${testRealmURL}Person/fadhlan.json`
1591
+ });
1592
+ await waitFor("[data-test-card-resource-loaded]");
1593
+ await realm.write("Person/fadhlan.json", JSON.stringify({ data: {
1594
+ type: "card",
1595
+ attributes: { firstName: "FadhlanXXX" },
1596
+ meta: { adoptsFrom: {
1597
+ module: rri("../person"),
1598
+ name: "Person"
1599
+ } }
1600
+ } }));
1601
+ await settled();
1602
+ let previewText = () => document.querySelector("[data-test-code-mode-card-renderer-body]")?.textContent ?? "";
1603
+ if (!previewText().includes("FadhlanXXX")) {
1604
+ let realmEvents = mockMatrixUtils.getRoomIds().flatMap((roomId) => mockMatrixUtils.getRoomEvents(roomId)).filter((event) => event.type === APP_BOXEL_REALM_EVENT_TYPE).slice(-5).map((event) => event.content);
1605
+ let instance = getService("store").peek(`${testRealmURL}Person/fadhlan`);
1606
+ console.warn(`[card-preview-live-updates flake-probe] preview not updated after settled(). store firstName=${JSON.stringify(instance?.firstName)}; preview text=${JSON.stringify(previewText())}; last realm events in mock homeserver=${JSON.stringify(realmEvents)}.`);
1607
+ }
1608
+ assert.dom("[data-test-code-mode-card-renderer-body]").includesText("FadhlanXXX");
1609
+ });
1610
+ (0, import_qunit.test)("card preview live updates when there is a change in module", async function(assert) {
1611
+ const personGts = `
1612
+ import { contains, containsMany, field, linksTo, linksToMany, CardDef, Component } from "@cardstack/base/card-api";
1613
+ import StringField from "@cardstack/base/string";
1614
+ import { Friend } from './friend';
1615
+ import { Pet } from "./pet";
1616
+ import { Address } from './address';
1617
+ import { Trips } from './trips';
1618
+
1619
+ export class Person extends CardDef {
1620
+ static displayName = 'Person';
1621
+ @field firstName = contains(StringField);
1622
+ @field lastName = contains(StringField);
1623
+ @field cardTitle = contains(StringField, {
1624
+ computeVia: function (this: Person) {
1625
+ return [this.firstName, this.lastName].filter(Boolean).join(' ');
1626
+ },
1627
+ });
1628
+ @field pet = linksTo(Pet);
1629
+ @field friends = linksToMany(Friend);
1630
+ @field address = containsMany(StringField);
1631
+ @field addressDetail = contains(Address);
1632
+ @field trips = contains(Trips);
1633
+ static isolated = class Isolated extends Component<typeof this> {
1634
+ <template>
1635
+ <div data-test-person>
1636
+ Hello <@fields.firstName />
1637
+ </div>
1638
+ <style scoped>
1639
+ div {
1640
+ color: blue;
1641
+ }
1642
+ </style>
1643
+ </template>
1644
+ };
1645
+ };
1646
+ `;
1647
+ const getElementColor = (selector) => {
1648
+ let element = document.querySelector(selector);
1649
+ if (!element) return;
1650
+ return src_default.getComputedStyle(element).color;
1651
+ };
1652
+ await visitOperatorMode({
1653
+ stacks: [],
1654
+ submode: "code",
1655
+ codePath: `${testRealmURL}Person/1.json`
1656
+ });
1657
+ await waitFor("[data-test-card-resource-loaded]");
1658
+ assert.dom("[data-test-person]").containsText("First name: Hassan");
1659
+ assert.strictEqual(getElementColor("[data-test-person]"), "rgb(0, 128, 0)");
1660
+ await realm.write("person.gts", personGts);
1661
+ await waitUntil(() => document.querySelector("[data-test-person]")?.textContent?.includes("Hello"), { timeout: 5e3 });
1662
+ assert.dom("[data-test-person]").includesText("Hello Hassan");
1663
+ assert.strictEqual(getElementColor("[data-test-person]"), "rgb(0, 0, 255)");
1664
+ await click("[data-test-file-browser-toggle]");
1665
+ await click("[data-test-file=\"Person/1.json\"]");
1666
+ assert.dom("[data-test-person]").includesText("Hello Hassan");
1667
+ assert.strictEqual(getElementColor("[data-test-person]"), "rgb(0, 0, 255)");
1668
+ });
1669
+ (0, import_qunit.test)("card preview live updates with error", async function(assert) {
1670
+ await visitOperatorMode({
1671
+ submode: "code",
1672
+ codePath: `${testRealmURL}Person/fadhlan.json`
1673
+ });
1674
+ await waitFor("[data-test-card-resource-loaded]");
1675
+ assert.dom("[data-test-card-error]").doesNotExist("card error state is not displayed");
1676
+ await realm.write("Person/fadhlan.json", JSON.stringify({ data: {
1677
+ type: "card",
1678
+ meta: { adoptsFrom: {
1679
+ module: rri("../missing-person"),
1680
+ name: "MissingPerson"
1681
+ } }
1682
+ } }));
1683
+ await settled();
1684
+ assert.dom("[data-test-card-error]").exists("card error state is displayed");
1685
+ await realm.write("Person/fadhlan.json", JSON.stringify({ data: {
1686
+ type: "card",
1687
+ meta: { adoptsFrom: {
1688
+ module: rri("../person"),
1689
+ name: "Person"
1690
+ } }
1691
+ } }));
1692
+ await settled();
1693
+ assert.dom("[data-test-card-error]").doesNotExist("card error state is not displayed");
1694
+ });
1695
+ (0, import_qunit.test)("card-chooser does not offer to \"create new card\" when editing linked fields in code mode", async function(assert) {
1696
+ await visitOperatorMode({
1697
+ submode: "code",
1698
+ codePath: `${testRealmURL}Person/fadhlan.json`
1699
+ });
1700
+ await waitFor("[data-test-card-resource-loaded]");
1701
+ assert.dom(`[data-test-code-mode-card-renderer-header="${testRealmURL}Person/fadhlan"]`).exists();
1702
+ await click("[data-test-format-chooser=\"edit\"]");
1703
+ await click("[data-test-links-to-editor=\"pet\"] [data-test-remove-card]");
1704
+ await waitFor("[data-test-links-to-editor=\"pet\"] [data-test-add-new]");
1705
+ await click("[data-test-links-to-editor=\"pet\"] [data-test-add-new]");
1706
+ await waitFor("[data-test-card-chooser-modal]");
1707
+ assert.dom("[data-test-card-chooser-modal] [data-test-boxel-header-title]").containsText("Choose a Pet card");
1708
+ assert.dom("[data-test-item-button-create-new]").doesNotExist("can not create new card for linksTo field in code mode");
1709
+ await click("[aria-label=\"close modal\"]");
1710
+ await waitFor("[data-test-card-chooser-modal]", { count: 0 });
1711
+ await click("[data-test-links-to-many=\"friends\"] [data-test-add-new]");
1712
+ await waitFor("[data-test-card-chooser-modal]");
1713
+ assert.dom("[data-test-card-chooser-modal] [data-test-boxel-header-title]").containsText("Select 1 or more Friend cards");
1714
+ assert.dom("[data-test-item-button-create-new]").doesNotExist("can not create new card for linksToMany field in code mode");
1715
+ });
1716
+ (0, import_qunit.test)("closes the top-most modal first when clicking overlay background", async function(assert) {
1717
+ await visitOperatorMode({
1718
+ stacks: [[{
1719
+ id: `${testRealmURL}Person/1`,
1720
+ format: "isolated"
1721
+ }]],
1722
+ submode: "code",
1723
+ codePath: `${testRealmURL}Person/1.json`
1724
+ });
1725
+ await waitFor("[data-test-code-mode][data-test-save-idle]");
1726
+ await waitFor("[data-test-new-file-button]");
1727
+ await click("[data-test-new-file-button]");
1728
+ await click(`[data-test-boxel-menu-item-text="Card Instance"]`);
1729
+ await waitFor(`[data-test-create-file-modal][data-test-ready]`);
1730
+ await click("[data-test-select-card-type]");
1731
+ await waitFor("[data-test-card-chooser-modal]");
1732
+ await percySnapshot(assert);
1733
+ let cardChooserModalOverlay = document.querySelector("[data-test-card-chooser-modal]")?.previousElementSibling;
1734
+ assert.dom(cardChooserModalOverlay).exists();
1735
+ await click(cardChooserModalOverlay);
1736
+ assert.dom("[data-test-card-chooser-modal]").doesNotExist();
1737
+ let createFileModalOverlay = document.querySelector("[data-test-create-file-modal]")?.previousElementSibling;
1738
+ assert.dom(createFileModalOverlay).exists();
1739
+ await click(createFileModalOverlay);
1740
+ assert.dom("[data-test-create-file-modal]").doesNotExist();
1741
+ });
1742
+ (0, import_qunit.test)("restores and remembers module inspector view from operator mode state", async function(assert) {
1743
+ await visitOperatorMode({
1744
+ stacks: [],
1745
+ submode: "code",
1746
+ codePath: `${testRealmURL}pet.gts`,
1747
+ moduleInspector: "preview"
1748
+ });
1749
+ assert.dom("[data-test-active-module-inspector-view=\"preview\"]").exists();
1750
+ assert.strictEqual(src_default.localStorage.getItem(ModuleInspectorSelections), JSON.stringify({ [`${testRealmURL}pet.gts`]: "preview" }));
1751
+ });
1752
+ (0, import_qunit.test)("remembers open module inspector panel via local storage", async function(assert) {
1753
+ let accordionSelections = {
1754
+ [`${testRealmURL}address.gts`]: "spec",
1755
+ [`${testRealmURL}country.gts`]: null,
1756
+ [`${testRealmURL}person.gts`]: "schema",
1757
+ [`${testRealmURL}pet-person.gts`]: "preview"
1758
+ };
1759
+ src_default.localStorage.setItem(ModuleInspectorSelections, JSON.stringify(accordionSelections));
1760
+ await visitOperatorMode({
1761
+ stacks: [],
1762
+ submode: "code",
1763
+ codePath: `${testRealmURL}pet.gts`
1764
+ });
1765
+ assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists("defaults to schema-editor view");
1766
+ await click("[data-test-module-inspector-view=\"preview\"]");
1767
+ assert.dom("[data-test-active-module-inspector-view=\"preview\"]").exists();
1768
+ await click("[data-test-file-browser-toggle]");
1769
+ await click("[data-test-file=\"address.gts\"]");
1770
+ assert.dom("[data-test-active-module-inspector-view=\"spec\"]").exists();
1771
+ await click("[data-test-file=\"country.gts\"]");
1772
+ assert.dom("[data-test-module-inspector=\"card-or-field\"]").exists();
1773
+ assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists();
1774
+ await click("[data-test-file=\"person.gts\"]");
1775
+ assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists();
1776
+ await click("[data-test-file=\"pet-person.gts\"]");
1777
+ assert.dom("[data-test-active-module-inspector-view=\"preview\"]").exists();
1778
+ await click("[data-test-module-inspector-view=\"spec\"]");
1779
+ assert.dom("[data-test-active-module-inspector-view=\"spec\"]").exists();
1780
+ let currentSelections = src_default.localStorage.getItem(ModuleInspectorSelections);
1781
+ assert.strictEqual(currentSelections, JSON.stringify({
1782
+ [`${testRealmURL}address.gts`]: "spec",
1783
+ [`${testRealmURL}country.gts`]: "schema",
1784
+ [`${testRealmURL}person.gts`]: "schema",
1785
+ [`${testRealmURL}pet-person.gts`]: "spec",
1786
+ [`${testRealmURL}pet.gts`]: "preview"
1787
+ }));
1788
+ });
1789
+ (0, import_qunit.test)("module inspector query parameter takes precendence over local storage when loading", async function(assert) {
1790
+ src_default.localStorage.setItem(ModuleInspectorSelections, JSON.stringify({ [`${testRealmURL}address.gts`]: "spec" }));
1791
+ await visitOperatorMode({
1792
+ stacks: [],
1793
+ submode: "code",
1794
+ codePath: `${testRealmURL}address.gts`,
1795
+ moduleInspector: "preview"
1796
+ });
1797
+ assert.dom("[data-test-active-module-inspector-view=\"preview\"]").exists();
1798
+ });
1799
+ (0, import_qunit.test)("Open in Interact and Edit Template buttons work correctly", async function(assert) {
1800
+ await visitOperatorMode({
1801
+ stacks: [[{
1802
+ id: `${testRealmURL}Person/fadhlan`,
1803
+ format: "isolated"
1804
+ }]],
1805
+ submode: "code",
1806
+ codePath: `${testRealmURL}Person/fadhlan.json`
1807
+ });
1808
+ await waitFor("[data-test-card-resource-loaded]");
1809
+ assert.dom("[data-test-edit-template-button]").exists("Edit Template button is rendered");
1810
+ assert.dom("[data-test-open-in-interact-button]").exists("Open in Interact button is rendered");
1811
+ assert.dom(".preview-text").hasText("Preview", "Preview text is displayed");
1812
+ await click("[data-test-open-in-interact-button]");
1813
+ await waitFor("[data-test-interact-submode]");
1814
+ assert.dom("[data-test-interact-submode]").exists("Switched to interact mode");
1815
+ assert.dom("[data-test-person]").includesText("Fadhlan");
1816
+ await click("[data-test-submode-switcher] button");
1817
+ await click("[data-test-boxel-menu-item-text=\"Code\"]");
1818
+ await waitFor("[data-test-code-submode]");
1819
+ await click("[data-test-edit-template-button]");
1820
+ await waitFor("[data-test-card-url-bar-input]");
1821
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}person.gts`);
1822
+ });
1823
+ (0, import_qunit.test)("Edit Template opens the source of a card whose type lives in a mapped realm", async function(assert) {
1824
+ await visitOperatorMode({
1825
+ stacks: [[{
1826
+ id: `${testRealmURL}person-entry`,
1827
+ format: "isolated"
1828
+ }]],
1829
+ submode: "code",
1830
+ codePath: `${testRealmURL}person-entry.json`
1831
+ });
1832
+ await waitFor("[data-test-card-resource-loaded]");
1833
+ await click("[data-test-edit-template-button]");
1834
+ await waitFor("[data-test-card-url-bar-input]");
1835
+ assert.dom("[data-test-card-url-bar-input]").hasValue(baseRRI("spec.gts"), "the base realm's spec source opened, shown in its prefix form");
1836
+ });
1837
+ });
1838
+ });
1839
+ //#endregion