@cardstack/boxel-cli 0.9.0 → 0.10.0-unstable.0
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.
- package/README.md +12 -0
- package/bundled-test-harness/assets/account-switch-failed-GCSVbJML.js +23 -0
- package/bundled-test-harness/assets/account-switch-failed-GsWni_Gk.css +18 -0
- package/bundled-test-harness/assets/account-switch-failed-test-CdZWNths.js +45 -0
- package/bundled-test-harness/assets/add-workspace-c7L50Gx8.js +141 -0
- package/bundled-test-harness/assets/add-workspace-test-BZxHa6Pe.js +72 -0
- package/bundled-test-harness/assets/advanced-color-picker-0pGF-3WG.js +504 -0
- package/bundled-test-harness/assets/advanced-color-picker-pbO4HWc_.js +2 -0
- package/bundled-test-harness/assets/ai-assistant-test-Dnm4o9vK.js +2211 -0
- package/bundled-test-harness/assets/ai-module-creation-test-C6253CMt.js +151 -0
- package/bundled-test-harness/assets/aibot-message-miKyGeKk.js +278 -0
- package/bundled-test-harness/assets/app-i8pGdQkw.js +22855 -0
- package/bundled-test-harness/assets/app-zC7o6PyQ.css +2718 -0
- package/bundled-test-harness/assets/audio-file-def-DHnydP0t.js +133 -0
- package/bundled-test-harness/assets/auth-container-BP2gSoo4.css +51 -0
- package/bundled-test-harness/assets/auth-container-DN94iVfX.js +24 -0
- package/bundled-test-harness/assets/avif-meta-extractor-Bo5zRX1V.js +162 -0
- package/bundled-test-harness/assets/base64-image-B0RYxzHT.js +2 -0
- package/bundled-test-harness/assets/base64-image-Bxjqdwew.js +262 -0
- package/bundled-test-harness/assets/big-integer-7RLj5_7H.js +89 -0
- package/bundled-test-harness/assets/big-integer-C9sJxKVy.js +2 -0
- package/bundled-test-harness/assets/binary-upload-dedupe-test-DZo3EaV0.js +308 -0
- package/bundled-test-harness/assets/boolean-CcKPYUph.js +94 -0
- package/bundled-test-harness/assets/boolean-DvsSmtM7.js +2 -0
- package/bundled-test-harness/assets/brand-functional-palette-KpVSY2Sa.js +137 -0
- package/bundled-test-harness/assets/brand-logo-DDiOec0t.js +295 -0
- package/bundled-test-harness/assets/broken-link-template-test-DAngUbFJ.js +192 -0
- package/bundled-test-harness/assets/bundled-base-C_lumba6.js +254 -0
- package/bundled-test-harness/assets/bundled-base-modules-test-CSF7Rl4Z.js +54 -0
- package/bundled-test-harness/assets/buried-stack-item-scroll-test-B0J_EP88.js +236 -0
- package/bundled-test-harness/assets/bxl-expression-test-Dej7WgI6.js +250 -0
- package/bundled-test-harness/assets/can-invoke-test-elyUcOKT.js +401 -0
- package/bundled-test-harness/assets/card-api-CjWXCkqh.js +8 -0
- package/bundled-test-harness/assets/card-api-Dzje0smT.js +4393 -0
- package/bundled-test-harness/assets/card-api-test-DA8d4Ooc.js +198 -0
- package/bundled-test-harness/assets/card-basics-test-mp1Odo-l.js +5364 -0
- package/bundled-test-harness/assets/card-chooser-paging-test-y8OfboYd.js +235 -0
- package/bundled-test-harness/assets/card-chooser-test-nmg2zkDj.js +393 -0
- package/bundled-test-harness/assets/card-collection-BXiO3i7R.js +118 -0
- package/bundled-test-harness/assets/card-context-search-results-Dbhn7lvW.js +30 -0
- package/bundled-test-harness/assets/card-context-search-results-test-DVXT-YC5.js +184 -0
- package/bundled-test-harness/assets/card-def-field-def-relationships-test-mX4rxrtO.js +562 -0
- package/bundled-test-harness/assets/card-delete-test-BxFsqFnX.js +466 -0
- package/bundled-test-harness/assets/card-error-C-7hjxu9.js +72 -0
- package/bundled-test-harness/assets/card-error-awaiting-index-test-BvfY2eaW.js +53 -0
- package/bundled-test-harness/assets/card-error-detail-nMwopDir.js +271 -0
- package/bundled-test-harness/assets/card-info-CTFxdohf.js +2 -0
- package/bundled-test-harness/assets/card-list-B9QrkJ97.js +2 -0
- package/bundled-test-harness/assets/card-list-XbwLCXZS.js +202 -0
- package/bundled-test-harness/assets/card-resource-JGLjQUy6.js +86 -0
- package/bundled-test-harness/assets/cards-grid-CWG41hZE.js +344 -0
- package/bundled-test-harness/assets/cards-grid-DSpX99p6.js +2 -0
- package/bundled-test-harness/assets/cards-grid-layout-Bht0LwZy.js +2 -0
- package/bundled-test-harness/assets/cards-grid-layout-CdpKlHUb.js +111 -0
- package/bundled-test-harness/assets/check-correctness-test-C4BrUeKA.js +554 -0
- package/bundled-test-harness/assets/clip-BEVvLrXx.js +2 -0
- package/bundled-test-harness/assets/clip-CoB714qX.js +92 -0
- package/bundled-test-harness/assets/code-ref-C2uguisI.js +2 -0
- package/bundled-test-harness/assets/code-ref-Cy7sV5a4.js +138 -0
- package/bundled-test-harness/assets/code-submode-availability-test-BsA_Ul01.js +198 -0
- package/bundled-test-harness/assets/code-submode-test-DkBhpEPB.js +1839 -0
- package/bundled-test-harness/assets/codeblocks-test-B1eZ2_JF.js +418 -0
- package/bundled-test-harness/assets/codemirror-editor-C6pxSm5y.js +2 -0
- package/bundled-test-harness/assets/codemirror-editor-DzM46Cd8.js +701 -0
- package/bundled-test-harness/assets/codemirror-embed-toolbar-test-BemP-ZdG.js +366 -0
- package/bundled-test-harness/assets/color-C-jGNFWZ.js +2 -0
- package/bundled-test-harness/assets/color-field-test-DPIRaBec.js +212 -0
- package/bundled-test-harness/assets/color-picker-field-Bv4IjS-d.js +139 -0
- package/bundled-test-harness/assets/color-picker-field-D1bYCQIg.js +2 -0
- package/bundled-test-harness/assets/color-wheel-picker-IIaCQplL.js +283 -0
- package/bundled-test-harness/assets/color-wheel-picker-Kw-UN3kV.js +2 -0
- package/bundled-test-harness/assets/color-zzCBneih.js +65 -0
- package/bundled-test-harness/assets/command-data-BMBtjT1E.js +95 -0
- package/bundled-test-harness/assets/command-data-BXC5Z0oA.js +2 -0
- package/bundled-test-harness/assets/compaction-test-CxUKnxlQ.js +150 -0
- package/bundled-test-harness/assets/components-Ct_agx0G.js +14294 -0
- package/bundled-test-harness/assets/computed-test-C-lpGQQ3.js +1320 -0
- package/bundled-test-harness/assets/container-BdPu8rvc.css +5565 -0
- package/bundled-test-harness/assets/container-Dj-5prh9.js +11288 -0
- package/bundled-test-harness/assets/contains-many-component-CAWqzX8W.js +2 -0
- package/bundled-test-harness/assets/contrast-checker-addon-BTLD7oMx.js +2 -0
- package/bundled-test-harness/assets/contrast-checker-addon-DBzizR04.js +71 -0
- package/bundled-test-harness/assets/convert-to-class-name-test-zZuKxYvF.js +17 -0
- package/bundled-test-harness/assets/coordinate-Bw8va6tO.js +48 -0
- package/bundled-test-harness/assets/copy-file-to-realm-test-DtCKPzqj.js +148 -0
- package/bundled-test-harness/assets/country-B_tWpLlO.js +199 -0
- package/bundled-test-harness/assets/create-file-modal-D-VPyEYp.js +570 -0
- package/bundled-test-harness/assets/create-listing-modal-test-hyLkQY0u.js +273 -0
- package/bundled-test-harness/assets/create-listing-pr-request-test-rjWFA_5S.js +117 -0
- package/bundled-test-harness/assets/create-spec-test-HKIxZGxK.js +256 -0
- package/bundled-test-harness/assets/create-specs-9-ELVyJP.js +215 -0
- package/bundled-test-harness/assets/create-submission-workflow-test-DNZrbRX8.js +132 -0
- package/bundled-test-harness/assets/credential-fields-test-xPEdA911.js +157 -0
- package/bundled-test-harness/assets/css-value-Du3HL39X.js +48 -0
- package/bundled-test-harness/assets/csv-file-def-EHRmilrp.js +277 -0
- package/bundled-test-harness/assets/currency-y6ZCHIqG.js +134 -0
- package/bundled-test-harness/assets/date-B27PrSFT.js +183 -0
- package/bundled-test-harness/assets/date-CiP5Eb9i.js +2 -0
- package/bundled-test-harness/assets/date-time-fields-test-Clf5vxRW.js +359 -0
- package/bundled-test-harness/assets/datetime-BEbR9YgU.js +201 -0
- package/bundled-test-harness/assets/datetime-DPnrt1wl.js +2 -0
- package/bundled-test-harness/assets/datetime-stamp-AuT7F7qn.js +2 -0
- package/bundled-test-harness/assets/datetime-stamp-CGwP2P3f.js +81 -0
- package/bundled-test-harness/assets/day-BFLxZ9bQ.js +2 -0
- package/bundled-test-harness/assets/day-CQoEkqgE.js +113 -0
- package/bundled-test-harness/assets/debug-message-test-CzgOpfcI.js +117 -0
- package/bundled-test-harness/assets/dist-B-fYvxfL.js +389 -0
- package/bundled-test-harness/assets/dist-C2IXvIKX.js +323 -0
- package/bundled-test-harness/assets/dist-CdNZu43l.js +1710 -0
- package/bundled-test-harness/assets/docx-file-def-BQMw460_.js +60 -0
- package/bundled-test-harness/assets/docx-meta-extractor-DBlmH_kV.js +60 -0
- package/bundled-test-harness/assets/docx-meta-extractor-Dw4gZ0ae.js +2 -0
- package/bundled-test-harness/assets/duration-B0SnEiw1.js +184 -0
- package/bundled-test-harness/assets/duration-DbjJTFeA.js +2 -0
- package/bundled-test-harness/assets/email-C-8cyWiQ.js +80 -0
- package/bundled-test-harness/assets/email-field-test-BOBmvQqx.js +75 -0
- package/bundled-test-harness/assets/email-xUgCst-p.js +2 -0
- package/bundled-test-harness/assets/enum-BWiCyJlu.js +167 -0
- package/bundled-test-harness/assets/enum-CzYjivhO.js +2 -0
- package/bundled-test-harness/assets/enum-field-test-Bea9EsQR.js +953 -0
- package/bundled-test-harness/assets/error-display-test-Cbl2D_0c.js +343 -0
- package/bundled-test-harness/assets/ethereum-address-Bw_J05bD.js +78 -0
- package/bundled-test-harness/assets/ethereum-address-C9wHMBt3.js +2 -0
- package/bundled-test-harness/assets/expiration-warning-BHcJEjZt.js +90 -0
- package/bundled-test-harness/assets/expiration-warning-_G8SKZd0.js +2 -0
- package/bundled-test-harness/assets/externals-CKblKBo1.js +4393 -0
- package/bundled-test-harness/assets/fallback-banner-BqCrvTDt.js +24 -0
- package/bundled-test-harness/assets/fallback-banner-live-delete-test-D_AYMvf6.js +207 -0
- package/bundled-test-harness/assets/fallback-banner-test-B8Ne9a5g.js +225 -0
- package/bundled-test-harness/assets/fallback-banner-test-C7oaSxd1.js +53 -0
- package/bundled-test-harness/assets/fallback-models-test-DY-PvU9k.js +161 -0
- package/bundled-test-harness/assets/field-component-Bj8YthPE.js +2 -0
- package/bundled-test-harness/assets/field-configuration-test-B5LztQ47.js +548 -0
- package/bundled-test-harness/assets/field-edit-Cx_haspD.js +36 -0
- package/bundled-test-harness/assets/field-edit-DQZWUz3F.js +2 -0
- package/bundled-test-harness/assets/field-markdown-domain-test-DnqK3CrE.js +616 -0
- package/bundled-test-harness/assets/field-markdown-oversize-test-BEpbXIvl.js +88 -0
- package/bundled-test-harness/assets/field-markdown-primitives-test-BDORWoOk.js +365 -0
- package/bundled-test-harness/assets/field-markdown-specialized-test-BmIzadYq.js +534 -0
- package/bundled-test-harness/assets/field-test-helpers-CRF9-jFw.js +45 -0
- package/bundled-test-harness/assets/file-api-DPMJghBY.js +7 -0
- package/bundled-test-harness/assets/file-attachment-test-DFLXg3xV.js +796 -0
- package/bundled-test-harness/assets/file-chooser-panel-test-B4DzCWkt.js +153 -0
- package/bundled-test-harness/assets/file-chooser-test-DpjOWgpB.js +504 -0
- package/bundled-test-harness/assets/file-def-edit-Bstl7Kkl.js +2 -0
- package/bundled-test-harness/assets/file-def-edit-C1dzJxmQ.js +26 -0
- package/bundled-test-harness/assets/file-def-embedded-CUy4G7Vc.js +2 -0
- package/bundled-test-harness/assets/file-def-embedded-DJs6P5t0.js +38 -0
- package/bundled-test-harness/assets/file-def-fitted-BlrBFfLh.js +38 -0
- package/bundled-test-harness/assets/file-def-fitted-Bo5Qfkyf.js +2 -0
- package/bundled-test-harness/assets/file-def-isolated-BsHydanv.js +38 -0
- package/bundled-test-harness/assets/file-def-isolated-Dp-Lc99-.js +2 -0
- package/bundled-test-harness/assets/file-def-serialization-test-CISKpt_o.js +89 -0
- package/bundled-test-harness/assets/file-menu-items-7_ltrFZq.js +117 -0
- package/bundled-test-harness/assets/file-menu-items-BnRG9ydE.js +2 -0
- package/bundled-test-harness/assets/file-preview-stage-CV3qZpiK.js +72 -0
- package/bundled-test-harness/assets/file-preview-stage-DTA5X8rX.js +2 -0
- package/bundled-test-harness/assets/file-shell-embedded-BpmiVzIG.js +2 -0
- package/bundled-test-harness/assets/file-shell-embedded-CEv0-6OE.js +68 -0
- package/bundled-test-harness/assets/file-shell-fitted-C6k3GnMc.js +2 -0
- package/bundled-test-harness/assets/file-shell-fitted-iSTg3PJa.js +98 -0
- package/bundled-test-harness/assets/file-shell-isolated-C-pEod2J.js +195 -0
- package/bundled-test-harness/assets/file-shell-isolated-DI9oU7ix.js +2 -0
- package/bundled-test-harness/assets/file-tree-from-index-BtOOMqnb.js +151 -0
- package/bundled-test-harness/assets/file-tree-from-index-test-T8w3hPw_.js +96 -0
- package/bundled-test-harness/assets/film-5n9_gRqZ.js +4074 -0
- package/bundled-test-harness/assets/film-Ca2Vzlfu.js +13 -0
- package/bundled-test-harness/assets/film-DEvhBbBu.js +2 -0
- package/bundled-test-harness/assets/fitted-6OGuHgoU.js +2 -0
- package/bundled-test-harness/assets/fitted-B2l1jlSp.js +34 -0
- package/bundled-test-harness/assets/flac-meta-extractor-BoJqvmDC.js +99 -0
- package/bundled-test-harness/assets/font-file-def-Czzt5paT.js +64 -0
- package/bundled-test-harness/assets/font-meta-extractor-DQYT_e5b.js +2 -0
- package/bundled-test-harness/assets/font-meta-extractor-IHD-pG8V.js +303 -0
- package/bundled-test-harness/assets/formatted-aibot-message-test-Djsl8RzE.js +109 -0
- package/bundled-test-harness/assets/from-elsewhere-BXcLYxxu.js +131 -0
- package/bundled-test-harness/assets/frontmatter-field-CciolgL3.js +41 -0
- package/bundled-test-harness/assets/garbage-collection-test-BTOLAfB6.js +403 -0
- package/bundled-test-harness/assets/gauge-C1loqGq3.js +2 -0
- package/bundled-test-harness/assets/gauge-u8dxl90d.js +106 -0
- package/bundled-test-harness/assets/general-test-Cd5WtVvd.js +926 -0
- package/bundled-test-harness/assets/get-relationship-membership-state-test-DJAuhOVM.js +1308 -0
- package/bundled-test-harness/assets/gif-meta-extractor-tSaPtuYW.js +114 -0
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-DNSy5l59.js +160 -0
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-B6BbQxYq.js +74 -0
- package/bundled-test-harness/assets/helper-m6jA5HmU.js +478 -0
- package/bundled-test-harness/assets/host-submode-test-CsgdksBi.js +1243 -0
- package/bundled-test-harness/assets/html-file-def-yKtdMSa-.js +82 -0
- package/bundled-test-harness/assets/hydratable-card-CxNfbqly.js +147 -0
- package/bundled-test-harness/assets/hydratable-card-test-NJ4CI4ey.js +426 -0
- package/bundled-test-harness/assets/icons-B3SAtRoj.js +894 -0
- package/bundled-test-harness/assets/image-file-def-B0rpS3Yy.js +3 -0
- package/bundled-test-harness/assets/image-file-def-DUFmjNL8.js +65 -0
- package/bundled-test-harness/assets/image-olOUqgMQ.js +47 -0
- package/bundled-test-harness/assets/index-changes-test-D7OE-99k.js +367 -0
- package/bundled-test-harness/assets/index-query-engine-test-BBKqgSmg.js +2593 -0
- package/bundled-test-harness/assets/inspector-test-DV6Ms2uz.js +1930 -0
- package/bundled-test-harness/assets/instance-filter-matcher-test-Bs4kf7E8.js +788 -0
- package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DIfgRhIN.js +475 -0
- package/bundled-test-harness/assets/interact-submode-setup-D4M_e580.js +566 -0
- package/bundled-test-harness/assets/is-component-declaration-test-jPGRTVh1.js +50 -0
- package/bundled-test-harness/assets/iso-bmff-DHtkSbQM.js +205 -0
- package/bundled-test-harness/assets/iso-bmff-zmOHoSVg.js +2 -0
- package/bundled-test-harness/assets/isolated-and-edit-BAnwcK1T.js +2 -0
- package/bundled-test-harness/assets/job-priority-header-test-7j2f3Dtl.js +81 -0
- package/bundled-test-harness/assets/job-scoped-instance-residency-test-DPzVQUL3.js +103 -0
- package/bundled-test-harness/assets/join-the-community-Ft5fjeIA.js +86 -0
- package/bundled-test-harness/assets/jpg-meta-extractor-Dsq6rZ8F.js +88 -0
- package/bundled-test-harness/assets/json-field-CxOZvp3k.js +19 -0
- package/bundled-test-harness/assets/json-field-ojdwGD6T.js +2 -0
- package/bundled-test-harness/assets/json-file-def-Da_5-zSM.js +298 -0
- package/bundled-test-harness/assets/last-modified-date-BnyJsc04.js +43 -0
- package/bundled-test-harness/assets/last-modified-date-test-DFl2mo1B.js +28 -0
- package/bundled-test-harness/assets/links-to-editor-DO24-71w.js +2 -0
- package/bundled-test-harness/assets/links-to-many-component-C7DabwAY.js +2 -0
- package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-D4lDhvnQ.js +398 -0
- package/bundled-test-harness/assets/linksto-error-sentinel-test-oWgDz00K.js +238 -0
- package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-CpSl7zJ7.js +354 -0
- package/bundled-test-harness/assets/linksto-many-per-slot-access-test-DJY3J8Xl.js +303 -0
- package/bundled-test-harness/assets/linksto-sentinel-reload-test-BxzfoONe.js +197 -0
- package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-DyE99km_.js +260 -0
- package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-dcWAAgxt.js +196 -0
- package/bundled-test-harness/assets/llm-model-DrswiczZ.js +64 -0
- package/bundled-test-harness/assets/login-C-EIG0-Q.css +543 -0
- package/bundled-test-harness/assets/login-CNeL-9IC.js +408 -0
- package/bundled-test-harness/assets/login-error-text-test-CEH2tjNP.js +51 -0
- package/bundled-test-harness/assets/login-test-BpMx7qwV.js +246 -0
- package/bundled-test-harness/assets/m4a-meta-extractor-BJkMHUIK.js +204 -0
- package/bundled-test-harness/assets/main-BaUgfpPE.js +5 -0
- package/bundled-test-harness/assets/markdown-ByEGbwov.js +7 -0
- package/bundled-test-harness/assets/markdown-KJzgTg-A.js +2 -0
- package/bundled-test-harness/assets/markdown-editor-mode-select-BUGPXaSE.js +2 -0
- package/bundled-test-harness/assets/markdown-editor-mode-select-DBk8dG0O.js +54 -0
- package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-BIlEmna9.js +470 -0
- package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B6rscKpk.js +447 -0
- package/bundled-test-harness/assets/markdown-embed-preview-test-CTQw1wq-.js +368 -0
- package/bundled-test-harness/assets/markdown-fallback-BVsco6gJ.js +2 -0
- package/bundled-test-harness/assets/markdown-fallback-test-C_CIFEzH.js +316 -0
- package/bundled-test-harness/assets/markdown-highlighting-test-D6YvywF5.js +244 -0
- package/bundled-test-harness/assets/markdown-preview-1TSMSUv0.js +64 -0
- package/bundled-test-harness/assets/markdown-preview-jbuUjLoD.js +72 -0
- package/bundled-test-harness/assets/markdown-preview-test-zuU5uoA_.js +238 -0
- package/bundled-test-harness/assets/markdown-skill-frontmatter-test-CoicGRkb.js +146 -0
- package/bundled-test-harness/assets/menu-items-DZ_uOoYu.js +2 -0
- package/bundled-test-harness/assets/message-tool-test-K6LgTq5d.js +33 -0
- package/bundled-test-harness/assets/metadata-fields-WiOuUCDl.js +1415 -0
- package/bundled-test-harness/assets/metadata-fields-iu5AfQp3.js +2 -0
- package/bundled-test-harness/assets/midi-audio-def-CD2-4Wjx.js +52 -0
- package/bundled-test-harness/assets/midi-meta-extractor-CE3sLiEV.js +284 -0
- package/bundled-test-harness/assets/midi-meta-extractor-O7c8LHYV.js +2 -0
- package/bundled-test-harness/assets/migrate-skill-test-Beh-AeSN.js +161 -0
- package/bundled-test-harness/assets/mini-BNXINKKF.js +85 -0
- package/bundled-test-harness/assets/mini-C43Q4BWp.js +1519 -0
- package/bundled-test-harness/assets/mini-card-chooser-test-B1GMp-31.js +272 -0
- package/bundled-test-harness/assets/mini-file-chooser-test-CbI1vrQn.js +201 -0
- package/bundled-test-harness/assets/missing-template-BPhJRbDs.js +48 -0
- package/bundled-test-harness/assets/missing-template-DP-Pi-HQ.js +2 -0
- package/bundled-test-harness/assets/modal-KpPz2f8x.js +322 -0
- package/bundled-test-harness/assets/modal-container-0Efz_h2z.js +40 -0
- package/bundled-test-harness/assets/model-cost-tier-test-D-5VSjh6.js +173 -0
- package/bundled-test-harness/assets/module-contents-service-BRkTETb6.js +256 -0
- package/bundled-test-harness/assets/moment-Cln59YUK.js +3474 -0
- package/bundled-test-harness/assets/monaco-AbHCoDJY.js +143 -0
- package/bundled-test-harness/assets/monaco-test-DCPi18sy.js +100 -0
- package/bundled-test-harness/assets/monaco-test-waiter-lvFEYpFj.js +190 -0
- package/bundled-test-harness/assets/month-1eUIsvWN.js +2 -0
- package/bundled-test-harness/assets/month-BeUdWMWQ.js +123 -0
- package/bundled-test-harness/assets/month-day-Bbsd8YbR.js +192 -0
- package/bundled-test-harness/assets/month-day-Dks5STJu.js +2 -0
- package/bundled-test-harness/assets/month-year-pL_rpUhX.js +2 -0
- package/bundled-test-harness/assets/month-year-wH_YnYgL.js +93 -0
- package/bundled-test-harness/assets/mp3-meta-extractor-C3u34UHM.js +476 -0
- package/bundled-test-harness/assets/mp4-meta-extractor-Bj3F7dxs.js +188 -0
- package/bundled-test-harness/assets/multiple-stacks-test-mkNdTUMI.js +208 -0
- package/bundled-test-harness/assets/nested-query-field-render-test-BQLn3wg9.js +249 -0
- package/bundled-test-harness/assets/no-stacks-test-DpwZQAJ-.js +48 -0
- package/bundled-test-harness/assets/number-DZa-fHpu.js +151 -0
- package/bundled-test-harness/assets/number-Dvua76YP.js +3 -0
- package/bundled-test-harness/assets/number-field-test-BiaH2eaB.js +184 -0
- package/bundled-test-harness/assets/number-input-D5nDYDkK.js +82 -0
- package/bundled-test-harness/assets/office-extract-JzYva33g.js +27 -0
- package/bundled-test-harness/assets/office-extract-XMpsyYRh.js +2 -0
- package/bundled-test-harness/assets/ogg-meta-extractor-DJosZ9LA.js +225 -0
- package/bundled-test-harness/assets/on-key-BBVkS8Bi.js +472 -0
- package/bundled-test-harness/assets/ooxml-BlAE2w4d.js +172 -0
- package/bundled-test-harness/assets/ooxml-D-p8OmuM.js +2 -0
- package/bundled-test-harness/assets/open-image-in-new-tab-test-DWBU5pw9.js +52 -0
- package/bundled-test-harness/assets/operation-lowering-test-nzqprueU.js +2812 -0
- package/bundled-test-harness/assets/operations-CPvfTuY3.js +766 -0
- package/bundled-test-harness/assets/operations-invocation-test-C75T6zn3.js +523 -0
- package/bundled-test-harness/assets/operations-query-test-BoCszQEW.js +459 -0
- package/bundled-test-harness/assets/operations-test-79ipSnpM.js +2518 -0
- package/bundled-test-harness/assets/operations-x3Aw2Nky.js +3 -0
- package/bundled-test-harness/assets/operator-mode-acceptance-test-jjsYtt96.js +1188 -0
- package/bundled-test-harness/assets/operator-mode-card-chooser-test-hZP9gEQK.js +1036 -0
- package/bundled-test-harness/assets/operator-mode-links-test-DN16SuIx.js +793 -0
- package/bundled-test-harness/assets/operator-mode-state-service-gwiTSiWX.js +1275 -0
- package/bundled-test-harness/assets/operator-mode-state-service-test-Dt2qnKKP.js +206 -0
- package/bundled-test-harness/assets/operator-mode-test-BZnnxO9q.js +683 -0
- package/bundled-test-harness/assets/operator-mode-ui-test-O--qEo-y.js +1027 -0
- package/bundled-test-harness/assets/overlay-menu-items-test-Bl2k0aAa.js +317 -0
- package/bundled-test-harness/assets/overlays-CdN_JokA.js +270 -0
- package/bundled-test-harness/assets/overlays-clip-test-DpbR1ZTz.js +91 -0
- package/bundled-test-harness/assets/overlays-detached-element-test-cLgEGvMs.js +56 -0
- package/bundled-test-harness/assets/pane-PYdezM7g.js +330 -0
- package/bundled-test-harness/assets/panel-7FDqkxrr.js +474 -0
- package/bundled-test-harness/assets/panel-C3E0s49q.js +3540 -0
- package/bundled-test-harness/assets/past-sessions-test-BsjEeoze.js +321 -0
- package/bundled-test-harness/assets/patch-fields-test-CsixJmSr.js +1014 -0
- package/bundled-test-harness/assets/patch-instance-test-CBDgTi0L.js +348 -0
- package/bundled-test-harness/assets/pdf-file-def-9VNjnqDa.js +76 -0
- package/bundled-test-harness/assets/pdf-meta-extractor-BF4e5kMR.js +156 -0
- package/bundled-test-harness/assets/pdf-meta-extractor-D8Bxh2cc.js +2 -0
- package/bundled-test-harness/assets/pdf-viewer-Bu413sN8.js +112 -0
- package/bundled-test-harness/assets/pdf-viewer-GKDi_xmf.js +2 -0
- package/bundled-test-harness/assets/percentage-TOr6qK2T.js +84 -0
- package/bundled-test-harness/assets/permission-checking-realm-test-BRNVYszm.js +306 -0
- package/bundled-test-harness/assets/phone-number-D5SR8nWu.js +236 -0
- package/bundled-test-harness/assets/phone-number-field-test-DffwtqGd.js +73 -0
- package/bundled-test-harness/assets/phone-number-hf_xIVGQ.js +2 -0
- package/bundled-test-harness/assets/plate-Vojc88hM.js +41 -0
- package/bundled-test-harness/assets/plate-dTUzEMj5.js +2 -0
- package/bundled-test-harness/assets/player-CmRw0uM5.js +82 -0
- package/bundled-test-harness/assets/player-Dt85lPZl.js +2 -0
- package/bundled-test-harness/assets/plural-field-components-test-DNpGuH1D.js +198 -0
- package/bundled-test-harness/assets/png-image-def-GY7gjqya.js +48 -0
- package/bundled-test-harness/assets/png-meta-extractor-4pI611re.js +2 -0
- package/bundled-test-harness/assets/png-meta-extractor-CHp_rpAi.js +111 -0
- package/bundled-test-harness/assets/policy-scoped-search-test-CipPu7tY.js +339 -0
- package/bundled-test-harness/assets/pptx-file-def-lBBiebvn.js +60 -0
- package/bundled-test-harness/assets/pptx-meta-extractor-BjJYWiOJ.js +77 -0
- package/bundled-test-harness/assets/pptx-meta-extractor-DbT-dPRg.js +2 -0
- package/bundled-test-harness/assets/prerender-persistence-block-test-ClHMVvJt.js +124 -0
- package/bundled-test-harness/assets/prerender-serialize-cycle-test-LdqaMTK8.js +134 -0
- package/bundled-test-harness/assets/preview-CYlam_aW.js +74 -0
- package/bundled-test-harness/assets/preview-format-CiSo4kEa.js +41 -0
- package/bundled-test-harness/assets/preview-format-test-MsB1TOLB.js +103 -0
- package/bundled-test-harness/assets/process-card-B3xBGkv1.js +2 -0
- package/bundled-test-harness/assets/process-card-DumVcx9E.js +114 -0
- package/bundled-test-harness/assets/process-card-test-C44H8yVy.js +94 -0
- package/bundled-test-harness/assets/profile-settings-modal-ipYzrVTz.js +708 -0
- package/bundled-test-harness/assets/progress-circle-DJ6WSO2E.js +95 -0
- package/bundled-test-harness/assets/progress-circle-q358_9Sn.js +2 -0
- package/bundled-test-harness/assets/quarter-BjO5DlU2.js +2 -0
- package/bundled-test-harness/assets/quarter-_D72FwfS.js +168 -0
- package/bundled-test-harness/assets/query-field-membership-status-test-CzDyfK49.js +323 -0
- package/bundled-test-harness/assets/query-field-page-optin-test-B-x3vsmC.js +126 -0
- package/bundled-test-harness/assets/query-field-schema-test-DFw6KuYv.js +231 -0
- package/bundled-test-harness/assets/query-field-stale-prerender-test-DSQ-cv_O.js +152 -0
- package/bundled-test-harness/assets/query-fields-test-DQiMFRCe.js +535 -0
- package/bundled-test-harness/assets/rail-CNspDFyn.js +44 -0
- package/bundled-test-harness/assets/rail-D2YcQ0VP.js +2 -0
- package/bundled-test-harness/assets/realm-82Z5RUM_.js +95 -0
- package/bundled-test-harness/assets/realm-config-SgrwqjRu.js +844 -0
- package/bundled-test-harness/assets/realm-config-policy-standing-test-C6sQNk2u.js +290 -0
- package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-DcYXBlvi.js +274 -0
- package/bundled-test-harness/assets/realm-config-settings-test-DblJv06X.js +187 -0
- package/bundled-test-harness/assets/realm-dropdown-CDvL8k3B.js +560 -0
- package/bundled-test-harness/assets/realm-et890flh.js +2 -0
- package/bundled-test-harness/assets/realm-field-test-pBK_x-Xw.js +100 -0
- package/bundled-test-harness/assets/realm-indexing-test-DSFn2F8F.js +4380 -0
- package/bundled-test-harness/assets/realm-policy-test-DYnLqzTS.js +1141 -0
- package/bundled-test-harness/assets/realm-test-DOZT2EG5.js +2363 -0
- package/bundled-test-harness/assets/realm-url-tooltip-qaXTjRb-.js +56 -0
- package/bundled-test-harness/assets/realm-url-tooltip-test-DGTEeLH9.js +78 -0
- package/bundled-test-harness/assets/reasoning-test-BRkhvYjr.js +234 -0
- package/bundled-test-harness/assets/recent-colors-addon-BreXcpg8.js +2 -0
- package/bundled-test-harness/assets/recent-colors-addon-CmCkbJ2_.js +61 -0
- package/bundled-test-harness/assets/relationship-loading-state-test-B6UGYKzG.js +290 -0
- package/bundled-test-harness/assets/relative-time-BjHvL023.js +2 -0
- package/bundled-test-harness/assets/relative-time-ChYKOMIM.js +129 -0
- package/bundled-test-harness/assets/remix-card-test-CpV0kKfq.js +58 -0
- package/bundled-test-harness/assets/rendered-markdown-CJa7IzCC.js +263 -0
- package/bundled-test-harness/assets/rendered-markdown-test-CVKsHS4P.js +587 -0
- package/bundled-test-harness/assets/resident-instance-reuse-test-jQfW1NMn.js +82 -0
- package/bundled-test-harness/assets/response-field-B2-daCl2.js +38 -0
- package/bundled-test-harness/assets/result-tile-BSg4mzbc.js +140 -0
- package/bundled-test-harness/assets/rich-markdown-BtP1yamM.js +2 -0
- package/bundled-test-harness/assets/rich-markdown-C6rQUngb.js +218 -0
- package/bundled-test-harness/assets/rich-markdown-field-test-9yB6ykCe.js +1647 -0
- package/bundled-test-harness/assets/room-C7tKd02X.js +1008 -0
- package/bundled-test-harness/assets/room-message-test-DsMmRYpV.js +445 -0
- package/bundled-test-harness/assets/room-test-golI1H61.js +95 -0
- package/bundled-test-harness/assets/run-realm-code-CbXk6bnK.js +1600 -0
- package/bundled-test-harness/assets/run-realm-code-test-B9JeesaW.js +2468 -0
- package/bundled-test-harness/assets/schema-generation-test-uLLGm5Vh.js +28 -0
- package/bundled-test-harness/assets/score-BQhCQdUP.js +2 -0
- package/bundled-test-harness/assets/score-CoWEzENH.js +100 -0
- package/bundled-test-harness/assets/scrolling-test-WHWEkKeZ.js +384 -0
- package/bundled-test-harness/assets/search-BkQYpQDY.js +605 -0
- package/bundled-test-harness/assets/search-adorn-test-CW92JPOk.js +136 -0
- package/bundled-test-harness/assets/search-entries-BU4w6Ymc.js +472 -0
- package/bundled-test-harness/assets/search-entries-result-test-9eydsDtD.js +234 -0
- package/bundled-test-harness/assets/search-entries-test-ByUREx0G.js +1486 -0
- package/bundled-test-harness/assets/search-result-header-UFkdo0Bx.js +128 -0
- package/bundled-test-harness/assets/search-results-DrHTuVRZ.js +266 -0
- package/bundled-test-harness/assets/search-results-test-krtQQM57.js +578 -0
- package/bundled-test-harness/assets/search-selection-menu-test-DoqSbez7.js +108 -0
- package/bundled-test-harness/assets/search-sheet-persistence-test-4ZPaEY-y.js +131 -0
- package/bundled-test-harness/assets/search-test-BYpq32RM.js +2241 -0
- package/bundled-test-harness/assets/searchable-BXw4T11q.js +192 -0
- package/bundled-test-harness/assets/searchable-CVvPDA3Q.js +2 -0
- package/bundled-test-harness/assets/searchable-option-test-BhLFI4ei.js +322 -0
- package/bundled-test-harness/assets/searchable-search-doc-test-DrNLCF73.js +1271 -0
- package/bundled-test-harness/assets/secure-sign-in-VNQhe0ae.js +130 -0
- package/bundled-test-harness/assets/secure-sign-in-Za8PX9cD.css +24 -0
- package/bundled-test-harness/assets/secure-sign-in-aunWHCrB.js +73 -0
- package/bundled-test-harness/assets/secure-sign-in-test-BcY1TcNd.js +32 -0
- package/bundled-test-harness/assets/secure-sign-in-test-DRdz89BT.js +245 -0
- package/bundled-test-harness/assets/sending-test-mbHpGZUu.js +576 -0
- package/bundled-test-harness/assets/serialization-rri-form-audit-test-nypV9J82.js +136 -0
- package/bundled-test-harness/assets/serialization-test-aLwrFv4d.js +8758 -0
- package/bundled-test-harness/assets/setup-Dgn0s6Zk.js +772 -0
- package/bundled-test-harness/assets/shared-link-target-reuse-test-D9MR2UNc.js +207 -0
- package/bundled-test-harness/assets/show-card-Dwfk332M.js +67 -0
- package/bundled-test-harness/assets/show-card-test-CRPwwJvc.js +365 -0
- package/bundled-test-harness/assets/show-file-DLdFPHMR.js +34 -0
- package/bundled-test-harness/assets/signed-capture-DUR9PohQ.js +204 -0
- package/bundled-test-harness/assets/signed-capture-link-test-DfTAB6OT.js +132 -0
- package/bundled-test-harness/assets/single-stack-test-Crr_8nti.js +652 -0
- package/bundled-test-harness/assets/skill-DQ00VonZ.js +3 -0
- package/bundled-test-harness/assets/skill-reference-LEitQV9i.js +112 -0
- package/bundled-test-harness/assets/skill-yZXS1VHQ.js +76 -0
- package/bundled-test-harness/assets/skills-test-D3-C-Dbm.js +648 -0
- package/bundled-test-harness/assets/slider-picker-B6AxKL2j.js +245 -0
- package/bundled-test-harness/assets/slider-picker-C4Tc5o-s.js +2 -0
- package/bundled-test-harness/assets/spec-Cl_LB6nC.js +602 -0
- package/bundled-test-harness/assets/spinner-BHFM7zcR.js +39 -0
- package/bundled-test-harness/assets/spinner-DvAvsyDT.css +21 -0
- package/bundled-test-harness/assets/store-BV6WX8oV.js +2205 -0
- package/bundled-test-harness/assets/store-module-rebuild-test-HyphFJiF.js +454 -0
- package/bundled-test-harness/assets/store-search-test-nUeJ5opb.js +175 -0
- package/bundled-test-harness/assets/store-test-BebUIJAg.js +3460 -0
- package/bundled-test-harness/assets/string-BHZZwNlZ.js +9 -0
- package/bundled-test-harness/assets/submode-switcher-D-U9cXo0.js +169 -0
- package/bundled-test-harness/assets/svg-meta-extractor-BsG4w2nX.js +42 -0
- package/bundled-test-harness/assets/swatches-picker-4vFztxHo.js +33 -0
- package/bundled-test-harness/assets/swatches-picker-C7RE7uJ8.js +2 -0
- package/bundled-test-harness/assets/switch-submode-CuA0Zfjn.js +79 -0
- package/bundled-test-harness/assets/switch-submode-test-i1Qic_Cp.js +168 -0
- package/bundled-test-harness/assets/tag-CZNs3DPN.js +105 -0
- package/bundled-test-harness/assets/tests-BneuP252.js +3523 -0
- package/bundled-test-harness/assets/text-area-DAShQQBe.js +9 -0
- package/bundled-test-harness/assets/text-file-def-D2Rs6nS1.js +151 -0
- package/bundled-test-harness/assets/text-input-validator-test-C9IG-1GZ.js +156 -0
- package/bundled-test-harness/assets/theme-Dm8LWaRK.js +9 -0
- package/bundled-test-harness/assets/theme-card-test-Cbb6tAap.js +621 -0
- package/bundled-test-harness/assets/theme-scheme-island-test-DOVLakx3.js +264 -0
- package/bundled-test-harness/assets/three-d-model-def-DWSPQGgD.js +70 -0
- package/bundled-test-harness/assets/time--_Txqya1.js +126 -0
- package/bundled-test-harness/assets/time-DKD7Bdjd.js +2 -0
- package/bundled-test-harness/assets/time-slots-BZaugjq_.js +2 -0
- package/bundled-test-harness/assets/time-slots-C85M0rWl.js +85 -0
- package/bundled-test-harness/assets/timeline-B3KGDm3M.js +2 -0
- package/bundled-test-harness/assets/timeline-BMwgaZZu.js +59 -0
- package/bundled-test-harness/assets/to-device-streaming-test-CMp5bFiz.js +163 -0
- package/bundled-test-harness/assets/token-usage-test-CXA0b8Ep.js +166 -0
- package/bundled-test-harness/assets/tool-field-BGLelnsr.js +94 -0
- package/bundled-test-harness/assets/tool-field-BOFuDDt3.js +2 -0
- package/bundled-test-harness/assets/tools-CTjy7Aub.js +725 -0
- package/bundled-test-harness/assets/tools-calling-test--JR-7AK7.js +200 -0
- package/bundled-test-harness/assets/tools-test-6yAW3W5I.js +2820 -0
- package/bundled-test-harness/assets/tools-test-DhpMUQkz.js +1624 -0
- package/bundled-test-harness/assets/ts-file-def-CDbf8aw2.js +159 -0
- package/bundled-test-harness/assets/update-room-skills-test-DoKsS_1C.js +240 -0
- package/bundled-test-harness/assets/url-D0ooeJxC.js +2 -0
- package/bundled-test-harness/assets/url-mFskVPSX.js +96 -0
- package/bundled-test-harness/assets/video-file-def-AcmWqzev.js +76 -0
- package/bundled-test-harness/assets/wav-meta-extractor-CbTLruQf.js +368 -0
- package/bundled-test-harness/assets/webm-meta-extractor-C9JH-CMX.js +178 -0
- package/bundled-test-harness/assets/webp-meta-extractor-C6sHm4J7.js +98 -0
- package/bundled-test-harness/assets/website-Bxuk_OmR.js +92 -0
- package/bundled-test-harness/assets/week-Bxssxce7.js +2 -0
- package/bundled-test-harness/assets/week-DQLj9974.js +111 -0
- package/bundled-test-harness/assets/welcome-to-boxel-BH82RsW5.js +172 -0
- package/bundled-test-harness/assets/workspace-DJ_s2x4g.js +614 -0
- package/bundled-test-harness/assets/workspace-a11y-test-BJbZNgoP.js +197 -0
- package/bundled-test-harness/assets/workspace-behavior-test-BLBARTfb.js +200 -0
- package/bundled-test-harness/assets/workspace-chooser-BpmlVrVn.js +2219 -0
- package/bundled-test-harness/assets/workspace-chooser-CqLR2Dzh.css +1296 -0
- package/bundled-test-harness/assets/workspace-chooser-catalog-order-test-CmAVNAWC.js +36 -0
- package/bundled-test-harness/assets/workspace-chooser-unreachable-notice-test-DEfG7Uh9.js +60 -0
- package/bundled-test-harness/assets/workspace-delete-multiple-test-DE7Z8ooj.js +212 -0
- package/bundled-test-harness/assets/workspace-delete-summary-test-CwtG_zLH.js +63 -0
- package/bundled-test-harness/assets/workspace-timestamp-labels-test-DFAaRmJW.js +58 -0
- package/bundled-test-harness/assets/xlsx-file-def-DcvaRYnZ.js +60 -0
- package/bundled-test-harness/assets/xlsx-meta-extractor-0RlViVaf.js +101 -0
- package/bundled-test-harness/assets/xlsx-meta-extractor-BH30Vuem.js +2 -0
- package/bundled-test-harness/assets/year-B_MBk_hE.js +78 -0
- package/bundled-test-harness/assets/year-hSpccI9L.js +2 -0
- package/bundled-test-harness/assets/zip-file-def-c84iddi9.js +288 -0
- package/bundled-test-harness/index.html +78 -68
- package/bundled-test-harness/tests/index.html +78 -68
- package/bundled-types/host-app/components/matrix/account-switch-failed.gts +2 -2
- package/bundled-types/host-app/components/matrix/auth.gts +2 -2
- package/bundled-types/host-app/components/matrix/cli-auth.gts +7 -6
- package/bundled-types/host-app/components/matrix/forgot-password.gts +43 -129
- package/bundled-types/host-app/components/matrix/login.gts +15 -118
- package/bundled-types/host-app/components/matrix/register-user.gts +45 -226
- package/bundled-types/host-app/components/matrix/secure-sign-in.gts +235 -0
- package/bundled-types/host-app/components/operator-mode/container.gts +13 -1
- package/bundled-types/host-app/components/operator-mode/profile-info-popover.gts +1 -1
- package/bundled-types/host-app/config/environment.ts +1 -1
- package/bundled-types/host-app/lib/secure-sign-in.ts +130 -0
- package/bundled-types/host-app/services/matrix-service.ts +46 -0
- package/bundled-types/host-app/services/monaco-service.ts +0 -5
- package/bundled-types/host-app/utils/login-token.ts +23 -10
- package/dist/api.js +1 -1
- package/dist/index.js +289 -285
- package/package.json +1 -1
- package/src/build-program.ts +6 -2
- package/src/commands/profile.ts +72 -3
- package/src/lib/profile-manager.ts +5 -1
- package/src/lib/secure-session.ts +29 -0
- package/src/lib/sso-login.ts +94 -15
- package/bundled-test-harness/assets/account-switch-failed-B3pr_iC3.js +0 -32
- package/bundled-test-harness/assets/account-switch-failed-DTGZZo-G.css +0 -61
- package/bundled-test-harness/assets/account-switch-failed-test-9ENVgvlx.js +0 -45
- package/bundled-test-harness/assets/add-workspace-BAbk0250.js +0 -141
- package/bundled-test-harness/assets/add-workspace-test-ChAja_t-.js +0 -72
- package/bundled-test-harness/assets/advanced-color-picker-C-xBFJ2S.js +0 -504
- package/bundled-test-harness/assets/advanced-color-picker-bWAmCT-8.js +0 -2
- package/bundled-test-harness/assets/ai-assistant-test-BJ9yetuC.js +0 -2211
- package/bundled-test-harness/assets/ai-module-creation-test-Bw3TKS9d.js +0 -151
- package/bundled-test-harness/assets/aibot-message-DkgHT6eJ.js +0 -465
- package/bundled-test-harness/assets/app-DW5QjtRp.js +0 -22816
- package/bundled-test-harness/assets/app-yCDjO4mk.css +0 -2718
- package/bundled-test-harness/assets/audio-file-def-bJ3cXVmC.js +0 -133
- package/bundled-test-harness/assets/avif-meta-extractor-CrSDfYEt.js +0 -162
- package/bundled-test-harness/assets/base64-image-C7UBjK5W.js +0 -262
- package/bundled-test-harness/assets/base64-image-CjWpxROT.js +0 -2
- package/bundled-test-harness/assets/big-integer-BBql7oGZ.js +0 -89
- package/bundled-test-harness/assets/big-integer-B_TrzRy_.js +0 -2
- package/bundled-test-harness/assets/binary-upload-dedupe-test-BiX8kS7D.js +0 -308
- package/bundled-test-harness/assets/boolean-9LNUUTfw.js +0 -2
- package/bundled-test-harness/assets/boolean-BAmK01TF.js +0 -94
- package/bundled-test-harness/assets/brand-functional-palette-CFuoS-LS.js +0 -137
- package/bundled-test-harness/assets/brand-logo-By89eknI.js +0 -295
- package/bundled-test-harness/assets/broken-link-template-test-odBriDSP.js +0 -192
- package/bundled-test-harness/assets/bundled-base-CLQkkmN4.js +0 -254
- package/bundled-test-harness/assets/bundled-base-modules-test-BYrTaTwa.js +0 -54
- package/bundled-test-harness/assets/buried-stack-item-scroll-test-DU4bM5nd.js +0 -236
- package/bundled-test-harness/assets/bxl-expression-test-Cs9JaZbC.js +0 -250
- package/bundled-test-harness/assets/can-invoke-test-ccMc06BU.js +0 -401
- package/bundled-test-harness/assets/card-api-Bn65NUT0.js +0 -8
- package/bundled-test-harness/assets/card-api-test-COrFXu2i.js +0 -198
- package/bundled-test-harness/assets/card-api-u1pOrwS6.js +0 -4393
- package/bundled-test-harness/assets/card-basics-test-D4rn3iN-.js +0 -5364
- package/bundled-test-harness/assets/card-chooser-paging-test-bZhdrUXt.js +0 -235
- package/bundled-test-harness/assets/card-chooser-test-D9w1duob.js +0 -393
- package/bundled-test-harness/assets/card-collection-ClCV-__1.js +0 -118
- package/bundled-test-harness/assets/card-context-search-results-H_rN3Upz.js +0 -30
- package/bundled-test-harness/assets/card-context-search-results-test-jciyaouV.js +0 -184
- package/bundled-test-harness/assets/card-def-field-def-relationships-test-BVZoQzM8.js +0 -562
- package/bundled-test-harness/assets/card-delete-test-CuLcZFnY.js +0 -466
- package/bundled-test-harness/assets/card-error-DIOivSkD.js +0 -72
- package/bundled-test-harness/assets/card-error-awaiting-index-test-JMwcRONq.js +0 -53
- package/bundled-test-harness/assets/card-error-detail-96jWBx6B.js +0 -271
- package/bundled-test-harness/assets/card-info-BxPtwG1h.js +0 -2
- package/bundled-test-harness/assets/card-list-B34qY3io.js +0 -2
- package/bundled-test-harness/assets/card-list-BpCaKkZJ.js +0 -202
- package/bundled-test-harness/assets/card-resource-DcPbIwH9.js +0 -86
- package/bundled-test-harness/assets/cards-grid-CTN8nBT_.js +0 -344
- package/bundled-test-harness/assets/cards-grid-Cx44vL-M.js +0 -2
- package/bundled-test-harness/assets/cards-grid-layout-BdL0Uzxl.js +0 -111
- package/bundled-test-harness/assets/cards-grid-layout-Dn8Yb4ma.js +0 -2
- package/bundled-test-harness/assets/check-correctness-test-BfMV-MC0.js +0 -554
- package/bundled-test-harness/assets/clip-CK6mVuyN.js +0 -92
- package/bundled-test-harness/assets/clip-CfXD1JTr.js +0 -2
- package/bundled-test-harness/assets/code-ref-85Bih6Zl.js +0 -138
- package/bundled-test-harness/assets/code-ref-DATHaoyt.js +0 -2
- package/bundled-test-harness/assets/code-submode-availability-test-DLYlx0wo.js +0 -198
- package/bundled-test-harness/assets/code-submode-test-CDIi7MjD.js +0 -1824
- package/bundled-test-harness/assets/codeblocks-test-CNPyTvuv.js +0 -418
- package/bundled-test-harness/assets/codemirror-editor-BPOPTR-f.js +0 -2
- package/bundled-test-harness/assets/codemirror-editor-DPhG0pec.js +0 -701
- package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Dk5lFOUq.js +0 -366
- package/bundled-test-harness/assets/color-BxN5gRSg.js +0 -65
- package/bundled-test-harness/assets/color-CrunRcis.js +0 -2
- package/bundled-test-harness/assets/color-field-test-COjFIpXV.js +0 -212
- package/bundled-test-harness/assets/color-picker-field-C-GS1CIw.js +0 -139
- package/bundled-test-harness/assets/color-picker-field-D3RXhbCK.js +0 -2
- package/bundled-test-harness/assets/color-wheel-picker-Bz8cBmf4.js +0 -283
- package/bundled-test-harness/assets/color-wheel-picker-DrwPrB8B.js +0 -2
- package/bundled-test-harness/assets/command-data-BxXgtNBf.js +0 -2
- package/bundled-test-harness/assets/command-data-ZdkcpEgG.js +0 -95
- package/bundled-test-harness/assets/compaction-test-DS7DTGT_.js +0 -150
- package/bundled-test-harness/assets/components-CbCTWAON.js +0 -17777
- package/bundled-test-harness/assets/computed-test-D_OrXDtR.js +0 -1320
- package/bundled-test-harness/assets/container-DDolu1gk.js +0 -11109
- package/bundled-test-harness/assets/container-DndcCIMv.css +0 -5169
- package/bundled-test-harness/assets/contains-many-component-BtgnAXih.js +0 -2
- package/bundled-test-harness/assets/contrast-checker-addon-kwtLKWdL.js +0 -2
- package/bundled-test-harness/assets/contrast-checker-addon-zFY5cen1.js +0 -71
- package/bundled-test-harness/assets/convert-to-class-name-test-BcGWl2K1.js +0 -17
- package/bundled-test-harness/assets/coordinate-D72EF1Pl.js +0 -48
- package/bundled-test-harness/assets/copy-file-to-realm-test-CYoDX4YV.js +0 -148
- package/bundled-test-harness/assets/country-B-iIe5v8.js +0 -199
- package/bundled-test-harness/assets/create-file-modal-PpvMksjR.js +0 -570
- package/bundled-test-harness/assets/create-listing-modal-test-CQtEf_UD.js +0 -273
- package/bundled-test-harness/assets/create-listing-pr-request-test-CDtKWyfk.js +0 -117
- package/bundled-test-harness/assets/create-spec-test-Cbqk8I9T.js +0 -256
- package/bundled-test-harness/assets/create-specs-CZg2cpnh.js +0 -215
- package/bundled-test-harness/assets/create-submission-workflow-test-CYrxF7bg.js +0 -132
- package/bundled-test-harness/assets/credential-fields-test-Di4jCJgU.js +0 -157
- package/bundled-test-harness/assets/css-value-CceJyI5o.js +0 -48
- package/bundled-test-harness/assets/csv-file-def-DJL2aZI9.js +0 -277
- package/bundled-test-harness/assets/currency-Bn5WIqzF.js +0 -134
- package/bundled-test-harness/assets/date-XI2CVYA2.js +0 -2
- package/bundled-test-harness/assets/date-h83UJcFR.js +0 -183
- package/bundled-test-harness/assets/date-time-fields-test-Cterr2mj.js +0 -359
- package/bundled-test-harness/assets/datetime-DadI80tC.js +0 -201
- package/bundled-test-harness/assets/datetime-Dpb_Sejj.js +0 -2
- package/bundled-test-harness/assets/datetime-stamp-C4vv397u.js +0 -81
- package/bundled-test-harness/assets/datetime-stamp-DIsJdQux.js +0 -2
- package/bundled-test-harness/assets/day-C4pZoGNM.js +0 -113
- package/bundled-test-harness/assets/day-D0goBhKb.js +0 -2
- package/bundled-test-harness/assets/debug-message-test-CV0sj-fl.js +0 -117
- package/bundled-test-harness/assets/dist-CAIttNZm.js +0 -1710
- package/bundled-test-harness/assets/dist-CLbqnmnm.js +0 -389
- package/bundled-test-harness/assets/dist-qkBOmIQy.js +0 -323
- package/bundled-test-harness/assets/docx-file-def-hz2tVQKf.js +0 -60
- package/bundled-test-harness/assets/docx-meta-extractor-CeRshlxL.js +0 -60
- package/bundled-test-harness/assets/docx-meta-extractor-muK5CKF3.js +0 -2
- package/bundled-test-harness/assets/duration-BYx1dLfm.js +0 -2
- package/bundled-test-harness/assets/duration-FAmTFeUa.js +0 -184
- package/bundled-test-harness/assets/email-D-bFy_C1.js +0 -80
- package/bundled-test-harness/assets/email-field-test-CY9K2zur.js +0 -75
- package/bundled-test-harness/assets/email-j4DZNH2-.js +0 -2
- package/bundled-test-harness/assets/enum-B7_baAn_.js +0 -167
- package/bundled-test-harness/assets/enum-BQqNzVQS.js +0 -2
- package/bundled-test-harness/assets/enum-field-test-BJ9Epz15.js +0 -953
- package/bundled-test-harness/assets/error-display-test-CbDWjJ2F.js +0 -343
- package/bundled-test-harness/assets/ethereum-address-BOLEnKsm.js +0 -78
- package/bundled-test-harness/assets/ethereum-address-s3Kvb2wG.js +0 -2
- package/bundled-test-harness/assets/expiration-warning-BaIP1MOZ.js +0 -2
- package/bundled-test-harness/assets/expiration-warning-gjEtxPk0.js +0 -90
- package/bundled-test-harness/assets/externals-Bih8ejPS.js +0 -4393
- package/bundled-test-harness/assets/fallback-banner-MlImHjSD.js +0 -24
- package/bundled-test-harness/assets/fallback-banner-live-delete-test-Bm7IKXPf.js +0 -207
- package/bundled-test-harness/assets/fallback-banner-test-C7TGA0Ob.js +0 -53
- package/bundled-test-harness/assets/fallback-banner-test-lvuaVRXu.js +0 -225
- package/bundled-test-harness/assets/fallback-models-test-Dy7iIKUS.js +0 -161
- package/bundled-test-harness/assets/field-component-DBoOxTke.js +0 -2
- package/bundled-test-harness/assets/field-configuration-test-DnAnzyC-.js +0 -548
- package/bundled-test-harness/assets/field-edit-DdJ8Akso.js +0 -2
- package/bundled-test-harness/assets/field-edit-XAop92l8.js +0 -36
- package/bundled-test-harness/assets/field-markdown-domain-test-cZCqbcjj.js +0 -616
- package/bundled-test-harness/assets/field-markdown-oversize-test-BuATetVz.js +0 -88
- package/bundled-test-harness/assets/field-markdown-primitives-test-BsubQfhv.js +0 -365
- package/bundled-test-harness/assets/field-markdown-specialized-test-4eNLiYpF.js +0 -534
- package/bundled-test-harness/assets/field-test-helpers-9I7cHnaU.js +0 -45
- package/bundled-test-harness/assets/file-api-CC86I7Er.js +0 -7
- package/bundled-test-harness/assets/file-attachment-test-o9191GMb.js +0 -796
- package/bundled-test-harness/assets/file-chooser-panel-test-C8aZuJlk.js +0 -153
- package/bundled-test-harness/assets/file-chooser-test-B0Tn8CCR.js +0 -504
- package/bundled-test-harness/assets/file-def-edit-BSiF2Lje.js +0 -2
- package/bundled-test-harness/assets/file-def-edit-C5TYBp_q.js +0 -26
- package/bundled-test-harness/assets/file-def-embedded-BLVTCiVB.js +0 -2
- package/bundled-test-harness/assets/file-def-embedded-Bep4iD6s.js +0 -38
- package/bundled-test-harness/assets/file-def-fitted-BTs-AS78.js +0 -2
- package/bundled-test-harness/assets/file-def-fitted-DcPitdYu.js +0 -38
- package/bundled-test-harness/assets/file-def-isolated-Kg1YVhm-.js +0 -38
- package/bundled-test-harness/assets/file-def-isolated-tK5JWCam.js +0 -2
- package/bundled-test-harness/assets/file-def-serialization-test-D4wnd5XK.js +0 -89
- package/bundled-test-harness/assets/file-menu-items-CH4-naSK.js +0 -117
- package/bundled-test-harness/assets/file-menu-items-emUxx3ZI.js +0 -2
- package/bundled-test-harness/assets/file-preview-stage-B1McIWwu.js +0 -2
- package/bundled-test-harness/assets/file-preview-stage-BgZLNMN4.js +0 -72
- package/bundled-test-harness/assets/file-shell-embedded-BmfuwWfU.js +0 -2
- package/bundled-test-harness/assets/file-shell-embedded-zh8CJanA.js +0 -68
- package/bundled-test-harness/assets/file-shell-fitted-DSFUNRGJ.js +0 -2
- package/bundled-test-harness/assets/file-shell-fitted-DXKDH0fn.js +0 -98
- package/bundled-test-harness/assets/file-shell-isolated-0F1MFv4q.js +0 -2
- package/bundled-test-harness/assets/file-shell-isolated-DduZZzmi.js +0 -195
- package/bundled-test-harness/assets/file-tree-from-index-BzDvvUHy.js +0 -151
- package/bundled-test-harness/assets/file-tree-from-index-test-D0hfI4a1.js +0 -96
- package/bundled-test-harness/assets/film-BN_HVXBU.js +0 -13
- package/bundled-test-harness/assets/film-CKkbUi0L.js +0 -2
- package/bundled-test-harness/assets/film-CMNJITZ-.js +0 -4074
- package/bundled-test-harness/assets/fitted-CAvdcKpu.js +0 -34
- package/bundled-test-harness/assets/fitted-CbKOwd1u.js +0 -2
- package/bundled-test-harness/assets/flac-meta-extractor-e8qajPSl.js +0 -99
- package/bundled-test-harness/assets/font-file-def-9atde5W8.js +0 -64
- package/bundled-test-harness/assets/font-meta-extractor-IralDC8M.js +0 -303
- package/bundled-test-harness/assets/font-meta-extractor-zPBVOfoR.js +0 -2
- package/bundled-test-harness/assets/formatted-aibot-message-test-CWOiZUng.js +0 -109
- package/bundled-test-harness/assets/from-elsewhere-ChxbtsBa.js +0 -131
- package/bundled-test-harness/assets/frontmatter-field-cdig7KR9.js +0 -41
- package/bundled-test-harness/assets/garbage-collection-test-Dg-ww_Sb.js +0 -403
- package/bundled-test-harness/assets/gauge-B45nLOGe.js +0 -106
- package/bundled-test-harness/assets/gauge-BK-768BM.js +0 -2
- package/bundled-test-harness/assets/general-test-D7cn7PUr.js +0 -926
- package/bundled-test-harness/assets/get-relationship-membership-state-test-Skmj9V6y.js +0 -1308
- package/bundled-test-harness/assets/gif-meta-extractor-BychhK9q.js +0 -114
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-C09YUmk4.js +0 -160
- package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-DYskx_Kk.js +0 -74
- package/bundled-test-harness/assets/helper-BHX0HLF2.js +0 -478
- package/bundled-test-harness/assets/host-submode-test-Clw_QnvF.js +0 -1243
- package/bundled-test-harness/assets/html-file-def-C0P9giwU.js +0 -82
- package/bundled-test-harness/assets/hydratable-card-DnjrxKsT.js +0 -147
- package/bundled-test-harness/assets/hydratable-card-test-BAmWHfv1.js +0 -426
- package/bundled-test-harness/assets/icons-DBXBZgLe.js +0 -894
- package/bundled-test-harness/assets/image-Cip6ojDd.js +0 -47
- package/bundled-test-harness/assets/image-file-def-BdQxjZcN.js +0 -65
- package/bundled-test-harness/assets/image-file-def-DP4aqWcS.js +0 -3
- package/bundled-test-harness/assets/index-changes-test-D8b_56Ke.js +0 -367
- package/bundled-test-harness/assets/index-query-engine-test-CCyaUwMX.js +0 -2593
- package/bundled-test-harness/assets/inspector-test-BJTVGdOO.js +0 -1930
- package/bundled-test-harness/assets/instance-filter-matcher-test-DjsPrXL7.js +0 -788
- package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DSqM0vxh.js +0 -475
- package/bundled-test-harness/assets/interact-submode-setup-DF31UMX-.js +0 -566
- package/bundled-test-harness/assets/is-component-declaration-test-Did47eG9.js +0 -50
- package/bundled-test-harness/assets/iso-bmff-LuWkGL__.js +0 -205
- package/bundled-test-harness/assets/iso-bmff-_flO6c20.js +0 -2
- package/bundled-test-harness/assets/isolated-and-edit-frocLHin.js +0 -2
- package/bundled-test-harness/assets/job-priority-header-test-DHLAXfp7.js +0 -81
- package/bundled-test-harness/assets/job-scoped-instance-residency-test-C1Bt5j98.js +0 -103
- package/bundled-test-harness/assets/join-the-community-BBUSO2cs.js +0 -86
- package/bundled-test-harness/assets/jpg-meta-extractor-CoybO4Hq.js +0 -88
- package/bundled-test-harness/assets/json-field-8sdH5RQb.js +0 -2
- package/bundled-test-harness/assets/json-field-BDD3iTUh.js +0 -19
- package/bundled-test-harness/assets/json-file-def-BKibsfc6.js +0 -298
- package/bundled-test-harness/assets/last-modified-date-CR5jru2m.js +0 -43
- package/bundled-test-harness/assets/last-modified-date-test-jJ00YdTm.js +0 -28
- package/bundled-test-harness/assets/links-to-editor-rDoCYaN-.js +0 -2
- package/bundled-test-harness/assets/links-to-many-component-BqZT88Fb.js +0 -2
- package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-Cp1Eb_4U.js +0 -398
- package/bundled-test-harness/assets/linksto-error-sentinel-test-Bddavnh_.js +0 -238
- package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-c5WegXnR.js +0 -354
- package/bundled-test-harness/assets/linksto-many-per-slot-access-test-CWskzfGW.js +0 -303
- package/bundled-test-harness/assets/linksto-sentinel-reload-test-ByeVNhr8.js +0 -197
- package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-DP26i6Gb.js +0 -260
- package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-fDUXx8tO.js +0 -196
- package/bundled-test-harness/assets/llm-model-BcLEkTV7.js +0 -64
- package/bundled-test-harness/assets/login-CeuuNVvU.css +0 -139
- package/bundled-test-harness/assets/login-DV0WlJv-.js +0 -348
- package/bundled-test-harness/assets/login-error-text-test-BMGY_9gW.js +0 -51
- package/bundled-test-harness/assets/login-test-CL9YpMH5.js +0 -246
- package/bundled-test-harness/assets/m4a-meta-extractor-CHO1JQtb.js +0 -204
- package/bundled-test-harness/assets/main-CPLT8JNu.js +0 -5
- package/bundled-test-harness/assets/markdown-BvBALLGh.js +0 -7
- package/bundled-test-harness/assets/markdown-DFezmrFD.js +0 -2
- package/bundled-test-harness/assets/markdown-editor-mode-select-Au64bcIO.js +0 -2
- package/bundled-test-harness/assets/markdown-editor-mode-select-rK9PP8rv.js +0 -54
- package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIxizf5k.js +0 -470
- package/bundled-test-harness/assets/markdown-embed-preview-pane-test-C7GoNN7l.js +0 -447
- package/bundled-test-harness/assets/markdown-embed-preview-test-CDnj4uhd.js +0 -368
- package/bundled-test-harness/assets/markdown-fallback-n7PsLNmO.js +0 -2
- package/bundled-test-harness/assets/markdown-fallback-test-DTHT6OwQ.js +0 -316
- package/bundled-test-harness/assets/markdown-highlighting-test-DJ-4WSE_.js +0 -244
- package/bundled-test-harness/assets/markdown-preview-Ccelx5W-.js +0 -64
- package/bundled-test-harness/assets/markdown-preview-JXuMC_ve.js +0 -72
- package/bundled-test-harness/assets/markdown-preview-test-ByZqrpPk.js +0 -238
- package/bundled-test-harness/assets/markdown-skill-frontmatter-test-DAHGeL4K.js +0 -146
- package/bundled-test-harness/assets/menu-items-DzJm9H_H.js +0 -2
- package/bundled-test-harness/assets/message-tool-test-lmdrIEdY.js +0 -33
- package/bundled-test-harness/assets/metadata-fields-BZZr4Qe5.js +0 -2
- package/bundled-test-harness/assets/metadata-fields-BtdjGsKE.js +0 -1415
- package/bundled-test-harness/assets/midi-audio-def-uYbYFmFi.js +0 -52
- package/bundled-test-harness/assets/midi-meta-extractor-DNI5gc1q.js +0 -284
- package/bundled-test-harness/assets/midi-meta-extractor-DbKZ4fMG.js +0 -2
- package/bundled-test-harness/assets/migrate-skill-test-DI1xceiL.js +0 -161
- package/bundled-test-harness/assets/mini-CNoDyHqG.js +0 -1519
- package/bundled-test-harness/assets/mini-DexlIeKK.js +0 -85
- package/bundled-test-harness/assets/mini-card-chooser-test-DT5eIf1_.js +0 -272
- package/bundled-test-harness/assets/mini-file-chooser-test-DTQnKTZJ.js +0 -201
- package/bundled-test-harness/assets/missing-template-DL2mwddM.js +0 -2
- package/bundled-test-harness/assets/missing-template-ltqlJ4JC.js +0 -48
- package/bundled-test-harness/assets/modal-container-DRnt95-S.js +0 -40
- package/bundled-test-harness/assets/modal-zE95eEFp.js +0 -322
- package/bundled-test-harness/assets/model-cost-tier-test-CcFz7hcv.js +0 -173
- package/bundled-test-harness/assets/module-contents-service-Dk_zWt-V.js +0 -256
- package/bundled-test-harness/assets/month-BqReBYWo.js +0 -2
- package/bundled-test-harness/assets/month-RhvmIp40.js +0 -123
- package/bundled-test-harness/assets/month-day-XFAQA72z.js +0 -2
- package/bundled-test-harness/assets/month-day-XzKpk6nz.js +0 -192
- package/bundled-test-harness/assets/month-year-BeuNr2Cl.js +0 -2
- package/bundled-test-harness/assets/month-year-DhU7hATV.js +0 -93
- package/bundled-test-harness/assets/mp3-meta-extractor-Dx2RnJc5.js +0 -476
- package/bundled-test-harness/assets/mp4-meta-extractor--k0m8KsT.js +0 -188
- package/bundled-test-harness/assets/multiple-stacks-test-bC24IWcJ.js +0 -208
- package/bundled-test-harness/assets/nested-query-field-render-test-qxElXx1e.js +0 -249
- package/bundled-test-harness/assets/no-stacks-test-Br7IGAgV.js +0 -48
- package/bundled-test-harness/assets/number-73SsCMEF.js +0 -3
- package/bundled-test-harness/assets/number-CicTBWQd.js +0 -151
- package/bundled-test-harness/assets/number-field-test-kV5zXo1J.js +0 -184
- package/bundled-test-harness/assets/number-input-CQy4xUeA.js +0 -82
- package/bundled-test-harness/assets/office-extract-Bo8sbNkK.js +0 -27
- package/bundled-test-harness/assets/office-extract-CfBaoRMD.js +0 -2
- package/bundled-test-harness/assets/ogg-meta-extractor-aIf5q_Rq.js +0 -225
- package/bundled-test-harness/assets/on-key-C8acaldQ.js +0 -472
- package/bundled-test-harness/assets/ooxml-Bu3iZezv.js +0 -172
- package/bundled-test-harness/assets/ooxml-jQPBQK25.js +0 -2
- package/bundled-test-harness/assets/open-image-in-new-tab-test-CP7q3kMm.js +0 -52
- package/bundled-test-harness/assets/operation-lowering-test-9Mdr0hRT.js +0 -2812
- package/bundled-test-harness/assets/operations-R9b661Qn.js +0 -3
- package/bundled-test-harness/assets/operations-Zv_V3Api.js +0 -766
- package/bundled-test-harness/assets/operations-invocation-test-BJPpWb2H.js +0 -523
- package/bundled-test-harness/assets/operations-query-test-DufdmPQF.js +0 -459
- package/bundled-test-harness/assets/operations-test-CzT051YH.js +0 -2518
- package/bundled-test-harness/assets/operator-mode-acceptance-test-ByOIOcD0.js +0 -1188
- package/bundled-test-harness/assets/operator-mode-card-chooser-test-CNhR9mvv.js +0 -1036
- package/bundled-test-harness/assets/operator-mode-links-test-CuxSVTPR.js +0 -793
- package/bundled-test-harness/assets/operator-mode-state-service-CCeHt5SH.js +0 -1275
- package/bundled-test-harness/assets/operator-mode-state-service-test-C8TI9WWg.js +0 -206
- package/bundled-test-harness/assets/operator-mode-test-DG-mG8Tn.js +0 -683
- package/bundled-test-harness/assets/operator-mode-ui-test-DB7xhjS0.js +0 -1027
- package/bundled-test-harness/assets/overlay-menu-items-test-C6rcdF_S.js +0 -317
- package/bundled-test-harness/assets/overlays-D2zmPxzK.js +0 -270
- package/bundled-test-harness/assets/overlays-clip-test-Clpq3JzQ.js +0 -91
- package/bundled-test-harness/assets/overlays-detached-element-test-BtsTeJch.js +0 -56
- package/bundled-test-harness/assets/pane-f-IYhcWT.js +0 -330
- package/bundled-test-harness/assets/panel-B3PCSBbf.js +0 -3540
- package/bundled-test-harness/assets/panel-Ban7zCBP.js +0 -474
- package/bundled-test-harness/assets/past-sessions-test-uM2m-oKV.js +0 -321
- package/bundled-test-harness/assets/patch-fields-test-COPjDhnt.js +0 -1014
- package/bundled-test-harness/assets/patch-instance-test-CRb3dfby.js +0 -348
- package/bundled-test-harness/assets/pdf-file-def-J_yOUU8_.js +0 -76
- package/bundled-test-harness/assets/pdf-meta-extractor-83T5Bdo7.js +0 -156
- package/bundled-test-harness/assets/pdf-meta-extractor-INFIklMy.js +0 -2
- package/bundled-test-harness/assets/pdf-viewer-B4rRluWA.js +0 -2
- package/bundled-test-harness/assets/pdf-viewer-vYem8ozk.js +0 -112
- package/bundled-test-harness/assets/percentage-ChagfNRG.js +0 -84
- package/bundled-test-harness/assets/permission-checking-realm-test-Dmb2a428.js +0 -306
- package/bundled-test-harness/assets/phone-number-BiD2eaSd.js +0 -236
- package/bundled-test-harness/assets/phone-number-C-wt4_UK.js +0 -2
- package/bundled-test-harness/assets/phone-number-field-test-BHzAmuBP.js +0 -73
- package/bundled-test-harness/assets/plate-CqN2nM6P.js +0 -41
- package/bundled-test-harness/assets/plate-DaIfpORN.js +0 -2
- package/bundled-test-harness/assets/player-CGt5fTd5.js +0 -2
- package/bundled-test-harness/assets/player-CN0l44LK.js +0 -82
- package/bundled-test-harness/assets/plural-field-components-test-CO2g2opW.js +0 -198
- package/bundled-test-harness/assets/png-image-def-B_oou2wS.js +0 -48
- package/bundled-test-harness/assets/png-meta-extractor-BfPz1qP_.js +0 -2
- package/bundled-test-harness/assets/png-meta-extractor-C8ai8sPw.js +0 -111
- package/bundled-test-harness/assets/policy-scoped-search-test-BRRp2a1A.js +0 -339
- package/bundled-test-harness/assets/pptx-file-def-C3qYEHDM.js +0 -60
- package/bundled-test-harness/assets/pptx-meta-extractor-8IuoBq4I.js +0 -77
- package/bundled-test-harness/assets/pptx-meta-extractor-BPhy9RMM.js +0 -2
- package/bundled-test-harness/assets/prerender-persistence-block-test-Cteb_Rs_.js +0 -124
- package/bundled-test-harness/assets/prerender-serialize-cycle-test-CH7b6Ra9.js +0 -134
- package/bundled-test-harness/assets/preview-CmERZpI6.js +0 -74
- package/bundled-test-harness/assets/preview-format-BPMlCSbb.js +0 -41
- package/bundled-test-harness/assets/preview-format-test-B7sA8fbZ.js +0 -103
- package/bundled-test-harness/assets/process-card-CtDzDB-_.js +0 -2
- package/bundled-test-harness/assets/process-card-erbWKY5h.js +0 -114
- package/bundled-test-harness/assets/process-card-test-DXOt1jDW.js +0 -94
- package/bundled-test-harness/assets/profile-settings-modal-11BrR058.js +0 -708
- package/bundled-test-harness/assets/progress-circle-Cd79Zqh2.js +0 -2
- package/bundled-test-harness/assets/progress-circle-sc-W5aUl.js +0 -95
- package/bundled-test-harness/assets/quarter-B61kCpcD.js +0 -168
- package/bundled-test-harness/assets/quarter-d5jkTzcz.js +0 -2
- package/bundled-test-harness/assets/query-field-membership-status-test-BmpVfohw.js +0 -323
- package/bundled-test-harness/assets/query-field-page-optin-test-9_Cce-OJ.js +0 -126
- package/bundled-test-harness/assets/query-field-schema-test-CwV7xanX.js +0 -231
- package/bundled-test-harness/assets/query-field-stale-prerender-test-RkdnZ-VV.js +0 -152
- package/bundled-test-harness/assets/query-fields-test-BLxYkTAM.js +0 -535
- package/bundled-test-harness/assets/rail-CFPU0tFe.js +0 -2
- package/bundled-test-harness/assets/rail-CQ53Dakr.js +0 -44
- package/bundled-test-harness/assets/realm-DdVH9lSZ.js +0 -95
- package/bundled-test-harness/assets/realm-DdsFw3b-.js +0 -2
- package/bundled-test-harness/assets/realm-config-DIslxoB7.js +0 -844
- package/bundled-test-harness/assets/realm-config-policy-standing-test-b4WxNDor.js +0 -290
- package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-C-rcvkkD.js +0 -274
- package/bundled-test-harness/assets/realm-config-settings-test-DDUkM3zw.js +0 -187
- package/bundled-test-harness/assets/realm-dropdown-1j55Dy-1.js +0 -560
- package/bundled-test-harness/assets/realm-field-test-D-uEtFKO.js +0 -100
- package/bundled-test-harness/assets/realm-indexing-test-U9m0epR-.js +0 -4380
- package/bundled-test-harness/assets/realm-policy-test-DhKabhlk.js +0 -1141
- package/bundled-test-harness/assets/realm-test-BX6C9SS5.js +0 -2363
- package/bundled-test-harness/assets/realm-url-tooltip-BjjcKqBx.js +0 -56
- package/bundled-test-harness/assets/realm-url-tooltip-test-DW0ZwEEE.js +0 -78
- package/bundled-test-harness/assets/reasoning-test-BWT94KXG.js +0 -234
- package/bundled-test-harness/assets/recent-colors-addon-CfgmgilF.js +0 -61
- package/bundled-test-harness/assets/recent-colors-addon-D--Ry3Pf.js +0 -2
- package/bundled-test-harness/assets/relationship-loading-state-test-C5R6jao_.js +0 -290
- package/bundled-test-harness/assets/relative-time-Bq7pqums.js +0 -2
- package/bundled-test-harness/assets/relative-time-D0QyW4ig.js +0 -129
- package/bundled-test-harness/assets/remix-card-test-Cy0h3Xdf.js +0 -58
- package/bundled-test-harness/assets/rendered-markdown-Hw_EF8SO.js +0 -263
- package/bundled-test-harness/assets/rendered-markdown-test-CqeF-UZd.js +0 -587
- package/bundled-test-harness/assets/resident-instance-reuse-test-BiI6L40n.js +0 -82
- package/bundled-test-harness/assets/response-field-BCxG5phG.js +0 -38
- package/bundled-test-harness/assets/result-tile-DMzRnTP8.js +0 -140
- package/bundled-test-harness/assets/rich-markdown-C4RUl7L0.js +0 -2
- package/bundled-test-harness/assets/rich-markdown-DxQSCg-o.js +0 -218
- package/bundled-test-harness/assets/rich-markdown-field-test-B7wpedKs.js +0 -1647
- package/bundled-test-harness/assets/room-D0M0Zwrs.js +0 -1008
- package/bundled-test-harness/assets/room-message-test-BWWd4xC8.js +0 -445
- package/bundled-test-harness/assets/room-test-DFH-nOwi.js +0 -95
- package/bundled-test-harness/assets/run-realm-code-DyVyEDBl.js +0 -1600
- package/bundled-test-harness/assets/run-realm-code-test-BpxF-tOz.js +0 -2468
- package/bundled-test-harness/assets/schema-generation-test-DjaJqpYP.js +0 -28
- package/bundled-test-harness/assets/score-Cfp34BE7.js +0 -2
- package/bundled-test-harness/assets/score-DIWWpeyf.js +0 -100
- package/bundled-test-harness/assets/scrolling-test-hA_uBwBg.js +0 -384
- package/bundled-test-harness/assets/search-C0-b7dJI.js +0 -605
- package/bundled-test-harness/assets/search-adorn-test-C6KP3AwA.js +0 -136
- package/bundled-test-harness/assets/search-entries-BfPq5sPS.js +0 -472
- package/bundled-test-harness/assets/search-entries-result-test-Bl9u_BOD.js +0 -234
- package/bundled-test-harness/assets/search-entries-test-BDC_lS43.js +0 -1486
- package/bundled-test-harness/assets/search-result-header-DCAze_cg.js +0 -128
- package/bundled-test-harness/assets/search-results-Dd0enVun.js +0 -266
- package/bundled-test-harness/assets/search-results-test-T5KEEII4.js +0 -578
- package/bundled-test-harness/assets/search-selection-menu-test-CCssnBq1.js +0 -108
- package/bundled-test-harness/assets/search-sheet-persistence-test-BzQiO-FK.js +0 -131
- package/bundled-test-harness/assets/search-test-fyCWb24m.js +0 -2241
- package/bundled-test-harness/assets/searchable-BkgeKQMl.js +0 -2
- package/bundled-test-harness/assets/searchable-D_6p6fyb.js +0 -192
- package/bundled-test-harness/assets/searchable-option-test-CnCUYGaq.js +0 -322
- package/bundled-test-harness/assets/searchable-search-doc-test-B8Q0D98v.js +0 -1271
- package/bundled-test-harness/assets/sending-test-D5PGBDys.js +0 -576
- package/bundled-test-harness/assets/serialization-rri-form-audit-test-BRJ1cJ31.js +0 -136
- package/bundled-test-harness/assets/serialization-test-DM6hK258.js +0 -8758
- package/bundled-test-harness/assets/setup-C_GgVgzM.js +0 -772
- package/bundled-test-harness/assets/shared-link-target-reuse-test-Be-lSKib.js +0 -207
- package/bundled-test-harness/assets/show-card-BFG6KR1m.js +0 -67
- package/bundled-test-harness/assets/show-card-test-l0wMrfZq.js +0 -365
- package/bundled-test-harness/assets/show-file-B8-FRVHj.js +0 -34
- package/bundled-test-harness/assets/signed-capture-D_Q44TQ7.js +0 -204
- package/bundled-test-harness/assets/signed-capture-link-test-DOS5xpYv.js +0 -132
- package/bundled-test-harness/assets/single-stack-test-BIEtzHVS.js +0 -652
- package/bundled-test-harness/assets/skill-BUTGmSsm.js +0 -76
- package/bundled-test-harness/assets/skill-Bo7R_2Ud.js +0 -3
- package/bundled-test-harness/assets/skill-reference-Cs64py3k.js +0 -112
- package/bundled-test-harness/assets/skills-test-CXxSIkYa.js +0 -648
- package/bundled-test-harness/assets/slider-picker-C81errGI.js +0 -245
- package/bundled-test-harness/assets/slider-picker-mvKsy6cR.js +0 -2
- package/bundled-test-harness/assets/spec-B55lJurX.js +0 -602
- package/bundled-test-harness/assets/store-DyQ0KiyI.js +0 -2205
- package/bundled-test-harness/assets/store-module-rebuild-test-C7532_bS.js +0 -454
- package/bundled-test-harness/assets/store-search-test-80NMJuoW.js +0 -175
- package/bundled-test-harness/assets/store-test-dHiWXXMs.js +0 -3460
- package/bundled-test-harness/assets/string-DHlQEHYm.js +0 -9
- package/bundled-test-harness/assets/submode-switcher-DQv-CD6G.js +0 -169
- package/bundled-test-harness/assets/svg-meta-extractor-Uw_EJytF.js +0 -42
- package/bundled-test-harness/assets/swatches-picker-CaEoibN1.js +0 -33
- package/bundled-test-harness/assets/swatches-picker-gPl50JbP.js +0 -2
- package/bundled-test-harness/assets/switch-submode-BKDnJd4m.js +0 -79
- package/bundled-test-harness/assets/switch-submode-test-_E2mVk4z.js +0 -168
- package/bundled-test-harness/assets/tag-B60lDr-j.js +0 -105
- package/bundled-test-harness/assets/tests-BBBgPBB6.js +0 -3520
- package/bundled-test-harness/assets/text-area-CJjWmwpi.js +0 -9
- package/bundled-test-harness/assets/text-file-def-u_dl0i2z.js +0 -151
- package/bundled-test-harness/assets/text-input-validator-test-BTwnkSS2.js +0 -156
- package/bundled-test-harness/assets/theme-BK-fAHVn.js +0 -9
- package/bundled-test-harness/assets/theme-card-test-BQmT7rqr.js +0 -621
- package/bundled-test-harness/assets/theme-scheme-island-test-Oi3aeyp1.js +0 -264
- package/bundled-test-harness/assets/three-d-model-def-B4KckPVC.js +0 -70
- package/bundled-test-harness/assets/time-BcuaSkHg.js +0 -126
- package/bundled-test-harness/assets/time-f7Irg7Z7.js +0 -2
- package/bundled-test-harness/assets/time-slots-ClYIZN53.js +0 -2
- package/bundled-test-harness/assets/time-slots-TI1aaqRN.js +0 -85
- package/bundled-test-harness/assets/timeline-Cof9eyq0.js +0 -59
- package/bundled-test-harness/assets/timeline-DFWQtCWE.js +0 -2
- package/bundled-test-harness/assets/to-device-streaming-test-BDrUUlOt.js +0 -163
- package/bundled-test-harness/assets/token-usage-test-CiZo03fY.js +0 -166
- package/bundled-test-harness/assets/tool-field-BXHr9r0w.js +0 -94
- package/bundled-test-harness/assets/tool-field-CoRO5C4R.js +0 -2
- package/bundled-test-harness/assets/tools-CmVaYDIS.js +0 -725
- package/bundled-test-harness/assets/tools-calling-test-B454__XF.js +0 -200
- package/bundled-test-harness/assets/tools-test-CLu51dJO.js +0 -1624
- package/bundled-test-harness/assets/tools-test-XGRAvVug.js +0 -2820
- package/bundled-test-harness/assets/ts-file-def-C05BDwdg.js +0 -159
- package/bundled-test-harness/assets/update-room-skills-test-jOvP14JX.js +0 -240
- package/bundled-test-harness/assets/url-BFf2CNo-.js +0 -2
- package/bundled-test-harness/assets/url-CYm-CeXp.js +0 -96
- package/bundled-test-harness/assets/video-file-def-B2UIrOFS.js +0 -76
- package/bundled-test-harness/assets/wav-meta-extractor-BNkv7e2f.js +0 -368
- package/bundled-test-harness/assets/webm-meta-extractor-C933kYyc.js +0 -178
- package/bundled-test-harness/assets/webp-meta-extractor-BLz0z1pZ.js +0 -98
- package/bundled-test-harness/assets/website-BuOMUW1v.js +0 -92
- package/bundled-test-harness/assets/week-Bo0666ji.js +0 -111
- package/bundled-test-harness/assets/week-CaVFA8Vc.js +0 -2
- package/bundled-test-harness/assets/welcome-to-boxel-PWard7GF.js +0 -172
- package/bundled-test-harness/assets/workspace-KXfFTQNV.js +0 -614
- package/bundled-test-harness/assets/workspace-a11y-test-Buwb-rfO.js +0 -197
- package/bundled-test-harness/assets/workspace-behavior-test-CbgFUOOo.js +0 -200
- package/bundled-test-harness/assets/workspace-chooser-BmQvhhrl.js +0 -2248
- package/bundled-test-harness/assets/workspace-chooser-Cu84Gd_E.css +0 -1317
- package/bundled-test-harness/assets/workspace-chooser-catalog-order-test-rcRw6sni.js +0 -36
- package/bundled-test-harness/assets/workspace-chooser-unreachable-notice-test-DUXnBIdY.js +0 -60
- package/bundled-test-harness/assets/workspace-delete-multiple-test-DjRKhZ2g.js +0 -212
- package/bundled-test-harness/assets/workspace-delete-summary-test-CvkLVYyN.js +0 -63
- package/bundled-test-harness/assets/workspace-timestamp-labels-test-AYJT4inv.js +0 -58
- package/bundled-test-harness/assets/xlsx-file-def-DuKdbGrJ.js +0 -60
- package/bundled-test-harness/assets/xlsx-meta-extractor-Bz-C2JWP.js +0 -101
- package/bundled-test-harness/assets/xlsx-meta-extractor-ClwwgABg.js +0 -2
- package/bundled-test-harness/assets/year-B6ctHikl.js +0 -2
- package/bundled-test-harness/assets/year-C11uAQE6.js +0 -78
- package/bundled-test-harness/assets/zip-file-def-B8XN-OS_.js +0 -288
- package/bundled-types/host-app/components/matrix/auth-button.gts +0 -39
- package/bundled-types/host-app/components/matrix/auth-container.gts +0 -69
- package/bundled-types/host-app/components/matrix/auth-form-field.gts +0 -43
|
@@ -0,0 +1,1647 @@
|
|
|
1
|
+
import { s as __toESM } from "./chunk-Rp0pCe6z.js";
|
|
2
|
+
import { r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime--fcdnjmJ-BoCBNIsz.js";
|
|
3
|
+
import { Ar as testRealmURL } from "./runtime-common-ClpqhbwG.js";
|
|
4
|
+
import { E as baseRRI, b as PermissionsContextName } from "./constants-CqKWhRfY.js";
|
|
5
|
+
import { wt as setComponentTemplate } from "./cache-DtDz7X5V-Wn8jRDfL.js";
|
|
6
|
+
import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
|
|
7
|
+
import "./component-BJO47HTh.js";
|
|
8
|
+
import "./template-factory-ds9s0u8l.js";
|
|
9
|
+
import { M as waitUntil, T as settled, d as click, h as render, l as triggerEvent, o as waitFor } from "./dist-BOAdzfkP.js";
|
|
10
|
+
import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
|
|
11
|
+
import { F as setupLocalIndexing, M as setupCardLogs, P as setupIntegrationTestRealm, lt as setupRenderingTest, nt as provide, t as setupMockMatrix } from "./mock-matrix-DPQ0j2MD.js";
|
|
12
|
+
import { r as getService } from "./dist-CPfIHBla.js";
|
|
13
|
+
import { A as field, a as CardDef, s as Component, w as contains } from "./card-api-Dzje0smT.js";
|
|
14
|
+
import { t as string_default } from "./string-BHZZwNlZ.js";
|
|
15
|
+
import { t as RichMarkdownField } from "./rich-markdown-C6rQUngb.js";
|
|
16
|
+
import { t as codemirrorContext } from "./codemirror-context-B5lUuYoE.js";
|
|
17
|
+
import { t as renderCard } from "./render-component-B15Z0e2v.js";
|
|
18
|
+
//#region tests/integration/components/rich-markdown-field-test.gts
|
|
19
|
+
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
20
|
+
var loader;
|
|
21
|
+
(0, import_qunit.module)("Integration | RichMarkdownField", function(hooks) {
|
|
22
|
+
setupRenderingTest(hooks);
|
|
23
|
+
let mockMatrixUtils = setupMockMatrix(hooks);
|
|
24
|
+
hooks.beforeEach(function() {
|
|
25
|
+
provide(PermissionsContextName, {
|
|
26
|
+
canWrite: true,
|
|
27
|
+
canRead: true
|
|
28
|
+
});
|
|
29
|
+
loader = getService("loader-service").loader;
|
|
30
|
+
});
|
|
31
|
+
setupLocalIndexing(hooks);
|
|
32
|
+
hooks.beforeEach(function() {
|
|
33
|
+
globalThis.__loadCodeMirror = async () => codemirrorContext;
|
|
34
|
+
});
|
|
35
|
+
hooks.afterEach(function() {
|
|
36
|
+
delete globalThis.__loadCodeMirror;
|
|
37
|
+
});
|
|
38
|
+
setupCardLogs(hooks, async () => await loader.import("@cardstack/base/card-api"));
|
|
39
|
+
(0, import_qunit.test)("renders markdown as HTML", async function(assert) {
|
|
40
|
+
class TestCard extends CardDef {
|
|
41
|
+
static {
|
|
42
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
43
|
+
return contains(RichMarkdownField);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
47
|
+
static atom = class Atom extends Component {
|
|
48
|
+
static {
|
|
49
|
+
setComponentTemplate(templateFactory({
|
|
50
|
+
"id": "nKOoxfii",
|
|
51
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
52
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
53
|
+
"isStrictMode": true
|
|
54
|
+
}), this);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
await setupIntegrationTestRealm({
|
|
59
|
+
mockMatrixUtils,
|
|
60
|
+
contents: { "test-card.gts": { TestCard } }
|
|
61
|
+
});
|
|
62
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "# Hello World\n\nSome **bold** text." }) });
|
|
63
|
+
let root = await renderCard(loader, card, "atom");
|
|
64
|
+
assert.dom(root.querySelector("h1")).hasText("Hello World");
|
|
65
|
+
assert.dom(root.querySelector("strong")).hasText("bold");
|
|
66
|
+
});
|
|
67
|
+
(0, import_qunit.test)("edit template renders CodeMirror editor for content", async function(assert) {
|
|
68
|
+
class TestCard extends CardDef {
|
|
69
|
+
static {
|
|
70
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
71
|
+
return contains(RichMarkdownField);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
75
|
+
static edit = class Edit extends Component {
|
|
76
|
+
static {
|
|
77
|
+
setComponentTemplate(templateFactory({
|
|
78
|
+
"id": "nKOoxfii",
|
|
79
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
80
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
81
|
+
"isStrictMode": true
|
|
82
|
+
}), this);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
await setupIntegrationTestRealm({
|
|
87
|
+
mockMatrixUtils,
|
|
88
|
+
contents: { "test-card.gts": { TestCard } }
|
|
89
|
+
});
|
|
90
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Edit me" }) });
|
|
91
|
+
let root = await renderCard(loader, card, "edit");
|
|
92
|
+
let editor = root.querySelector("[data-test-codemirror-editor]");
|
|
93
|
+
let loading = root.querySelector("[data-test-codemirror-loading]");
|
|
94
|
+
let hasEditorOrLoading = editor !== null || loading !== null;
|
|
95
|
+
assert.true(hasEditorOrLoading, "CodeMirror editor or loading state is rendered");
|
|
96
|
+
});
|
|
97
|
+
(0, import_qunit.test)("docked toolbar and editor mount share an overflow-clipping wrapper so the sticky toolbar corners conform to the rounded editor outline", async function(assert) {
|
|
98
|
+
class TestCard extends CardDef {
|
|
99
|
+
static {
|
|
100
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
101
|
+
return contains(RichMarkdownField);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
105
|
+
static edit = class Edit extends Component {
|
|
106
|
+
static {
|
|
107
|
+
setComponentTemplate(templateFactory({
|
|
108
|
+
"id": "nKOoxfii",
|
|
109
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
110
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
111
|
+
"isStrictMode": true
|
|
112
|
+
}), this);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
await setupIntegrationTestRealm({
|
|
117
|
+
mockMatrixUtils,
|
|
118
|
+
contents: { "test-card.gts": { TestCard } }
|
|
119
|
+
});
|
|
120
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Edit me" }) });
|
|
121
|
+
let root = await renderCard(loader, card, "edit");
|
|
122
|
+
await waitFor("[data-test-codemirror-body]", { timeout: 5e3 });
|
|
123
|
+
let wrapper = root.querySelector("[data-test-codemirror-body]");
|
|
124
|
+
assert.dom(wrapper).exists("the clipping wrapper is rendered");
|
|
125
|
+
let overflow = getComputedStyle(wrapper);
|
|
126
|
+
assert.strictEqual(overflow.overflowX, "clip", "the wrapper clips overflow-x");
|
|
127
|
+
assert.strictEqual(overflow.overflowY, "clip", "the wrapper clips overflow-y");
|
|
128
|
+
assert.notStrictEqual(getComputedStyle(wrapper).borderRadius, "0px", "the wrapper is rounded, so the clip has corners to round off");
|
|
129
|
+
assert.dom("[data-test-markdown-toolbar]", wrapper).exists("the toolbar is inside the clipping wrapper");
|
|
130
|
+
assert.dom("[data-test-codemirror-mount]", wrapper).exists("the editor mount is inside the clipping wrapper");
|
|
131
|
+
assert.dom(wrapper.parentElement).hasClass("codemirror-editor", "the wrapper is a direct child of the editor container");
|
|
132
|
+
});
|
|
133
|
+
(0, import_qunit.test)("the Add-embed dropdown escapes the corner-clipping wrapper so it stays visible when the toolbar docks at the bottom", async function(assert) {
|
|
134
|
+
class TestCard extends CardDef {
|
|
135
|
+
static {
|
|
136
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
137
|
+
return contains(RichMarkdownField);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
141
|
+
static edit = class Edit extends Component {
|
|
142
|
+
static {
|
|
143
|
+
setComponentTemplate(templateFactory({
|
|
144
|
+
"id": "nKOoxfii",
|
|
145
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
146
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
147
|
+
"isStrictMode": true
|
|
148
|
+
}), this);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
await setupIntegrationTestRealm({
|
|
153
|
+
mockMatrixUtils,
|
|
154
|
+
contents: { "test-card.gts": { TestCard } }
|
|
155
|
+
});
|
|
156
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Edit me" }) });
|
|
157
|
+
let root = await renderCard(loader, card, "edit");
|
|
158
|
+
await waitFor("[data-test-codemirror-body]", { timeout: 5e3 });
|
|
159
|
+
await click("[data-test-toolbar=\"add-embed\"]");
|
|
160
|
+
let popover = document.querySelector("[data-test-toolbar-embed-popover]");
|
|
161
|
+
let clipBox = root.querySelector("[data-test-codemirror-body]");
|
|
162
|
+
assert.ok(popover, "the Add-embed dropdown opens");
|
|
163
|
+
assert.dom("[data-test-codemirror-body]").exists("the corner-clip box is present");
|
|
164
|
+
assert.notOk(clipBox?.contains(popover), "the Add-embed menu renders outside the corner-clip box, so the clip cannot swallow it");
|
|
165
|
+
});
|
|
166
|
+
(0, import_qunit.test)("renders with null content without error", async function(assert) {
|
|
167
|
+
class TestCard extends CardDef {
|
|
168
|
+
static {
|
|
169
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
170
|
+
return contains(RichMarkdownField);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
174
|
+
static edit = class Edit extends Component {
|
|
175
|
+
static {
|
|
176
|
+
setComponentTemplate(templateFactory({
|
|
177
|
+
"id": "nKOoxfii",
|
|
178
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
179
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
180
|
+
"isStrictMode": true
|
|
181
|
+
}), this);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
await setupIntegrationTestRealm({
|
|
186
|
+
mockMatrixUtils,
|
|
187
|
+
contents: { "test-card.gts": { TestCard } }
|
|
188
|
+
});
|
|
189
|
+
let card = new TestCard();
|
|
190
|
+
let root = await renderCard(loader, card, "edit");
|
|
191
|
+
assert.dom(root).exists("renders without error");
|
|
192
|
+
});
|
|
193
|
+
(0, import_qunit.test)("renders inline :card references as BFM elements", async function(assert) {
|
|
194
|
+
class TestCard extends CardDef {
|
|
195
|
+
static {
|
|
196
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
197
|
+
return contains(RichMarkdownField);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
201
|
+
static atom = class Atom extends Component {
|
|
202
|
+
static {
|
|
203
|
+
setComponentTemplate(templateFactory({
|
|
204
|
+
"id": "nKOoxfii",
|
|
205
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
206
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
207
|
+
"isStrictMode": true
|
|
208
|
+
}), this);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
await setupIntegrationTestRealm({
|
|
213
|
+
mockMatrixUtils,
|
|
214
|
+
contents: { "test-card.gts": { TestCard } }
|
|
215
|
+
});
|
|
216
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "See :card[https://example.com/cards/1] for details." }) });
|
|
217
|
+
let root = await renderCard(loader, card, "atom");
|
|
218
|
+
assert.dom(root.querySelector("[data-boxel-bfm-inline-ref]")).exists("inline card reference is rendered as BFM element");
|
|
219
|
+
assert.dom(root.querySelector("[data-boxel-bfm-inline-ref]")).hasAttribute("data-boxel-bfm-inline-ref", "https://example.com/cards/1");
|
|
220
|
+
});
|
|
221
|
+
(0, import_qunit.test)("renders block ::card references as BFM elements", async function(assert) {
|
|
222
|
+
class TestCard extends CardDef {
|
|
223
|
+
static {
|
|
224
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
225
|
+
return contains(RichMarkdownField);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
229
|
+
static atom = class Atom extends Component {
|
|
230
|
+
static {
|
|
231
|
+
setComponentTemplate(templateFactory({
|
|
232
|
+
"id": "nKOoxfii",
|
|
233
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
234
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
235
|
+
"isStrictMode": true
|
|
236
|
+
}), this);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
await setupIntegrationTestRealm({
|
|
241
|
+
mockMatrixUtils,
|
|
242
|
+
contents: { "test-card.gts": { TestCard } }
|
|
243
|
+
});
|
|
244
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "::card[https://example.com/cards/2]\n" }) });
|
|
245
|
+
let root = await renderCard(loader, card, "atom");
|
|
246
|
+
assert.dom(root.querySelector("[data-boxel-bfm-block-ref]")).exists("block card reference is rendered as BFM element");
|
|
247
|
+
assert.dom(root.querySelector("[data-boxel-bfm-block-ref]")).hasAttribute("data-boxel-bfm-block-ref", "https://example.com/cards/2");
|
|
248
|
+
});
|
|
249
|
+
(0, import_qunit.test)("cardReferenceUrls computes resolved URLs from markdown content", async function(assert) {
|
|
250
|
+
class TestCard extends CardDef {
|
|
251
|
+
static {
|
|
252
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
253
|
+
return contains(RichMarkdownField);
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
257
|
+
static embedded = class Embedded extends Component {
|
|
258
|
+
static {
|
|
259
|
+
setComponentTemplate(templateFactory({
|
|
260
|
+
"id": "nKOoxfii",
|
|
261
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
262
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
263
|
+
"isStrictMode": true
|
|
264
|
+
}), this);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
await setupIntegrationTestRealm({
|
|
269
|
+
mockMatrixUtils,
|
|
270
|
+
contents: { "test-card.gts": { TestCard } }
|
|
271
|
+
});
|
|
272
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "See :card[https://example.com/cards/1] for details.\n\n::card[https://example.com/cards/2]\n" }) });
|
|
273
|
+
await renderCard(loader, card, "embedded");
|
|
274
|
+
assert.deepEqual(card.body.cardReferenceUrls, ["https://example.com/cards/1", "https://example.com/cards/2"], "cardReferenceUrls contains both inline and block reference URLs");
|
|
275
|
+
});
|
|
276
|
+
(0, import_qunit.test)("cardReferenceUrls returns empty array for content without references", async function(assert) {
|
|
277
|
+
class TestCard extends CardDef {
|
|
278
|
+
static {
|
|
279
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
280
|
+
return contains(RichMarkdownField);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
284
|
+
static embedded = class Embedded extends Component {
|
|
285
|
+
static {
|
|
286
|
+
setComponentTemplate(templateFactory({
|
|
287
|
+
"id": "nKOoxfii",
|
|
288
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
289
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
290
|
+
"isStrictMode": true
|
|
291
|
+
}), this);
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
await setupIntegrationTestRealm({
|
|
296
|
+
mockMatrixUtils,
|
|
297
|
+
contents: { "test-card.gts": { TestCard } }
|
|
298
|
+
});
|
|
299
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "# Just plain markdown\n\nNo card references here." }) });
|
|
300
|
+
await renderCard(loader, card, "embedded");
|
|
301
|
+
assert.deepEqual(card.body.cardReferenceUrls, [], "cardReferenceUrls is empty");
|
|
302
|
+
});
|
|
303
|
+
(0, import_qunit.test)("linkedCards query resolves referenced cards from the realm", async function(assert) {
|
|
304
|
+
class TestCard extends CardDef {
|
|
305
|
+
static {
|
|
306
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
307
|
+
return contains(RichMarkdownField);
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
311
|
+
static embedded = class Embedded extends Component {
|
|
312
|
+
static {
|
|
313
|
+
setComponentTemplate(templateFactory({
|
|
314
|
+
"id": "nKOoxfii",
|
|
315
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
316
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
317
|
+
"isStrictMode": true
|
|
318
|
+
}), this);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
let sampleCards = { "referenced-card.json": { data: {
|
|
323
|
+
type: "card",
|
|
324
|
+
attributes: { cardTitle: "Referenced Card" },
|
|
325
|
+
meta: { adoptsFrom: {
|
|
326
|
+
module: baseRRI("card-api"),
|
|
327
|
+
name: "CardDef"
|
|
328
|
+
} }
|
|
329
|
+
} } };
|
|
330
|
+
await setupIntegrationTestRealm({
|
|
331
|
+
mockMatrixUtils,
|
|
332
|
+
contents: {
|
|
333
|
+
"test-card.gts": { TestCard },
|
|
334
|
+
...sampleCards
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: `:card[${testRealmURL}referenced-card]` }) });
|
|
338
|
+
let root = await renderCard(loader, card, "embedded");
|
|
339
|
+
assert.dom(root.querySelector("[data-boxel-bfm-inline-ref]")).exists("card reference placeholder is rendered");
|
|
340
|
+
});
|
|
341
|
+
(0, import_qunit.test)("display path renders a relative card-ref pill in a prefix-mapped realm", async function(assert) {
|
|
342
|
+
class Pet extends CardDef {
|
|
343
|
+
static displayName = "Pet";
|
|
344
|
+
static {
|
|
345
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
346
|
+
return contains(string_default);
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
350
|
+
static {
|
|
351
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
352
|
+
return contains(string_default, { computeVia: function() {
|
|
353
|
+
return this.name;
|
|
354
|
+
} });
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
358
|
+
static atom = class Atom extends Component {
|
|
359
|
+
static {
|
|
360
|
+
setComponentTemplate(templateFactory({
|
|
361
|
+
"id": "hIHHAuC1",
|
|
362
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
363
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
364
|
+
"isStrictMode": true
|
|
365
|
+
}), this);
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
class ArticleCard extends CardDef {
|
|
370
|
+
static {
|
|
371
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
372
|
+
return contains(RichMarkdownField);
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
376
|
+
static isolated = class Isolated extends Component {
|
|
377
|
+
static {
|
|
378
|
+
setComponentTemplate(templateFactory({
|
|
379
|
+
"id": "nKOoxfii",
|
|
380
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
381
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
382
|
+
"isStrictMode": true
|
|
383
|
+
}), this);
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
await setupIntegrationTestRealm({
|
|
388
|
+
mockMatrixUtils,
|
|
389
|
+
contents: {
|
|
390
|
+
"pet.gts": { Pet },
|
|
391
|
+
"article.gts": { ArticleCard },
|
|
392
|
+
"Pet/mango.json": { data: {
|
|
393
|
+
attributes: {
|
|
394
|
+
name: "Mango",
|
|
395
|
+
cardTitle: "Mango"
|
|
396
|
+
},
|
|
397
|
+
meta: { adoptsFrom: {
|
|
398
|
+
module: "../pet",
|
|
399
|
+
name: "Pet"
|
|
400
|
+
} }
|
|
401
|
+
} },
|
|
402
|
+
"article-1.json": { data: {
|
|
403
|
+
attributes: { body: { content: `Inline: :card[./Pet/mango]` } },
|
|
404
|
+
meta: { adoptsFrom: {
|
|
405
|
+
module: "./article",
|
|
406
|
+
name: "ArticleCard"
|
|
407
|
+
} }
|
|
408
|
+
} }
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
let virtualNetwork = getService("network").virtualNetwork;
|
|
412
|
+
virtualNetwork.addRealmMapping("@test/cards/", testRealmURL);
|
|
413
|
+
try {
|
|
414
|
+
let article = await getService("store").get(`${testRealmURL}article-1`);
|
|
415
|
+
let refs = article.body?.cardReferenceUrls;
|
|
416
|
+
assert.deepEqual(refs, ["@test/cards/Pet/mango"], "the relative ref resolves against the prefix-form base into RRI space");
|
|
417
|
+
await renderCard(loader, article, "isolated");
|
|
418
|
+
await waitFor("[data-test-pet-atom]");
|
|
419
|
+
assert.dom("[data-test-pet-atom]").hasText("Mango", "the referenced card renders as a pill");
|
|
420
|
+
} finally {
|
|
421
|
+
virtualNetwork.removeRealmMapping("@test/cards/");
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
(0, import_qunit.test)("renders footnotes", async function(assert) {
|
|
425
|
+
class TestCard extends CardDef {
|
|
426
|
+
static {
|
|
427
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
428
|
+
return contains(RichMarkdownField);
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
432
|
+
static atom = class Atom extends Component {
|
|
433
|
+
static {
|
|
434
|
+
setComponentTemplate(templateFactory({
|
|
435
|
+
"id": "nKOoxfii",
|
|
436
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
437
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
438
|
+
"isStrictMode": true
|
|
439
|
+
}), this);
|
|
440
|
+
}
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
await setupIntegrationTestRealm({
|
|
444
|
+
mockMatrixUtils,
|
|
445
|
+
contents: { "test-card.gts": { TestCard } }
|
|
446
|
+
});
|
|
447
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Text with a footnote[^1].\n\n[^1]: This is the footnote content." }) });
|
|
448
|
+
let root = await renderCard(loader, card, "atom");
|
|
449
|
+
assert.dom(root.querySelector(".footnotes")).exists("footnote section is rendered");
|
|
450
|
+
assert.ok(root.textContent.includes("This is the footnote content"), "footnote content is present");
|
|
451
|
+
});
|
|
452
|
+
(0, import_qunit.test)("linkedCards render inside the markdown when card is loaded from realm", async function(assert) {
|
|
453
|
+
class Pet extends CardDef {
|
|
454
|
+
static displayName = "Pet";
|
|
455
|
+
static {
|
|
456
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
457
|
+
return contains(string_default);
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
461
|
+
static {
|
|
462
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
463
|
+
return contains(string_default, { computeVia: function() {
|
|
464
|
+
return this.name;
|
|
465
|
+
} });
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
469
|
+
static embedded = class Embedded extends Component {
|
|
470
|
+
static {
|
|
471
|
+
setComponentTemplate(templateFactory({
|
|
472
|
+
"id": "fc+zviHm",
|
|
473
|
+
"block": "[[[10,0],[14,\"data-test-pet-embedded\",\"\"],[12],[8,[30,1,[\"name\"]],null,null,null],[13]],[\"@fields\"],[]]",
|
|
474
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
475
|
+
"isStrictMode": true
|
|
476
|
+
}), this);
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
static atom = class Atom extends Component {
|
|
480
|
+
static {
|
|
481
|
+
setComponentTemplate(templateFactory({
|
|
482
|
+
"id": "hIHHAuC1",
|
|
483
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
484
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
485
|
+
"isStrictMode": true
|
|
486
|
+
}), this);
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
class ArticleCard extends CardDef {
|
|
491
|
+
static {
|
|
492
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
493
|
+
return contains(RichMarkdownField);
|
|
494
|
+
});
|
|
495
|
+
}
|
|
496
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
497
|
+
static isolated = class Isolated extends Component {
|
|
498
|
+
static {
|
|
499
|
+
setComponentTemplate(templateFactory({
|
|
500
|
+
"id": "nKOoxfii",
|
|
501
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
502
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
503
|
+
"isStrictMode": true
|
|
504
|
+
}), this);
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
await setupIntegrationTestRealm({
|
|
509
|
+
mockMatrixUtils,
|
|
510
|
+
contents: {
|
|
511
|
+
"pet.gts": { Pet },
|
|
512
|
+
"article.gts": { ArticleCard },
|
|
513
|
+
"Pet/mango.json": { data: {
|
|
514
|
+
attributes: {
|
|
515
|
+
name: "Mango",
|
|
516
|
+
cardTitle: "Mango"
|
|
517
|
+
},
|
|
518
|
+
meta: { adoptsFrom: {
|
|
519
|
+
module: "../pet",
|
|
520
|
+
name: "Pet"
|
|
521
|
+
} }
|
|
522
|
+
} },
|
|
523
|
+
"article-1.json": { data: {
|
|
524
|
+
attributes: { body: { content: `Inline ref: :card[${testRealmURL}Pet/mango]\n\nBlock ref:\n\n::card[${testRealmURL}Pet/mango]\n` } },
|
|
525
|
+
meta: { adoptsFrom: {
|
|
526
|
+
module: "./article",
|
|
527
|
+
name: "ArticleCard"
|
|
528
|
+
} }
|
|
529
|
+
} }
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
let store = getService("store");
|
|
533
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
534
|
+
await store.loaded();
|
|
535
|
+
await renderCard(loader, article, "isolated");
|
|
536
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
537
|
+
assert.dom("[data-test-pet-atom]").exists("inline card reference renders the referenced card in atom format");
|
|
538
|
+
assert.dom("[data-test-pet-atom]").hasText("Mango", "inline atom shows the correct card");
|
|
539
|
+
assert.dom("[data-test-pet-embedded]").exists("block card reference renders the referenced card in embedded format");
|
|
540
|
+
assert.dom("[data-test-pet-embedded]").hasText("Mango", "block embedded shows the correct card");
|
|
541
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").doesNotExist("no unresolved Pill remains after card resolves (inline)");
|
|
542
|
+
assert.dom("[data-test-markdown-bfm-unresolved-block]").doesNotExist("no unresolved Pill remains after card resolves (block)");
|
|
543
|
+
});
|
|
544
|
+
(0, import_qunit.test)("every card format renders in both inline and block placement (saved MarkdownTemplate path)", async function(assert) {
|
|
545
|
+
class Pet extends CardDef {
|
|
546
|
+
static displayName = "Pet";
|
|
547
|
+
static {
|
|
548
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
549
|
+
return contains(string_default);
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
553
|
+
static {
|
|
554
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
555
|
+
return contains(string_default, { computeVia: function() {
|
|
556
|
+
return this.name;
|
|
557
|
+
} });
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
561
|
+
static atom = class Atom extends Component {
|
|
562
|
+
static {
|
|
563
|
+
setComponentTemplate(templateFactory({
|
|
564
|
+
"id": "hIHHAuC1",
|
|
565
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
566
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
567
|
+
"isStrictMode": true
|
|
568
|
+
}), this);
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
static embedded = class Embedded extends Component {
|
|
572
|
+
static {
|
|
573
|
+
setComponentTemplate(templateFactory({
|
|
574
|
+
"id": "urFu3pRa",
|
|
575
|
+
"block": "[[[10,0],[14,\"data-test-pet-embedded\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
576
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
577
|
+
"isStrictMode": true
|
|
578
|
+
}), this);
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
static fitted = class Fitted extends Component {
|
|
582
|
+
static {
|
|
583
|
+
setComponentTemplate(templateFactory({
|
|
584
|
+
"id": "+uAZxnry",
|
|
585
|
+
"block": "[[[10,0],[14,\"data-test-pet-fitted\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
586
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
587
|
+
"isStrictMode": true
|
|
588
|
+
}), this);
|
|
589
|
+
}
|
|
590
|
+
};
|
|
591
|
+
static isolated = class Isolated extends Component {
|
|
592
|
+
static {
|
|
593
|
+
setComponentTemplate(templateFactory({
|
|
594
|
+
"id": "48HERO9Z",
|
|
595
|
+
"block": "[[[10,0],[14,\"data-test-pet-isolated\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
596
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
597
|
+
"isStrictMode": true
|
|
598
|
+
}), this);
|
|
599
|
+
}
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
class ArticleCard extends CardDef {
|
|
603
|
+
static {
|
|
604
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
605
|
+
return contains(RichMarkdownField);
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
609
|
+
static isolated = class Isolated extends Component {
|
|
610
|
+
static {
|
|
611
|
+
setComponentTemplate(templateFactory({
|
|
612
|
+
"id": "nKOoxfii",
|
|
613
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
614
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
615
|
+
"isStrictMode": true
|
|
616
|
+
}), this);
|
|
617
|
+
}
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
let url = `${testRealmURL}Pet/mango`;
|
|
621
|
+
let content = [
|
|
622
|
+
`:card[${url} | atom]`,
|
|
623
|
+
`:card[${url} | embedded]`,
|
|
624
|
+
`:card[${url} | fitted w:200 h:150]`,
|
|
625
|
+
`:card[${url} | isolated]`,
|
|
626
|
+
`::card[${url} | atom]`,
|
|
627
|
+
`::card[${url} | embedded]`,
|
|
628
|
+
`::card[${url} | fitted w:200 h:150]`,
|
|
629
|
+
`::card[${url} | isolated]`
|
|
630
|
+
].join("\n\n");
|
|
631
|
+
await setupIntegrationTestRealm({
|
|
632
|
+
mockMatrixUtils,
|
|
633
|
+
contents: {
|
|
634
|
+
"pet.gts": { Pet },
|
|
635
|
+
"article.gts": { ArticleCard },
|
|
636
|
+
"Pet/mango.json": { data: {
|
|
637
|
+
attributes: {
|
|
638
|
+
name: "Mango",
|
|
639
|
+
cardTitle: "Mango"
|
|
640
|
+
},
|
|
641
|
+
meta: { adoptsFrom: {
|
|
642
|
+
module: "../pet",
|
|
643
|
+
name: "Pet"
|
|
644
|
+
} }
|
|
645
|
+
} },
|
|
646
|
+
"article-1.json": { data: {
|
|
647
|
+
attributes: { body: { content } },
|
|
648
|
+
meta: { adoptsFrom: {
|
|
649
|
+
module: "./article",
|
|
650
|
+
name: "ArticleCard"
|
|
651
|
+
} }
|
|
652
|
+
} }
|
|
653
|
+
}
|
|
654
|
+
});
|
|
655
|
+
let store = getService("store");
|
|
656
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
657
|
+
await store.loaded();
|
|
658
|
+
await renderCard(loader, article, "isolated");
|
|
659
|
+
await waitFor("[data-test-pet-isolated]", { timeout: 1e4 });
|
|
660
|
+
let inline = "[data-test-markdown-bfm-inline-card]";
|
|
661
|
+
let block = "[data-test-markdown-bfm-block-card]";
|
|
662
|
+
for (let [placement, wrapper] of [["inline", inline], ["block", block]]) for (let format of [
|
|
663
|
+
"atom",
|
|
664
|
+
"embedded",
|
|
665
|
+
"fitted",
|
|
666
|
+
"isolated"
|
|
667
|
+
]) assert.dom(`${wrapper} [data-test-pet-${format}]`).exists(`${format} card renders in ${placement} placement`);
|
|
668
|
+
assert.dom(`${inline}:has([data-test-pet-isolated])`).hasAttribute("style", /width: 24rem/, "inline isolated slot carries the shared footprint");
|
|
669
|
+
assert.dom(`${block}:has([data-test-pet-isolated])`).hasAttribute("style", /min-height: 18\.75rem/, "block isolated slot carries a growable min-height");
|
|
670
|
+
assert.dom(`${inline}:has([data-test-pet-embedded])`).hasAttribute("style", /width: 16rem/, "inline embedded slot carries the shared footprint");
|
|
671
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").doesNotExist("no unresolved inline placeholders remain");
|
|
672
|
+
assert.dom("[data-test-markdown-bfm-unresolved-block]").doesNotExist("no unresolved block placeholders remain");
|
|
673
|
+
});
|
|
674
|
+
(0, import_qunit.test)("compose preview resolves a relative card ref against a prefix-form base", async function(assert) {
|
|
675
|
+
class Pet extends CardDef {
|
|
676
|
+
static displayName = "Pet";
|
|
677
|
+
static {
|
|
678
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
679
|
+
return contains(string_default);
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
683
|
+
static {
|
|
684
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
685
|
+
return contains(string_default, { computeVia: function() {
|
|
686
|
+
return this.name;
|
|
687
|
+
} });
|
|
688
|
+
});
|
|
689
|
+
}
|
|
690
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
691
|
+
static atom = class Atom extends Component {
|
|
692
|
+
static {
|
|
693
|
+
setComponentTemplate(templateFactory({
|
|
694
|
+
"id": "hIHHAuC1",
|
|
695
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
696
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
697
|
+
"isStrictMode": true
|
|
698
|
+
}), this);
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
await setupIntegrationTestRealm({
|
|
703
|
+
mockMatrixUtils,
|
|
704
|
+
contents: {
|
|
705
|
+
"pet.gts": { Pet },
|
|
706
|
+
"Pet/mango.json": { data: {
|
|
707
|
+
attributes: {
|
|
708
|
+
name: "Mango",
|
|
709
|
+
cardTitle: "Mango"
|
|
710
|
+
},
|
|
711
|
+
meta: { adoptsFrom: {
|
|
712
|
+
module: "../pet",
|
|
713
|
+
name: "Pet"
|
|
714
|
+
} }
|
|
715
|
+
} }
|
|
716
|
+
}
|
|
717
|
+
});
|
|
718
|
+
let virtualNetwork = getService("network").virtualNetwork;
|
|
719
|
+
virtualNetwork.addRealmMapping("@test/cards/", testRealmURL);
|
|
720
|
+
try {
|
|
721
|
+
let store = getService("store");
|
|
722
|
+
let pet = await store.get("@test/cards/Pet/mango");
|
|
723
|
+
await store.loaded();
|
|
724
|
+
assert.strictEqual(pet.id, "@test/cards/Pet/mango", "precondition: the referenced card loads with a canonical RRI id");
|
|
725
|
+
let CodeMirrorEditor = (await loader.import("@cardstack/base/codemirror-editor")).default;
|
|
726
|
+
let harness = {
|
|
727
|
+
content: "Inline: :card[./Pet/mango]",
|
|
728
|
+
linkedCards: [pet],
|
|
729
|
+
onUpdate: () => {}
|
|
730
|
+
};
|
|
731
|
+
await render(templateFactory({
|
|
732
|
+
"id": "Egax1IH5",
|
|
733
|
+
"block": "[[[8,[32,0],null,[[\"@content\",\"@onUpdate\",\"@linkedCards\",\"@cardReferenceBaseUrl\",\"@livePreview\"],[[32,1,[\"content\"]],[32,1,[\"onUpdate\"]],[32,1,[\"linkedCards\"]],\"@test/cards/article-1\",true]],null]],[],[]]",
|
|
734
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
735
|
+
"scope": () => [CodeMirrorEditor, harness],
|
|
736
|
+
"isStrictMode": true
|
|
737
|
+
}));
|
|
738
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
739
|
+
assert.dom("[data-test-pet-atom]").hasText("Mango", "relative ref resolves and renders in the preview");
|
|
740
|
+
} finally {
|
|
741
|
+
virtualNetwork.removeRealmMapping("@test/cards/");
|
|
742
|
+
}
|
|
743
|
+
});
|
|
744
|
+
(0, import_qunit.test)("edit-mode compose preview renders a block fitted embed at the specified size", async function(assert) {
|
|
745
|
+
class Pet extends CardDef {
|
|
746
|
+
static displayName = "Pet";
|
|
747
|
+
static {
|
|
748
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
749
|
+
return contains(string_default);
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
753
|
+
static {
|
|
754
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
755
|
+
return contains(string_default, { computeVia: function() {
|
|
756
|
+
return this.name;
|
|
757
|
+
} });
|
|
758
|
+
});
|
|
759
|
+
}
|
|
760
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
761
|
+
static fitted = class Fitted extends Component {
|
|
762
|
+
static {
|
|
763
|
+
setComponentTemplate(templateFactory({
|
|
764
|
+
"id": "+uAZxnry",
|
|
765
|
+
"block": "[[[10,0],[14,\"data-test-pet-fitted\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
766
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
767
|
+
"isStrictMode": true
|
|
768
|
+
}), this);
|
|
769
|
+
}
|
|
770
|
+
};
|
|
771
|
+
}
|
|
772
|
+
class ArticleCard extends CardDef {
|
|
773
|
+
static {
|
|
774
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
775
|
+
return contains(RichMarkdownField);
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
779
|
+
}
|
|
780
|
+
await setupIntegrationTestRealm({
|
|
781
|
+
mockMatrixUtils,
|
|
782
|
+
contents: {
|
|
783
|
+
"pet.gts": { Pet },
|
|
784
|
+
"article.gts": { ArticleCard },
|
|
785
|
+
"Pet/mango.json": { data: {
|
|
786
|
+
attributes: {
|
|
787
|
+
name: "Mango",
|
|
788
|
+
cardTitle: "Mango"
|
|
789
|
+
},
|
|
790
|
+
meta: { adoptsFrom: {
|
|
791
|
+
module: "../pet",
|
|
792
|
+
name: "Pet"
|
|
793
|
+
} }
|
|
794
|
+
} },
|
|
795
|
+
"article-1.json": { data: {
|
|
796
|
+
attributes: { body: { content: `::card[${testRealmURL}Pet/mango | fitted w:400 h:300]\n` } },
|
|
797
|
+
meta: { adoptsFrom: {
|
|
798
|
+
module: "./article",
|
|
799
|
+
name: "ArticleCard"
|
|
800
|
+
} }
|
|
801
|
+
} }
|
|
802
|
+
}
|
|
803
|
+
});
|
|
804
|
+
let store = getService("store");
|
|
805
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
806
|
+
await store.loaded();
|
|
807
|
+
await renderCard(loader, article, "edit");
|
|
808
|
+
await waitFor("[data-test-pet-fitted]", { timeout: 1e4 });
|
|
809
|
+
assert.dom("[data-test-pet-fitted]").exists("block fitted embed renders the referenced card, not a fallback");
|
|
810
|
+
assert.dom(".codemirror-card-fallback").doesNotExist("no URL fallback remains once the card resolves");
|
|
811
|
+
let slot = document.querySelector("[data-test-pet-fitted]").closest(".codemirror-card-slot--block");
|
|
812
|
+
assert.ok(slot, "the card renders inside a block slot");
|
|
813
|
+
assert.strictEqual(slot?.style.width, "400px", "block fitted slot carries the requested width");
|
|
814
|
+
assert.strictEqual(slot?.style.height, "300px", "block fitted slot carries the requested height");
|
|
815
|
+
assert.strictEqual(slot?.style.overflow, "hidden", "block fitted slot clips overflow");
|
|
816
|
+
});
|
|
817
|
+
(0, import_qunit.test)("edit-mode compose preview renders a prefix-form (@-RRI) ref with a named fitted variant", async function(assert) {
|
|
818
|
+
class Pet extends CardDef {
|
|
819
|
+
static displayName = "Pet";
|
|
820
|
+
static {
|
|
821
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
822
|
+
return contains(string_default);
|
|
823
|
+
});
|
|
824
|
+
}
|
|
825
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
826
|
+
static {
|
|
827
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
828
|
+
return contains(string_default, { computeVia: function() {
|
|
829
|
+
return this.name;
|
|
830
|
+
} });
|
|
831
|
+
});
|
|
832
|
+
}
|
|
833
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
834
|
+
static fitted = class Fitted extends Component {
|
|
835
|
+
static {
|
|
836
|
+
setComponentTemplate(templateFactory({
|
|
837
|
+
"id": "+uAZxnry",
|
|
838
|
+
"block": "[[[10,0],[14,\"data-test-pet-fitted\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
839
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
840
|
+
"isStrictMode": true
|
|
841
|
+
}), this);
|
|
842
|
+
}
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
class ArticleCard extends CardDef {
|
|
846
|
+
static {
|
|
847
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
848
|
+
return contains(RichMarkdownField);
|
|
849
|
+
});
|
|
850
|
+
}
|
|
851
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
852
|
+
}
|
|
853
|
+
await setupIntegrationTestRealm({
|
|
854
|
+
mockMatrixUtils,
|
|
855
|
+
contents: {
|
|
856
|
+
"pet.gts": { Pet },
|
|
857
|
+
"article.gts": { ArticleCard },
|
|
858
|
+
"Pet/mango.json": { data: {
|
|
859
|
+
attributes: {
|
|
860
|
+
name: "Mango",
|
|
861
|
+
cardTitle: "Mango"
|
|
862
|
+
},
|
|
863
|
+
meta: { adoptsFrom: {
|
|
864
|
+
module: "../pet",
|
|
865
|
+
name: "Pet"
|
|
866
|
+
} }
|
|
867
|
+
} },
|
|
868
|
+
"article-1.json": { data: {
|
|
869
|
+
attributes: { body: { content: `::card[@test/cards/Pet/mango | double-strip]\n` } },
|
|
870
|
+
meta: { adoptsFrom: {
|
|
871
|
+
module: "./article",
|
|
872
|
+
name: "ArticleCard"
|
|
873
|
+
} }
|
|
874
|
+
} }
|
|
875
|
+
}
|
|
876
|
+
});
|
|
877
|
+
let virtualNetwork = getService("network").virtualNetwork;
|
|
878
|
+
virtualNetwork.addRealmMapping("@test/cards/", testRealmURL);
|
|
879
|
+
try {
|
|
880
|
+
let store = getService("store");
|
|
881
|
+
let article = await store.get("@test/cards/article-1");
|
|
882
|
+
await store.loaded();
|
|
883
|
+
await renderCard(loader, article, "edit");
|
|
884
|
+
await waitFor("[data-test-pet-fitted]", { timeout: 1e4 });
|
|
885
|
+
assert.dom("[data-test-pet-fitted]").exists("prefix-form ref renders the card, not a URL fallback");
|
|
886
|
+
assert.dom(".codemirror-card-fallback").doesNotExist("no URL fallback remains once the card resolves");
|
|
887
|
+
let slot = document.querySelector("[data-test-pet-fitted]").closest(".codemirror-card-slot--block");
|
|
888
|
+
assert.strictEqual(slot?.style.width, "250px", "double-strip width is applied");
|
|
889
|
+
assert.strictEqual(slot?.style.height, "65px", "double-strip height is applied");
|
|
890
|
+
} finally {
|
|
891
|
+
virtualNetwork.removeRealmMapping("@test/cards/");
|
|
892
|
+
}
|
|
893
|
+
});
|
|
894
|
+
(0, import_qunit.test)("edit-mode compose preview flows inline embeds by format (atom pill vs sized inline-block)", async function(assert) {
|
|
895
|
+
class Pet extends CardDef {
|
|
896
|
+
static displayName = "Pet";
|
|
897
|
+
static {
|
|
898
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
899
|
+
return contains(string_default);
|
|
900
|
+
});
|
|
901
|
+
}
|
|
902
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
903
|
+
static {
|
|
904
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
905
|
+
return contains(string_default, { computeVia: function() {
|
|
906
|
+
return this.name;
|
|
907
|
+
} });
|
|
908
|
+
});
|
|
909
|
+
}
|
|
910
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
911
|
+
static atom = class Atom extends Component {
|
|
912
|
+
static {
|
|
913
|
+
setComponentTemplate(templateFactory({
|
|
914
|
+
"id": "hIHHAuC1",
|
|
915
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
916
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
917
|
+
"isStrictMode": true
|
|
918
|
+
}), this);
|
|
919
|
+
}
|
|
920
|
+
};
|
|
921
|
+
static embedded = class Embedded extends Component {
|
|
922
|
+
static {
|
|
923
|
+
setComponentTemplate(templateFactory({
|
|
924
|
+
"id": "urFu3pRa",
|
|
925
|
+
"block": "[[[10,0],[14,\"data-test-pet-embedded\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
926
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
927
|
+
"isStrictMode": true
|
|
928
|
+
}), this);
|
|
929
|
+
}
|
|
930
|
+
};
|
|
931
|
+
static fitted = class Fitted extends Component {
|
|
932
|
+
static {
|
|
933
|
+
setComponentTemplate(templateFactory({
|
|
934
|
+
"id": "+uAZxnry",
|
|
935
|
+
"block": "[[[10,0],[14,\"data-test-pet-fitted\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
936
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
937
|
+
"isStrictMode": true
|
|
938
|
+
}), this);
|
|
939
|
+
}
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
class ArticleCard extends CardDef {
|
|
943
|
+
static {
|
|
944
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
945
|
+
return contains(RichMarkdownField);
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
949
|
+
}
|
|
950
|
+
await setupIntegrationTestRealm({
|
|
951
|
+
mockMatrixUtils,
|
|
952
|
+
contents: {
|
|
953
|
+
"pet.gts": { Pet },
|
|
954
|
+
"article.gts": { ArticleCard },
|
|
955
|
+
"Pet/mango.json": { data: {
|
|
956
|
+
attributes: {
|
|
957
|
+
name: "Mango",
|
|
958
|
+
cardTitle: "Mango"
|
|
959
|
+
},
|
|
960
|
+
meta: { adoptsFrom: {
|
|
961
|
+
module: "../pet",
|
|
962
|
+
name: "Pet"
|
|
963
|
+
} }
|
|
964
|
+
} },
|
|
965
|
+
"article-1.json": { data: {
|
|
966
|
+
attributes: { body: { content: `Embedded: :card[${testRealmURL}Pet/mango | embedded]\n\nAtom: :card[${testRealmURL}Pet/mango | atom]\n\nFitted: :card[${testRealmURL}Pet/mango | fitted w:200 h:100]\n` } },
|
|
967
|
+
meta: { adoptsFrom: {
|
|
968
|
+
module: "./article",
|
|
969
|
+
name: "ArticleCard"
|
|
970
|
+
} }
|
|
971
|
+
} }
|
|
972
|
+
}
|
|
973
|
+
});
|
|
974
|
+
let store = getService("store");
|
|
975
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
976
|
+
await store.loaded();
|
|
977
|
+
await renderCard(loader, article, "edit");
|
|
978
|
+
await waitFor("[data-test-pet-embedded]", { timeout: 1e4 });
|
|
979
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
980
|
+
await waitFor("[data-test-pet-fitted]", { timeout: 1e4 });
|
|
981
|
+
let embeddedSlot = document.querySelector("[data-test-pet-embedded]").closest("[data-test-codemirror-card-slot-inline]");
|
|
982
|
+
assert.dom(embeddedSlot).hasClass("codemirror-card-slot--inline-embed", "a non-atom inline embed flows as an inline-block slot");
|
|
983
|
+
assert.dom(embeddedSlot).doesNotHaveClass("codemirror-card-slot--inline", "a non-atom inline embed does not use the atom pill flow class");
|
|
984
|
+
let atomSlot = document.querySelector("[data-test-pet-atom]").closest("[data-test-codemirror-card-slot-inline]");
|
|
985
|
+
assert.dom(atomSlot).hasClass("codemirror-card-slot--inline", "a plain (atom) inline ref keeps the atom pill flow class");
|
|
986
|
+
let fittedSlot = document.querySelector("[data-test-pet-fitted]").closest("[data-test-codemirror-card-slot-inline]");
|
|
987
|
+
assert.dom(fittedSlot).hasClass("codemirror-card-slot--inline-embed", "a fitted inline embed flows as an inline-block slot");
|
|
988
|
+
assert.strictEqual(fittedSlot?.style.width, "200px", "fitted inline slot carries the requested width");
|
|
989
|
+
assert.strictEqual(fittedSlot?.style.height, "100px", "fitted inline slot carries the requested height");
|
|
990
|
+
assert.strictEqual(fittedSlot?.style.overflow, "hidden", "fitted inline slot clips overflow");
|
|
991
|
+
});
|
|
992
|
+
(0, import_qunit.test)("inline card reference with a non-atom format resolves to an inline-block slot", async function(assert) {
|
|
993
|
+
class Pet extends CardDef {
|
|
994
|
+
static displayName = "Pet";
|
|
995
|
+
static {
|
|
996
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
997
|
+
return contains(string_default);
|
|
998
|
+
});
|
|
999
|
+
}
|
|
1000
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
1001
|
+
static {
|
|
1002
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
1003
|
+
return contains(string_default, { computeVia: function() {
|
|
1004
|
+
return this.name;
|
|
1005
|
+
} });
|
|
1006
|
+
});
|
|
1007
|
+
}
|
|
1008
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
1009
|
+
static embedded = class Embedded extends Component {
|
|
1010
|
+
static {
|
|
1011
|
+
setComponentTemplate(templateFactory({
|
|
1012
|
+
"id": "fc+zviHm",
|
|
1013
|
+
"block": "[[[10,0],[14,\"data-test-pet-embedded\",\"\"],[12],[8,[30,1,[\"name\"]],null,null,null],[13]],[\"@fields\"],[]]",
|
|
1014
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1015
|
+
"isStrictMode": true
|
|
1016
|
+
}), this);
|
|
1017
|
+
}
|
|
1018
|
+
};
|
|
1019
|
+
static atom = class Atom extends Component {
|
|
1020
|
+
static {
|
|
1021
|
+
setComponentTemplate(templateFactory({
|
|
1022
|
+
"id": "hIHHAuC1",
|
|
1023
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
1024
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1025
|
+
"isStrictMode": true
|
|
1026
|
+
}), this);
|
|
1027
|
+
}
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
class ArticleCard extends CardDef {
|
|
1031
|
+
static {
|
|
1032
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1033
|
+
return contains(RichMarkdownField);
|
|
1034
|
+
});
|
|
1035
|
+
}
|
|
1036
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1037
|
+
static isolated = class Isolated extends Component {
|
|
1038
|
+
static {
|
|
1039
|
+
setComponentTemplate(templateFactory({
|
|
1040
|
+
"id": "nKOoxfii",
|
|
1041
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1042
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1043
|
+
"isStrictMode": true
|
|
1044
|
+
}), this);
|
|
1045
|
+
}
|
|
1046
|
+
};
|
|
1047
|
+
}
|
|
1048
|
+
await setupIntegrationTestRealm({
|
|
1049
|
+
mockMatrixUtils,
|
|
1050
|
+
contents: {
|
|
1051
|
+
"pet.gts": { Pet },
|
|
1052
|
+
"article.gts": { ArticleCard },
|
|
1053
|
+
"Pet/mango.json": { data: {
|
|
1054
|
+
attributes: {
|
|
1055
|
+
name: "Mango",
|
|
1056
|
+
cardTitle: "Mango"
|
|
1057
|
+
},
|
|
1058
|
+
meta: { adoptsFrom: {
|
|
1059
|
+
module: "../pet",
|
|
1060
|
+
name: "Pet"
|
|
1061
|
+
} }
|
|
1062
|
+
} },
|
|
1063
|
+
"article-1.json": { data: {
|
|
1064
|
+
attributes: { body: { content: `Embedded inline: :card[${testRealmURL}Pet/mango | embedded]\n\nAtom inline: :card[${testRealmURL}Pet/mango | atom]\n` } },
|
|
1065
|
+
meta: { adoptsFrom: {
|
|
1066
|
+
module: "./article",
|
|
1067
|
+
name: "ArticleCard"
|
|
1068
|
+
} }
|
|
1069
|
+
} }
|
|
1070
|
+
}
|
|
1071
|
+
});
|
|
1072
|
+
let store = getService("store");
|
|
1073
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
1074
|
+
await store.loaded();
|
|
1075
|
+
await renderCard(loader, article, "isolated");
|
|
1076
|
+
await waitFor("[data-test-pet-embedded]", { timeout: 1e4 });
|
|
1077
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
1078
|
+
let embeddedSlot = document.querySelector("[data-test-pet-embedded]").closest("[data-test-markdown-bfm-inline-card]");
|
|
1079
|
+
assert.ok(embeddedSlot, "the embedded inline ref renders inside an inline card slot");
|
|
1080
|
+
assert.dom(embeddedSlot).hasClass("markdown-bfm-card-slot--inline-embed", "a non-atom inline embed flows as an inline-block slot");
|
|
1081
|
+
assert.dom(embeddedSlot).doesNotHaveClass("markdown-bfm-card-slot--inline", "a non-atom inline embed does not use the atom pill flow class");
|
|
1082
|
+
let atomSlot = document.querySelector("[data-test-pet-atom]").closest("[data-test-markdown-bfm-inline-card]");
|
|
1083
|
+
assert.ok(atomSlot, "the atom inline ref renders inside an inline card slot");
|
|
1084
|
+
assert.dom(atomSlot).hasClass("markdown-bfm-card-slot--inline", "a plain (atom) inline ref keeps the atom pill flow class");
|
|
1085
|
+
});
|
|
1086
|
+
(0, import_qunit.test)("card references show loading shimmer before linkedCards resolves, not broken Pills", async function(assert) {
|
|
1087
|
+
class Pet extends CardDef {
|
|
1088
|
+
static displayName = "Pet";
|
|
1089
|
+
static {
|
|
1090
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
1091
|
+
return contains(string_default);
|
|
1092
|
+
});
|
|
1093
|
+
}
|
|
1094
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
1095
|
+
static {
|
|
1096
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
1097
|
+
return contains(string_default, { computeVia: function() {
|
|
1098
|
+
return this.name;
|
|
1099
|
+
} });
|
|
1100
|
+
});
|
|
1101
|
+
}
|
|
1102
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
1103
|
+
static atom = class Atom extends Component {
|
|
1104
|
+
static {
|
|
1105
|
+
setComponentTemplate(templateFactory({
|
|
1106
|
+
"id": "hIHHAuC1",
|
|
1107
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
1108
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1109
|
+
"isStrictMode": true
|
|
1110
|
+
}), this);
|
|
1111
|
+
}
|
|
1112
|
+
};
|
|
1113
|
+
}
|
|
1114
|
+
class ArticleCard extends CardDef {
|
|
1115
|
+
static {
|
|
1116
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1117
|
+
return contains(RichMarkdownField);
|
|
1118
|
+
});
|
|
1119
|
+
}
|
|
1120
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1121
|
+
static isolated = class Isolated extends Component {
|
|
1122
|
+
static {
|
|
1123
|
+
setComponentTemplate(templateFactory({
|
|
1124
|
+
"id": "nKOoxfii",
|
|
1125
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1126
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1127
|
+
"isStrictMode": true
|
|
1128
|
+
}), this);
|
|
1129
|
+
}
|
|
1130
|
+
};
|
|
1131
|
+
}
|
|
1132
|
+
await setupIntegrationTestRealm({
|
|
1133
|
+
mockMatrixUtils,
|
|
1134
|
+
contents: {
|
|
1135
|
+
"pet.gts": { Pet },
|
|
1136
|
+
"article.gts": { ArticleCard },
|
|
1137
|
+
"Pet/mango.json": { data: {
|
|
1138
|
+
attributes: {
|
|
1139
|
+
name: "Mango",
|
|
1140
|
+
cardTitle: "Mango"
|
|
1141
|
+
},
|
|
1142
|
+
meta: { adoptsFrom: {
|
|
1143
|
+
module: "../pet",
|
|
1144
|
+
name: "Pet"
|
|
1145
|
+
} }
|
|
1146
|
+
} },
|
|
1147
|
+
"article-1.json": { data: {
|
|
1148
|
+
attributes: { body: { content: `Inline ref: :card[${testRealmURL}Pet/mango]\n` } },
|
|
1149
|
+
meta: { adoptsFrom: {
|
|
1150
|
+
module: "./article",
|
|
1151
|
+
name: "ArticleCard"
|
|
1152
|
+
} }
|
|
1153
|
+
} }
|
|
1154
|
+
}
|
|
1155
|
+
});
|
|
1156
|
+
let store = getService("store");
|
|
1157
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
1158
|
+
await store.loaded();
|
|
1159
|
+
await renderCard(loader, article, "isolated");
|
|
1160
|
+
let unresolvedPillEverAppeared = false;
|
|
1161
|
+
let testRoot = document.querySelector("#ember-testing");
|
|
1162
|
+
let testObserver = new MutationObserver(() => {
|
|
1163
|
+
if (testRoot.querySelector("[data-test-markdown-bfm-unresolved-inline]")) unresolvedPillEverAppeared = true;
|
|
1164
|
+
});
|
|
1165
|
+
testObserver.observe(testRoot, {
|
|
1166
|
+
childList: true,
|
|
1167
|
+
subtree: true
|
|
1168
|
+
});
|
|
1169
|
+
let inlineRef = document.querySelector("[data-boxel-bfm-inline-ref]");
|
|
1170
|
+
assert.ok(inlineRef, "card ref element exists in the DOM");
|
|
1171
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
1172
|
+
testObserver.disconnect();
|
|
1173
|
+
assert.false(unresolvedPillEverAppeared, "no broken Pill flashed during the loading→resolved transition");
|
|
1174
|
+
assert.dom("[data-test-pet-atom]").hasText("Mango", "card resolves correctly");
|
|
1175
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").doesNotExist("no unresolved Pill after card resolves");
|
|
1176
|
+
});
|
|
1177
|
+
(0, import_qunit.test)("unresolved card references render as muted Pill indicators", async function(assert) {
|
|
1178
|
+
class ArticleCard extends CardDef {
|
|
1179
|
+
static {
|
|
1180
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1181
|
+
return contains(RichMarkdownField);
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1185
|
+
static isolated = class Isolated extends Component {
|
|
1186
|
+
static {
|
|
1187
|
+
setComponentTemplate(templateFactory({
|
|
1188
|
+
"id": "nKOoxfii",
|
|
1189
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1190
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1191
|
+
"isStrictMode": true
|
|
1192
|
+
}), this);
|
|
1193
|
+
}
|
|
1194
|
+
};
|
|
1195
|
+
}
|
|
1196
|
+
await setupIntegrationTestRealm({
|
|
1197
|
+
mockMatrixUtils,
|
|
1198
|
+
contents: {
|
|
1199
|
+
"article.gts": { ArticleCard },
|
|
1200
|
+
"article-unresolved.json": { data: {
|
|
1201
|
+
attributes: { body: { content: `Inline: :card[https://nonexistent.example/Pet/missing]\n\nBlock:\n\n::card[https://nonexistent.example/BlogPost/gone]\n` } },
|
|
1202
|
+
meta: { adoptsFrom: {
|
|
1203
|
+
module: "./article",
|
|
1204
|
+
name: "ArticleCard"
|
|
1205
|
+
} }
|
|
1206
|
+
} }
|
|
1207
|
+
}
|
|
1208
|
+
});
|
|
1209
|
+
let store = getService("store");
|
|
1210
|
+
let article = await store.get(`${testRealmURL}article-unresolved`);
|
|
1211
|
+
await store.loaded();
|
|
1212
|
+
await renderCard(loader, article, "isolated");
|
|
1213
|
+
await waitUntil(() => document.querySelector("[data-test-markdown-bfm-unresolved-inline]") !== null, { timeout: 1e4 });
|
|
1214
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").hasText("Pet", "inline unresolved ref shows type name in Pill");
|
|
1215
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").hasAttribute("title", "https://nonexistent.example/Pet/missing", "inline Pill title shows the raw URL");
|
|
1216
|
+
assert.dom("[data-test-markdown-bfm-unresolved-block]").exists("block unresolved ref renders a Pill");
|
|
1217
|
+
assert.dom("[data-test-markdown-bfm-unresolved-block]").hasAttribute("title", "https://nonexistent.example/BlogPost/gone", "block Pill title shows the raw URL");
|
|
1218
|
+
});
|
|
1219
|
+
(0, import_qunit.test)("unresolved block ref with fitted size spec carries the card footprint", async function(assert) {
|
|
1220
|
+
class ArticleCard extends CardDef {
|
|
1221
|
+
static {
|
|
1222
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1223
|
+
return contains(RichMarkdownField);
|
|
1224
|
+
});
|
|
1225
|
+
}
|
|
1226
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1227
|
+
static isolated = class Isolated extends Component {
|
|
1228
|
+
static {
|
|
1229
|
+
setComponentTemplate(templateFactory({
|
|
1230
|
+
"id": "nKOoxfii",
|
|
1231
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1232
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1233
|
+
"isStrictMode": true
|
|
1234
|
+
}), this);
|
|
1235
|
+
}
|
|
1236
|
+
};
|
|
1237
|
+
}
|
|
1238
|
+
await setupIntegrationTestRealm({
|
|
1239
|
+
mockMatrixUtils,
|
|
1240
|
+
contents: {
|
|
1241
|
+
"article.gts": { ArticleCard },
|
|
1242
|
+
"article-fitted-unresolved.json": { data: {
|
|
1243
|
+
attributes: { body: { content: `::card[https://nonexistent.example/BlogPost/gone | 400x200]\n` } },
|
|
1244
|
+
meta: { adoptsFrom: {
|
|
1245
|
+
module: "./article",
|
|
1246
|
+
name: "ArticleCard"
|
|
1247
|
+
} }
|
|
1248
|
+
} }
|
|
1249
|
+
}
|
|
1250
|
+
});
|
|
1251
|
+
let store = getService("store");
|
|
1252
|
+
let article = await store.get(`${testRealmURL}article-fitted-unresolved`);
|
|
1253
|
+
await store.loaded();
|
|
1254
|
+
await renderCard(loader, article, "isolated");
|
|
1255
|
+
await waitUntil(() => document.querySelector("[data-test-markdown-bfm-unresolved-block]") !== null, { timeout: 1e4 });
|
|
1256
|
+
let brokenBlock = document.querySelector("[data-test-markdown-bfm-unresolved-block]");
|
|
1257
|
+
assert.ok(brokenBlock, "broken-link block exists");
|
|
1258
|
+
assert.dom(brokenBlock).hasClass("markdown-bfm-broken--fitted", "fitted ref carries the fitted footprint class");
|
|
1259
|
+
let style = brokenBlock?.getAttribute("style") ?? "";
|
|
1260
|
+
assert.true(/width:\s*400px/.test(style), `broken-link inline style includes width: 400px (got "${style}")`);
|
|
1261
|
+
assert.true(/height:\s*200px/.test(style), `broken-link inline style includes height: 200px (got "${style}")`);
|
|
1262
|
+
});
|
|
1263
|
+
(0, import_qunit.test)("unresolved block ::file with fitted size spec carries the same footprint as ::card", async function(assert) {
|
|
1264
|
+
class ArticleCard extends CardDef {
|
|
1265
|
+
static {
|
|
1266
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1267
|
+
return contains(RichMarkdownField);
|
|
1268
|
+
});
|
|
1269
|
+
}
|
|
1270
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1271
|
+
static isolated = class Isolated extends Component {
|
|
1272
|
+
static {
|
|
1273
|
+
setComponentTemplate(templateFactory({
|
|
1274
|
+
"id": "nKOoxfii",
|
|
1275
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1276
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1277
|
+
"isStrictMode": true
|
|
1278
|
+
}), this);
|
|
1279
|
+
}
|
|
1280
|
+
};
|
|
1281
|
+
}
|
|
1282
|
+
await setupIntegrationTestRealm({
|
|
1283
|
+
mockMatrixUtils,
|
|
1284
|
+
contents: {
|
|
1285
|
+
"article.gts": { ArticleCard },
|
|
1286
|
+
"article-file-fitted-unresolved.json": { data: {
|
|
1287
|
+
attributes: { body: { content: `::file[https://nonexistent.example/images/gone.png | 400x200]\n` } },
|
|
1288
|
+
meta: { adoptsFrom: {
|
|
1289
|
+
module: "./article",
|
|
1290
|
+
name: "ArticleCard"
|
|
1291
|
+
} }
|
|
1292
|
+
} }
|
|
1293
|
+
}
|
|
1294
|
+
});
|
|
1295
|
+
let store = getService("store");
|
|
1296
|
+
let article = await store.get(`${testRealmURL}article-file-fitted-unresolved`);
|
|
1297
|
+
await store.loaded();
|
|
1298
|
+
await renderCard(loader, article, "isolated");
|
|
1299
|
+
await waitUntil(() => document.querySelector("[data-test-markdown-bfm-unresolved-block]") !== null, { timeout: 1e4 });
|
|
1300
|
+
let brokenBlock = document.querySelector("[data-test-markdown-bfm-unresolved-block]");
|
|
1301
|
+
assert.ok(brokenBlock, "broken-link block exists");
|
|
1302
|
+
assert.dom(brokenBlock).hasClass("markdown-bfm-broken--fitted", "fitted file ref carries the fitted footprint class");
|
|
1303
|
+
let style = brokenBlock?.getAttribute("style") ?? "";
|
|
1304
|
+
assert.true(/width:\s*400px/.test(style), `broken-link inline style includes width: 400px (got "${style}")`);
|
|
1305
|
+
assert.true(/height:\s*200px/.test(style), `broken-link inline style includes height: 200px (got "${style}")`);
|
|
1306
|
+
});
|
|
1307
|
+
(0, import_qunit.test)("linkedCards resolve when markdown uses relative card references", async function(assert) {
|
|
1308
|
+
class Pet extends CardDef {
|
|
1309
|
+
static displayName = "Pet";
|
|
1310
|
+
static {
|
|
1311
|
+
decorateFieldV2(this.prototype, "name", [field], function() {
|
|
1312
|
+
return contains(string_default);
|
|
1313
|
+
});
|
|
1314
|
+
}
|
|
1315
|
+
#name = (initializeDeferredDecorator(this, "name"), void 0);
|
|
1316
|
+
static {
|
|
1317
|
+
decorateFieldV2(this.prototype, "cardTitle", [field], function() {
|
|
1318
|
+
return contains(string_default, { computeVia: function() {
|
|
1319
|
+
return this.name;
|
|
1320
|
+
} });
|
|
1321
|
+
});
|
|
1322
|
+
}
|
|
1323
|
+
#cardTitle = (initializeDeferredDecorator(this, "cardTitle"), void 0);
|
|
1324
|
+
static embedded = class Embedded extends Component {
|
|
1325
|
+
static {
|
|
1326
|
+
setComponentTemplate(templateFactory({
|
|
1327
|
+
"id": "fc+zviHm",
|
|
1328
|
+
"block": "[[[10,0],[14,\"data-test-pet-embedded\",\"\"],[12],[8,[30,1,[\"name\"]],null,null,null],[13]],[\"@fields\"],[]]",
|
|
1329
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1330
|
+
"isStrictMode": true
|
|
1331
|
+
}), this);
|
|
1332
|
+
}
|
|
1333
|
+
};
|
|
1334
|
+
static atom = class Atom extends Component {
|
|
1335
|
+
static {
|
|
1336
|
+
setComponentTemplate(templateFactory({
|
|
1337
|
+
"id": "hIHHAuC1",
|
|
1338
|
+
"block": "[[[10,1],[14,\"data-test-pet-atom\",\"\"],[12],[1,[30,1,[\"name\"]]],[13]],[\"@model\"],[]]",
|
|
1339
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1340
|
+
"isStrictMode": true
|
|
1341
|
+
}), this);
|
|
1342
|
+
}
|
|
1343
|
+
};
|
|
1344
|
+
}
|
|
1345
|
+
class ArticleCard extends CardDef {
|
|
1346
|
+
static {
|
|
1347
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1348
|
+
return contains(RichMarkdownField);
|
|
1349
|
+
});
|
|
1350
|
+
}
|
|
1351
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1352
|
+
static isolated = class Isolated extends Component {
|
|
1353
|
+
static {
|
|
1354
|
+
setComponentTemplate(templateFactory({
|
|
1355
|
+
"id": "nKOoxfii",
|
|
1356
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1357
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1358
|
+
"isStrictMode": true
|
|
1359
|
+
}), this);
|
|
1360
|
+
}
|
|
1361
|
+
};
|
|
1362
|
+
}
|
|
1363
|
+
await setupIntegrationTestRealm({
|
|
1364
|
+
mockMatrixUtils,
|
|
1365
|
+
contents: {
|
|
1366
|
+
"pet.gts": { Pet },
|
|
1367
|
+
"article.gts": { ArticleCard },
|
|
1368
|
+
"Pet/mango.json": { data: {
|
|
1369
|
+
attributes: {
|
|
1370
|
+
name: "Mango",
|
|
1371
|
+
cardTitle: "Mango"
|
|
1372
|
+
},
|
|
1373
|
+
meta: { adoptsFrom: {
|
|
1374
|
+
module: "../pet",
|
|
1375
|
+
name: "Pet"
|
|
1376
|
+
} }
|
|
1377
|
+
} },
|
|
1378
|
+
"article-1.json": { data: {
|
|
1379
|
+
attributes: { body: { content: `Inline ref: :card[./Pet/mango]\n\nBlock ref:\n\n::card[./Pet/mango]\n` } },
|
|
1380
|
+
meta: { adoptsFrom: {
|
|
1381
|
+
module: "./article",
|
|
1382
|
+
name: "ArticleCard"
|
|
1383
|
+
} }
|
|
1384
|
+
} }
|
|
1385
|
+
}
|
|
1386
|
+
});
|
|
1387
|
+
let store = getService("store");
|
|
1388
|
+
let article = await store.get(`${testRealmURL}article-1`);
|
|
1389
|
+
await store.loaded();
|
|
1390
|
+
await renderCard(loader, article, "isolated");
|
|
1391
|
+
await waitFor("[data-test-pet-atom]", { timeout: 1e4 });
|
|
1392
|
+
assert.dom("[data-test-pet-atom]").exists("inline card reference with relative path renders the referenced card");
|
|
1393
|
+
assert.dom("[data-test-pet-atom]").hasText("Mango", "inline atom shows the correct card");
|
|
1394
|
+
assert.dom("[data-test-pet-embedded]").exists("block card reference with relative path renders the referenced card");
|
|
1395
|
+
assert.dom("[data-test-pet-embedded]").hasText("Mango", "block embedded shows the correct card");
|
|
1396
|
+
assert.dom("[data-test-markdown-bfm-unresolved-inline]").doesNotExist("no unresolved Pill remains after card resolves (inline)");
|
|
1397
|
+
assert.dom("[data-test-markdown-bfm-unresolved-block]").doesNotExist("no unresolved Pill remains after card resolves (block)");
|
|
1398
|
+
});
|
|
1399
|
+
(0, import_qunit.test)("edit template renders a docked toolbar with the view selector", async function(assert) {
|
|
1400
|
+
class TestCard extends CardDef {
|
|
1401
|
+
static {
|
|
1402
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1403
|
+
return contains(RichMarkdownField);
|
|
1404
|
+
});
|
|
1405
|
+
}
|
|
1406
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1407
|
+
static edit = class Edit extends Component {
|
|
1408
|
+
static {
|
|
1409
|
+
setComponentTemplate(templateFactory({
|
|
1410
|
+
"id": "nKOoxfii",
|
|
1411
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1412
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1413
|
+
"isStrictMode": true
|
|
1414
|
+
}), this);
|
|
1415
|
+
}
|
|
1416
|
+
};
|
|
1417
|
+
}
|
|
1418
|
+
await setupIntegrationTestRealm({
|
|
1419
|
+
mockMatrixUtils,
|
|
1420
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1421
|
+
});
|
|
1422
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Hello world" }) });
|
|
1423
|
+
await renderCard(loader, card, "edit");
|
|
1424
|
+
await waitFor("[data-test-markdown-toolbar]");
|
|
1425
|
+
assert.dom("[data-test-markdown-toolbar]").exists("docked toolbar is rendered");
|
|
1426
|
+
assert.dom("[data-test-markdown-mode-select]").exists("view selector is rendered in the toolbar");
|
|
1427
|
+
await click("[data-test-markdown-mode-select]");
|
|
1428
|
+
assert.dom("[data-test-markdown-mode-option=\"compose\"]").exists("Compose option");
|
|
1429
|
+
assert.dom("[data-test-markdown-mode-option=\"source\"]").exists("Source option");
|
|
1430
|
+
assert.dom("[data-test-markdown-mode-option=\"preview\"]").exists("Preview option");
|
|
1431
|
+
});
|
|
1432
|
+
(0, import_qunit.test)("default mode shows editor, not preview", async function(assert) {
|
|
1433
|
+
class TestCard extends CardDef {
|
|
1434
|
+
static {
|
|
1435
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1436
|
+
return contains(RichMarkdownField);
|
|
1437
|
+
});
|
|
1438
|
+
}
|
|
1439
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1440
|
+
static edit = class Edit extends Component {
|
|
1441
|
+
static {
|
|
1442
|
+
setComponentTemplate(templateFactory({
|
|
1443
|
+
"id": "nKOoxfii",
|
|
1444
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1445
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1446
|
+
"isStrictMode": true
|
|
1447
|
+
}), this);
|
|
1448
|
+
}
|
|
1449
|
+
};
|
|
1450
|
+
}
|
|
1451
|
+
await setupIntegrationTestRealm({
|
|
1452
|
+
mockMatrixUtils,
|
|
1453
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1454
|
+
});
|
|
1455
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Hello world" }) });
|
|
1456
|
+
await renderCard(loader, card, "edit");
|
|
1457
|
+
assert.dom("[data-test-markdown-preview]").doesNotExist("preview is not shown by default");
|
|
1458
|
+
let editorOrLoading = document.querySelector("[data-test-codemirror-editor]") ?? document.querySelector("[data-test-codemirror-loading]");
|
|
1459
|
+
assert.ok(editorOrLoading, "editor is shown by default (edit mode)");
|
|
1460
|
+
});
|
|
1461
|
+
(0, import_qunit.test)("formatting controls start disabled while the view selector stays enabled", async function(assert) {
|
|
1462
|
+
class TestCard extends CardDef {
|
|
1463
|
+
static {
|
|
1464
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1465
|
+
return contains(RichMarkdownField);
|
|
1466
|
+
});
|
|
1467
|
+
}
|
|
1468
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1469
|
+
static edit = class Edit extends Component {
|
|
1470
|
+
static {
|
|
1471
|
+
setComponentTemplate(templateFactory({
|
|
1472
|
+
"id": "nKOoxfii",
|
|
1473
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1474
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1475
|
+
"isStrictMode": true
|
|
1476
|
+
}), this);
|
|
1477
|
+
}
|
|
1478
|
+
};
|
|
1479
|
+
}
|
|
1480
|
+
await setupIntegrationTestRealm({
|
|
1481
|
+
mockMatrixUtils,
|
|
1482
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1483
|
+
});
|
|
1484
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Hello world" }) });
|
|
1485
|
+
await renderCard(loader, card, "edit");
|
|
1486
|
+
await waitFor("[data-test-toolbar=\"bold\"]");
|
|
1487
|
+
assert.dom("[data-test-toolbar=\"bold\"]").isDisabled("Bold is disabled before the editor gains focus");
|
|
1488
|
+
for (let testId of [
|
|
1489
|
+
"italic",
|
|
1490
|
+
"strikethrough",
|
|
1491
|
+
"code",
|
|
1492
|
+
"link"
|
|
1493
|
+
]) assert.dom(`[data-test-toolbar="${testId}"]`).isDisabled(`${testId} is disabled before the editor gains focus`);
|
|
1494
|
+
assert.dom("[data-test-toolbar=\"blockquote\"]").isDisabled("all formatting controls start disabled");
|
|
1495
|
+
await click("[data-test-markdown-mode-select]");
|
|
1496
|
+
assert.dom("[data-test-markdown-mode-option=\"source\"]").exists("view selector opens without editor focus");
|
|
1497
|
+
await click("[data-test-markdown-mode-option=\"compose\"]");
|
|
1498
|
+
});
|
|
1499
|
+
(0, import_qunit.test)("the Link toggle reads active when the caret sits inside a link", async function(assert) {
|
|
1500
|
+
class TestCard extends CardDef {
|
|
1501
|
+
static {
|
|
1502
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1503
|
+
return contains(RichMarkdownField);
|
|
1504
|
+
});
|
|
1505
|
+
}
|
|
1506
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1507
|
+
static edit = class Edit extends Component {
|
|
1508
|
+
static {
|
|
1509
|
+
setComponentTemplate(templateFactory({
|
|
1510
|
+
"id": "nKOoxfii",
|
|
1511
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1512
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1513
|
+
"isStrictMode": true
|
|
1514
|
+
}), this);
|
|
1515
|
+
}
|
|
1516
|
+
};
|
|
1517
|
+
}
|
|
1518
|
+
await setupIntegrationTestRealm({
|
|
1519
|
+
mockMatrixUtils,
|
|
1520
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1521
|
+
});
|
|
1522
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Click [here](https://example.com) now" }) });
|
|
1523
|
+
await renderCard(loader, card, "edit");
|
|
1524
|
+
await waitFor("[data-test-toolbar=\"link\"]");
|
|
1525
|
+
let editorEl = document.querySelector(".cm-editor");
|
|
1526
|
+
assert.ok(editorEl, "editor is rendered");
|
|
1527
|
+
let view = codemirrorContext.EditorView.findFromDOM(editorEl);
|
|
1528
|
+
assert.ok(view, "live EditorView is reachable from the DOM");
|
|
1529
|
+
view.dispatch({ selection: {
|
|
1530
|
+
anchor: 9,
|
|
1531
|
+
head: 9
|
|
1532
|
+
} });
|
|
1533
|
+
await settled();
|
|
1534
|
+
assert.dom("[data-test-toolbar=\"link\"]").hasAttribute("aria-pressed", "true", "Link toggle reads active at a caret inside a link");
|
|
1535
|
+
assert.dom("[data-test-toolbar=\"bold\"]").hasAttribute("aria-pressed", "false", "wrap toggles stay inactive at a caret");
|
|
1536
|
+
view.dispatch({ selection: {
|
|
1537
|
+
anchor: 2,
|
|
1538
|
+
head: 2
|
|
1539
|
+
} });
|
|
1540
|
+
await settled();
|
|
1541
|
+
assert.dom("[data-test-toolbar=\"link\"]").hasAttribute("aria-pressed", "false", "Link toggle deactivates once the caret leaves the link");
|
|
1542
|
+
});
|
|
1543
|
+
(0, import_qunit.test)("toolbar items are wrapped in tooltips whose hint is suppressed while the control is disabled", async function(assert) {
|
|
1544
|
+
class TestCard extends CardDef {
|
|
1545
|
+
static {
|
|
1546
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1547
|
+
return contains(RichMarkdownField);
|
|
1548
|
+
});
|
|
1549
|
+
}
|
|
1550
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1551
|
+
static edit = class Edit extends Component {
|
|
1552
|
+
static {
|
|
1553
|
+
setComponentTemplate(templateFactory({
|
|
1554
|
+
"id": "nKOoxfii",
|
|
1555
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1556
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1557
|
+
"isStrictMode": true
|
|
1558
|
+
}), this);
|
|
1559
|
+
}
|
|
1560
|
+
};
|
|
1561
|
+
}
|
|
1562
|
+
await setupIntegrationTestRealm({
|
|
1563
|
+
mockMatrixUtils,
|
|
1564
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1565
|
+
});
|
|
1566
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Hello world" }) });
|
|
1567
|
+
await renderCard(loader, card, "edit");
|
|
1568
|
+
await waitFor("[data-test-toolbar=\"bold\"]");
|
|
1569
|
+
assert.dom("[data-test-toolbar-tooltip=\"bold\"]").exists("Bold is wrapped in a tooltip trigger");
|
|
1570
|
+
assert.dom("[data-test-toolbar-tooltip=\"strikethrough\"]").exists("Strikethrough is wrapped in a tooltip trigger");
|
|
1571
|
+
assert.dom("[data-test-toolbar=\"bold\"]").isDisabled();
|
|
1572
|
+
await triggerEvent("[data-test-toolbar-tooltip=\"bold\"]", "mouseenter");
|
|
1573
|
+
assert.dom("[data-test-tooltip-content]").doesNotExist("no tooltip is shown while the control is disabled");
|
|
1574
|
+
await triggerEvent("[data-test-toolbar-tooltip=\"bold\"]", "mouseleave");
|
|
1575
|
+
});
|
|
1576
|
+
(0, import_qunit.test)("selecting Preview shows rendered markdown and hides editor", async function(assert) {
|
|
1577
|
+
class TestCard extends CardDef {
|
|
1578
|
+
static {
|
|
1579
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1580
|
+
return contains(RichMarkdownField);
|
|
1581
|
+
});
|
|
1582
|
+
}
|
|
1583
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1584
|
+
static edit = class Edit extends Component {
|
|
1585
|
+
static {
|
|
1586
|
+
setComponentTemplate(templateFactory({
|
|
1587
|
+
"id": "nKOoxfii",
|
|
1588
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1589
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1590
|
+
"isStrictMode": true
|
|
1591
|
+
}), this);
|
|
1592
|
+
}
|
|
1593
|
+
};
|
|
1594
|
+
}
|
|
1595
|
+
await setupIntegrationTestRealm({
|
|
1596
|
+
mockMatrixUtils,
|
|
1597
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1598
|
+
});
|
|
1599
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "# Hello World\n\nSome **bold** text." }) });
|
|
1600
|
+
await renderCard(loader, card, "edit");
|
|
1601
|
+
await waitFor("[data-test-markdown-mode-select]");
|
|
1602
|
+
await click("[data-test-markdown-mode-select]");
|
|
1603
|
+
await click("[data-test-markdown-mode-option=\"preview\"]");
|
|
1604
|
+
assert.dom("[data-test-markdown-preview]").exists("markdown preview is rendered");
|
|
1605
|
+
assert.dom("[data-test-codemirror-editor]").doesNotExist("CodeMirror editor is not shown in preview mode");
|
|
1606
|
+
assert.dom("[data-test-markdown-preview] h1").hasText("Hello World", "heading is rendered as HTML");
|
|
1607
|
+
assert.dom("[data-test-markdown-preview] strong").hasText("bold", "bold text is rendered as HTML");
|
|
1608
|
+
assert.dom("[data-test-markdown-mode-select]").exists("view selector is still present in preview mode");
|
|
1609
|
+
});
|
|
1610
|
+
(0, import_qunit.test)("view selector works in preview mode to switch back to compose", async function(assert) {
|
|
1611
|
+
class TestCard extends CardDef {
|
|
1612
|
+
static {
|
|
1613
|
+
decorateFieldV2(this.prototype, "body", [field], function() {
|
|
1614
|
+
return contains(RichMarkdownField);
|
|
1615
|
+
});
|
|
1616
|
+
}
|
|
1617
|
+
#body = (initializeDeferredDecorator(this, "body"), void 0);
|
|
1618
|
+
static edit = class Edit extends Component {
|
|
1619
|
+
static {
|
|
1620
|
+
setComponentTemplate(templateFactory({
|
|
1621
|
+
"id": "nKOoxfii",
|
|
1622
|
+
"block": "[[[8,[30,1,[\"body\"]],null,null,null]],[\"@fields\"],[]]",
|
|
1623
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/rich-markdown-field-test.gts",
|
|
1624
|
+
"isStrictMode": true
|
|
1625
|
+
}), this);
|
|
1626
|
+
}
|
|
1627
|
+
};
|
|
1628
|
+
}
|
|
1629
|
+
await setupIntegrationTestRealm({
|
|
1630
|
+
mockMatrixUtils,
|
|
1631
|
+
contents: { "test-card.gts": { TestCard } }
|
|
1632
|
+
});
|
|
1633
|
+
let card = new TestCard({ body: new RichMarkdownField({ content: "Hello world" }) });
|
|
1634
|
+
await renderCard(loader, card, "edit");
|
|
1635
|
+
await waitFor("[data-test-markdown-mode-select]");
|
|
1636
|
+
await click("[data-test-markdown-mode-select]");
|
|
1637
|
+
await click("[data-test-markdown-mode-option=\"preview\"]");
|
|
1638
|
+
assert.dom("[data-test-markdown-preview]").exists("preview is shown");
|
|
1639
|
+
await click("[data-test-markdown-mode-select]");
|
|
1640
|
+
await click("[data-test-markdown-mode-option=\"compose\"]");
|
|
1641
|
+
assert.dom("[data-test-markdown-preview]").doesNotExist("preview is hidden after switching back");
|
|
1642
|
+
await waitFor("[data-test-markdown-toolbar]");
|
|
1643
|
+
let editorOrLoading = document.querySelector("[data-test-codemirror-editor]") ?? document.querySelector("[data-test-codemirror-loading]");
|
|
1644
|
+
assert.ok(editorOrLoading, "editor is restored after switching back to Compose");
|
|
1645
|
+
});
|
|
1646
|
+
});
|
|
1647
|
+
//#endregion
|