@cardstack/boxel-cli 0.3.2-unstable.59 → 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 +2 -2
  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
@@ -0,0 +1,1776 @@
1
+ import { s as __toESM } from "./chunk-CGdGNDIi.js";
2
+ import { Jr as wrapper_default, Yn as testRRI, Zn as testRealmURL, ca as Deferred, ua as rri, vi as baseRealm } from "./runtime-common-C7uLt5dN.js";
3
+ import { f as fileDefFormats } from "./dompurify-runtime-DnZEeRZb.js";
4
+ import { n as Submodes } from "./submode-switcher-C7knA9zW.js";
5
+ import { i as CodeModePanelHeights, v as src_default } from "./local-storage-keys-wtjuKtZY.js";
6
+ import { A as settled, I as waitUntil, N as visit, a as find, d as click, o as waitFor, s as fillIn, w as currentURL } from "./dist-D1U_uSwt.js";
7
+ import { s as Position } from "./editor.api-C-6J5J7V.js";
8
+ import "./editor.main-CpuM6HrX.js";
9
+ import { t as require_qunit } from "./qunit-Cqwmt9Vl.js";
10
+ import { r as getService } from "./dist-CY3T64Hs.js";
11
+ import { D as setupAcceptanceTestRealm, E as setMonacoContent, F as setupUserSubscription, M as setupOnSave, N as setupRealmCacheTeardown, _ as elementIsVisible, a as SYSTEM_CARD_FIXTURE_CONTENTS, at as setupAuthEndpoints, b as getMonacoContent, dt as percySnapshot, j as setupLocalIndexing, nt as setupApplicationTest, q as withCachedRealmSetup, t as setupMockMatrix, tt as visitOperatorMode, u as cardDefFieldCount, w as realmConfigCardJSON, x as makeMinimalPng } from "./mock-matrix-BhFWlMMr.js";
12
+ import { t as assertRecentFileURLs } from "./recent-files-cards-C3vIjaKb.js";
13
+ //#region tests/acceptance/code-submode/inspector-test.ts
14
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
15
+ var testRealmURL2 = "http://test-realm/test2/";
16
+ var realmAFiles = {
17
+ "realm.json": realmConfigCardJSON({
18
+ name: "Test Workspace A",
19
+ backgroundURL: "https://i.postimg.cc/VNvHH93M/pawel-czerwinski-Ly-ZLa-A5jti-Y-unsplash.jpg",
20
+ iconURL: "https://i.postimg.cc/L8yXRvws/icon.png"
21
+ }),
22
+ "index.json": { data: {
23
+ type: "card",
24
+ attributes: {},
25
+ meta: { adoptsFrom: {
26
+ module: "https://cardstack.com/base/cards-grid",
27
+ name: "CardsGrid"
28
+ } }
29
+ } }
30
+ };
31
+ var indexCardSource = `
32
+ import { CardDef, Component } from "https://cardstack.com/base/card-api";
33
+
34
+ export class Index extends CardDef {
35
+ static isolated = class Isolated extends Component<typeof this> {
36
+ <template>
37
+ <div data-test-index-card>
38
+ Hello, world!
39
+ </div>
40
+ </template>
41
+ };
42
+ }
43
+ `;
44
+ var personCardSource = `
45
+ import { contains, containsMany, field, linksToMany, CardDef, Component } from "https://cardstack.com/base/card-api";
46
+ import StringField from "https://cardstack.com/base/string";
47
+ import { Friend } from './friend';
48
+
49
+ export class Person extends CardDef {
50
+ static displayName = 'Person';
51
+ @field firstName = contains(StringField);
52
+ @field lastName = contains(StringField);
53
+ @field cardTitle = contains(StringField, {
54
+ computeVia: function (this: Person) {
55
+ return [this.firstName, this.lastName].filter(Boolean).join(' ');
56
+ },
57
+ });
58
+ @field friends = linksToMany(Friend);
59
+ @field address = containsMany(StringField);
60
+ static isolated = class Isolated extends Component<typeof this> {
61
+ <template>
62
+ <div data-test-person>
63
+ <p>First name: <@fields.firstName /></p>
64
+ <p>Last name: <@fields.lastName /></p>
65
+ <p>Title: <@fields.cardTitle /></p>
66
+ <p>Address List: <@fields.address /></p>
67
+ <p>Friends: <@fields.friends /></p>
68
+ </div>
69
+ <style scoped>
70
+ div {
71
+ color: green;
72
+ content: '';
73
+ }
74
+ </style>
75
+ </template>
76
+ };
77
+ }
78
+ `;
79
+ var petCardSource = `
80
+ import { contains, field, Component, CardDef } from "https://cardstack.com/base/card-api";
81
+ import StringField from "https://cardstack.com/base/string";
82
+
83
+ export class Pet extends CardDef {
84
+ static displayName = 'Pet';
85
+ @field name = contains(StringField);
86
+ @field cardTitle = contains(StringField, {
87
+ computeVia: function (this: Pet) {
88
+ return this.name;
89
+ },
90
+ });
91
+ static embedded = class Embedded extends Component<typeof this> {
92
+ <template>
93
+ <h3 data-test-pet={{@model.name}}>
94
+ <@fields.name/>
95
+ </h3>
96
+ </template>
97
+ }
98
+ }
99
+ `;
100
+ var employeeCardSource = `
101
+ import {
102
+ contains,
103
+ field,
104
+ Component,
105
+ } from 'https://cardstack.com/base/card-api';
106
+ import StringField from 'https://cardstack.com/base/string';
107
+ import { Person } from './person';
108
+
109
+ export class Employee extends Person {
110
+ static displayName = 'Employee';
111
+ @field department = contains(StringField);
112
+
113
+ static isolated = class Isolated extends Component<typeof this> {
114
+ <template>
115
+ <@fields.firstName /> <@fields.lastName />
116
+
117
+ Department: <@fields.department />
118
+ </template>
119
+ };
120
+ }
121
+ `;
122
+ var erroringModuleSource = `throw new Error('boom');`;
123
+ var inThisFileSource = `
124
+ import {
125
+ contains,
126
+ field,
127
+ CardDef,
128
+ FieldDef,
129
+ } from 'https://cardstack.com/base/card-api';
130
+ import StringField from 'https://cardstack.com/base/string';
131
+
132
+ export const exportedVar = 'exported var';
133
+
134
+ const localVar = 'local var';
135
+
136
+ class LocalClass {}
137
+ export class ExportedClass {}
138
+
139
+ export class ExportedClassInheritLocalClass extends LocalClass {}
140
+
141
+ function localFunction() {}
142
+ export function exportedFunction() {}
143
+
144
+ export { LocalClass as AClassWithExportName };
145
+
146
+ class LocalCard extends CardDef {
147
+ static displayName = 'local card';
148
+ }
149
+
150
+ export class ExportedCard extends CardDef {
151
+ static displayName = 'exported card';
152
+ @field someString = contains(StringField);
153
+ }
154
+
155
+ export class ExportedCardInheritLocalCard extends LocalCard {
156
+ static displayName = 'exported card extends local card';
157
+ }
158
+
159
+ class LocalField extends FieldDef {
160
+ static displayName = 'local field';
161
+ }
162
+ export class ExportedField extends FieldDef {
163
+ static displayName = 'exported field';
164
+ @field someString = contains(StringField);
165
+ }
166
+
167
+ export class ExportedFieldInheritLocalField extends LocalField {
168
+ static displayName = 'exported field extends local field';
169
+ }
170
+
171
+ class LocalCardWithoutExportRelationship extends CardDef {
172
+ static displayName = 'local card but without export relationship';
173
+ }
174
+
175
+ export default class DefaultClass {}
176
+ `;
177
+ var exportedCardFieldCount = `${cardDefFieldCount + 1}`;
178
+ var commandModuleSource = `
179
+ import { Command } from '@cardstack/runtime-common';
180
+
181
+ export class SampleCommand extends Command {
182
+ async getInputType() {
183
+ return undefined;
184
+ }
185
+
186
+ protected async run(input) {
187
+ return input;
188
+ }
189
+ }
190
+ `;
191
+ var componentModuleSource = `
192
+ import GlimmerComponent from '@glimmer/component';
193
+
194
+ export default class SampleComponent extends GlimmerComponent {
195
+ <template>
196
+ <div data-test-sample-component>Hello</div>
197
+ </template>
198
+ }
199
+ `;
200
+ var friendCardSource = `
201
+ import { contains, linksTo, field, CardDef, Component } from "https://cardstack.com/base/card-api";
202
+ import StringField from "https://cardstack.com/base/string";
203
+
204
+ export class Friend extends CardDef {
205
+ static displayName = 'Friend';
206
+ @field name = contains(StringField);
207
+ @field friend = linksTo(() => Friend);
208
+ @field cardTitle = contains(StringField, {
209
+ computeVia: function (this: Person) {
210
+ return name;
211
+ },
212
+ });
213
+ static isolated = class Isolated extends Component<typeof this> {
214
+ <template>
215
+ <div data-test-person>
216
+ <p>First name: <@fields.firstName /></p>
217
+ <p>Last name: <@fields.lastName /></p>
218
+ <p>Title: <@fields.cardTitle /></p>
219
+ </div>
220
+ <style scoped>
221
+ div {
222
+ color: green;
223
+ content: '';
224
+ }
225
+ </style>
226
+ </template>
227
+ };
228
+ }
229
+ `;
230
+ var exportsSource = `
231
+ import {
232
+ contains,
233
+ field,
234
+ CardDef,
235
+ FieldDef
236
+ } from 'https://cardstack.com/base/card-api';
237
+ import StringField from 'https://cardstack.com/base/string';
238
+
239
+ export class AncestorCard1 extends CardDef {
240
+ static displayName = 'AncestorCard1';
241
+ @field name = contains(StringField);
242
+ }
243
+
244
+ export class AncestorCard2 extends CardDef {
245
+ static displayName = 'AncestorCard2';
246
+ @field name = contains(StringField);
247
+ }
248
+
249
+ export class AncestorCard3 extends CardDef {
250
+ static displayName = 'AncestorCard3';
251
+ @field name = contains(StringField);
252
+ }
253
+
254
+ export class AncestorField1 extends FieldDef {
255
+ static displayName = 'AncestorField1';
256
+ @field name = contains(StringField);
257
+ }
258
+ `;
259
+ var specialExportsSource = `
260
+ import {
261
+ contains,
262
+ field,
263
+ CardDef
264
+ } from 'https://cardstack.com/base/card-api';
265
+ import StringField from 'https://cardstack.com/base/string';
266
+
267
+ class AncestorCard extends CardDef {
268
+ static displayName = 'Ancestor';
269
+ @field name = contains(StringField);
270
+ }
271
+
272
+ export default class DefaultAncestorCard extends CardDef {
273
+ static displayName = 'DefaultAncestor';
274
+ @field name = contains(StringField);
275
+ }
276
+
277
+ export { AncestorCard as RenamedAncestorCard}
278
+ `;
279
+ var importsSource = `
280
+ import { AncestorCard2, AncestorField1 } from './exports';
281
+ import { AncestorCard3 as FatherCard3 } from './exports';
282
+ import DefaultAncestorCard from './special-exports';
283
+ import { RenamedAncestorCard } from './special-exports';
284
+ import {
285
+ contains,
286
+ field,
287
+ linksTo,
288
+ linksToMany
289
+ } from 'https://cardstack.com/base/card-api';
290
+
291
+ export class ChildCard1 extends AncestorCard2 {
292
+ static displayName = 'ChildCard1';
293
+ @field field1 = contains(AncestorField1)
294
+ @field field2 = linksTo(AncestorCard2)
295
+ @field field3 = linksTo(()=>ChildCard2)
296
+ @field field4 = linksToMany(AncestorCard2)
297
+ }
298
+
299
+ export class ChildCard2 extends DefaultAncestorCard {
300
+ static displayName = 'ChildCard2';
301
+ }
302
+
303
+ export class ChildCard3 extends RenamedAncestorCard{
304
+ static displayName = 'ChildCard3';
305
+ }
306
+
307
+ export class ChildCard4 extends FatherCard3{
308
+ static displayName = 'ChildCard4';
309
+ }
310
+
311
+ export class ChildCard5 extends ChildCard2 {
312
+ static displayName = 'ChildCard5';
313
+ }
314
+
315
+ export class ChildField1 extends AncestorField1{
316
+ static displayName = 'ChildField1';
317
+ }
318
+ `;
319
+ var reExportSource = `
320
+ import {
321
+ CardDef,
322
+ FieldDef,
323
+ BaseDef as BDef,
324
+ contains,
325
+ } from 'https://cardstack.com/base/card-api';
326
+ import StringField from 'https://cardstack.com/base/string';
327
+ import NumberField from 'https://cardstack.com/base/number';
328
+
329
+ export const exportedVar = 'exported var';
330
+
331
+ export { StringField as StrCard };
332
+
333
+ export { FieldDef as FDef, CardDef, contains, BDef };
334
+
335
+ export * from './in-this-file'; //Will not display inside "in-this-file"
336
+
337
+ export default NumberField;
338
+ export { Person as Human } from './person';
339
+
340
+ export { default as Date } from 'https://cardstack.com/base/date';
341
+ `;
342
+ var fileDefSource = `
343
+ import { FileDef } from 'https://cardstack.com/base/file-api';
344
+ import {
345
+ contains,
346
+ field,
347
+ } from 'https://cardstack.com/base/card-api';
348
+ import StringField from 'https://cardstack.com/base/string';
349
+
350
+ export class CustomFileDef extends FileDef {
351
+ static displayName = 'custom file';
352
+ @field customTag = contains(StringField);
353
+ }
354
+ `;
355
+ var pngDefModuleSource = `
356
+ export { PngDef } from 'https://cardstack.com/base/png-image-def';
357
+ `;
358
+ var localInheritSource = `
359
+ import {
360
+ contains,
361
+ field,
362
+ CardDef,
363
+ FieldDef,
364
+ } from 'https://cardstack.com/base/card-api';
365
+
366
+ class GrandParent extends CardDef {
367
+ static displayName = 'local grandparent';
368
+ }
369
+
370
+ class Parent extends GrandParent {
371
+ static displayName = 'local parent';
372
+ }
373
+
374
+ class Activity extends FieldDef {
375
+ static displayName = 'my activity';
376
+ }
377
+ class Hobby extends Activity {
378
+ static displayName = 'my hobby';
379
+ }
380
+ class Sport extends Hobby {
381
+ static displayName = 'my sport';
382
+ }
383
+
384
+ export class Child extends Parent {
385
+ static displayName = 'exported child';
386
+ @field sport = contains(Sport);
387
+ }
388
+ `;
389
+ (0, import_qunit.module)("Acceptance | code submode | inspector tests", function(hooks) {
390
+ let adapter;
391
+ let monacoService;
392
+ setupApplicationTest(hooks);
393
+ setupLocalIndexing(hooks);
394
+ setupOnSave(hooks);
395
+ setupRealmCacheTeardown(hooks);
396
+ let mockMatrixUtils = setupMockMatrix(hooks, {
397
+ loggedInAs: "@testuser:localhost",
398
+ activeRealms: [testRealmURL, testRealmURL2],
399
+ autostart: true
400
+ });
401
+ let { setRealmPermissions, createAndJoinRoom } = mockMatrixUtils;
402
+ hooks.beforeEach(async function() {
403
+ setRealmPermissions({
404
+ [testRealmURL]: ["read", "write"],
405
+ [testRealmURL2]: ["read", "write"]
406
+ });
407
+ createAndJoinRoom({
408
+ sender: "@testuser:localhost",
409
+ name: "room-test"
410
+ });
411
+ setupUserSubscription();
412
+ setupAuthEndpoints();
413
+ ({adapter} = await withCachedRealmSetup(async () => {
414
+ await setupAcceptanceTestRealm({
415
+ mockMatrixUtils,
416
+ contents: {
417
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
418
+ ...realmAFiles
419
+ },
420
+ realmURL: testRealmURL2
421
+ });
422
+ return setupAcceptanceTestRealm({
423
+ mockMatrixUtils,
424
+ contents: {
425
+ ...SYSTEM_CARD_FIXTURE_CONTENTS,
426
+ "index.gts": indexCardSource,
427
+ "pet-person.gts": personCardSource,
428
+ "person.gts": personCardSource,
429
+ "pet.gts": petCardSource,
430
+ "friend.gts": friendCardSource,
431
+ "employee.gts": employeeCardSource,
432
+ "in-this-file.gts": inThisFileSource,
433
+ "exports.gts": exportsSource,
434
+ "special-exports.gts": specialExportsSource,
435
+ "imports.gts": importsSource,
436
+ "re-export.gts": reExportSource,
437
+ "local-inherit.gts": localInheritSource,
438
+ "file-def.gts": fileDefSource,
439
+ "png-def-module.gts": pngDefModuleSource,
440
+ "images/sample.png": makeMinimalPng(),
441
+ "images/logo.png": makeMinimalPng(2, 2),
442
+ "command-module.gts": commandModuleSource,
443
+ "component-module.gts": componentModuleSource,
444
+ "erroring-module.gts": erroringModuleSource,
445
+ "empty-file.gts": "",
446
+ "sample-styles.css": "body { color: red; }",
447
+ "person-entry.json": { data: {
448
+ type: "card",
449
+ attributes: {
450
+ cardTitle: "Person",
451
+ cardDescription: "Spec",
452
+ specType: "card",
453
+ ref: {
454
+ module: `./person`,
455
+ name: "Person"
456
+ }
457
+ },
458
+ meta: { adoptsFrom: {
459
+ module: `${baseRealm.url}spec`,
460
+ name: "Spec"
461
+ } }
462
+ } },
463
+ "index.json": { data: {
464
+ type: "card",
465
+ attributes: {},
466
+ meta: { adoptsFrom: {
467
+ module: "./index",
468
+ name: "Index"
469
+ } }
470
+ } },
471
+ "léame.md": "hola mundo",
472
+ "readme.md": "hello world",
473
+ "not-json.json": "I am not JSON.",
474
+ "Person/1.json": { data: {
475
+ type: "card",
476
+ attributes: {
477
+ firstName: "Hassan",
478
+ lastName: "Abdel-Rahman"
479
+ },
480
+ meta: { adoptsFrom: {
481
+ module: "../person",
482
+ name: "Person"
483
+ } }
484
+ } },
485
+ "Pet/mango.json": { data: {
486
+ attributes: { name: "Mango" },
487
+ meta: { adoptsFrom: {
488
+ module: `${testRealmURL}pet`,
489
+ name: "Pet"
490
+ } }
491
+ } },
492
+ "Pet/vangogh.json": { data: {
493
+ attributes: { name: "Van Gogh" },
494
+ meta: { adoptsFrom: {
495
+ module: `${testRealmURL}pet`,
496
+ name: "Pet"
497
+ } }
498
+ } },
499
+ "z00.json": "{}",
500
+ "z01.json": "{}",
501
+ "z02.json": "{}",
502
+ "z03.json": "{}",
503
+ "z04.json": "{}",
504
+ "z05.json": "{}",
505
+ "z06.json": "{}",
506
+ "z07.json": "{}",
507
+ "z08.json": "{}",
508
+ "z09.json": "{}",
509
+ "z10.json": "{}",
510
+ "z11.json": "{}",
511
+ "z12.json": "{}",
512
+ "z13.json": "{}",
513
+ "z14.json": "{}",
514
+ "z15.json": "{}",
515
+ "z16.json": "{}",
516
+ "z17.json": "{}",
517
+ "z18.json": "{}",
518
+ "z19.json": "{}",
519
+ "zzz/zzz/file.json": "{}",
520
+ "realm.json": realmConfigCardJSON({
521
+ name: "Test Workspace B",
522
+ backgroundURL: "https://i.postimg.cc/VNvHH93M/pawel-czerwinski-Ly-ZLa-A5jti-Y-unsplash.jpg",
523
+ iconURL: "https://i.postimg.cc/L8yXRvws/icon.png"
524
+ })
525
+ }
526
+ });
527
+ }));
528
+ monacoService = getService("monaco-service");
529
+ });
530
+ (0, import_qunit.test)("inspector will show json instance definition and module definition in card inheritance panel", async function(assert) {
531
+ await visitOperatorMode({
532
+ stacks: [[{
533
+ id: `${testRealmURL}Person/1`,
534
+ format: "isolated"
535
+ }]],
536
+ submode: "code",
537
+ codePath: `${testRealmURL}Person/1.json`
538
+ });
539
+ await waitFor("[data-test-card-inspector-panel]");
540
+ await waitFor("[data-test-card-module-definition]");
541
+ await waitFor("[data-test-card-instance-definition]");
542
+ assert.dom("[data-test-card-module-definition]").includesText("Card");
543
+ assert.dom("[data-test-card-module-definition] [data-test-definition-file-extension]").includesText(".gts");
544
+ await waitFor("[data-test-card-module-definition] [data-test-definition-realm-name]");
545
+ assert.dom("[data-test-card-module-definition] [data-test-definition-realm-name]").includesText("Test Workspace B");
546
+ assert.dom("[data-test-card-module-definition]").doesNotHaveClass("active");
547
+ assert.dom("[data-test-card-instance-definition]").includesText("Hassan Abdel-Rahman");
548
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-file-extension]").includesText(".JSON");
549
+ await waitFor("[data-test-card-instance-definition] [data-test-definition-realm-name]");
550
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-realm-name]").includesText("Test Workspace B");
551
+ assert.dom("[data-test-definition-info-text]").includesText("Last saved just now");
552
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-header]").hasClass("active");
553
+ });
554
+ (0, import_qunit.test)("inspector will show module definition in card inheritance panel", async function(assert) {
555
+ await visitOperatorMode({
556
+ stacks: [[]],
557
+ submode: "code",
558
+ codePath: `${testRealmURL}person.gts`
559
+ });
560
+ await waitFor("[data-test-card-inspector-panel]");
561
+ await waitFor("[data-test-card-module-definition]");
562
+ assert.dom("[data-test-card-module-definition]").includesText("Card");
563
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}person.gts`);
564
+ assert.dom("[data-test-card-module-definition] [data-test-definition-header]").hasClass("active");
565
+ assert.dom("[data-test-card-module-definition] [data-test-definition-file-extension]").includesText(".gts");
566
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}person.gts`);
567
+ assert.dom("[data-test-card-module-definition]").includesText("Card");
568
+ await waitFor("[data-test-card-module-definition] [data-test-definition-realm-name]");
569
+ assert.dom("[data-test-card-module-definition] [data-test-definition-realm-name]").includesText("Test Workspace B");
570
+ assert.dom("[data-test-card-instance-definition]").doesNotExist();
571
+ });
572
+ (0, import_qunit.test)("can switch between inspector showing module definition and inspector showing json instance definition in card inheritance panel", async function(assert) {
573
+ await visitOperatorMode({
574
+ stacks: [[]],
575
+ submode: "code",
576
+ codePath: `${testRealmURL}person.gts`
577
+ });
578
+ await waitFor("[data-test-card-inspector-panel]");
579
+ await waitFor("[data-test-card-module-definition]");
580
+ assert.dom("[data-test-card-module-definition]").includesText("Card");
581
+ assert.dom("[data-test-card-instance-definition]").doesNotExist();
582
+ await click("[data-test-file-browser-toggle]");
583
+ await click("[data-test-directory=\"Person/\"]");
584
+ await waitFor("[data-test-file=\"Person/1.json\"]");
585
+ await click("[data-test-file=\"Person/1.json\"]");
586
+ await click("[data-test-inspector-toggle]");
587
+ await waitFor("[data-test-card-inspector-panel]");
588
+ await waitFor("[data-test-card-module-definition]");
589
+ assert.dom("[data-test-card-instance-definition]").includesText("Hassan Abdel-Rahman");
590
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-file-extension]").includesText(".JSON");
591
+ });
592
+ (0, import_qunit.test)("\"in-this-file\" panel displays all elements and re-highlights upon selection", async function(assert) {
593
+ await visitOperatorMode({
594
+ stacks: [[]],
595
+ submode: "code",
596
+ codePath: `${testRealmURL}in-this-file.gts`
597
+ });
598
+ await waitFor("[data-test-card-inspector-panel]");
599
+ await waitFor("[data-test-current-module-name]");
600
+ await waitFor("[data-test-in-this-file-selector]");
601
+ let elementName = "default (DefaultClass) class";
602
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(11)").hasText(elementName, "defaults to the last declaration");
603
+ assert.true(monacoService.getLineCursorOn()?.includes("DefaultClass"));
604
+ [
605
+ "AClassWithExportName (LocalClass) class",
606
+ "ExportedClass class",
607
+ "ExportedClassInheritLocalClass class",
608
+ "exportedFunction function",
609
+ "LocalCard card def",
610
+ "ExportedCard card def",
611
+ "ExportedCardInheritLocalCard card def",
612
+ "LocalField field def",
613
+ "ExportedField field def",
614
+ "ExportedFieldInheritLocalField field def",
615
+ "default (DefaultClass) class"
616
+ ].forEach(async (elementName, index) => {
617
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`);
618
+ assert.dom(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`).hasText(elementName);
619
+ });
620
+ assert.dom("[data-test-boxel-selector-item]").exists({ count: 11 });
621
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(elementName);
622
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
623
+ elementName = "ExportedCard";
624
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
625
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
626
+ await waitFor("[data-test-card-module-definition]");
627
+ assert.dom("[data-test-inheritance-panel-header]").exists();
628
+ assert.dom("[data-test-card-module-definition]").exists();
629
+ assert.dom("[data-test-definition-header]").includesText("Card Definition");
630
+ assert.dom("[data-test-card-module-definition]").includesText("exported card");
631
+ await waitFor("[data-test-card-schema=\"exported card\"]");
632
+ assert.dom("[data-test-card-schema=\"exported card\"]").exists({ count: 1 });
633
+ assert.dom(`[data-test-card-schema="exported card"] [data-test-field-name="someString"] [data-test-card-display-name="String"]`).exists();
634
+ assert.dom(`[data-test-total-fields]`).containsText(exportedCardFieldCount);
635
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
636
+ elementName = "ExportedField";
637
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
638
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} field def`);
639
+ await waitFor("[data-test-card-module-definition]");
640
+ assert.dom("[data-test-inheritance-panel-header]").exists();
641
+ assert.dom("[data-test-definition-header]").includesText("Field Definition");
642
+ assert.dom("[data-test-card-module-definition]").includesText("exported field");
643
+ await waitFor("[data-test-card-schema=\"exported field\"]");
644
+ assert.dom("[data-test-card-schema=\"exported field\"]").exists({ count: 1 });
645
+ assert.dom(`[data-test-total-fields]`).containsText("1");
646
+ assert.dom(`[data-test-card-schema="exported field"] [data-test-field-name="someString"] [data-test-card-display-name="String"]`).exists();
647
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
648
+ elementName = "exportedFunction";
649
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
650
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} function`);
651
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
652
+ assert.dom("[data-test-card-module-definition]").doesNotExist();
653
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").hasText(`No tools are available for the selected item: function "exportedFunction". Select a card or field definition in the inspector.`);
654
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
655
+ });
656
+ (0, import_qunit.test)("inspector persists scroll position but choosing another element overrides it", async function(assert) {
657
+ src_default.localStorage.setItem(CodeModePanelHeights, JSON.stringify({
658
+ filePanel: 50,
659
+ recentPanel: 50
660
+ }));
661
+ await visitOperatorMode({
662
+ stacks: [[]],
663
+ submode: "code",
664
+ codePath: `${testRealmURL}in-this-file.gts`
665
+ });
666
+ let localClassSelector = "[data-test-boxel-selector-item-text=\"LocalClass\"]";
667
+ let localClassElement = find(localClassSelector);
668
+ if (!localClassElement) assert.ok(localClassElement, "local class should exist");
669
+ else {
670
+ assert.notOk(await elementIsVisible(localClassElement), "expected local class not to be within view");
671
+ localClassElement.scrollIntoView({ block: "center" });
672
+ assert.ok(await elementIsVisible(localClassElement), "expected local class to now be within view");
673
+ }
674
+ await click("[data-test-file-browser-toggle]");
675
+ assert.dom(localClassSelector).doesNotExist();
676
+ await click("[data-test-inspector-toggle]");
677
+ await waitFor(localClassSelector);
678
+ let position = new Position(15, 0);
679
+ monacoService.updateCursorPosition(position);
680
+ await settled();
681
+ let exportedClassElement = find("[data-test-boxel-selector-item-text=\"ExportedClass\"]");
682
+ if (!exportedClassElement) assert.ok(exportedClassElement, "exported class element should exist");
683
+ else assert.ok(await elementIsVisible(exportedClassElement), "expected exported class to have scrolled into view");
684
+ });
685
+ (0, import_qunit.test)("can duplicate an instance in same realm", async function(assert) {
686
+ assert.expect(7);
687
+ let operatorModeStateParam = wrapper_default({
688
+ stacks: [[]],
689
+ submode: "code",
690
+ codePath: `${testRealmURL}Pet/vangogh.json`
691
+ });
692
+ await visit(`/?operatorModeEnabled=true&operatorModeState=${encodeURIComponent(operatorModeStateParam)}`);
693
+ await waitFor(`[data-test-action-button="Duplicate"]`);
694
+ await click("[data-test-action-button=\"Duplicate\"]");
695
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
696
+ await percySnapshot(assert);
697
+ let deferred = new Deferred();
698
+ let id;
699
+ this.onSave((url, json) => {
700
+ if (typeof json === "string") throw new Error(`expected json save data`);
701
+ if (json.data.meta.adoptsFrom?.name === "Pet") {
702
+ id = url.href;
703
+ assert.strictEqual(json.data.attributes?.name, "Van Gogh", "the name field is correct");
704
+ assert.deepEqual(json.data.meta.adoptsFrom, {
705
+ module: rri("../pet"),
706
+ name: "Pet"
707
+ });
708
+ assert.strictEqual(json.data.meta.realmURL, testRealmURL);
709
+ this.unregisterOnSave?.();
710
+ deferred.fulfill();
711
+ }
712
+ });
713
+ await click("[data-test-duplicate-card-instance]");
714
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
715
+ await deferred.promise;
716
+ await settled();
717
+ await waitFor(`[data-test-code-mode-card-renderer-header="${id}"]`);
718
+ assert.dom("[data-test-card-resource-loaded]").containsText("Pet");
719
+ assert.dom(`[data-test-code-mode-card-renderer-header="${id}"] [data-test-realm-icon-url]`).hasAttribute("aria-label", "Test Workspace B");
720
+ assert.dom("[data-test-field=\"name\"] input").hasValue("Van Gogh");
721
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${id}.json`);
722
+ });
723
+ (0, import_qunit.test)("can duplicate an instance in different realm", async function(assert) {
724
+ assert.expect(8);
725
+ let operatorModeStateParam = wrapper_default({
726
+ stacks: [[]],
727
+ submode: "code",
728
+ codePath: `${testRealmURL}Pet/vangogh.json`
729
+ });
730
+ await visit(`/?operatorModeEnabled=true&operatorModeState=${encodeURIComponent(operatorModeStateParam)}`);
731
+ await waitFor(`[data-test-action-button="Duplicate"]`);
732
+ await click("[data-test-action-button=\"Duplicate\"]");
733
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
734
+ await click(`[data-test-realm-dropdown-trigger]`);
735
+ await waitFor("[data-test-boxel-menu-item-text=\"Test Workspace A\"]");
736
+ await click("[data-test-boxel-menu-item-text=\"Test Workspace A\"]");
737
+ await waitFor(`[data-test-realm-name="Test Workspace A"]`);
738
+ assert.dom("[data-test-realm-name]").hasText("Test Workspace A");
739
+ let deferred = new Deferred();
740
+ let id;
741
+ this.onSave((url, json) => {
742
+ if (typeof json === "string") throw new Error(`expected json save data`);
743
+ id = url.href;
744
+ assert.strictEqual(json.data.attributes?.name, "Van Gogh", "the name field is correct");
745
+ assert.deepEqual(json.data.meta.adoptsFrom, {
746
+ module: testRRI("pet"),
747
+ name: "Pet"
748
+ });
749
+ assert.strictEqual(json.data.meta.realmURL, testRealmURL2);
750
+ deferred.fulfill();
751
+ });
752
+ await click("[data-test-duplicate-card-instance]");
753
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
754
+ await deferred.promise;
755
+ await settled();
756
+ await waitFor(`[data-test-code-mode-card-renderer-header="${id}"]`);
757
+ assert.dom("[data-test-card-resource-loaded]").containsText("Pet");
758
+ assert.dom(`[data-test-code-mode-card-renderer-header="${id}"] [data-test-realm-icon-url]`).hasAttribute("aria-label", "Test Workspace A");
759
+ assert.dom("[data-test-field=\"name\"] input").hasValue("Van Gogh");
760
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${id}.json`);
761
+ });
762
+ (0, import_qunit.test)("can delete a card instance from code submode with no recent files to fall back on", async function(assert) {
763
+ let recentCardsService = getService("recent-cards-service");
764
+ let recentFilesService = getService("recent-files-service");
765
+ [`${testRealmURL}Pet/vangogh`, `${testRealmURL}Person/1`].map((url) => recentCardsService.add(url));
766
+ recentFilesService.addRecentFileUrl(`${testRealmURL}Pet/vangogh.json`);
767
+ await visitOperatorMode({ stacks: [[{
768
+ id: `${testRealmURL}Person/1`,
769
+ format: "isolated"
770
+ }, {
771
+ id: `${testRealmURL}Pet/vangogh`,
772
+ format: "isolated"
773
+ }]] });
774
+ assert.dom(`[data-test-stack-card="${testRealmURL}Person/1"]`).exists();
775
+ assert.dom(`[data-test-stack-card="${testRealmURL}Pet/vangogh"]`).exists();
776
+ await click("[data-test-submode-switcher] button");
777
+ await click("[data-test-boxel-menu-item-text=\"Code\"]");
778
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}Pet/vangogh.json`], "recent file is correct");
779
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
780
+ assert.dom("[data-test-empty-code-mode]").doesNotExist();
781
+ await click("[data-test-action-button=\"Delete\"]");
782
+ assert.dom(`[data-test-delete-modal="${testRealmURL}Pet/vangogh"]`).exists();
783
+ assert.dom("[data-test-delete-msg]").includesText("Delete the card Van Gogh?");
784
+ await percySnapshot(assert);
785
+ await click("[data-test-confirm-delete-button]");
786
+ assert.dom("[data-test-empty-code-mode]").exists();
787
+ await percySnapshot("Acceptance | operator mode tests | can delete a card instance from code submode with no recent files - empty code submode");
788
+ await click("[data-test-submode-switcher] button");
789
+ await click("[data-test-boxel-menu-item-text=\"Interact\"]");
790
+ assert.dom(`[data-test-stack-card="${testRealmURL}Person/1"`).exists();
791
+ assert.dom(`[data-test-stack-card="${testRealmURL}Pet/vangogh"`).doesNotExist("stack item removed");
792
+ assert.deepEqual(recentCardsService.recentCardIds, [`${testRealmURL}Person/1`], "the deleted card has been removed from recent cards");
793
+ assert.deepEqual(recentFilesService.recentFiles.length, 0, "the deleted card has been removed from recent files");
794
+ let notFound = await adapter.openFile("Pet/vangogh.json");
795
+ assert.strictEqual(notFound, void 0, "file ref does not exist");
796
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
797
+ });
798
+ (0, import_qunit.test)("Can delete a card instance from code submode and fall back to recent file", async function(assert) {
799
+ let recentFilesService = getService("recent-files-service");
800
+ await visitOperatorMode({ stacks: [[{
801
+ id: `${testRealmURL}Person/1`,
802
+ format: "isolated"
803
+ }, {
804
+ id: `${testRealmURL}Pet/vangogh`,
805
+ format: "isolated"
806
+ }]] });
807
+ assert.dom(`[data-test-stack-card="${testRealmURL}Person/1"]`).exists();
808
+ assert.dom(`[data-test-stack-card="${testRealmURL}Pet/vangogh"]`).exists();
809
+ await click("[data-test-submode-switcher] button");
810
+ await click("[data-test-boxel-menu-item-text=\"Code\"]");
811
+ assert.strictEqual(recentFilesService.recentFiles.length, 1);
812
+ recentFilesService.addRecentFileUrl(`${testRealmURL}Pet/mango.json`);
813
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}Pet/mango.json`, `${testRealmURL}Pet/vangogh.json`]);
814
+ await click("[data-test-action-button=\"Delete\"]");
815
+ assert.dom(`[data-test-delete-modal="${testRealmURL}Pet/vangogh"]`).exists();
816
+ await click("[data-test-confirm-delete-button]");
817
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}Pet/mango.json`);
818
+ assert.deepEqual(JSON.parse(getMonacoContent()), { data: {
819
+ attributes: { name: "Mango" },
820
+ meta: { adoptsFrom: {
821
+ module: `${testRealmURL}pet`,
822
+ name: "Pet"
823
+ } }
824
+ } });
825
+ await click("[data-test-submode-switcher] button");
826
+ await click("[data-test-boxel-menu-item-text=\"Interact\"]");
827
+ assert.dom(`[data-test-stack-card="${testRealmURL}Person/1"`).exists();
828
+ assert.dom(`[data-test-stack-card="${testRealmURL}Pet/vangogh"`).doesNotExist("stack item removed");
829
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}Pet/mango.json`], "the deleted card has been removed from recent files");
830
+ });
831
+ (0, import_qunit.test)("can delete a card definition and fallback to recent file", async function(assert) {
832
+ let recentFilesService = getService("recent-files-service");
833
+ await visitOperatorMode({
834
+ submode: "code",
835
+ codePath: `${testRealmURL}pet.gts`
836
+ });
837
+ recentFilesService.addRecentFileUrl(`${testRealmURL}Pet/mango.json`);
838
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}Pet/mango.json`, `${testRealmURL}pet.gts`]);
839
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
840
+ await click("[data-test-delete-module-button]");
841
+ assert.dom(`[data-test-delete-modal="${testRealmURL}pet.gts"]`).exists();
842
+ await click("[data-test-confirm-delete-button]");
843
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${testRealmURL}Pet/mango.json`);
844
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}Pet/mango.json`], "the deleted card def has been removed from recent files");
845
+ let notFound = await adapter.openFile("pet.gts");
846
+ assert.strictEqual(notFound, void 0, "file ref does not exist");
847
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
848
+ });
849
+ (0, import_qunit.test)("can delete a card definition with no recent files to fall back on", async function(assert) {
850
+ let recentFilesService = getService("recent-files-service");
851
+ await visitOperatorMode({
852
+ stacks: [[]],
853
+ submode: "code",
854
+ codePath: `${testRealmURL}pet.gts`
855
+ });
856
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [`${testRealmURL}pet.gts`], "recent file is correct");
857
+ assert.dom("[data-test-empty-code-mode]").doesNotExist();
858
+ await click("[data-test-delete-module-button]");
859
+ assert.dom(`[data-test-delete-modal="${testRealmURL}pet.gts"]`).exists();
860
+ await click("[data-test-confirm-delete-button]");
861
+ assert.dom("[data-test-empty-code-mode]").exists();
862
+ assert.strictEqual(recentFilesService.recentFiles.length, 0, "the deleted card has been removed from recent files");
863
+ assertRecentFileURLs(assert, recentFilesService.recentFiles, [], "recent file is correct");
864
+ let notFound = await adapter.openFile("pet.gts");
865
+ assert.strictEqual(notFound, void 0, "file ref does not exist");
866
+ });
867
+ (0, import_qunit.test)("shows command panel for command declarations", async function(assert) {
868
+ await visitOperatorMode({
869
+ stacks: [[]],
870
+ submode: Submodes.Code,
871
+ codePath: `${testRealmURL}command-module.gts`
872
+ });
873
+ await waitFor("[data-test-command-panel-header]");
874
+ assert.dom("[data-test-command-panel-header]").hasText("Command", "renders command panel");
875
+ assert.dom("[data-test-card-module-definition]").hasTextContaining("SampleCommand", "shows command definition details");
876
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText("SampleCommand command", "selector shows command type");
877
+ });
878
+ (0, import_qunit.test)("shows component panel and Create Listing action for component declarations", async function(assert) {
879
+ await visitOperatorMode({
880
+ stacks: [[]],
881
+ submode: Submodes.Code,
882
+ codePath: `${testRealmURL}component-module.gts`
883
+ });
884
+ await waitFor("[data-test-component-panel-header]");
885
+ assert.dom("[data-test-component-panel-header]").hasText("Component", "renders component panel");
886
+ assert.dom("[data-test-action-button=\"Create Listing\"]").exists("Create Listing action is available for a component");
887
+ await click("[data-test-action-button=\"Create Listing\"]");
888
+ await waitFor("[data-test-create-listing-modal]");
889
+ assert.dom("[data-test-create-listing-modal]").exists("clicking Create Listing opens the create listing modal");
890
+ });
891
+ (0, import_qunit.test)("can delete a misc file", async function(assert) {
892
+ await visitOperatorMode({
893
+ stacks: [[]],
894
+ submode: "code",
895
+ codePath: `${testRealmURL}léame.md`
896
+ });
897
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
898
+ await waitFor(`[data-test-action-button="Delete"]`);
899
+ await click("[data-test-action-button=\"Delete\"]");
900
+ await waitFor(`[data-test-delete-modal="${testRealmURL}l%C3%A9ame.md"]`);
901
+ assert.dom("[data-test-delete-msg]").includesText("Delete the file léame.md?");
902
+ await click("[data-test-confirm-delete-button]");
903
+ await waitFor("[data-test-empty-code-mode]");
904
+ let notFound = await adapter.openFile("léame.md");
905
+ assert.strictEqual(notFound, void 0, "file ref does not exist");
906
+ assert.dom("[data-test-delete-modal-container]").doesNotExist();
907
+ });
908
+ (0, import_qunit.test)("After opening inherited definition inside inheritance panel, \"in-this-file\" highlights selected definition", async function(assert) {
909
+ let operatorModeState = {
910
+ stacks: [[]],
911
+ submode: "code",
912
+ codePath: `${testRealmURL}imports.gts`
913
+ };
914
+ await visitOperatorMode(operatorModeState);
915
+ let elementName = "ChildCard1";
916
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
917
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
918
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
919
+ let selected = "AncestorCard2 card def";
920
+ await waitFor(`[data-test-clickable-definition-container]`);
921
+ await click(`[data-test-clickable-definition-container]`);
922
+ await waitFor("[data-test-boxel-selector-item-selected]");
923
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
924
+ await visitOperatorMode(operatorModeState);
925
+ elementName = "ChildCard2";
926
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
927
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
928
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
929
+ selected = "default (DefaultAncestorCard) card def";
930
+ await waitFor(`[data-test-clickable-definition-container]`);
931
+ await click(`[data-test-clickable-definition-container]`);
932
+ await waitFor("[data-test-boxel-selector-item-selected]");
933
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
934
+ await visitOperatorMode(operatorModeState);
935
+ elementName = "ChildCard3";
936
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
937
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
938
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
939
+ selected = "RenamedAncestorCard (AncestorCard) card def";
940
+ await waitFor(`[data-test-clickable-definition-container]`);
941
+ await click(`[data-test-clickable-definition-container]`);
942
+ await waitFor("[data-test-boxel-selector-item-selected]");
943
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
944
+ await visitOperatorMode(operatorModeState);
945
+ elementName = "ChildCard4";
946
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
947
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
948
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
949
+ selected = "AncestorCard3 card def";
950
+ await click(`[data-test-clickable-definition-container]`);
951
+ await waitFor("[data-test-boxel-selector-item-selected]");
952
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
953
+ await visitOperatorMode(operatorModeState);
954
+ elementName = "ChildCard5";
955
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
956
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
957
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
958
+ selected = "ChildCard2 card def";
959
+ await waitFor(`[data-test-clickable-definition-container]`);
960
+ await click(`[data-test-clickable-definition-container]`);
961
+ await waitFor("[data-test-boxel-selector-item-selected]");
962
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
963
+ await visitOperatorMode(operatorModeState);
964
+ elementName = "ChildField1";
965
+ await waitFor(`[data-test-boxel-selector-item-text="${elementName}"]`);
966
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
967
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
968
+ selected = "AncestorField1 field def";
969
+ await click(`[data-test-clickable-definition-container]`);
970
+ await waitFor("[data-test-boxel-selector-item-selected]");
971
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(selected);
972
+ });
973
+ (0, import_qunit.test)("After opening definition from card type and fields in module inspector, \"in-this-file\" highlights selected definition", async function(assert) {
974
+ let operatorModeState = {
975
+ submode: Submodes.Code,
976
+ codePath: `${testRealmURL}imports.gts`
977
+ };
978
+ await visitOperatorMode(operatorModeState);
979
+ await visitOperatorMode(operatorModeState);
980
+ await click(`[data-test-boxel-selector-item-text="ChildCard1"]`);
981
+ let elementName = "AncestorCard2";
982
+ await waitFor(`[data-test-card-schema="${elementName}"] [data-test-card-schema-navigational-button]`);
983
+ await click(`[data-test-card-schema="${elementName}"] [data-test-card-schema-navigational-button]`);
984
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
985
+ await waitFor("[data-test-boxel-selector-item-selected]");
986
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
987
+ await visitOperatorMode(operatorModeState);
988
+ elementName = "AncestorField1";
989
+ await waitFor(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field1"] [data-test-card-display-name="${elementName}"]`);
990
+ await click(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field1"] [data-test-card-display-name="${elementName}"]`);
991
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
992
+ await waitFor("[data-test-boxel-selector-item-selected]");
993
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} field def`);
994
+ await visitOperatorMode(operatorModeState);
995
+ elementName = "AncestorCard2";
996
+ await waitFor(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field2"] [data-test-card-display-name="${elementName}"]`);
997
+ await click(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field2"] [data-test-card-display-name="${elementName}"]`);
998
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
999
+ await waitFor("[data-test-boxel-selector-item-selected]");
1000
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
1001
+ await visitOperatorMode(operatorModeState);
1002
+ elementName = "ChildCard2";
1003
+ await waitFor(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field3"] [data-test-card-display-name="${elementName}"]`);
1004
+ await click(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field3"] [data-test-card-display-name="${elementName}"]`);
1005
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
1006
+ await waitFor("[data-test-boxel-selector-item-selected]");
1007
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
1008
+ await click("[data-boxel-selector-item-text=\"ChildCard1\"]");
1009
+ elementName = "AncestorCard2";
1010
+ await waitFor(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field4"] [data-test-card-display-name="${elementName}"]`);
1011
+ await click(`[data-test-card-schema="ChildCard1"] [data-test-field-name="field4"] [data-test-card-display-name="${elementName}"]`);
1012
+ assert.operatorModeParametersMatch(currentURL(), { codeSelection: elementName });
1013
+ await waitFor("[data-test-boxel-selector-item-selected]");
1014
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
1015
+ });
1016
+ (0, import_qunit.test)("in-this-file panel displays re-exports", async function(assert) {
1017
+ await visitOperatorMode({
1018
+ stacks: [[]],
1019
+ submode: "code",
1020
+ codePath: `${testRealmURL}re-export.gts`
1021
+ });
1022
+ await waitFor("[data-test-card-inspector-panel]");
1023
+ await waitFor("[data-test-current-module-name]");
1024
+ await waitFor("[data-test-in-this-file-selector]");
1025
+ let elementName = "StrCard (StringField) field def";
1026
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(1)").hasText(elementName);
1027
+ [
1028
+ "StrCard (StringField) field def",
1029
+ "FDef (FieldDef) field def",
1030
+ "CardDef card def",
1031
+ "BDef base def",
1032
+ "default (NumberField) field def",
1033
+ "Human (Person) card def",
1034
+ "Date (default) field def"
1035
+ ].forEach(async (elementName, index) => {
1036
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`);
1037
+ assert.dom(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`).hasText(elementName);
1038
+ });
1039
+ assert.dom("[data-test-boxel-selector-item]").exists({ count: 7 });
1040
+ elementName = "BDef";
1041
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1042
+ await waitFor("[data-test-boxel-selector-item-selected]");
1043
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} base def`);
1044
+ assert.dom("[data-test-inheritance-panel-header]").exists();
1045
+ assert.dom("[data-test-card-module-definition]").exists();
1046
+ assert.dom("[data-test-definition-header]").includesText("Re-exported Base Definition");
1047
+ assert.dom("[data-test-card-module-definition]").includesText("Base");
1048
+ assert.true(monacoService.getLineCursorOn()?.includes("BDef"));
1049
+ assert.dom("[data-test-file-incompatibility-message]").doesNotExist();
1050
+ elementName = "Person";
1051
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1052
+ await waitFor("[data-test-boxel-selector-item-selected]");
1053
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`Human (${elementName}) card def`);
1054
+ assert.dom("[data-test-inheritance-panel-header]").exists();
1055
+ assert.dom("[data-test-card-module-definition]").exists();
1056
+ assert.dom("[data-test-definition-header]").includesText("Re-exported Card Definition");
1057
+ assert.dom("[data-test-card-module-definition]").includesText("Card");
1058
+ assert.true(monacoService.getLineCursorOn()?.includes("Human"));
1059
+ assert.dom("[data-test-file-incompatibility-message]").doesNotExist();
1060
+ });
1061
+ (0, import_qunit.test)("\"in-this-file\" panel displays FileDef declarations with correct labeling", async function(assert) {
1062
+ await visitOperatorMode({
1063
+ stacks: [[]],
1064
+ submode: "code",
1065
+ codePath: `${testRealmURL}file-def.gts`
1066
+ });
1067
+ await waitFor("[data-test-card-inspector-panel]");
1068
+ await waitFor("[data-test-current-module-name]");
1069
+ await waitFor("[data-test-in-this-file-selector]");
1070
+ assert.dom("[data-test-boxel-selector-item]").exists({ count: 1 });
1071
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(1)").hasText("CustomFileDef file def");
1072
+ let elementName = "CustomFileDef";
1073
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1074
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} file def`);
1075
+ await waitFor("[data-test-card-module-definition]");
1076
+ assert.dom("[data-test-inheritance-panel-header]").exists();
1077
+ assert.dom("[data-test-inheritance-panel-header]").hasText("File Def Inheritance");
1078
+ assert.dom("[data-test-card-module-definition]").exists();
1079
+ assert.dom("[data-test-definition-header]").includesText("File Definition");
1080
+ assert.dom("[data-test-card-module-definition]").includesText("custom file");
1081
+ assert.dom("[data-test-action-button=\"Inherit\"]").exists("Inherit action is shown for exported FileDef declarations");
1082
+ });
1083
+ (0, import_qunit.test)("Schema/Playground/Spec panes render for a focused FileDef declaration", async function(assert) {
1084
+ await visitOperatorMode({
1085
+ stacks: [[]],
1086
+ submode: "code",
1087
+ codePath: `${testRealmURL}file-def.gts`
1088
+ });
1089
+ await waitFor("[data-test-card-inspector-panel]");
1090
+ await waitFor("[data-test-current-module-name]");
1091
+ await waitFor("[data-test-in-this-file-selector]");
1092
+ await click(`[data-test-boxel-selector-item-text="CustomFileDef"]`);
1093
+ await waitFor("[data-test-card-schema=\"custom file\"]");
1094
+ assert.dom("[data-test-card-schema=\"custom file\"]").exists({ count: 1 });
1095
+ assert.dom(`[data-test-card-schema="custom file"] [data-test-field-name="customTag"] [data-test-card-display-name="String"]`).exists("customTag field is shown in schema");
1096
+ assert.dom("[data-test-module-inspector=\"card-or-field\"]").exists("module inspector 3-pane view renders for FileDef");
1097
+ await click("[data-test-module-inspector-view=\"preview\"]");
1098
+ assert.dom("[data-test-active-module-inspector-view=\"preview\"]").exists("playground pane renders for FileDef");
1099
+ await waitFor("[data-test-playground-filedef-message]");
1100
+ assert.dom("[data-test-playground-filedef-message]").includesText("No file instances found", "shows no-instances message for FileDef with no matching files");
1101
+ assert.dom("[data-test-instance-chooser]").doesNotExist("instance chooser is not shown when there are no file instances");
1102
+ assert.dom("[data-test-playground-format-chooser]").doesNotExist("format chooser is not shown when there are no file instances");
1103
+ await click("[data-test-module-inspector-view=\"spec\"]");
1104
+ assert.dom("[data-test-active-module-inspector-view=\"spec\"]").exists("spec pane renders for FileDef");
1105
+ await click("[data-test-module-inspector-view=\"schema\"]");
1106
+ assert.dom("[data-test-active-module-inspector-view=\"schema\"]").exists("schema pane renders for FileDef");
1107
+ assert.dom("[data-test-card-schema=\"custom file\"]").exists();
1108
+ });
1109
+ (0, import_qunit.test)("Playground displays file-meta instances for PngDef with preview, instance chooser, and format chooser", async function(assert) {
1110
+ await visitOperatorMode({
1111
+ stacks: [[]],
1112
+ submode: "code",
1113
+ codePath: `${testRealmURL}png-def-module.gts`
1114
+ });
1115
+ await waitFor("[data-test-card-inspector-panel]");
1116
+ await waitFor("[data-test-current-module-name]");
1117
+ await waitFor("[data-test-in-this-file-selector]");
1118
+ await click("[data-test-boxel-selector-item-text=\"PngDef\"]");
1119
+ await click("[data-test-module-inspector-view=\"preview\"]");
1120
+ await waitFor("[data-test-instance-chooser]", { timeout: 1e4 });
1121
+ assert.dom("[data-test-playground-panel]").exists("playground panel renders");
1122
+ assert.dom("[data-test-instance-chooser]").exists("instance chooser is shown");
1123
+ assert.dom("[data-test-playground-format-chooser]").exists("format chooser is shown");
1124
+ assert.dom("[data-test-playground-filedef-message]").doesNotExist("no-instances message is NOT shown when instances exist");
1125
+ assert.dom("[data-test-selected-item]").exists("selected item is displayed");
1126
+ assert.dom("[data-test-selected-item]").containsText(".png", "selected item title contains filename");
1127
+ assert.dom("[data-test-playground-panel] [data-test-boxel-card-header-title]").exists("card header renders for file preview");
1128
+ assert.dom("[data-test-playground-format-chooser] [data-test-format-chooser=\"isolated\"]").exists("isolated format available");
1129
+ assert.dom("[data-test-playground-format-chooser] [data-test-format-chooser=\"embedded\"]").exists("embedded format available");
1130
+ assert.dom("[data-test-playground-format-chooser] [data-test-format-chooser=\"fitted\"]").exists("fitted format available");
1131
+ assert.dom("[data-test-playground-format-chooser] [data-test-format-chooser=\"atom\"]").exists("atom format available");
1132
+ assert.dom("[data-test-playground-format-chooser] [data-test-format-chooser=\"edit\"]").doesNotExist("edit format is NOT available for FileDef");
1133
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active", "isolated is the default active format");
1134
+ });
1135
+ (0, import_qunit.test)("Playground FileDef format switching renders different formats", async function(assert) {
1136
+ await visitOperatorMode({
1137
+ stacks: [[]],
1138
+ submode: "code",
1139
+ codePath: `${testRealmURL}png-def-module.gts`
1140
+ });
1141
+ await waitFor("[data-test-card-inspector-panel]");
1142
+ await waitFor("[data-test-current-module-name]");
1143
+ await waitFor("[data-test-in-this-file-selector]");
1144
+ await click("[data-test-boxel-selector-item-text=\"PngDef\"]");
1145
+ await click("[data-test-module-inspector-view=\"preview\"]");
1146
+ await waitFor("[data-test-instance-chooser]", { timeout: 1e4 });
1147
+ assert.dom("[data-test-format-chooser]").exists({ count: fileDefFormats.length });
1148
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasClass("active", "starts in isolated format");
1149
+ await click("[data-test-format-chooser=\"embedded\"]");
1150
+ assert.dom("[data-test-format-chooser=\"isolated\"]").hasNoClass("active", "isolated no longer active");
1151
+ assert.dom("[data-test-format-chooser=\"embedded\"]").hasClass("active", "embedded is now active");
1152
+ await click("[data-test-format-chooser=\"atom\"]");
1153
+ assert.dom("[data-test-format-chooser=\"embedded\"]").hasNoClass("active", "embedded no longer active");
1154
+ assert.dom("[data-test-format-chooser=\"atom\"]").hasClass("active", "atom is now active");
1155
+ assert.dom("[data-test-atom-preview]").exists("atom preview container renders");
1156
+ await click("[data-test-format-chooser=\"fitted\"]");
1157
+ assert.dom("[data-test-format-chooser=\"atom\"]").hasNoClass("active", "atom no longer active");
1158
+ assert.dom("[data-test-format-chooser=\"fitted\"]").hasClass("active", "fitted is now active");
1159
+ });
1160
+ (0, import_qunit.test)("Playground FileDef instance selection switches the displayed file", async function(assert) {
1161
+ await visitOperatorMode({
1162
+ stacks: [[]],
1163
+ submode: "code",
1164
+ codePath: `${testRealmURL}png-def-module.gts`
1165
+ });
1166
+ await waitFor("[data-test-card-inspector-panel]");
1167
+ await waitFor("[data-test-current-module-name]");
1168
+ await waitFor("[data-test-in-this-file-selector]");
1169
+ await click("[data-test-boxel-selector-item-text=\"PngDef\"]");
1170
+ await click("[data-test-module-inspector-view=\"preview\"]");
1171
+ await waitFor("[data-test-instance-chooser]", { timeout: 1e4 });
1172
+ let initialTitle = document.querySelector("[data-test-selected-item]")?.textContent?.trim() ?? "";
1173
+ assert.ok(initialTitle.length > 0, "initial selection has a title");
1174
+ await click("[data-test-instance-chooser]");
1175
+ assert.dom("[data-option-index=\"0\"]").exists("first dropdown option exists");
1176
+ assert.dom("[data-option-index=\"1\"]").exists("second dropdown option exists");
1177
+ await click("[data-option-index=\"1\"]");
1178
+ let newTitle = document.querySelector("[data-test-selected-item]")?.textContent?.trim() ?? "";
1179
+ assert.ok(newTitle.length > 0, "new selection has a title");
1180
+ assert.notEqual(newTitle, initialTitle, "selected instance changed after clicking a different option");
1181
+ });
1182
+ (0, import_qunit.test)("\"in-this-file\" panel displays local grandfather card. selection will move cursor and display card or field schema", async function(assert) {
1183
+ await visitOperatorMode({
1184
+ stacks: [[]],
1185
+ submode: "code",
1186
+ codePath: `${testRealmURL}local-inherit.gts`
1187
+ });
1188
+ await waitFor("[data-test-card-inspector-panel]");
1189
+ await waitFor("[data-test-current-module-name]");
1190
+ await waitFor("[data-test-in-this-file-selector]");
1191
+ await click(`[data-test-boxel-selector-item-text="GrandParent"]`);
1192
+ let elementName = "GrandParent card def";
1193
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(1)").hasText(elementName);
1194
+ assert.true(monacoService.getLineCursorOn()?.includes("GrandParent"));
1195
+ assert.true(monacoService.getLineCursorOn()?.includes("CardDef"));
1196
+ [
1197
+ "GrandParent card def",
1198
+ "Parent card def",
1199
+ "Activity field def",
1200
+ "Hobby field def",
1201
+ "Sport field def",
1202
+ "Child card def"
1203
+ ].forEach(async (elementName, index) => {
1204
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`);
1205
+ assert.dom(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`).hasText(elementName);
1206
+ });
1207
+ elementName = "Parent";
1208
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1209
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} card def`);
1210
+ await waitFor("[data-test-card-module-definition]");
1211
+ assert.dom("[data-test-inheritance-panel-header]").exists();
1212
+ assert.dom("[data-test-card-module-definition]").exists();
1213
+ assert.dom("[data-test-definition-header]").includesText("Card Definition");
1214
+ assert.dom("[data-test-card-module-definition]").includesText("local parent");
1215
+ await waitFor("[data-test-card-schema=\"local parent\"]");
1216
+ assert.dom("[data-test-card-schema=\"local grandparent\"]").exists({ count: 1 });
1217
+ assert.dom(`[data-test-card-schema="local parent"]`).exists();
1218
+ assert.dom(`[data-test-card-schema="local grandparent"]`).exists();
1219
+ assert.dom(`[data-test-total-fields]`).containsText(`${cardDefFieldCount}`);
1220
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
1221
+ assert.true(monacoService.getLineCursorOn()?.includes("GrandParent"));
1222
+ elementName = "Sport";
1223
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1224
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} field def`);
1225
+ await waitFor("[data-test-card-module-definition]");
1226
+ assert.dom("[data-test-inheritance-panel-header]").exists();
1227
+ assert.dom("[data-test-card-module-definition]").exists();
1228
+ assert.dom("[data-test-definition-header]").includesText("Field Definition");
1229
+ assert.dom("[data-test-card-module-definition]").includesText("my sport");
1230
+ await waitFor("[data-test-card-schema=\"my sport\"]");
1231
+ assert.dom("[data-test-card-schema=\"my sport\"]").exists({ count: 1 });
1232
+ assert.dom(`[data-test-card-schema="my hobby"]`).exists({ count: 1 });
1233
+ assert.dom(`[data-test-card-schema="my activity"]`).exists({ count: 1 });
1234
+ assert.dom(`[data-test-total-fields]`).containsText("0");
1235
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
1236
+ await waitFor(`[data-test-clickable-definition-container]`);
1237
+ await click(`[data-test-clickable-definition-container]`);
1238
+ await waitFor("[data-test-boxel-selector-item-selected]");
1239
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText("Hobby field def");
1240
+ await waitFor("[data-test-card-schema=\"my hobby\"]");
1241
+ assert.dom(`[data-test-card-schema="my hobby"]`).exists({ count: 1 });
1242
+ assert.dom(`[data-test-card-schema="my activity"]`).exists({ count: 1 });
1243
+ assert.dom(`[data-test-total-fields]`).containsText("0");
1244
+ assert.true(monacoService.getLineCursorOn()?.includes("Hobby"));
1245
+ assert.true(monacoService.getLineCursorOn()?.includes("Activity"));
1246
+ });
1247
+ (0, import_qunit.test)("\"in-this-file\" panel maintains selection after editing name of declaration", async function(assert) {
1248
+ let operatorModeStateParam = wrapper_default({
1249
+ stacks: [[]],
1250
+ submode: "code",
1251
+ codePath: `${testRealmURL}in-this-file.gts`
1252
+ });
1253
+ await visit(`/?operatorModeEnabled=true&operatorModeState=${encodeURIComponent(operatorModeStateParam)}`);
1254
+ await waitFor("[data-test-card-inspector-panel]");
1255
+ await waitFor("[data-test-current-module-name]");
1256
+ await waitFor("[data-test-in-this-file-selector]");
1257
+ let elementName = "default (DefaultClass) class";
1258
+ assert.dom("[data-test-boxel-selector-item]:nth-of-type(11)").hasText(elementName);
1259
+ assert.true(monacoService.getLineCursorOn()?.includes("DefaultClass"));
1260
+ [
1261
+ "AClassWithExportName (LocalClass) class",
1262
+ "ExportedClass class",
1263
+ "ExportedClassInheritLocalClass class",
1264
+ "exportedFunction function",
1265
+ "LocalCard card def",
1266
+ "ExportedCard card def",
1267
+ "ExportedCardInheritLocalCard card def",
1268
+ "LocalField field def",
1269
+ "ExportedField field def",
1270
+ "ExportedFieldInheritLocalField field def",
1271
+ "default (DefaultClass) class"
1272
+ ].forEach(async (elementName, index) => {
1273
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`);
1274
+ assert.dom(`[data-test-boxel-selector-item]:nth-of-type(${index + 1})`).hasText(elementName);
1275
+ });
1276
+ assert.dom("[data-test-boxel-selector-item]").exists({ count: 11 });
1277
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(elementName);
1278
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
1279
+ elementName = "exportedFunction";
1280
+ await click(`[data-test-boxel-selector-item-text="${elementName}"]`);
1281
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${elementName} function`);
1282
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
1283
+ assert.dom("[data-test-card-module-definition]").doesNotExist();
1284
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").hasText("No tools are available for the selected item: function \"exportedFunction\". Select a card or field definition in the inspector.");
1285
+ assert.true(monacoService.getLineCursorOn()?.includes(elementName));
1286
+ let renamedElementName = "exportedFunc";
1287
+ setMonacoContent(inThisFileSource.replace("exportedFunction", renamedElementName));
1288
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(4)`);
1289
+ await waitFor("[data-test-code-mode][data-test-save-idle]");
1290
+ await waitFor(`[data-test-boxel-selector-item]:nth-of-type(4)`);
1291
+ await waitUntil(() => {
1292
+ return !document.querySelector("[data-test-boxel-selector-item]:nth-of-type(4)")?.textContent?.includes("exportedFunction");
1293
+ });
1294
+ assert.dom(`[data-test-boxel-selector-item]:nth-of-type(4)`).hasText(`${renamedElementName} function`);
1295
+ assert.dom("[data-test-boxel-selector-item]").exists({ count: 11 });
1296
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${renamedElementName} function`);
1297
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
1298
+ assert.dom("[data-test-boxel-selector-item-selected]").hasText(`${renamedElementName} function`);
1299
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
1300
+ assert.dom("[data-test-card-module-definition]").doesNotExist();
1301
+ assert.dom("[data-test-schema-editor-file-incompatibility-message]").hasText(`No tools are available for the selected item: function "${renamedElementName}". Select a card or field definition in the inspector.`);
1302
+ });
1303
+ (0, import_qunit.test)("can inherit from an exported card def declaration", async function(assert) {
1304
+ assert.expect(11);
1305
+ let expectedSrc = `
1306
+ import { ExportedCard } from './in-this-file';
1307
+ import { Component } from 'https://cardstack.com/base/card-api';
1308
+ export class TestCard extends ExportedCard {
1309
+ static displayName = "Test Card";
1310
+ }`.trim();
1311
+ await visitOperatorMode({
1312
+ stacks: [[]],
1313
+ submode: "code",
1314
+ codePath: `${testRealmURL}in-this-file.gts`
1315
+ });
1316
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1317
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1318
+ await waitFor("[data-test-card-module-definition]");
1319
+ await click("[data-test-action-button=\"Inherit\"]");
1320
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1321
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("exported card", "the inherits from is correct");
1322
+ assert.dom("[data-test-create-definition]").isDisabled();
1323
+ await fillIn("[data-test-display-name-field]", "Test Card");
1324
+ assert.dom("[data-test-create-definition]").isEnabled();
1325
+ await fillIn("[data-test-file-name-field]", "/test-card");
1326
+ assert.dom("[data-test-create-definition]").isEnabled();
1327
+ let deferred = new Deferred();
1328
+ this.onSave((_, content) => {
1329
+ if (typeof content !== "string") throw new Error(`expected string save data`);
1330
+ assert.strictEqual(content, expectedSrc, "the source is correct");
1331
+ deferred.fulfill();
1332
+ });
1333
+ await percySnapshot(assert);
1334
+ await click("[data-test-create-definition]");
1335
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1336
+ await deferred.promise;
1337
+ await settled();
1338
+ assert.strictEqual(getMonacoContent(), expectedSrc, "monaco displays the new definition");
1339
+ await waitFor("[data-test-card-schema=\"Test Card\"]");
1340
+ assert.dom("[data-test-card-schema]").exists({ count: 4 }, "the card hierarchy is displayed in schema editor");
1341
+ assert.dom("[data-test-total-fields]").containsText(exportedCardFieldCount);
1342
+ await settled();
1343
+ await waitFor("[data-test-card-module-definition]");
1344
+ await click("[data-test-action-button=\"Inherit\"]");
1345
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1346
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("Test Card", "the inherits from is correct");
1347
+ assert.dom("[data-test-display-name-field]").hasNoValue("display name field is empty");
1348
+ assert.dom("[data-test-file-name-field]").hasNoValue("filename field is empty");
1349
+ });
1350
+ (0, import_qunit.test)("can inherit from an exported field def declaration", async function(assert) {
1351
+ assert.expect(2);
1352
+ await visitOperatorMode({
1353
+ stacks: [[]],
1354
+ submode: "code",
1355
+ codePath: `${testRealmURL}in-this-file.gts`
1356
+ });
1357
+ await waitFor("[data-boxel-selector-item-text=\"ExportedField\"]");
1358
+ await click("[data-boxel-selector-item-text=\"ExportedField\"]");
1359
+ await waitFor("[data-test-card-module-definition]");
1360
+ await click("[data-test-action-button=\"Inherit\"]");
1361
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1362
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("exported field", "the inherits from is correct");
1363
+ await fillIn("[data-test-display-name-field]", "Test Field");
1364
+ await fillIn("[data-test-file-name-field]", "/test-field");
1365
+ let deferred = new Deferred();
1366
+ this.onSave((_, content) => {
1367
+ if (typeof content !== "string") throw new Error(`expected string save data`);
1368
+ assert.strictEqual(content, `
1369
+ import { ExportedField } from './in-this-file';
1370
+ import { Component } from 'https://cardstack.com/base/card-api';
1371
+ export class TestField extends ExportedField {
1372
+ static displayName = "Test Field";
1373
+ }`.trim(), "the source is correct");
1374
+ deferred.fulfill();
1375
+ });
1376
+ await click("[data-test-create-definition]");
1377
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1378
+ await deferred.promise;
1379
+ });
1380
+ (0, import_qunit.test)("can inherit from an exported file def declaration", async function(assert) {
1381
+ assert.expect(2);
1382
+ let expectedSrc = `
1383
+ import { CustomFileDef } from './file-def';
1384
+ export class TestFileDef extends CustomFileDef {
1385
+ static displayName = "Test File Def";
1386
+ }`.trim();
1387
+ await visitOperatorMode({
1388
+ stacks: [[]],
1389
+ submode: "code",
1390
+ codePath: `${testRealmURL}file-def.gts`
1391
+ });
1392
+ await waitFor("[data-boxel-selector-item-text=\"CustomFileDef\"]");
1393
+ await click("[data-boxel-selector-item-text=\"CustomFileDef\"]");
1394
+ await waitFor("[data-test-card-module-definition]");
1395
+ await click("[data-test-action-button=\"Inherit\"]");
1396
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1397
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("custom file", "the inherits from is correct");
1398
+ await fillIn("[data-test-display-name-field]", "Test File Def");
1399
+ await fillIn("[data-test-file-name-field]", "/test-file-def");
1400
+ let deferred = new Deferred();
1401
+ this.onSave((_, content) => {
1402
+ if (typeof content !== "string") throw new Error(`expected string save data`);
1403
+ assert.strictEqual(content, expectedSrc, "the source is correct - no Component import for file defs");
1404
+ deferred.fulfill();
1405
+ });
1406
+ await click("[data-test-create-definition]");
1407
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1408
+ await deferred.promise;
1409
+ });
1410
+ (0, import_qunit.test)("inherit modal state is cleared when modal is cancelled", async function(assert) {
1411
+ assert.expect(3);
1412
+ await visitOperatorMode({
1413
+ stacks: [[]],
1414
+ submode: "code",
1415
+ codePath: `${testRealmURL}in-this-file.gts`
1416
+ });
1417
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1418
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1419
+ await waitFor("[data-test-card-module-definition]");
1420
+ await click("[data-test-action-button=\"Inherit\"]");
1421
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1422
+ await fillIn("[data-test-display-name-field]", "Test Card");
1423
+ await fillIn("[data-test-file-name-field]", "/test-card");
1424
+ this.onSave(() => assert.ok(false, "should not save a file"));
1425
+ await click("[data-test-cancel-create-file]");
1426
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1427
+ await waitFor("[data-test-card-module-definition]");
1428
+ await click("[data-test-action-button=\"Inherit\"]");
1429
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1430
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("exported card", "the inherits from is correct");
1431
+ assert.dom("[data-test-display-name-field]").hasNoValue("display name field is empty");
1432
+ assert.dom("[data-test-file-name-field]").hasNoValue("filename field is empty");
1433
+ });
1434
+ (0, import_qunit.test)(`can handle the situation where there is a class name collision with the inherited cards class name`, async function(assert) {
1435
+ assert.expect(4);
1436
+ let expectedSrc = `
1437
+ import { ExportedCard as ExportedCardParent } from './in-this-file';
1438
+ import { Component } from 'https://cardstack.com/base/card-api';
1439
+ export class ExportedCard extends ExportedCardParent {
1440
+ static displayName = "Exported Card";
1441
+ }`.trim();
1442
+ await visitOperatorMode({
1443
+ submode: "code",
1444
+ codePath: `${testRealmURL}in-this-file.gts`
1445
+ });
1446
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1447
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1448
+ await waitFor("[data-test-card-module-definition]");
1449
+ await click("[data-test-action-button=\"Inherit\"]");
1450
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1451
+ await fillIn("[data-test-display-name-field]", "Exported Card");
1452
+ await fillIn("[data-test-file-name-field]", "/test-card");
1453
+ let deferred = new Deferred();
1454
+ this.onSave((_, content) => {
1455
+ if (typeof content !== "string") throw new Error(`expected string save data`);
1456
+ assert.strictEqual(content, expectedSrc, "the source is correct");
1457
+ deferred.fulfill();
1458
+ });
1459
+ await click("[data-test-create-definition]");
1460
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1461
+ await deferred.promise;
1462
+ await settled();
1463
+ assert.strictEqual(getMonacoContent(), expectedSrc, "monaco displays the new definition");
1464
+ await waitFor("[data-test-card-schema=\"Exported Card\"]");
1465
+ assert.dom("[data-test-card-schema]").exists({ count: 4 }, "the card hierarchy is displayed in schema editor");
1466
+ assert.dom("[data-test-total-fields]").containsText(exportedCardFieldCount);
1467
+ });
1468
+ (0, import_qunit.test)("field error message displays if you try to inherit using a filename that already exists", async function(assert) {
1469
+ await visitOperatorMode({
1470
+ stacks: [[]],
1471
+ submode: "code",
1472
+ codePath: `${testRealmURL}in-this-file.gts`
1473
+ });
1474
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1475
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1476
+ await waitFor("[data-test-card-module-definition]");
1477
+ await click("[data-test-action-button=\"Inherit\"]");
1478
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1479
+ await fillIn("[data-test-display-name-field]", "Test Card");
1480
+ await fillIn("[data-test-file-name-field]", "in-this-file");
1481
+ await click("[data-test-create-definition]");
1482
+ assert.dom("[data-test-file-name-field][data-test-boxel-input-validation-state=\"invalid\"]").exists("error state for filename field is displayed");
1483
+ assert.dom("[data-test-boxel-input-error-message]").includesText("This file already exists");
1484
+ await fillIn("[data-test-file-name-field]", "test-file");
1485
+ assert.dom("[data-test-file-name-field][data-test-boxel-input-validation-state=\"invalid\"]").doesNotExist("error state for filename field is not displayed");
1486
+ assert.dom("[data-test-boxel-input-error-message]").doesNotExist("no error message displayed");
1487
+ });
1488
+ (0, import_qunit.test)("Inherit action item is not displayed when definition is not exported", async function(assert) {
1489
+ await visitOperatorMode({
1490
+ stacks: [[]],
1491
+ submode: "code",
1492
+ codePath: `${testRealmURL}in-this-file.gts`
1493
+ });
1494
+ await waitFor("[data-boxel-selector-item-text=\"LocalCard\"]");
1495
+ await click("[data-boxel-selector-item-text=\"LocalCard\"]");
1496
+ await waitFor("[data-test-card-module-definition]");
1497
+ assert.dom("[data-test-action-button=\"Inherit\"]").doesNotExist("non-exported cards do not display an inherit button");
1498
+ });
1499
+ (0, import_qunit.test)("can create an instance from an exported card definition", async function(assert) {
1500
+ assert.expect(8);
1501
+ await visitOperatorMode({
1502
+ stacks: [[]],
1503
+ submode: "code",
1504
+ codePath: `${testRealmURL}in-this-file.gts`
1505
+ });
1506
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1507
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1508
+ await waitFor("[data-test-card-module-definition]");
1509
+ await click("[data-test-action-button=\"Create Instance\"]");
1510
+ await waitFor(`[data-test-create-file-modal][data-test-ready] [data-test-realm-name="Test Workspace B"]`);
1511
+ assert.dom("[data-test-inherits-from-field] .pill").includesText("exported card", "the inherits from is correct");
1512
+ assert.dom("[data-test-create-card-instance]").isEnabled();
1513
+ let deferred = new Deferred();
1514
+ let id;
1515
+ this.onSave((url, json) => {
1516
+ if (typeof json === "string") throw new Error(`expected JSON save data`);
1517
+ id = url.href;
1518
+ assert.strictEqual(json.data.attributes?.someString, null, "someString field is empty");
1519
+ assert.strictEqual(json.data.meta.realmURL, testRealmURL, "realm url is correct");
1520
+ assert.deepEqual(json.data.meta.adoptsFrom, {
1521
+ module: rri("../in-this-file"),
1522
+ name: "ExportedCard"
1523
+ }, "adoptsFrom is correct");
1524
+ deferred.fulfill();
1525
+ });
1526
+ await percySnapshot(assert);
1527
+ await click("[data-test-create-card-instance]");
1528
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1529
+ await deferred.promise;
1530
+ if (!id) assert.ok(false, "card instance ID does not exist");
1531
+ await waitFor("[data-test-create-file-modal]", { count: 0 });
1532
+ await waitFor(`[data-test-code-mode-card-renderer-header="${id}"]`);
1533
+ assert.dom("[data-test-card-resource-loaded]").containsText("exported card");
1534
+ assert.dom("[data-test-field=\"someString\"] input").hasValue("");
1535
+ assert.dom("[data-test-card-url-bar-input]").hasValue(`${id}.json`);
1536
+ });
1537
+ (0, import_qunit.test)("Create instance action is not displayed for non-exported Card definition", async function(assert) {
1538
+ await visitOperatorMode({
1539
+ stacks: [[]],
1540
+ submode: "code",
1541
+ codePath: `${testRealmURL}in-this-file.gts`
1542
+ });
1543
+ await waitFor("[data-boxel-selector-item-text=\"LocalCard\"]");
1544
+ await click("[data-boxel-selector-item-text=\"LocalCard\"]");
1545
+ await waitFor("[data-test-card-module-definition]");
1546
+ assert.dom("[data-test-action-button=\"Create Instance\"]").doesNotExist("non-exported card defs do not display a create instance button");
1547
+ });
1548
+ (0, import_qunit.test)("Create instance action is not displayed for field definition", async function(assert) {
1549
+ await visitOperatorMode({
1550
+ stacks: [[]],
1551
+ submode: "code",
1552
+ codePath: `${testRealmURL}in-this-file.gts`
1553
+ });
1554
+ await waitFor("[data-boxel-selector-item-text=\"ExportedField\"]");
1555
+ await click("[data-boxel-selector-item-text=\"ExportedField\"]");
1556
+ await waitFor("[data-test-card-module-definition]");
1557
+ assert.dom("[data-test-action-button=\"Create Instance\"]").doesNotExist("field defs do not display a create instance button");
1558
+ });
1559
+ (0, import_qunit.test)("Create listing action is displayed for exported card definition", async function(assert) {
1560
+ await visitOperatorMode({
1561
+ stacks: [[]],
1562
+ submode: "code",
1563
+ codePath: `${testRealmURL}in-this-file.gts`
1564
+ });
1565
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1566
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1567
+ await waitFor("[data-test-card-module-definition]");
1568
+ assert.dom("[data-test-action-button=\"Create Listing\"]").exists("exported card defs display a Create Listing button");
1569
+ });
1570
+ (0, import_qunit.test)("Create listing action is displayed for exported field definition", async function(assert) {
1571
+ await visitOperatorMode({
1572
+ stacks: [[]],
1573
+ submode: "code",
1574
+ codePath: `${testRealmURL}in-this-file.gts`
1575
+ });
1576
+ await waitFor("[data-boxel-selector-item-text=\"ExportedField\"]");
1577
+ await click("[data-boxel-selector-item-text=\"ExportedField\"]");
1578
+ await waitFor("[data-test-card-module-definition]");
1579
+ assert.dom("[data-test-action-button=\"Create Listing\"]").exists("exported field defs display a Create Listing button");
1580
+ });
1581
+ (0, import_qunit.test)("Create listing action is not displayed for non-exported Card definition", async function(assert) {
1582
+ await visitOperatorMode({
1583
+ stacks: [[]],
1584
+ submode: "code",
1585
+ codePath: `${testRealmURL}in-this-file.gts`
1586
+ });
1587
+ await waitFor("[data-boxel-selector-item-text=\"LocalCard\"]");
1588
+ await click("[data-boxel-selector-item-text=\"LocalCard\"]");
1589
+ await waitFor("[data-test-card-module-definition]");
1590
+ assert.dom("[data-test-action-button=\"Create Listing\"]").doesNotExist("non-exported card defs do not display a Create Listing button");
1591
+ });
1592
+ (0, import_qunit.test)("can find instances of an exported card definition", async function(assert) {
1593
+ await visitOperatorMode({
1594
+ stacks: [[]],
1595
+ submode: "code",
1596
+ codePath: `${testRealmURL}pet`
1597
+ });
1598
+ await waitFor("[data-boxel-selector-item-text=\"Pet\"]");
1599
+ await click("[data-boxel-selector-item-text=\"Pet\"]");
1600
+ await waitFor("[data-test-card-module-definition]");
1601
+ await click("[data-test-action-button=\"Find instances\"]");
1602
+ await waitFor("[data-test-search-sheet-search-result]");
1603
+ assert.dom("[data-test-search-field]").hasValue("");
1604
+ await waitUntil(() => document.querySelector("[data-test-search-label]")?.innerText.includes("2 results"));
1605
+ assert.dom("[data-test-search-label]").includesText("2 results");
1606
+ assert.dom(`[data-test-search-result="${testRealmURL}Pet/mango"]`).exists();
1607
+ assert.dom(`[data-test-search-result="${testRealmURL}Pet/vangogh"]`).exists();
1608
+ });
1609
+ (0, import_qunit.test)("find instances action is not displayed for non-exported Card definition", async function(assert) {
1610
+ await visitOperatorMode({
1611
+ stacks: [[]],
1612
+ submode: "code",
1613
+ codePath: `${testRealmURL}in-this-file.gts`
1614
+ });
1615
+ await waitFor("[data-boxel-selector-item-text=\"LocalCard\"]");
1616
+ await click("[data-boxel-selector-item-text=\"LocalCard\"]");
1617
+ await waitFor("[data-test-card-module-definition]");
1618
+ assert.dom("[data-test-action-button=\"Find instances\"]").doesNotExist("non-exported card defs do not display a Find instances button");
1619
+ });
1620
+ (0, import_qunit.test)("find instances action is not displayed for field definition", async function(assert) {
1621
+ await visitOperatorMode({
1622
+ stacks: [[]],
1623
+ submode: "code",
1624
+ codePath: `${testRealmURL}in-this-file.gts`
1625
+ });
1626
+ await waitFor("[data-boxel-selector-item-text=\"ExportedField\"]");
1627
+ await click("[data-boxel-selector-item-text=\"ExportedField\"]");
1628
+ await waitFor("[data-test-card-module-definition]");
1629
+ assert.dom("[data-test-action-button=\"Find instances\"]").doesNotExist("field defs do not display a Find instances button");
1630
+ });
1631
+ (0, import_qunit.test)("inspector shows empty file panel with delete button when file is empty", async function(assert) {
1632
+ await visitOperatorMode({
1633
+ stacks: [[]],
1634
+ submode: "code",
1635
+ codePath: `${testRealmURL}empty-file.gts`
1636
+ });
1637
+ await waitFor("[data-test-card-inspector-panel]");
1638
+ await waitFor("[data-test-current-module-name=\"empty-file.gts\"]");
1639
+ assert.dom("[data-test-current-module-name=\"empty-file.gts\"]").exists();
1640
+ assert.dom("[data-test-in-this-file-selector]").doesNotExist();
1641
+ assert.dom("[data-test-inheritance-panel-header]").doesNotExist();
1642
+ assert.dom("[data-test-delete-module-button]").exists();
1643
+ });
1644
+ (0, import_qunit.test)("can delete an erroring module file", async function(assert) {
1645
+ await visitOperatorMode({
1646
+ stacks: [[]],
1647
+ submode: "code",
1648
+ codePath: `${testRealmURL}erroring-module.gts`
1649
+ });
1650
+ await waitFor("[data-test-syntax-error]");
1651
+ await waitFor("[data-test-action-button=\"Delete\"]");
1652
+ await click("[data-test-action-button=\"Delete\"]");
1653
+ await waitFor(`[data-test-delete-modal="${testRealmURL}erroring-module.gts"]`);
1654
+ await click("[data-test-confirm-delete-button]");
1655
+ await waitFor("[data-test-empty-code-mode]");
1656
+ let notFound = await adapter.openFile("erroring-module.gts");
1657
+ assert.strictEqual(notFound, void 0, "file ref does not exist");
1658
+ });
1659
+ (0, import_qunit.module)("when the user lacks write permissions", function(hooks) {
1660
+ hooks.beforeEach(async function() {
1661
+ setRealmPermissions({ [testRealmURL]: ["read"] });
1662
+ });
1663
+ (0, import_qunit.test)("delete button is not displayed for module when user does not have permission to write to realm", async function(assert) {
1664
+ await visitOperatorMode({
1665
+ submode: "code",
1666
+ codePath: `${testRealmURL}pet.gts`
1667
+ });
1668
+ await waitFor("[data-test-current-module-name=\"pet.gts\"]");
1669
+ assert.dom("[data-test-delete-module-button]").doesNotExist();
1670
+ });
1671
+ (0, import_qunit.test)("delete button is not displayed for card instance when user does not have permission to write to realm", async function(assert) {
1672
+ await visitOperatorMode({
1673
+ submode: "code",
1674
+ codePath: `${testRealmURL}Pet/mango.json`
1675
+ });
1676
+ assert.dom("[data-test-action-button=\"Delete\"]").doesNotExist();
1677
+ });
1678
+ (0, import_qunit.test)("delete button is not displayed for misc file when user does not have permission to write to realm", async function(assert) {
1679
+ await visitOperatorMode({
1680
+ stacks: [[]],
1681
+ submode: "code",
1682
+ codePath: `${testRealmURL}readme.md`
1683
+ });
1684
+ assert.dom("[data-test-action-button=\"Delete\"]").doesNotExist();
1685
+ });
1686
+ (0, import_qunit.test)("delete button is not displayed for empty file when user does not have permission to write to realm", async function(assert) {
1687
+ await visitOperatorMode({
1688
+ stacks: [[]],
1689
+ submode: "code",
1690
+ codePath: `${testRealmURL}empty-file.gts`
1691
+ });
1692
+ await waitFor("[data-test-current-module-name=\"empty-file.gts\"]");
1693
+ assert.dom("[data-test-delete-module-button]").doesNotExist();
1694
+ });
1695
+ (0, import_qunit.test)("Create listing action is not displayed when user does not have permission to write to realm", async function(assert) {
1696
+ await visitOperatorMode({
1697
+ stacks: [[]],
1698
+ submode: "code",
1699
+ codePath: `${testRealmURL}in-this-file.gts`
1700
+ });
1701
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1702
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1703
+ await waitFor("[data-test-card-module-definition]");
1704
+ assert.dom("[data-test-action-button=\"Create Listing\"]").doesNotExist("Create Listing button is not displayed when user lacks write permissions");
1705
+ });
1706
+ (0, import_qunit.test)("inspector shows file inheritance panel for non-module files", async function(assert) {
1707
+ await visitOperatorMode({
1708
+ stacks: [[]],
1709
+ submode: "code",
1710
+ codePath: `${testRealmURL}sample-styles.css`
1711
+ });
1712
+ await waitFor("[data-test-card-inspector-panel]");
1713
+ await waitFor("[data-test-inheritance-panel-header]");
1714
+ assert.dom("[data-test-inheritance-panel-header]").hasText("File Inheritance");
1715
+ assert.dom("[data-test-card-instance-definition]").exists("file instance definition is shown");
1716
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-header]").includesText("File Instance");
1717
+ assert.dom("[data-test-card-instance-definition] [data-test-definition-file-extension]").includesText(".css");
1718
+ assert.dom("[data-test-card-module-definition]").exists("file definition (adopts from) is shown");
1719
+ assert.dom("[data-test-card-module-definition]").includesText("File Definition");
1720
+ });
1721
+ });
1722
+ (0, import_qunit.test)("clicking \"Create Listing\" opens confirmation modal for card definition", async function(assert) {
1723
+ await visitOperatorMode({
1724
+ stacks: [[]],
1725
+ submode: "code",
1726
+ codePath: `${testRealmURL}in-this-file.gts`
1727
+ });
1728
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1729
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1730
+ await waitFor("[data-test-card-module-definition]");
1731
+ await click("[data-test-action-button=\"Create Listing\"]");
1732
+ await waitFor("[data-test-create-listing-modal]");
1733
+ assert.dom("[data-test-create-listing-modal]").exists("confirmation modal appears after clicking Create Listing");
1734
+ });
1735
+ (0, import_qunit.test)("clicking \"Create Listing\" on a card instance opens modal with instance pre-selected", async function(assert) {
1736
+ await visitOperatorMode({
1737
+ stacks: [[]],
1738
+ submode: "code",
1739
+ codePath: `${testRealmURL}Pet/mango.json`
1740
+ });
1741
+ await waitFor("[data-test-card-inspector-panel]");
1742
+ await waitFor("[data-test-card-instance-definition]");
1743
+ await click("[data-test-action-button=\"Create Listing\"]");
1744
+ await waitFor("[data-test-create-listing-modal]");
1745
+ assert.dom("[data-test-create-listing-modal]").exists("confirmation modal appears after clicking Create Listing");
1746
+ await waitFor(`[data-test-selected-example="${testRealmURL}Pet/mango.json"]`);
1747
+ assert.dom(`[data-test-selected-example="${testRealmURL}Pet/mango.json"]`).exists("the opened instance is pre-selected");
1748
+ assert.dom("[data-test-selected-examples] [data-test-card-format=\"atom\"]").exists({ count: 1 }, "mango instance is shown as atom");
1749
+ assert.dom("[data-test-choose-examples-button]").hasText("Add Examples", "button remains the default label");
1750
+ });
1751
+ (0, import_qunit.test)("Create listing action is not displayed for index.json card instance", async function(assert) {
1752
+ await visitOperatorMode({
1753
+ stacks: [[]],
1754
+ submode: "code",
1755
+ codePath: `${testRealmURL}index.json`
1756
+ });
1757
+ await waitFor("[data-test-card-inspector-panel]");
1758
+ await waitFor("[data-test-card-instance-definition]");
1759
+ assert.dom("[data-test-action-button=\"Create Listing\"]").doesNotExist("index.json card instances do not display a Create Listing button");
1760
+ });
1761
+ (0, import_qunit.test)("cancel button in Create Listing modal closes the modal", async function(assert) {
1762
+ await visitOperatorMode({
1763
+ stacks: [[]],
1764
+ submode: "code",
1765
+ codePath: `${testRealmURL}in-this-file.gts`
1766
+ });
1767
+ await waitFor("[data-boxel-selector-item-text=\"ExportedCard\"]");
1768
+ await click("[data-boxel-selector-item-text=\"ExportedCard\"]");
1769
+ await waitFor("[data-test-card-module-definition]");
1770
+ await click("[data-test-action-button=\"Create Listing\"]");
1771
+ await waitFor("[data-test-create-listing-modal]");
1772
+ await click("[data-test-create-listing-cancel-button]");
1773
+ assert.dom("[data-test-create-listing-modal]").doesNotExist("modal is dismissed after clicking Cancel");
1774
+ });
1775
+ });
1776
+ //#endregion