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

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