@cardstack/boxel-cli 0.3.2-unstable.58 → 0.3.2-unstable.60

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 (921) hide show
  1. package/api.ts +3 -3
  2. package/bundled-realms/base/command.gts +73 -0
  3. package/bundled-test-harness/assets/adapter-TgpmkD23.js +2 -0
  4. package/bundled-test-harness/assets/add-field-to-card-definition-command-test-BVVD6_Wq.js +111 -0
  5. package/bundled-test-harness/assets/add-workspace-test-BvvYJ2Fk.js +71 -0
  6. package/bundled-test-harness/assets/ai-assistant-Ba_RBqf6.js +129 -0
  7. package/bundled-test-harness/assets/ai-assistant-panel-service-test-DK87n1hh.js +95 -0
  8. package/bundled-test-harness/assets/ai-assistant-test-CZATBlJS.js +2137 -0
  9. package/bundled-test-harness/assets/ai-function-generation-test-e58MHziu.js +996 -0
  10. package/bundled-test-harness/assets/ai-module-creation-test-CEieL3Fa.js +150 -0
  11. package/bundled-test-harness/assets/aibot-message-DhTbAqNk.js +1185 -0
  12. package/bundled-test-harness/assets/amd-transpile-test-CSk5COu7.js +425 -0
  13. package/bundled-test-harness/assets/app-Btfy4HWI.js +21464 -0
  14. package/bundled-test-harness/assets/apply-boxel-formatting-test-BHTP9NBp.js +134 -0
  15. package/bundled-test-harness/assets/apply-markdown-edit-test-BETCndeK.js +230 -0
  16. package/bundled-test-harness/assets/apply-search-replace-block-test-KNolar0-.js +630 -0
  17. package/bundled-test-harness/assets/arc-CA8yZ0zo.js +199 -0
  18. package/bundled-test-harness/assets/architecture-7EHR7CIX-C5JFMGdb.js +3 -0
  19. package/bundled-test-harness/assets/architectureDiagram-3BPJPVTR-CmVPjKgm.js +7400 -0
  20. package/bundled-test-harness/assets/auth-error-guard-test-D0rKESg_.js +30 -0
  21. package/bundled-test-harness/assets/auth-service-worker-test-DGg_vbKo.js +538 -0
  22. package/bundled-test-harness/assets/authed-fetch-test-CHF3eh_H.js +75 -0
  23. package/bundled-test-harness/assets/avif-image-def-test-p9tiyh4_.js +186 -0
  24. package/bundled-test-harness/assets/base-realm-Chjzrp6m.js +2 -0
  25. package/bundled-test-harness/assets/base-realm-DpSTsZxD.js +140 -0
  26. package/bundled-test-harness/assets/basic-test-D7qEz4hw.js +128 -0
  27. package/bundled-test-harness/assets/bfm-card-references-test-D-m1YnL8.js +577 -0
  28. package/bundled-test-harness/assets/binary-upload-dedupe-test-8RKK73EG.js +308 -0
  29. package/bundled-test-harness/assets/blockDiagram-GPEHLZMM-BdVFTa2C.js +4355 -0
  30. package/bundled-test-harness/assets/bot-registration-test-9zYny2wR.js +99 -0
  31. package/bundled-test-harness/assets/box-test-0T92xi3A.js +51 -0
  32. package/bundled-test-harness/assets/brand-guide-attachments-test-5ZtPn4cC.js +87 -0
  33. package/bundled-test-harness/assets/brand-guide-custom-css-test-CKKSgKyp.js +135 -0
  34. package/bundled-test-harness/assets/brand-logo-mark-field-test-nlNNQ3rw.js +87 -0
  35. package/bundled-test-harness/assets/broken-link-template-test-BGIExVof.js +345 -0
  36. package/bundled-test-harness/assets/browser-index-BaR-gTqG.js +3 -0
  37. package/bundled-test-harness/assets/browser-index-G4NKYBAj.js +8802 -0
  38. package/bundled-test-harness/assets/c4Diagram-AAUBKEIU-DyugX7zz.js +3764 -0
  39. package/bundled-test-harness/assets/cached-fetch-test-MtqvDphJ.js +93 -0
  40. package/bundled-test-harness/assets/can-read-realm-test-BZmwIOqS.js +58 -0
  41. package/bundled-test-harness/assets/cancel-indexing-job-test-BsQtQbDu.js +71 -0
  42. package/bundled-test-harness/assets/card-api-test-BxQ8f0-c.js +196 -0
  43. package/bundled-test-harness/assets/card-basics-test-B-uBZ8o4.js +4895 -0
  44. package/bundled-test-harness/assets/card-catalog-test-YmwmyIKf.js +377 -0
  45. package/bundled-test-harness/assets/card-copy-test-LoqdH1CQ.js +777 -0
  46. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DvtBA1jv.js +560 -0
  47. package/bundled-test-harness/assets/card-def-menu-items-test-DHnd0LuM.js +182 -0
  48. package/bundled-test-harness/assets/card-delete-test-vKF0Jf1X.js +412 -0
  49. package/bundled-test-harness/assets/card-directory-name-test-CbCuPwSz.js +71 -0
  50. package/bundled-test-harness/assets/card-playground-test-CRIP3b5-.js +1497 -0
  51. package/bundled-test-harness/assets/card-prerender-ClYlSOBU.js +12661 -0
  52. package/bundled-test-harness/assets/card-search-adorn-test-Mggk5ZgY.js +128 -0
  53. package/bundled-test-harness/assets/card-search-query-builder-test-Cdl12s50.js +88 -0
  54. package/bundled-test-harness/assets/card-search-selection-menu-test-CtuCCLoB.js +108 -0
  55. package/bundled-test-harness/assets/channel-BKUMepxs.js +8 -0
  56. package/bundled-test-harness/assets/check-correctness-test-DBh8DT_f.js +252 -0
  57. package/bundled-test-harness/assets/chunk-2J33WTMH-ClrRoNQU.js +31 -0
  58. package/bundled-test-harness/assets/chunk-3OPIFGDE-g_0Oh8jN.js +5548 -0
  59. package/bundled-test-harness/assets/chunk-4BX2VUAB-D2LCc7Y9.js +11 -0
  60. package/bundled-test-harness/assets/chunk-4EGX6M5U-D8vRS5IG.js +44 -0
  61. package/bundled-test-harness/assets/chunk-55IACEB6-C5j4VAmb.js +10 -0
  62. package/bundled-test-harness/assets/chunk-5DO6E6H7-CPb3jsP0.js +27 -0
  63. package/bundled-test-harness/assets/chunk-5ZQYHXKU-BlVb7vgG.js +1767 -0
  64. package/bundled-test-harness/assets/chunk-727SXJPM-C_NVCDMC.js +3877 -0
  65. package/bundled-test-harness/assets/chunk-AQP2D5EJ-CpwrMix_.js +2622 -0
  66. package/bundled-test-harness/assets/chunk-BR22UD5L-AF0NWdjT.js +85 -0
  67. package/bundled-test-harness/assets/chunk-BSJP7CBP-Dgun5vYb.js +114 -0
  68. package/bundled-test-harness/assets/chunk-CSCIHK7Q-D7nFiAZ-.js +6144 -0
  69. package/bundled-test-harness/assets/chunk-FHYWG6QK-2nuXS9PL.js +27 -0
  70. package/bundled-test-harness/assets/chunk-FMBD7UC4-O-Y8VK1S.js +20 -0
  71. package/bundled-test-harness/assets/chunk-KSCS5N6A-Du5-DprU.js +871 -0
  72. package/bundled-test-harness/assets/chunk-L5ZTLDWV-C2lDtkix.js +43 -0
  73. package/bundled-test-harness/assets/chunk-LZXEDZCA-qAMsMZkF.js +65 -0
  74. package/bundled-test-harness/assets/chunk-MPE355IW-DcT_60Oq.js +27 -0
  75. package/bundled-test-harness/assets/chunk-MZUSXYTE-BsH_YmnC.js +36 -0
  76. package/bundled-test-harness/assets/chunk-N66VUXT2-DMyMHgoS.js +70 -0
  77. package/bundled-test-harness/assets/chunk-ND2GUHAM-DO1Znn8O.js +93 -0
  78. package/bundled-test-harness/assets/chunk-NZK2D7GU-B1YWBxHm.js +89 -0
  79. package/bundled-test-harness/assets/chunk-O5CBEL6O-CZVSBsRq.js +2395 -0
  80. package/bundled-test-harness/assets/chunk-PUPMXCY4-DzOK-Vbt.js +27 -0
  81. package/bundled-test-harness/assets/chunk-QZHKN3VN-DJFnRn99.js +20 -0
  82. package/bundled-test-harness/assets/chunk-UIBZB4QT-5KIxBxjk.js +27 -0
  83. package/bundled-test-harness/assets/chunk-WCWK7LTN-BsQwhliq.js +36 -0
  84. package/bundled-test-harness/assets/chunk-WU5MYG2G-DUVb5MAo.js +12 -0
  85. package/bundled-test-harness/assets/chunk-XPW4576I-DLaJYAOU.js +2341 -0
  86. package/bundled-test-harness/assets/classDiagram-4FO5ZUOK-DjP2uozG.js +31 -0
  87. package/bundled-test-harness/assets/classDiagram-v2-Q7XG4LA2-Dt6ps5uz.js +31 -0
  88. package/bundled-test-harness/assets/code-equality-assertion-BBezFT13.js +474 -0
  89. package/bundled-test-harness/assets/code-patches-test-DzoQGARM.js +1128 -0
  90. package/bundled-test-harness/assets/code-patching-test-D8r-pJ5w.js +114 -0
  91. package/bundled-test-harness/assets/code-ref-test-DU3HChNz.js +138 -0
  92. package/bundled-test-harness/assets/code-semantics-service-test-DArUotKy.js +65 -0
  93. package/bundled-test-harness/assets/code-submode-test-h5wWKsz2.js +1762 -0
  94. package/bundled-test-harness/assets/codeblocks-test-FbuwTy5v.js +492 -0
  95. package/bundled-test-harness/assets/codemirror-context-DVlC9C78.js +2 -0
  96. package/bundled-test-harness/assets/codemirror-editor-test-JDT9uwqM.js +1176 -0
  97. package/bundled-test-harness/assets/color-field-test-BssRlQAX.js +213 -0
  98. package/bundled-test-harness/assets/command-definitions-test-J21kOxBs.js +72 -0
  99. package/bundled-test-harness/assets/commands-DAo0DgCX.js +1379 -0
  100. package/bundled-test-harness/assets/commands-calling-test-C3deVvv_.js +200 -0
  101. package/bundled-test-harness/assets/commands-test--0zViqs2.js +1041 -0
  102. package/bundled-test-harness/assets/commands-test-BwNn2npL.js +1145 -0
  103. package/bundled-test-harness/assets/computed-test-BD_KrZmc.js +882 -0
  104. package/bundled-test-harness/assets/container-C8gu0I0Q.js +14605 -0
  105. package/bundled-test-harness/assets/convert-to-class-name-test-CX21VRzM.js +17 -0
  106. package/bundled-test-harness/assets/copy-and-edit-test-BUy_o8XJ.js +291 -0
  107. package/bundled-test-harness/assets/copy-card-test-LWbugEPe.js +156 -0
  108. package/bundled-test-harness/assets/copy-file-to-realm-test-BS25EUGV.js +99 -0
  109. package/bundled-test-harness/assets/copy-source-test-Dh33cqM8.js +56 -0
  110. package/bundled-test-harness/assets/cose-bilkent-S5V4N54A-CjAFDdpS.js +4275 -0
  111. package/bundled-test-harness/assets/create-file-test-DOc3YYij.js +963 -0
  112. package/bundled-test-harness/assets/create-file-test-DgUya7-i.js +397 -0
  113. package/bundled-test-harness/assets/create-listing-modal-test-DZxZBYS7.js +194 -0
  114. package/bundled-test-harness/assets/create-listing-pr-request-Aw0ms76l.js +64 -0
  115. package/bundled-test-harness/assets/create-listing-pr-request-test-CFvqkgky.js +117 -0
  116. package/bundled-test-harness/assets/create-spec-test-BTRt8oe8.js +239 -0
  117. package/bundled-test-harness/assets/csv-file-def-test-BVffg8wL.js +101 -0
  118. package/bundled-test-harness/assets/dagre-BM42HDAG-GoRrN65x.js +606 -0
  119. package/bundled-test-harness/assets/dagre-ByxOOmYM.js +4195 -0
  120. package/bundled-test-harness/assets/date-time-fields-test-BEcfCqgB.js +322 -0
  121. package/bundled-test-harness/assets/debug-message-test-CAxbe6x2.js +119 -0
  122. package/bundled-test-harness/assets/diagram-2AECGRRQ-B6-pvp9H.js +279 -0
  123. package/bundled-test-harness/assets/diagram-5GNKFQAL-C9M7hXIc.js +142 -0
  124. package/bundled-test-harness/assets/diagram-KO2AKTUF-BNJvCLGK.js +551 -0
  125. package/bundled-test-harness/assets/diagram-LMA3HP47-hlJyTtqP.js +184 -0
  126. package/bundled-test-harness/assets/diagram-OG6HWLK6-BvPoB3IH.js +857 -0
  127. package/bundled-test-harness/assets/diffing-test-De9Ev_Fr.js +210 -0
  128. package/bundled-test-harness/assets/dist-BsEojs3T.js +232 -0
  129. package/bundled-test-harness/assets/dist-CY3T64Hs.js +105 -0
  130. package/bundled-test-harness/assets/dist-q2xz8RMj.js +2 -0
  131. package/bundled-test-harness/assets/editor-test-DOI_TvWQ.js +551 -0
  132. package/bundled-test-harness/assets/editor.main-CpuM6HrX.js +43566 -0
  133. package/bundled-test-harness/assets/editor.main-DkMgS1qm.js +3 -0
  134. package/bundled-test-harness/assets/email-field-test-t-80Z94b.js +74 -0
  135. package/bundled-test-harness/assets/enum-field-test-DVp-2pip.js +909 -0
  136. package/bundled-test-harness/assets/erDiagram-TEJ5UH35-CYniRkua.js +2041 -0
  137. package/bundled-test-harness/assets/error-display-test-IuRxKyLz.js +343 -0
  138. package/bundled-test-harness/assets/evaluate-module-test-DdnfbFp-.js +66 -0
  139. package/bundled-test-harness/assets/eventmodeling-FCH6USID-BO089-Cs.js +3 -0
  140. package/bundled-test-harness/assets/execute-atomic-operations-test-CgbvrBlu.js +75 -0
  141. package/bundled-test-harness/assets/externals-5atxeNU4.js +5533 -0
  142. package/bundled-test-harness/assets/extract-css-variables-test-Cii-CYfc.js +169 -0
  143. package/bundled-test-harness/assets/fallback-banner-test-CUUd-Wuu.js +227 -0
  144. package/bundled-test-harness/assets/fallback-banner-test-D4NWyahM.js +53 -0
  145. package/bundled-test-harness/assets/fallback-models-test-2MJ1jAs8.js +163 -0
  146. package/bundled-test-harness/assets/fetch-card-json-test-Cruqsq6S.js +63 -0
  147. package/bundled-test-harness/assets/fetcher-test-CkHlbTzz.js +85 -0
  148. package/bundled-test-harness/assets/field-configuration-test-CqwsGNib.js +535 -0
  149. package/bundled-test-harness/assets/field-markdown-domain-test-DPjz8i4Y.js +615 -0
  150. package/bundled-test-harness/assets/field-markdown-primitives-test-Dw07UtT7.js +362 -0
  151. package/bundled-test-harness/assets/field-markdown-specialized-test-C-t34PAw.js +527 -0
  152. package/bundled-test-harness/assets/field-path-parser-test-BeNjacPu.js +387 -0
  153. package/bundled-test-harness/assets/field-playground-test-BILTGxqr.js +902 -0
  154. package/bundled-test-harness/assets/field-support-predicates-test-Df24w0Wa.js +170 -0
  155. package/bundled-test-harness/assets/field-test-helpers-P22hxBNz.js +45 -0
  156. package/bundled-test-harness/assets/file-attachment-test-Cjg4NBeM.js +635 -0
  157. package/bundled-test-harness/assets/file-chooser-test-Cl0XujPT.js +439 -0
  158. package/bundled-test-harness/assets/file-def-live-reload-test-D4Obzi12.js +50 -0
  159. package/bundled-test-harness/assets/file-def-manager-DUgR-gjs.js +470 -0
  160. package/bundled-test-harness/assets/file-def-manager-canonicalize-test-D_LWVsvz.js +451 -0
  161. package/bundled-test-harness/assets/file-def-menu-items-test-xvsUTOK4.js +114 -0
  162. package/bundled-test-harness/assets/file-def-navigation-test-DxPceB7E.js +109 -0
  163. package/bundled-test-harness/assets/file-def-serialization-test-CpwbDb8p.js +87 -0
  164. package/bundled-test-harness/assets/file-def-test-CEnKcvW9.js +219 -0
  165. package/bundled-test-harness/assets/file-tree-test-DE2aH6iq.js +773 -0
  166. package/bundled-test-harness/assets/flac-audio-def-test-BCg7LnR6.js +138 -0
  167. package/bundled-test-harness/assets/flowDiagram-I6XJVG4X-Xv8-LIxQ.js +4883 -0
  168. package/bundled-test-harness/assets/formatted-aibot-message-test-CsxFn62P.js +366 -0
  169. package/bundled-test-harness/assets/formatted-user-message-test-DjZc8qnA.js +43 -0
  170. package/bundled-test-harness/assets/freestyle-test-QEZaZCNJ.js +17 -0
  171. package/bundled-test-harness/assets/full-reindex-realm-test-C_c2OTTD.js +103 -0
  172. package/bundled-test-harness/assets/ganttDiagram-6RSMTGT7-DmvkzS5w.js +4060 -0
  173. package/bundled-test-harness/assets/garbage-collection-test-BVuvfidI.js +373 -0
  174. package/bundled-test-harness/assets/general-test-Ydis4jEq.js +926 -0
  175. package/bundled-test-harness/assets/generate-css-variables-test-CZCmgTAO.js +88 -0
  176. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-x_szhkSN.js +67 -0
  177. package/bundled-test-harness/assets/get-available-realm-identifiers-test-DvRnwCHR.js +49 -0
  178. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-46TE-XA0.js +49 -0
  179. package/bundled-test-harness/assets/get-default-writable-realm-test-DaAkxTNh.js +56 -0
  180. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-9XEGHVOV.js +55 -0
  181. package/bundled-test-harness/assets/get-relationship-membership-state-test-BY4gk5JZ.js +1306 -0
  182. package/bundled-test-harness/assets/get-type-refs-from-filter-test-BynlX0JE.js +136 -0
  183. package/bundled-test-harness/assets/get-user-system-card-test-D98Xxn1k.js +52 -0
  184. package/bundled-test-harness/assets/gif-image-def-test-FwKGFGWw.js +161 -0
  185. package/bundled-test-harness/assets/gitGraph-WXDBUCRP-Bmn0Z_Xi.js +3 -0
  186. package/bundled-test-harness/assets/gitGraphDiagram-PVQCEYII-BAo0G82W.js +1150 -0
  187. package/bundled-test-harness/assets/gts-file-def-test-ivEk8Muv.js +99 -0
  188. package/bundled-test-harness/assets/head-format-preview-test-CNhvk724.js +156 -0
  189. package/bundled-test-harness/assets/helpers-BH4Yfo_2.js +5 -0
  190. package/bundled-test-harness/assets/host-mode-test-BRNndb2h.js +391 -0
  191. package/bundled-test-harness/assets/host-submode-test-DHd0x-6x.js +904 -0
  192. package/bundled-test-harness/assets/index-query-engine-test-7Fzc09fG.js +2548 -0
  193. package/bundled-test-harness/assets/index-writer-test-D3cL2q2N.js +1842 -0
  194. package/bundled-test-harness/assets/indexeddb-crypto-store-C09Shau-.js +49434 -0
  195. package/bundled-test-harness/assets/info-J43DQDTF-Dz5b1Xgc.js +3 -0
  196. package/bundled-test-harness/assets/infoDiagram-5YYISTIA-Dl8XvIfi.js +23 -0
  197. package/bundled-test-harness/assets/inspector-test-CVZVQdIJ.js +1776 -0
  198. package/bundled-test-harness/assets/instance-filter-matcher-test-C-4z6qUt.js +564 -0
  199. package/bundled-test-harness/assets/instantiate-card-test-eQ22Vt_m.js +104 -0
  200. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-hXPsRPMU.js +497 -0
  201. package/bundled-test-harness/assets/interact-submode-setup-D55IIVc5.js +558 -0
  202. package/bundled-test-harness/assets/interact-submode-test-BwrtFe2m.js +725 -0
  203. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-BMk7yd-D.js +101 -0
  204. package/bundled-test-harness/assets/invite-user-to-room-test-B5B0umJQ.js +67 -0
  205. package/bundled-test-harness/assets/ishikawaDiagram-YF4QCWOH-BrO7NAng.js +1009 -0
  206. package/bundled-test-harness/assets/isolated-render-test-DX1wdHoS.js +51 -0
  207. package/bundled-test-harness/assets/item-button-QkVr-FW0.js +203 -0
  208. package/bundled-test-harness/assets/javascript-BWNQhcCY.js +75 -0
  209. package/bundled-test-harness/assets/job-priority-header-test-CuBZloLK.js +81 -0
  210. package/bundled-test-harness/assets/journeyDiagram-JHISSGLW-B7BT66v0.js +1256 -0
  211. package/bundled-test-harness/assets/jpg-image-def-test-DEx462nY.js +430 -0
  212. package/bundled-test-harness/assets/json-file-def-test-Cray6ly6.js +92 -0
  213. package/bundled-test-harness/assets/kanban-definition-UN3LZRKU-C0E5Vmr_.js +1284 -0
  214. package/bundled-test-harness/assets/last-modified-date-test-BzE25NOB.js +18 -0
  215. package/bundled-test-harness/assets/limited-set-test-NwGNoXKc.js +123 -0
  216. package/bundled-test-harness/assets/line-BbGOk93s.js +55 -0
  217. package/bundled-test-harness/assets/linear-CHTo-YQl.js +417 -0
  218. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CZdgRM1b.js +315 -0
  219. package/bundled-test-harness/assets/linksto-error-sentinel-test-DhsHO7Xs.js +236 -0
  220. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-mt-RrRta.js +303 -0
  221. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-CdGUXZsi.js +301 -0
  222. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-DOJ_6Gwf.js +258 -0
  223. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-BZC-gslF.js +194 -0
  224. package/bundled-test-harness/assets/live-prerendered-search-BSkwf5AH.js +639 -0
  225. package/bundled-test-harness/assets/live-test-DTfxZnsy.js +100 -0
  226. package/bundled-test-harness/assets/live-test-WOMYpc1I.js +2 -0
  227. package/bundled-test-harness/assets/loader-icon-error-test-F_ukQytn.js +62 -0
  228. package/bundled-test-harness/assets/loader-parallel-prefetch-test-DpNaFnhc.js +257 -0
  229. package/bundled-test-harness/assets/loader-retry-test-EQ2X0bFS.js +173 -0
  230. package/bundled-test-harness/assets/loader-test-BYkWAwc4.js +245 -0
  231. package/bundled-test-harness/assets/loading-test-jfWH_OpH.js +63 -0
  232. package/bundled-test-harness/assets/login-error-text-test-Cldr1X6h.js +51 -0
  233. package/bundled-test-harness/assets/m4a-audio-def-test-BQ1WKApD.js +185 -0
  234. package/bundled-test-harness/assets/main-ByAsLO_g.js +5 -0
  235. package/bundled-test-harness/assets/markdown-fallback-test-dtTaGP1s.js +316 -0
  236. package/bundled-test-harness/assets/markdown-file-def-test-shW9Xxd1.js +286 -0
  237. package/bundled-test-harness/assets/markdown-helpers-test-B6H7p4ay.js +183 -0
  238. package/bundled-test-harness/assets/markdown-highlighting-test-ZIrFNHRe.js +244 -0
  239. package/bundled-test-harness/assets/markdown-preview-KII3nJ2M.js +69 -0
  240. package/bundled-test-harness/assets/markdown-preview-test-De-IaUbK.js +237 -0
  241. package/bundled-test-harness/assets/marked-sync-CGSehq4u.js +2 -0
  242. package/bundled-test-harness/assets/marked-sync-DenC7QgC.js +2561 -0
  243. package/bundled-test-harness/assets/marked-sync-test-jZBr20Hq.js +146 -0
  244. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-Ax4kyAMt.js +33 -0
  245. package/bundled-test-harness/assets/mermaid-parser.core-B_3tzKUl.js +114 -0
  246. package/bundled-test-harness/assets/mermaid.core-D2hqA7Hq.js +1700 -0
  247. package/bundled-test-harness/assets/message-service-subscription-test-B42KnJ91.js +113 -0
  248. package/bundled-test-harness/assets/mindmap-definition-RKZ34NQL-IZz7Qpd0.js +1347 -0
  249. package/bundled-test-harness/assets/mock-matrix-BhFWlMMr.js +14292 -0
  250. package/bundled-test-harness/assets/mock-matrix-CrtMntcN.js +2 -0
  251. package/bundled-test-harness/assets/module-transpile-cache-test-BtWN4OiM.js +66 -0
  252. package/bundled-test-harness/assets/monaco.contribution-B1hOUP3w.js +2 -0
  253. package/bundled-test-harness/assets/monaco.contribution-DhNsYtZe.js +2 -0
  254. package/bundled-test-harness/assets/monaco.contribution-DvJDImx2.js +103 -0
  255. package/bundled-test-harness/assets/monaco.contribution-yXcOyzue.js +243 -0
  256. package/bundled-test-harness/assets/mp3-audio-def-test-D365TuA7.js +129 -0
  257. package/bundled-test-harness/assets/mutex-test-DY09HLvv.js +71 -0
  258. package/bundled-test-harness/assets/number-field-test-wYaQjnzA.js +153 -0
  259. package/bundled-test-harness/assets/ogg-audio-def-test-Dl01PP31.js +191 -0
  260. package/bundled-test-harness/assets/open-create-listing-modal-test-D8C2PUFv.js +117 -0
  261. package/bundled-test-harness/assets/open-workspace-test-DN2n8IkC.js +48 -0
  262. package/bundled-test-harness/assets/operator-mode-acceptance-test-B_hzJZo4.js +1044 -0
  263. package/bundled-test-harness/assets/operator-mode-card-catalog-test-Hrrnkdt9.js +989 -0
  264. package/bundled-test-harness/assets/operator-mode-links-test-DC6sc9TZ.js +797 -0
  265. package/bundled-test-harness/assets/operator-mode-state-service-test-Aqz9_v0U.js +122 -0
  266. package/bundled-test-harness/assets/operator-mode-test-CLgpZGEM.js +617 -0
  267. package/bundled-test-harness/assets/operator-mode-ui-test-CDRrORfC.js +985 -0
  268. package/bundled-test-harness/assets/ordinal-BIRuJQBH.js +85 -0
  269. package/bundled-test-harness/assets/overlay-menu-items-test-of24KuXp.js +316 -0
  270. package/bundled-test-harness/assets/packet-YPE3B663-hs92geQG.js +3 -0
  271. package/bundled-test-harness/assets/panel-rIdTMDfK.js +3371 -0
  272. package/bundled-test-harness/assets/past-sessions-test-ZKr4ACF0.js +321 -0
  273. package/bundled-test-harness/assets/patch-code-test-BZa-Itrt.js +203 -0
  274. package/bundled-test-harness/assets/patch-fields-test-BkaHs-zo.js +992 -0
  275. package/bundled-test-harness/assets/patch-instance-test-CRMgg52p.js +287 -0
  276. package/bundled-test-harness/assets/persist-module-inspector-view-test-CqNy2RXR.js +62 -0
  277. package/bundled-test-harness/assets/phone-number-field-test-CV6gntON.js +72 -0
  278. package/bundled-test-harness/assets/pie-LRSECV5Y-DcM5pWE3.js +3 -0
  279. package/bundled-test-harness/assets/pieDiagram-4H26LBE5-CtO8RHpU.js +253 -0
  280. package/bundled-test-harness/assets/plan-install-test-lfBTuWXU.js +417 -0
  281. package/bundled-test-harness/assets/playground-VscW9KdT.js +57 -0
  282. package/bundled-test-harness/assets/png-image-def-test-CRspcIHP.js +222 -0
  283. package/bundled-test-harness/assets/prerender-file-extract-test-D3SpxfMI.js +176 -0
  284. package/bundled-test-harness/assets/prerender-html-test-WWptGXJ0.js +615 -0
  285. package/bundled-test-harness/assets/prerender-meta-test-DwQEGN6j.js +388 -0
  286. package/bundled-test-harness/assets/prerender-module-test-BM1AOwRF.js +195 -0
  287. package/bundled-test-harness/assets/prerendered-card-search-test-BVJ8IHLe.js +708 -0
  288. package/bundled-test-harness/assets/preview-format-test-DDpiXDN_.js +103 -0
  289. package/bundled-test-harness/assets/preview-test-D2UV1C5D.js +455 -0
  290. package/bundled-test-harness/assets/published-realm-url-DUIZzAJ5.js +52 -0
  291. package/bundled-test-harness/assets/published-realm-url-test-CIgSf4Ub.js +137 -0
  292. package/bundled-test-harness/assets/qs-test-Bi679H5w.js +36 -0
  293. package/bundled-test-harness/assets/quadrantDiagram-W4KKPZXB-GOTAKsCo.js +2324 -0
  294. package/bundled-test-harness/assets/query-field-barrier-test-BlOuVxdS.js +118 -0
  295. package/bundled-test-harness/assets/query-field-error-sentinel-test-BsB76iUQ.js +202 -0
  296. package/bundled-test-harness/assets/query-field-normalization-test-B2YodJCr.js +271 -0
  297. package/bundled-test-harness/assets/query-field-schema-test-CQhJASFx.js +231 -0
  298. package/bundled-test-harness/assets/query-fields-test-CaZ19leM.js +535 -0
  299. package/bundled-test-harness/assets/queue-test-DrSip6mJ.js +216 -0
  300. package/bundled-test-harness/assets/radar-GUYGQ44K-BkAe1nkp.js +3 -0
  301. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D8yB-OL9.js +91 -0
  302. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-K3M0-lBD.js +45 -0
  303. package/bundled-test-harness/assets/read-source-test-CKlb0ORb.js +67 -0
  304. package/bundled-test-harness/assets/read-text-file-test-CJdasDDU.js +124 -0
  305. package/bundled-test-harness/assets/realm-DhUCLR5r.js +884 -0
  306. package/bundled-test-harness/assets/realm-field-test-kFgxphDI.js +101 -0
  307. package/bundled-test-harness/assets/realm-index-card-id-test-DAnMAqw4.js +18 -0
  308. package/bundled-test-harness/assets/realm-indexing-test-BQkX-Dat.js +4018 -0
  309. package/bundled-test-harness/assets/realm-paths-test-CmEi9rzu.js +33 -0
  310. package/bundled-test-harness/assets/realm-querying-test-eq3qSXLu.js +1062 -0
  311. package/bundled-test-harness/assets/realm-test-DLQAtdMt.js +2409 -0
  312. package/bundled-test-harness/assets/reasoning-test-CwTfyDlj.js +234 -0
  313. package/bundled-test-harness/assets/recent-files-test-MVIGLp8S.js +449 -0
  314. package/bundled-test-harness/assets/reindex-realm-test-BwLgJeB3.js +119 -0
  315. package/bundled-test-harness/assets/relationship-loading-state-test-B4Ca43yD.js +289 -0
  316. package/bundled-test-harness/assets/render-component-BKEihV4U.js +2 -0
  317. package/bundled-test-harness/assets/render-error-test-DWD6tfNe.js +22 -0
  318. package/bundled-test-harness/assets/render-service-test-BjuoVrUK.js +87 -0
  319. package/bundled-test-harness/assets/render-timer-stub-test-BgUY5u3X.js +84 -0
  320. package/bundled-test-harness/assets/rendered-markdown-DOP-s6fW.js +211 -0
  321. package/bundled-test-harness/assets/rendered-markdown-test-CD02UYwA.js +360 -0
  322. package/bundled-test-harness/assets/requirementDiagram-4Y6WPE33-DJIy7eR9.js +2550 -0
  323. package/bundled-test-harness/assets/rich-markdown-field-test-BJeQx1tL.js +806 -0
  324. package/bundled-test-harness/assets/room-message-test-CjD7FlPD.js +171 -0
  325. package/bundled-test-harness/assets/rust-crypto-GS0FFZ7H.js +16141 -0
  326. package/bundled-test-harness/assets/sanitize-module-list-test-gi0pcqSy.js +68 -0
  327. package/bundled-test-harness/assets/sankeyDiagram-5OEKKPKP-wBsbt1Mr.js +1357 -0
  328. package/bundled-test-harness/assets/schema-editor-test-BSqu8W3e.js +784 -0
  329. package/bundled-test-harness/assets/schema-generation-test-DVFuSsLl.js +28 -0
  330. package/bundled-test-harness/assets/scrolling-test-CpzkRiBS.js +292 -0
  331. package/bundled-test-harness/assets/search-and-choose-test-DVWX4XRb.js +156 -0
  332. package/bundled-test-harness/assets/search-cache-key-test-BMnYM4a5.js +79 -0
  333. package/bundled-test-harness/assets/search-command-test-kEfT0AO7.js +135 -0
  334. package/bundled-test-harness/assets/search-correlation-id-test-D08FtVUZ.js +101 -0
  335. package/bundled-test-harness/assets/search-data-test-CTrBEc1m.js +243 -0
  336. package/bundled-test-harness/assets/search-google-images-test-UnKG8qCp.js +168 -0
  337. package/bundled-test-harness/assets/search-in-flight-key-test-9Va-JXFz.js +79 -0
  338. package/bundled-test-harness/assets/search-test-COlO2lZi.js +847 -0
  339. package/bundled-test-harness/assets/send-ai-assistant-message-test-BPjOjt2R.js +52 -0
  340. package/bundled-test-harness/assets/send-bot-trigger-event-test-BB4lHbB_.js +56 -0
  341. package/bundled-test-harness/assets/send-request-via-proxy-test-U8frmHZA.js +333 -0
  342. package/bundled-test-harness/assets/sending-test-DjEzksEX.js +317 -0
  343. package/bundled-test-harness/assets/sequenceDiagram-3UESZ5HK-QAEjhoay.js +5551 -0
  344. package/bundled-test-harness/assets/serialization-test-DHdLriC8.js +8283 -0
  345. package/bundled-test-harness/assets/set-user-system-card-test-C8I1lDBh.js +59 -0
  346. package/bundled-test-harness/assets/setup-BkuybBki.js +769 -0
  347. package/bundled-test-harness/assets/setup-gxkWJKID.js +2 -0
  348. package/bundled-test-harness/assets/show-card-test-DHKQ6AI4.js +362 -0
  349. package/bundled-test-harness/assets/skills-test-DlMgZrPV.js +568 -0
  350. package/bundled-test-harness/assets/spec-test-s9Zj7x2E.js +1012 -0
  351. package/bundled-test-harness/assets/stateDiagram-AJRCARHV-nEhf3efZ.js +363 -0
  352. package/bundled-test-harness/assets/stateDiagram-v2-BHNVJYJU-tZz_3w-7.js +29 -0
  353. package/bundled-test-harness/assets/store-add-test-D44FWRl3.js +52 -0
  354. package/bundled-test-harness/assets/store-test-TTmNBs5v.js +1562 -0
  355. package/bundled-test-harness/assets/summarize-session-test-DHAuNb5K.js +169 -0
  356. package/bundled-test-harness/assets/svg-image-def-test-C2_GGzR6.js +164 -0
  357. package/bundled-test-harness/assets/switch-submode-test-CfGaoxVe.js +168 -0
  358. package/bundled-test-harness/assets/test-realm-service-worker-C21o7yvW.js +73 -0
  359. package/bundled-test-harness/assets/tests-BSt6h9iC.js +2771 -0
  360. package/bundled-test-harness/assets/text-file-def-test-CR4QO7e_.js +93 -0
  361. package/bundled-test-harness/assets/text-input-validator-test-DYS3mFj9.js +155 -0
  362. package/bundled-test-harness/assets/text-suggestion-test-GUxJ7WtF.js +339 -0
  363. package/bundled-test-harness/assets/theme-card-test-Ba2KqFB8.js +573 -0
  364. package/bundled-test-harness/assets/timeline-definition-PNZ67QCA-BQYyTIei.js +1545 -0
  365. package/bundled-test-harness/assets/transform-cards-test-DyA8eCom.js +341 -0
  366. package/bundled-test-harness/assets/treeView-BLDUP644-Z4ezSvef.js +3 -0
  367. package/bundled-test-harness/assets/treemap-LRROVOQU-Bf5rk_He.js +3 -0
  368. package/bundled-test-harness/assets/ts-file-def-test-Cxnc6H74.js +90 -0
  369. package/bundled-test-harness/assets/tsMode-oJEHe-CR.js +968 -0
  370. package/bundled-test-harness/assets/typescript-DLbb7q56.js +2 -0
  371. package/bundled-test-harness/assets/update-room-skills-test-B7VLHU3-.js +197 -0
  372. package/bundled-test-harness/assets/url-test-w-69Zycf.js +103 -0
  373. package/bundled-test-harness/assets/use-ai-assistant-test-DJkFz7_b.js +330 -0
  374. package/bundled-test-harness/assets/validate-realm-test-BioLutB8.js +53 -0
  375. package/bundled-test-harness/assets/vennDiagram-CIIHVFJN-9eLwsQET.js +2833 -0
  376. package/bundled-test-harness/assets/wardley-L42UT6IY-qNP5_917.js +3 -0
  377. package/bundled-test-harness/assets/wardleyDiagram-YWT4CUSO-DZhEm4N4.js +872 -0
  378. package/bundled-test-harness/assets/wav-audio-def-test-DqsTEBw8.js +155 -0
  379. package/bundled-test-harness/assets/webp-image-def-test-23wOLPMu.js +225 -0
  380. package/bundled-test-harness/assets/workspace-chooser-delete-test-Q6S_nGDT.js +189 -0
  381. package/bundled-test-harness/assets/workspace-chooser-test-CzsvY1v_.js +235 -0
  382. package/bundled-test-harness/assets/workspace-delete-multiple-test-BNFHkJpQ.js +213 -0
  383. package/bundled-test-harness/assets/workspace-delete-summary-test-DLzNdjvC.js +63 -0
  384. package/bundled-test-harness/assets/write-binary-file-test-PHHt9fVI.js +100 -0
  385. package/bundled-test-harness/assets/write-text-file-test-DuHe6tR5.js +172 -0
  386. package/bundled-test-harness/assets/xychartDiagram-2RQKCTM6-bflHQbEv.js +2551 -0
  387. package/bundled-test-harness/index.html +24 -23
  388. package/bundled-test-harness/tests/index.html +31 -30
  389. package/bundled-types/base/command.d.ts +48 -0
  390. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +17 -26
  391. package/bundled-types/host-app/lib/published-realm-url.ts +135 -0
  392. package/package.json +3 -3
  393. package/src/build-program.ts +12 -12
  394. package/src/commands/consolidate-workspaces.ts +1 -1
  395. package/src/commands/file/delete.ts +4 -4
  396. package/src/commands/file/index.ts +6 -6
  397. package/src/commands/file/lint.ts +4 -4
  398. package/src/commands/file/list.ts +3 -3
  399. package/src/commands/file/read.ts +3 -3
  400. package/src/commands/file/touch.ts +6 -6
  401. package/src/commands/file/write.ts +3 -3
  402. package/src/commands/lint.ts +6 -6
  403. package/src/commands/parse.ts +6 -6
  404. package/src/commands/profile.ts +4 -4
  405. package/src/commands/read-transpiled.ts +6 -3
  406. package/src/commands/realm/cancel-indexing.ts +3 -3
  407. package/src/commands/realm/create.ts +2 -2
  408. package/src/commands/realm/history.ts +4 -4
  409. package/src/commands/realm/index.ts +15 -15
  410. package/src/commands/realm/indexing-errors.ts +3 -3
  411. package/src/commands/realm/list.ts +2 -2
  412. package/src/commands/realm/milestone.ts +4 -4
  413. package/src/commands/realm/publish.ts +4 -4
  414. package/src/commands/realm/pull.ts +6 -6
  415. package/src/commands/realm/push.ts +7 -7
  416. package/src/commands/realm/remove.ts +3 -3
  417. package/src/commands/realm/status.ts +8 -8
  418. package/src/commands/realm/sync.ts +9 -9
  419. package/src/commands/realm/unpublish.ts +3 -3
  420. package/src/commands/realm/wait-for-ready.ts +2 -2
  421. package/src/commands/realm/watch/index.ts +2 -2
  422. package/src/commands/realm/watch/start.ts +13 -10
  423. package/src/commands/realm/watch/stop.ts +2 -2
  424. package/src/commands/run-command.ts +6 -3
  425. package/src/commands/search.ts +3 -3
  426. package/src/commands/test.ts +5 -5
  427. package/src/index.ts +2 -2
  428. package/src/lib/auth-resolver.ts +3 -3
  429. package/src/lib/boxel-cli-client.ts +18 -15
  430. package/src/lib/checkpoint-manager.ts +1 -1
  431. package/src/lib/find-checkpoint.ts +1 -1
  432. package/src/lib/profile-manager.ts +4 -4
  433. package/src/lib/realm-local-paths.ts +1 -1
  434. package/src/lib/realm-sync-base.ts +1 -1
  435. package/src/lib/seed-auth.ts +1 -1
  436. package/src/lib/sync-logic.ts +1 -1
  437. package/src/lib/watch-process-registry.ts +1 -1
  438. package/bundled-test-harness/assets/adapter-C8oDflNN.js +0 -2
  439. package/bundled-test-harness/assets/add-field-to-card-definition-command-test-Cs670972.js +0 -111
  440. package/bundled-test-harness/assets/add-workspace-test-BviDAUBK.js +0 -71
  441. package/bundled-test-harness/assets/ai-assistant-B5fp2iOz.js +0 -129
  442. package/bundled-test-harness/assets/ai-assistant-panel-service-test-NpHZzZAz.js +0 -95
  443. package/bundled-test-harness/assets/ai-assistant-test-jPV29jEw.js +0 -2137
  444. package/bundled-test-harness/assets/ai-function-generation-test-QRPcE9tQ.js +0 -996
  445. package/bundled-test-harness/assets/ai-module-creation-test-DyuyfnkY.js +0 -150
  446. package/bundled-test-harness/assets/aibot-message-Dwxp5hTW.js +0 -1185
  447. package/bundled-test-harness/assets/amd-transpile-test-CF7Lkbif.js +0 -425
  448. package/bundled-test-harness/assets/app-CgP2IpNG.js +0 -21464
  449. package/bundled-test-harness/assets/apply-boxel-formatting-test-BXyZ3z0I.js +0 -134
  450. package/bundled-test-harness/assets/apply-markdown-edit-test-C6bcaj3a.js +0 -230
  451. package/bundled-test-harness/assets/apply-search-replace-block-test-BSwC4J9g.js +0 -630
  452. package/bundled-test-harness/assets/arc-DNRb_8LA.js +0 -199
  453. package/bundled-test-harness/assets/architecture-7EHR7CIX-BtVh_LBJ.js +0 -3
  454. package/bundled-test-harness/assets/architectureDiagram-3BPJPVTR-D9UYbaKj.js +0 -7400
  455. package/bundled-test-harness/assets/auth-error-guard-test-Bvu8E7Wy.js +0 -30
  456. package/bundled-test-harness/assets/auth-service-worker-test-CC6DzdfK.js +0 -538
  457. package/bundled-test-harness/assets/authed-fetch-test-CfF-IBHI.js +0 -75
  458. package/bundled-test-harness/assets/avif-image-def-test-B9L2z0nR.js +0 -186
  459. package/bundled-test-harness/assets/base-realm-43wjttN2.js +0 -140
  460. package/bundled-test-harness/assets/base-realm-CJ5x9iyX.js +0 -2
  461. package/bundled-test-harness/assets/basic-test-B64a5zCK.js +0 -128
  462. package/bundled-test-harness/assets/bfm-card-references-test-cLQVLpth.js +0 -577
  463. package/bundled-test-harness/assets/binary-upload-dedupe-test-By7Y1iQ3.js +0 -308
  464. package/bundled-test-harness/assets/blockDiagram-GPEHLZMM-LgOorG2O.js +0 -4355
  465. package/bundled-test-harness/assets/bot-registration-test-DOjf0P1R.js +0 -99
  466. package/bundled-test-harness/assets/box-test-Cd1-RcXg.js +0 -51
  467. package/bundled-test-harness/assets/brand-guide-attachments-test-DxRqP8fo.js +0 -87
  468. package/bundled-test-harness/assets/brand-guide-custom-css-test-DBpZiHzJ.js +0 -135
  469. package/bundled-test-harness/assets/brand-logo-mark-field-test-61k4e5Om.js +0 -87
  470. package/bundled-test-harness/assets/broken-link-template-test-A1P4flQ5.js +0 -345
  471. package/bundled-test-harness/assets/browser-index-Bzhpucwe.js +0 -3
  472. package/bundled-test-harness/assets/browser-index-D0mzSWYV.js +0 -8802
  473. package/bundled-test-harness/assets/c4Diagram-AAUBKEIU-1iq94vGa.js +0 -3764
  474. package/bundled-test-harness/assets/cached-fetch-test-ByQ-5OQI.js +0 -93
  475. package/bundled-test-harness/assets/can-read-realm-test-VFLHJdEv.js +0 -58
  476. package/bundled-test-harness/assets/cancel-indexing-job-test-n3Os4ZaX.js +0 -71
  477. package/bundled-test-harness/assets/card-api-test-DvNfLv3V.js +0 -196
  478. package/bundled-test-harness/assets/card-basics-test-CKzZuFdw.js +0 -4895
  479. package/bundled-test-harness/assets/card-catalog-test-JFvkVHED.js +0 -377
  480. package/bundled-test-harness/assets/card-copy-test-iwrFA72s.js +0 -777
  481. package/bundled-test-harness/assets/card-def-field-def-relationships-test-D5s2RH5t.js +0 -560
  482. package/bundled-test-harness/assets/card-def-menu-items-test-XcmkT4NF.js +0 -182
  483. package/bundled-test-harness/assets/card-delete-test-jtAOHk1Y.js +0 -412
  484. package/bundled-test-harness/assets/card-directory-name-test-veQEp5FJ.js +0 -71
  485. package/bundled-test-harness/assets/card-playground-test-P7Ed0tO4.js +0 -1497
  486. package/bundled-test-harness/assets/card-prerender-DXG8cQEv.js +0 -12661
  487. package/bundled-test-harness/assets/card-search-adorn-test-BX0-IJHB.js +0 -128
  488. package/bundled-test-harness/assets/card-search-query-builder-test-D01uixke.js +0 -88
  489. package/bundled-test-harness/assets/card-search-selection-menu-test-DMTeZFmW.js +0 -108
  490. package/bundled-test-harness/assets/channel-BvoW_rbI.js +0 -8
  491. package/bundled-test-harness/assets/check-correctness-test-D7QB1GTo.js +0 -252
  492. package/bundled-test-harness/assets/chunk-2J33WTMH-BbxCvOlt.js +0 -31
  493. package/bundled-test-harness/assets/chunk-3OPIFGDE-DHY3s0oT.js +0 -5548
  494. package/bundled-test-harness/assets/chunk-4BX2VUAB-CRivrLQ6.js +0 -11
  495. package/bundled-test-harness/assets/chunk-4EGX6M5U-qWzlMeqd.js +0 -44
  496. package/bundled-test-harness/assets/chunk-55IACEB6-DOl6NECJ.js +0 -10
  497. package/bundled-test-harness/assets/chunk-5DO6E6H7-scwNnzDb.js +0 -27
  498. package/bundled-test-harness/assets/chunk-5ZQYHXKU-BeETnugr.js +0 -1767
  499. package/bundled-test-harness/assets/chunk-727SXJPM-BlycTxFE.js +0 -3877
  500. package/bundled-test-harness/assets/chunk-AQP2D5EJ-BE3Clw-g.js +0 -2622
  501. package/bundled-test-harness/assets/chunk-BR22UD5L-BTPKlhWA.js +0 -85
  502. package/bundled-test-harness/assets/chunk-BSJP7CBP-BIhtUfvc.js +0 -114
  503. package/bundled-test-harness/assets/chunk-CSCIHK7Q-DnRAp6Bv.js +0 -6144
  504. package/bundled-test-harness/assets/chunk-FHYWG6QK-DpIXIGDC.js +0 -27
  505. package/bundled-test-harness/assets/chunk-FMBD7UC4-B36w3LIg.js +0 -20
  506. package/bundled-test-harness/assets/chunk-KSCS5N6A-gbz9p9BU.js +0 -871
  507. package/bundled-test-harness/assets/chunk-L5ZTLDWV-HNfH9U8K.js +0 -43
  508. package/bundled-test-harness/assets/chunk-LZXEDZCA-CbKHJfzx.js +0 -65
  509. package/bundled-test-harness/assets/chunk-MPE355IW-BGVbCTZH.js +0 -27
  510. package/bundled-test-harness/assets/chunk-MZUSXYTE-DoCjuxcJ.js +0 -36
  511. package/bundled-test-harness/assets/chunk-N66VUXT2-BX17MI-i.js +0 -70
  512. package/bundled-test-harness/assets/chunk-ND2GUHAM-IpeiJZYz.js +0 -93
  513. package/bundled-test-harness/assets/chunk-NZK2D7GU-CH-Gg7qc.js +0 -89
  514. package/bundled-test-harness/assets/chunk-O5CBEL6O-D2JbLgI8.js +0 -2395
  515. package/bundled-test-harness/assets/chunk-PUPMXCY4-DS4ZxM2V.js +0 -27
  516. package/bundled-test-harness/assets/chunk-QZHKN3VN-WLHeRUJ3.js +0 -20
  517. package/bundled-test-harness/assets/chunk-UIBZB4QT-DNIJBpkq.js +0 -27
  518. package/bundled-test-harness/assets/chunk-WCWK7LTN-CqRJ3WOy.js +0 -36
  519. package/bundled-test-harness/assets/chunk-WU5MYG2G-CtItCLbE.js +0 -12
  520. package/bundled-test-harness/assets/chunk-XPW4576I-D2Q7Qo8n.js +0 -2341
  521. package/bundled-test-harness/assets/classDiagram-4FO5ZUOK-CnNFReKQ.js +0 -31
  522. package/bundled-test-harness/assets/classDiagram-v2-Q7XG4LA2-BlhpbohY.js +0 -31
  523. package/bundled-test-harness/assets/code-equality-assertion-C-2g5YGf.js +0 -474
  524. package/bundled-test-harness/assets/code-patches-test-DaV4Mon_.js +0 -1128
  525. package/bundled-test-harness/assets/code-patching-test-CcbWlImN.js +0 -114
  526. package/bundled-test-harness/assets/code-ref-test-8Yj8gbww.js +0 -138
  527. package/bundled-test-harness/assets/code-semantics-service-test-C3srTfDz.js +0 -65
  528. package/bundled-test-harness/assets/code-submode-test-BUhjvWtB.js +0 -1762
  529. package/bundled-test-harness/assets/codeblocks-test-3zAp0_GA.js +0 -492
  530. package/bundled-test-harness/assets/codemirror-context-C7KmSAyy.js +0 -2
  531. package/bundled-test-harness/assets/codemirror-editor-test-WojU4k2h.js +0 -1176
  532. package/bundled-test-harness/assets/color-field-test-yESUakoE.js +0 -213
  533. package/bundled-test-harness/assets/command-definitions-test-UsXsAhn7.js +0 -72
  534. package/bundled-test-harness/assets/commands-CBDBujm_.js +0 -1379
  535. package/bundled-test-harness/assets/commands-calling-test-DJTl0EbL.js +0 -200
  536. package/bundled-test-harness/assets/commands-test-DW2gupNS.js +0 -1041
  537. package/bundled-test-harness/assets/commands-test-DjLnuojW.js +0 -1145
  538. package/bundled-test-harness/assets/computed-test-0n5g8Ez5.js +0 -882
  539. package/bundled-test-harness/assets/container-D8y7fmir.js +0 -14602
  540. package/bundled-test-harness/assets/convert-to-class-name-test-DSIflIV2.js +0 -17
  541. package/bundled-test-harness/assets/copy-and-edit-test-BuK1ZHr-.js +0 -291
  542. package/bundled-test-harness/assets/copy-card-test-DnDC4_7J.js +0 -156
  543. package/bundled-test-harness/assets/copy-file-to-realm-test-CFd_3Iff.js +0 -99
  544. package/bundled-test-harness/assets/copy-source-test-38yUGJor.js +0 -56
  545. package/bundled-test-harness/assets/cose-bilkent-S5V4N54A-DXA1S87S.js +0 -4275
  546. package/bundled-test-harness/assets/create-file-test-B2oem0-V.js +0 -963
  547. package/bundled-test-harness/assets/create-file-test-BHk00RtD.js +0 -397
  548. package/bundled-test-harness/assets/create-listing-modal-test-L-71-Uo2.js +0 -194
  549. package/bundled-test-harness/assets/create-listing-pr-request-CZaLsHhE.js +0 -64
  550. package/bundled-test-harness/assets/create-listing-pr-request-test-OGzk4Q2E.js +0 -117
  551. package/bundled-test-harness/assets/create-spec-test-BsM7VKuH.js +0 -239
  552. package/bundled-test-harness/assets/csv-file-def-test-BhJalhE-.js +0 -101
  553. package/bundled-test-harness/assets/dagre-BIk_r1iU.js +0 -4195
  554. package/bundled-test-harness/assets/dagre-BM42HDAG-FaUWeGOj.js +0 -606
  555. package/bundled-test-harness/assets/date-time-fields-test-Cs5T6Xk1.js +0 -322
  556. package/bundled-test-harness/assets/debug-message-test-WlHe7pJF.js +0 -119
  557. package/bundled-test-harness/assets/diagram-2AECGRRQ-DLve-IVM.js +0 -279
  558. package/bundled-test-harness/assets/diagram-5GNKFQAL-CJG1RTLk.js +0 -142
  559. package/bundled-test-harness/assets/diagram-KO2AKTUF-DYGDq3dD.js +0 -551
  560. package/bundled-test-harness/assets/diagram-LMA3HP47-BNRYdpMl.js +0 -184
  561. package/bundled-test-harness/assets/diagram-OG6HWLK6-BlJH5g83.js +0 -857
  562. package/bundled-test-harness/assets/diffing-test-DO54USSm.js +0 -210
  563. package/bundled-test-harness/assets/dist-BDRmXkWl.js +0 -232
  564. package/bundled-test-harness/assets/dist-BfNSLd0O.js +0 -105
  565. package/bundled-test-harness/assets/dist-BoireClP.js +0 -2
  566. package/bundled-test-harness/assets/editor-test-DChC9LuR.js +0 -551
  567. package/bundled-test-harness/assets/editor.main-BiohyrHK.js +0 -3
  568. package/bundled-test-harness/assets/editor.main-CMU_0pR1.js +0 -43566
  569. package/bundled-test-harness/assets/email-field-test-DWIFSfZ-.js +0 -74
  570. package/bundled-test-harness/assets/enum-field-test-BUc6l4us.js +0 -909
  571. package/bundled-test-harness/assets/erDiagram-TEJ5UH35-pOJ2novh.js +0 -2041
  572. package/bundled-test-harness/assets/error-display-test-CHSE6h6Z.js +0 -343
  573. package/bundled-test-harness/assets/evaluate-module-test-Caa5n0B9.js +0 -66
  574. package/bundled-test-harness/assets/eventmodeling-FCH6USID-B6XXU7R3.js +0 -3
  575. package/bundled-test-harness/assets/execute-atomic-operations-test-CT060oDk.js +0 -75
  576. package/bundled-test-harness/assets/externals-Do1fVZ4j.js +0 -5533
  577. package/bundled-test-harness/assets/extract-css-variables-test-DzjAsMgg.js +0 -169
  578. package/bundled-test-harness/assets/fallback-banner-test-CmxysrDn.js +0 -227
  579. package/bundled-test-harness/assets/fallback-banner-test-DJ4cO8PB.js +0 -53
  580. package/bundled-test-harness/assets/fallback-models-test-r5upJFeA.js +0 -163
  581. package/bundled-test-harness/assets/fetch-card-json-test-Di1wmvy5.js +0 -63
  582. package/bundled-test-harness/assets/fetcher-test-DjzNl_7F.js +0 -85
  583. package/bundled-test-harness/assets/field-configuration-test-C3vr-HhG.js +0 -535
  584. package/bundled-test-harness/assets/field-markdown-domain-test-DG2U4qIm.js +0 -615
  585. package/bundled-test-harness/assets/field-markdown-primitives-test-Bay2v8nT.js +0 -362
  586. package/bundled-test-harness/assets/field-markdown-specialized-test-Bl0Sl4sc.js +0 -527
  587. package/bundled-test-harness/assets/field-path-parser-test-bxxwUjcm.js +0 -387
  588. package/bundled-test-harness/assets/field-playground-test-Bcjfws4m.js +0 -902
  589. package/bundled-test-harness/assets/field-support-predicates-test-DYTqOGvv.js +0 -170
  590. package/bundled-test-harness/assets/field-test-helpers-DYSfSGdh.js +0 -45
  591. package/bundled-test-harness/assets/file-attachment-test-6ypDRDS7.js +0 -635
  592. package/bundled-test-harness/assets/file-chooser-test-mtmcHTFP.js +0 -439
  593. package/bundled-test-harness/assets/file-def-live-reload-test-CX1-lOv6.js +0 -50
  594. package/bundled-test-harness/assets/file-def-manager-DNHII2oj.js +0 -470
  595. package/bundled-test-harness/assets/file-def-manager-canonicalize-test-i_7UVakF.js +0 -451
  596. package/bundled-test-harness/assets/file-def-menu-items-test-Dw458iku.js +0 -114
  597. package/bundled-test-harness/assets/file-def-navigation-test-B3Ztr1Rd.js +0 -109
  598. package/bundled-test-harness/assets/file-def-serialization-test-C_gV8AkU.js +0 -87
  599. package/bundled-test-harness/assets/file-def-test-vXXJmtxX.js +0 -219
  600. package/bundled-test-harness/assets/file-tree-test-BJCiw9jm.js +0 -773
  601. package/bundled-test-harness/assets/flac-audio-def-test-BX3SE1vW.js +0 -138
  602. package/bundled-test-harness/assets/flowDiagram-I6XJVG4X-7Q5ROn4X.js +0 -4883
  603. package/bundled-test-harness/assets/formatted-aibot-message-test-DyqUz2nt.js +0 -366
  604. package/bundled-test-harness/assets/formatted-user-message-test-aqAzqvBP.js +0 -43
  605. package/bundled-test-harness/assets/freestyle-test-CLRrZkAE.js +0 -17
  606. package/bundled-test-harness/assets/full-reindex-realm-test-ClqPVQ0c.js +0 -103
  607. package/bundled-test-harness/assets/ganttDiagram-6RSMTGT7-BkDoIAAE.js +0 -4060
  608. package/bundled-test-harness/assets/garbage-collection-test-Ba2dD3qS.js +0 -373
  609. package/bundled-test-harness/assets/general-test-D0zhs14K.js +0 -926
  610. package/bundled-test-harness/assets/generate-css-variables-test-CKrXSlHs.js +0 -88
  611. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-fSAdGJeT.js +0 -67
  612. package/bundled-test-harness/assets/get-available-realm-identifiers-test-BXMUW65I.js +0 -49
  613. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-DKEq6Zcq.js +0 -49
  614. package/bundled-test-harness/assets/get-default-writable-realm-test-Dp4nBIRP.js +0 -56
  615. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-DYNnMgD-.js +0 -55
  616. package/bundled-test-harness/assets/get-relationship-membership-state-test-k9EUNWeq.js +0 -1306
  617. package/bundled-test-harness/assets/get-type-refs-from-filter-test-BPuivF-v.js +0 -136
  618. package/bundled-test-harness/assets/get-user-system-card-test-DSHv00O7.js +0 -52
  619. package/bundled-test-harness/assets/gif-image-def-test-LuDSr5Kz.js +0 -161
  620. package/bundled-test-harness/assets/gitGraph-WXDBUCRP-BrG_LYEh.js +0 -3
  621. package/bundled-test-harness/assets/gitGraphDiagram-PVQCEYII-QJjQcX4J.js +0 -1150
  622. package/bundled-test-harness/assets/gts-file-def-test-bS3ML062.js +0 -99
  623. package/bundled-test-harness/assets/head-format-preview-test-B8IPh71E.js +0 -156
  624. package/bundled-test-harness/assets/helpers-wSIq-bau.js +0 -5
  625. package/bundled-test-harness/assets/host-mode-test-D44nXoQZ.js +0 -391
  626. package/bundled-test-harness/assets/host-submode-test-CefkXg9F.js +0 -904
  627. package/bundled-test-harness/assets/index-query-engine-test-DJnDqmfK.js +0 -2548
  628. package/bundled-test-harness/assets/index-writer-test-BcrCMj37.js +0 -1842
  629. package/bundled-test-harness/assets/indexeddb-crypto-store-RTTNdynf.js +0 -49434
  630. package/bundled-test-harness/assets/info-J43DQDTF-DhDzvz9k.js +0 -3
  631. package/bundled-test-harness/assets/infoDiagram-5YYISTIA-8TmRFIRz.js +0 -23
  632. package/bundled-test-harness/assets/inspector-test-D4iMBlbL.js +0 -1776
  633. package/bundled-test-harness/assets/instance-filter-matcher-test-CYT6N3hN.js +0 -564
  634. package/bundled-test-harness/assets/instantiate-card-test-j1JS5lDe.js +0 -104
  635. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-B-aXzOh6.js +0 -497
  636. package/bundled-test-harness/assets/interact-submode-setup-VMwOUl3u.js +0 -558
  637. package/bundled-test-harness/assets/interact-submode-test-D5lNNXdq.js +0 -725
  638. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-71Ze8eGV.js +0 -101
  639. package/bundled-test-harness/assets/invite-user-to-room-test-UfjsvwVp.js +0 -67
  640. package/bundled-test-harness/assets/ishikawaDiagram-YF4QCWOH-7UALIGwM.js +0 -1009
  641. package/bundled-test-harness/assets/isolated-render-test-C2IL-Fz3.js +0 -51
  642. package/bundled-test-harness/assets/item-button-6g7XYj56.js +0 -203
  643. package/bundled-test-harness/assets/javascript-BwLQ7_Nc.js +0 -75
  644. package/bundled-test-harness/assets/job-priority-header-test-C3FfKLPP.js +0 -81
  645. package/bundled-test-harness/assets/journeyDiagram-JHISSGLW-t4gEZYup.js +0 -1256
  646. package/bundled-test-harness/assets/jpg-image-def-test-BTBk9lk5.js +0 -430
  647. package/bundled-test-harness/assets/json-file-def-test-BpU_Eidn.js +0 -92
  648. package/bundled-test-harness/assets/kanban-definition-UN3LZRKU-C_KHB3_r.js +0 -1284
  649. package/bundled-test-harness/assets/last-modified-date-test-fE7IP0q0.js +0 -18
  650. package/bundled-test-harness/assets/limited-set-test-uu2vX1Sv.js +0 -123
  651. package/bundled-test-harness/assets/line-BiZHXOjs.js +0 -55
  652. package/bundled-test-harness/assets/linear-DUaMMmmA.js +0 -417
  653. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-qZeqQ1gt.js +0 -315
  654. package/bundled-test-harness/assets/linksto-error-sentinel-test-BaV3I8Xx.js +0 -236
  655. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-BvJi1vCb.js +0 -303
  656. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-CK60Cugk.js +0 -301
  657. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-BWxdEO9D.js +0 -258
  658. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CIsLhqR2.js +0 -194
  659. package/bundled-test-harness/assets/live-prerendered-search-jZe3I16p.js +0 -639
  660. package/bundled-test-harness/assets/live-test-CF_R5WGr.js +0 -2
  661. package/bundled-test-harness/assets/live-test-jO7lXuyB.js +0 -100
  662. package/bundled-test-harness/assets/loader-icon-error-test-N4JYZuTx.js +0 -62
  663. package/bundled-test-harness/assets/loader-parallel-prefetch-test-DteeG7mU.js +0 -257
  664. package/bundled-test-harness/assets/loader-retry-test-DYVgpS_I.js +0 -173
  665. package/bundled-test-harness/assets/loader-test-DLI8JIx-.js +0 -245
  666. package/bundled-test-harness/assets/loading-test-D4ZBtRYf.js +0 -63
  667. package/bundled-test-harness/assets/login-error-text-test-Dcq7q3EY.js +0 -51
  668. package/bundled-test-harness/assets/m4a-audio-def-test-BKqGO-CW.js +0 -185
  669. package/bundled-test-harness/assets/main-BjBdsiQT.js +0 -5
  670. package/bundled-test-harness/assets/markdown-fallback-test-BBj80dZZ.js +0 -316
  671. package/bundled-test-harness/assets/markdown-file-def-test-BnMF5rQF.js +0 -286
  672. package/bundled-test-harness/assets/markdown-helpers-test-DnuuSLfS.js +0 -183
  673. package/bundled-test-harness/assets/markdown-highlighting-test-CWRp2Rce.js +0 -244
  674. package/bundled-test-harness/assets/markdown-preview-test-Bf5OqKGf.js +0 -237
  675. package/bundled-test-harness/assets/markdown-preview-yYHtwNeI.js +0 -69
  676. package/bundled-test-harness/assets/marked-sync-2EfimW4i.js +0 -2
  677. package/bundled-test-harness/assets/marked-sync-DZOVFLjK.js +0 -2561
  678. package/bundled-test-harness/assets/marked-sync-test-BaaYbZNF.js +0 -146
  679. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-CdEy3ASW.js +0 -33
  680. package/bundled-test-harness/assets/mermaid-parser.core-CKNAdXJW.js +0 -114
  681. package/bundled-test-harness/assets/mermaid.core-C0mfwy8A.js +0 -1700
  682. package/bundled-test-harness/assets/message-service-subscription-test-pGz_7rz3.js +0 -113
  683. package/bundled-test-harness/assets/mindmap-definition-RKZ34NQL-ClcHxkdY.js +0 -1347
  684. package/bundled-test-harness/assets/mock-matrix-D7JHfFtT.js +0 -2
  685. package/bundled-test-harness/assets/mock-matrix-DqDbNhEj.js +0 -14292
  686. package/bundled-test-harness/assets/module-transpile-cache-test-D0M-fPxs.js +0 -66
  687. package/bundled-test-harness/assets/monaco.contribution-BEs3qwfd.js +0 -103
  688. package/bundled-test-harness/assets/monaco.contribution-Dpx8UiPl.js +0 -2
  689. package/bundled-test-harness/assets/monaco.contribution-RF_qxJYG.js +0 -2
  690. package/bundled-test-harness/assets/monaco.contribution-jPVrF29f.js +0 -243
  691. package/bundled-test-harness/assets/mp3-audio-def-test-CxeRk1bl.js +0 -129
  692. package/bundled-test-harness/assets/mutex-test-D1xyxTj2.js +0 -71
  693. package/bundled-test-harness/assets/number-field-test-gjAGDy6P.js +0 -153
  694. package/bundled-test-harness/assets/ogg-audio-def-test-B6Ww3Ixr.js +0 -191
  695. package/bundled-test-harness/assets/open-create-listing-modal-test-uN58T3rI.js +0 -117
  696. package/bundled-test-harness/assets/open-workspace-test-DXVsvBFJ.js +0 -48
  697. package/bundled-test-harness/assets/operator-mode-acceptance-test-BxIq2xSS.js +0 -1044
  698. package/bundled-test-harness/assets/operator-mode-card-catalog-test-xFYx9_ng.js +0 -989
  699. package/bundled-test-harness/assets/operator-mode-links-test-qhXWmz-S.js +0 -797
  700. package/bundled-test-harness/assets/operator-mode-state-service-test-BdA_uvaY.js +0 -122
  701. package/bundled-test-harness/assets/operator-mode-test-D3EyTwq3.js +0 -617
  702. package/bundled-test-harness/assets/operator-mode-ui-test-CSrk6Q0A.js +0 -985
  703. package/bundled-test-harness/assets/ordinal-DO1mUmjg.js +0 -85
  704. package/bundled-test-harness/assets/overlay-menu-items-test-CuqqLsQT.js +0 -316
  705. package/bundled-test-harness/assets/packet-YPE3B663--JkMNy78.js +0 -3
  706. package/bundled-test-harness/assets/panel-C2rtbx32.js +0 -3371
  707. package/bundled-test-harness/assets/past-sessions-test-B9SCbbXz.js +0 -316
  708. package/bundled-test-harness/assets/patch-code-test-CcFr9pDb.js +0 -203
  709. package/bundled-test-harness/assets/patch-fields-test-BW1gzcJM.js +0 -992
  710. package/bundled-test-harness/assets/patch-instance-test-DKqA9gQ6.js +0 -287
  711. package/bundled-test-harness/assets/persist-module-inspector-view-test-D1eKBUkt.js +0 -62
  712. package/bundled-test-harness/assets/phone-number-field-test-D1is5RWv.js +0 -72
  713. package/bundled-test-harness/assets/pie-LRSECV5Y-BDVv8Wdy.js +0 -3
  714. package/bundled-test-harness/assets/pieDiagram-4H26LBE5-CSYI-nMz.js +0 -253
  715. package/bundled-test-harness/assets/plan-install-test-DB-PrjPR.js +0 -417
  716. package/bundled-test-harness/assets/playground-B0iQV7dU.js +0 -57
  717. package/bundled-test-harness/assets/png-image-def-test-DnOsJGs6.js +0 -222
  718. package/bundled-test-harness/assets/prerender-file-extract-test-DhOLozj2.js +0 -176
  719. package/bundled-test-harness/assets/prerender-html-test-DKVhQZA9.js +0 -615
  720. package/bundled-test-harness/assets/prerender-meta-test-CnRNyqSz.js +0 -388
  721. package/bundled-test-harness/assets/prerender-module-test-D163QcrZ.js +0 -195
  722. package/bundled-test-harness/assets/prerendered-card-search-test-DX-8yabJ.js +0 -708
  723. package/bundled-test-harness/assets/preview-format-test-H7bnpdlC.js +0 -103
  724. package/bundled-test-harness/assets/preview-test-B7u6uWJR.js +0 -455
  725. package/bundled-test-harness/assets/qs-test-COb0mre6.js +0 -36
  726. package/bundled-test-harness/assets/quadrantDiagram-W4KKPZXB-2Y2ben29.js +0 -2324
  727. package/bundled-test-harness/assets/query-field-barrier-test-Cypj-MhK.js +0 -118
  728. package/bundled-test-harness/assets/query-field-error-sentinel-test-Dnqn8TdN.js +0 -202
  729. package/bundled-test-harness/assets/query-field-normalization-test-B7D8SHBP.js +0 -271
  730. package/bundled-test-harness/assets/query-field-schema-test-DIYY3-c8.js +0 -231
  731. package/bundled-test-harness/assets/query-fields-test-k-VBF9PE.js +0 -535
  732. package/bundled-test-harness/assets/queue-test-B_74vXZE.js +0 -216
  733. package/bundled-test-harness/assets/radar-GUYGQ44K-Cn2A0VBR.js +0 -3
  734. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-SyL9F_La.js +0 -91
  735. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-nLPp49U2.js +0 -45
  736. package/bundled-test-harness/assets/read-source-test-DBELJkhN.js +0 -67
  737. package/bundled-test-harness/assets/read-text-file-test-CP1JuWlX.js +0 -124
  738. package/bundled-test-harness/assets/realm-Dr4iygv_.js +0 -884
  739. package/bundled-test-harness/assets/realm-field-test-Cice2mYk.js +0 -101
  740. package/bundled-test-harness/assets/realm-index-card-id-test-BzpozdWc.js +0 -18
  741. package/bundled-test-harness/assets/realm-indexing-test-C0YSXziR.js +0 -4018
  742. package/bundled-test-harness/assets/realm-paths-test-DV_g07rF.js +0 -33
  743. package/bundled-test-harness/assets/realm-querying-test-B526abM0.js +0 -1062
  744. package/bundled-test-harness/assets/realm-test-D8UN5X-w.js +0 -2409
  745. package/bundled-test-harness/assets/reasoning-test-ClIOvdkX.js +0 -234
  746. package/bundled-test-harness/assets/recent-files-test-C2J_dJUD.js +0 -449
  747. package/bundled-test-harness/assets/reindex-realm-test-DMphy1g6.js +0 -119
  748. package/bundled-test-harness/assets/relationship-loading-state-test-BWrZdLlZ.js +0 -289
  749. package/bundled-test-harness/assets/render-component-BII_KnyK.js +0 -2
  750. package/bundled-test-harness/assets/render-error-test-BUAJJlUi.js +0 -22
  751. package/bundled-test-harness/assets/render-service-test-BKkCjErY.js +0 -87
  752. package/bundled-test-harness/assets/render-timer-stub-test-TUDMWJ8v.js +0 -84
  753. package/bundled-test-harness/assets/rendered-markdown-ColekGTF.js +0 -211
  754. package/bundled-test-harness/assets/rendered-markdown-test-B4CWIo02.js +0 -360
  755. package/bundled-test-harness/assets/requirementDiagram-4Y6WPE33-CTICatxk.js +0 -2550
  756. package/bundled-test-harness/assets/rich-markdown-field-test-B5u6D3Nk.js +0 -806
  757. package/bundled-test-harness/assets/room-message-test-0eJSqQfu.js +0 -171
  758. package/bundled-test-harness/assets/rust-crypto-B0m3j_yZ.js +0 -16141
  759. package/bundled-test-harness/assets/sanitize-module-list-test-rH6OqjKh.js +0 -68
  760. package/bundled-test-harness/assets/sankeyDiagram-5OEKKPKP-hBIg6-LP.js +0 -1357
  761. package/bundled-test-harness/assets/schema-editor-test-DH4MLFCD.js +0 -784
  762. package/bundled-test-harness/assets/schema-generation-test-BZMkX7VA.js +0 -28
  763. package/bundled-test-harness/assets/scrolling-test-CFTyLG8X.js +0 -292
  764. package/bundled-test-harness/assets/search-and-choose-test-CcbVyp4c.js +0 -156
  765. package/bundled-test-harness/assets/search-cache-key-test-BYt46iNT.js +0 -79
  766. package/bundled-test-harness/assets/search-command-test-BRIJPr54.js +0 -135
  767. package/bundled-test-harness/assets/search-correlation-id-test-B298Tfux.js +0 -101
  768. package/bundled-test-harness/assets/search-data-test-DHV2Fd4S.js +0 -243
  769. package/bundled-test-harness/assets/search-google-images-test-CNrazllP.js +0 -168
  770. package/bundled-test-harness/assets/search-in-flight-key-test-Dy3bU2c1.js +0 -79
  771. package/bundled-test-harness/assets/search-test-DL1-gD-G.js +0 -847
  772. package/bundled-test-harness/assets/send-ai-assistant-message-test-CyEkQ5pD.js +0 -52
  773. package/bundled-test-harness/assets/send-bot-trigger-event-test-CAsK28m-.js +0 -56
  774. package/bundled-test-harness/assets/send-request-via-proxy-test-DpMlRvPv.js +0 -333
  775. package/bundled-test-harness/assets/sending-test-BOeGYcTU.js +0 -317
  776. package/bundled-test-harness/assets/sequenceDiagram-3UESZ5HK-DQMiI040.js +0 -5551
  777. package/bundled-test-harness/assets/serialization-test-gY2QQVxS.js +0 -8283
  778. package/bundled-test-harness/assets/set-user-system-card-test-BE3y5GNK.js +0 -59
  779. package/bundled-test-harness/assets/setup-B8O9JQKq.js +0 -769
  780. package/bundled-test-harness/assets/setup-BMqGUBDK.js +0 -2
  781. package/bundled-test-harness/assets/show-card-test-BfJNnWMy.js +0 -362
  782. package/bundled-test-harness/assets/skills-test-CqhnZxBi.js +0 -568
  783. package/bundled-test-harness/assets/spec-test-BUKNn_1q.js +0 -1012
  784. package/bundled-test-harness/assets/stateDiagram-AJRCARHV-BoOij2yt.js +0 -363
  785. package/bundled-test-harness/assets/stateDiagram-v2-BHNVJYJU-Dosil5p2.js +0 -29
  786. package/bundled-test-harness/assets/store-add-test-BR1M-IDR.js +0 -52
  787. package/bundled-test-harness/assets/store-test-DaqI-HRh.js +0 -1562
  788. package/bundled-test-harness/assets/summarize-session-test-BMg54JGF.js +0 -169
  789. package/bundled-test-harness/assets/svg-image-def-test-xNyIKRPV.js +0 -164
  790. package/bundled-test-harness/assets/switch-submode-test-BKvpODUD.js +0 -168
  791. package/bundled-test-harness/assets/test-realm-service-worker-DK4SmTM5.js +0 -73
  792. package/bundled-test-harness/assets/tests-x4_eRjiT.js +0 -2770
  793. package/bundled-test-harness/assets/text-file-def-test-CsXiyVfI.js +0 -93
  794. package/bundled-test-harness/assets/text-input-validator-test-D4s_laO7.js +0 -155
  795. package/bundled-test-harness/assets/text-suggestion-test-CkLf1xuS.js +0 -339
  796. package/bundled-test-harness/assets/theme-card-test-D-6L6OfD.js +0 -573
  797. package/bundled-test-harness/assets/timeline-definition-PNZ67QCA-DD2d81uJ.js +0 -1545
  798. package/bundled-test-harness/assets/transform-cards-test-CRZF2gqZ.js +0 -341
  799. package/bundled-test-harness/assets/treeView-BLDUP644-CUm8wuM-.js +0 -3
  800. package/bundled-test-harness/assets/treemap-LRROVOQU-lbLrY2PE.js +0 -3
  801. package/bundled-test-harness/assets/ts-file-def-test-CDo6ojCf.js +0 -90
  802. package/bundled-test-harness/assets/tsMode-BPQoRibc.js +0 -968
  803. package/bundled-test-harness/assets/typescript-BaU6yDhK.js +0 -2
  804. package/bundled-test-harness/assets/update-room-skills-test-BnSgVFwT.js +0 -197
  805. package/bundled-test-harness/assets/url-test-CK-HB0qu.js +0 -103
  806. package/bundled-test-harness/assets/use-ai-assistant-test-BuJXEP8H.js +0 -330
  807. package/bundled-test-harness/assets/validate-realm-test-Cx7MOtS8.js +0 -53
  808. package/bundled-test-harness/assets/vennDiagram-CIIHVFJN-DtXtzGwZ.js +0 -2833
  809. package/bundled-test-harness/assets/wardley-L42UT6IY-D8aCp_Ox.js +0 -3
  810. package/bundled-test-harness/assets/wardleyDiagram-YWT4CUSO-D-73g3bB.js +0 -872
  811. package/bundled-test-harness/assets/wav-audio-def-test-DIo2GzQL.js +0 -155
  812. package/bundled-test-harness/assets/webp-image-def-test-BQsV0_De.js +0 -225
  813. package/bundled-test-harness/assets/workspace-chooser-delete-test-peDXmnQf.js +0 -189
  814. package/bundled-test-harness/assets/workspace-chooser-test-DS2RtTEF.js +0 -235
  815. package/bundled-test-harness/assets/workspace-delete-multiple-test-DTbjRSzN.js +0 -213
  816. package/bundled-test-harness/assets/workspace-delete-summary-test-B--ink4m.js +0 -63
  817. package/bundled-test-harness/assets/write-binary-file-test-A3TQ5lFn.js +0 -100
  818. package/bundled-test-harness/assets/write-text-file-test-D_rjNDsT.js +0 -172
  819. package/bundled-test-harness/assets/xychartDiagram-2RQKCTM6-D1aoqDp-.js +0 -2551
  820. /package/bundled-test-harness/assets/{abap-CLdVBGqB.js → abap-FZAuBTMl.js} +0 -0
  821. /package/bundled-test-harness/assets/{apex-DV8eHjgQ.js → apex-CAO3qFTc.js} +0 -0
  822. /package/bundled-test-harness/assets/{array-DsDWWqmW.js → array-CRfHnEm4.js} +0 -0
  823. /package/bundled-test-harness/assets/{azcli-C4pZYsiJ.js → azcli-Bnu7jG0Y.js} +0 -0
  824. /package/bundled-test-harness/assets/{bat-DBoaeFpB.js → bat-DdE54Pqq.js} +0 -0
  825. /package/bundled-test-harness/assets/{bicep-VlrJhbeK.js → bicep-Dp4vFp3K.js} +0 -0
  826. /package/bundled-test-harness/assets/{cameligo-jyzrvLUm.js → cameligo-Cym4x98m.js} +0 -0
  827. /package/bundled-test-harness/assets/{chunk-NNHCCRGN-Be15HUz2.js → chunk-NNHCCRGN-PWOfDYpb.js} +0 -0
  828. /package/bundled-test-harness/assets/{clojure-bzahmEtz.js → clojure-B47IJ25u.js} +0 -0
  829. /package/bundled-test-harness/assets/{codemirror-context-BauLYUNt.js → codemirror-context-oJy03XqC.js} +0 -0
  830. /package/bundled-test-harness/assets/{coffee-CMADdzOH.js → coffee-CZlkBXT8.js} +0 -0
  831. /package/bundled-test-harness/assets/{cpp-CEJwzcLE.js → cpp-mX4KaA7p.js} +0 -0
  832. /package/bundled-test-harness/assets/{csharp-XYqm0UE0.js → csharp-C-OeDGwk.js} +0 -0
  833. /package/bundled-test-harness/assets/{csp-82fNWQc2.js → csp-AS2OEE8R.js} +0 -0
  834. /package/bundled-test-harness/assets/{css-B5b0ooFS.js → css-C-TQxhWe.js} +0 -0
  835. /package/bundled-test-harness/assets/{cssMode-DTKuqAkO.js → cssMode-C87GnEsk.js} +0 -0
  836. /package/bundled-test-harness/assets/{cypher-Df9GkdDY.js → cypher-T6F_0eIM.js} +0 -0
  837. /package/bundled-test-harness/assets/{cytoscape.esm-D0iwZ9Jj.js → cytoscape.esm-Bc2V-MhP.js} +0 -0
  838. /package/bundled-test-harness/assets/{dart-C4JY9dMc.js → dart-DzVesk0n.js} +0 -0
  839. /package/bundled-test-harness/assets/{defaultLocale-BtLxQtxy.js → defaultLocale-CAoL4lzt.js} +0 -0
  840. /package/bundled-test-harness/assets/{dist-D-PuK2H3.js → dist-BZ5MfZEJ.js} +0 -0
  841. /package/bundled-test-harness/assets/{dockerfile-Ck0tNttO.js → dockerfile-BH0_bQxC.js} +0 -0
  842. /package/bundled-test-harness/assets/{ecl-BpeXqJR_.js → ecl-KIxjxrJo.js} +0 -0
  843. /package/bundled-test-harness/assets/{elixir-HmBzrXaX.js → elixir-CPPdtCW1.js} +0 -0
  844. /package/bundled-test-harness/assets/{flow9-DhsfsDhH.js → flow9-Dxho7Ldf.js} +0 -0
  845. /package/bundled-test-harness/assets/{freemarker2-D3Yd6nGl.js → freemarker2-DP1aOr3_.js} +0 -0
  846. /package/bundled-test-harness/assets/{fsharp-D56OprHc.js → fsharp-ozN53Joe.js} +0 -0
  847. /package/bundled-test-harness/assets/{go-BITsFLfX.js → go-DPj6Rbqe.js} +0 -0
  848. /package/bundled-test-harness/assets/{graphlib-qkaQhadO.js → graphlib-DOITgaas.js} +0 -0
  849. /package/bundled-test-harness/assets/{graphql-CJJVsEX1.js → graphql-C8_-AnBG.js} +0 -0
  850. /package/bundled-test-harness/assets/{handlebars-Dvw6QbL7.js → handlebars-B2gYBZpU.js} +0 -0
  851. /package/bundled-test-harness/assets/{hcl-DSTZcJuq.js → hcl-r3d7BhXB.js} +0 -0
  852. /package/bundled-test-harness/assets/{helpers-D_JZYUOQ.js → helpers-CItTycq2.js} +0 -0
  853. /package/bundled-test-harness/assets/{html-Bik3qLmc.js → html-DhN1Nxr0.js} +0 -0
  854. /package/bundled-test-harness/assets/{htmlMode-DPCaR3Ab.js → htmlMode-BnBg5hCh.js} +0 -0
  855. /package/bundled-test-harness/assets/{ini-li-kC8ZU.js → ini-CzzRigmS.js} +0 -0
  856. /package/bundled-test-harness/assets/{init-Bq7IGMcH.js → init-Bd2YUhsG.js} +0 -0
  857. /package/bundled-test-harness/assets/{java-CETpuNN7.js → java-BgeDsIoV.js} +0 -0
  858. /package/bundled-test-harness/assets/{jsonMode-CZ3hOG-W.js → jsonMode-sRb0gsB8.js} +0 -0
  859. /package/bundled-test-harness/assets/{julia-hgihs1aN.js → julia-u3K1H5Ts.js} +0 -0
  860. /package/bundled-test-harness/assets/{katex-DqhsSYO4.js → katex-CHY7BUZt.js} +0 -0
  861. /package/bundled-test-harness/assets/{kotlin-CKfyb82K.js → kotlin-DfqmlJ10.js} +0 -0
  862. /package/bundled-test-harness/assets/{less-xB5yXbw8.js → less-CSzH7DPY.js} +0 -0
  863. /package/bundled-test-harness/assets/{lexon-BLwrXVrI.js → lexon-DwPTpxXt.js} +0 -0
  864. /package/bundled-test-harness/assets/{liquid-Bf2lpknJ.js → liquid-95J9g5Vk.js} +0 -0
  865. /package/bundled-test-harness/assets/{lua-Ch5i3IrF.js → lua-CGw6zbeh.js} +0 -0
  866. /package/bundled-test-harness/assets/{m3-D5tNlhaF.js → m3-BfgwloGF.js} +0 -0
  867. /package/bundled-test-harness/assets/{markdown-Dzc9uMky.js → markdown-RZRK7Mc9.js} +0 -0
  868. /package/bundled-test-harness/assets/{mdx-xsI4TJrf.js → mdx-BYD-W2sn.js} +0 -0
  869. /package/bundled-test-harness/assets/{mips-CmdzHkQm.js → mips-DAySN5Lp.js} +0 -0
  870. /package/bundled-test-harness/assets/{msdax-CAZvxB9E.js → msdax-Cy0COjTJ.js} +0 -0
  871. /package/bundled-test-harness/assets/{mysql-CyVS-z5H.js → mysql-CfGw9jyw.js} +0 -0
  872. /package/bundled-test-harness/assets/{objective-c-CCG8cTc_.js → objective-c-B4uU-8T-.js} +0 -0
  873. /package/bundled-test-harness/assets/{pascal-c8B45FOC.js → pascal-CGDuZzXi.js} +0 -0
  874. /package/bundled-test-harness/assets/{pascaligo-CCqwSqBv.js → pascaligo-eg02k4VJ.js} +0 -0
  875. /package/bundled-test-harness/assets/{path-CsS38UoK.js → path-Dxiz9G2t.js} +0 -0
  876. /package/bundled-test-harness/assets/{perl-JUICYbO2.js → perl-BiT-JJJw.js} +0 -0
  877. /package/bundled-test-harness/assets/{pgsql-aNRiL0Cg.js → pgsql-DAMjrVBF.js} +0 -0
  878. /package/bundled-test-harness/assets/{php-B0YZj_Vw.js → php-kOSUYQyc.js} +0 -0
  879. /package/bundled-test-harness/assets/{pla-D3Zb3KCn.js → pla-BShYV-HC.js} +0 -0
  880. /package/bundled-test-harness/assets/{postiats-ks1KABlA.js → postiats-9Xamd4W2.js} +0 -0
  881. /package/bundled-test-harness/assets/{powerquery-D35K_osc.js → powerquery-l2Nw525Q.js} +0 -0
  882. /package/bundled-test-harness/assets/{powershell-DXQo6KTk.js → powershell-B5rdEn86.js} +0 -0
  883. /package/bundled-test-harness/assets/{protobuf-CFDvn49_.js → protobuf-DjFcruCV.js} +0 -0
  884. /package/bundled-test-harness/assets/{pug-CGdWzJm1.js → pug-d79Nz4-Z.js} +0 -0
  885. /package/bundled-test-harness/assets/{python-BHLYjYlP.js → python-d8oxFZIM.js} +0 -0
  886. /package/bundled-test-harness/assets/{qsharp-BIq3i63T.js → qsharp-CeTlfxZW.js} +0 -0
  887. /package/bundled-test-harness/assets/{qunit-2hoQyeAZ.js → qunit-Cqwmt9Vl.js} +0 -0
  888. /package/bundled-test-harness/assets/{r-CBvzvDSA.js → r-BOu7JTro.js} +0 -0
  889. /package/bundled-test-harness/assets/{razor-JQ0RiIvo.js → razor-ZatoG_Is.js} +0 -0
  890. /package/bundled-test-harness/assets/{recent-files-cards-BQMviQb1.js → recent-files-cards-C3vIjaKb.js} +0 -0
  891. /package/bundled-test-harness/assets/{redis-BmSHTqTU.js → redis-DdXYPyQE.js} +0 -0
  892. /package/bundled-test-harness/assets/{redshift-B1NmQEH7.js → redshift-DswnW-YX.js} +0 -0
  893. /package/bundled-test-harness/assets/{render-component-g_fhz2dX.js → render-component-Bs21y6iv.js} +0 -0
  894. /package/bundled-test-harness/assets/{restructuredtext-Br9BtTbk.js → restructuredtext-C75vUmvX.js} +0 -0
  895. /package/bundled-test-harness/assets/{rough.esm-D8VnzNsL.js → rough.esm-B83ARgx6.js} +0 -0
  896. /package/bundled-test-harness/assets/{ruby-D9_-y1I3.js → ruby-D77950a-.js} +0 -0
  897. /package/bundled-test-harness/assets/{rust-1Jjr1EOs.js → rust-C_G4PKsG.js} +0 -0
  898. /package/bundled-test-harness/assets/{sb-X2JE4zEr.js → sb-Cz3P8_Gp.js} +0 -0
  899. /package/bundled-test-harness/assets/{scala-qFJERKkR.js → scala-DYqUg04P.js} +0 -0
  900. /package/bundled-test-harness/assets/{scheme-D-WJPStO.js → scheme-B31XEGu5.js} +0 -0
  901. /package/bundled-test-harness/assets/{scss-DysfZiXA.js → scss-CtvB8On5.js} +0 -0
  902. /package/bundled-test-harness/assets/{shell-C0Iu3NNJ.js → shell-C2QqpcPN.js} +0 -0
  903. /package/bundled-test-harness/assets/{solidity-Bato3Qrk.js → solidity-FHrhZFd-.js} +0 -0
  904. /package/bundled-test-harness/assets/{sophia-DI0cKdK8.js → sophia-Cxv5FOXb.js} +0 -0
  905. /package/bundled-test-harness/assets/{sparql-BTJMtwoD.js → sparql-CgGkGeQB.js} +0 -0
  906. /package/bundled-test-harness/assets/{sql-R6uHqFYU.js → sql-S6Dos2P0.js} +0 -0
  907. /package/bundled-test-harness/assets/{src-CdPyB7gY.js → src-CvuaVSsl.js} +0 -0
  908. /package/bundled-test-harness/assets/{st-CoyBvq37.js → st-Bfa7LAWp.js} +0 -0
  909. /package/bundled-test-harness/assets/{swift-Bj-haAlF.js → swift-BQD5Ef-A.js} +0 -0
  910. /package/bundled-test-harness/assets/{systemverilog-B-x1NEFI.js → systemverilog-DaNkPux4.js} +0 -0
  911. /package/bundled-test-harness/assets/{tcl-DAUdSQgz.js → tcl-gOPgCDyb.js} +0 -0
  912. /package/bundled-test-harness/assets/{test-support-BHjxBpDK.js → test-support-BEQX5x9U.js} +0 -0
  913. /package/bundled-test-harness/assets/{test-support-yKvYEh-u.js → test-support-BL4XKobD.js} +0 -0
  914. /package/bundled-test-harness/assets/{twig-B0sJ-GzS.js → twig-Bk4gPn5b.js} +0 -0
  915. /package/bundled-test-harness/assets/{typescript-DTMIM5Gl.js → typescript-pPYlxWzr.js} +0 -0
  916. /package/bundled-test-harness/assets/{typespec-6yo9VQxY.js → typespec-D9Zz743B.js} +0 -0
  917. /package/bundled-test-harness/assets/{vb-Bh2IfdtJ.js → vb-ziqHIsJV.js} +0 -0
  918. /package/bundled-test-harness/assets/{view-card-demo-U_AOj-RK.js → view-card-demo-CSIVYD3T.js} +0 -0
  919. /package/bundled-test-harness/assets/{wgsl-DsvJnCCt.js → wgsl-BXiwkiJL.js} +0 -0
  920. /package/bundled-test-harness/assets/{xml-CisPXcjD.js → xml-a_tUOik-.js} +0 -0
  921. /package/bundled-test-harness/assets/{yaml-DkHUoYI5.js → yaml-B3H8LDzK.js} +0 -0
