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