@@ -1,1497 +0,0 @@
1
- import { s as __toESM } from "./chunk-CGdGNDIi.js";
2
- import { Yn as testRRI, Zn as testRealmURL, a as hasExecutableExtension, ua as rri, vi as baseRealm } from "./runtime-common-C7uLt5dN.js";
3
- import { b as trimJsonExtension, u as cardDefFormats } from "./dompurify-runtime-DnZEeRZb.js";
4
- import { A as settled, I as waitUntil, d as click, l as triggerEvent, o as waitFor, s as fillIn } from "./dist-D1U_uSwt.js";
5
- import { t as require_qunit } from "./qunit-2hoQyeAZ.js";
6
- import { r as getService } from "./dist-BfNSLd0O.js";
7
- import { D as setupAcceptanceTestRealm, E as setMonacoContent, F as setupUserSubscription, M as setupOnSave, N as setupRealmCacheTeardown, Y as withoutLoaderMonitoring, a as SYSTEM_CARD_FIXTURE_CONTENTS, at as setupAuthEndpoints, dt as percySnapshot, j as setupLocalIndexing, nt as setupApplicationTest, q as withCachedRealmSetup, s as assertMessages, t as setupMockMatrix, tt as visitOperatorMode, w as realmConfigCardJSON } from "./mock-matrix-DqDbNhEj.js";
8
- 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-B0iQV7dU.js";
9
- import { a as removeRecentFiles, i as removeRecentCards, o as setRecentCards, r as getRecentFiles, s as setRecentFiles, t as assertRecentFileURLs } from "./recent-files-cards-BQMviQb1.js";
10
- //#region tests/acceptance/code-submode/card-playground-test.gts
11
- var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
12
- var codeRefDriverCard = `import { CardDef, field, contains } from 'https://cardstack.com/base/card-api';
13
- import { Component } from 'https://cardstack.com/base/card-api';
14
- import CodeRefField from 'https://cardstack.com/base/code-ref';
15
- export class CodeRefDriver extends CardDef {
16
- static displayName = "Code Ref Driver";
17
- @field ref = contains(CodeRefField);
18
- }`;
19
- var testSpecCard = `import { Component } from 'https://cardstack.com/base/card-api';
20
- import { Spec } from 'https://cardstack.com/base/spec';
21
- export class TestSpec extends Spec {
22
- static displayName = 'TestSpec';
23
- static isolated = class Isolated extends Component<typeof this> {
24
- <template>
25
- <div data-test-subclass-spec>Spec Subclass</div>
26
- </template>
27
- }
28
- }`;
29
- var authorCard = `import { contains, field, CardDef, Component } from "https://cardstack.com/base/card-api";
30
- import MarkdownField from 'https://cardstack.com/base/markdown';
31
- import StringField from "https://cardstack.com/base/string";
32
- export class Author extends CardDef {
33
- static displayName = 'Author';
34
- @field firstName = contains(StringField);
35
- @field lastName = contains(StringField);
36
- @field bio = contains(MarkdownField);
37
- @field cardTitle = contains(StringField, {
38
- computeVia: function (this: Author) {
39
- return [this.firstName, this.lastName].filter(Boolean).join(' ');
40
- },
41
- });
42
- static isolated = class Isolated extends Component<typeof this> {
43
- <template>
44
- <article>
45
- <header>
46
- <h1 data-test-author-title><@fields.cardTitle /></h1>
47
- </header>
48
- <div data-test-author-bio><@fields.bio /></div>
49
- </article>
50
- <style scoped>
51
- article {
52
- margin-inline: 20px;
53
- }
54
- </style>
55
- </template>
56
- }
57
- }`;
58
- var blogPostCard = `import { contains, field, linksTo, linksToMany, CardDef, Component, StringField } from "https://cardstack.com/base/card-api";
59
- import DateTimeField from 'https://cardstack.com/base/datetime';
60
- import MarkdownField from 'https://cardstack.com/base/markdown';
61
- import { Author } from './author';
62
-
63
- export class Category extends CardDef {
64
- static displayName = 'Category';
65
- static fitted = class Fitted extends Component<typeof this> {
66
- <template>
67
- <div data-test-category-fitted><@fields.cardTitle /></div>
68
- </template>
69
- }
70
- }
71
-
72
- class LocalCategoryCard extends Category {
73
- static displayName = 'Local Category'
74
- }
75
-
76
- export class RandomClass {}
77
-
78
- export class BlogPost extends CardDef {
79
- static displayName = 'Blog Post';
80
- @field publishDate = contains(DateTimeField);
81
- @field author = linksTo(Author);
82
- @field categories = linksToMany(Category);
83
- @field localCategories = linksToMany(LocalCategoryCard);
84
- @field body = contains(MarkdownField);
85
- @field cardTitle = contains(StringField);
86
-
87
- static isolated = class Isolated extends Component<typeof this> {
88
- <template>
89
- <article>
90
- <header>
91
- <h1 data-test-post-title><@fields.cardTitle /></h1>
92
- </header>
93
- <div data-test-byline><@fields.author /></div>
94
- <div data-test-post-body><@fields.body /></div>
95
- </article>
96
- <style scoped>
97
- article {
98
- margin-inline: 20px;
99
- }
100
- </style>
101
- </template>
102
- }
103
- }`;
104
- var personCard = `import { field, linksTo, CardDef } from 'https://cardstack.com/base/card-api';
105
- export class Pet extends CardDef {
106
- static displayName = 'Pet';
107
- }
108
- export class Person extends CardDef {
109
- static displayName = 'Person';
110
- @field pet = linksTo(Pet);
111
- }
112
- `;
113
- var customEditCard = `import { contains, field, CardDef, Component } from "https://cardstack.com/base/card-api";
114
- import StringField from "https://cardstack.com/base/string";
115
- export class CustomEdit extends CardDef {
116
- static displayName = 'Custom Edit';
117
- @field name = contains(StringField);
118
- static edit = class Edit extends Component<typeof this> {
119
- <template>
120
- <div data-test-custom-edit>Custom Edit: <@fields.name /></div>
121
- </template>
122
- };
123
- }`;
124
- var headPreviewCard = `import { contains, field, CardDef, Component } from "https://cardstack.com/base/card-api";
125
- import StringField from "https://cardstack.com/base/string";
126
-
127
- export class HeadPreview extends CardDef {
128
- static displayName = 'Head Preview';
129
- @field cardTitle = contains(StringField);
130
- @field cardDescription = contains(StringField);
131
- @field url = contains(StringField);
132
-
133
- static head = class Head extends Component<typeof this> {
134
- <template>
135
- <title>{{@model.cardTitle}}</title>
136
- <meta name='description' content={{@model.cardDescription}} />
137
- <meta property='og:url' content={{@model.url}} />
138
- </template>
139
- };
140
- }
141
- `;
142
- async function waitForHeadPreviewText(selector, expectedText, context) {
143
- let safeQuerySelector = (selector) => {
144
- try {
145
- return {
146
- element: document.querySelector(selector),
147
- error: null
148
- };
149
- } catch (error) {
150
- if (error instanceof Error) return {
151
- element: null,
152
- error: {
153
- name: error.name,
154
- message: error.message
155
- }
156
- };
157
- return {
158
- element: null,
159
- error: {
160
- name: "UnknownError",
161
- message: String(error)
162
- }
163
- };
164
- }
165
- };
166
- let readSelectorText = (selector) => {
167
- let { element, error } = safeQuerySelector(selector);
168
- return {
169
- text: element?.textContent?.trim() ?? null,
170
- error
171
- };
172
- };
173
- try {
174
- await waitUntil(() => readSelectorText(selector).text === expectedText, { timeout: 5e3 });
175
- } catch (error) {
176
- let actual = readSelectorText(selector);
177
- let googleTitle = readSelectorText(".google-title");
178
- let googleDescription = readSelectorText(".google-description");
179
- let googleSiteName = readSelectorText(".google-site-name");
180
- let previewPanel = safeQuerySelector("[data-test-playground-panel]");
181
- console.info("head preview diagnostics", {
182
- context,
183
- selector,
184
- expectedText,
185
- actualText: actual.text,
186
- selectorError: actual.error,
187
- googleTitleText: googleTitle.text,
188
- googleTitleError: googleTitle.error,
189
- googleDescriptionText: googleDescription.text,
190
- googleDescriptionError: googleDescription.error,
191
- googleSiteNameText: googleSiteName.text,
192
- googleSiteNameError: googleSiteName.error,
193
- playgroundPreviewHtml: previewPanel.element?.innerHTML?.slice(0, 2e3) ?? null,
194
- playgroundPreviewError: previewPanel.error
195
- }, error);
196
- throw error;
197
- }
198
- }
199
- var localStyleReferenceCard = { data: {
200
- type: "card",
201
- attributes: {
202
- cardInfo: {
203
- title: "Local Style Reference",
204
- cardDescription: "Local card instance for style reference tests",
205
- cardThumbnailURL: null,
206
- notes: null
207
- },
208
- styleName: "Local Style Reference",
209
- visualDNA: "Style reference content for playground edit tests",
210
- inspirations: ["Testing"],
211
- wallpaperImages: []
212
- },
213
- meta: { adoptsFrom: {
214
- module: "https://cardstack.com/base/style-reference",
215
- name: "default"
216
- } }
217
- } };
218
- (0, import_qunit.module)("Acceptance | code-submode | card playground", function(_hooks) {
219
- (0, import_qunit.module)("single realm", function(hooks) {
220
- let realm;
221
- setupApplicationTest(hooks);
222
- setupLocalIndexing(hooks);
223
- let mockMatrixUtils = setupMockMatrix(hooks, {
224
- loggedInAs: "@testuser:localhost",
225
- activeRealms: [testRealmURL]
226
- });
227
- let { setRealmPermissions, setActiveRealms, createAndJoinRoom } = mockMatrixUtils;
228
- setupOnSave(hooks);
229
- setupRealmCacheTeardown(hooks);
230
- hooks.beforeEach(async function() {
231
- let loader = getService("loader-service").loader;
232
- let cardsGrid;
233
- cardsGrid = await loader.import(`${baseRealm.url}cards-grid`);
234
- let { CardsGrid } = cardsGrid;
235
- createAndJoinRoom({
236
- sender: "@testuser:localhost",
237
- name: "room-test"
238
- });
239
- setupUserSubscription();
240
- setupAuthEndpoints();
241
- ({realm} = await withCachedRealmSetup(async () => setupAcceptanceTestRealm({
242
- mockMatrixUtils,
243
- realmURL: testRealmURL,
244
- contents: {
245
- ...SYSTEM_CARD_FIXTURE_CONTENTS,
246
- "index.json": new CardsGrid(),
247
- "author.gts": authorCard,
248
- "blog-post.gts": blogPostCard,
249
- "code-ref-driver.gts": codeRefDriverCard,
250
- "test-spec.gts": testSpecCard,
251
- "person.gts": personCard,
252
- "head-preview.gts": headPreviewCard,
253
- "custom-edit.gts": customEditCard,
254
- "CustomEdit/sample.json": { data: {
255
- attributes: { name: "Sample" },
256
- meta: { adoptsFrom: {
257
- module: `${testRealmURL}custom-edit`,
258
- name: "CustomEdit"
259
- } }
260
- } },
261
- "Author/jane-doe.json": { data: {
262
- attributes: {
263
- firstName: "Jane",
264
- lastName: "Doe",
265
- 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."
266
- },
267
- meta: { adoptsFrom: {
268
- module: `${testRealmURL}author`,
269
- name: "Author"
270
- } }
271
- } },
272
- "HeadPreview/example.json": { data: {
273
- attributes: {
274
- cardTitle: "Definition Title",
275
- cardDescription: "Definition description",
276
- url: "https://example.com/definition"
277
- },
278
- meta: { adoptsFrom: {
279
- module: `${testRealmURL}head-preview`,
280
- name: "HeadPreview"
281
- } }
282
- } },
283
- "BlogPost/remote-work.json": { data: {
284
- attributes: {
285
- title: "The Ultimate Guide to Remote Work",
286
- 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."
287
- },
288
- relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
289
- meta: { adoptsFrom: {
290
- module: `${testRealmURL}blog-post`,
291
- name: "BlogPost"
292
- } }
293
- } },
294
- "BlogPost/mad-hatter.json": { data: {
295
- attributes: { cardTitle: "Mad As a Hatter" },
296
- relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
297
- meta: { adoptsFrom: {
298
- module: `${testRealmURL}blog-post`,
299
- name: "BlogPost"
300
- } }
301
- } },
302
- "BlogPost/urban-living.json": { data: {
303
- attributes: { cardTitle: "The Future of Urban Living: Skyscrapers or Sustainable Communities?" },
304
- relationships: { author: { links: { self: `${testRealmURL}Author/jane-doe` } } },
305
- meta: { adoptsFrom: {
306
- module: `${testRealmURL}blog-post`,
307
- name: "BlogPost"
308
- } }
309
- } },
310
- "Category/city-design.json": { data: {
311
- attributes: { cardInfo: { name: "City Design" } },
312
- meta: { adoptsFrom: {
313
- module: `${testRealmURL}blog-post`,
314
- name: "Category"
315
- } }
316
- } },
317
- "Category/future-tech.json": { data: {
318
- attributes: { cardInfo: { name: "Future Tech" } },
319
- meta: { adoptsFrom: {
320
- module: `${testRealmURL}blog-post`,
321
- name: "Category"
322
- } }
323
- } },
324
- "Category/interior-design.json": { data: {
325
- attributes: { cardInfo: { name: "Interior Design" } },
326
- meta: { adoptsFrom: {
327
- module: `${testRealmURL}blog-post`,
328
- name: "Category"
329
- } }
330
- } },
331
- "Category/landscaping.json": { data: {
332
- attributes: { cardInfo: { name: "Landscaping" } },
333
- meta: { adoptsFrom: {
334
- module: `${testRealmURL}blog-post`,
335
- name: "Category"
336
- } }
337
- } },
338
- "Category/home-gym.json": { data: {
339
- attributes: { cardInfo: { name: "Home Gym" } },
340
- meta: { adoptsFrom: {
341
- module: `${testRealmURL}blog-post`,
342
- name: "Category"
343
- } }
344
- } },
345
- "Person/pet-mango.json": { data: {
346
- attributes: { cardInfo: { name: "Mango" } },
347
- meta: { adoptsFrom: {
348
- module: `${testRealmURL}person`,
349
- name: "Pet"
350
- } }
351
- } }
352
- }
353
- })));
354
- setRecentFiles([
355
- [testRealmURL, "blog-post.gts"],
356
- [testRealmURL, "author.gts"],
357
- [testRealmURL, "CustomEdit/sample.json"],
358
- [testRealmURL, "custom-edit.gts"],
359
- [testRealmURL, "BlogPost/mad-hatter.json"],
360
- [testRealmURL, "Category/city-design.json"],
361
- [testRealmURL, "Category/future-tech.json"],
362
- [testRealmURL, "BlogPost/remote-work.json"],
363
- [testRealmURL, "BlogPost/urban-living.json"],
364
- [testRealmURL, "Author/jane-doe.json"]
365
- ]);
366
- removePlaygroundSelections();
367
- setActiveRealms([testRealmURL]);
368
- setRealmPermissions({ [testRealmURL]: ["read", "write"] });
369
- });
370
- (0, import_qunit.test)("can render playground panel when an exported card def is selected", async function(assert) {
371
- await visitOperatorMode({
372
- submode: "code",
373
- codePath: `${testRealmURL}blog-post.gts`
374
- });
375
- assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists("schema editor is open by default");
376
- assert.dom("[data-test-playground-panel]").doesNotExist("do not load playground unless panel is open");
377
- await selectDeclaration("Category");
378
- await togglePlaygroundPanel();
379
- assert.dom("[data-test-playground-panel]").exists("playground panel exists for Category (exported card def)");
380
- await click("[data-test-module-inspector-view=\"schema\"]");
381
- await selectDeclaration("LocalCategoryCard");
382
- await togglePlaygroundPanel();
383
- assert.dom("[data-test-playground-panel]").doesNotExist("playground panel exists for Category (exported card def)");
384
- assert.dom("[data-test-playground-incompatible-message]").exists();
385
- assert.dom("[data-test-playground-incompatible-message] span").containsText("Playground is not currently supported for this type.");
386
- await selectDeclaration("RandomClass");
387
- assert.dom("[data-test-module-inspector-view=\"preview\"]").exists("inspector exists for RandomClass (not a card or field def)");
388
- assert.dom("[data-test-playground-incompatible-message]").exists();
389
- assert.dom("[data-test-playground-incompatible-message] span").containsText("Playground is not currently supported for this type.");
390
- await selectDeclaration("BlogPost");
391
- assert.dom("[data-test-playground-panel]").exists("exists for BlogPost (exported card def)");
392
- });
393
- (0, import_qunit.test)("playground does not auto-create spec for subclasses of specs", async function(assert) {
394
- await visitOperatorMode({
395
- submode: "code",
396
- codePath: `${testRealmURL}test-spec.gts`
397
- });
398
- await selectDeclaration("TestSpec");
399
- await togglePlaygroundPanel();
400
- await waitFor("[data-test-playground-panel]");
401
- assert.dom("[data-test-subclass-spec]").doesNotExist();
402
- });
403
- (0, import_qunit.test)("can populate instance chooser dropdown from recent files and pre-select the first card", async function(assert) {
404
- removePlaygroundSelections();
405
- removeRecentFiles();
406
- setRecentFiles([
407
- [testRealmURL, "BlogPost/mad-hatter.json"],
408
- [testRealmURL, "Category/city-design.json"],
409
- [testRealmURL, "Category/future-tech.json"],
410
- [testRealmURL, "BlogPost/remote-work.json"],
411
- [testRealmURL, "BlogPost/urban-living.json"],
412
- [testRealmURL, "Author/jane-doe.json"]
413
- ]);
414
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
415
- assert.dom("[data-test-selected-item]").containsText("City Design", "most recent category card is pre-selected");
416
- assertCardExists(assert, `${testRealmURL}Category/city-design`);
417
- await selectDeclaration("BlogPost");
418
- assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "pre-selected card is updated when selected card def changes");
419
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
420
- await selectDeclaration("Category");
421
- assert.dom("[data-test-selected-item]").containsText("City Design", "correct card is still pre-selected");
422
- assertCardExists(assert, `${testRealmURL}Category/city-design`);
423
- await click("[data-test-instance-chooser]");
424
- assert.dom("[data-option-index] [data-test-category-fitted]").exists({ count: 2 });
425
- await click("[data-option-index=\"1\"]");
426
- assert.dom("[data-test-selected-item]").containsText("Future Tech");
427
- assertCardExists(assert, `${testRealmURL}Category/future-tech`);
428
- assert.strictEqual(getPlaygroundSelections()?.[`${testRealmURL}blog-post/Category`]?.cardId, `${testRealmURL}Category/future-tech`, "user-selected card is persisted");
429
- await selectDeclaration("BlogPost");
430
- assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "correct card is pre-selected when selected card def changes");
431
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
432
- await selectDeclaration("Category");
433
- assert.dom("[data-test-selected-item]").containsText("Future Tech", "persisted card is selected");
434
- assertCardExists(assert, `${testRealmURL}Category/future-tech`);
435
- await percySnapshot(assert);
436
- });
437
- (0, import_qunit.test)("head format preview renders for card definitions in playground", async function(assert) {
438
- removePlaygroundSelections();
439
- setPlaygroundSelections({ [`${testRealmURL}head-preview/HeadPreview`]: {
440
- cardId: rri(`${testRealmURL}HeadPreview/example`),
441
- format: "head"
442
- } });
443
- await openFileInPlayground("head-preview.gts", testRealmURL, { declaration: "HeadPreview" });
444
- await selectFormat("head");
445
- await waitForHeadPreviewText(".google-title", "Definition Title", "initial head preview render in card playground");
446
- assert.dom(".google-title").hasText("Definition Title");
447
- assert.dom(".google-description").hasText("Definition description");
448
- assert.dom(".google-site-name").hasText("example.com");
449
- setMonacoContent(headPreviewCard.replace("</title>", "!!</title>"));
450
- await waitForHeadPreviewText(".google-title", "Definition Title!!", "updated head preview render in card playground");
451
- assert.dom(".google-title").hasText("Definition Title!!");
452
- });
453
- (0, import_qunit.test)("can populate instance chooser options from recent-files and recent-cards, ordered by last viewed timestamp", async function(assert) {
454
- removePlaygroundSelections();
455
- removeRecentFiles();
456
- removeRecentCards();
457
- let ts = Date.now();
458
- setRecentFiles([
459
- [
460
- testRealmURL,
461
- "Category/home-gym.json",
462
- null,
463
- ts
464
- ],
465
- [
466
- testRealmURL,
467
- "BlogPost/remote-work.json",
468
- null,
469
- ts
470
- ],
471
- [
472
- testRealmURL,
473
- "Category/future-tech.json",
474
- null,
475
- ts - 2
476
- ],
477
- [
478
- testRealmURL,
479
- "Category/city-design.json",
480
- null,
481
- ts - 5
482
- ]
483
- ]);
484
- setRecentCards([
485
- [`${testRealmURL}Category/landscaping.json`, ts - 1],
486
- [`${testRealmURL}BlogPost/mad-hatter.json`, ts - 1],
487
- [`${testRealmURL}Category/city-design.json`, ts - 3],
488
- [`${testRealmURL}Category/future-tech.json`, ts - 4]
489
- ]);
490
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
491
- assert.dom("[data-test-selected-item]").containsText("Home Gym", "most recent category instance is pre-selected");
492
- assertCardExists(assert, `${testRealmURL}Category/home-gym`);
493
- await click("[data-test-instance-chooser]");
494
- assert.dom("[data-option-index]").exists({ count: 4 });
495
- assert.dom("[data-option-index=\"0\"]").containsText("Home Gym");
496
- assert.dom("[data-option-index=\"1\"]").containsText("Landscaping");
497
- assert.dom("[data-option-index=\"2\"]").containsText("Future Tech");
498
- assert.dom("[data-option-index=\"3\"]").containsText("City Design");
499
- await click(`[data-test-recent-file="${testRealmURL}Category/future-tech.json"]`);
500
- await click("[data-test-clickable-definition-container]");
501
- assert.dom("[data-test-selected-item]").containsText("Home Gym", "selected card has not changed");
502
- assertCardExists(assert, `${testRealmURL}Category/home-gym`);
503
- await click("[data-test-instance-chooser]");
504
- assert.dom("[data-option-index]").exists({ count: 4 });
505
- assert.dom("[data-option-index=\"0\"]").containsText("Future Tech", "recent card order is updated");
506
- assert.dom("[data-option-index=\"1\"]").containsText("Home Gym");
507
- assert.dom("[data-option-index=\"2\"]").containsText("Landscaping");
508
- assert.dom("[data-option-index=\"3\"]").containsText("City Design");
509
- await click("[data-test-more-options-button]");
510
- await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
511
- assert.dom(`[data-test-stack-card="${testRealmURL}Category/home-gym"]`).exists();
512
- await click("[data-test-open-search-field]");
513
- await waitFor(`[data-test-search-result="${testRealmURL}Category/landscaping"]`, { timeout: 8e3 });
514
- await click(`[data-test-search-result="${testRealmURL}Category/landscaping"]`);
515
- assert.dom(`[data-test-stack-card="${testRealmURL}Category/landscaping"]`).exists();
516
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
517
- await togglePlaygroundPanel();
518
- assert.dom("[data-test-selected-item]").containsText("Home Gym", "selected card has not changed");
519
- assertCardExists(assert, `${testRealmURL}Category/home-gym`);
520
- await click("[data-test-instance-chooser]");
521
- assert.dom("[data-option-index]").exists({ count: 4 });
522
- assert.dom("[data-option-index=\"0\"]").containsText("Landscaping", "recent card order is updated");
523
- assert.dom("[data-option-index=\"1\"]").containsText("Home Gym");
524
- assert.dom("[data-option-index=\"2\"]").containsText("Future Tech");
525
- assert.dom("[data-option-index=\"3\"]").containsText("City Design");
526
- });
527
- (0, import_qunit.test)("can update the instance chooser when selected card def changes (same file)", async function(assert) {
528
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
529
- assert.dom("[data-test-selected-item]").containsText("City Design");
530
- await click("[data-test-instance-chooser]");
531
- assert.dom("[data-option-index]").exists({ count: 2 });
532
- assert.dom("[data-option-index=\"1\"]").containsText("Future Tech");
533
- await selectDeclaration("BlogPost");
534
- assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter");
535
- await click("[data-test-instance-chooser]");
536
- assert.dom("[data-option-index]").exists({ count: 3 });
537
- assert.dom("[data-option-index=\"0\"]").containsText("Mad As a Hatter");
538
- });
539
- (0, import_qunit.test)("can update the instance chooser when a different file is opened", async function(assert) {
540
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "Category" });
541
- assert.dom("[data-test-selected-item]").containsText("City Design");
542
- assertCardExists(assert, `${testRealmURL}Category/city-design`);
543
- await click("[data-test-instance-chooser]");
544
- assert.dom("[data-option-index]").exists({ count: 2 });
545
- assert.dom("[data-option-index=\"0\"]").containsText("City Design");
546
- await click("[data-test-file-browser-toggle]");
547
- await click("[data-test-file=\"author.gts\"]");
548
- await togglePlaygroundPanel();
549
- assert.dom("[data-test-selected-item]").containsText("Jane Doe");
550
- assertCardExists(assert, `${testRealmURL}Author/jane-doe`);
551
- await click("[data-test-instance-chooser]");
552
- assert.dom("li.ember-power-select-option").exists({ count: 1 });
553
- assert.dom("[data-option-index=\"0\"]").containsText("Jane Doe");
554
- });
555
- (0, import_qunit.test)("can use the header context menu to open instance in code mode", async function(assert) {
556
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
557
- await click("[data-test-more-options-button]");
558
- assert.dom("[data-test-boxel-dropdown-content] [data-test-boxel-menu-item]").exists({ count: 6 });
559
- await click("[data-test-boxel-menu-item-text=\"Open in Code Mode\"]");
560
- assert.dom(`[data-test-code-mode-card-renderer-header="${testRealmURL}Author/jane-doe"]`).exists();
561
- assert.dom("[data-test-module-inspector-view=\"preview\"]").doesNotExist();
562
- });
563
- (0, import_qunit.test)("can use the header context menu to open instance in interact mode", async function(assert) {
564
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
565
- await click("[data-test-more-options-button]");
566
- await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
567
- assert.dom(`[data-test-stack-card-index="0"][data-test-stack-card="${testRealmURL}index"]`).exists();
568
- assert.dom(`[data-test-stack-card-index="1"][data-test-stack-card="${testRealmURL}Author/jane-doe"]`).exists();
569
- assert.dom("[data-test-author-title]").hasText("Jane Doe");
570
- });
571
- (0, import_qunit.test)("can display selected card in the chosen format", async function(assert) {
572
- const cardId = `${testRealmURL}Author/jane-doe`;
573
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
574
- assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
575
- assertCardExists(assert, cardId, "isolated");
576
- assert.dom("[data-test-author-title]").hasText("Jane Doe");
577
- assert.dom("[data-test-author-bio]").containsText("Jane Doe is the Senior Managing Editor");
578
- assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
579
- assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length });
580
- await selectFormat("embedded");
581
- assert.dom("[data-test-format-chooser=\"isolated\"]").hasNoClass("active");
582
- assert.dom("[data-test-format-chooser=\"embedded\"]").hasClass("active");
583
- assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").doesNotExist();
584
- assertCardExists(assert, cardId, "embedded");
585
- await selectFormat("edit");
586
- assert.dom("[data-test-format-chooser=\"embedded\"]").hasNoClass("active");
587
- assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
588
- assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
589
- assertCardExists(assert, cardId, "edit");
590
- await selectFormat("atom");
591
- assert.dom("[data-test-format-chooser=\"edit\"]").hasNoClass("active");
592
- assert.dom("[data-test-format-chooser=\"atom\"]").hasClass("active");
593
- 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.");
594
- await selectFormat("fitted");
595
- assert.dom("[data-test-format-chooser=\"atom\"]").hasNoClass("active");
596
- assert.dom("[data-test-format-chooser=\"fitted\"]").hasClass("active");
597
- assert.dom("[data-test-playground-panel] [data-test-card-format=\"fitted\"]").exists({ count: 16 });
598
- await selectFormat("markdown");
599
- assert.dom("[data-test-format-chooser=\"fitted\"]").hasNoClass("active");
600
- assert.dom("[data-test-format-chooser=\"markdown\"]").hasClass("active");
601
- assert.dom("[data-test-markdown-preview]").exists("markdown preview container renders");
602
- assertCardExists(assert, cardId, "markdown");
603
- });
604
- (0, import_qunit.test)("shows \"form\" format button only for cards with a custom edit template", async function(assert) {
605
- const cardId = `${testRealmURL}CustomEdit/sample`;
606
- await openFileInPlayground("custom-edit.gts", testRealmURL, { declaration: "CustomEdit" });
607
- assertCardExists(assert, cardId, "isolated");
608
- assert.dom("[data-test-format-chooser]").exists({ count: cardDefFormats.length + 1 });
609
- assert.dom("[data-test-format-chooser=\"form\"]").exists("\"form\" button appears because CustomEdit has a custom edit template");
610
- assert.dom("[data-test-format-chooser=\"edit\"]").exists("\"edit\" button still present alongside \"form\"");
611
- await selectFormat("form");
612
- assert.dom("[data-test-format-chooser=\"form\"]").hasClass("active");
613
- assertCardExists(assert, cardId, "edit");
614
- assert.dom("[data-test-custom-edit]").doesNotExist("base CardDef template is used, not the custom edit template");
615
- await selectFormat("edit");
616
- assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
617
- assertCardExists(assert, cardId, "edit");
618
- assert.dom("[data-test-custom-edit]").exists("custom edit template is used when \"edit\" is selected");
619
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
620
- assert.dom("[data-test-format-chooser=\"form\"]").doesNotExist("\"form\" button absent for cards without a custom edit template");
621
- });
622
- (0, import_qunit.test)("can toggle edit format via button on card header", async function(assert) {
623
- const cardId = `${testRealmURL}Author/jane-doe`;
624
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
625
- assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").hasText("Author - Jane Doe");
626
- assertCardExists(assert, cardId, "isolated");
627
- assert.dom("[data-test-author-title]").hasText("Jane Doe");
628
- assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
629
- await click("[data-test-boxel-card-header-actions] [data-test-edit-button]");
630
- assertCardExists(assert, cardId, "edit");
631
- assert.dom("[data-test-card-header]").hasClass("is-editing");
632
- assert.dom("[data-test-format-chooser=\"isolated\"]").hasNoClass("active");
633
- assert.dom("[data-test-format-chooser=\"edit\"]").hasClass("active");
634
- await click("[data-test-boxel-card-header-actions] [data-test-edit-button]");
635
- assertCardExists(assert, cardId, "isolated");
636
- assert.dom("[data-test-card-header]").hasNoClass("is-editing");
637
- assert.dom("[data-test-format-chooser=\"edit\"]").hasNoClass("active");
638
- assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active");
639
- });
640
- (0, import_qunit.test)("can use the header context menu to open instance in edit format in interact mode", async function(assert) {
641
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
642
- await selectFormat("edit");
643
- await click("[data-test-more-options-button]");
644
- await click("[data-test-boxel-menu-item-text=\"Open in Interact Mode\"]");
645
- assert.dom(`[data-test-stack-card-index="0"][data-test-stack-card="${testRealmURL}index"]`).exists();
646
- assert.dom(`[data-test-stack-card-index="1"][data-test-stack-card="${testRealmURL}Author/jane-doe"]`).exists();
647
- assert.dom(`[data-test-stack-item-content] [data-test-card-format="edit"]`).exists();
648
- });
649
- (0, import_qunit.test)("can choose another instance to be opened in playground panel", async function(assert) {
650
- removeRecentFiles();
651
- let recentFilesService = getService("recent-files-service");
652
- assert.strictEqual(recentFilesService.recentFiles?.length, 0);
653
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
654
- await chooseAnotherInstance();
655
- assert.dom("[data-test-card-catalog-modal]").exists();
656
- assert.dom("[data-test-card-catalog-item]").exists({ count: 3 });
657
- assert.dom(`[data-test-card-catalog-item="${testRealmURL}BlogPost/mad-hatter"]`).exists();
658
- assert.dom(`[data-test-card-catalog-item="${testRealmURL}BlogPost/urban-living"]`).exists();
659
- assert.dom(`[data-test-card-catalog-item="${testRealmURL}BlogPost/remote-work"]`).exists();
660
- await click(`[data-test-card-catalog-item="${testRealmURL}BlogPost/mad-hatter"]`);
661
- await click("[data-test-card-catalog-go-button]");
662
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`, "isolated");
663
- assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}BlogPost/mad-hatter.json`, `${testRealmURL}blog-post.gts`]);
664
- });
665
- (0, import_qunit.test)("can create new instance", async function(assert) {
666
- removeRecentFiles();
667
- let recentFilesService = getService("recent-files-service");
668
- assert.strictEqual(recentFilesService.recentFiles?.length, 0);
669
- await visitOperatorMode({
670
- submode: "code",
671
- codePath: `${testRealmURL}blog-post.gts`
672
- });
673
- assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}blog-post.gts`]);
674
- await click("[data-boxel-selector-item-text=\"BlogPost\"]");
675
- await togglePlaygroundPanel();
676
- assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Mad As a Hatter", "card instance found in realm");
677
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
678
- let id;
679
- this.onSave((url) => {
680
- id = url.href;
681
- });
682
- await createNewInstance();
683
- await waitUntil(() => id);
684
- assert.strictEqual(recentFilesService.recentFiles?.length, 2, "recent file count is correct");
685
- assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Untitled Blog Post", "created instance is selected");
686
- assertCardExists(assert, id, "isolated", "new card is rendered in isolated format");
687
- assert.dom("[data-option-index]").exists({ count: 1 }, "dropdown instance count is correct");
688
- assert.dom("[data-option-index]").containsText("Blog Post");
689
- });
690
- (0, import_qunit.test)("can create new instance with CodeRef field", async function(assert) {
691
- await openFileInPlayground("code-ref-driver.gts", testRealmURL, { declaration: "CodeRefDriver" });
692
- let id;
693
- this.onSave((url) => {
694
- id = url.href;
695
- });
696
- await createNewInstance();
697
- await waitUntil(() => id);
698
- assert.dom("[data-test-instance-chooser] [data-test-selected-item]").containsText("Untitled Code Ref Driver", "created instance is selected");
699
- assert.dom(`[data-test-playground-panel] [data-test-card][data-test-card-format="isolated"]`).exists("new card is rendered in edit format");
700
- await click("[data-test-edit-button]");
701
- assert.dom("[data-test-playground-panel] [data-test-card] [data-test-field=\"ref\"] input").hasNoValue("code ref field is empty");
702
- });
703
- (0, import_qunit.test)("can set relative CodeRef field", async function(assert) {
704
- await openFileInPlayground("code-ref-driver.gts", testRealmURL, { declaration: "CodeRefDriver" });
705
- await createNewInstance();
706
- await click("[data-test-edit-button]");
707
- 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");
708
- await fillIn("[data-test-playground-panel] [data-test-card] [data-test-field=\"ref\"] input", `../blog-post/BlogPost`);
709
- await waitFor("[data-test-playground-panel] [data-test-card] [data-test-hasValidated]");
710
- 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");
711
- });
712
- (0, import_qunit.test)("playground preview for card with contained fields can live update when module changes", async function(assert) {
713
- const authorCard = `import { contains, field, CardDef, Component } from "https://cardstack.com/base/card-api";
714
- import MarkdownField from 'https://cardstack.com/base/markdown';
715
- import StringField from "https://cardstack.com/base/string";
716
- export class Author extends CardDef {
717
- static displayName = 'Author';
718
- @field firstName = contains(StringField);
719
- @field lastName = contains(StringField);
720
- @field bio = contains(MarkdownField);
721
- @field cardTitle = contains(StringField, {
722
- computeVia: function (this: Author) {
723
- return [this.firstName, this.lastName].filter(Boolean).join(' ');
724
- },
725
- });
726
- static isolated = class Isolated extends Component<typeof this> {
727
- <template>
728
- <article>
729
- <header>
730
- <h1 data-test-author-title>Hello <@fields.cardTitle /></h1>
731
- </header>
732
- <div data-test-author-bio><@fields.bio /></div>
733
- </article>
734
- <style scoped>
735
- article {
736
- margin-inline: 20px;
737
- }
738
- </style>
739
- </template>
740
- }
741
- }`;
742
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
743
- await waitFor("[data-test-selected-item]");
744
- assert.dom("[data-test-selected-item]").containsText("Jane Doe");
745
- assert.dom("[data-test-author-title]").containsText("Jane Doe");
746
- await realm.write("author.gts", authorCard);
747
- await settled();
748
- await waitFor("[data-test-selected-item]");
749
- assert.dom("[data-test-selected-item]").containsText("Jane Doe");
750
- assert.dom("[data-test-author-title]").containsText("Hello Jane Doe");
751
- });
752
- (0, import_qunit.test)("playground preview for card with linked fields can live update when module changes", async function(assert) {
753
- const blogPostCard = `import { contains, field, linksTo, linksToMany, CardDef, Component } from "https://cardstack.com/base/card-api";
754
- import DateTimeField from 'https://cardstack.com/base/datetime';
755
- import MarkdownField from 'https://cardstack.com/base/markdown';
756
- import StringField from "https://cardstack.com/base/string";
757
- import { Author } from './author';
758
-
759
- export class Category extends CardDef {
760
- static displayName = 'Category';
761
- static fitted = class Fitted extends Component<typeof this> {
762
- <template>
763
- <div data-test-category-fitted><@fields.cardTitle /></div>
764
- </template>
765
- }
766
- }
767
-
768
- class Status extends StringField {
769
- static displayName = 'Status';
770
- }
771
-
772
- export class BlogPost extends CardDef {
773
- static displayName = 'Blog Post';
774
- @field publishDate = contains(DateTimeField);
775
- @field author = linksTo(Author);
776
- @field categories = linksToMany(Category);
777
- @field body = contains(MarkdownField);
778
- @field status = contains(Status, {
779
- computeVia: function (this: BlogPost) {
780
- if (!this.publishDate) {
781
- return 'Draft';
782
- }
783
- if (Date.now() >= Date.parse(String(this.publishDate))) {
784
- return 'Published';
785
- }
786
- return 'Scheduled';
787
- },
788
- });
789
- @field cardTitle = contains(StringField);
790
-
791
- static isolated = class Isolated extends Component<typeof this> {
792
- <template>
793
- <article>
794
- <header>
795
- <h1 data-test-post-title>Hello <@fields.cardTitle /></h1>
796
- </header>
797
- <div data-test-byline><@fields.author /></div>
798
- <div data-test-post-body><@fields.body /></div>
799
- </article>
800
- <style scoped>
801
- article {
802
- margin-inline: 20px;
803
- }
804
- </style>
805
- </template>
806
- }
807
- }`;
808
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
809
- await waitFor("[data-test-selected-item]");
810
- assert.dom("[data-test-selected-item]").exists("title exists on first render");
811
- assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter", "selected item title is correct");
812
- assert.dom("[data-test-post-title]").hasText("Mad As a Hatter");
813
- assert.dom("[data-test-byline]").containsText("Jane Doe");
814
- await realm.write("blog-post.gts", blogPostCard);
815
- await settled();
816
- await waitFor("[data-test-selected-item]");
817
- assert.dom("[data-test-selected-item]").exists("title exists on update");
818
- assert.dom("[data-test-selected-item]").containsText("Mad As a Hatter");
819
- assert.dom("[data-test-post-title]").containsText("Hello Mad As a Hatter");
820
- assert.dom("[data-test-byline]").containsText("Jane Doe");
821
- });
822
- (0, import_qunit.test)("playground edit format refreshes even if code invalidations are ignored", async function(assert) {
823
- await visitOperatorMode({
824
- submode: "code",
825
- codePath: `${testRealmURL}person.gts`
826
- });
827
- let loaderService = getService("loader-service");
828
- let resetCount = 0;
829
- let originalResetLoader = loaderService.resetLoader.bind(loaderService);
830
- loaderService.resetLoader = (options) => {
831
- resetCount += 1;
832
- return originalResetLoader(options);
833
- };
834
- let store = getService("store");
835
- let originalHandleInvalidations = store.handleInvalidations.bind(store);
836
- store.handleInvalidations = (event) => {
837
- if (event?.eventName === "index" && event?.indexType === "incremental" && Array.isArray(event?.invalidations) && event.invalidations.some(hasExecutableExtension)) return;
838
- return originalHandleInvalidations(event);
839
- };
840
- try {
841
- await click("[data-test-module-inspector-view=\"preview\"]");
842
- await waitFor("[data-test-instance-chooser]");
843
- await click("[data-test-instance-chooser]");
844
- await click("[data-option-index=\"0\"]");
845
- await click("[data-test-edit-button]");
846
- await waitFor("[data-test-card-format=\"edit\"]");
847
- await click("[data-test-module-inspector-view=\"schema\"]");
848
- await waitFor("[data-test-add-field-button]");
849
- await click("[data-test-add-field-button]");
850
- await fillIn("[data-test-field-name-input]", "nickname");
851
- await click("[data-test-save-field-button]");
852
- await waitFor("[data-test-card-schema=\"Person\"] [data-test-field-name=\"nickname\"]");
853
- await waitUntil(() => resetCount > 0);
854
- await click("[data-test-module-inspector-view=\"preview\"]");
855
- await waitFor("[data-test-instance-chooser]");
856
- await waitFor("[data-test-card-format=\"edit\"] [data-test-field=\"nickname\"]");
857
- assert.dom("[data-test-card-format=\"edit\"] [data-test-field=\"nickname\"]").exists();
858
- } finally {
859
- loaderService.resetLoader = originalResetLoader;
860
- store.handleInvalidations = originalHandleInvalidations;
861
- }
862
- });
863
- (0, import_qunit.test)("can remember playground selections and format choices via local storage", async function(assert) {
864
- const authorModuleId = `${testRealmURL}author/Author`;
865
- const categoryModuleId = `${testRealmURL}blog-post/Category`;
866
- const blogPostModuleId = `${testRealmURL}blog-post/BlogPost`;
867
- const authorId = rri(`${testRealmURL}Author/jane-doe`);
868
- const categoryId1 = rri(`${testRealmURL}Category/city-design`);
869
- const categoryId2 = rri(`${testRealmURL}Category/future-tech`);
870
- const blogPostId1 = rri(`${testRealmURL}BlogPost/mad-hatter`);
871
- const blogPostId2 = rri(`${testRealmURL}BlogPost/remote-work`);
872
- setPlaygroundSelections({
873
- [`${authorModuleId}`]: {
874
- cardId: authorId,
875
- format: "edit"
876
- },
877
- [`${categoryModuleId}`]: {
878
- cardId: categoryId1,
879
- format: "embedded"
880
- },
881
- [`${blogPostModuleId}`]: {
882
- cardId: blogPostId1,
883
- format: "isolated"
884
- }
885
- });
886
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
887
- assert.dom("[data-test-selected-item]").containsText("Jane Doe");
888
- assertCardExists(assert, authorId, "edit");
889
- await selectFormat("atom");
890
- assertCardExists(assert, authorId, "atom");
891
- assert.deepEqual(getPlaygroundSelections()?.[authorModuleId], {
892
- cardId: authorId,
893
- format: "atom",
894
- url: `${testRealmURL}author.gts`
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
- url: `${testRealmURL}blog-post.gts`
909
- }, "local storage is updated");
910
- await click("[data-test-inspector-toggle]");
911
- await click("[data-test-boxel-selector-item-text=\"BlogPost\"]");
912
- assertCardExists(assert, blogPostId1, "isolated");
913
- await selectFormat("fitted");
914
- assert.deepEqual(getPlaygroundSelections()?.[blogPostModuleId], {
915
- cardId: blogPostId1,
916
- format: "fitted",
917
- url: `${testRealmURL}blog-post.gts`
918
- });
919
- await click("[data-test-instance-chooser]");
920
- await click("[data-option-index=\"1\"]");
921
- assertCardExists(assert, blogPostId2, "fitted");
922
- assert.deepEqual(getPlaygroundSelections()?.[blogPostModuleId], {
923
- cardId: blogPostId2,
924
- format: "fitted",
925
- url: `${testRealmURL}blog-post.gts`
926
- });
927
- assert.strictEqual(JSON.stringify(getPlaygroundSelections()), JSON.stringify({
928
- [`${authorModuleId}`]: {
929
- cardId: authorId,
930
- format: "atom",
931
- url: `${testRealmURL}author.gts`
932
- },
933
- [`${categoryModuleId}`]: {
934
- cardId: categoryId2,
935
- format: "embedded",
936
- url: `${testRealmURL}blog-post.gts`
937
- },
938
- [`${blogPostModuleId}`]: {
939
- cardId: blogPostId2,
940
- format: "fitted",
941
- url: `${testRealmURL}blog-post.gts`
942
- }
943
- }));
944
- });
945
- (0, import_qunit.test)("trigger auto saved in edit format", async function(assert) {
946
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
947
- await click("[data-test-instance-chooser]");
948
- await click("[data-option-index=\"0\"]");
949
- await click("[data-test-edit-button]");
950
- assert.dom("[data-test-card-format=\"edit\"]").exists();
951
- let newFirstName = "John";
952
- this.onSave((_, json) => {
953
- if (typeof json === "string") throw new Error("expected JSON save data");
954
- assert.strictEqual(json.data.attributes?.firstName, newFirstName);
955
- });
956
- await fillIn("[data-test-field=\"firstName\"] [data-test-boxel-input]", newFirstName);
957
- });
958
- (0, import_qunit.test)("automatically attaches the selected card to the AI message", async function(assert) {
959
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
960
- await click("[data-test-instance-chooser]");
961
- await click("[data-option-index=\"0\"]");
962
- await click("[data-test-open-ai-assistant]");
963
- assert.dom(`[data-test-card="${testRealmURL}Author/jane-doe"]`).exists();
964
- assert.dom("[data-test-autoattached-card]").hasText("Jane Doe");
965
- await triggerEvent(`[data-test-autoattached-card]`, "mouseenter");
966
- assert.dom("[data-test-tooltip-content]").hasText("Current card is shared automatically");
967
- await click("[data-test-file-browser-toggle]");
968
- await click("[data-test-file=\"blog-post.gts\"]");
969
- await togglePlaygroundPanel();
970
- await click("[data-test-inspector-toggle]");
971
- await selectDeclaration("Category");
972
- await click("[data-test-instance-chooser]");
973
- await click("[data-option-index=\"1\"]");
974
- assert.dom(`[data-test-card="${testRealmURL}Category/future-tech"]`).exists();
975
- assert.dom("[data-test-autoattached-card]").hasText("Future Tech");
976
- await click("[data-test-remove-card-btn]");
977
- assert.dom("[data-test-autoattached-card]").doesNotExist();
978
- await click("[data-test-instance-chooser]");
979
- await click("[data-option-index=\"0\"]");
980
- assert.dom(`[data-test-card="${testRealmURL}Category/city-design"]`).exists();
981
- assert.dom("[data-test-autoattached-card]").hasText("City Design");
982
- await fillIn("[data-test-message-field]", `Message With Card and File`);
983
- await click("[data-test-send-message-btn]");
984
- await waitUntil(() => document.querySelectorAll("[data-test-message-idx]").length > 0);
985
- assertMessages(assert, [{
986
- from: "testuser",
987
- message: "Message With Card and File",
988
- files: [{
989
- sourceUrl: `${testRealmURL}blog-post.gts`,
990
- name: "blog-post.gts"
991
- }],
992
- cards: [{
993
- id: `${testRealmURL}Category/city-design`,
994
- cardTitle: "City Design"
995
- }]
996
- }]);
997
- });
998
- (0, import_qunit.test)("instance chooser only appears when panel is opened", async function(assert) {
999
- await openFileInPlayground("author.gts", testRealmURL, { declaration: "Author" });
1000
- assert.dom("[data-test-instance-chooser]").exists();
1001
- await click("[data-test-module-inspector-view=\"spec\"]");
1002
- assert.dom("[data-test-instance-chooser]").doesNotExist();
1003
- });
1004
- (0, import_qunit.test)("can autogenerate card instance if one does not exist in the realm", async function(assert) {
1005
- removeRecentFiles();
1006
- setRecentFiles([[testRealmURL, "person.gts"]]);
1007
- let recentFiles = getRecentFiles();
1008
- assert.strictEqual(recentFiles?.length, 1, "recent file count is correct");
1009
- let { data: results } = await realm.realmIndexQueryEngine.searchCards({ filter: { type: {
1010
- module: testRRI("person"),
1011
- name: "Person"
1012
- } } });
1013
- assert.strictEqual(results.length, 0);
1014
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1015
- assert.dom("[data-test-selected-item]").containsText("Untitled Person");
1016
- recentFiles = getRecentFiles();
1017
- assert.strictEqual(recentFiles?.length, 2, "new card is added to recent files");
1018
- let newCardId = trimJsonExtension(`${testRealmURL}${recentFiles?.[0][1]}`);
1019
- assertCardExists(assert, newCardId, "isolated");
1020
- await click("[data-test-instance-chooser]");
1021
- assert.dom("[data-option-index]").exists({ count: 1 }, "new card shows up in instance chooser dropdown");
1022
- ({data: results} = await realm.realmIndexQueryEngine.searchCards({ filter: { type: {
1023
- module: testRRI("person"),
1024
- name: "Person"
1025
- } } }));
1026
- assert.strictEqual(results.length, 1);
1027
- assert.strictEqual(results[0].id, newCardId);
1028
- });
1029
- (0, import_qunit.test)("does not autogenerate card instance if one exists in the realm but is not in recent cards", async function(assert) {
1030
- removeRecentFiles();
1031
- const cardId = `${testRealmURL}Person/pet-mango`;
1032
- let { data: results } = await realm.realmIndexQueryEngine.searchCards({ filter: { type: {
1033
- module: testRRI("person"),
1034
- name: "Pet"
1035
- } } });
1036
- assert.strictEqual(results.length, 1);
1037
- assert.strictEqual(results[0].id, cardId);
1038
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Pet" });
1039
- assert.dom("[data-test-selected-item]").doesNotContainText("Untitled Pet");
1040
- assert.dom("[data-test-selected-item]").containsText("Mango");
1041
- assertCardExists(assert, cardId, "isolated");
1042
- await click("[data-test-instance-chooser]");
1043
- assert.dom("[data-option-index]").exists({ count: 1 });
1044
- assert.dom("[data-option-index=\"0\"]").containsText("Mango");
1045
- ({data: results} = await realm.realmIndexQueryEngine.searchCards({ filter: { type: {
1046
- module: testRRI("person"),
1047
- name: "Pet"
1048
- } } }));
1049
- assert.strictEqual(results.length, 1);
1050
- assert.strictEqual(results[0].id, cardId);
1051
- });
1052
- (0, import_qunit.test)("can request AI assistant to fill in sample data", async function(assert) {
1053
- const prompt = `Fill in sample data for the attached card instance.`;
1054
- const menuItem = "Fill in Sample Data with AI";
1055
- const commandMessage = {
1056
- from: "testuser",
1057
- message: prompt,
1058
- cards: [{ id: `${testRealmURL}BlogPost/mad-hatter` }],
1059
- files: [{
1060
- name: "blog-post.gts",
1061
- sourceUrl: `${testRealmURL}blog-post.gts`
1062
- }]
1063
- };
1064
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
1065
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
1066
- await click("[data-test-instance-chooser]");
1067
- await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1068
- assertMessages(assert, [commandMessage]);
1069
- await click("[data-test-more-options-button]");
1070
- await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1071
- assertMessages(assert, [commandMessage, commandMessage]);
1072
- });
1073
- (0, import_qunit.test)("can request AI assistant to bulk generate samples", async function(assert) {
1074
- const prompt = `Generate 3 additional instances of the specified card definition, populated with sample data`;
1075
- const menuItem = `Generate 3 examples with AI`;
1076
- const commandMessage = {
1077
- from: "testuser",
1078
- message: prompt,
1079
- cards: [{ id: `${testRealmURL}BlogPost/mad-hatter` }],
1080
- files: [{
1081
- name: "blog-post.gts",
1082
- sourceUrl: `${testRealmURL}blog-post.gts`
1083
- }]
1084
- };
1085
- await openFileInPlayground("blog-post.gts", testRealmURL, { declaration: "BlogPost" });
1086
- assertCardExists(assert, `${testRealmURL}BlogPost/mad-hatter`);
1087
- await click("[data-test-instance-chooser]");
1088
- await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1089
- assertMessages(assert, [commandMessage]);
1090
- await click("[data-test-more-options-button]");
1091
- await click(`[data-test-boxel-menu-item-text="${menuItem}"]`);
1092
- assertMessages(assert, [commandMessage, commandMessage]);
1093
- });
1094
- });
1095
- (0, import_qunit.module)("multiple realms", function(hooks) {
1096
- let personalRealmURL;
1097
- let additionalRealmURL;
1098
- setupApplicationTest(hooks);
1099
- setupLocalIndexing(hooks);
1100
- let mockMatrixUtils = setupMockMatrix(hooks, { loggedInAs: "@testuser:localhost" });
1101
- let { setActiveRealms, setRealmPermissions, createAndJoinRoom } = mockMatrixUtils;
1102
- setupRealmCacheTeardown(hooks);
1103
- hooks.beforeEach(async function() {
1104
- createAndJoinRoom({
1105
- sender: "@testuser:localhost",
1106
- name: "room-test"
1107
- });
1108
- setupUserSubscription();
1109
- setupAuthEndpoints();
1110
- let realmServerService = getService("realm-server");
1111
- personalRealmURL = `${realmServerService.url}testuser/personal/`;
1112
- additionalRealmURL = `${realmServerService.url}testuser/aaa/`;
1113
- setActiveRealms([additionalRealmURL, personalRealmURL]);
1114
- await withCachedRealmSetup(async () => {
1115
- await setupAcceptanceTestRealm({
1116
- mockMatrixUtils,
1117
- realmURL: personalRealmURL,
1118
- contents: {
1119
- ...SYSTEM_CARD_FIXTURE_CONTENTS,
1120
- "author-card.gts": authorCard,
1121
- "StyleReference/local-style.json": localStyleReferenceCard,
1122
- "realm.json": realmConfigCardJSON({
1123
- name: `Test User's Workspace`,
1124
- backgroundURL: "https://i.postimg.cc/NjcjbyD3/4k-origami-flock.jpg",
1125
- iconURL: "https://i.postimg.cc/Rq550Bwv/T.png"
1126
- })
1127
- }
1128
- });
1129
- await setupAcceptanceTestRealm({
1130
- mockMatrixUtils,
1131
- realmURL: additionalRealmURL,
1132
- contents: {
1133
- ...SYSTEM_CARD_FIXTURE_CONTENTS,
1134
- "author-card.gts": authorCard,
1135
- "realm.json": realmConfigCardJSON({
1136
- name: `Additional Workspace`,
1137
- backgroundURL: "https://i.postimg.cc/4ycXQZ94/4k-powder-puff.jpg",
1138
- iconURL: "https://i.postimg.cc/BZwv0LyC/A.png"
1139
- })
1140
- }
1141
- });
1142
- });
1143
- setRealmPermissions({
1144
- [additionalRealmURL]: [
1145
- "read",
1146
- "write",
1147
- "realm-owner"
1148
- ],
1149
- [personalRealmURL]: [
1150
- "read",
1151
- "write",
1152
- "realm-owner"
1153
- ]
1154
- });
1155
- });
1156
- (0, import_qunit.test)("can create new instance in currently open realm", async function(assert) {
1157
- removeRecentFiles();
1158
- await openFileInPlayground("author-card.gts", additionalRealmURL, { declaration: "Author" });
1159
- assert.dom("[data-test-playground-panel] [data-test-card][data-test-card-format=\"isolated\"]").exists("new card is autogenerated");
1160
- let recentFiles = getRecentFiles();
1161
- assert.strictEqual(recentFiles?.[0][0], additionalRealmURL, "realm is correct");
1162
- assert.strictEqual(recentFiles?.length, 2);
1163
- await createNewInstance();
1164
- recentFiles = getRecentFiles();
1165
- assert.strictEqual(recentFiles?.length, 3, "recent file count is correct");
1166
- let newCardId = document.querySelector("[data-test-card]")?.getAttribute("data-test-card");
1167
- assert.ok(newCardId?.startsWith(additionalRealmURL));
1168
- assert.notOk(newCardId?.startsWith(personalRealmURL));
1169
- let recentCardId = trimJsonExtension(`${recentFiles?.[0][0]}${recentFiles?.[0][1]}`);
1170
- assert.strictEqual(newCardId, recentCardId);
1171
- assertCardExists(assert, recentCardId, "isolated", "new card is rendered in isolated format");
1172
- });
1173
- (0, import_qunit.test)("edit format is enabled for writable instances of read-only card definitions", async function(assert) {
1174
- removePlaygroundSelections();
1175
- removeRecentFiles();
1176
- removeRecentCards();
1177
- try {
1178
- setRecentFiles([[personalRealmURL, "StyleReference/local-style.json"]]);
1179
- await openFileInPlayground("style-reference.gts", baseRealm.url);
1180
- await waitFor("[data-test-instance-chooser]");
1181
- assert.dom("[data-test-selected-item]").containsText("Local Style Reference");
1182
- await waitFor("[data-test-edit-button]");
1183
- assert.dom("[data-test-edit-button]").exists("edit button is shown for writable instance");
1184
- await click("[data-test-edit-button]");
1185
- await waitFor("[data-test-card-format=\"edit\"]");
1186
- assert.dom("[data-test-card-format=\"edit\"]").exists("playground switches to edit format");
1187
- await fillIn("[data-test-card-format=\"edit\"] [data-test-field=\"styleName\"] input", "Updated Style Reference");
1188
- assert.dom("[data-test-card-format=\"edit\"] [data-test-field=\"styleName\"] input").isNotDisabled("styleName input is enabled for editing");
1189
- } finally {
1190
- removePlaygroundSelections();
1191
- removeRecentFiles();
1192
- removeRecentCards();
1193
- }
1194
- });
1195
- });
1196
- (0, import_qunit.module)("error handling", function(hooks) {
1197
- let realm;
1198
- setupApplicationTest(hooks);
1199
- setupLocalIndexing(hooks);
1200
- setupOnSave(hooks);
1201
- setupRealmCacheTeardown(hooks);
1202
- let mockMatrixUtils = setupMockMatrix(hooks, {
1203
- loggedInAs: "@testuser:localhost",
1204
- activeRealms: [testRealmURL]
1205
- });
1206
- let { setRealmPermissions, setActiveRealms, createAndJoinRoom } = mockMatrixUtils;
1207
- const boomPet = `import { contains, field, CardDef, Component, FieldDef, StringField, serialize } from 'https://cardstack.com/base/card-api';
1208
- // this field explodes when serialized (saved)
1209
- export class BoomField extends FieldDef {
1210
- @field cardTitle = contains(StringField);
1211
- static [serialize](_boom: any) {
1212
- throw new Error('Boom!');
1213
- }
1214
- static embedded = class Embedded extends Component<typeof this> {
1215
- <template>
1216
- <@fields.cardTitle />
1217
- </template>
1218
- };
1219
- }
1220
- export class BoomPet extends CardDef {
1221
- static displayName = 'Boom Pet';
1222
- @field boom = contains(BoomField);
1223
- }
1224
- `;
1225
- const boomPerson = `import { field, contains, CardDef, FieldDef, Component, StringField } from 'https://cardstack.com/base/card-api';
1226
- export class BoomPerson extends CardDef {
1227
- static displayName = 'Boom Person';
1228
- @field firstName = contains(StringField);
1229
- static isolated = class Isolated extends Component<typeof this> {
1230
- <template>
1231
- Hello <@fields.firstName />! {{this.boom}}
1232
- </template>
1233
- boom = () => fn();
1234
- }
1235
- }
1236
-
1237
- export class FailingField extends FieldDef {
1238
- static displayName = 'Failing Field';
1239
- @field cardTitle = contains(StringField);
1240
- static embedded = class Embedded extends Component<typeof this> {
1241
- <template>
1242
- <p>This will fail.</p> {{this.boom}}
1243
- </template>
1244
- boom = () => {
1245
- throw new Error('boom!');
1246
- };
1247
- };
1248
- }
1249
-
1250
- export class WorkingCard extends CardDef {
1251
- static displayName = 'Working Card';
1252
- static isolated = class Isolated extends Component<typeof this> {
1253
- <template>
1254
- <p>I am not broken!</p>
1255
- </template>
1256
- }
1257
- }
1258
- `;
1259
- const syntaxError = `
1260
- import { contains, field, CardDef } from "https://cardstack.com/base/card-api";
1261
- // missing StringField import
1262
- export class Boom extends CardDef {
1263
- @field firstName = contains(StringField);
1264
- }
1265
- `;
1266
- hooks.beforeEach(async function() {
1267
- createAndJoinRoom({
1268
- sender: "@testuser:localhost",
1269
- name: "room-test"
1270
- });
1271
- setupUserSubscription();
1272
- setupAuthEndpoints();
1273
- setActiveRealms([testRealmURL]);
1274
- setRealmPermissions({ [testRealmURL]: ["read", "write"] });
1275
- ({realm} = await withCachedRealmSetup(async () => setupAcceptanceTestRealm({
1276
- mockMatrixUtils,
1277
- realmURL: testRealmURL,
1278
- contents: {
1279
- ...SYSTEM_CARD_FIXTURE_CONTENTS,
1280
- "boom-pet.gts": boomPet,
1281
- "person.gts": personCard,
1282
- "boom-person.gts": boomPerson,
1283
- "syntax-error.gts": syntaxError,
1284
- "Person/delilah.json": { data: {
1285
- attributes: { cardInfo: { name: "Delilah" } },
1286
- meta: { adoptsFrom: {
1287
- module: `${testRealmURL}person`,
1288
- name: "Person"
1289
- } }
1290
- } }
1291
- }
1292
- })));
1293
- });
1294
- (0, import_qunit.test)("it renders a module error", async function(assert) {
1295
- await visitOperatorMode({
1296
- submode: "code",
1297
- codePath: `${testRealmURL}syntax-error.gts`
1298
- });
1299
- 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)");
1300
- });
1301
- (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) {
1302
- await realm.write("BoomPet/cassidy.json", JSON.stringify({ data: {
1303
- attributes: { title: "Cassidy Cat" },
1304
- meta: { adoptsFrom: {
1305
- module: `${testRealmURL}boom-pet`,
1306
- name: "BoomPet"
1307
- } }
1308
- } }));
1309
- setPlaygroundSelections({ [`${testRealmURL}boom-pet/BoomPet`]: {
1310
- cardId: rri(`${testRealmURL}BoomPet/cassidy`),
1311
- format: "isolated"
1312
- } });
1313
- await openFileInPlayground("boom-pet.gts", testRealmURL, { declaration: "BoomPet" });
1314
- assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error: Internal Server Error");
1315
- assert.dom("[data-test-playground-panel] [data-test-field=\"cardTitle\"]").doesNotExist();
1316
- assert.dom("[data-test-card-error]").containsText("This card contains an error.");
1317
- assert.dom("[data-test-error-message]").hasText("Boom!");
1318
- assert.dom("[data-test-format-chooser]").doesNotExist();
1319
- await click("[data-test-toggle-details]");
1320
- assert.dom("[data-test-error-details]").includesText("Boom! at [cardstack-serialize]");
1321
- });
1322
- (0, import_qunit.test)("it renders error info when creating new instance causes error after file was created in realm", async function(assert) {
1323
- await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "BoomPerson" });
1324
- assert.dom("[data-test-instance-chooser]").hasText("Select card instance");
1325
- assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1326
- await createNewInstance();
1327
- assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1328
- assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1329
- assert.dom("[data-test-error-message]").hasText("Encountered error rendering HTML for card: fn is not defined");
1330
- await click("[data-test-toggle-details]");
1331
- assert.dom("[data-test-error-details]").containsText("fn is not defined");
1332
- await withoutLoaderMonitoring(async () => {
1333
- getService("loader-service").resetLoader();
1334
- await realm.write("boom-person.gts", `import { field, contains, CardDef, Component, StringField } from 'https://cardstack.com/base/card-api';
1335
- export class BoomPerson extends CardDef {
1336
- static displayName = 'Boom Person';
1337
- @field firstName = contains(StringField);
1338
- static isolated = class Isolated extends Component<typeof this> {
1339
- <template>
1340
- Hello <@fields.firstName />!
1341
- </template>
1342
- boom = () => fn();
1343
- }
1344
- }
1345
- `);
1346
- });
1347
- await waitFor(`[data-test-error-container]`, {
1348
- count: 0,
1349
- timeout: 5e3
1350
- });
1351
- assert.dom("[data-test-error-container]").doesNotExist();
1352
- });
1353
- (0, import_qunit.test)("it can clear card-creation error that did not result in new file in the realm", async function(assert) {
1354
- await openFileInPlayground("boom-pet.gts", testRealmURL, { declaration: "BoomPet" });
1355
- assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1356
- await createNewInstance();
1357
- assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1358
- assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1359
- assert.dom("[data-test-error-message]").hasText("Boom!");
1360
- getService("loader-service").resetLoader();
1361
- await realm.write("boom-pet.gts", `import { contains, field, CardDef, Component, FieldDef, StringField } from 'https://cardstack.com/base/card-api';
1362
- export class BoomPet extends CardDef {
1363
- static displayName = 'Boom Pet';
1364
- @field boom = contains(StringField);
1365
- }
1366
- `);
1367
- await waitFor(`[data-test-error-container]`, {
1368
- count: 0,
1369
- timeout: 5e3
1370
- });
1371
- assert.dom("[data-test-error-container]").doesNotExist();
1372
- });
1373
- (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) {
1374
- await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "BoomPerson" });
1375
- assert.dom("[data-test-instance-chooser]").containsText("Select card instance");
1376
- assert.dom("[data-test-error-container]").containsText("This card contains an error", "Auto-generated card has error in it");
1377
- await selectDeclaration("WorkingCard");
1378
- assert.dom("[data-test-error-container]").doesNotExist("error clears when selecting different card def");
1379
- await selectDeclaration("BoomPerson");
1380
- assert.dom("[data-test-error-container]").exists("can navigate back to the error card def");
1381
- });
1382
- (0, import_qunit.test)("it can clear card-creation error for a failing field", async function(assert) {
1383
- await openFileInPlayground("boom-person.gts", testRealmURL, { declaration: "FailingField" });
1384
- assert.dom("[data-test-card-error]").exists("auto-generated card has error in it");
1385
- await createNewInstance();
1386
- assert.dom("[data-test-playground-panel] [data-test-card]").doesNotExist();
1387
- assert.dom("[data-test-card-error]").hasText("This card contains an error.");
1388
- assert.dom("[data-test-error-message]").hasText("Encountered error rendering HTML for card: boom!");
1389
- await withoutLoaderMonitoring(async () => {
1390
- getService("loader-service").resetLoader();
1391
- await realm.write("boom-person.gts", `import { contains, field, CardDef, Component, FieldDef, StringField } from 'https://cardstack.com/base/card-api';
1392
- export class FailingField extends FieldDef {
1393
- static displayName = 'Failing Field';
1394
- @field cardTitle = contains(StringField);
1395
- static embedded = class Embedded extends Component<typeof this> {
1396
- <template>
1397
- <p>This will not fail.</p>
1398
- </template>
1399
- };
1400
- }
1401
- `);
1402
- });
1403
- await waitFor(`[data-test-error-container]`, {
1404
- count: 0,
1405
- timeout: 5e3
1406
- });
1407
- assert.dom("[data-test-error-container]").doesNotExist();
1408
- });
1409
- (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) {
1410
- const cardId = rri(`${testRealmURL}Person/delilah`);
1411
- setRecentFiles([[testRealmURL, "Person/delilah.json"]]);
1412
- setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1413
- cardId,
1414
- format: "isolated"
1415
- } });
1416
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1417
- await click("[data-test-edit-button]");
1418
- assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"] input").hasValue("Delilah");
1419
- assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1420
- assert.dom("[data-test-format-chooser]").exists();
1421
- assert.dom("[data-test-error-container]").doesNotExist();
1422
- await realm.write("Person/delilah.json", JSON.stringify({ data: {
1423
- attributes: { cardInfo: { name: "Lila" } },
1424
- meta: { adoptsFrom: {
1425
- module: `${testRealmURL}Person/missing-person`,
1426
- name: "MissingPerson"
1427
- } }
1428
- } }));
1429
- await settled();
1430
- assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"] input").hasValue("Delilah");
1431
- assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1432
- assert.dom("[data-test-format-chooser]").exists();
1433
- assert.dom("[data-test-error-container]").doesNotExist();
1434
- });
1435
- (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) {
1436
- await realm.write("Person/delilah.json", JSON.stringify({ data: {
1437
- attributes: { cardInfo: { name: "Lila" } },
1438
- meta: { adoptsFrom: {
1439
- module: `${testRealmURL}Person/missing-person`,
1440
- name: "MissingPerson"
1441
- } }
1442
- } }));
1443
- const cardId = rri(`${testRealmURL}Person/delilah`);
1444
- setRecentFiles([[testRealmURL, "Person/delilah.json"]]);
1445
- setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1446
- cardId,
1447
- format: "isolated"
1448
- } });
1449
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1450
- assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error");
1451
- assert.dom("[data-test-card-error]").exists();
1452
- assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"]").containsText("Delilah", "last known good state is rendered");
1453
- assert.dom("[data-test-error-message]").hasText(`${testRealmURL}Person/missing-person not found`);
1454
- assert.dom("[data-test-format-chooser]").doesNotExist();
1455
- await click("[data-test-toggle-details]");
1456
- assert.dom("[data-test-error-details]").containsText("Person/missing-person not found");
1457
- assert.dom("[data-test-error-stack]").exists();
1458
- await realm.write("Person/delilah.json", JSON.stringify({ data: {
1459
- attributes: { cardInfo: { name: "Lila" } },
1460
- meta: { adoptsFrom: {
1461
- module: `${testRealmURL}person`,
1462
- name: "Person"
1463
- } }
1464
- } }));
1465
- await settled();
1466
- assert.dom("[data-test-boxel-card-header-title]").containsText("Person");
1467
- assert.dom("[data-test-playground-panel] [data-test-field=\"cardInfo-name\"]").containsText("Lila");
1468
- assert.dom("[data-test-error-container]").doesNotExist("can recover from missing link error");
1469
- });
1470
- (0, import_qunit.test)("it renders error message for missing file", async function(assert) {
1471
- setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1472
- cardId: rri(`${testRealmURL}Person/chef-mike`),
1473
- format: "isolated"
1474
- } });
1475
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1476
- assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error: Not Found");
1477
- assert.dom("[data-test-card-error]").containsText("File not found. Please choose or create another instance.");
1478
- });
1479
- (0, import_qunit.test)("it renders error message for a card whose adoptsFrom module is missing", async function(assert) {
1480
- await realm.write("Person/chef-mike.json", JSON.stringify({ data: {
1481
- attributes: { title: "Chef Mike" },
1482
- meta: { adoptsFrom: {
1483
- module: `${testRealmURL}Person/missing-person`,
1484
- name: "MissingPerson"
1485
- } }
1486
- } }));
1487
- setPlaygroundSelections({ [`${testRealmURL}person/Person`]: {
1488
- cardId: rri(`${testRealmURL}Person/chef-mike`),
1489
- format: "isolated"
1490
- } });
1491
- await openFileInPlayground("person.gts", testRealmURL, { declaration: "Person" });
1492
- assert.dom("[data-test-boxel-card-header-title]").containsText("Card Error");
1493
- assert.dom("[data-test-error-message]").containsText(`${testRealmURL}Person/missing-person not found`);
1494
- });
1495
- });
1496
- });
1497
- //#endregion