diff --git a/fragment.json b/fragment.json new file mode 100644 index 000000000..e0c402430 --- /dev/null +++ b/fragment.json @@ -0,0 +1,2916 @@ +{ + "path": "/content/dam/mas/sandbox/en_US/ilyas-test-compare-chart", + "title": "Ilyas Test Compare Chart", + "description": "Compare chart description", + "id": "9fcc906c-fc60-4652-a2c8-1af12c8fbed9", + "created": { + "at": "2026-03-23T13:14:07.444Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T19:55:14.166Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "fields": [ + { + "name": "label", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "navigationLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "queryLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "icon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "iconLight", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cards", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [ + "/content/dam/mas/sandbox/en_US/new-compare-card-4-9x1w", + "/content/dam/mas/sandbox/en_US/new-compare-card-3-gbqh", + "/content/dam/mas/sandbox/en_US/new-compare-card-2-t4gp", + "/content/dam/mas/sandbox/en_US/new-compare-card-1-dp3i" + ] + }, + { + "name": "collections", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "defaultchild", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "searchText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tagFiltersTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tagFilters", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "linksTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "link", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "linkText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "linkIcon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "compareChart", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/plain", + "values": [ + "
" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "
Save 50% for the first 3 months. Get Photoshop and 20+ apps. New subscribers only. See terms.
" + ] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/cces", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/cces", + "title": "Creative Cloud Individual Extra Storage", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Creative Cloud Individual Extra Storage", + "name": "cces", + "path": "/content/cq:tags/mas/product_code/cces", + "description": "" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + }, + { + "name": "new-compare-card-1-dp3i", + "fieldName": "compareChart", + "type": "content-fragment", + "title": "Creative Cloud Pro", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-1-dp3i", + "created": { + "at": "2026-03-23T16:01:48.763Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T20:16:09.713Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "2c91c10d-f869-4dbf-9f8c-723ff259b737", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Creative Cloud Pro compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["r_JXAnlFI7xD6FxWKl2ODvZriLYBoSL701Kd1hRyhe8"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": ["https://www.adobe.com/cc-shared/assets/img/product-icons/svg/creative-cloud.svg"] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Creative Cloud Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": [""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "
Save 50% for the first 3 months. Get Photoshop and 20+ apps. New subscribers only. See terms.
" + ] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/cces", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/cces", + "title": "Creative Cloud Individual Extra Storage", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Creative Cloud Individual Extra Storage", + "name": "cces", + "path": "/content/cq:tags/mas/product_code/cces", + "description": "" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + }, + { + "name": "new-compare-card-2-t4gp", + "fieldName": "cards", + "type": "content-fragment", + "title": "Photography", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-2-t4gp", + "created": { + "at": "2026-03-23T16:08:30.877Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T20:16:06.928Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "22515abd-bb64-4756-a2f8-1f8d0ba0ff83", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Photography compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["MzCpF9nUi8rEzyW-9slEUwtRenS69PRW5fp84a93uK4"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": [ + "https://www.adobe.com/cc-shared/assets/img/product-icons/svg/photoshop.svg", + "https://www.adobe.com/cc-shared/assets/img/product-icons/svg/lightroom.svg" + ] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Photoshop Product Icon", "Lightroom Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": ["", ""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Default"] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photography"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photography"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Photoshop on desktop, web, and mobile, plus Lightroom.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/ples", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/ples", + "title": "Photoshop Lightrm Bundle (1TB)", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Photoshop Lightrm Bundle (1TB)", + "name": "ples", + "path": "/content/cq:tags/mas/product_code/ples", + "description": "" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + }, + { + "name": "new-compare-card-2-t4gp", + "fieldName": "compareChart", + "type": "content-fragment", + "title": "Photography", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-2-t4gp", + "created": { + "at": "2026-03-23T16:08:30.877Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T20:16:06.928Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "22515abd-bb64-4756-a2f8-1f8d0ba0ff83", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Photography compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["MzCpF9nUi8rEzyW-9slEUwtRenS69PRW5fp84a93uK4"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": [ + "https://www.adobe.com/cc-shared/assets/img/product-icons/svg/photoshop.svg", + "https://www.adobe.com/cc-shared/assets/img/product-icons/svg/lightroom.svg" + ] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Photoshop Product Icon", "Lightroom Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": ["", ""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Default"] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photography"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photography"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Photoshop on desktop, web, and mobile, plus Lightroom.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/ples", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/ples", + "title": "Photoshop Lightrm Bundle (1TB)", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Photoshop Lightrm Bundle (1TB)", + "name": "ples", + "path": "/content/cq:tags/mas/product_code/ples", + "description": "" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + }, + { + "name": "new-compare-card-3-gbqh", + "fieldName": "cards", + "type": "content-fragment", + "title": "Firefly Pro", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-3-gbqh", + "created": { + "at": "2026-03-23T16:24:39.216Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T19:57:15.974Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "8a5cf2fe-67e4-47ab-8864-38c0fe58ede7", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Firefly Pro compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["msg4m1782IVpeTz8mHd_P_0GG3OSG7XS932oW-7EGuM"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": ["https://www.adobe.com/cc-shared/assets/img/product-icons/svg/firefly.svg"] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Firefly Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": [""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Firefly Pro"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Firefly Pro"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Get 4,000 credits for creative AI, plus Photoshop on web and mobile.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/ffpo", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [] + }, + { + "name": "new-compare-card-3-gbqh", + "fieldName": "compareChart", + "type": "content-fragment", + "title": "Firefly Pro", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-3-gbqh", + "created": { + "at": "2026-03-23T16:24:39.216Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T19:57:15.974Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "8a5cf2fe-67e4-47ab-8864-38c0fe58ede7", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Firefly Pro compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["msg4m1782IVpeTz8mHd_P_0GG3OSG7XS932oW-7EGuM"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": ["https://www.adobe.com/cc-shared/assets/img/product-icons/svg/firefly.svg"] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Firefly Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": [""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Firefly Pro"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Firefly Pro"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Get 4,000 credits for creative AI, plus Photoshop on web and mobile.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/ffpo", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [] + }, + { + "name": "new-compare-card-4-9x1w", + "fieldName": "cards", + "type": "content-fragment", + "title": "Photoshop", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-4-9x1w", + "created": { + "at": "2026-03-23T16:34:12.397Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T19:57:02.3Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "4cd11201-c0fb-4fce-83f9-8aa09d2c6dc0", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Photoshop compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["A1xn6EL4pK93bWjM8flffQpfEL-bnvtoQKQAvkx574M"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": ["https://www.adobe.com/cc-shared/assets/img/product-icons/svg/photoshop.svg"] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Photoshop Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": [""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Default"] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photoshop"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photoshop"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Photoshop on desktop, web, and mobile, plus Adobe Express Premium plan.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/phsp", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/phsp", + "title": "Photoshop", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Photoshop", + "name": "phsp", + "path": "/content/cq:tags/mas/product_code/phsp" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + }, + { + "name": "new-compare-card-4-9x1w", + "fieldName": "compareChart", + "type": "content-fragment", + "title": "Photoshop", + "path": "/content/dam/mas/sandbox/en_US/new-compare-card-4-9x1w", + "created": { + "at": "2026-03-23T16:34:12.397Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "modified": { + "at": "2026-03-24T19:57:02.3Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "published": { + "at": "2026-03-24T21:47:24.339Z", + "by": "ilyas@adobe.com", + "fullName": "Ilyas Stephane Turkben" + }, + "status": "PUBLISHED", + "previewReplicationStatus": "NEVER_PUBLISHED", + "id": "4cd11201-c0fb-4fce-83f9-8aa09d2c6dc0", + "references": [], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NhcmQ", + "path": "/conf/mas/settings/dam/cfm/models/card", + "name": "Card", + "title": "Card", + "description": "universal m@s card model" + }, + "description": "Photoshop compare plan card", + "fields": [ + { + "name": "variant", + "type": "text", + "multiple": false, + "locked": false, + "values": ["mini-compare-chart"] + }, + { + "name": "osi", + "type": "text", + "multiple": false, + "locked": false, + "values": ["A1xn6EL4pK93bWjM8flffQpfEL-bnvtoQKQAvkx574M"] + }, + { + "name": "size", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "mnemonicIcon", + "type": "text", + "multiple": true, + "locked": false, + "values": ["https://www.adobe.com/cc-shared/assets/img/product-icons/svg/photoshop.svg"] + }, + { + "name": "mnemonicAlt", + "type": "text", + "multiple": true, + "locked": false, + "values": ["Photoshop Product Icon"] + }, + { + "name": "mnemonicLink", + "type": "text", + "multiple": true, + "locked": false, + "values": [""] + }, + { + "name": "badge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "trialBadge", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "backgroundColor", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "borderColor", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Default"] + }, + { + "name": "backgroundImage", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "backgroundImageAltText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "cardTitle", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photoshop"] + }, + { + "name": "cardName", + "type": "text", + "multiple": false, + "locked": false, + "values": ["Photoshop"] + }, + { + "name": "cardTitleLink", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "subtitle", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "prices", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "shortDescription", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "promoText", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "promoCode", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "description", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": ["
Photoshop on desktop, web, and mobile, plus Adobe Express Premium plan.
"] + }, + { + "name": "callout", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [] + }, + { + "name": "showSecureLabel", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "showPlanType", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "quantitySelect", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addon", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "addonConfirmation", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "ctas", + "type": "long-text", + "multiple": false, + "locked": false, + "mimeType": "text/html", + "values": [ + "" + ] + }, + { + "name": "variations", + "type": "content-fragment", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "product", + "type": "content-reference", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "whatsIncluded", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "tags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [ + "mas:offer_type/base", + "mas:plan_type/abm", + "mas:customer_segment/individual", + "mas:product_code/phsp", + "mas:market_segments/com" + ] + }, + { + "name": "pznTags", + "type": "tag", + "multiple": true, + "locked": false, + "values": [] + }, + { + "name": "perUnitLabel", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "originalId", + "type": "text", + "multiple": false, + "locked": false, + "values": [] + }, + { + "name": "locReady", + "type": "boolean", + "multiple": false, + "locked": false, + "values": [] + } + ], + "variations": [], + "tags": [ + { + "id": "mas:offer_type/base", + "title": "Base", + "i18n": [], + "titlePath": "Merch at Scale : Offer type / Base", + "name": "base", + "path": "/content/cq:tags/mas/offer_type/base" + }, + { + "id": "mas:product_code/phsp", + "title": "Photoshop", + "i18n": [], + "titlePath": "Merch at Scale : Product code / Photoshop", + "name": "phsp", + "path": "/content/cq:tags/mas/product_code/phsp" + }, + { + "id": "mas:market_segments/com", + "title": "COM", + "i18n": [], + "titlePath": "Merch at Scale : Market segments / COM", + "name": "com", + "path": "/content/cq:tags/mas/market_segments/com", + "description": "" + }, + { + "id": "mas:plan_type/abm", + "title": "ABM", + "i18n": [], + "titlePath": "Merch at Scale : Plan type / ABM", + "name": "abm", + "path": "/content/cq:tags/mas/plan_type/abm", + "description": "" + }, + { + "id": "mas:customer_segment/individual", + "title": "Individual", + "i18n": [], + "titlePath": "Merch at Scale : Customer segment / Individual", + "name": "individual", + "path": "/content/cq:tags/mas/customer_segment/individual" + } + ] + } + ], + "model": { + "id": "L2NvbmYvbWFzL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL2NvbGxlY3Rpb24", + "path": "/conf/mas/settings/dam/cfm/models/collection", + "name": "Collection", + "title": "Collection", + "tagIds": ["properties:fullyhydrated"] + }, + "validationStatus": [ + { + "property": "fields.label.values", + "message": "size must be between 1 and 1" + } + ], + "fieldTags": [] +} diff --git a/io/www/test/fragment/utils/odinSchemaTransform.test.js b/io/www/test/fragment/utils/odinSchemaTransform.test.js new file mode 100644 index 000000000..b30499144 --- /dev/null +++ b/io/www/test/fragment/utils/odinSchemaTransform.test.js @@ -0,0 +1,217 @@ +import { expect } from 'chai'; +import { transformBody, CF_REFERENCE_FIELDS } from '../../../src/fragment/utils/odinSchemaTransform.js'; + +describe('odinSchemaTransform', function () { + describe('CF_REFERENCE_FIELDS', function () { + it('should include compare-chart field names', function () { + expect(CF_REFERENCE_FIELDS).to.include('fragment'); + expect(CF_REFERENCE_FIELDS).to.include('fragments'); + expect(CF_REFERENCE_FIELDS).to.include('sections'); + expect(CF_REFERENCE_FIELDS).to.include('rows'); + expect(CF_REFERENCE_FIELDS).to.include('rowValues'); + expect(CF_REFERENCE_FIELDS).to.include('values'); + }); + + it('should still include original field names', function () { + expect(CF_REFERENCE_FIELDS).to.include('cards'); + expect(CF_REFERENCE_FIELDS).to.include('collections'); + expect(CF_REFERENCE_FIELDS).to.include('entries'); + }); + }); + + describe('transformBody with compare-chart fields', function () { + it('should transform fragments reference field from paths to IDs', function () { + const body = { + fields: [ + { name: 'fragments', multiple: true, values: ['/content/dam/mas/sandbox/en_US/col-frag'] }, + { name: 'badge', multiple: false, values: ['Best Offer'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/col-frag', + id: 'col-frag-id', + name: 'col-frag', + title: 'Column Fragment', + fields: [ + { name: 'cardTitle', multiple: false, values: ['Acrobat'] }, + ], + }, + ], + }; + + const result = transformBody(body); + expect(result.fields.fragments).to.deep.equal(['col-frag-id']); + expect(result.fields.badge).to.equal('Best Offer'); + }); + + it('should transform sections, rows, and values reference fields', function () { + const body = { + fields: [ + { name: 'sections', multiple: true, values: ['/content/dam/mas/sandbox/en_US/section-1'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/section-1', + id: 'section-1-id', + name: 'section-1', + title: 'Section 1', + fields: [ + { name: 'section-title', multiple: false, values: ['Create PDFs'] }, + { name: 'rows', multiple: true, values: ['/content/dam/mas/sandbox/en_US/row-1'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/row-1', + id: 'row-1-id', + name: 'row-1', + title: 'Row 1', + fields: [ + { name: 'row-title', multiple: false, values: ['Combine files'], mimeType: 'text/html' }, + { name: 'values', multiple: true, values: ['/content/dam/mas/sandbox/en_US/value-1'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/value-1', + id: 'value-1-id', + name: 'value-1', + title: 'Value 1', + fields: [ + { name: 'type', multiple: false, values: ['boolean'] }, + { name: 'booleanValue', multiple: false, values: [true] }, + ], + }, + ], + }, + ], + }, + ], + }; + + const result = transformBody(body); + + // Top-level sections resolved to IDs + expect(result.fields.sections).to.deep.equal(['section-1-id']); + + // Section reference exists with rows resolved + const sectionRef = result.references['section-1-id']; + expect(sectionRef).to.exist; + expect(sectionRef.value.fields.rows).to.deep.equal(['row-1-id']); + + // Row reference exists with values resolved + const rowRef = result.references['row-1-id']; + expect(rowRef).to.exist; + expect(rowRef.value.fields.values).to.deep.equal(['value-1-id']); + expect(rowRef.value.fields['row-title']).to.deep.equal({ value: 'Combine files', mimeType: 'text/html' }); + + // Value reference exists + const valueRef = result.references['value-1-id']; + expect(valueRef).to.exist; + expect(valueRef.value.fields.type).to.equal('boolean'); + expect(valueRef.value.fields.booleanValue).to.equal(true); + }); + + it('should build referencesTree with new field names', function () { + const body = { + fields: [ + { name: 'sections', multiple: true, values: ['/content/dam/mas/sandbox/en_US/sec'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/sec', + id: 'sec-id', + name: 'sec', + title: 'Section', + fields: [ + { name: 'rows', multiple: true, values: ['/content/dam/mas/sandbox/en_US/r'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/r', + id: 'row-id', + name: 'r', + title: 'Row', + fields: [ + { name: 'values', multiple: true, values: ['/content/dam/mas/sandbox/en_US/v'] }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/v', + id: 'val-id', + name: 'v', + title: 'Value', + fields: [ + { name: 'type', multiple: false, values: ['boolean'] }, + ], + }, + ], + }, + ], + }, + ], + }; + + const result = transformBody(body); + + // Verify referencesTree structure + expect(result.referencesTree).to.have.length(1); + + const sectionNode = result.referencesTree[0]; + expect(sectionNode.fieldName).to.equal('sections'); + expect(sectionNode.identifier).to.equal('sec-id'); + + const rowNode = sectionNode.referencesTree[0]; + expect(rowNode.fieldName).to.equal('rows'); + expect(rowNode.identifier).to.equal('row-id'); + + const valueNode = rowNode.referencesTree[0]; + expect(valueNode.fieldName).to.equal('values'); + expect(valueNode.identifier).to.equal('val-id'); + }); + + it('should handle fragments field with multiple references', function () { + const body = { + fields: [ + { + name: 'fragments', + multiple: true, + values: [ + '/content/dam/mas/sandbox/en_US/frag-a', + '/content/dam/mas/sandbox/en_US/frag-b', + ], + }, + ], + references: [ + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/frag-a', + id: 'frag-a-id', + name: 'frag-a', + title: 'Fragment A', + fields: [{ name: 'badge', multiple: false, values: ['A'] }], + }, + { + type: 'content-fragment', + path: '/content/dam/mas/sandbox/en_US/frag-b', + id: 'frag-b-id', + name: 'frag-b', + title: 'Fragment B', + fields: [{ name: 'badge', multiple: false, values: ['B'] }], + }, + ], + }; + + const result = transformBody(body); + expect(result.fields.fragments).to.deep.equal(['frag-a-id', 'frag-b-id']); + expect(result.referencesTree).to.have.length(2); + expect(result.referencesTree[0].identifier).to.equal('frag-a-id'); + expect(result.referencesTree[1].identifier).to.equal('frag-b-id'); + }); + }); +}); diff --git a/studio/compare-chart.md b/studio/compare-chart.md new file mode 100644 index 000000000..7809b03bc --- /dev/null +++ b/studio/compare-chart.md @@ -0,0 +1,509 @@ +# Compare Chart Authoring PRD + +## Status + +- Baseline extracted from the historical compare-chart authoring flow implemented in commit `6c75e66a`. +- This document describes the old Studio authoring experience that needs to be preserved while the storage model changes. + +## Objective + +Port the old compare-chart authoring experience into [src/editors/compare-chart-editor.js](/Users/ilyas/git/mas/studio/src/editors/compare-chart-editor.js) without reintroducing the old `compare-*` fragment model architecture. + +The new implementation may store data differently, but authors should retain the same core editing capabilities and interaction model. + +## Users + +- Merch authors building comparison tables for a set of merch cards. +- Editors who need fast in-context editing of table structure, column card assignment, and feature values. + +## Goals + +- Preserve the dedicated compare-chart editor experience. +- Preserve the live compare-chart preview as the primary editing surface. +- Preserve in-context editing for columns, sections, rows, and cells. +- Preserve advanced column configuration, including card assignment and display field management. +- Preserve author feedback patterns: loading states, validation, and toast feedback. + +## Non-Goals + +- Reintroducing `compare-chart`, `compare-fragment`, `compare-section`, `compare-row`, or `compare-value` content fragment models. +- Defining the final HTML serialization shape for `compareChart`. +- Specifying `io/*` runtime behavior. + +## Product Principles + +- The preview is the editor, not just an output sample. +- Most edits should happen in context with minimal navigation. +- Column configuration is a deeper workflow and merits a focused modal. +- Card assignment must be scoped, validated, and previewable before the author leaves the editor. + +## Functional Requirements + +### 1. Dedicated Compare Chart Workspace + +The editor must render as a dedicated compare-chart workspace with: + +- A top toolbar/header labeled `Compare Chart`. +- Count summaries for total columns and total sections. +- Primary actions to add a column and add a section. +- A busy/loading indicator while structural mutations are in progress. +- A block configuration row for compare-chart-level settings. + +### 2. Compare-Chart-Level Configuration + +The editor must support top-level chart configuration: + +- Block picker with at least: + - `Comparison Table` + - `Table` +- Variant selection checkboxes when block type is `Table`. +- Supported legacy variants: + - `merch` + - `highlight` + - `sticky` + - `collapse` + - `m-heading-icon` + - `pricing-bottom` + - `header-left` + +### 3. Live Preview as Primary Editing Surface + +The editor must render a live compare-chart preview panel that authors interact with directly. + +The preview must: + +- Render columns and sections from editor state. +- Show selected column, section, row, and cell state. +- Support clicking: + - a column header + - a section header + - a row title + - an individual cell +- Emit add-row actions from the preview. +- Support inline section title changes. +- Support inline row title changes. + +### 4. Column Authoring + +Authors must be able to manage columns directly from the compare chart. + +Required capabilities: + +- Add a new column from the toolbar. +- Select a column from the preview. +- Open a contextual column popover. +- Edit the column badge from the popover. +- Open a deeper `Configure Column` modal from the popover. +- Delete a column. + +Column deletion must also update row/cell data so the deleted column’s positional values are removed from every row. + +### 5. Column Configuration Modal + +The column modal is a major part of the old workflow and must be preserved. + +#### 5.1 Display Fields + +Authors must be able to control which card fields appear in the column header. + +Required capabilities: + +- Show selectable display fields. +- Legacy field options: + - `mnemonicIcon` + - `cardTitle` + - `prices` + - `description` + - `ctas` +- Preserve grouped ordering behavior across field groups. +- Allow selecting and unselecting display fields. +- Allow drag-and-drop reordering for selected fields. +- Restrict drag-and-drop reordering to items within the same group. +- Preserve stable display order, including for unselected fields. + +#### 5.2 Badge + +Authors must be able to edit the column badge in the modal as well as the popover. + +#### 5.3 Card Assignment + +Authors must be able to assign or replace the card linked to a column. + +Required capabilities: + +- Show current card chip with: + - title + - ID + - open action + - change action +- Show an empty state when no card is assigned. +- Open a card picker panel from the modal. +- Close the picker without dismissing the modal. +- Search cards within the same surface and locale as the compare chart. +- Restrict search results to card fragments only. +- Debounce card search. +- Limit search results. +- Show recent cards when the query is empty. +- Persist recent cards per surface/locale. +- Allow manual fragment ID entry as an alternative to browse/search. + +#### 5.4 Card Validation Rules + +Card assignment must enforce the legacy validation rules: + +- Reject fragments outside the compare chart’s current surface/locale scope. +- Reject non-card fragments. +- Resolve card references by path and canonical ID when needed. + +#### 5.5 Card Change Compatibility + +When a card changes, the editor must check whether the currently selected display fields still exist on the new card. + +Required behavior: + +- Automatically remove incompatible display fields. +- Preserve compatible display fields. +- Inform the author that unavailable fields were removed. + +#### 5.6 Card Preview + +The column modal must contain a live card preview disclosure. + +Required capabilities: + +- Disclosure is open by default. +- Preview updates when the selected card changes. +- Preview shows loading state. +- Preview shows error state. +- Preview resolves by canonical card ID, even when the selected reference started from a stale path/ID pairing. + +#### 5.7 Open Card in Editor + +Authors must be able to open the selected card in Studio from the column modal. + +Required behavior: + +- Open the selected card in a new tab when allowed. +- Use the current Studio host. +- Navigate directly to the fragment editor route. +- Remove irrelevant query parameters. +- Fall back to same-tab navigation if opening a new tab is blocked. + +### 6. Section Authoring + +Authors must be able to manage sections. + +Required capabilities: + +- Add a section from the toolbar. +- Select a section from the preview. +- Edit section title from a contextual popover. +- Delete a section. + +### 7. Row Authoring + +Authors must be able to manage rows within sections. + +Required capabilities: + +- Add a row inside a section from the preview. +- Select a row from the preview. +- Edit row title from a contextual popover. +- Delete a row. + +When a row is added, the old flow created one cell value per existing column. The ported experience must preserve the user outcome: a newly added row immediately has editable values across all current columns. + +### 8. Cell Authoring + +Authors must be able to edit individual cells from the preview. + +Required capabilities: + +- Select a cell from the preview. +- Open a contextual cell popover anchored to that cell. +- Show column and row context in the popover. +- Choose cell value type: + - `No value` + - `Boolean` + - `Text` + +#### 8.1 Empty Values + +- Empty values render as a dash-like placeholder in the chart. +- Authors can switch an empty placeholder cell to boolean or text. +- If underlying value data is missing, the editor must create the missing cell data on first edit. + +#### 8.2 Boolean Values + +- Boolean values must be editable via checkbox/toggle behavior. +- `true` and `false` must be persisted distinctly. +- `false` must render as a cross-style negative mark in the preview. + +#### 8.3 Text Values + +- Text values must be editable inline through a text input. +- Switching from empty to text must show the text input immediately. + +### 9. Contextual Editing Model + +The old authoring flow used a layered editing model that must be preserved: + +- Preview interaction selects the target object. +- Lightweight edits happen in contextual popovers. +- Deeper column edits happen in a focused modal. + +Required behaviors: + +- Popovers must anchor to the clicked preview item. +- Popovers must reposition with scroll. +- Clicking outside a popover dismisses it. +- Clicking within the preview should not immediately dismiss the selection workflow. +- `Escape` closes the current popover or modal. + +### 10. Feedback and Responsiveness + +The editor must provide responsive author feedback. + +Required capabilities: + +- Busy/loading state during structural mutations. +- Toast feedback for: + - add success + - delete success + - assignment success + - validation failures + - compatibility cleanup info + - save failures +- Inline empty states and help text where appropriate. + +### 11. Data Hydration Requirements + +The old flow supported deep reference hydration and partial data recovery. The new implementation does not need the same storage model, but it does need equivalent resilience. + +Required outcomes: + +- Build the preview/editor state from persisted compare-chart data plus referenced cards. +- Recover from partially hydrated nested data without collapsing the editor. +- Lazily resolve missing data needed for editing and preview. +- Keep local editor state synchronized after edits without requiring a full page reload. + +## Authoring Flows + +### Flow A: Build a Chart Structure + +1. Author opens the compare-chart editor. +2. Author adds columns. +3. Author adds sections. +4. Author adds rows to sections. +5. Preview immediately reflects the current structure. + +### Flow B: Configure a Column + +1. Author clicks a column in the preview. +2. Author uses the popover for quick badge edits. +3. Author opens `Configure Column`. +4. Author picks display fields, adjusts order, edits badge, and assigns a card. +5. Author reviews the live card preview. +6. Author opens the card in Studio if deeper card edits are needed. + +### Flow C: Edit Feature Values + +1. Author clicks a cell in the preview. +2. Author chooses whether the value is empty, boolean, or text. +3. Author edits the value inline. +4. Preview reflects the change immediately. + +### Flow D: Maintain Cards Safely + +1. Author changes a column’s card. +2. Editor validates scope and model type. +3. Editor removes incompatible display fields if necessary. +4. Editor stores the new card in recents. +5. Preview updates to the new card. + +## Acceptance Criteria + +The port is complete when all of the following are true: + +- Authors can add/remove columns, sections, and rows. +- Authors can click the preview to edit columns, sections, rows, and cells in context. +- Column configuration supports card search, recents, manual ID entry, preview, and open-in-editor. +- Card assignment is restricted to in-scope card fragments. +- Column display fields are selectable and reorderable. +- Changing the assigned card automatically removes unsupported display fields. +- Section and row titles can be updated from the compare chart UI. +- Cells support empty, boolean, and text modes. +- Newly needed cell data can be created during editing. +- The compare-chart preview remains live throughout the editing session. + +## Porting Notes + +The port should preserve the author-facing experience above while replacing the old persistence layer with the new collection-backed model: + +- Card references now belong in `cards`. +- Compare feature/table content now belongs in `compareChart`. +- The old child-fragment CRUD model should be treated as implementation history, not as a requirement. + +The UX target is the old workflow. The storage target is the new model. + +## Clear Authoring Requirements + +With [src/editors/merch-card-editor.js](/Users/ilyas/git/mas/studio/src/editors/merch-card-editor.js) as the Studio baseline, the historical compare-chart capability set should be translated into the following authoring requirements. + +### A. Editor Shell + +- `compare-chart-editor` must behave like a first-class full-page fragment editor, not a special embedded tool. +- The form authoring surface must live in the editor column. +- The live compare preview must live in the preview column managed by `mas-fragment-editor`. +- The editor must use the same general structure as `merch-card-editor`: + - sectioned form layout + - Spectrum field groups and inputs + - immediate persistence on edit + - no separate save step + +### B. Primary Interaction Model + +- The primary editing path must be persistent form controls, not floating popovers. +- Preview selection may be used to focus or reveal the relevant authoring section, but authors must not depend on ephemeral popovers for routine work. +- Deeper workflows that genuinely need isolation may use a modal, but that should be the exception, not the base editing model. + +### C. Top-Level Compare Chart Settings + +- Authors must be able to edit top-level compare-chart settings from a dedicated section near the top of the form. +- Required settings: + - block type + - selected variants +- Variant editing should follow the same mental model as card template/variant editing in `merch-card-editor`: explicit, visible, and always available from the form. + +### D. Column Management + +- Authors must be able to manage the compared cards from a dedicated `Columns` section in the form. +- Required capabilities: + - list all columns in order + - add a column + - remove a column + - reorder columns + - select a column for detailed editing +- Each column must expose editable properties in a stable inspector-style UI: + - assigned card + - badge + - display fields + +### E. Card Assignment UX + +- Card assignment must remain a rich workflow, but it should feel like a Studio field editor rather than a temporary popover flow. +- Required capabilities: + - browse/search cards + - show recent cards + - allow manual fragment ID entry when needed + - validate surface/locale scope + - validate that the selected fragment is a card + - open the selected card in Studio + - show a live preview of the selected card state +- Card assignment UI may use a modal or expandable panel, but the selected card state must remain visible in the form after assignment. + +### F. Column Display Fields + +- Column display fields must be edited in a persistent form section, not hidden behind transient UI. +- Authors must be able to: + - toggle supported display fields on/off + - reorder selected fields + - understand unavailable fields after card changes +- When a card change makes some display fields invalid, the editor must: + - remove unsupported fields automatically + - preserve supported fields + - communicate the cleanup clearly + +### G. Section and Row Management + +- Authors must be able to manage sections and rows from the form in a hierarchical way. +- Required capabilities: + - add section + - edit section title + - remove section + - add row within a section + - edit row title + - remove row +- The UI should follow the same readability standard as `merch-card-editor`: + - stable section headers + - grouped controls + - minimal hidden state + +### H. Cell Editing + +- Cell editing must support the same data capabilities as the old flow: + - empty + - boolean + - text +- Cell editing should be exposed through a persistent editor pattern that fits the Studio form model. +- Acceptable patterns: + - selecting a row and editing its cell values in an inline matrix editor + - selecting a row and rendering per-column field groups below it + - selecting a preview cell and focusing the corresponding persistent form controls +- The author must always be able to see where the active cell value is being edited. + +### I. Preview Requirements + +- The live preview remains essential and must stay author-facing throughout editing. +- The preview must: + - reflect column, section, row, and cell changes immediately + - reflect card assignment changes immediately + - reflect block and variant changes immediately + - support selecting authoring targets +- The preview should be treated like the merch-card preview: + - always available beside the form + - not the only place where editing controls exist + +### J. Persistence Model + +- The editor must preserve the new storage contract: + - `cards` is the source of truth for card references and order + - `compareChart` stores the feature matrix content +- Authoring interactions must write through the same immediate-update model used by `merch-card-editor`. +- The editor must normalize persisted output so that reopening the editor yields the same structure and ordering the author saw before saving. + +### K. Empty and Loading States + +- The editor must provide clear empty states rather than dead-end screens. +- Minimum states: + - no cards assigned yet + - no sections yet + - no rows in a section yet + - preview unavailable + - loading/hydrating state +- Empty states must direct the author toward the next valid action. + +### L. Variation and Field-State Affordances + +- Where collection variation/inheritance is supported, compare-chart authoring should adopt the same affordances used by `merch-card-editor`. +- That includes, where applicable: + - inherited vs overridden field state styling + - restore-to-parent actions + - top-level field state awareness for compare-chart-owned fields + +### M. Spectrum-First Implementation + +- Adobe Spectrum Web Components must be the default UI layer. +- Preferred primitives: + - `sp-field-group` + - `sp-textfield` + - `sp-picker` + - `sp-checkbox` + - `sp-switch` + - `sp-action-button` + - `sp-button` + - `sp-action-group` + - `sp-divider` +- Custom UI should be reserved for the compare-specific matrix and preview interactions that Spectrum does not provide directly. + +## Summary Decision + +The old compare-chart feature set should be preserved, but its interaction model should be translated into the Studio editor pattern established by `merch-card-editor`. + +That means: + +- keep the live preview +- keep the rich compare-chart capabilities +- replace popover-heavy editing with persistent form-based authoring +- keep advanced column/card workflows where they add real value +- align persistence and visual structure with the rest of Studio diff --git a/studio/libs/swc.js b/studio/libs/swc.js index 07f3243a4..d33fc1f2b 100644 --- a/studio/libs/swc.js +++ b/studio/libs/swc.js @@ -1,8 +1,8 @@ -var tf=Object.create;var Hn=Object.defineProperty;var ef=Object.getOwnPropertyDescriptor;var rf=Object.getOwnPropertyNames;var of=Object.getPrototypeOf,sf=Object.prototype.hasOwnProperty;var w=(o,t)=>()=>(o&&(t=o(o=0)),t);var af=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Rn=(o,t)=>{for(var e in t)Hn(o,e,{get:t[e],enumerable:!0})},cf=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of rf(t))!sf.call(o,s)&&s!==e&&Hn(o,s,{get:()=>t[s],enumerable:!(r=ef(t,s))||r.enumerable});return o};var nf=(o,t,e)=>(e=o!=null?tf(of(o)):{},cf(t||!o||!o.__esModule?Hn(e,"default",{value:o,enumerable:!0}):e,o));var Ss,Es,qn,Id,Ao,Sd,y,jn,$s,Fn=w(()=>{Ss=globalThis,Es=Ss.ShadowRoot&&(Ss.ShadyCSS===void 0||Ss.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,qn=Symbol(),Id=new WeakMap,Ao=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==qn)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(Es&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Id.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Id.set(e,t))}return t}toString(){return this.cssText}},Sd=o=>new Ao(typeof o=="string"?o:o+"",void 0,qn),y=(o,...t)=>{let e=o.length===1?o[0]:t.reduce((r,s,i)=>r+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+o[i+1],o[0]);return new Ao(e,o,qn)},jn=(o,t)=>{if(Es)o.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=Ss.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,o.appendChild(r)}},$s=Es?o=>o:o=>o instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Sd(e)})(o):o});var lf,df,uf,mf,pf,hf,qe,Ed,bf,gf,Lo,Po,_s,$d,ye,Mo=w(()=>{Fn();Fn();({is:lf,defineProperty:df,getOwnPropertyDescriptor:uf,getOwnPropertyNames:mf,getOwnPropertySymbols:pf,getPrototypeOf:hf}=Object),qe=globalThis,Ed=qe.trustedTypes,bf=Ed?Ed.emptyScript:"",gf=qe.reactiveElementPolyfillSupport,Lo=(o,t)=>o,Po={toAttribute(o,t){switch(t){case Boolean:o=o?bf:null;break;case Object:case Array:o=o==null?o:JSON.stringify(o)}return o},fromAttribute(o,t){let e=o;switch(t){case Boolean:e=o!==null;break;case Number:e=o===null?null:Number(o);break;case Object:case Array:try{e=JSON.parse(o)}catch{e=null}}return e}},_s=(o,t)=>!lf(o,t),$d={attribute:!0,type:String,converter:Po,reflect:!1,hasChanged:_s};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),qe.litPropertyMetadata??(qe.litPropertyMetadata=new WeakMap);ye=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??(this.l=[])).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=$d){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&df(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){let{get:s,set:i}=uf(this.prototype,t)??{get(){return this[e]},set(a){this[e]=a}};return{get(){return s?.call(this)},set(a){let d=s?.call(this);i.call(this,a),this.requestUpdate(t,d,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??$d}static _$Ei(){if(this.hasOwnProperty(Lo("elementProperties")))return;let t=hf(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(Lo("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Lo("properties"))){let e=this.properties,r=[...mf(e),...pf(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift($s(s))}else t!==void 0&&e.push($s(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??(this._$EO=new Set)).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return jn(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$EC(t,e){let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let i=(r.converter?.toAttribute!==void 0?r.converter:Po).toAttribute(e,r.type);this._$Em=t,i==null?this.removeAttribute(s):this.setAttribute(s,i),this._$Em=null}}_$AK(t,e){let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let i=r.getPropertyOptions(s),a=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:Po;this._$Em=s,this[s]=a.fromAttribute(e,i.type),this._$Em=null}}requestUpdate(t,e,r){if(t!==void 0){if(r??(r=this.constructor.getPropertyOptions(t)),!(r.hasChanged??_s)(this[t],e))return;this.P(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,e,r){this._$AL.has(t)||this._$AL.set(t,e),r.reflect===!0&&this._$Em!==t&&(this._$Ej??(this._$Ej=new Set)).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[s,i]of this._$Ep)this[s]=i;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[s,i]of r)i.wrapped!==!0||this._$AL.has(s)||this[s]===void 0||this.P(s,this[s],i)}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EU()}catch(r){throw t=!1,this._$EU(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(t){}firstUpdated(t){}};ye.elementStyles=[],ye.shadowRootOptions={mode:"open"},ye[Lo("elementProperties")]=new Map,ye[Lo("finalized")]=new Map,gf?.({ReactiveElement:ye}),(qe.reactiveElementVersions??(qe.reactiveElementVersions=[])).push("2.0.4")});function Hd(o,t){if(!Zn(o)||!o.hasOwnProperty("raw"))throw Error("invalid template strings array");return _d!==void 0?_d.createHTML(t):t}function mr(o,t,e=o,r){if(t===tt)return t;let s=r!==void 0?e._$Co?.[r]:e._$Cl,i=Ho(t)?void 0:t._$litDirective$;return s?.constructor!==i&&(s?._$AO?.(!1),i===void 0?s=void 0:(s=new i(o),s._$AT(o,e,r)),r!==void 0?(e._$Co??(e._$Co=[]))[r]=s:e._$Cl=s),s!==void 0&&(t=mr(o,s._$AS(o,t.values),s,r)),t}var Oo,As,_d,Nn,we,Un,vf,ur,Do,Ho,Zn,Od,Vn,Bo,Ad,Ld,lr,Pd,Md,Dd,Kn,c,Wy,Yy,tt,_,Bd,dr,Rd,Ro,Ls,Vr,pr,Ps,Ms,Bs,Os,qd,ff,Nr,Mt=w(()=>{Oo=globalThis,As=Oo.trustedTypes,_d=As?As.createPolicy("lit-html",{createHTML:o=>o}):void 0,Nn="$lit$",we=`lit$${Math.random().toFixed(9).slice(2)}$`,Un="?"+we,vf=`<${Un}>`,ur=document,Do=()=>ur.createComment(""),Ho=o=>o===null||typeof o!="object"&&typeof o!="function",Zn=Array.isArray,Od=o=>Zn(o)||typeof o?.[Symbol.iterator]=="function",Vn=`[ -\f\r]`,Bo=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ad=/-->/g,Ld=/>/g,lr=RegExp(`>|${Vn}(?:([^\\s"'>=/]+)(${Vn}*=${Vn}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),Pd=/'/g,Md=/"/g,Dd=/^(?:script|style|textarea|title)$/i,Kn=o=>(t,...e)=>({_$litType$:o,strings:t,values:e}),c=Kn(1),Wy=Kn(2),Yy=Kn(3),tt=Symbol.for("lit-noChange"),_=Symbol.for("lit-nothing"),Bd=new WeakMap,dr=ur.createTreeWalker(ur,129);Rd=(o,t)=>{let e=o.length-1,r=[],s,i=t===2?"":t===3?"":"")),r]},Ro=class o{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let i=0,a=0,d=t.length-1,m=this.parts,[b,v]=Rd(t,e);if(this.el=o.createElement(b,r),dr.currentNode=this.el.content,e===2||e===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=dr.nextNode())!==null&&m.lengthRemove ${selectedCardLabel} from this compare chart? Its feature column will be deleted.
+| Feature | + ${this.cardItems.map( + (cardItem) => html`${getCardLabel(cardItem)} | `, + )} +
|---|---|
|
+ No feature rows yet.
+ |
+ ${this.cardItems.map(
+ () => html`
+
+
+ Add a row to start editing.
+
+ |
+ `,
+ )}
+
Select a card to edit its content.
+
+ Preview is available once mas-commerce-service, the selected preview renderer, and
+ aem-fragment are loaded in the current view.
+
Preview updates automatically as you edit the compare chart.
+${this.fragmentLoadErrorMessage}
+
${this.length}/${this.maxLength}
@@ -1770,7 +2002,12 @@ class RteField extends LitElement {
get #mnemonicButton() {
if (!this.mnemonic) return nothing;
return html`
- - Storage Temporary First row Second row Styling Floating toolbar Feature icon ${n.innerHTML} 2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=_}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,r=this,i,a){let n=this.strings,o=!1;if(n===void 0)t=Zt(this,t,r,0),o=!ni(t)||t!==this._$AH&&t!==et,o&&(this._$AH=t);else{let s=t,c,l;for(t=n[0],c=0;c ${i.innerHTML} ")?"div":"p",o=document.createElement(n);o.setAttribute("slot",a),o.setAttribute("placeholder",""),o.innerHTML=i,this.append(o)}}attachSidenav(r,a=!0){if(!r)return;a&&this.parentElement.prepend(r),this.sidenav=r,this.sidenav.variant=this.variant,this.sidenav.classList.add(this.variant),Rl[this.variant]&&this.sidenav.setAttribute("autoclose",""),this.initializeHeader(),this.dispatchEvent(new CustomEvent(ft));let i=S(this,Ft)?.getCollectionOptions(this.variant)?.onSidenavAttached;i&&i(this)}async hydrate(){if(this.hydrating)return!1;let r=this.querySelector("aem-fragment");if(!r)return;this.id=r.getAttribute("fragment"),this.hydrating=!0;let a;this.hydrationReady=new Promise(s=>{a=s});let i=this;function n(s){let c;return s.fields?.checkboxGroups?c=s.fields.checkboxGroups:s.fields?.tagFilters&&(c=[{title:s.fields?.tagFiltersTitle,label:"types",deeplink:"types",checkboxes:s.fields.tagFilters.map(l=>{let d=l.split("/").pop(),p=s.settings?.tagLabels?.[d]||d;return p=p.startsWith("coll-tag-filter")?d.charAt(0).toUpperCase()+d.slice(1):p,{name:d,label:p}})}]),{searchText:s.fields?.searchText,tagFilters:c,linksTitle:s.fields?.linksTitle,link:s.fields?.link,linkText:s.fields?.linkText,linkIcon:s.fields?.linkIcon}}function o(s,c){let l={cards:[],hierarchy:[],placeholders:s.placeholders,sidenavSettings:n(s)};function d(p,u){for(let h of u){if(h.fieldName==="variations")continue;if(h.fieldName==="cards"){if(l.cards.findIndex(v=>v.id===h.identifier)!==-1)continue;l.cards.push(s.references[h.identifier].value);continue}let m=s.references[h.identifier]?.value,g=h.referencesTree,x=c[h.identifier];if(x){let v=document.querySelector(`aem-fragment[fragment="${x}"]`)?.rawData;v?.fields&&(m=v,g=v.referencesTree,s.references={...s.references,...v.references})}if(!m?.fields)continue;let{fields:b}=m,E={label:b.label||"",icon:b.icon,iconLight:b.iconLight,queryLabel:b.queryLabel,cards:b.cards?b.cards.map(v=>c[v]||v):[],collections:[]};b.defaultchild&&(E.defaultchild=c[b.defaultchild]||b.defaultchild),p.push(E),d(E.collections,g)}}return d(l.hierarchy,s.referencesTree),l.hierarchy.length===0&&(i.filtered="all"),l}r.addEventListener(Rr,s=>{mt(this,wr,zo).call(this,"Error loading AEM fragment",s.detail),this.hydrating=!1,r.remove()}),r.addEventListener(Mr,async s=>{this.limit=27,this.data=o(s.detail,S(this,ke));let{cards:c,hierarchy:l}=this.data,d=l.length===0&&s.detail.fields?.defaultchild?S(this,ke)[s.detail.fields.defaultchild]||s.detail.fields.defaultchild:null;r.cache.add(...c);let p=(m,g)=>{for(let x of m)if(x.defaultchild===g||x.collections&&p(x.collections,g))return!0;return!1};for(let m of c){let v=function(N){for(let M of N){let z=M.cards.indexOf(x);if(z===-1)continue;let $=M.queryLabel??M?.label?.toLowerCase()??"";g.filters[$]={order:z+1,size:m.fields.size},v(M.collections)}},g=document.createElement("merch-card"),x=S(this,ke)[m.id]||m.id;g.setAttribute("consonant",""),g.setAttribute("style","");let b=m.fields.tags?.filter(N=>N.startsWith("mas:types/")).map(N=>N.split("/")[1]).join(",");b&&g.setAttribute("types",b),Wt(m.fields.variant)?.supportsDefaultChild&&(d?x===d:p(l,x))&&g.setAttribute("data-default-card","true"),v(l);let A=document.createElement("aem-fragment");A.setAttribute("fragment",x),g.append(A),Object.keys(g.filters).length===0&&(g.filters={all:{order:c.indexOf(m)+1,size:m.fields.size}}),this.append(g)}let u="",h=ln(c[0]?.fields?.variant);this.variant=h,h==="plans"&&c.length===3&&!c.some(m=>m.fields?.size?.includes("wide"))?u="ThreeColumns":(h==="segment"||h==="product")&&(c.length===2||c.length===3)?u=c.length===2?"TwoColumns":"ThreeColumns":(h==="mini-compare-chart"||h==="mini-compare-chart-mweb")&&c.length<=2&&(u=c.length===1?"":"TwoColumns"),h&&this.classList.add("merch-card-collection",h,...Ml[`${h}${u}`]||[]),this.displayResult=!0,this.hydrating=!1,r.remove(),a(!0)}),await this.hydrationReady}get footer(){if(!this.filtered)return Ae`',
+ ],
+ },
+ {
+ name: 'label',
+ type: 'text',
+ multiple: false,
+ values: ['Compare'],
+ },
+ ],
+ references: [
+ createCardReference('a', 'Card A'),
+ createCardReference('a', 'Card A duplicate'),
+ createCardReference('b', 'Card B'),
+ ],
+});
+
+describe('recreate-compare-chart-from-json', () => {
+ it('dedupes references by path', () => {
+ const result = dedupeReferencesByPath([
+ createCardReference('a', 'Card A'),
+ createCardReference('a', 'Card A duplicate'),
+ createCardReference('b', 'Card B'),
+ ]);
+
+ expect(result).to.have.length(2);
+ expect(result.map((reference) => reference.path)).to.deep.equal([
+ '/content/dam/mas/sandbox/en_US/card-a',
+ '/content/dam/mas/sandbox/en_US/card-b',
+ ]);
+ });
+
+ it('orders card fragments by the collection cards field', () => {
+ const result = getOrderedCardFragments(createCollectionFragment());
+ expect(result.map((reference) => reference.path)).to.deep.equal([
+ '/content/dam/mas/sandbox/en_US/card-b',
+ '/content/dam/mas/sandbox/en_US/card-a',
+ ]);
+ });
+
+ it('rewrites compareChart card paths', () => {
+ const rewritten = rewriteCompareChartCardPaths(
+ createCollectionFragment().fields[1].values[0],
+ new Map([
+ [
+ '/content/dam/mas/sandbox/en_US/card-b',
+ '/content/dam/mas/prod/en_US/card-b',
+ ],
+ [
+ '/content/dam/mas/sandbox/en_US/card-a',
+ '/content/dam/mas/prod/en_US/card-a',
+ ],
+ ]),
+ );
+
+ expect(rewritten).to.include('/content/dam/mas/prod/en_US/card-b');
+ expect(rewritten).to.include('/content/dam/mas/prod/en_US/card-a');
+ expect(rewritten).to.not.include('/content/dam/mas/sandbox/en_US/card-b');
+ });
+
+ it('builds the recreation plan from the collection payload', () => {
+ const result = buildRecreationPlan(createCollectionFragment());
+
+ expect(result.cardTargetPaths).to.deep.equal([
+ '/content/dam/mas/sandbox/en_US/card-b',
+ '/content/dam/mas/sandbox/en_US/card-a',
+ ]);
+ expect(result.collectionTargetPath).to.equal(
+ '/content/dam/mas/sandbox/en_US/test-compare-chart',
+ );
+ expect(result.collectionShellPayload.fields.map((field) => field.name)).to.deep.equal([
+ 'label',
+ ]);
+ });
+
+ it('builds a collection save payload with rewritten card paths', () => {
+ const payload = buildCollectionSavePayload(
+ { id: 'new-collection-id' },
+ createCollectionFragment(),
+ new Map([
+ [
+ '/content/dam/mas/sandbox/en_US/card-b',
+ '/content/dam/mas/prod/en_US/card-b',
+ ],
+ [
+ '/content/dam/mas/sandbox/en_US/card-a',
+ '/content/dam/mas/prod/en_US/card-a',
+ ],
+ ]),
+ );
+
+ expect(payload.id).to.equal('new-collection-id');
+ expect(payload.fields.find((field) => field.name === 'cards').values).to.deep.equal([
+ '/content/dam/mas/prod/en_US/card-b',
+ '/content/dam/mas/prod/en_US/card-a',
+ ]);
+ expect(
+ payload.fields.find((field) => field.name === 'compareChart').values[0],
+ ).to.include('/content/dam/mas/prod/en_US/card-b');
+ });
+});
diff --git a/studio/test/router.test.js b/studio/test/router.test.js
index febef37d6..291d970d9 100644
--- a/studio/test/router.test.js
+++ b/studio/test/router.test.js
@@ -521,6 +521,28 @@ describe('Router', () => {
await router.navigateToFragmentEditor('test-id', { locale: 'fr_FR' });
expect(Store.search.get().region).to.equal('fr_FR');
});
+
+ it('routes collection fragments through the full-page fragment editor', async () => {
+ const collectionStore = new FragmentStore(
+ new Fragment({
+ id: 'collection-id',
+ model: { path: COLLECTION_MODEL_PATH },
+ fields: [],
+ }),
+ );
+ Store.fragments.list.data.set([collectionStore]);
+ const editorPanel = {
+ editFragment: sandbox.stub(),
+ promptDiscardChanges: sandbox.stub().resolves(true),
+ };
+ sandbox.stub(document, 'querySelector').withArgs('editor-panel').returns(editorPanel);
+
+ await router.navigateToFragmentEditor('collection-id');
+
+ expect(Store.fragmentEditor.fragmentId.get()).to.equal('collection-id');
+ expect(Store.page.get()).to.equal(PAGE_NAMES.FRAGMENT_EDITOR);
+ expect(editorPanel.editFragment.called).to.equal(false);
+ });
});
describe('navigateToTranslationEditor', () => {
diff --git a/studio/test/rte/rte-field.test.html b/studio/test/rte/rte-field.test.html
index 3388b179e..ef20c7799 100644
--- a/studio/test/rte/rte-field.test.html
+++ b/studio/test/rte/rte-field.test.html
@@ -103,6 +103,86 @@
const rte = await createFromTemplate('rte', this.test.title);
expect(rte.shadowRoot).exist;
});
+
+ it('should use mas-icon-picker-modal when icon-picker is enabled', async function () {
+ const rte = await createFromTemplate('rte-icon-picker', this.test.title);
+
+ await rte.openMnemonicEditor();
+ await rte.updateComplete;
+
+ expect(rte.shadowRoot.querySelector('mas-icon-picker-modal')).to.exist;
+ expect(rte.shadowRoot.querySelector('rte-mnemonic-editor')).to.not.exist;
+ });
+
+ it('should float the toolbar centered above the parent container when focused', async function () {
+ const wrapper = await createFromTemplate('rte-float', this.test.title);
+ const rte = wrapper.querySelector('rte-field');
+ const anchor = rte.parentElement;
+ const toolbar = rte.shadowRoot.getElementById('floating-toolbar');
+
+ anchor.getBoundingClientRect = () => ({
+ left: 100,
+ top: 200,
+ width: 320,
+ height: 80,
+ right: 420,
+ bottom: 280,
+ });
+ toolbar.getBoundingClientRect = () => ({
+ left: 0,
+ top: 0,
+ width: 180,
+ height: 44,
+ right: 180,
+ bottom: 44,
+ });
+
+ rte.hasFocus = true;
+ rte.requestUpdate();
+ await rte.updateComplete;
+ await delay(50);
+ await rte.updateComplete;
+
+ expect(toolbar.classList.contains('visible')).to.be.true;
+ expect(toolbar.classList.contains('below')).to.be.false;
+ expect(toolbar.style.left).to.equal('260px');
+ expect(toolbar.style.top).to.equal('144px');
+ });
+
+ it('should flip the floating toolbar below when there is not enough room above', async function () {
+ const wrapper = await createFromTemplate('rte-float', this.test.title);
+ const rte = wrapper.querySelector('rte-field');
+ const anchor = rte.parentElement;
+ const toolbar = rte.shadowRoot.getElementById('floating-toolbar');
+
+ anchor.getBoundingClientRect = () => ({
+ left: 100,
+ top: 20,
+ width: 320,
+ height: 80,
+ right: 420,
+ bottom: 100,
+ });
+ toolbar.getBoundingClientRect = () => ({
+ left: 0,
+ top: 0,
+ width: 180,
+ height: 44,
+ right: 180,
+ bottom: 44,
+ });
+
+ rte.hasFocus = true;
+ rte.requestUpdate();
+ await rte.updateComplete;
+ await delay(50);
+ await rte.updateComplete;
+
+ expect(toolbar.classList.contains('visible')).to.be.true;
+ expect(toolbar.classList.contains('below')).to.be.true;
+ expect(toolbar.style.left).to.equal('260px');
+ expect(toolbar.style.top).to.equal('112px');
+ });
});
describe('RTE Field: styling features', () => {
@@ -349,6 +429,18 @@
FeatureBA
+
+
+
+
+ ${this.card.badgeText}
+
+ `}get cardImage(){return At`
+ `}getGlobalCSS(){return""}get theme(){return document.querySelector("sp-theme")}get evergreen(){return this.card.classList.contains("intro-pricing")}get promoBottom(){return this.card.classList.contains("promo-bottom")}get headingSelector(){return'[slot="heading-xs"]'}get secureLabel(){return this.card.secureLabel?At`${this.card.secureLabel}`:gn}get secureLabelFooter(){return At``}async postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}syncHeights(){}renderLayout(){}get aemFragmentMapping(){return this.constructor.fragmentMapping??null}};X=new WeakMap,w(st,"styleMap",{});var Tt=st;var Wt="(max-width: 767px)",Lt="(max-width: 1199px)",$e="(min-width: 768px)",Q="(min-width: 1200px)",St="(min-width: 1600px)",fn={matchMobile:window.matchMedia(Wt),matchDesktop:window.matchMedia(`${Q} and (not ${St})`),matchDesktopOrUp:window.matchMedia(Q),matchLargeDesktop:window.matchMedia(St),get isMobile(){return this.matchMobile.matches},get isDesktop(){return this.matchDesktop.matches},get isDesktopOrUp(){return this.matchDesktopOrUp.matches}},Yt=fn;var qe=`
+ :root {
+ --consonant-merch-card-mini-compare-chart-icon-size: 32px;
+ --consonant-merch-card-mini-compare-border-color: #E9E9E9;
+ --consonant-merch-card-mini-compare-mobile-cta-font-size: 16px;
+ --consonant-merch-card-mini-compare-mobile-cta-width: 75px;
+ --consonant-merch-card-mini-compare-badge-mobile-max-width: 50px;
+ --consonant-merch-card-mini-compare-mobile-price-font-size: 32px;
+ --consonant-merch-card-card-mini-compare-mobile-background-color: #F8F8F8;
+ --consonant-merch-card-card-mini-compare-mobile-spacing-xs: 12px;
+ --consonant-merch-card-mini-compare-chart-heading-m-price-height: 30px;
+ }
+
+ merch-card[variant="mini-compare-chart"] {
+ background: linear-gradient(#FFFFFF, #FFFFFF) padding-box, var(--consonant-merch-card-border-color, #E9E9E9) border-box;
+ border: 1px solid transparent;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-badge {
+ position: absolute;
+ top: 16px;
+ inset-inline-start: auto;
+ inset-inline-end: 0;
+ }
+ merch-card[variant="mini-compare-chart"] div[class$='-badge'] {
+ font-size: 14px;
+ }
+
+ merch-card[variant="mini-compare-chart"] div[class$='-badge']:dir(rtl) {
+ left: 0;
+ right: initial;
+ padding: 8px 11px;
+ border-radius: 0 5px 5px 0;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m"] {
+ padding: 0 var(--consonant-merch-spacing-s) 0;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-xs"] {
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s);
+ font-size: var(--consonant-merch-card-heading-m-font-size);
+ line-height: var(--consonant-merch-card-heading-m-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon {
+ box-sizing: border-box;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon {
+ padding-inline-start: 4px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ padding-inline-end: 8px;
+ border-radius: 10px;
+ font-family: var(--merch-body-font-family, 'Adobe Clean');
+ margin: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) .5rem;
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ background: linear-gradient(211deg, rgb(245, 246, 253) 33.52%, rgb(248, 241, 248) 67.33%, rgb(249, 233, 237) 110.37%);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon [is="inline-price"] {
+ min-height: unset;
+ font-weight: bold;
+ pointer-events: none;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon::part(checkbox) {
+ height: 18px;
+ width: 18px;
+ margin: 14px 12px 0 8px;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon::part(label) {
+ display: flex;
+ flex-direction: column;
+ padding: 8px 4px 8px 0;
+ width: 100%;
+ }
+
+ merch-card[variant="mini-compare-chart"] [is="inline-price"] {
+ display: inline-block;
+ min-height: 30px;
+ line-height: 30px;
+ min-width: 1px;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m-price"] {
+ min-height: 30px;
+ line-height: 30px;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m-price"] [is="inline-price"][data-template="legal"] {
+ display: inline;
+ min-height: unset;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m-price"] .price-plan-type {
+ display: block;
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ font-style: italic;
+ font-weight: normal;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="callout-content"] {
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) 0px;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="callout-content"] .callout-row {
+ flex-direction: row;
+ align-items: flex-start;
+ padding: 2px 10px 3px;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="callout-content"] .callout-row .icon-button {
+ position: relative;
+ top: 2px;
+ left: auto;
+ flex-shrink: 0;
+ align-self: flex-start;
+ margin-inline-start: var(--consonant-merch-spacing-xxs);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="quantity-select"] {
+ padding: 0 var(--consonant-merch-spacing-s);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="subtitle"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ padding: 0 var(--consonant-merch-spacing-s);
+ font-weight: 500;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="body-m"] {
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="callout-content"] [is="inline-price"] {
+ min-height: unset;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="price-commitment"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ padding: 0 var(--consonant-merch-spacing-s);
+ font-style: italic;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="price-commitment"] a {
+ display: inline-block;
+ height: 27px;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="offers"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="body-xxs"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] .price-plan-type [slot="body-xxs"] {
+ font-style: italic;
+ font-weight: normal;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] {
+ font-size: var(--consonant-merch-card-body-m-font-size);
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) 0;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] p {
+ margin: 0;
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] [is="inline-price"] {
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ min-height: unset;
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] a {
+ color: var(--color-accent);
+ text-decoration: underline;
+ }
+
+ merch-card[variant="mini-compare-chart"] a.upt-link {
+ color: var(--link-color);
+ }
+
+
+ merch-card[variant="mini-compare-chart"] [slot="body-m"] p {
+ margin: 0;
+ }
+
+ merch-card[variant="mini-compare-chart"] .action-area {
+ display: flex;
+ justify-content: flex-end;
+ align-items: flex-end;
+ flex-wrap: wrap;
+ width: 100%;
+ gap: var(--consonant-merch-spacing-xxs);
+ }
+
+ /* Override merch-whats-included host layout for footer-row display */
+ merch-card[variant="mini-compare-chart"] merch-whats-included {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ row-gap: 0;
+ }
+
+ /* Hide heading in footer context */
+ merch-card[variant="mini-compare-chart"] merch-whats-included [slot="heading"] {
+ display: none;
+ }
+
+ /* Icon sizing */
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="icon"] {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-width: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ width: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ height: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="icon"] img {
+ max-width: initial;
+ width: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ height: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="icon"] merch-icon {
+ --mod-img-width: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ --mod-img-height: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-rows-title {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-color: var(--merch-color-grey-60);
+ font-weight: 700;
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ }
+
+ /* Footer-row-cell layout (legacy footer-rows structure used by DC pages) */
+ merch-card[variant="mini-compare-chart"] [slot="footer-rows"] ul {
+ margin-block: 0px;
+ padding-inline-start: 0px;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell {
+ border-top: 1px solid var(--consonant-merch-card-border-color);
+ display: flex;
+ gap: var(--consonant-merch-spacing-xs);
+ justify-content: start;
+ place-items: center;
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s);
+ margin-block: 0px;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-icon {
+ display: flex;
+ place-items: center;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-icon img {
+ max-width: initial;
+ width: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ height: var(--consonant-merch-card-mini-compare-chart-icon-size);
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description p {
+ color: var(--merch-color-grey-80);
+ vertical-align: bottom;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description a {
+ color: var(--color-accent);
+ }
+
+ /* Style each mnemonic-list as a footer row */
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list {
+ width: 100%;
+ margin-inline: 0;
+ border-top: 1px solid var(--consonant-merch-card-mini-compare-border-color);
+ display: flex;
+ gap: var(--consonant-merch-spacing-xs);
+ justify-content: start;
+ align-items: center;
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s);
+ box-sizing: border-box;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-icon-checkmark img {
+ max-width: initial;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-icon-checkmark {
+ display: flex;
+ align-items: center;
+ height: 20px;
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-checkmark {
+ display: flex;
+ gap: var(--consonant-merch-spacing-xs);
+ justify-content: start;
+ align-items: flex-start;
+ margin-block: var(--consonant-merch-spacing-xxxs);
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description-checkmark {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ font-weight: 400;
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="description"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="description"] p {
+ color: var(--merch-color-grey-80);
+ vertical-align: bottom;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="description"] a {
+ color: var(--color-accent);
+ }
+
+ merch-card[variant="mini-compare-chart"] .toggle-icon {
+ display: flex;
+ background-color: transparent;
+ border: none;
+ padding: 0;
+ margin: 0;
+ text-align: inherit;
+ font: inherit;
+ border-radius: 0;
+ }
+
+ merch-card[variant="mini-compare-chart"] .checkmark-copy-container {
+ display: none;
+ }
+
+ merch-card[variant="mini-compare-chart"] .checkmark-copy-container.open {
+ display: block;
+ padding-block-start: var(--consonant-merch-card-card-mini-compare-mobile-spacing-xs);
+ padding-block-end: 4px;
+ }
+
+.one-merch-card.mini-compare-chart {
+ grid-template-columns: var(--consonant-merch-card-mini-compare-chart-wide-width);
+ gap: var(--consonant-merch-spacing-xs);
+}
+
+.two-merch-cards.mini-compare-chart,
+.three-merch-cards.mini-compare-chart,
+.four-merch-cards.mini-compare-chart {
+ grid-template-columns: repeat(2, var(--consonant-merch-card-mini-compare-chart-width));
+ gap: var(--consonant-merch-spacing-xs);
+}
+
+/* Sections inside tabs/fragments that don't receive the .mini-compare-chart class.
+ Make .content wrapper transparent so the section grid applies directly to cards. */
+.one-merch-card:has(merch-card[variant="mini-compare-chart"]) .content,
+.two-merch-cards:has(merch-card[variant="mini-compare-chart"]) .content,
+.three-merch-cards:has(merch-card[variant="mini-compare-chart"]) .content,
+.four-merch-cards:has(merch-card[variant="mini-compare-chart"]) .content {
+ display: contents;
+}
+
+.one-merch-card:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: var(--consonant-merch-card-mini-compare-chart-wide-width);
+ gap: var(--consonant-merch-spacing-xs);
+}
+
+.two-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+.three-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+.four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(2, var(--consonant-merch-card-mini-compare-chart-width));
+ gap: var(--consonant-merch-spacing-xs);
+}
+
+/* Place compare-plans text-block below all cards in multi-card layouts */
+.two-merch-cards:has(merch-card[variant="mini-compare-chart"]) .text-block,
+.three-merch-cards:has(merch-card[variant="mini-compare-chart"]) .text-block,
+.four-merch-cards:has(merch-card[variant="mini-compare-chart"]) .text-block {
+ grid-column: 1 / -1;
+}
+
+/* bullet list */
+merch-card[variant="mini-compare-chart"].bullet-list {
+ border-radius: var(--consonant-merch-spacing-xxs);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list:not(.badge-card):not(.mini-compare-chart-badge) {
+ border-color: var(--consonant-merch-card-mini-compare-border-color);
+}
+
+merch-card[variant="mini-compare-chart"].badge-card {
+ border: var(--consonant-merch-card-border);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m"] {
+ padding: var(--consonant-merch-spacing-xxs) var(--consonant-merch-spacing-xs);
+ font-size: var(--consonant-merch-card-heading-xxs-font-size);
+ line-height: var(--consonant-merch-card-heading-xxs-line-height);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"],
+merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
+ padding: 0 var(--consonant-merch-spacing-xs);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] .starting-at {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] .price {
+ font-size: var(--consonant-merch-card-heading-l-font-size);
+ line-height: 35px;
+ font-weight: 800;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] .price-alternative:has(+ .price-annual-prefix) {
+ margin-bottom: 4px;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] [data-template="strikethrough"] {
+ min-height: 24px;
+ margin-bottom: 2px;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] [data-template="strikethrough"],
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"] .price-strikethrough {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 700;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"].annual-price-new-line > span[is="inline-price"] > .price-annual,
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"].annual-price-new-line > span[is="inline-price"] > .price-annual-prefix::after,
+merch-card[variant="mini-compare-chart"].bullet-list [slot="heading-m-price"].annual-price-new-line > span[is="inline-price"] >.price-annual-suffix {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+ font-style: italic;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="body-xxs"] {
+ padding: var(--consonant-merch-spacing-xxxs) var(--consonant-merch-spacing-xs) 0;
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+ letter-spacing: normal;
+ font-style: italic;
+}
+
+merch-card[variant="mini-compare-chart"]:not(.bullet-list) p.card-heading[slot="body-xxs"] {
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) 0;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="promo-text"] {
+ padding: var(--consonant-merch-card-card-mini-compare-mobile-spacing-xs) var(--consonant-merch-spacing-xs) 0;
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 700;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="promo-text"] a {
+ font-weight: 400;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="body-m"] {
+ padding: var(--consonant-merch-card-card-mini-compare-mobile-spacing-xs) var(--consonant-merch-spacing-xs) 0;
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="body-m"] p:has(+ p) {
+ margin-bottom: 8px;
+}
+
+merch-card[variant="mini-compare-chart"] [slot="body-m"] a.spectrum-Link.spectrum-Link--secondary {
+ color: inherit;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="callout-content"] {
+ padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-xs) 0px;
+ margin: 0;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="callout-content"] > div > div {
+ background-color: #D9D9D9;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list merch-addon {
+ margin: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-xxs);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list merch-addon [is="inline-price"] {
+ font-weight: 400;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list footer {
+ gap: var(--consonant-merch-spacing-xxs);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list .action-area {
+ justify-content: flex-start;
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="footer-rows"] {
+ background-color: var(--consonant-merch-card-card-mini-compare-mobile-background-color);
+ border-radius: 0 0 var(--consonant-merch-spacing-xxs) var(--consonant-merch-spacing-xxs);
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
+ padding: var(--consonant-merch-spacing-xxxs) var(--consonant-merch-spacing-xs) 0 var(--consonant-merch-spacing-xs);
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+}
+
+/* mini compare mobile */
+@media screen and ${Wt} {
+ :root {
+ --consonant-merch-card-mini-compare-chart-width: 302px;
+ --consonant-merch-card-mini-compare-chart-wide-width: 302px;
+ }
+
+ .two-merch-cards.mini-compare-chart,
+ .three-merch-cards.mini-compare-chart,
+ .four-merch-cards.mini-compare-chart,
+ .two-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+ .three-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+ .four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: var(--consonant-merch-card-mini-compare-chart-width);
+ gap: var(--consonant-merch-spacing-xs);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="subtitle"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m-price"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="body-m"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="description"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ font-weight: 400;
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-addon {
+ box-sizing: border-box;
+ }
+}
+
+@media screen and ${Lt} {
+ merch-card[variant="mini-compare-chart"] [slot="heading-m"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="subtitle"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="heading-m-price"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="body-m"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="promo-text"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] merch-mnemonic-list [slot="description"] {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] .footer-row-cell-description {
+ font-size: var(--consonant-merch-card-body-xs-font-size);
+ line-height: var(--consonant-merch-card-body-xs-line-height);
+ font-weight: 400;
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list merch-mnemonic-list [slot="description"] {
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"] [slot="footer"] a.con-button {
+ min-width: 66px;
+ padding: 4px 18px 5px 21px;
+ font-size: var(--consonant-merch-card-mini-compare-mobile-cta-font-size);
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list [slot="footer"] a.con-button {
+ padding: 6px 18px 4px;
+ }
+}
+@media screen and ${$e} {
+ :root {
+ --consonant-merch-card-mini-compare-chart-width: 302px;
+ --consonant-merch-card-mini-compare-chart-wide-width: 302px;
+ }
+
+ .two-merch-cards.mini-compare-chart,
+ .two-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(2, minmax(var(--consonant-merch-card-mini-compare-chart-width), var(--consonant-merch-card-mini-compare-chart-wide-width)));
+ gap: var(--consonant-merch-spacing-m);
+ }
+
+ .three-merch-cards.mini-compare-chart,
+ .four-merch-cards.mini-compare-chart,
+ .three-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+ .four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(2, minmax(var(--consonant-merch-card-mini-compare-chart-width), var(--consonant-merch-card-mini-compare-chart-wide-width)));
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
+ padding: var(--consonant-merch-spacing-xxxs) var(--consonant-merch-spacing-xs) 0 var(--consonant-merch-spacing-xs);
+ font-size: var(--consonant-merch-card-body-s-font-size);
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ font-weight: 400;
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list [slot="footer-rows"] {
+ padding: var(--consonant-merch-spacing-xs);
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list .footer-rows-title {
+ line-height: var(--consonant-merch-card-body-s-line-height);
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list .checkmark-copy-container.open {
+ padding-block-start: var(--consonant-merch-spacing-xs);
+ padding-block-end: 0;
+ padding-inline: 0;
+ }
+
+ merch-card[variant="mini-compare-chart"].bullet-list .footer-row-cell-checkmark {
+ gap: var(--consonant-merch-spacing-xxs);
+ }
+}
+
+/* desktop */
+@media screen and ${Q} {
+ :root {
+ --consonant-merch-card-mini-compare-chart-width: 378px;
+ --consonant-merch-card-mini-compare-chart-wide-width: 484px;
+ }
+ .one-merch-card.mini-compare-chart,
+ .one-merch-card:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: var(--consonant-merch-card-mini-compare-chart-wide-width);
+ }
+
+ .two-merch-cards.mini-compare-chart,
+ .two-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(2, var(--consonant-merch-card-mini-compare-chart-wide-width));
+ gap: var(--consonant-merch-spacing-m);
+ }
+
+ .three-merch-cards.mini-compare-chart,
+ .four-merch-cards.mini-compare-chart,
+ .three-merch-cards:has(merch-card[variant="mini-compare-chart"]),
+ .four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(3, var(--consonant-merch-card-mini-compare-chart-width));
+ gap: var(--consonant-merch-spacing-m);
+ }
+}
+
+@media screen and ${St} {
+ .four-merch-cards.mini-compare-chart,
+ .four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
+ grid-template-columns: repeat(4, var(--consonant-merch-card-mini-compare-chart-width));
+ }
+}
+
+merch-card[variant="mini-compare-chart"].bullet-list div[slot="footer-rows"] {
+ height: 100%;
+}
+
+/* Height sync for legacy footer-row-cell structure (DC pages without mini-compare-chart-mweb variant) */
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(1) {
+ min-height: var(--consonant-merch-card-footer-row-1-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(2) {
+ min-height: var(--consonant-merch-card-footer-row-2-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(3) {
+ min-height: var(--consonant-merch-card-footer-row-3-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(4) {
+ min-height: var(--consonant-merch-card-footer-row-4-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(5) {
+ min-height: var(--consonant-merch-card-footer-row-5-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(6) {
+ min-height: var(--consonant-merch-card-footer-row-6-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(7) {
+ min-height: var(--consonant-merch-card-footer-row-7-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] .footer-row-cell:nth-child(8) {
+ min-height: var(--consonant-merch-card-footer-row-8-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(1) {
+ min-height: var(--consonant-merch-card-footer-row-1-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(2) {
+ min-height: var(--consonant-merch-card-footer-row-2-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(3) {
+ min-height: var(--consonant-merch-card-footer-row-3-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(4) {
+ min-height: var(--consonant-merch-card-footer-row-4-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(5) {
+ min-height: var(--consonant-merch-card-footer-row-5-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(6) {
+ min-height: var(--consonant-merch-card-footer-row-6-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(7) {
+ min-height: var(--consonant-merch-card-footer-row-7-min-height);
+}
+
+merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
+ min-height: var(--consonant-merch-card-footer-row-8-min-height);
+}
+`;var yn=32,Fe={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m-price"},promoText:{tag:"div",slot:"promo-text"},shortDescription:{tag:"div",slot:"body-xxs"},description:{tag:"div",slot:"body-m"},mnemonics:{size:"l"},quantitySelect:{tag:"div",slot:"quantity-select"},callout:{tag:"div",slot:"callout-content"},addon:!0,secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300"},allowedBadgeColors:["spectrum-yellow-300","spectrum-gray-300","spectrum-gray-700","spectrum-green-900","spectrum-red-700","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300","spectrum-gray-300","spectrum-green-900","spectrum-red-700","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],whatsIncluded:{tag:"div",slot:"footer-rows"},ctas:{slot:"footer",size:"l"},style:"consonant"},Kt=class extends Tt{constructor(e){super(e);w(this,"getRowMinHeightPropertyName",e=>`--consonant-merch-card-footer-row-${e}-min-height`);w(this,"getMiniCompareFooter",()=>{let e=this.card.secureLabel?D`{let l=s.querySelector('[slot="footer-rows"] ul');if(!l)return;let m=l.querySelectorAll("li.footer-row-cell:not([data-placeholder])");o=Math.max(o,m.length)}),o===0)return;let i=this.card.querySelector('[slot="footer-rows"] ul');if(!i)return;i.querySelectorAll("li.footer-row-cell[data-placeholder]").forEach(s=>s.remove());let a=i.querySelectorAll("li.footer-row-cell").length,c=o-a;for(let s=0;s
+
+
+
+ `;else{let s=0,l=!1,m=x=>x?.matches?.("img, picture, mas-mnemonic, merch-icon"),d=a[s];if(d?.classList?.contains("header-product-tile")||m(d)||d?.querySelector("img, picture, mas-mnemonic, merch-icon")){if(m(d)){let x=b("p"),C=d;for(;m(C);){let Pt=C.nextElementSibling;x.append(C),C=Pt}n.insertBefore(x,C||null),d=x}s+=1,t.classList.contains("merch")||d?.classList.add("header-product-tile")}a[s]&&(a[s].classList.add("tracking-header"),l=!0);let y=[...a].slice(s+1),E="em a, strong a, p > a strong, a.con-button",p=y.find(x=>x.querySelector(E)),v=x=>{if(!x)return!1;if(x.querySelector('[is="inline-price"], .price, [data-template], .price-integer, .price-strikethrough, .price-alternative'))return!0;let C=x.textContent?.trim()||"";return/(?:US?\$|CA\$|A\$|€|£|¥|\/(?:mo|month|Monat))/i.test(C)},A=y.filter(x=>x!==p),g=A.find(v);!g&&A.length>1&&(g=A[A.length-1]);let u=A.find(x=>x!==g);g&&g.classList.add("pricing"),u&&u.classList.add("body"),Rn(n,"button-xl");let T=b("div",{class:"buttons-wrapper"});n.append(T),n.querySelectorAll(".con-button").forEach(x=>{let C=x.closest("p");C&&T.append(C)});let G=b("div",{class:"heading-content"}),W=b("div",{class:"heading-button"});if([...a].forEach(x=>{x.classList.contains("pricing")&&e?W.appendChild(x):G.appendChild(x)}),W.appendChild(T),n.append(G,W),!l){let x=Array.from(n.childNodes).find(C=>C.nodeType===Node.TEXT_NODE);x?.textContent?.trim()&&G.append(b("p",{class:"tracking-header"},x.textContent)),x?.remove()}}let c=n.querySelector(".tracking-header");if(c){let s=`t${or+1}-c${o+1}-header`;c.setAttribute("id",s);let l=n.querySelector(".body:not(.action-area)");l?.setAttribute("id",`${s}-body`);let m=n.querySelector(".pricing");m?.setAttribute("id",`${s}-pricing`);let d=`${l?.id??""} ${m?.id??""}`.trim();c.setAttribute("aria-describedby",d),n.setAttribute("role","columnheader")}n.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(s=>{s.setAttribute("role","paragraph")})})}function j(t,r=[]){return b("div",{class:`header-section ${t}`},Array.isArray(r)?r.filter(Boolean):r)}function Mn(t,r){if(!t||t.tagName.toLowerCase()===r)return t;let e=document.createElement(r);return Array.from(t.attributes).forEach(({name:n,value:o})=>{e.setAttribute(n,o)}),e.append(...Array.from(t.childNodes)),t.replaceWith(e),e}function On(t){t.querySelectorAll(".row-heading p.pricing, .row-heading p.supplemental-text, .row-heading p.pricing-after").forEach(r=>{Mn(r,"div")})}function Qt(t,r){return!t||t.nodeType!==Node.ELEMENT_NODE?!1:t.matches(r)||!!t.querySelector(r)}function dr(t){return t?t.nodeType===Node.TEXT_NODE?t.textContent?.trim()?"price":"":t.nodeType!==Node.ELEMENT_NODE?"":Qt(t,`${_}[data-template="${Y}"], [data-template="${Y}"], .price-legal`)?"legal":Qt(t,`${_}[data-template="strikethrough"], [data-template="strikethrough"], .price-strikethrough, .price-promo-strikethrough`)?"strikethrough":Qt(t,`${_}, [data-template], .price, .price-alternative`)?"price":"":""}function Ye(t,r,e=[]){let n=e.filter(o=>o&&(o.nodeType!==Node.TEXT_NODE||o.textContent.trim()));return n.length?b(t.tagName.toLowerCase(),{class:r},n):null}function Pn(t){if(!t)return{strikethrough:null,price:null,legal:null};let r={strikethrough:[],price:[],legal:[]},e="";Array.from(t.childNodes).forEach(i=>{let a=dr(i);!a&&i.nodeType===Node.TEXT_NODE&&(a=e||"price"),a||(a=i.textContent?.trim()?"price":e),a&&(r[a].push(i),e=a)}),!r.strikethrough.length&&!r.price.length&&!r.legal.length&&(r.price=Array.from(t.childNodes));let o=Array.from(t.classList).filter(i=>!["has-pricing-before","has-pricing-after"].includes(i)).join(" ");return{strikethrough:Ye(t,[o,"pricing-strikethrough-group"].filter(Boolean).join(" "),r.strikethrough),price:Ye(t,[o,"pricing-main-group"].filter(Boolean).join(" "),r.price),legal:b("div",{class:"pricing-legal-group"},r.legal.filter(i=>i&&(i.nodeType!==Node.TEXT_NODE||i.textContent.trim())))}}function In(t){let r=Array.from(t.children);if(!r.length)return;let e=r.find(u=>u.classList.contains("heading-content"))||null,n=r.find(u=>u.classList.contains("heading-button"))||null,o=Array.from(e?.children||[]),i=r.filter(u=>u!==e&&u!==n&&(u.classList.contains("content-before")||u.classList.contains("content-after"))),a=o.find(u=>u.classList.contains("header-product-tile"))||null,c=o.find(u=>u.classList.contains("tracking-header"))||null,s=o.find(u=>u.classList.contains("body"))||null,l=o.filter(u=>u!==a&&u!==c&&u!==s),m=Array.from(n?.children||[]),d=m.find(u=>u.classList.contains("pricing"))||null,h=m.filter(u=>u!==d&&!u.classList.contains("buttons-wrapper")&&(u.classList.contains("pricing-before")||u.classList.contains("pricing-after")||u.classList.contains("supplemental-text"))),y=m.find(u=>u.classList.contains("buttons-wrapper"))||null,{strikethrough:E,price:p,legal:v}=Pn(d),A=[...h,...v?.childNodes?Array.from(v.childNodes):[]],g=[j("header-section-icon",a?[a]:[]),j("header-section-title",c?[c]:[]),j("header-section-description",[...i,s,...l].filter(Boolean)),j("header-section-price-strikethrough",E?[E]:[]),j("header-section-price",p?[p]:[]),j("header-section-legal",A),j("header-section-buttons",y?[y]:[])];t.replaceChildren(...g)}function Hn(t){if(!t.classList.contains("merch"))return;t.querySelectorAll(".row-heading .col-heading").forEach(e=>In(e))}function Dn(t){let r=t.querySelector(".row-heading");if(!r){Rt(t,"");return}let e=Array.from(r.querySelectorAll(":scope > .col-heading")).filter(o=>!o.classList.contains("col-1")&&!o.classList.contains("hidden")&&getComputedStyle(o).display!=="none");if(!e.length){Rt(t,"");return}let n=[];wn.forEach(({className:o,cssVar:i})=>{let a=0;e.forEach(c=>{let s=c.querySelector(`:scope > .${o}`);s&&(a=Math.max(a,Math.ceil(s.getBoundingClientRect().height)))}),a>0&&n.push(`${i}: ${a}px;`)}),Rt(t,Tn(t,n))}function rt(t){Rt(t,""),t.classList.contains("merch")&&Dn(t)}function $n(t){let r=[...t.querySelectorAll(".section-row-title")].filter(e=>e.innerText.toUpperCase().includes("ADDON"));r.length&&(t.classList.add("has-addon"),r.forEach(e=>{let n=e.parentElement;n.remove();let[o,i,a]=e.innerText.split("-").filter(s=>s.toUpperCase()!=="ADDON").map(s=>s.toLowerCase());if(!o||!i)return;let c="data-col-index";[...t.querySelector(".row-heading").children].forEach(s=>{s.querySelector(".heading-content")?.classList.add("content");let l=s.getAttribute(c);if(Number(l)<=1)return;let m=`${o}-${i}`,d=[...n.children].find(v=>v.getAttribute(c)===l);if(!d)return;let h=[...d.childNodes],y=d.querySelector(".icon");if(a==="label"&&y){let v=h.filter(A=>!A.classList?.contains("icon"));h=[b("span",{},v),y]}let E=b("div",{class:a?`${m} addon-${a}`:m},h.map(v=>v.cloneNode(!0))),p=s.querySelector(`.${o}`);o==="pricing"&&i==="after"||p?.classList.add(`has-${m}`),p?.insertAdjacentElement(i==="before"?"beforebegin":"afterend",E)})}),setTimeout(()=>rt(t),0),t.addEventListener("mas:resolved",bt(()=>{rt(t)},100)))}function re(t,r){let e=t.querySelectorAll('.icon.expand[role="button"]');[...t.parentElement.querySelectorAll(".filters .filter"),...e].forEach(i=>{let a=i.classList.contains("filter")?"choose-table-column":"toggle-row";i.setAttribute("aria-label",r[a])})}function kt(t){t.dispatchEvent(new Event(vn))}function Ke(t,r=[]){t.forEach((e,n)=>{let o=n===0||n===t.length-1,i=r[n],a=!!i&&(i.innerText||i.dataset.hasBadge==="true");e.classList.toggle("no-rounded",!o||a)})}function qn(t){let r=t.classList.contains("highlight"),e=t.querySelector(".row-1"),n=e.querySelectorAll(".col"),o=t.querySelector(".row-2"),i=o?.querySelectorAll(".col")||[],a;r&&o?(e.classList.add("row-highlight"),e.setAttribute("aria-hidden","true"),o.classList.add("row-heading"),i.forEach(c=>c.classList.add("col-heading")),a=i,n.forEach((c,s)=>{c.classList.add("col-highlight"),c.innerText||c.dataset.hasBadge==="true"?t.classList.contains("compare-chart-features")||a[s]?.classList.add("no-rounded"):c.classList.add("hidden")}),t.classList.contains("compare-chart-features")&&Ke(a,n)):(a=n,e.classList.add("row-heading"),t.classList.contains("compare-chart-features")&&Ke(a)),kn(t,a),$n(t),On(t),Hn(t),kt(t)}function Xe(t){let r=t.closest(".row"),e=r.nextElementSibling,n=t.getAttribute("aria-expanded")==="false";for(t.setAttribute("aria-expanded",n.toString());e&&!e.classList.contains("divider");)n?(r.classList.remove("section-head-collaped"),e.classList.remove("hidden")):(r.classList.add("section-head-collaped"),e.classList.add("hidden")),e=e.nextElementSibling}function Qe(t){t.querySelectorAll(".icon.expand").forEach(r=>{let e=r.parentElement,n=()=>Xe(r),o=i=>{i.key===" "&&i.preventDefault(),(i.key==="Enter"||i.key===" ")&&Xe(r)};e.classList.add("point-cursor"),e.setAttribute("tabindex",0),e.addEventListener("click",n),e.addEventListener("keydown",o)})}function Ze(t){if(!t||t.querySelector(".table-title-text"))return;let r=b("span",{class:"table-title-text"});for(;t.firstChild;)r.append(t.firstChild);let e=r.textContent?.replace(/\u00a0/g," ").trim();if(!r.querySelector('a, em, strong, b, i, picture, img, mas-mnemonic, merch-icon, [is="inline-price"], .icon, .icon-info, .icon-tooltip, .milo-tooltip, blockquote')&&(!e||e==="-")){t.replaceChildren();return}let o=r.querySelector(".icon-info, .icon-tooltip, .milo-tooltip");o&&t.append(o.closest("em")||o);let i=r.querySelector(".icon:first-child"),a=r;if(i){let s=b("span",{class:"table-title-row"});s.append(i,r),a=s}let c=a.querySelector("blockquote");if(c){let s=b("div",{class:"blockquote"});for(;c.firstChild;)s.appendChild(c.firstChild);c.replaceWith(s)}t.insertBefore(a,t.firstChild)}function zn(t){let{row:r,index:e,allRows:n,rowCols:o,isMerch:i,isCollapseTable:a,isHighlightTable:c}=t,{expandSection:s}=t,l=n[e-1],m=n[e+1],d=Array.from(m?.children||[]);if(r.querySelector("hr")&&m){r.classList.add("divider"),r.removeAttribute("role"),m.classList.add("section-head");let h=d[0];if(i&&d.length?d.forEach(y=>{y.classList.add("section-head-title"),y.setAttribute("role","rowheader")}):(Ze(h),h.classList.add("section-head-title"),h.setAttribute("role","rowheader")),a&&h){let y=b("span",{class:"icon expand",role:"button"});if(h.querySelector(".icon.expand")||h.prepend(y),s)y.setAttribute("aria-expanded","true"),s=!1;else{y.setAttribute("aria-expanded","false"),m.classList.add("section-head-collaped");let E=r.nextElementSibling;for(;E&&!E.classList.contains("divider");)E.classList.add("hidden"),E=E.nextElementSibling}}}else if(l?.querySelector("hr")&&m){if(m.classList.add("section-row"),!i){let h=d[0];h?.classList.add("section-row-title"),h?.setAttribute("role","rowheader"),h?.setAttribute("scope","row")}}else if(!r.classList.contains("row-1")&&(!c||!r.classList.contains("row-2")))if(r.classList.add("section-row"),o.forEach(h=>{if(h.querySelector("a")&&!h.querySelector("span")){let y=b("span",{class:"col-text"},[...h.childNodes]);h.appendChild(y)}}),i&&!r.classList.contains("divider"))o.forEach(h=>{if(h.classList.add("col-merch"),!h.children.length&&h.innerText){let y=b("p",{class:"merch-col-text"},h.innerText);h.innerText="",h.append(y)}});else{let h=o[0];Ze(h),h.classList.add("section-row-title"),h.setAttribute("role","rowheader"),h.setAttribute("scope","row")}return o.forEach(h=>{h.querySelector(":scope > :is(strong, em, del, code, sub, sup)")&&h.childNodes.length>1&&!h.querySelector("picture")&&h.replaceChildren(b("p",{},[...h.childNodes]))}),s}function Fn(t){let r=t.querySelectorAll(".row"),e=r.length,i=r[0].querySelectorAll(".col").length;for(let a=i;a>0;a-=1){let c=t.querySelectorAll(`.col-${a}`);for(let s=e-1;s>=0;s-=1){let l=c[s];if(!l?.innerText&&l?.children.length===0)l.classList.add("no-borders");else{l.classList.add("border-bottom");break}}}}function Je(t){t.forEach(r=>r.classList.remove("hover","no-top-border","hover-border-bottom"))}function Bn(t){let r=t.querySelector(".row-1");if(!r)return;let e=r.childElementCount,o=t.classList.contains("merch")&&!t.classList.contains("compare-chart-features")?1:2,i=t.classList.contains("collapse"),a=t.querySelectorAll(".section-head"),c=a[a.length-1],s=c?.querySelector(".icon.expand");for(let l=o;l<=e;l+=1){let m=t.querySelectorAll(`.col-${l}`);m.forEach(d=>{d.addEventListener("mouseover",()=>{Je(m);let h=t.querySelector(".row-heading"),y=`col-${l}`,E=s?.getAttribute("aria-expanded")==="false";m.forEach(p=>{if(p.classList.contains("col-highlight")&&p.innerText){let v=Array.from(p.classList).find(g=>g.startsWith(y));h?.querySelector(`.${v}`)?.classList.add("no-top-border")}i&&E&&c?.querySelector(`.col-${l}`)?.classList.add("hover-border-bottom"),p.classList.add("hover")})}),d.addEventListener("mouseout",()=>Je(m))})}}function hr(t,r){t._stickyObserver?.disconnect();let e=r(),n=t.querySelector(".row-highlight"),o=t.querySelector(".row-heading");if(!o)return;n?(n.style.top=`${e}px`,n.classList.add("top-border-transparent")):o.classList.add("top-border-transparent");let i=e+(n?n.offsetHeight:0);o.style.top=`${i}px`;let a=t.querySelector(".intercept")||b("div",{class:"intercept"});a.setAttribute("data-observer-intercept",""),o.insertAdjacentElement("beforebegin",a);let c=new IntersectionObserver(([s])=>{o.classList.toggle("active",!s.isIntersecting)},{rootMargin:`-${i}px`});c.observe(a),t._stickyObserver=c}function Zt(t,r){t._filterObserver?.disconnect();let e=t.parentElement?.querySelector(".filters");if(!e)return;let n=ie(t)&&et()==="MOBILE"&&lr(t);if(e.classList.toggle("sticky-mobile-compare",n),e.classList.remove("active"),!n){e.style.removeProperty("top");return}let o=r();e.style.top=`${o}px`;let i=e.parentElement?.querySelector(".filters-intercept")||b("div",{class:"filters-intercept"});i.setAttribute("data-observer-intercept",""),e.insertAdjacentElement("beforebegin",i);let a=new IntersectionObserver(([c])=>{e.classList.toggle("active",!c.isIntersecting)},{rootMargin:`-${o}px`});a.observe(i),t._filterObserver=a}function Un(t,r,e,n){let o=t.querySelector(".row-heading");if(!o){kt(t);return}let i=t.classList.contains("merch"),a=lr(t),c=et(),s=()=>{if(i)return;let d=Array.from(t.getElementsByClassName("section-row"));if(d.length){let E=`repeat(auto-fit, ${100/(d[0].children.length-1)}%)`;d.forEach(p=>{c==="TABLET"||c==="MOBILE"&&!p.querySelector(".col-3")?p.style.gridTemplateColumns=E:p.style.gridTemplateColumns=""})}},l=()=>{kt(t);let d=t.querySelectorAll(".row-heading .col"),h=Array.from(d).filter(p=>p.textContent.trim()).length;if(t.querySelectorAll(".hide-mobile").forEach(p=>{p.classList.remove("hide-mobile")}),i&&h>=2?t.querySelectorAll(".col:not(.col-1, .col-2)").forEach(p=>{p.classList.add("hide-mobile")}):h>=3&&t.querySelectorAll(".col:not(.col-1, .col-2, .col-3), .col.no-borders").forEach(p=>{p.classList.add("hide-mobile")}),!i&&!t.querySelector(".col-3")||i&&!t.querySelector(".col-2"))return;a&&t.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(p=>{p.classList.add("hide-mobile"),p.style.display="none"});let y=p=>{let v=Array.from(t.parentElement.querySelectorAll(".filter")).map(g=>parseInt(g.value,10)),A=t.querySelectorAll(".row");if(t.querySelectorAll(".hide-mobile, .force-last").forEach(g=>{g.classList.remove("hide-mobile","force-last")}),A.forEach(g=>{g.querySelectorAll(".col[data-cloned]").forEach(u=>u.remove())}),i?t.querySelectorAll(`.col:not(.col-${v[0]+1}, .col-${v[1]+1})`).forEach(g=>{g.classList.add("hide-mobile")}):t.querySelectorAll(`.col:not(.col-1, .col-${v[0]+1}, .col-${v[1]+1}), .col.no-borders`).forEach(g=>{g.classList.add("hide-mobile")}),a&&t.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(g=>{g.classList.add("hide-mobile"),g.style.display="none"}),A.forEach(g=>{let u=g.querySelector(`.col-${v[0]+1}`),T=g.querySelector(`.col-${v[1]+1}`);u?.classList.contains("col-heading")&&(u.classList.remove("right-round"),u.classList.add("left-round")),T?.classList.contains("col-heading")&&(T.classList.remove("left-round"),T.classList.add("right-round")),T&&T.classList.add("force-last")}),v[0]===v[1]){let g=v[0]+1;A.forEach(u=>{let T=u.querySelector(`.col-${g}`);if(!T)return;let O=T.cloneNode(!0);O.setAttribute("data-cloned","true"),T.classList.remove("force-last"),T.classList.contains("col-heading")&&(T.classList.remove("right-round"),T.classList.add("left-round"),O.classList.remove("left-round"),O.classList.add("right-round")),u.appendChild(O)})}s(),ie(t)&&hr(t,n),Zt(t,n),p&&rt(t),re(t,e)},E=h>2;if(!t.parentElement.querySelector(".filters")&&E){let p=b("div",{class:"filters"}),v=b("div",{class:"filter-wrapper"}),A=b("div",{class:"filter-wrapper"}),g=b("select",{class:"filter"});r.querySelectorAll(".col-heading").forEach((C,Pt)=>{let It=C.querySelector(".tracking-header");if(!It||!i&&It.closest(".col-1"))return;let mr=b("option",{value:Pt},It.innerText);g.append(mr)});let T=g.cloneNode(!0);g.dataset.filterIndex=0,T.dataset.filterIndex=1;let O=t.querySelectorAll(`.col-heading:not([style*="display: none"], .hidden${i?"":", .col-1"})`),G=i?1:2,W=g.querySelectorAll("option").item(O.item(0).dataset.colIndex-G),x=T.querySelectorAll("option").item(O.item(1).dataset.colIndex-G);W&&(W.selected=!0),x&&(x.selected=!0),v.append(g),A.append(T),p.append(v,A),v.addEventListener("change",y),A.addEventListener("change",y),t.parentElement.insertBefore(p,t),t.parentElement.classList.add(`table-${t.classList.contains("merch")?"merch-":""}section`),!i&&h<3&&(p.style.display="none"),y()}Zt(t,n)},m=()=>{t.querySelectorAll(".row .col[data-cloned]").forEach(d=>{d.remove()})};!i&&!t.querySelector(".row-heading .col-2")&&(o.style.display="block",o.querySelector(".col-1")?.style.setProperty("display","flex")),m(),c==="MOBILE"||i&&c==="TABLET"?l():(t.querySelectorAll(".hide-mobile, .left-round, .right-round").forEach(d=>{d.classList.remove("hide-mobile","left-round","right-round")}),a&&t.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(d=>{d.style.removeProperty("display")}),Zt(t,n),[...o.children].forEach(d=>[...d.children].forEach(h=>h.style.removeProperty("height"))),t.parentElement.querySelectorAll(".filters select").forEach((d,h)=>{d.querySelectorAll("option").item(h).selected=!0})),kt(t),Bn(t),s()}function Ct(t){t.classList.value.includes("sticky")&&setTimeout(()=>{let r=t.querySelector(".row-heading")?.offsetHeight||0;t.classList.toggle("cancel-sticky",!(r/window.innerHeight<.45))})}function Vn(t,r){t.setAttribute("role","table"),t.parentElement.classList.contains("section")&&t.parentElement.classList.add(`table-${t.classList.contains("merch")?"merch-":""}section`);let e=Array.from(t.children),n=t.classList.contains("merch"),o=t.classList.contains("collapse")&&!n,i=t.classList.contains("highlight"),a=!0;e.forEach((E,p)=>{E.classList.add("row",`row-${p+1}`),E.setAttribute("role","row");let v=Array.from(E.children),A={row:E,index:p,allRows:e,rowCols:v,isMerch:n,isCollapseTable:o,expandSection:a,isHighlightTable:i};v.forEach((g,u)=>{g.dataset.colIndex=u+1,g.classList.add("col",`col-${u+1}`),g.setAttribute("role",g.matches(".section-head-title")?"columnheader":"cell")}),a=zn(A)}),qn(t),Ct(t),n&&Fn(t);let c=!1,s=et(),l=()=>{Un(t,t._originTable,r.labels,r.getStickyTop),rt(t),ie(t)&&hr(t,r.getStickyTop)};t.querySelectorAll(n?".col-heading:not(.hidden)":".col-heading:not(.hidden, .col-1)").length>2?t._originTable=t.cloneNode(!0):t._originTable=t;let m=bt(()=>{rt(t),Ct(t);let E=et();s!==E&&(s=E,l())},100),d=()=>Ct(t),h=new IntersectionObserver(E=>{E.some(p=>p.isIntersecting)&&(h.disconnect(),c||(l(),Qe(t),re(t,r.labels),c=!0))}),y=new ResizeObserver(bt(()=>Ct(t),100));return y.observe(t),window.addEventListener("resize",m),window.addEventListener(Ue,d),h.observe(t),c||setTimeout(()=>{c||(l(),Qe(t),re(t,r.labels),c=!0)},0),or+=1,()=>{h.disconnect(),y.disconnect(),t._stickyObserver?.disconnect(),t._filterObserver?.disconnect(),delete t._stickyObserver,delete t._filterObserver,delete t._originTable,window.removeEventListener("resize",m),window.removeEventListener(Ue,d)}}function z(t){return t?t.startsWith("color-")||t.startsWith("spectrum-")||t.startsWith("--")?t.startsWith("--")?`var(${t})`:`var(--${t})`:t:""}function jn(t,r=""){let e=b("mas-mnemonic",{slot:"icons",src:t,size:"l"});return r&&(e.setAttribute("role","img"),e.setAttribute("aria-label",r)),e}function Mt(t,r){return t?Array.from(t.querySelectorAll(`[slot="${r}"]`)).map(e=>e.cloneNode(!0)):[]}function tr(t){return t?Array.from(t.childNodes).map(r=>r.cloneNode(!0)):[]}function ae(t){if(!t)return[];if(t.nodeType!==Node.ELEMENT_NODE)return[t.cloneNode(!0)];let r=Ot(t.cloneNode(!0)),e=Array.from(r.childNodes).some(o=>o.nodeType===Node.TEXT_NODE&&o.textContent.trim()),n=r.childElementCount===1&&r.firstElementChild&&!e;return n&&r.firstElementChild.matches?.(`${_}, ${Ht}, merch-icon, merch-badge, mas-mnemonic`)?[r.firstElementChild.cloneNode(!0)]:n?tr(r.firstElementChild):["P","DIV","H1","H2","H3","H4","H5","H6"].includes(r.tagName)?tr(r):[r]}function Ot(t){return!t||t.nodeType!==Node.ELEMENT_NODE||(t.removeAttribute("slot"),t.querySelectorAll?.("[slot]").forEach(r=>r.removeAttribute("slot"))),t}function er(t,r){return Mt(t,r).map(Ot).find(Boolean)}function Gn(t,r){if(!t)return null;let e=b("p",{class:r}),n=ae(t);return n.length?e.append(...n):e.textContent=t.textContent?.trim()||"",e.textContent?.trim()||e.childNodes.length?e:null}function Wn(t){if(!t)return null;let r=b("p",{class:"body"}),e=ae(t);return e.length?r.append(...e):r.textContent=t.textContent?.trim()||"",r.textContent?.trim()||r.childNodes.length?r:null}function Yn(t=[]){let r={strikethrough:[],price:[],legal:[]},e="";return t.forEach(n=>{let o=Ot(n.cloneNode(!0)),i=dr(o);!i&&o.nodeType===Node.TEXT_NODE&&(i=o.textContent?.trim()?e||"price":""),!i&&o.textContent?.trim()&&(i="price"),i&&(r[i].push(o),e=i)}),r}function Jt(t,r=[]){let e=r.filter(n=>n&&(n.nodeType!==Node.TEXT_NODE||n.textContent.trim()));return e.length?b("div",{class:t},e):null}function Kn(t=[]){for(let r of t){if(r?.nodeType!==Node.ELEMENT_NODE)continue;let e=r.matches?.(_)?r.cloneNode(!0):r.querySelector?.(_)?.cloneNode(!0);if(e)return e.setAttribute("data-template",Y),e.setAttribute("data-display-plan-type","true"),e.setAttribute("data-display-per-unit","false"),e.setAttribute("data-display-tax","false"),e.setAttribute("data-display-old-price","false"),e.hasAttribute("data-force-tax-exclusive")||e.setAttribute("data-force-tax-exclusive","true"),e}return null}function Xn(t){let e=Mt(t,Nt.ctas).map(Ot).flatMap(o=>o.matches?.(".con-button, button, a.con-button")?[o]:Array.from(o.querySelectorAll?.(".con-button, button, a.con-button")||[]).map(i=>i.cloneNode(!0)));if(!e.length)return null;let n=b("div",{class:"buttons-wrapper"});return e.forEach((o,i)=>{let a=i===0?b("p"):b("div",{class:"supplemental-text body-xl action-area"});a.append(o),n.append(a)}),n}function Qn(t){let r=document.createDocumentFragment(),e=b("div",{class:"heading-content content"}),n=b("div",{class:"heading-button"}),o=Mt(t,"icons");if(o.length){let E=b("p",{class:"header-product-tile"});o.forEach(p=>{if(p.tagName==="MERCH-ICON"){let v=jn(p.getAttribute("src")||"",p.getAttribute("alt")||"");v.removeAttribute("slot"),E.append(v);return}p.removeAttribute?.("slot"),E.append(p)}),e.append(E)}let i=Gn(er(t,Nt.title),"tracking-header");i&&e.append(i);let a=Wn(er(t,Nt.description));a&&e.append(a);let c=Mt(t,Nt.prices).flatMap(E=>ae(E)),s=Yn(c),l=Jt("pricing-before",s.strikethrough);l&&n.append(l);let m=Jt("pricing",s.price);m&&n.append(m);let d=s.legal.length?s.legal:[Kn(s.price)].filter(Boolean),h=Jt("pricing-after",d);h&&n.append(h);let y=Xn(t);return y&&n.append(y),r.append(e,n),r}function Zn(t){if(!t)return null;if(t._masTableBadgeData?.contentHtml||t._masTableBadgeData?.text)return t._masTableBadgeData;let r=t.querySelector('[slot="badge"]'),e=t.shadowRoot?.getElementById("badge"),n=r?.matches("merch-badge")?r:r?.querySelector("merch-badge"),o=n?.innerHTML?.trim()||r?.innerHTML?.trim()||e?.innerHTML?.trim()||"",i=n?.textContent?.trim()||r?.textContent?.trim()||e?.textContent?.trim()||t.getAttribute("badge-text")||"";if(!o&&!i)return null;let a=e?getComputedStyle(e):null,c=z(n?.getAttribute("background-color")||"")||z(t.getAttribute("badge-background-color")||"")||a?.backgroundColor||"",s=z(n?.getAttribute("color")||"")||z(t.getAttribute("badge-color")||"")||a?.color||"";return{contentHtml:o,text:i,icon:n?.getAttribute("icon")||"",backgroundColor:c,textColor:s}}function Jn(t){return t?t.startsWith("sp-icon-")?b(t,{class:"badge-icon"}):b("img",{class:"badge-icon",src:t,alt:""}):null}function to(t){let r=b("span",{class:"badge-inline-content"}),e=Jn(t.icon),n=!!(t.contentHtml||t.text);if(e&&r.append(e),e&&n&&r.append(document.createTextNode(" ")),t.contentHtml){let o=document.createElement("template");o.innerHTML=t.contentHtml,r.append(o.content.cloneNode(!0))}else t.text&&r.append(document.createTextNode(t.text));return r}function eo(t={}){let r=t.badge;if(!r)return null;if(typeof r!="string"){let a=String(r).trim();return a?{contentHtml:"",text:a,icon:"",backgroundColor:z(t.badgeBackgroundColor||""),textColor:z(t.badgeColor||"")}:null}let e=document.createElement("template");e.innerHTML=r;let n=e.content.querySelector("merch-badge")||e.content.firstElementChild,o=n?.innerHTML?.trim()||"",i=n?.textContent?.trim()||r.trim();return!o&&!i?null:{contentHtml:o,text:i,icon:n?.getAttribute?.("icon")||"",backgroundColor:z(n?.getAttribute?.("background-color")||t.badgeBackgroundColor||""),textColor:z(n?.getAttribute?.("color")||t.badgeColor||"")}}async function ro(t,r,e){let n=await Promise.all(t.map(async o=>{let i=r.get(o);if(!i)return[o,null];try{let a=document.createElement("merch-card"),c={...Ln(i),variant:je};return a.variant=je,a._masTableBadgeData=eo(c),e.append(a),await De({...i,fields:c,settings:i.settings||{},variantLayout:{aemFragmentMapping:Fe}},a),[o,a]}catch{return[o,null]}}));return new Map(n.filter(([,o])=>o))}function no(t,r,e){if(!t.classList.contains("merch")&&!t.classList.contains("compare-chart-features")||!t.classList.contains("highlight"))return;let n=t.firstElementChild;if(!n)return;let o=Array.from(n.children),i=t.classList.contains("compare-chart-features")?1:0;r.forEach((a,c)=>{let s=o[c+i],l=Zn(e.get(a));if(s){if(!l?.contentHtml&&!l?.text){s.removeAttribute("data-has-badge"),s.replaceChildren();return}s.dataset.hasBadge="true",s.replaceChildren(to(l)),l.backgroundColor&&(s.style.backgroundColor=l.backgroundColor,s.style.borderColor=l.backgroundColor),l.textColor&&(s.style.color=l.textColor)}})}function oo(t,r,e){if(!t.classList.contains("merch")&&!t.classList.contains("compare-chart-features")||!r?.length)return;let n=Array.from(t.children);if(!n.length)return;let o=t.classList.contains("highlight")&&n.length>1?1:0,i=n[o];if(!i)return;let a=Array.from(i.children),c=t.classList.contains("compare-chart-features")?1:0;r.forEach((s,l)=>{let m=a[l+c],d=e.get(s);!m||!d||m.replaceChildren(Qn(d))})}function io(t,r){cr(r,"blockName")==="Table"&&sr(r,"selectedVariantNames").forEach(n=>{n&&t.classList.add(String(n))})}async function ao(t){let r=[...t.querySelectorAll(Ht)];await Promise.all(r.map(e=>typeof e.onceSettled!="function"?Promise.resolve(e):e.onceSettled().catch(()=>e)))}var lt,Z,dt,$,ht,mt,J,pt,ut,tt,q,M,ne=class extends HTMLElement{constructor(){super();S(this,lt,[]);S(this,Z,0);S(this,dt);S(this,$);S(this,ht);S(this,mt);S(this,J);S(this,pt);S(this,ut,Promise.resolve(this));S(this,tt);S(this,q);S(this,M);L(this,tt,document.createElement("style")),f(this,tt).setAttribute(nr,""),L(this,q,document.createElement("div")),L(this,M,document.createElement("div")),f(this,M).className="mas-table-scratch",f(this,M).hidden=!0,f(this,M).setAttribute("aria-hidden","true"),this.append(f(this,tt),f(this,q),f(this,M)),this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}connectedCallback(){let e=this.localName||te;L(this,$,nt()),f(this,dt)??L(this,dt,f(this,$)?.Log?.module?.(e)??f(this,$)?.log?.module?.(e)??console),this.syncDirection();let n=this.getAttribute("id")??this.aemFragment?.getAttribute("fragment")??"unknown";L(this,J,`${Be}${n}${Ee}`),L(this,pt,`${Be}${n}${ve}`),performance.mark(f(this,J)),this.addEventListener(ft,this.handleAemFragmentEvents),this.addEventListener(gt,this.handleAemFragmentEvents),this.aemFragment?.setAttribute("hidden","")}disconnectedCallback(){this.removeEventListener(ft,this.handleAemFragmentEvents),this.removeEventListener(gt,this.handleAemFragmentEvents),this.cleanup()}get aemFragment(){return this.querySelector("aem-fragment")}get updateComplete(){return f(this,ut)}syncDirection(){let e=this.closest("[dir]")?.getAttribute("dir")||document.documentElement.getAttribute("dir")||"ltr";this.setAttribute("dir",e)}cleanup(){f(this,lt).splice(0).forEach(e=>e())}beginUpdate(){L(this,ut,new Promise((e,n)=>{L(this,ht,e),L(this,mt,n)}))}async handleAemFragmentEvents(e){var o;if(!this.isConnected)return;if(e.type===ft&&e.target===this.aemFragment){this.fail("AEM fragment cannot be loaded");return}if(e.type!==gt||e.target!==this.aemFragment)return;this.removeAttribute("failed"),this.beginUpdate();let n=++de(this,Z)._;try{if(await this.renderFragment(e.detail),n!==f(this,Z))return;await ao(this),f(this,q).querySelectorAll(".table").forEach(c=>rt(c));let i=performance.measure(f(this,pt),f(this,J)),a={...this.aemFragment?.fetchInfo,...f(this,$)?.duration,measure:xe(i)};this.dispatchEvent(new CustomEvent(he,{bubbles:!0,composed:!0,detail:a})),(o=f(this,ht))==null||o.call(this,this)}catch(i){if(n!==f(this,Z))return;this.fail(i.message||"Failed to render table")}}getStickyTop(){let e=getComputedStyle(this).getPropertyValue("--mas-table-sticky-top"),n=parseFloat(e);return Number.isFinite(n)?n:0}async renderFragment(e){let n=oe(e),o=cr(n,"compareChart").trim();if(!o)throw new Error("compareChart field is missing");this.cleanup(),f(this,q).replaceChildren(),f(this,M).replaceChildren();let i=document.createElement("div");i.className="mas-table-empty",Sn(i,o);let a=Array.from(i.querySelectorAll(".table"));if(!a.length)throw new Error("compareChart does not contain a .table block");let c=Cn(e.references),s=sr(n,"cards").map(String),l=await ro(s,c,f(this,M)),m=Nn(e);a.forEach(d=>{io(d,n),no(d,s,l),oo(d,s,l);let h=Vn(d,{labels:m,getStickyTop:()=>this.getStickyTop()});f(this,lt).push(h)}),f(this,q).append(...Array.from(i.childNodes))}fail(e,n={}){var a;if(!this.isConnected)return;this.setAttribute("failed","");let o=this.localName||te,i={...this.aemFragment?.fetchInfo,...f(this,$)?.duration,...n,message:e};f(this,dt)?.error?.(`${o}: ${e}`,i),this.dispatchEvent(new CustomEvent(me,{bubbles:!0,composed:!0,detail:i})),(a=f(this,mt))==null||a.call(this,new Error(e))}async checkReady(){let e=new Promise(o=>setTimeout(()=>o("timeout"),Xt));if(this.aemFragment){let o=await Promise.race([this.aemFragment.updateComplete,e]);if(o===!1||o==="timeout"){let i=o==="timeout"?`AEM fragment was not resolved within ${Xt} timeout`:"AEM fragment cannot be loaded";throw this.fail(i),new Error(i)}}let n=await Promise.race([this.updateComplete,e]);if(n==="timeout"){let o=`mas-table was not resolved within ${Xt} timeout`;throw this.fail(o),new Error(o)}return n}};lt=new WeakMap,Z=new WeakMap,dt=new WeakMap,$=new WeakMap,ht=new WeakMap,mt=new WeakMap,J=new WeakMap,pt=new WeakMap,ut=new WeakMap,tt=new WeakMap,q=new WeakMap,M=new WeakMap;customElements.define(te,ne);export{ne as MasTable};
diff --git a/web-components/dist/mas.js b/web-components/dist/mas.js
index da863e2f5..2ce2a5a58 100644
--- a/web-components/dist/mas.js
+++ b/web-components/dist/mas.js
@@ -501,12 +501,12 @@ window.masPriceLiterals = {
":type": "sheet"
}
.data;
-var Kn=Object.defineProperty;var Qn=e=>{throw TypeError(e)};var _l=(e,t,r)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var et=(e,t)=>()=>(e&&(t=e(e=0)),t);var Zn=(e,t)=>{for(var r in t)Kn(e,r,{get:t[r],enumerable:!0})};var m=(e,t,r)=>_l(e,typeof t!="symbol"?t+"":t,r),ta=(e,t,r)=>t.has(e)||Qn("Cannot "+r);var p=(e,t,r)=>(ta(e,t,"read from private field"),r?r.call(e):t.get(e)),E=(e,t,r)=>t.has(e)?Qn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),y=(e,t,r,i)=>(ta(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r),Z=(e,t,r)=>(ta(e,t,"access private method"),r);var Jn=(e,t,r,i)=>({set _(a){y(e,t,a,r)},get _(){return p(e,t,i)}});var Ii,zi,hn,Gs,zr,me,b,pn,Di,mn=et(()=>{Ii=window,zi=Ii.ShadowRoot&&(Ii.ShadyCSS===void 0||Ii.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,hn=Symbol(),Gs=new WeakMap,zr=class{constructor(t,r,i){if(this._$cssResult$=!0,i!==hn)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o,r=this.t;if(zi&&t===void 0){let i=r!==void 0&&r.length===1;i&&(t=Gs.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&Gs.set(r,t))}return t}toString(){return this.cssText}},me=e=>new zr(typeof e=="string"?e:e+"",void 0,hn),b=(e,...t)=>{let r=e.length===1?e[0]:t.reduce((i,a,n)=>i+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(a)+e[n+1],e[0]);return new zr(r,e,hn)},pn=(e,t)=>{zi?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let i=document.createElement("style"),a=Ii.litNonce;a!==void 0&&i.setAttribute("nonce",a),i.textContent=r.cssText,e.appendChild(i)})},Di=zi?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let i of t.cssRules)r+=i.cssText;return me(r)})(e):e});var un,$i,qs,Hh,Vs,fn,js,gn,xn,Be,Hi=et(()=>{mn();mn();$i=window,qs=$i.trustedTypes,Hh=qs?qs.emptyScript:"",Vs=$i.reactiveElementPolyfillSupport,fn={toAttribute(e,t){switch(t){case Boolean:e=e?Hh:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},js=(e,t)=>t!==e&&(t==t||e==e),gn={attribute:!0,type:String,converter:fn,reflect:!1,hasChanged:js},xn="finalized",Be=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((r,i)=>{let a=this._$Ep(i,r);a!==void 0&&(this._$Ev.set(a,i),t.push(a))}),t}static createProperty(t,r=gn){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(t,r),!r.noAccessor&&!this.prototype.hasOwnProperty(t)){let i=typeof t=="symbol"?Symbol():"__"+t,a=this.getPropertyDescriptor(t,i,r);a!==void 0&&Object.defineProperty(this.prototype,t,a)}}static getPropertyDescriptor(t,r,i){return{get(){return this[r]},set(a){let n=this[t];this[r]=a,this.requestUpdate(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||gn}static finalize(){if(this.hasOwnProperty(xn))return!1;this[xn]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let r=this.properties,i=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let a of i)this.createProperty(a,r[a])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let i=new Set(t.flat(1/0).reverse());for(let a of i)r.unshift(Di(a))}else t!==void 0&&r.push(Di(t));return r}static _$Ep(t,r){let i=r.attribute;return i===!1?void 0:typeof i=="string"?i:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(r=>r(this))}addController(t){var r,i;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((i=t.hostConnected)===null||i===void 0||i.call(t))}removeController(t){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var t;let r=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return pn(r,this.constructor.elementStyles),r}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var i;return(i=r.hostConnected)===null||i===void 0?void 0:i.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(r=>{var i;return(i=r.hostDisconnected)===null||i===void 0?void 0:i.call(r)})}attributeChangedCallback(t,r,i){this._$AK(t,i)}_$EO(t,r,i=gn){var a;let n=this.constructor._$Ep(t,i);if(n!==void 0&&i.reflect===!0){let o=(((a=i.converter)===null||a===void 0?void 0:a.toAttribute)!==void 0?i.converter:fn).toAttribute(r,i.type);this._$El=t,o==null?this.removeAttribute(n):this.setAttribute(n,o),this._$El=null}}_$AK(t,r){var i;let a=this.constructor,n=a._$Ev.get(t);if(n!==void 0&&this._$El!==n){let o=a.getPropertyOptions(n),s=typeof o.converter=="function"?{fromAttribute:o.converter}:((i=o.converter)===null||i===void 0?void 0:i.fromAttribute)!==void 0?o.converter:fn;this._$El=n,this[n]=s.fromAttribute(r,o.type),this._$El=null}}requestUpdate(t,r,i){let a=!0;t!==void 0&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||js)(this[t],r)?(this._$AL.has(t)||this._$AL.set(t,r),i.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,i))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((a,n)=>this[n]=a),this._$Ei=void 0);let r=!1,i=this._$AL;try{r=this.shouldUpdate(i),r?(this.willUpdate(i),(t=this._$ES)===null||t===void 0||t.forEach(a=>{var n;return(n=a.hostUpdate)===null||n===void 0?void 0:n.call(a)}),this.update(i)):this._$Ek()}catch(a){throw r=!1,this._$Ek(),a}r&&this._$AE(i)}willUpdate(t){}_$AE(t){var r;(r=this._$ES)===null||r===void 0||r.forEach(i=>{var a;return(a=i.hostUpdated)===null||a===void 0?void 0:a.call(i)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((r,i)=>this._$EO(i,this[i],r)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};Be[xn]=!0,Be.elementProperties=new Map,Be.elementStyles=[],Be.shadowRootOptions={mode:"open"},Vs?.({ReactiveElement:Be}),((un=$i.reactiveElementVersions)!==null&&un!==void 0?un:$i.reactiveElementVersions=[]).push("1.6.3")});function ac(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ws!==void 0?Ws.createHTML(t):t}function $t(e,t,r=e,i){var a,n,o,s;if(t===Fe)return t;let c=i!==void 0?(a=r._$Co)===null||a===void 0?void 0:a[i]:r._$Cl,l=Hr(t)?void 0:t._$litDirective$;return c?.constructor!==l&&((n=c?._$AO)===null||n===void 0||n.call(c,!1),l===void 0?c=void 0:(c=new l(e),c._$AT(e,r,i)),i!==void 0?((o=(s=r)._$Co)!==null&&o!==void 0?o:s._$Co=[])[i]=c:r._$Cl=c),c!==void 0&&(t=$t(e,c._$AS(e,t.values),c,i)),t}var vn,Bi,Dt,Ws,yn,Xe,ec,Bh,bt,$r,Hr,tc,Fh,bn,Dr,Ys,Xs,xt,Ks,Qs,rc,ic,u,of,Fe,w,Zs,vt,Uh,Br,wn,Fr,Ht,En,Gh,An,Sn,Cn,Js,nc,Ur=et(()=>{Bi=window,Dt=Bi.trustedTypes,Ws=Dt?Dt.createPolicy("lit-html",{createHTML:e=>e}):void 0,yn="$lit$",Xe=`lit$${(Math.random()+"").slice(9)}$`,ec="?"+Xe,Bh=`<${ec}>`,bt=document,$r=()=>bt.createComment(""),Hr=e=>e===null||typeof e!="object"&&typeof e!="function",tc=Array.isArray,Fh=e=>tc(e)||typeof e?.[Symbol.iterator]=="function",bn=`[
-\f\r]`,Dr=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ys=/-->/g,Xs=/>/g,xt=RegExp(`>|${bn}(?:([^\\s"'>=/]+)(${bn}*=${bn}*(?:[^
-\f\r"'\`<>=]|("|')|))|$)`,"g"),Ks=/'/g,Qs=/"/g,rc=/^(?:script|style|textarea|title)$/i,ic=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),u=ic(1),of=ic(2),Fe=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),Zs=new WeakMap,vt=bt.createTreeWalker(bt,129,null,!1);Uh=(e,t)=>{let r=e.length-1,i=[],a,n=t===2?"0){a.textContent=Dt?Dt.emptyScript:"";for(let f=0;f0){a.textContent=Qt?Qt.emptyScript:"";for(let u=0;u=d&&l<=h},lt={MONTH:"MONTH",YEAR:"YEAR"},Cd={[ye.ANNUAL]:12,[ye.MONTHLY]:1,[ye.THREE_YEARS]:36,[ye.TWO_YEARS]:24},$a=(e,t)=>({accept:e,round:t}),Td=[$a(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),$a(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.round(t/e*100)/100),$a(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],Ha={[rt.YEAR]:{[ye.MONTHLY]:lt.MONTH,[ye.ANNUAL]:lt.YEAR},[rt.MONTH]:{[ye.MONTHLY]:lt.MONTH}},kd=(e,t)=>e.indexOf(`'${t}'`)===0,_d=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),i=Lo(r);return!!i?t||(r=r.replace(/[,\.]0+/,i)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Ld(e)),r},Pd=e=>{let t=Md(e),r=kd(e,t),i=e.replace(/'.*?'/,""),a=ko.test(i)||_o.test(i);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:a}},Po=e=>e.replace(ko,To).replace(_o,To),Ld=e=>e.match(/#(.?)#/)?.[1]===Co?Sd:Co,Md=e=>e.match(/'(.*?)'/)?.[1]??"",Lo=e=>e.match(/0(.?)0/)?.[1]??"";function Nt({formatString:e,price:t,usePrecision:r,isIndianPrice:i=!1},a,n=o=>o){let{currencySymbol:o,isCurrencyFirst:s,hasCurrencySpace:c}=Pd(e),l=r?Lo(e):"",d=_d(e,r),h=r?2:0,g=n(t,{currencySymbol:o}),f=i?g.toLocaleString("hi-IN",{minimumFractionDigits:h,maximumFractionDigits:h}):So(d,g),x=r?f.lastIndexOf(l):f.length,v=f.substring(0,x),S=f.substring(x+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,f).replace(/SYMBOL/,o),currencySymbol:o,decimals:S,decimalsDelimiter:l,hasCurrencySpace:c,integer:v,isCurrencyFirst:s,recurrenceTerm:a}}var Mo=e=>{let{commitment:t,term:r,usePrecision:i}=e,a=Cd[r]??1;return Nt(e,a>1?lt.MONTH:Ha[t]?.[r],n=>{let o={divisor:a,price:n,usePrecision:i},{round:s}=Td.find(({accept:c})=>c(o));if(!s)throw new Error(`Missing rounding rule for: ${JSON.stringify(o)}`);return s(o)})},Ro=({commitment:e,term:t,...r})=>Nt(r,Ha[e]?.[t]),Oo=e=>{let{commitment:t,instant:r,price:i,originalPrice:a,priceWithoutDiscount:n,promotion:o,quantity:s=1,term:c}=e;if(t===rt.YEAR&&c===ye.MONTHLY){if(!o)return Nt(e,lt.YEAR,Da);let{displaySummary:{outcomeType:l,duration:d}={}}=o;switch(l){case"PERCENTAGE_DISCOUNT":if(dt(o,r,s)){let h=parseInt(d.replace("P","").replace("M",""));if(isNaN(h))return Da(i);let g=a*h,f=n*(12-h),x=Math.round((g+f)*100)/100;return Nt({...e,price:x},lt.YEAR)}default:return Nt(e,lt.YEAR,()=>Da(n??i))}}return Nt(e,Ha[t]?.[c])};var No="download",Io="upgrade",zo={e:"EDU",t:"TEAM"};function yi(e,t={},r=""){let i=pe();if(!i)return null;let{checkoutMarketSegment:a,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:h,quantity:g,wcsOsi:f,extraOptions:x,analyticsId:v}=i.collectCheckoutOptions(t),S=bi(e,{checkoutMarketSegment:a,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:h,quantity:g,wcsOsi:f,extraOptions:x,analyticsId:v});return r&&(S.innerHTML=`${r}`),S}function wi(e){return class extends e{constructor(){super(...arguments);m(this,"checkoutActionHandler");m(this,"masElement",new je(this))}attributeChangedCallback(i,a,n){this.masElement.attributeChangedCallback(i,a,n)}connectedCallback(){this.masElement.connectedCallback(),this.addEventListener("click",this.clickHandler)}disconnectedCallback(){this.masElement.disconnectedCallback(),this.removeEventListener("click",this.clickHandler)}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}get options(){return this.masElement.options}get marketSegment(){let i=this.options?.ms??this.value?.[0].marketSegments?.[0];return zo[i]??i}get customerSegment(){let i=this.options?.cs??this.value?.[0]?.customerSegment;return zo[i]??i}get is3in1Modal(){return Object.values(ot).includes(this.getAttribute("data-modal"))}get isOpen3in1Modal(){let i=document.querySelector("meta[name=mas-ff-3in1]");return this.is3in1Modal&&(!i||i.content!=="off")}requestUpdate(i=!1){return this.masElement.requestUpdate(i)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}async render(i={}){let a=pe();if(!a)return!1;this.dataset.imsCountry||a.imsCountryPromise.then(f=>{f&&(this.dataset.imsCountry=f)}),i.imsCountry=null;let n=a.collectCheckoutOptions(i,this);if(!n.wcsOsi.length)return!1;let o;try{o=JSON.parse(n.extraOptions??"{}")}catch(f){this.masElement.log?.error("cannot parse exta checkout options",f)}let s=this.masElement.togglePending(n);this.setCheckoutUrl("");let c=a.resolveOfferSelectors(n),l=await Promise.all(c);l=l.map(f=>wr(f,n));let d=l.flat().find(f=>f.promotion);!dt(d?.promotion,d?.promotion?.displaySummary?.instant,n.quantity[0])&&n.promotionCode&&delete n.promotionCode,n.country=this.dataset.imsCountry||n.country;let g=await a.buildCheckoutAction?.(l.flat(),{...o,...n},this);return this.renderOffers(l.flat(),n,{},g,s)}renderOffers(i,a,n={},o=void 0,s=void 0){let c=pe();if(!c)return!1;if(a={...JSON.parse(this.dataset.extraOptions??"{}"),...a,...n},s??(s=this.masElement.togglePending(a)),this.checkoutActionHandler&&(this.checkoutActionHandler=void 0),o){this.classList.remove(No,Io),this.masElement.toggleResolved(s,i,a);let{url:d,text:h,className:g,handler:f}=o;d&&this.setCheckoutUrl(d),h&&(this.firstElementChild.innerHTML=h),g&&this.classList.add(...g.split(" ")),f&&(this.setCheckoutUrl("#"),this.checkoutActionHandler=f.bind(this))}if(i.length){if(this.masElement.toggleResolved(s,i,a)){if(!this.classList.contains(No)&&!this.classList.contains(Io)){let d=c.buildCheckoutURL(i,a);this.setCheckoutUrl(a.modal==="true"?"#":d)}return!0}}else{let d=new Error(`Not provided: ${a?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(s,d,a))return this.setCheckoutUrl("#"),!0}}setCheckoutUrl(){}clickHandler(i){}updateOptions(i={}){let a=pe();if(!a)return!1;let{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:h,promotionCode:g,quantity:f,wcsOsi:x}=a.collectCheckoutOptions(i);return Eo(this,{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:h,promotionCode:g,quantity:f,wcsOsi:x}),!0}}}var Ar=class Ar extends wi(HTMLAnchorElement){static createCheckoutLink(t={},r=""){return yi(Ar,t,r)}setCheckoutUrl(t){this.setAttribute("href",t)}get isCheckoutLink(){return!0}clickHandler(t){if(this.checkoutActionHandler){this.checkoutActionHandler?.(t);return}}};m(Ar,"is","checkout-link"),m(Ar,"tag","a");var De=Ar;window.customElements.get(De.is)||window.customElements.define(De.is,De,{extends:De.tag});var Rd="p_draft_landscape",Od="/store/",Nd=new Map([["countrySpecific","cs"],["customerSegment","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["addonProductArrangementCode","ao"],["offerType","ot"],["marketSegment","ms"]]),Ba=new Set(["af","ai","ao","apc","appctxid","cli","co","cs","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Id=["env","workflowStep","clientId","country"],Do=new Set(["gid","gtoken","notifauditid","cohortid","productname","sdid","attimer","gcsrc","gcprog","gcprogcat","gcpagetype","mv","mv2"]),$o=e=>Nd.get(e)??e;function Ei(e,t,r){for(let[i,a]of Object.entries(e)){let n=$o(i);a!=null&&r.has(n)&&t.set(n,a)}}function zd(e){switch(e){case va.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function Dd(e,t){for(let r in e){let i=e[r];for(let[a,n]of Object.entries(i)){if(n==null)continue;let o=$o(a);t.set(`items[${r}][${o}]`,n)}}}function $d({url:e,modal:t,is3in1:r}){if(!r||!e?.searchParams)return e;e.searchParams.set("rtc","t"),e.searchParams.set("lo","sl");let i=e.searchParams.get("af");return e.searchParams.set("af",[i,"uc_new_user_iframe","uc_new_system_close"].filter(Boolean).join(",")),e.searchParams.get("cli")!=="doc_cloud"&&e.searchParams.set("cli",t===ot.CRM?"creative":"mini_plans"),e}function Hd(e){let t=new URLSearchParams(window.location.search),r={};Do.forEach(i=>{let a=t.get(i);a!==null&&(r[i]=a)}),Object.keys(r).length>0&&Ei(r,e.searchParams,Do)}function Ho(e){Bd(e);let{env:t,items:r,workflowStep:i,marketSegment:a,customerSegment:n,offerType:o,productArrangementCode:s,landscape:c,modal:l,is3in1:d,preselectPlan:h,...g}=e,f=new URL(zd(t));if(f.pathname=`${Od}${i}`,i!==ce.SEGMENTATION&&i!==ce.CHANGE_PLAN_TEAM_PLANS&&Dd(r,f.searchParams),Ei({...g},f.searchParams,Ba),Hd(f),c===Ve.DRAFT&&Ei({af:Rd},f.searchParams,Ba),i===ce.SEGMENTATION){let x={marketSegment:a,offerType:o,customerSegment:n,productArrangementCode:s,quantity:r?.[0]?.quantity,addonProductArrangementCode:s?r?.find(v=>v.productArrangementCode!==s)?.productArrangementCode:r?.[1]?.productArrangementCode};h?.toLowerCase()==="edu"?f.searchParams.set("ms","EDU"):h?.toLowerCase()==="team"&&f.searchParams.set("cs","TEAM"),Ei(x,f.searchParams,Ba),f.searchParams.get("ot")==="PROMOTION"&&f.searchParams.delete("ot"),f=$d({url:f,modal:l,is3in1:d})}return f.toString()}function Bd(e){for(let t of Id)if(!e[t])throw new Error(`Argument "checkoutData" is not valid, missing: ${t}`);if(e.workflowStep!==ce.SEGMENTATION&&e.workflowStep!==ce.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}var N=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflowStep:ce.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,displayPlanType:!1,env:Me.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,alternativePrice:!1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:Ve.PUBLISHED});function Bo({settings:e,providers:t}){function r(n,o){let{checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:h,quantity:g,preselectPlan:f,env:x}=e,v={checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:h,quantity:g,preselectPlan:f,env:x};if(o)for(let Tt of t.checkout)Tt(o,v);let{checkoutMarketSegment:S,checkoutWorkflowStep:z=c,imsCountry:I,country:C=I??l,language:O=d,quantity:K=g,entitlement:q,upgrade:Q,modal:ee,perpetual:de,promotionCode:ie=h,wcsOsi:W,extraOptions:$,...he}=Object.assign(v,o?.dataset??{},n??{}),be=br(z,ce,N.checkoutWorkflowStep);return v=pi({...he,extraOptions:$,checkoutClientId:s,checkoutMarketSegment:S,country:C,quantity:Ot(K,N.quantity),checkoutWorkflowStep:be,language:O,entitlement:T(q),upgrade:T(Q),modal:ee,perpetual:T(de),promotionCode:ui(ie).effectivePromoCode,wcsOsi:xi(W),preselectPlan:f}),v}function i(n,o){if(!Array.isArray(n)||!n.length||!o)return"";let{env:s,landscape:c}=e,{checkoutClientId:l,checkoutMarketSegment:d,checkoutWorkflowStep:h,country:g,promotionCode:f,quantity:x,preselectPlan:v,ms:S,cs:z,...I}=r(o),C=document.querySelector("meta[name=mas-ff-3in1]"),O=Object.values(ot).includes(o.modal)&&(!C||C.content!=="off"),K=window.frameElement||O?"if":"fp",[{productArrangementCode:q,marketSegments:[Q],customerSegment:ee,offerType:de}]=n,ie=S??Q??d,W=z??ee;v?.toLowerCase()==="edu"?ie="EDU":v?.toLowerCase()==="team"&&(W="TEAM");let $={is3in1:O,checkoutPromoCode:f,clientId:l,context:K,country:g,env:s,items:[],marketSegment:ie,customerSegment:W,offerType:de,productArrangementCode:q,workflowStep:h,landscape:c,...I},he=x[0]>1?x[0]:void 0;if(n.length===1){let{offerId:be}=n[0];$.items.push({id:be,quantity:he})}else $.items.push(...n.map(({offerId:be,productArrangementCode:Tt})=>({id:be,quantity:he,...O?{productArrangementCode:Tt}:{}})));return Ho($)}let{createCheckoutLink:a}=De;return{CheckoutLink:De,CheckoutWorkflowStep:ce,buildCheckoutURL:i,collectCheckoutOptions:r,createCheckoutLink:a}}function Fd({interval:e=200,maxAttempts:t=25}={}){let r=le.module("ims");return new Promise(i=>{r.debug("Waing for IMS to be ready");let a=0;function n(){window.adobeIMS?.initialized?i():++a>t?(r.debug("Timeout"),i()):setTimeout(n,e)}n()})}function Ud(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function Gd(e){let t=le.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:i})=>(t.debug("Got user country:",i),i),i=>{t.error("Unable to get user country:",i)}):null)}function Fo({}){let e=Fd(),t=Ud(e),r=Gd(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}var Uo=window.masPriceLiterals;function Go(e){if(Array.isArray(Uo)){let t=e.locale==="id_ID"?"in":e.language,r=a=>Uo.find(n=>wa(n.lang,a)),i=r(t)??r(N.language);if(i)return Object.freeze(i)}return{}}var Fa=function(e,t){return Fa=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},Fa(e,t)};function Sr(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Fa(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var L=function(){return L=Object.assign||function(t){for(var r,i=1,a=arguments.length;i0}),r=[],i=0,a=t;i=d&&l<=h},Et={MONTH:"MONTH",YEAR:"YEAR"},tp={[Ce.ANNUAL]:12,[Ce.MONTHLY]:1,[Ce.THREE_YEARS]:36,[Ce.TWO_YEARS]:24},kn=(e,t)=>({accept:e,round:t}),rp=[kn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),kn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.round(t/e*100)/100),kn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],_n={[xt.YEAR]:{[Ce.MONTHLY]:Et.MONTH,[Ce.ANNUAL]:Et.YEAR},[xt.MONTH]:{[Ce.MONTHLY]:Et.MONTH}},ip=(e,t)=>e.indexOf(`'${t}'`)===0,ap=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),i=Os(r);return!!i?t||(r=r.replace(/[,\.]0+/,i)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+op(e)),r},np=e=>{let t=sp(e),r=ip(e,t),i=e.replace(/'.*?'/,""),a=Ms.test(i)||Rs.test(i);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:a}},Ns=e=>e.replace(Ms,Ps).replace(Rs,Ps),op=e=>e.match(/#(.?)#/)?.[1]===Ls?ep:Ls,sp=e=>e.match(/'(.*?)'/)?.[1]??"",Os=e=>e.match(/0(.?)0/)?.[1]??"";function Yt({formatString:e,price:t,usePrecision:r,isIndianPrice:i=!1},a,n=o=>o){let{currencySymbol:o,isCurrencyFirst:s,hasCurrencySpace:c}=np(e),l=r?Os(e):"",d=ap(e,r),h=r?2:0,p=n(t,{currencySymbol:o}),u=i?p.toLocaleString("hi-IN",{minimumFractionDigits:h,maximumFractionDigits:h}):_s(d,p),f=r?u.lastIndexOf(l):u.length,b=u.substring(0,f),y=u.substring(f+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,u).replace(/SYMBOL/,o),currencySymbol:o,decimals:y,decimalsDelimiter:l,hasCurrencySpace:c,integer:b,isCurrencyFirst:s,recurrenceTerm:a}}var Is=e=>{let{commitment:t,term:r,usePrecision:i}=e,a=tp[r]??1;return Yt(e,a>1?Et.MONTH:_n[t]?.[r],n=>{let o={divisor:a,price:n,usePrecision:i},{round:s}=rp.find(({accept:c})=>c(o));if(!s)throw new Error(`Missing rounding rule for: ${JSON.stringify(o)}`);return s(o)})},Hs=({commitment:e,term:t,...r})=>Yt(r,_n[e]?.[t]),zs=e=>{let{commitment:t,instant:r,price:i,originalPrice:a,priceWithoutDiscount:n,promotion:o,quantity:s=1,term:c}=e;if(t===xt.YEAR&&c===Ce.MONTHLY){if(!o)return Yt(e,Et.YEAR,Tn);let{displaySummary:{outcomeType:l,duration:d}={}}=o;switch(l){case"PERCENTAGE_DISCOUNT":if(At(o,r,s)){let h=parseInt(d.replace("P","").replace("M",""));if(isNaN(h))return Tn(i);let p=a*h,u=n*(12-h),f=Math.round((p+u)*100)/100;return Yt({...e,price:f},Et.YEAR)}default:return Yt(e,Et.YEAR,()=>Tn(n??i))}}return Yt(e,_n[t]?.[c])};var $s="download",Ds="upgrade",Bs={e:"EDU",t:"TEAM"};function Ji(e,t={},r=""){let i=be();if(!i)return null;let{checkoutMarketSegment:a,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:h,quantity:p,wcsOsi:u,extraOptions:f,analyticsId:b}=i.collectCheckoutOptions(t),y=Zi(e,{checkoutMarketSegment:a,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:h,quantity:p,wcsOsi:u,extraOptions:f,analyticsId:b});return r&&(y.innerHTML=`${r}`),y}function ea(e){return class extends e{constructor(){super(...arguments);g(this,"checkoutActionHandler");g(this,"masElement",new nt(this))}attributeChangedCallback(i,a,n){this.masElement.attributeChangedCallback(i,a,n)}connectedCallback(){this.masElement.connectedCallback(),this.addEventListener("click",this.clickHandler)}disconnectedCallback(){this.masElement.disconnectedCallback(),this.removeEventListener("click",this.clickHandler)}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}get options(){return this.masElement.options}get marketSegment(){let i=this.options?.ms??this.value?.[0].marketSegments?.[0];return Bs[i]??i}get customerSegment(){let i=this.options?.cs??this.value?.[0]?.customerSegment;return Bs[i]??i}get is3in1Modal(){return Object.values(wt).includes(this.getAttribute("data-modal"))}get isOpen3in1Modal(){let i=document.querySelector("meta[name=mas-ff-3in1]");return this.is3in1Modal&&(!i||i.content!=="off")}requestUpdate(i=!1){return this.masElement.requestUpdate(i)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}async render(i={}){let a=be();if(!a)return!1;this.dataset.imsCountry||a.imsCountryPromise.then(u=>{u&&(this.dataset.imsCountry=u)}),i.imsCountry=null;let n=a.collectCheckoutOptions(i,this);if(!n.wcsOsi.length)return!1;let o;try{o=JSON.parse(n.extraOptions??"{}")}catch(u){this.masElement.log?.error("cannot parse exta checkout options",u)}let s=this.masElement.togglePending(n);this.setCheckoutUrl("");let c=a.resolveOfferSelectors(n),l=await Promise.all(c);l=l.map(u=>Ur(u,n));let d=l.flat().find(u=>u.promotion);!At(d?.promotion,d?.promotion?.displaySummary?.instant,n.quantity[0])&&n.promotionCode&&delete n.promotionCode,n.country=this.dataset.imsCountry||n.country;let p=await a.buildCheckoutAction?.(l.flat(),{...o,...n},this);return this.renderOffers(l.flat(),n,{},p,s)}renderOffers(i,a,n={},o=void 0,s=void 0){let c=be();if(!c)return!1;if(a={...JSON.parse(this.dataset.extraOptions??"{}"),...a,...n},s??(s=this.masElement.togglePending(a)),this.checkoutActionHandler&&(this.checkoutActionHandler=void 0),o){this.classList.remove($s,Ds),this.masElement.toggleResolved(s,i,a);let{url:d,text:h,className:p,handler:u}=o;d&&this.setCheckoutUrl(d),h&&(this.firstElementChild.innerHTML=h),p&&this.classList.add(...p.split(" ")),u&&(this.setCheckoutUrl("#"),this.checkoutActionHandler=u.bind(this))}if(i.length){if(this.masElement.toggleResolved(s,i,a)){if(!this.classList.contains($s)&&!this.classList.contains(Ds)){let d=c.buildCheckoutURL(i,a);this.setCheckoutUrl(a.modal==="true"?"#":d)}return!0}}else{let d=new Error(`Not provided: ${a?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(s,d,a))return this.setCheckoutUrl("#"),!0}}setCheckoutUrl(){}clickHandler(i){}updateOptions(i={}){let a=be();if(!a)return!1;let{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:h,promotionCode:p,quantity:u,wcsOsi:f}=a.collectCheckoutOptions(i);return Ts(this,{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:h,promotionCode:p,quantity:u,wcsOsi:f}),!0}}}var Gr=class Gr extends ea(HTMLAnchorElement){static createCheckoutLink(t={},r=""){return Ji(Gr,t,r)}setCheckoutUrl(t){this.setAttribute("href",t)}get isCheckoutLink(){return!0}clickHandler(t){if(this.checkoutActionHandler){this.checkoutActionHandler?.(t);return}}};g(Gr,"is","checkout-link"),g(Gr,"tag","a");var Xe=Gr;window.customElements.get(Xe.is)||window.customElements.define(Xe.is,Xe,{extends:Xe.tag});var cp="p_draft_landscape",lp="/store/",dp=new Map([["countrySpecific","cs"],["customerSegment","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["addonProductArrangementCode","ao"],["offerType","ot"],["marketSegment","ms"]]),Ln=new Set(["af","ai","ao","apc","appctxid","cli","co","cs","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),hp=["env","workflowStep","clientId","country"],Fs=new Set(["gid","gtoken","notifauditid","cohortid","productname","sdid","attimer","gcsrc","gcprog","gcprogcat","gcpagetype","mv","mv2"]),Us=e=>dp.get(e)??e;function ta(e,t,r){for(let[i,a]of Object.entries(e)){let n=Us(i);a!=null&&r.has(n)&&t.set(n,a)}}function pp(e){switch(e){case sn.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function mp(e,t){for(let r in e){let i=e[r];for(let[a,n]of Object.entries(i)){if(n==null)continue;let o=Us(a);t.set(`items[${r}][${o}]`,n)}}}function up({url:e,modal:t,is3in1:r}){if(!r||!e?.searchParams)return e;e.searchParams.set("rtc","t"),e.searchParams.set("lo","sl");let i=e.searchParams.get("af");return e.searchParams.set("af",[i,"uc_new_user_iframe","uc_new_system_close"].filter(Boolean).join(",")),e.searchParams.get("cli")!=="doc_cloud"&&e.searchParams.set("cli",t===wt.CRM?"creative":"mini_plans"),e}function gp(e){let t=new URLSearchParams(window.location.search),r={};Fs.forEach(i=>{let a=t.get(i);a!==null&&(r[i]=a)}),Object.keys(r).length>0&&ta(r,e.searchParams,Fs)}function qs(e){fp(e);let{env:t,items:r,workflowStep:i,marketSegment:a,customerSegment:n,offerType:o,productArrangementCode:s,landscape:c,modal:l,is3in1:d,preselectPlan:h,...p}=e,u=new URL(pp(t));if(u.pathname=`${lp}${i}`,i!==ue.SEGMENTATION&&i!==ue.CHANGE_PLAN_TEAM_PLANS&&mp(r,u.searchParams),ta({...p},u.searchParams,Ln),gp(u),c===at.DRAFT&&ta({af:cp},u.searchParams,Ln),i===ue.SEGMENTATION){let f={marketSegment:a,offerType:o,customerSegment:n,productArrangementCode:s,quantity:r?.[0]?.quantity,addonProductArrangementCode:s?r?.find(b=>b.productArrangementCode!==s)?.productArrangementCode:r?.[1]?.productArrangementCode};h?.toLowerCase()==="edu"?u.searchParams.set("ms","EDU"):h?.toLowerCase()==="team"&&u.searchParams.set("cs","TEAM"),ta(f,u.searchParams,Ln),u.searchParams.get("ot")==="PROMOTION"&&u.searchParams.delete("ot"),u=up({url:u,modal:l,is3in1:d})}return u.toString()}function fp(e){for(let t of hp)if(!e[t])throw new Error(`Argument "checkoutData" is not valid, missing: ${t}`);if(e.workflowStep!==ue.SEGMENTATION&&e.workflowStep!==ue.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}var B=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflowStep:ue.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,displayPlanType:!1,env:Ue.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,alternativePrice:!1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:at.PUBLISHED});function Gs({settings:e,providers:t}){function r(n,o){let{checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:h,quantity:p,preselectPlan:u,env:f}=e,b={checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:h,quantity:p,preselectPlan:u,env:f};if(o)for(let Dt of t.checkout)Dt(o,b);let{checkoutMarketSegment:y,checkoutWorkflowStep:C=c,imsCountry:w,country:v=w??l,language:T=d,quantity:q=p,entitlement:F,upgrade:V,modal:k,perpetual:G,promotionCode:ee=h,wcsOsi:Q,extraOptions:U,...fe}=Object.assign(b,o?.dataset??{},n??{}),Se=Br(C,ue,B.checkoutWorkflowStep);return b=Vi({...fe,extraOptions:U,checkoutClientId:s,checkoutMarketSegment:y,country:v,quantity:Wt(q,B.quantity),checkoutWorkflowStep:Se,language:T,entitlement:M(F),upgrade:M(V),modal:k,perpetual:M(G),promotionCode:Wi(ee).effectivePromoCode,wcsOsi:Ki(Q),preselectPlan:u}),b}function i(n,o){if(!Array.isArray(n)||!n.length||!o)return"";let{env:s,landscape:c}=e,{checkoutClientId:l,checkoutMarketSegment:d,checkoutWorkflowStep:h,country:p,promotionCode:u,quantity:f,preselectPlan:b,ms:y,cs:C,...w}=r(o),v=document.querySelector("meta[name=mas-ff-3in1]"),T=Object.values(wt).includes(o.modal)&&(!v||v.content!=="off"),q=window.frameElement||T?"if":"fp",[{productArrangementCode:F,marketSegments:[V],customerSegment:k,offerType:G}]=n,ee=y??V??d,Q=C??k;b?.toLowerCase()==="edu"?ee="EDU":b?.toLowerCase()==="team"&&(Q="TEAM");let U={is3in1:T,checkoutPromoCode:u,clientId:l,context:q,country:p,env:s,items:[],marketSegment:ee,customerSegment:Q,offerType:G,productArrangementCode:F,workflowStep:h,landscape:c,...w},fe=f[0]>1?f[0]:void 0;if(n.length===1){let{offerId:Se}=n[0];U.items.push({id:Se,quantity:fe})}else U.items.push(...n.map(({offerId:Se,productArrangementCode:Dt})=>({id:Se,quantity:fe,...T?{productArrangementCode:Dt}:{}})));return qs(U)}let{createCheckoutLink:a}=Xe;return{CheckoutLink:Xe,CheckoutWorkflowStep:ue,buildCheckoutURL:i,collectCheckoutOptions:r,createCheckoutLink:a}}function bp({interval:e=200,maxAttempts:t=25}={}){let r=ge.module("ims");return new Promise(i=>{r.debug("Waing for IMS to be ready");let a=0;function n(){window.adobeIMS?.initialized?i():++a>t?(r.debug("Timeout"),i()):setTimeout(n,e)}n()})}function xp(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function vp(e){let t=ge.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:i})=>(t.debug("Got user country:",i),i),i=>{t.error("Unable to get user country:",i)}):null)}function Vs({}){let e=bp(),t=xp(e),r=vp(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}var js=window.masPriceLiterals;function Ws(e){if(Array.isArray(js)){let t=e.locale==="id_ID"?"in":e.language,r=a=>js.find(n=>dn(n.lang,a)),i=r(t)??r(B.language);if(i)return Object.freeze(i)}return{}}var Pn=function(e,t){return Pn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},Pn(e,t)};function Vr(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Pn(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var z=function(){return z=Object.assign||function(t){for(var r,i=1,a=arguments.length;i0}),r=[],i=0,a=t;i
- `:u`
`:x`
`}};m(Bt,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0},loading:{type:String,attribute:!0}}),m(Bt,"styles",b`
+ />`}};g(er,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0},loading:{type:String,attribute:!0}}),g(er,"styles",S`
:host {
--img-width: 32px;
--img-height: 32px;
@@ -967,7 +967,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
width: var(--mod-img-width, var(--img-width));
height: var(--mod-img-height, var(--img-height));
}
- `);customElements.define("merch-icon",Bt);var qr,yt,Vr,jr,Ft,Gi=class extends HTMLElement{constructor(){super();E(this,qr,"");E(this,yt);E(this,Vr,[]);E(this,jr,[]);E(this,Ft);y(this,Ft,Rr(()=>{this.isConnected&&(this.parentElement.style.background=this.value,p(this,yt)?this.parentElement.style.borderRadius=p(this,yt):p(this,yt)===""&&(this.parentElement.style.borderRadius=""))},1))}static get observedAttributes(){return["colors","positions","angle","border-radius"]}get value(){let r=p(this,Vr).map((i,a)=>{let n=p(this,jr)[a]||"";return`${i} ${n}`}).join(", ");return`linear-gradient(${p(this,qr)}, ${r})`}connectedCallback(){p(this,Ft).call(this)}attributeChangedCallback(r,i,a){r==="border-radius"&&y(this,yt,a?.trim()),r==="colors"&&a?y(this,Vr,a?.split(",").map(n=>n.trim())??[]):r==="positions"&&a?y(this,jr,a?.split(",").map(n=>n.trim())??[]):r==="angle"&&y(this,qr,a?.trim()??""),p(this,Ft).call(this)}};qr=new WeakMap,yt=new WeakMap,Vr=new WeakMap,jr=new WeakMap,Ft=new WeakMap;customElements.define("merch-gradient",Gi);_();var Ut=class extends U{constructor(){super(),this.planType=void 0,this.checked=!1,this.updatePlanType=this.updatePlanType.bind(this),this.handleChange=this.handleChange.bind(this),this.handleCustomClick=this.handleCustomClick.bind(this)}getOsi(t,r){let n=({TRIAL:["TRIAL"],BASE:["BASE","PROMOTION","TRIAL"],PROMOTION:["PROMOTION","BASE","TRIAL"]}[r]||[r]).map(s=>`p[data-plan-type="${t}"] ${D}[data-offer-type="${s}"]`).join(", ");return this.querySelector(n)?.dataset?.wcsOsi}connectedCallback(){super.connectedCallback(),this.addEventListener(Lt,this.updatePlanType)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(Lt,this.updatePlanType)}updatePlanType(t){if(t.target.tagName!=="SPAN")return;let r=t.target,i=r?.value?.[0];i&&(r.setAttribute("data-offer-type",i.offerType),r.closest("p").setAttribute("data-plan-type",i.planType))}handleChange(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked},bubbles:!0,composed:!0}))}handleCustomClick(){this.shadowRoot.querySelector("input").click()}handleKeyDown(t){t.key===" "&&(t.preventDefault(),this.handleCustomClick())}render(){return u` {this.isConnected&&(this.parentElement.style.background=this.value,m(this,Rt)?this.parentElement.style.borderRadius=m(this,Rt):m(this,Rt)===""&&(this.parentElement.style.borderRadius=""))},1))}static get observedAttributes(){return["colors","positions","angle","border-radius"]}get value(){let r=m(this,pi).map((i,a)=>{let n=m(this,mi)[a]||"";return`${i} ${n}`}).join(", ");return`linear-gradient(${m(this,hi)}, ${r})`}connectedCallback(){m(this,tr).call(this)}attributeChangedCallback(r,i,a){r==="border-radius"&&E(this,Rt,a?.trim()),r==="colors"&&a?E(this,pi,a?.split(",").map(n=>n.trim())??[]):r==="positions"&&a?E(this,mi,a?.split(",").map(n=>n.trim())??[]):r==="angle"&&E(this,hi,a?.trim()??""),m(this,tr).call(this)}};hi=new WeakMap,Rt=new WeakMap,pi=new WeakMap,mi=new WeakMap,tr=new WeakMap;customElements.define("merch-gradient",Sa);I();var rr=class extends X{constructor(){super(),this.planType=void 0,this.checked=!1,this.updatePlanType=this.updatePlanType.bind(this),this.handleChange=this.handleChange.bind(this),this.handleCustomClick=this.handleCustomClick.bind(this)}getOsi(t,r){let n=({TRIAL:["TRIAL"],BASE:["BASE","PROMOTION","TRIAL"],PROMOTION:["PROMOTION","BASE","TRIAL"]}[r]||[r]).map(s=>`p[data-plan-type="${t}"] ${O}[data-offer-type="${s}"]`).join(", ");return this.querySelector(n)?.dataset?.wcsOsi}connectedCallback(){super.connectedCallback(),this.addEventListener(Gt,this.updatePlanType)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(Gt,this.updatePlanType)}updatePlanType(t){if(t.target.tagName!=="SPAN")return;let r=t.target,i=r?.value?.[0];i&&(r.setAttribute("data-offer-type",i.offerType),r.closest("p").setAttribute("data-plan-type",i.planType))}handleChange(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked},bubbles:!0,composed:!0}))}handleCustomClick(){this.shadowRoot.querySelector("input").click()}handleKeyDown(t){t.key===" "&&(t.preventDefault(),this.handleCustomClick())}render(){return x`
`}};m(Ut,"properties",{planType:{type:String,attribute:"plan-type",reflect:!0},checked:{type:Boolean,reflect:!0},customCheckbox:{type:Boolean,attribute:"custom-checkbox",reflect:!0}}),m(Ut,"styles",b`
+ `}};g(rr,"properties",{planType:{type:String,attribute:"plan-type",reflect:!0},checked:{type:Boolean,reflect:!0},customCheckbox:{type:Boolean,attribute:"custom-checkbox",reflect:!0}}),g(rr,"styles",S`
:host {
--merch-addon-gap: 9px;
--merch-addon-align: start;
@@ -1050,7 +1050,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
:host([plan-type='M2M']) ::slotted(p[data-plan-type='M2M']) {
display: block;
}
- `);customElements.define("merch-addon",Ut);_();var Gt,Wr=class Wr{constructor(t){m(this,"card");E(this,Gt);this.card=t,this.insertVariantStyle()}getContainer(){return y(this,Gt,p(this,Gt)??this.card.closest('merch-card-collection, [class*="-merch-cards"]')??this.card.parentElement),p(this,Gt)}insertVariantStyle(){let t=this.constructor.name;if(!Wr.styleMap[t]){Wr.styleMap[t]=!0;let r=document.createElement("style");r.innerHTML=this.getGlobalCSS(),document.head.appendChild(r)}}updateCardElementMinHeight(t,r){if(!t||this.card.heightSync===!1)return;let i=`--consonant-merch-card-${this.card.variant}-${r}-height`,a=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),n=this.getContainer(),o=parseInt(n.style.getPropertyValue(i))||0;a>o&&n.style.setProperty(i,`${a}px`)}get badge(){let t;if(!(!this.card.badgeBackgroundColor||!this.card.badgeColor||!this.card.badgeText))return this.evergreen&&(t=`border: 1px solid ${this.card.badgeBackgroundColor}; border-right: none;`),u`
+ `);customElements.define("merch-addon",rr);I();var ir,ui=class ui{constructor(t){g(this,"card");A(this,ir);this.card=t,this.insertVariantStyle()}getContainer(){return E(this,ir,m(this,ir)??this.card.closest('merch-card-collection, [class*="-merch-cards"]')??this.card.parentElement),m(this,ir)}insertVariantStyle(){let t=this.constructor.name;if(!ui.styleMap[t]){ui.styleMap[t]=!0;let r=document.createElement("style");r.innerHTML=this.getGlobalCSS(),document.head.appendChild(r)}}updateCardElementMinHeight(t,r){if(!t||this.card.heightSync===!1)return;let i=`--consonant-merch-card-${this.card.variant}-${r}-height`,a=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),n=this.getContainer(),o=parseInt(n.style.getPropertyValue(i))||0;a>o&&n.style.setProperty(i,`${a}px`)}get badge(){let t;if(!(!this.card.badgeBackgroundColor||!this.card.badgeColor||!this.card.badgeText))return this.evergreen&&(t=`border: 1px solid ${this.card.badgeBackgroundColor}; border-right: none;`),x`
${this.card.badgeText}
- `}get cardImage(){return u`
+ `}get cardImage(){return x`
`}getGlobalCSS(){return""}get theme(){return document.querySelector("sp-theme")}get evergreen(){return this.card.classList.contains("intro-pricing")}get promoBottom(){return this.card.classList.contains("promo-bottom")}get headingSelector(){return'[slot="heading-xs"]'}get secureLabel(){return this.card.secureLabel?u``}getGlobalCSS(){return""}get theme(){return document.querySelector("sp-theme")}get evergreen(){return this.card.classList.contains("intro-pricing")}get promoBottom(){return this.card.classList.contains("promo-bottom")}get headingSelector(){return'[slot="heading-xs"]'}get secureLabel(){return this.card.secureLabel?x`${this.card.secureLabel}`:w}get secureLabelFooter(){return u``}async postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}syncHeights(){}renderLayout(){}get aemFragmentMapping(){return this.constructor.fragmentMapping??null}};ir=new WeakMap,g(ui,"styleMap",{});var L=ui;I();var yl=`
:root {
--consonant-merch-card-catalog-width: 302px;
--consonant-merch-card-catalog-icon-size: 40px;
@@ -1128,19 +1128,19 @@ merch-card-collection-header.catalog {
--merch-card-collection-header-search-max-width: 244px;
}
-@media screen and ${H} {
+@media screen and ${j} {
merch-card-collection-header.catalog {
--merch-card-collection-header-columns: min-content auto;
}
}
-@media screen and ${B} {
+@media screen and ${W} {
merch-card-collection-header.catalog {
--merch-card-collection-header-column-gap: 16px;
}
}
-@media screen and ${P} {
+@media screen and ${H} {
:root {
--consonant-merch-card-catalog-width: 276px;
}
@@ -1215,12 +1215,12 @@ merch-card[variant="catalog"] .payment-details {
merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
font-size: 15px;
font-weight: 700;
-}`;var mc={cardName:{attribute:"name"},badge:!0,ctas:{slot:"footer",size:"m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},prices:{tag:"h3",slot:"heading-xs"},shortDescription:{tag:"div",slot:"action-menu-content",attributes:{tabindex:"0"}},size:["wide","super-wide"],title:{tag:"h3",slot:"heading-xs"}},qt=class extends A{constructor(r){super(r);m(this,"dispatchActionMenuToggle",()=>{this.card.dispatchEvent(new CustomEvent(ia,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}}))});m(this,"toggleActionMenu",r=>{!this.actionMenuContentSlot||!r||r.type!=="click"&&r.code!=="Space"&&r.code!=="Enter"||(r.preventDefault(),r.stopPropagation(),this.setMenuVisibility(!this.isMenuOpen()))});m(this,"toggleActionMenuFromCard",r=>{let i=r?.type==="mouseleave"?!0:void 0;this.card.blur(),this.setIconVisibility(!1),this.actionMenuContentSlot&&r?.type==="mouseleave"&&this.setMenuVisibility(!1)});m(this,"showActionMenuOnHover",()=>{this.actionMenu&&this.setIconVisibility(!0)});m(this,"hideActionMenu",()=>{this.setMenuVisibility(!1),this.setIconVisibility(!1)});m(this,"hideActionMenuOnBlur",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||this.slottedContent?.contains(r.relatedTarget)||(this.isMenuOpen()&&this.setMenuVisibility(!1),this.card.contains(r.relatedTarget)||this.setIconVisibility(!1))});m(this,"handleCardFocusOut",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||r.relatedTarget===this.card||(this.slottedContent&&(r.target===this.slottedContent||this.slottedContent.contains(r.target))&&(this.slottedContent.contains(r.relatedTarget)||this.setMenuVisibility(!1)),!this.card.contains(r.relatedTarget)&&!this.isMenuOpen()&&this.setIconVisibility(!1))});m(this,"handleKeyDown",r=>{(r.key==="Escape"||r.key==="Esc")&&(r.preventDefault(),this.hideActionMenu(),this.actionMenu?.focus())})}get actionMenu(){return this.card.shadowRoot.querySelector(".action-menu")}get actionMenuContentSlot(){return this.card.shadowRoot.querySelector('slot[name="action-menu-content"]')}get slottedContent(){return this.card.querySelector('[slot="action-menu-content"]')}setIconVisibility(r){if(this.slottedContent){if(sn()&&this.card.actionMenu)return;this.actionMenu?.classList.toggle("invisible",!r),this.actionMenu?.classList.toggle("always-visible",r)}}setMenuVisibility(r){this.actionMenuContentSlot?.classList.toggle("hidden",!r),this.setAriaExpanded(this.actionMenu,r.toString()),r&&(this.dispatchActionMenuToggle(),setTimeout(()=>{let i=this.slottedContent?.querySelector("a");i&&i.focus()},0))}isMenuOpen(){return!this.actionMenuContentSlot?.classList.contains("hidden")}renderLayout(){return u`
+}`;var wl={cardName:{attribute:"name"},badge:!0,ctas:{slot:"footer",size:"m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},prices:{tag:"h3",slot:"heading-xs"},shortDescription:{tag:"div",slot:"action-menu-content",attributes:{tabindex:"0"}},size:["wide","super-wide"],title:{tag:"h3",slot:"heading-xs"}},ar=class extends L{constructor(r){super(r);g(this,"dispatchActionMenuToggle",()=>{this.card.dispatchEvent(new CustomEvent(ja,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}}))});g(this,"toggleActionMenu",r=>{!this.actionMenuContentSlot||!r||r.type!=="click"&&r.code!=="Space"&&r.code!=="Enter"||(r.preventDefault(),r.stopPropagation(),this.setMenuVisibility(!this.isMenuOpen()))});g(this,"toggleActionMenuFromCard",r=>{let i=r?.type==="mouseleave"?!0:void 0;this.card.blur(),this.setIconVisibility(!1),this.actionMenuContentSlot&&r?.type==="mouseleave"&&this.setMenuVisibility(!1)});g(this,"showActionMenuOnHover",()=>{this.actionMenu&&this.setIconVisibility(!0)});g(this,"hideActionMenu",()=>{this.setMenuVisibility(!1),this.setIconVisibility(!1)});g(this,"hideActionMenuOnBlur",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||this.slottedContent?.contains(r.relatedTarget)||(this.isMenuOpen()&&this.setMenuVisibility(!1),this.card.contains(r.relatedTarget)||this.setIconVisibility(!1))});g(this,"handleCardFocusOut",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||r.relatedTarget===this.card||(this.slottedContent&&(r.target===this.slottedContent||this.slottedContent.contains(r.target))&&(this.slottedContent.contains(r.relatedTarget)||this.setMenuVisibility(!1)),!this.card.contains(r.relatedTarget)&&!this.isMenuOpen()&&this.setIconVisibility(!1))});g(this,"handleKeyDown",r=>{(r.key==="Escape"||r.key==="Esc")&&(r.preventDefault(),this.hideActionMenu(),this.actionMenu?.focus())})}get actionMenu(){return this.card.shadowRoot.querySelector(".action-menu")}get actionMenuContentSlot(){return this.card.shadowRoot.querySelector('slot[name="action-menu-content"]')}get slottedContent(){return this.card.querySelector('[slot="action-menu-content"]')}setIconVisibility(r){if(this.slottedContent){if(Xn()&&this.card.actionMenu)return;this.actionMenu?.classList.toggle("invisible",!r),this.actionMenu?.classList.toggle("always-visible",r)}}setMenuVisibility(r){this.actionMenuContentSlot?.classList.toggle("hidden",!r),this.setAriaExpanded(this.actionMenu,r.toString()),r&&(this.dispatchActionMenuToggle(),setTimeout(()=>{let i=this.slottedContent?.querySelector("a");i&&i.focus()},0))}isMenuOpen(){return!this.actionMenuContentSlot?.classList.contains("hidden")}renderLayout(){return x`
+`;var Al={cardName:{attribute:"name"},badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},badgeIcon:!0,borderColor:{attribute:"border-color"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],ctas:{slot:"footer",size:"m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},prices:{tag:"h3",slot:"heading-xs"},promoText:{tag:"p",slot:"promo-text"},size:["wide","super-wide"],title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},backgroundImage:{tag:"div",slot:"bg-image"}},Nt=class extends L{constructor(t){super(t)}getGlobalCSS(){return El}renderLayout(){return x`
- ${this.evergreen?u`
+ ${this.evergreen?x`
@@ -1319,21 +1319,21 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
- `:u`
+ `:x`
${this.secureLabelFooter}
- `}`}};m(wt,"variantStyle",b`
+ `}`}};g(Nt,"variantStyle",S`
:host([variant='image']) {
min-height: 330px;
width: var(--consonant-merch-card-image-width);
@@ -1355,7 +1355,7 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
left: 0px;
right: initial;
}
- `);_();var fc=`
+ `);I();var Sl=`
:root {
--consonant-merch-card-inline-heading-width: 300px;
}
@@ -1367,7 +1367,7 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
grid-template-columns: var(--consonant-merch-card-inline-heading-width);
}
-@media screen and ${B} {
+@media screen and ${W} {
.two-merch-cards.inline-heading,
.three-merch-cards.inline-heading,
.four-merch-cards.inline-heading {
@@ -1375,7 +1375,7 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
}
}
-@media screen and ${P} {
+@media screen and ${H} {
:root {
--consonant-merch-card-inline-heading-width: 378px;
}
@@ -1386,12 +1386,12 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
}
}
-@media screen and ${oe} {
+@media screen and ${de} {
.four-merch-cards.inline-heading {
grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width));
}
}
-`;var Vi=class extends A{constructor(t){super(t)}getGlobalCSS(){return fc}renderLayout(){return u` ${this.badge}
+`;var Ca=class extends L{constructor(t){super(t)}getGlobalCSS(){return Sl}renderLayout(){return x` ${this.badge}
- ${this.card.customHr?"":u`
`} ${this.secureLabelFooter}`}};_();var xc=`
+ ${this.card.customHr?"":x`
`} ${this.secureLabelFooter}`}};I();var Cl=`
:root {
--consonant-merch-card-mini-compare-chart-icon-size: 32px;
--consonant-merch-card-mini-compare-border-color: #E9E9E9;
@@ -1940,7 +1940,7 @@ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
}
/* mini compare mobile */
-@media screen and ${H} {
+@media screen and ${j} {
:root {
--consonant-merch-card-mini-compare-chart-width: 302px;
--consonant-merch-card-mini-compare-chart-wide-width: 302px;
@@ -1997,7 +1997,7 @@ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
}
}
-@media screen and ${re} {
+@media screen and ${se} {
merch-card[variant="mini-compare-chart"] [slot="heading-m"] {
font-size: var(--consonant-merch-card-body-s-font-size);
line-height: var(--consonant-merch-card-body-s-line-height);
@@ -2049,7 +2049,7 @@ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
padding: 6px 18px 4px;
}
}
-@media screen and ${B} {
+@media screen and ${W} {
:root {
--consonant-merch-card-mini-compare-chart-width: 302px;
--consonant-merch-card-mini-compare-chart-wide-width: 302px;
@@ -2095,7 +2095,7 @@ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
}
/* desktop */
-@media screen and ${P} {
+@media screen and ${H} {
:root {
--consonant-merch-card-mini-compare-chart-width: 378px;
--consonant-merch-card-mini-compare-chart-wide-width: 484px;
@@ -2120,7 +2120,7 @@ merch-card[variant="mini-compare-chart"].bullet-list [slot="price-commitment"] {
}
}
-@media screen and ${oe} {
+@media screen and ${de} {
.four-merch-cards.mini-compare-chart,
.four-merch-cards:has(merch-card[variant="mini-compare-chart"]) {
grid-template-columns: repeat(4, var(--consonant-merch-card-mini-compare-chart-width));
@@ -2195,14 +2195,14 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(7) {
merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
min-height: var(--consonant-merch-card-footer-row-8-min-height);
}
-`;var jh=32,vc={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m-price"},promoText:{tag:"div",slot:"promo-text"},shortDescription:{tag:"div",slot:"body-xxs"},description:{tag:"div",slot:"body-m"},mnemonics:{size:"l"},quantitySelect:{tag:"div",slot:"quantity-select"},callout:{tag:"div",slot:"callout-content"},addon:!0,secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],whatsIncluded:{tag:"div",slot:"footer-rows"},ctas:{slot:"footer",size:"l"},style:"consonant"},Vt=class extends A{constructor(r){super(r);m(this,"getRowMinHeightPropertyName",r=>`--consonant-merch-card-footer-row-${r}-min-height`);m(this,"getMiniCompareFooter",()=>{let r=this.card.secureLabel?u`s.remove()),r.checked){if(o){let s=ne("p",{class:"addon-heading-m-price-addon",slot:"heading-m-price"},o.innerHTML);this.card.appendChild(s)}}else{let s=ne("p",{class:"card-heading",id:"free",slot:"heading-m-price"},"Free");this.card.appendChild(s)}}}showTooltip(r){r.classList.remove("hide-tooltip"),r.setAttribute("aria-expanded","true")}hideTooltip(r){r.classList.add("hide-tooltip"),r.setAttribute("aria-expanded","false")}adjustCallout(){let r=this.card.querySelector('[slot="callout-content"] .icon-button');if(!r||this.calloutListenersAdded)return;let i=r.title||r.dataset.tooltip;if(!i)return;r.title&&(r.dataset.tooltip=r.title,r.removeAttribute("title"));let a=r.parentElement;if(a&&a.tagName==="P"){let n=document.createElement("div"),o=document.createElement("div");o.className="callout-row";let s=document.createElement("div");for(s.className="callout-text";a.firstChild&&a.firstChild!==r;)s.appendChild(a.firstChild);o.appendChild(s),o.appendChild(r),n.appendChild(o),a.replaceWith(n)}r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.setAttribute("aria-label",i),r.setAttribute("aria-expanded","false"),this.hideTooltip(r),this.handleCalloutTouch=n=>{n.target!==r?this.hideTooltip(r):r.classList.contains("hide-tooltip")?this.showTooltip(r):this.hideTooltip(r)},this.handleCalloutMouse=n=>{n.target!==r?this.hideTooltip(r):this.showTooltip(r)},this.handleCalloutFocusin=()=>{this.showTooltip(r)},this.handleCalloutFocusout=()=>{this.hideTooltip(r)},this.handleCalloutKeydown=n=>{n.key==="Escape"&&(this.hideTooltip(r),r.blur())},document.addEventListener("touchstart",this.handleCalloutTouch),document.addEventListener("mouseover",this.handleCalloutMouse),r.addEventListener("focusin",this.handleCalloutFocusin),r.addEventListener("focusout",this.handleCalloutFocusout),r.addEventListener("keydown",this.handleCalloutKeydown),this.calloutListenersAdded=!0}async adjustAddon(){await this.card.updateComplete;let r=this.card.addon;if(!r)return;let i=this.mainPrice,a=this.card.planType;if(i&&(await i.onceSettled(),a=i.value?.[0]?.planType),!a)return;r.planType=a,this.card.querySelector("merch-addon[plan-type]")?.updateComplete.then(()=>{this.updateCardElementMinHeight(this.card.shadowRoot.querySelector('slot[name="addon"]'),"addon")})}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let r=this.mainPrice;if(!r)return;let i=r.cloneNode(!0);if(await r.onceSettled(),!r?.options)return;r.options.displayPerUnit&&(r.dataset.displayPerUnit="false"),r.options.displayTax&&(r.dataset.displayTax="false"),r.options.displayPlanType&&(r.dataset.displayPlanType="false"),i.setAttribute("data-template","legal"),r.parentNode.insertBefore(i,r.nextSibling),await i.onceSettled()}catch{}}adjustShortDescription(){let r=this.card.querySelector('[slot="body-xxs"]'),i=r?.textContent?.trim();if(!i)return;let n=this.card.querySelector('[slot="heading-m-price"] [data-template="legal"]')?.querySelector(".price-plan-type");if(!n)return;let o=document.createElement("em");o.setAttribute("slot","body-xxs"),o.textContent=` ${i}`,n.appendChild(o),r.remove()}renderLayout(){return this.isNewVariant?u`
+ `:x`s.remove()),r.checked){if(o){let s=le("p",{class:"addon-heading-m-price-addon",slot:"heading-m-price"},o.innerHTML);this.card.appendChild(s)}}else{let s=le("p",{class:"card-heading",id:"free",slot:"heading-m-price"},"Free");this.card.appendChild(s)}}}showTooltip(r){r.classList.remove("hide-tooltip"),r.setAttribute("aria-expanded","true")}hideTooltip(r){r.classList.add("hide-tooltip"),r.setAttribute("aria-expanded","false")}adjustCallout(){let r=this.card.querySelector('[slot="callout-content"] .icon-button');if(!r||this.calloutListenersAdded)return;let i=r.title||r.dataset.tooltip;if(!i)return;r.title&&(r.dataset.tooltip=r.title,r.removeAttribute("title"));let a=r.parentElement;if(a&&a.tagName==="P"){let n=document.createElement("div"),o=document.createElement("div");o.className="callout-row";let s=document.createElement("div");for(s.className="callout-text";a.firstChild&&a.firstChild!==r;)s.appendChild(a.firstChild);o.appendChild(s),o.appendChild(r),n.appendChild(o),a.replaceWith(n)}r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.setAttribute("aria-label",i),r.setAttribute("aria-expanded","false"),this.hideTooltip(r),this.handleCalloutTouch=n=>{n.target!==r?this.hideTooltip(r):r.classList.contains("hide-tooltip")?this.showTooltip(r):this.hideTooltip(r)},this.handleCalloutMouse=n=>{n.target!==r?this.hideTooltip(r):this.showTooltip(r)},this.handleCalloutFocusin=()=>{this.showTooltip(r)},this.handleCalloutFocusout=()=>{this.hideTooltip(r)},this.handleCalloutKeydown=n=>{n.key==="Escape"&&(this.hideTooltip(r),r.blur())},document.addEventListener("touchstart",this.handleCalloutTouch),document.addEventListener("mouseover",this.handleCalloutMouse),r.addEventListener("focusin",this.handleCalloutFocusin),r.addEventListener("focusout",this.handleCalloutFocusout),r.addEventListener("keydown",this.handleCalloutKeydown),this.calloutListenersAdded=!0}async adjustAddon(){await this.card.updateComplete;let r=this.card.addon;if(!r)return;let i=this.mainPrice,a=this.card.planType;if(i&&(await i.onceSettled(),a=i.value?.[0]?.planType),!a)return;r.planType=a,this.card.querySelector("merch-addon[plan-type]")?.updateComplete.then(()=>{this.updateCardElementMinHeight(this.card.shadowRoot.querySelector('slot[name="addon"]'),"addon")})}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let r=this.mainPrice;if(!r)return;let i=r.cloneNode(!0);if(await r.onceSettled(),!r?.options)return;r.options.displayPerUnit&&(r.dataset.displayPerUnit="false"),r.options.displayTax&&(r.dataset.displayTax="false"),r.options.displayPlanType&&(r.dataset.displayPlanType="false"),i.setAttribute("data-template","legal"),r.parentNode.insertBefore(i,r.nextSibling),await i.onceSettled()}catch{}}adjustShortDescription(){let r=this.card.querySelector('[slot="body-xxs"]'),i=r?.textContent?.trim();if(!i)return;let n=this.card.querySelector('[slot="heading-m-price"] [data-template="legal"]')?.querySelector(".price-plan-type");if(!n)return;let o=document.createElement("em");o.setAttribute("slot","body-xxs"),o.textContent=` ${i}`,n.appendChild(o),r.remove()}renderLayout(){return this.isNewVariant?x`
@@ -2219,16 +2219,16 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
+
${this.icons}
@@ -3234,7 +3232,7 @@ merch-card .footer-row-cell:nth-child(8) {
${this.getMiniCompareFooter()}
${this.getMiniCompareFooterRows()}
- `}async postCardUpdateHook(){if(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.legalAdjusted||await this.adjustLegal(),this.setupToggle(),R.isMobile)this.removeEmptyRows();else{this.adjustMiniCompareFooterRows();let r=this.getContainer();if(!r)return;requestAnimationFrame(()=>{r.querySelectorAll('merch-card[variant="mini-compare-chart-mweb"]').forEach(a=>{a.variantLayout?.adjustMiniCompareBodySlots?.(),a.variantLayout?.adjustMiniCompareFooterRows?.()})})}}};m(jt,"variantStyle",b`
+ `}async postCardUpdateHook(){if(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.legalAdjusted||await this.adjustLegal(),this.setupToggle(),D.isMobile)this.removeEmptyRows();else{this.adjustMiniCompareFooterRows();let r=this.getContainer();if(!r)return;requestAnimationFrame(()=>{r.querySelectorAll('merch-card[variant="mini-compare-chart-mweb"]').forEach(a=>{a.variantLayout?.adjustMiniCompareBodySlots?.(),a.variantLayout?.adjustMiniCompareFooterRows?.()})})}}};g(or,"variantStyle",S`
:host([variant='mini-compare-chart-mweb']) .body > slot {
display: block;
}
@@ -3279,7 +3277,7 @@ merch-card .footer-row-cell:nth-child(8) {
padding-inline-start: var(--consonant-merch-spacing-xs);
}
- @media screen and ${me(re)} {
+ @media screen and ${ve(se)} {
[class*'-merch-cards']
:host([variant='mini-compare-chart-mweb'])
footer {
@@ -3289,7 +3287,7 @@ merch-card .footer-row-cell:nth-child(8) {
}
}
- @media screen and ${me(P)} {
+ @media screen and ${ve(H)} {
:host([variant='mini-compare-chart-mweb']) footer {
padding: 0;
}
@@ -3507,7 +3505,7 @@ merch-card .footer-row-cell:nth-child(8) {
gap: var(--consonant-merch-spacing-xxs);
margin: unset;
}
- `);_();var wc=`
+ `);I();var _l=`
:root {
--consonant-merch-card-plans-width: 302px;
--consonant-merch-card-plans-students-width: 302px;
@@ -3868,7 +3866,7 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
}
/* Mobile */
-@media screen and ${H} {
+@media screen and ${j} {
merch-whats-included merch-mnemonic-list,
merch-whats-included [slot="heading"] {
width: 100%;
@@ -3884,7 +3882,7 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
}
/* Tablet */
-@media screen and ${B} {
+@media screen and ${W} {
:root {
--consonant-merch-card-plans-students-width: 486px;
}
@@ -3894,7 +3892,7 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
}
}
-@media screen and ${re} {
+@media screen and ${se} {
.plans-team .columns .row-1 {
grid-template-columns: min-content;
}
@@ -3912,7 +3910,7 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
}
/* desktop */
-@media screen and ${P} {
+@media screen and ${H} {
:root {
--consonant-merch-card-plans-width: 276px;
--consonant-merch-card-plans-students-width: 484px;
@@ -3960,7 +3958,7 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
}
/* Large desktop */
-@media screen and ${oe} {
+@media screen and ${de} {
.columns .four-merch-cards.plans {
grid-template-columns: repeat(2, var(--consonant-merch-card-plans-width));
}
@@ -3969,11 +3967,11 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
--merch-sidenav-collection-gap: 54px;
}
}
-`;var ji={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m"},promoText:{tag:"p",slot:"promo-text"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},callout:{tag:"div",slot:"callout-content"},quantitySelect:{tag:"div",slot:"quantity-select"},addon:!0,secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],whatsIncluded:{tag:"div",slot:"whats-included"},ctas:{slot:"footer",size:"m"},style:"consonant",perUnitLabel:{tag:"span",slot:"per-unit-label"}},Ec={...function(){let{whatsIncluded:e,size:t,...r}=ji;return r}(),title:{tag:"h3",slot:"heading-s"},secureLabel:!1},Ac={...function(){let{subtitle:e,whatsIncluded:t,size:r,quantitySelect:i,...a}=ji;return a}()},ge=class extends A{constructor(t){super(t),this.adaptForMedia=this.adaptForMedia.bind(this)}priceOptionsProvider(t,r){t.dataset.template===xe&&(r.displayPlanType=this.card?.settings?.displayPlanType??!1)}getGlobalCSS(){return wc}adjustSlotPlacement(t,r,i){let a=this.card.shadowRoot,n=a.querySelector("footer"),o=this.card.getAttribute("size");if(!o)return;let s=a.querySelector(`footer slot[name="${t}"]`),c=a.querySelector(`.body slot[name="${t}"]`),l=a.querySelector(".body");if(o.includes("wide")||(n?.classList.remove("wide-footer"),s&&s.remove()),!!r.includes(o)){if(n?.classList.toggle("wide-footer",R.isDesktopOrUp),!i&&s){if(c)s.remove();else{let d=l.querySelector(`[data-placeholder-for="${t}"]`);d?d.replaceWith(s):l.appendChild(s)}return}if(i&&c){let d=document.createElement("div");if(d.setAttribute("data-placeholder-for",t),d.classList.add("slot-placeholder"),!s){let h=c.cloneNode(!0);n.prepend(h)}c.replaceWith(d)}}}adaptForMedia(){if(!this.card.closest("merch-card-collection,overlay-trigger,.two-merch-cards,.three-merch-cards,.four-merch-cards, .columns")){this.card.removeAttribute("size");return}this.adjustSlotPlacement("addon",["super-wide"],R.isDesktopOrUp),this.adjustSlotPlacement("callout-content",["super-wide"],R.isDesktopOrUp)}adjustCallout(){let t=this.card.querySelector('[slot="callout-content"] .icon-button');t&&t.title&&(t.dataset.tooltip=t.title,t.removeAttribute("title"),t.classList.add("hide-tooltip"),document.addEventListener("touchstart",r=>{r.preventDefault(),r.target!==t?t.classList.add("hide-tooltip"):r.target.classList.toggle("hide-tooltip")}),document.addEventListener("mouseover",r=>{r.preventDefault(),r.target!==t?t.classList.add("hide-tooltip"):r.target.classList.remove("hide-tooltip")}))}async adjustEduLists(){if(this.card.variant!=="plans-education"||this.card.querySelector(".spacer"))return;let r=this.card.querySelector('[slot="body-xs"]');if(!r)return;let i=r.querySelector("ul");if(!i)return;let a=i.previousElementSibling,n=document.createElement("div");n.classList.add("spacer"),r.insertBefore(n,a);let o=new IntersectionObserver(([s])=>{if(s.boundingClientRect.height===0)return;let c=0,l=this.card.querySelector('[slot="heading-s"]');l&&(c+=Or(l));let d=this.card.querySelector('[slot="subtitle"]');d&&(c+=Or(d));let h=this.card.querySelector('[slot="heading-m"]');h&&(c+=8+Or(h));for(let f of r.childNodes){if(f.classList.contains("spacer"))break;c+=Or(f)}let g=this.card.parentElement.style.getPropertyValue("--merch-card-plans-edu-list-max-offset");c>(parseFloat(g)||0)&&this.card.parentElement.style.setProperty("--merch-card-plans-edu-list-max-offset",`${c}px`),this.card.style.setProperty("--merch-card-plans-edu-list-offset",`${c}px`),o.disconnect()});o.observe(this.card)}async postCardUpdateHook(){this.adaptForMedia(),this.adjustAddon(),this.adjustCallout(),this.legalAdjusted||(await this.adjustLegal(),await this.adjustEduLists())}get headingM(){return this.card.querySelector('[slot="heading-m"]')}get mainPrice(){return this.headingM.querySelector(`${D}[data-template="price"]`)}get divider(){return this.card.variant==="plans-education"?u``:w}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=[],r=this.card.querySelector(`[slot="heading-m"] ${D}[data-template="price"]`);r&&t.push(r);let i=t.map(async a=>{let n=a.cloneNode(!0);await a.onceSettled(),a?.options&&(a.options.displayPerUnit&&(a.dataset.displayPerUnit="false"),a.options.displayTax&&(a.dataset.displayTax="false"),a.options.displayPlanType&&(a.dataset.displayPlanType="false"),n.setAttribute("data-template","legal"),a.parentNode.insertBefore(n,a.nextSibling),await n.onceSettled())});await Promise.all(i)}catch{}}async adjustAddon(){await this.card.updateComplete;let t=this.card.addon;if(!t)return;t.setAttribute("custom-checkbox","");let r=this.mainPrice;if(!r)return;await r.onceSettled();let i=r.value?.[0]?.planType;i&&(t.planType=i)}get stockCheckbox(){return this.card.checkboxLabel?u``:_}get icons(){return!this.card.querySelector('[slot="icons"]')&&!this.card.getAttribute("id")?_:x`
${this.icons}
${this.secureLabelFooter}
-
- `:u`
+ `:x`
- `:w}get icons(){return this.card.querySelector('[slot="icons"]')||this.card.getAttribute("id")?u`
- ${r?u`
+ ${r?x`
${this.icons}
${this.icons}
`}render(){return this.configuration||!this.price?"":this.type==="subscription-option"?this.asSubscriptionOption:this.asRadioOption}get price(){return this.querySelector('span[is="inline-price"]:not([data-template="strikethrough"])')}get cta(){return this.querySelector(Pe)}get prices(){return this.querySelectorAll('span[is="inline-price"]')}get customerSegment(){return this.price?.value?.[0].customerSegment}get marketSegment(){return this.price?.value?.[0].marketSegments[0]}async initOffer(){if(!this.price)return;this.prices.forEach(i=>i.setAttribute("slot","price")),await this.updateComplete,await Promise.all([...this.prices].map(i=>i.onceSettled()));let{value:[r]}=this.price;this.planType=r.planType,await this.updateComplete,this.dispatchEvent(new CustomEvent(Ut,{bubbles:!0}))}};g(Si,"properties",{text:{type:String},selected:{type:Boolean,attribute:"aria-selected",reflect:!0},badgeText:{type:String,attribute:"badge-text"},type:{type:String,attribute:"type",reflect:!0},planType:{type:String,attribute:"plan-type",reflect:!0}}),g(Si,"styles",[md]);customElements.define(cu,Si);I();I();var ud=S`
:host {
box-sizing: border-box;
--background-color: var(--qs-background-color, #f6f6f6);
@@ -9244,7 +9242,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
:host(:dir(rtl)) .item.selected {
background-position: left 7px center;
}
-`;var[x0,v0,Bn,Fn,pl,ml]=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Tab"];var Un=class extends U{static get properties(){return{closed:{type:Boolean,reflect:!0},selected:{type:Number},min:{type:Number},max:{type:Number},step:{type:Number},maxInput:{type:Number,attribute:"max-input"},options:{type:Array},highlightedIndex:{type:Number},defaultValue:{type:Number,attribute:"default-value",reflect:!0},title:{type:String}}}static get styles(){return hl}constructor(){super(),this.options=[],this.title="",this.closed=!0,this.min=0,this.max=0,this.step=0,this.maxInput=void 0,this.defaultValue=void 0,this.selectedValue=0,this.highlightedIndex=0,this.toggleMenu=this.toggleMenu.bind(this),this.closeMenu=this.closeMenu.bind(this),this.openMenu=this.openMenu.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.boundKeydownListener=this.handleKeydown.bind(this),this.handleKeyupDebounced=Rr(this.handleKeyup.bind(this),500),this.debouncedQuantityUpdate=Rr(this.handleQuantityUpdate.bind(this),500)}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.boundKeydownListener),window.addEventListener("mousedown",this.handleClickOutside),this.addEventListener(Pt,this.debouncedQuantityUpdate)}get button(){return this.shadowRoot.querySelector("button")}handleKeyup(t){t.key===Fn||t.key===Bn||(this.handleInput(),this.sendEvent())}selectValue(){if(!this.closed){let t=this.options[this.highlightedIndex];if(!t){this.closed=!0;return}this.selectedValue=t,this.handleMenuOption(this.selectedValue),this.closed=!0}}handleKeydown(t){switch(t.key){case" ":this.selectValue();break;case"Escape":this.closed=!0;break;case ml:this.selectValue();break;case Fn:this.closed?this.openMenu():this.highlightedIndex=(this.highlightedIndex+1)%this.options.length,t.preventDefault();break;case Bn:this.closed||(this.highlightedIndex=(this.highlightedIndex-1+this.options.length)%this.options.length),t.preventDefault();break;case pl:this.selectValue(),this.button.classList.contains("focused")&&t.preventDefault();break}t.composedPath().includes(this)&&t.stopPropagation()}adjustInput(t,r){this.selectedValue=r,t.value=r,this.highlightedIndex=this.options.indexOf(r)}handleInput(){let t=this.shadowRoot.querySelector(".text-field-input"),r=t.value.replace(/\D/g,"");t.value=r;let i=parseInt(r);if(!isNaN(i))if(i>0&&i!==this.selectedValue){let a=i;this.maxInput&&i>this.maxInput&&(a=this.maxInput),this.min&&a
@@ -4795,7 +4793,7 @@ merch-card[variant="plans-v2"][size="wide"] footer [slot="heading-m"] {
`}
${this.secureLabelFooter} ${this.shortDescriptionToggle}
-
- ${this.secureLabelFooter}`}connectedCallbackHook(){window.addEventListener("resize",this.postCardUpdateHook),this.card.addEventListener(te,this.updatePriceQuantity)}disconnectedCallbackHook(){window.removeEventListener("resize",this.postCardUpdateHook),this.card.removeEventListener(te,this.updatePriceQuantity)}async postCardUpdateHook(){this.card.isConnected&&(this.adjustAddon(),R.isMobile||this.adjustProductBodySlots(),this.legalAdjusted||await this.adjustLegal())}async adjustLegal(){if(!(this.legalAdjusted||!this.card.id))try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=this.mainPrice;if(!t)return;let r=t.cloneNode(!0);if(await t.onceSettled(),!t?.options)return;t.options.displayPerUnit&&(t.dataset.displayPerUnit="false"),t.options.displayTax&&(t.dataset.displayTax="false"),t.options.displayPlanType&&(t.dataset.displayPlanType="false"),r.setAttribute("data-template","legal"),t.parentNode.insertBefore(r,t.nextSibling),await r.onceSettled()}catch{}}get headingXSSlot(){return this.card.shadowRoot.querySelector('slot[name="heading-xs"]').assignedElements()[0]}get mainPrice(){return this.card.querySelector(`[slot="heading-xs"] ${D}[data-template="price"]`)}updatePriceQuantity({detail:t}){!this.mainPrice||!t?.option||(this.mainPrice.dataset.quantity=t.option)}toggleAddon(t){let r=this.mainPrice,i=this.headingXSSlot;if(!r&&i){let a=t?.getAttribute("plan-type"),n=null;if(t&&a&&(n=t.querySelector(`p[data-plan-type="${a}"]`)?.querySelector('span[is="inline-price"]')),this.card.querySelectorAll('p[slot="heading-xs"]').forEach(o=>o.remove()),t.checked){if(n){let o=ne("p",{class:"addon-heading-xs-price-addon",slot:"heading-xs"},n.innerHTML);this.card.appendChild(o)}}else{let o=ne("p",{class:"card-heading",id:"free",slot:"heading-xs"},"Free");this.card.appendChild(o)}}}async adjustAddon(){await this.card.updateComplete;let t=this.card.addon;if(!t)return;let r=this.mainPrice,i=this.card.planType;r&&(await r.onceSettled(),i=r.value?.[0]?.planType),i&&(t.planType=i)}};m(Wt,"variantStyle",b`
+ ${this.secureLabelFooter}`}connectedCallbackHook(){window.addEventListener("resize",this.postCardUpdateHook),this.card.addEventListener(oe,this.updatePriceQuantity)}disconnectedCallbackHook(){window.removeEventListener("resize",this.postCardUpdateHook),this.card.removeEventListener(oe,this.updatePriceQuantity)}async postCardUpdateHook(){this.card.isConnected&&(this.adjustAddon(),D.isMobile||this.adjustProductBodySlots(),this.legalAdjusted||await this.adjustLegal())}async adjustLegal(){if(!(this.legalAdjusted||!this.card.id))try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=this.mainPrice;if(!t)return;let r=t.cloneNode(!0);if(await t.onceSettled(),!t?.options)return;t.options.displayPerUnit&&(t.dataset.displayPerUnit="false"),t.options.displayTax&&(t.dataset.displayTax="false"),t.options.displayPlanType&&(t.dataset.displayPlanType="false"),r.setAttribute("data-template","legal"),t.parentNode.insertBefore(r,t.nextSibling),await r.onceSettled()}catch{}}get headingXSSlot(){return this.card.shadowRoot.querySelector('slot[name="heading-xs"]').assignedElements()[0]}get mainPrice(){return this.card.querySelector(`[slot="heading-xs"] ${O}[data-template="price"]`)}updatePriceQuantity({detail:t}){!this.mainPrice||!t?.option||(this.mainPrice.dataset.quantity=t.option)}toggleAddon(t){let r=this.mainPrice,i=this.headingXSSlot;if(!r&&i){let a=t?.getAttribute("plan-type"),n=null;if(t&&a&&(n=t.querySelector(`p[data-plan-type="${a}"]`)?.querySelector('span[is="inline-price"]')),this.card.querySelectorAll('p[slot="heading-xs"]').forEach(o=>o.remove()),t.checked){if(n){let o=le("p",{class:"addon-heading-xs-price-addon",slot:"heading-xs"},n.innerHTML);this.card.appendChild(o)}}else{let o=le("p",{class:"card-heading",id:"free",slot:"heading-xs"},"Free");this.card.appendChild(o)}}}async adjustAddon(){await this.card.updateComplete;let t=this.card.addon;if(!t)return;let r=this.mainPrice,i=this.card.planType;r&&(await r.onceSettled(),i=r.value?.[0]?.planType),i&&(t.planType=i)}};g(sr,"variantStyle",S`
:host([variant='product']) {
background:
linear-gradient(white, white) padding-box,
@@ -5551,7 +5549,7 @@ merch-card[variant="product"] {
color: rgb(80, 80, 80);
line-height: var(--consonant-merch-card-detail-xs-line-height);
}
- `);_();var _c=`
+ `);I();var Il=`
:root {
--consonant-merch-card-segment-width: 378px;
}
@@ -5574,13 +5572,13 @@ merch-card[variant="segment"] {
}
/* Mobile */
-@media screen and ${H} {
+@media screen and ${j} {
:root {
--consonant-merch-card-segment-width: 276px;
}
}
-@media screen and ${B} {
+@media screen and ${W} {
:root {
--consonant-merch-card-segment-width: 276px;
}
@@ -5593,7 +5591,7 @@ merch-card[variant="segment"] {
}
/* desktop */
-@media screen and ${P} {
+@media screen and ${H} {
:root {
--consonant-merch-card-segment-width: 276px;
}
@@ -5655,21 +5653,21 @@ merch-card-collection.segment merch-card {
width: auto;
height: 100%;
}
-`;var Pc={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"heading-xs"},promoText:{tag:"p",slot:"promo-text"},description:{tag:"div",slot:"body-xs"},callout:{tag:"div",slot:"callout-content"},planType:!0,secureLabel:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"color-red-700-variation"},allowedBadgeColors:["color-yellow-300-variation","color-gray-300-variation","color-gray-700-variation","color-green-900-variation","color-red-700-variation","gradient-purple-blue"],allowedBorderColors:["color-yellow-300-variation","color-gray-300-variation","color-green-900-variation","color-red-700-variation","gradient-purple-blue"],borderColor:{attribute:"border-color"},ctas:{slot:"footer",size:"m"},style:"consonant",perUnitLabel:{tag:"span",slot:"per-unit-label"}},Yt=class extends A{constructor(t){super(t)}priceOptionsProvider(t,r){t.dataset.template===xe&&(r.displayPlanType=this.card?.settings?.displayPlanType??!1,(t.dataset.template==="strikethrough"||t.dataset.template==="price")&&(r.displayPerUnit=!1))}getGlobalCSS(){return _c}get badgeElement(){return this.card.querySelector('[slot="badge"]')}get mainPrice(){return this.card.querySelector(`[slot="heading-xs"] ${D}[data-template="price"]`)}async postCardUpdateHook(){this.legalAdjusted||await this.adjustLegal()}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=this.mainPrice;if(!t)return;let r=t.cloneNode(!0);if(await t.onceSettled(),!t?.options)return;t.options.displayPerUnit&&(t.dataset.displayPerUnit="false"),t.options.displayTax&&(t.dataset.displayTax="false"),t.options.displayPlanType&&(t.dataset.displayPlanType="false"),r.setAttribute("data-template","legal"),t.parentNode.insertBefore(r,t.nextSibling),await r.onceSettled()}catch{}}renderLayout(){return u`
+`;var Hl={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"heading-xs"},promoText:{tag:"p",slot:"promo-text"},description:{tag:"div",slot:"body-xs"},callout:{tag:"div",slot:"callout-content"},planType:!0,secureLabel:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"color-red-700-variation"},allowedBadgeColors:["color-yellow-300-variation","color-gray-300-variation","color-gray-700-variation","color-green-900-variation","color-red-700-variation","gradient-purple-blue"],allowedBorderColors:["color-yellow-300-variation","color-gray-300-variation","color-green-900-variation","color-red-700-variation","gradient-purple-blue"],borderColor:{attribute:"border-color"},ctas:{slot:"footer",size:"m"},style:"consonant",perUnitLabel:{tag:"span",slot:"per-unit-label"}},cr=class extends L{constructor(t){super(t)}priceOptionsProvider(t,r){t.dataset.template===ae&&(r.displayPlanType=this.card?.settings?.displayPlanType??!1,(t.dataset.template==="strikethrough"||t.dataset.template==="price")&&(r.displayPerUnit=!1))}getGlobalCSS(){return Il}get badgeElement(){return this.card.querySelector('[slot="badge"]')}get mainPrice(){return this.card.querySelector(`[slot="heading-xs"] ${O}[data-template="price"]`)}async postCardUpdateHook(){this.legalAdjusted||await this.adjustLegal()}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=this.mainPrice;if(!t)return;let r=t.cloneNode(!0);if(await t.onceSettled(),!t?.options)return;t.options.displayPerUnit&&(t.dataset.displayPerUnit="false"),t.options.displayTax&&(t.dataset.displayTax="false"),t.options.displayPlanType&&(t.dataset.displayPlanType="false"),r.setAttribute("data-template","legal"),t.parentNode.insertBefore(r,t.nextSibling),await r.onceSettled()}catch{}}renderLayout(){return x`
${this.badge}
${this.secureLabelFooter}
- `}};m(Yt,"variantStyle",b`
+ `}};g(cr,"variantStyle",S`
:host([variant='segment']) {
min-height: 214px;
background:
@@ -5680,7 +5678,7 @@ merch-card-collection.segment merch-card {
:host([variant='segment']) ::slotted(h3[slot='heading-xs']) {
max-width: var(--consonant-merch-card-heading-xs-max-width, 100%);
}
- `);_();var Lc=`
+ `);I();var zl=`
merch-card[variant='media'] {
border: 0;
@@ -5793,7 +5791,7 @@ merch-card-collection.segment merch-card {
width: 700px;
}
-`;var Mc={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"m"},backgroundImage:{tag:"div",slot:"bg-image"},style:"consonant"},Xt=class extends A{constructor(t){super(t)}getGlobalCSS(){return Lc}removeFocusFromModalClose(){let t=this.card.closest(".dialog-modal");t&&t.querySelector(".dialog-close")?.blur()}async postCardUpdateHook(){this.removeFocusFromModalClose()}renderLayout(){return u`
+`;var $l={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"m"},backgroundImage:{tag:"div",slot:"bg-image"},style:"consonant"},lr=class extends L{constructor(t){super(t)}getGlobalCSS(){return zl}removeFocusFromModalClose(){let t=this.card.closest(".dialog-modal");t&&t.querySelector(".dialog-close")?.blur()}async postCardUpdateHook(){this.removeFocusFromModalClose()}renderLayout(){return x`
- `}};m(Xt,"variantStyle",b`
+ `}};g(lr,"variantStyle",S`
:host([variant='media']) .media-row {
display: flex;
gap: 24px;
@@ -5834,7 +5832,7 @@ merch-card-collection.segment merch-card {
gap: 40px;
}
}
- `);_();var Rc=`
+ `);I();var Dl=`
:root {
--consonant-merch-card-special-offers-width: 302px;
--merch-card-collection-card-width: var(--consonant-merch-card-special-offers-width);
@@ -5859,13 +5857,13 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="pric
grid-template-columns: minmax(302px, var(--consonant-merch-card-special-offers-width));
}
-@media screen and ${H} {
+@media screen and ${j} {
:root {
--consonant-merch-card-special-offers-width: 302px;
}
}
-@media screen and ${B} {
+@media screen and ${W} {
:root {
--consonant-merch-card-special-offers-width: 302px;
}
@@ -5878,19 +5876,19 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="pric
}
/* desktop */
-@media screen and ${P} {
+@media screen and ${H} {
.three-merch-cards.special-offers,
.four-merch-cards.special-offers {
grid-template-columns: repeat(3, minmax(302px, var(--consonant-merch-card-special-offers-width)));
}
}
-@media screen and ${oe} {
+@media screen and ${de} {
.four-merch-cards.special-offers {
grid-template-columns: repeat(4, minmax(302px, var(--consonant-merch-card-special-offers-width)));
}
}
-`;var Oc={cardName:{attribute:"name"},backgroundImage:{tag:"div",slot:"bg-image"},subtitle:{tag:"p",slot:"detail-m"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"heading-xs-price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"l"},badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-special-offers"},allowedBadgeColors:["spectrum-yellow-300-special-offers","spectrum-gray-300-special-offers","spectrum-green-900-special-offers"],allowedBorderColors:["spectrum-yellow-300-special-offers","spectrum-gray-300-special-offers","spectrum-green-900-special-offers"],borderColor:{attribute:"border-color"}},Kt=class extends A{constructor(t){super(t)}get headingSelector(){return'[slot="detail-m"]'}getGlobalCSS(){return Rc}renderLayout(){return u`${this.cardImage}
+`;var Bl={cardName:{attribute:"name"},backgroundImage:{tag:"div",slot:"bg-image"},subtitle:{tag:"p",slot:"detail-m"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"heading-xs-price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"l"},badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-special-offers"},allowedBadgeColors:["spectrum-yellow-300-special-offers","spectrum-gray-300-special-offers","spectrum-green-900-special-offers"],allowedBorderColors:["spectrum-yellow-300-special-offers","spectrum-gray-300-special-offers","spectrum-green-900-special-offers"],borderColor:{attribute:"border-color"}},dr=class extends L{constructor(t){super(t)}get headingSelector(){return'[slot="detail-m"]'}getGlobalCSS(){return Dl}renderLayout(){return x`${this.cardImage}
- ${this.evergreen?u`
+ ${this.evergreen?x`
- `:u`
+ `:x`
${this.secureLabelFooter}
`}
-
- `}syncHeights(){this.card.getBoundingClientRect().width<=2||(["short-description","cta"].forEach(t=>this.updateCardElementMinHeight(this.card.querySelector(`[slot="${t}"]`),t)),this.updateCardElementMinHeight(this.card.shadowRoot?.querySelector(".price-container"),"price"))}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,await Promise.all(this.card.prices.map(t=>t.onceSettled())),window.matchMedia("(min-width: 1025px)").matches)){let t=this.getContainer();if(!t)return;let r=`--consonant-merch-card-${this.card.variant}`,i=t.style.getPropertyValue(`${r}-price-height`);requestAnimationFrame(i?()=>{this.syncHeights()}:()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(n=>n.variantLayout?.syncHeights?.())})}}renderLayout(){return u`
+ `}syncHeights(){this.card.getBoundingClientRect().width<=2||(["short-description","cta"].forEach(t=>this.updateCardElementMinHeight(this.card.querySelector(`[slot="${t}"]`),t)),this.updateCardElementMinHeight(this.card.shadowRoot?.querySelector(".price-container"),"price"))}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,await Promise.all(this.card.prices.map(t=>t.onceSettled())),window.matchMedia("(min-width: 1025px)").matches)){let t=this.getContainer();if(!t)return;let r=`--consonant-merch-card-${this.card.variant}`,i=t.style.getPropertyValue(`${r}-price-height`);requestAnimationFrame(i?()=>{this.syncHeights()}:()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(n=>n.variantLayout?.syncHeights?.())})}}renderLayout(){return x`
${this.badge}
@@ -7440,7 +7438,7 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
- ${Yh.map(({slot:t,label:r})=>u`
+ ${Sm.map(({slot:t,label:r})=>x`
- `}};m(Jt,"variantStyle",b`
+ `}};g(mr,"variantStyle",S`
:host([variant='headless']) {
border: none;
background: transparent;
@@ -7805,7 +7803,7 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
:host([variant='headless']) .headless-value::slotted(*) {
display: inline;
}
- `);_();var $c=`
+ `);I();var Vl=`
merch-card[variant="mini"] {
color: var(--spectrum-body-color);
width: 400px;
@@ -7838,7 +7836,7 @@ merch-card[variant="mini"] span.promo-duration-text,
merch-card[variant="mini"] span.renewal-text {
display: block;
}
-`;var Hc={title:{tag:"p",slot:"title"},prices:{tag:"p",slot:"prices"},description:{tag:"p",slot:"description"},planType:!0,ctas:{slot:"ctas",size:"S"}},er=class extends A{constructor(){super(...arguments);m(this,"legal")}async postCardUpdateHook(){await this.card.updateComplete,this.adjustLegal()}getGlobalCSS(){return $c}get headingSelector(){return'[slot="title"]'}priceOptionsProvider(r,i){i.literals={...i.literals,strikethroughAriaLabel:"",alternativePriceAriaLabel:""},i.space=!0,i.displayAnnual=this.card.settings?.displayAnnual??!1}adjustLegal(){if(this.legal!==void 0)return;let r=this.card.querySelector(`${D}[data-template="price"]`);if(!r)return;let i=r.cloneNode(!0);this.legal=i,r.dataset.displayTax="false",r.dataset.displayPerUnit="false",i.dataset.template="legal",i.dataset.displayPlanType=this.card?.settings?.displayPlanType??!0,i.setAttribute("slot","legal"),this.card.appendChild(i)}renderLayout(){return u`
+`;var jl={title:{tag:"p",slot:"title"},prices:{tag:"p",slot:"prices"},description:{tag:"p",slot:"description"},planType:!0,ctas:{slot:"ctas",size:"S"}},ur=class extends L{constructor(){super(...arguments);g(this,"legal")}async postCardUpdateHook(){await this.card.updateComplete,this.adjustLegal()}getGlobalCSS(){return Vl}get headingSelector(){return'[slot="title"]'}priceOptionsProvider(r,i){i.literals={...i.literals,strikethroughAriaLabel:"",alternativePriceAriaLabel:""},i.space=!0,i.displayAnnual=this.card.settings?.displayAnnual??!1}adjustLegal(){if(this.legal!==void 0)return;let r=this.card.querySelector(`${O}[data-template="price"]`);if(!r)return;let i=r.cloneNode(!0);this.legal=i,r.dataset.displayTax="false",r.dataset.displayPerUnit="false",i.dataset.template="legal",i.dataset.displayPlanType=this.card?.settings?.displayPlanType??!0,i.setAttribute("slot","legal"),this.card.appendChild(i)}renderLayout(){return x`
${this.badge}
${r}
@@ -7769,16 +7767,16 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
`)}
- ${this.card.secureLabel?u`
+ ${this.card.secureLabel?x`
Secure label
${this.secureLabel}
- `:w}
+ `:_}
- `}};m(er,"variantStyle",b`
+ `}};g(ur,"variantStyle",S`
:host([variant='mini']) {
min-width: 209px;
min-height: 103px;
background-color: var(--spectrum-background-base-color);
border: 1px solid var(--consonant-merch-card-border-color, #dadada);
}
- `);var Wi=new Map,Bc=new WeakMap,Fc=new Map,G=(e,t,r=null,i=null,a)=>{Wi.set(e,{class:t,fragmentMapping:r,style:i,collectionOptions:a})};G("catalog",qt,mc,qt.variantStyle);G("image",wt);G("inline-heading",Vi);G("mini-compare-chart",Vt,vc,Vt.variantStyle);G("mini-compare-chart-mweb",jt,yc,jt.variantStyle);G("plans",ge,ji,ge.variantStyle,ge.collectionOptions);G("plans-students",ge,Ac,ge.variantStyle,ge.collectionOptions);G("plans-education",ge,Ec,ge.variantStyle,ge.collectionOptions);G("plans-v2",Ke,Cc,Ke.variantStyle,Ke.collectionOptions);G("product",Wt,kc,Wt.variantStyle);G("segment",Yt,Pc,Yt.variantStyle);G("media",Xt,Mc,Xt.variantStyle);G("headless",Jt,Dc,Jt.variantStyle);G("special-offers",Kt,Oc,Kt.variantStyle);G("simplified-pricing-express",Qt,Pn,Qt.variantStyle);G("full-pricing-express",Zt,Ln,Zt.variantStyle);G("mini",er,Hc,er.variantStyle);G("image",wt,gc,wt.variantStyle);var Xh=(e,t,r)=>{try{let i=Fc.get(e.variant);if(i||(i=new CSSStyleSheet,i.replaceSync(t.cssText),Fc.set(e.variant,i)),r?.styleSheet&&r.styleSheet!==i){let a=e.shadowRoot.adoptedStyleSheets.indexOf(r.styleSheet);a!==-1&&e.shadowRoot.adoptedStyleSheets.splice(a,1)}return e.shadowRoot.adoptedStyleSheets.includes(i)||e.shadowRoot.adoptedStyleSheets.push(i),{styleSheet:i}}catch{let a=document.createElement("style");a.textContent=t.cssText,a.setAttribute("data-variant-style",e.variant);let n=r?.styleElement||e.shadowRoot.querySelector("[data-variant-style]");return n&&n.remove(),e.shadowRoot.appendChild(a),{styleElement:a}}},Mn=e=>{let t=Wi.get(e.variant);if(!t)return;let{class:r,style:i}=t,a=Bc.get(e);if(a?.appliedVariant===e.variant)return new r(e);let n=i?Xh(e,i,a):{};return Bc.set(e,{appliedVariant:e.variant,...n}),new r(e)};function qi(e){return Wi.get(e)?.fragmentMapping}function Uc(e){return Wi.get(e)?.collectionOptions}var Gc=document.createElement("style");Gc.innerHTML=`
+ `);var _a=new Map,Wl=new WeakMap,Yl=new Map,K=(e,t,r=null,i=null,a)=>{r!==null&&(t.fragmentMapping=r),_a.set(e,{class:t,fragmentMapping:r,style:i,collectionOptions:a})};K("catalog",ar,wl,ar.variantStyle);K("image",Nt);K("inline-heading",Ca);K("mini-compare-chart",nr,Ta,nr.variantStyle);K("mini-compare-chart-mweb",or,kl,or.variantStyle);K("plans",we,ka,we.variantStyle,we.collectionOptions);K("plans-students",we,Pl,we.variantStyle,we.collectionOptions);K("plans-education",we,Ll,we.variantStyle,we.collectionOptions);K("plans-v2",lt,Rl,lt.variantStyle,lt.collectionOptions);K("product",sr,Ol,sr.variantStyle);K("segment",cr,Hl,cr.variantStyle);K("media",lr,$l,lr.variantStyle);K("headless",mr,Gl,mr.variantStyle);K("special-offers",dr,Bl,dr.variantStyle);K("simplified-pricing-express",hr,vo,hr.variantStyle);K("full-pricing-express",pr,yo,pr.variantStyle);K("mini",ur,jl,ur.variantStyle);K("image",Nt,Al,Nt.variantStyle);var Cm=(e,t,r)=>{try{let i=Yl.get(e.variant);if(i||(i=new CSSStyleSheet,i.replaceSync(t.cssText),Yl.set(e.variant,i)),r?.styleSheet&&r.styleSheet!==i){let a=e.shadowRoot.adoptedStyleSheets.indexOf(r.styleSheet);a!==-1&&e.shadowRoot.adoptedStyleSheets.splice(a,1)}return e.shadowRoot.adoptedStyleSheets.includes(i)||e.shadowRoot.adoptedStyleSheets.push(i),{styleSheet:i}}catch{let a=document.createElement("style");a.textContent=t.cssText,a.setAttribute("data-variant-style",e.variant);let n=r?.styleElement||e.shadowRoot.querySelector("[data-variant-style]");return n&&n.remove(),e.shadowRoot.appendChild(a),{styleElement:a}}},wo=e=>{let t=_a.get(e.variant);if(!t)return;let{class:r,style:i}=t,a=Wl.get(e);if(a?.appliedVariant===e.variant)return new r(e);let n=i?Cm(e,i,a):{};return Wl.set(e,{appliedVariant:e.variant,...n}),new r(e)};function Xl(e){return _a.get(e)?.fragmentMapping}function Kl(e){return _a.get(e)?.collectionOptions}var Ql=document.createElement("style");Ql.innerHTML=`
:root {
--consonant-merch-card-detail-font-size: 12px;
--consonant-merch-card-detail-font-weight: 500;
@@ -8673,7 +8671,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
}
}
-@media screen and ${re} {
+@media screen and ${se} {
merch-card [slot='callout-content'] .icon-button::before {
top: unset;
left: unset;
@@ -8698,7 +8696,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
text-align: right;
}
-@media screen and ${B} {
+@media screen and ${W} {
.two-merch-cards,
.three-merch-cards,
.four-merch-cards,
@@ -8714,7 +8712,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
}
}
-@media screen and ${P} {
+@media screen and ${H} {
.four-merch-cards,
.section.four-merch-cards > .content {
@@ -8733,7 +8731,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
}
}
-@media screen and ${oe} {
+@media screen and ${de} {
.four-merch-cards,
merch-sidenav ~ .four-merch-cards,
.section.four-merch-cards > .content {
@@ -8741,9 +8739,9 @@ merch-card[border-color="spectrum-red-700-plans"] {
}
}
-`;document.head.appendChild(Gc);var qc="fragment",Vc="author",jc="preview",Wc="loading",Yc="timeout",Rn="aem-fragment",Xc="eager",Kc="cache",Kh=[Xc,Kc],Ne,Et,ke,On=class{constructor(){E(this,Ne,new Map);E(this,Et,new Map);E(this,ke,new Map)}clear(){p(this,Ne).clear(),p(this,Et).clear(),p(this,ke).clear()}add(t,r=!0){if(!this.has(t.id)&&!this.has(t.fields?.originalId)){if(p(this,Ne).set(t.id,t),t.fields?.originalId&&p(this,Ne).set(t.fields.originalId,t),p(this,ke).has(t.id)){let[,i]=p(this,ke).get(t.id);i()}if(p(this,ke).has(t.fields?.originalId)){let[,i]=p(this,ke).get(t.fields?.originalId);i()}if(!(!r||typeof t.references!="object"||Array.isArray(t.references)))for(let i in t.references){let{type:a,value:n}=t.references[i];a==="content-fragment"&&(n.settings={...t?.settings,...n.settings},n.placeholders={...t?.placeholders,...n.placeholders},n.dictionary={...t?.dictionary,...n.dictionary},n.priceLiterals={...t?.priceLiterals,...n.priceLiterals},this.add(n,t))}}}has(t){return p(this,Ne).has(t)}entries(){return p(this,Ne).entries()}get(t){return p(this,Ne).get(t)}getAsPromise(t){let[r]=p(this,ke).get(t)??[];if(r)return r;let i;return r=new Promise(a=>{i=a,this.has(t)&&a()}),p(this,ke).set(t,[r,i]),r}getFetchInfo(t){let r=p(this,Et).get(t);return r||(r={url:null,retryCount:0,stale:!1,measure:null,status:null},p(this,Et).set(t,r)),r}remove(t){p(this,Ne).delete(t),p(this,Et).delete(t),p(this,ke).delete(t)}};Ne=new WeakMap,Et=new WeakMap,ke=new WeakMap;var Qe=new On,tr,_e,Ue,Ee,fe,J,Yr,Xr,Pe,Kr,Qr,rr,Le,Qc,Zc,Nn,Jc,Yi=class extends HTMLElement{constructor(){super(...arguments);E(this,Le);m(this,"cache",Qe);E(this,tr);E(this,_e,null);E(this,Ue,null);E(this,Ee,null);E(this,fe);E(this,J);E(this,Yr,Xc);E(this,Xr,5e3);E(this,Pe);E(this,Kr,!1);E(this,Qr,0);E(this,rr)}static get observedAttributes(){return[qc,Wc,Yc,Vc,jc]}attributeChangedCallback(r,i,a){r===qc&&(y(this,fe,a),y(this,J,Qe.getFetchInfo(a))),r===Wc&&Kh.includes(a)&&y(this,Yr,a),r===Yc&&y(this,Xr,parseInt(a,10)),r===Vc&&y(this,Kr,["","true"].includes(a)),r===jc&&y(this,rr,a)}connectedCallback(){if(!p(this,Pe)){if(p(this,Ee)??y(this,Ee,mt(this)),y(this,rr,p(this,Ee).settings?.preview),p(this,tr)??y(this,tr,p(this,Ee).log.module(`${Rn}[${p(this,fe)}]`)),!p(this,fe)||p(this,fe)==="#"){p(this,J)??y(this,J,Qe.getFetchInfo("missing-fragment-id")),Z(this,Le,Nn).call(this,"Missing fragment id");return}this.refresh(!1)}}get fetchInfo(){return Object.fromEntries(Object.entries(p(this,J)).filter(([r,i])=>i!=null).map(([r,i])=>[`aem-fragment:${r}`,i]))}async refresh(r=!0){if(p(this,Pe)&&!await Promise.race([p(this,Pe),Promise.resolve(!1)]))return;r&&Qe.remove(p(this,fe)),p(this,Yr)===Kc&&await Promise.race([Qe.getAsPromise(p(this,fe)),new Promise(s=>setTimeout(s,p(this,Xr)))]);try{y(this,Pe,Z(this,Le,Jc).call(this)),await p(this,Pe)}catch(s){return Z(this,Le,Nn).call(this,s.message),!1}let{references:i,referencesTree:a,placeholders:n,wcs:o}=p(this,_e)||{};return o&&!F("mas.disableWcsCache")&&p(this,Ee).prefillWcsCache(o),this.dispatchEvent(new CustomEvent(at,{detail:{...this.data,references:i,referencesTree:a,placeholders:n,...p(this,J)},bubbles:!0,composed:!0})),p(this,Pe)}get updateComplete(){return p(this,Pe)??Promise.reject(new Error("AEM fragment cannot be loaded"))}get data(){return p(this,Ue)?p(this,Ue):(p(this,Kr)?this.transformAuthorData():this.transformPublishData(),p(this,Ue))}get rawData(){return p(this,_e)}transformAuthorData(){let{fields:r,id:i,tags:a,settings:n={},priceLiterals:o={},dictionary:s={},placeholders:c={}}=p(this,_e);y(this,Ue,r.reduce((l,{name:d,multiple:h,values:g})=>(l.fields[d]=h?g:g[0],l),{fields:{},id:i,tags:a,settings:n,priceLiterals:o,dictionary:s,placeholders:c}))}transformPublishData(){let{fields:r,id:i,tags:a,settings:n={},priceLiterals:o={},dictionary:s={},placeholders:c={}}=p(this,_e);y(this,Ue,Object.entries(r).reduce((l,[d,h])=>(l.fields[d]=h?.mimeType?h.value:h??"",l),{fields:{},id:i,tags:a,settings:n,priceLiterals:o,dictionary:s,placeholders:c}))}getFragmentClientUrl(){let i=new URLSearchParams(window.location.search).get("maslibs");if(!i||i.trim()==="")return"https://mas.adobe.com/studio/libs/fragment-client.js";let a=i.trim().toLowerCase();if(a==="local")return"http://localhost:3000/studio/libs/fragment-client.js";let{hostname:n}=window.location,o=n.endsWith(".page")?"page":"live";return a.includes("--")?`https://${a}.aem.${o}/studio/libs/fragment-client.js`:`https://${a}--mas--adobecom.aem.${o}/studio/libs/fragment-client.js`}async generatePreview(){let r=this.getFragmentClientUrl(),{previewFragment:i}=await import(r);return await i(p(this,fe),{locale:p(this,Ee).settings.locale,apiKey:p(this,Ee).settings.wcsApiKey,fullContext:!0})}};tr=new WeakMap,_e=new WeakMap,Ue=new WeakMap,Ee=new WeakMap,fe=new WeakMap,J=new WeakMap,Yr=new WeakMap,Xr=new WeakMap,Pe=new WeakMap,Kr=new WeakMap,Qr=new WeakMap,rr=new WeakMap,Le=new WeakSet,Qc=async function(r){Jn(this,Qr)._++;let i=`${Rn}:${p(this,fe)}:${p(this,Qr)}`,a=`${i}${st}`,n=`${i}${ct}`;if(p(this,rr)){let s=await this.generatePreview();if(s.status===200)return s.body;throw new Re(`Failed to generate preview: ${s.message}`,{})}performance.mark(a);let o;try{if(p(this,J).stale=!1,p(this,J).url=r,o=await Ni(r,{cache:"default",credentials:"omit"}),Z(this,Le,Zc).call(this,o),p(this,J).status=o?.status,p(this,J).measure=Oe(performance.measure(n,a)),p(this,J).retryCount=o.retryCount,!o?.ok)throw new Re("Unexpected fragment response",{response:o,...p(this,Ee).duration});return await o.json()}catch(s){if(p(this,J).measure=Oe(performance.measure(n,a)),p(this,J).retryCount=s.retryCount,p(this,_e))return p(this,J).stale=!0,p(this,tr).error("Serving stale data",p(this,J)),p(this,_e);let c=s.message??"unknown";throw new Re(`Failed to fetch fragment: ${c}`,{})}},Zc=function(r){Object.assign(p(this,J),vi(r))},Nn=function(r){y(this,Pe,null),p(this,J).message=r,this.classList.add("error");let i={...p(this,J),...p(this,Ee).duration};p(this,tr).error(r,i),this.dispatchEvent(new CustomEvent(nt,{detail:i,bubbles:!0,composed:!0}))},Jc=async function(){var c;this.classList.remove("error"),y(this,Ue,null);let r=Qe.get(p(this,fe));if(r)return y(this,_e,r),!0;let{masIOUrl:i,wcsApiKey:a,country:n,locale:o}=p(this,Ee).settings,s=`${i}/fragment?id=${p(this,fe)}&api_key=${a}&locale=${o}`;return n&&!o.endsWith(`_${n}`)&&(s+=`&country=${n}`),r=await Z(this,Le,Qc).call(this,s),(c=r.fields).originalId??(c.originalId=p(this,fe)),Qe.add(r),y(this,_e,r),!0},m(Yi,"cache",Qe);customElements.define(Rn,Yi);_();Ur();var el={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},tl=e=>(...t)=>({_$litDirective$:e,values:t}),Xi=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,r,i){this._$Ct=t,this._$AM=r,this._$Ci=i}_$AS(t,r){return this.update(t,r)}update(t,r){return this.render(...r)}};var Zr=class extends Xi{constructor(t){if(super(t),this.et=w,t.type!==el.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===w||t==null)return this.ft=void 0,this.et=t;if(t===Fe)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;let r=[t];return r.raw=r,this.ft={_$litType$:this.constructor.resultType,strings:r,values:[]}}};Zr.directiveName="unsafeHTML",Zr.resultType=1;var rl=tl(Zr);var Qh=e=>e?e.startsWith("sp-icon-")?u`${rl(`<${e} class="badge-icon">${e}>`)}`:u``:w,ir=class extends U{constructor(){super(),this.color="",this.variant="",this.backgroundColor="",this.borderColor="",this.text=this.textContent,this.icon=""}connectedCallback(){this.borderColor&&this.borderColor!=="transparent"?this.style.setProperty("--merch-badge-border",`1px solid var(--${this.borderColor})`):this.backgroundColor.startsWith("gradient-")||this.style.setProperty("--merch-badge-border",`1px solid var(--${this.backgroundColor})`),this.style.setProperty("--merch-badge-background-color",`var(--${this.backgroundColor})`),(!this.borderColor||this.borderColor==="transparent")&&this.backgroundColor.startsWith("gradient-")?this.style.setProperty("--merch-badge-padding","3px 11px 4px 11px"):this.style.setProperty("--merch-badge-padding","2px 10px 3px 10px"),this.style.setProperty("--merch-badge-color",this.color),this.style.setProperty("--merch-badge-font-size","var(--consonant-merch-card-body-xs-font-size)"),this.querySelector('span[is="inline-price"]')||(this.textContent="");let t=this.closest("merch-card"),r=t?.getAttribute("size"),i=t?.querySelectorAll(":scope > merch-icon").length||0;this.style.setProperty("--merch-badge-offset",i),this.style.setProperty("--merch-badge-with-offset",i?1:0),this.style.setProperty("--merch-badge-card-size",r?2:1),super.connectedCallback()}render(){return u`
- ${Qh(this.icon)}`}};m(ir,"properties",{color:{type:String},variant:{type:String},backgroundColor:{type:String,attribute:"background-color"},borderColor:{type:String,attribute:"border-color"},icon:{type:String}}),m(ir,"styles",b`
+`;document.head.appendChild(Ql);var Zl="fragment",Jl="author",ed="preview",td="loading",rd="timeout",Eo="aem-fragment",id="eager",ad="cache",Tm=[id,ad],Ge,Ot,He,Ao=class{constructor(){A(this,Ge,new Map);A(this,Ot,new Map);A(this,He,new Map)}clear(){m(this,Ge).clear(),m(this,Ot).clear(),m(this,He).clear()}add(t,r=!0){if(!this.has(t.id)&&!this.has(t.fields?.originalId)){if(m(this,Ge).set(t.id,t),t.fields?.originalId&&m(this,Ge).set(t.fields.originalId,t),m(this,He).has(t.id)){let[,i]=m(this,He).get(t.id);i()}if(m(this,He).has(t.fields?.originalId)){let[,i]=m(this,He).get(t.fields?.originalId);i()}if(!(!r||typeof t.references!="object"||Array.isArray(t.references)))for(let i in t.references){let{type:a,value:n}=t.references[i];a==="content-fragment"&&(n.settings={...t?.settings,...n.settings},n.placeholders={...t?.placeholders,...n.placeholders},n.dictionary={...t?.dictionary,...n.dictionary},n.priceLiterals={...t?.priceLiterals,...n.priceLiterals},this.add(n,t))}}}has(t){return m(this,Ge).has(t)}entries(){return m(this,Ge).entries()}get(t){return m(this,Ge).get(t)}getAsPromise(t){let[r]=m(this,He).get(t)??[];if(r)return r;let i;return r=new Promise(a=>{i=a,this.has(t)&&a()}),m(this,He).set(t,[r,i]),r}getFetchInfo(t){let r=m(this,Ot).get(t);return r||(r={url:null,retryCount:0,stale:!1,measure:null,status:null},m(this,Ot).set(t,r)),r}remove(t){m(this,Ge).delete(t),m(this,Ot).delete(t),m(this,He).delete(t)}};Ge=new WeakMap,Ot=new WeakMap,He=new WeakMap;var dt=new Ao,gr,ze,tt,ke,Ee,ne,gi,fi,$e,bi,xi,fr,De,nd,od,So,sd,La=class extends HTMLElement{constructor(){super(...arguments);A(this,De);g(this,"cache",dt);A(this,gr);A(this,ze,null);A(this,tt,null);A(this,ke,null);A(this,Ee);A(this,ne);A(this,gi,id);A(this,fi,5e3);A(this,$e);A(this,bi,!1);A(this,xi,0);A(this,fr)}static get observedAttributes(){return[Zl,td,rd,Jl,ed]}attributeChangedCallback(r,i,a){r===Zl&&(E(this,Ee,a),E(this,ne,dt.getFetchInfo(a))),r===td&&Tm.includes(a)&&E(this,gi,a),r===rd&&E(this,fi,parseInt(a,10)),r===Jl&&E(this,bi,["","true"].includes(a)),r===ed&&E(this,fr,a)}connectedCallback(){if(!m(this,$e)){if(m(this,ke)??E(this,ke,Ie(this)),E(this,fr,m(this,ke).settings?.preview),m(this,gr)??E(this,gr,m(this,ke).log.module(`${Eo}[${m(this,Ee)}]`)),!m(this,Ee)||m(this,Ee)==="#"){m(this,ne)??E(this,ne,dt.getFetchInfo("missing-fragment-id")),ie(this,De,So).call(this,"Missing fragment id");return}this.refresh(!1)}}get fetchInfo(){return Object.fromEntries(Object.entries(m(this,ne)).filter(([r,i])=>i!=null).map(([r,i])=>[`aem-fragment:${r}`,i]))}async refresh(r=!0){if(m(this,$e)&&!await Promise.race([m(this,$e),Promise.resolve(!1)]))return;r&&dt.remove(m(this,Ee)),m(this,gi)===ad&&await Promise.race([dt.getAsPromise(m(this,Ee)),new Promise(s=>setTimeout(s,m(this,fi)))]);try{E(this,$e,ie(this,De,sd).call(this)),await m(this,$e)}catch(s){return ie(this,De,So).call(this,s.message),!1}let{references:i,referencesTree:a,placeholders:n,wcs:o}=m(this,ze)||{};return o&&!Y("mas.disableWcsCache")&&m(this,ke).prefillWcsCache(o),this.dispatchEvent(new CustomEvent(pe,{detail:{...this.data,references:i,referencesTree:a,placeholders:n,...m(this,ne)},bubbles:!0,composed:!0})),m(this,$e)}get updateComplete(){return m(this,$e)??Promise.reject(new Error("AEM fragment cannot be loaded"))}get data(){return m(this,tt)?m(this,tt):(m(this,bi)?this.transformAuthorData():this.transformPublishData(),m(this,tt))}get rawData(){return m(this,ze)}transformAuthorData(){let{fields:r,id:i,tags:a,settings:n={},priceLiterals:o={},dictionary:s={},placeholders:c={}}=m(this,ze);E(this,tt,r.reduce((l,{name:d,multiple:h,values:p})=>(l.fields[d]=h?p:p[0],l),{fields:{},id:i,tags:a,settings:n,priceLiterals:o,dictionary:s,placeholders:c}))}transformPublishData(){let{fields:r,id:i,tags:a,settings:n={},priceLiterals:o={},dictionary:s={},placeholders:c={}}=m(this,ze);E(this,tt,Object.entries(r).reduce((l,[d,h])=>(l.fields[d]=h?.mimeType?h.value:h??"",l),{fields:{},id:i,tags:a,settings:n,priceLiterals:o,dictionary:s,placeholders:c}))}getFragmentClientUrl(){let i=new URLSearchParams(window.location.search).get("maslibs");if(!i||i.trim()==="")return"https://mas.adobe.com/studio/libs/fragment-client.js";let a=i.trim().toLowerCase();if(a==="local")return"http://localhost:3000/studio/libs/fragment-client.js";let{hostname:n}=window.location,o=n.endsWith(".page")?"page":"live";return a.includes("--")?`https://${a}.aem.${o}/studio/libs/fragment-client.js`:`https://${a}--mas--adobecom.aem.${o}/studio/libs/fragment-client.js`}async generatePreview(){let r=this.getFragmentClientUrl(),{previewFragment:i}=await import(r);return await i(m(this,Ee),{locale:m(this,ke).settings.locale,apiKey:m(this,ke).settings.wcsApiKey,fullContext:!0})}};gr=new WeakMap,ze=new WeakMap,tt=new WeakMap,ke=new WeakMap,Ee=new WeakMap,ne=new WeakMap,gi=new WeakMap,fi=new WeakMap,$e=new WeakMap,bi=new WeakMap,xi=new WeakMap,fr=new WeakMap,De=new WeakSet,nd=async function(r){Ft(this,xi)._++;let i=`${Eo}:${m(this,Ee)}:${m(this,xi)}`,a=`${i}${Re}`,n=`${i}${Ne}`;if(m(this,fr)){let s=await this.generatePreview();if(s.status===200)return s.body;throw new qe(`Failed to generate preview: ${s.message}`,{})}performance.mark(a);let o;try{if(m(this,ne).stale=!1,m(this,ne).url=r,o=await ma(r,{cache:"default",credentials:"omit"}),ie(this,De,od).call(this,o),m(this,ne).status=o?.status,m(this,ne).measure=xe(performance.measure(n,a)),m(this,ne).retryCount=o.retryCount,!o?.ok)throw new qe("Unexpected fragment response",{response:o,...m(this,ke).duration});return await o.json()}catch(s){if(m(this,ne).measure=xe(performance.measure(n,a)),m(this,ne).retryCount=s.retryCount,m(this,ze))return m(this,ne).stale=!0,m(this,gr).error("Serving stale data",m(this,ne)),m(this,ze);let c=s.message??"unknown";throw new qe(`Failed to fetch fragment: ${c}`,{})}},od=function(r){Object.assign(m(this,ne),Qi(r))},So=function(r){E(this,$e,null),m(this,ne).message=r,this.classList.add("error");let i={...m(this,ne),...m(this,ke).duration};m(this,gr).error(r,i),this.dispatchEvent(new CustomEvent(me,{detail:i,bubbles:!0,composed:!0}))},sd=async function(){var c;this.classList.remove("error"),E(this,tt,null);let r=dt.get(m(this,Ee));if(r)return E(this,ze,r),!0;let{masIOUrl:i,wcsApiKey:a,country:n,locale:o}=m(this,ke).settings,s=`${i}/fragment?id=${m(this,Ee)}&api_key=${a}&locale=${o}`;return n&&!o.endsWith(`_${n}`)&&(s+=`&country=${n}`),r=await ie(this,De,nd).call(this,s),(c=r.fields).originalId??(c.originalId=m(this,Ee)),dt.add(r),E(this,ze,r),!0},g(La,"cache",dt);customElements.define(Eo,La);I();bo();var km=e=>e?e.startsWith("sp-icon-")?x`${Ea(`<${e} class="badge-icon">${e}>`)}`:x``:_,br=class extends X{constructor(){super(),this.color="",this.variant="",this.backgroundColor="",this.borderColor="",this.text=this.textContent,this.icon=""}connectedCallback(){this.borderColor&&this.borderColor!=="transparent"?this.style.setProperty("--merch-badge-border",`1px solid var(--${this.borderColor})`):this.backgroundColor.startsWith("gradient-")||this.style.setProperty("--merch-badge-border",`1px solid var(--${this.backgroundColor})`),this.style.setProperty("--merch-badge-background-color",`var(--${this.backgroundColor})`),(!this.borderColor||this.borderColor==="transparent")&&this.backgroundColor.startsWith("gradient-")?this.style.setProperty("--merch-badge-padding","3px 11px 4px 11px"):this.style.setProperty("--merch-badge-padding","2px 10px 3px 10px"),this.style.setProperty("--merch-badge-color",this.color),this.style.setProperty("--merch-badge-font-size","var(--consonant-merch-card-body-xs-font-size)"),this.querySelector('span[is="inline-price"]')||(this.textContent="");let t=this.closest("merch-card"),r=t?.getAttribute("size"),i=t?.querySelectorAll(":scope > merch-icon").length||0;this.style.setProperty("--merch-badge-offset",i),this.style.setProperty("--merch-badge-with-offset",i?1:0),this.style.setProperty("--merch-badge-card-size",r?2:1),super.connectedCallback()}render(){return x`
+ ${km(this.icon)}`}};g(br,"properties",{color:{type:String},variant:{type:String},backgroundColor:{type:String,attribute:"background-color"},borderColor:{type:String,attribute:"border-color"},icon:{type:String}}),g(br,"styles",S`
:host {
display: block;
background: var(--merch-badge-background-color);
@@ -8764,10 +8762,10 @@ merch-card[border-color="spectrum-red-700-plans"] {
height: 18px;
width: 18px;
}
- `);customElements.define("merch-badge",ir);_();var Jr=class extends U{constructor(){super()}render(){return u`
+ `);customElements.define("merch-badge",br);I();var vi=class extends X{constructor(){super()}render(){return x`
+ ${!this.isMobile||!this.bulletsAdded?x``:_}`}get isMobile(){return window.matchMedia("(max-width: 767px)").matches}get rows(){return this.querySelectorAll('[slot="content"] merch-mnemonic-list')}get bulletsAdded(){return!!this.querySelector('[slot="contentBullets"] merch-mnemonic-list')}};g(yi,"styles",S`
:host {
display: flex;
flex-wrap: wrap;
@@ -8838,7 +8836,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
text-decoration: underline;
color: var(--link-color-dark);
}
- `),m(ei,"properties",{heading:{type:String,attribute:!0},mobileRows:{type:Number,attribute:!0}});customElements.define("merch-whats-included",ei);var Zh="#000000",In="#F8D904",Jh="#EAEAEA",ep="#31A547",tp=/(accent|primary|secondary)(-(outline|link))?/,rp="mas:product_code/",ip="daa-ll",Ki="daa-lh",ap=["XL","L","M","S"],zn="...";function Ae(e,t,r,i){let a=i[e];if(t[e]&&a){let n={slot:a?.slot,...a?.attributes},o=t[e];if(a.maxCount&&typeof o=="string"){let[c,l]=wp(o,a.maxCount,a.withSuffix);c!==o&&(n.title=l,o=c)}let s=ne(a.tag,n,o);r.append(s)}}function np(e,t,r){let a=(e.mnemonicIcon||[]).filter(o=>o).map((o,s)=>({icon:o,alt:e.mnemonicAlt?.[s]??"",link:e.mnemonicLink?.[s]??""}));a?.forEach(({icon:o,alt:s,link:c})=>{if(c&&!/^https?:/.test(c))try{c=new URL(`https://${c}`).href.toString()}catch{c="#"}let l={slot:"icons",src:o,loading:t.loading,size:r?.size??"l"};s&&(l.alt=s),c&&(l.href=c);let d=ne("merch-icon",l);t.append(d)});let n=t.shadowRoot.querySelector('slot[name="icons"]');n&&(n.style.display=a?.length?null:"none")}function op(e,t,r){if(r.badge?.slot){if(e.badge?.length&&!e.badge?.startsWith("
${this.showAll?"- See less":"+ See more"}
- `:w}`}get isMobile(){return window.matchMedia("(max-width: 767px)").matches}get rows(){return this.querySelectorAll('[slot="content"] merch-mnemonic-list')}get bulletsAdded(){return!!this.querySelector('[slot="contentBullets"] merch-mnemonic-list')}};m(ei,"styles",b`
+
+`;var cu="merch-offer",Si=class extends X{constructor(){super();g(this,"tr");this.type="radio",this.selected=!1}getOptionValue(r){return this.querySelector(`[slot="${r}"]`)}connectedCallback(){super.connectedCallback(),this.initOffer(),this.configuration=this.closest("quantity-selector"),!this.hasAttribute("tabindex")&&!this.configuration&&(this.tabIndex=0),!this.hasAttribute("role")&&!this.configuration&&(this.role="radio")}get asRadioOption(){return x` `}get asSubscriptionOption(){return x`
${this.text}
- `}get asSubscriptionOption(){return u`
@@ -9085,7 +9083,7 @@ merch-card[border-color="spectrum-red-700-plans"] {
>`}render(){return this.configuration||!this.price?"":this.type==="subscription-option"?this.asSubscriptionOption:this.asRadioOption}get price(){return this.querySelector('span[is="inline-price"]:not([data-template="strikethrough"])')}get cta(){return this.querySelector(Se)}get prices(){return this.querySelectorAll('span[is="inline-price"]')}get customerSegment(){return this.price?.value?.[0].customerSegment}get marketSegment(){return this.price?.value?.[0].marketSegments[0]}async initOffer(){if(!this.price)return;this.prices.forEach(i=>i.setAttribute("slot","price")),await this.updateComplete,await Promise.all([...this.prices].map(i=>i.onceSettled()));let{value:[r]}=this.price;this.planType=r.planType,await this.updateComplete,this.dispatchEvent(new CustomEvent(_t,{bubbles:!0}))}};m(ai,"properties",{text:{type:String},selected:{type:Boolean,attribute:"aria-selected",reflect:!0},badgeText:{type:String,attribute:"badge-text"},type:{type:String,attribute:"type",reflect:!0},planType:{type:String,attribute:"plan-type",reflect:!0}}),m(ai,"styles",[dl]);customElements.define(Rp,ai);_();_();var hl=b`
+ 0&&i!==this.selectedValue){let a=i;this.maxInput&&i>this.maxInput&&(a=this.maxInput),this.min&&a
- ${this.options.map((t,r)=>u`
+ ${this.options.map((t,r)=>x`
`}handleQuantityUpdate({detail:{quantity:t}}){if(t&&t!==this.selectedValue){this.selectedValue=t;let r=this.shadowRoot.querySelector(".text-field-input");r&&(r.value=t),this.sendEvent()}}onButtonFocus(t){t.target.classList.add("focused")}onButtonBlur(t){t.target.classList.remove("focused")}render(){return x`
`)}
- `}handleQuantityUpdate({detail:{quantity:t}}){if(t&&t!==this.selectedValue){this.selectedValue=t;let r=this.shadowRoot.querySelector(".text-field-input");r&&(r.value=t),this.sendEvent()}}onButtonFocus(t){t.target.classList.add("focused")}onButtonBlur(t){t.target.classList.remove("focused")}render(){return u`
+ ${this.title}
- `}};customElements.define("merch-quantity-select",Un);Ui();_();var ul=`
+ `}};customElements.define("merch-quantity-select",Ro);Aa();var zo="mas-table",lu="mas-table, mas-comparison-table",bd="mas-table:",No=2e4,xd="milo:tab:changed",du="milo:table:highlight:loaded",hu=900,Md=768,vd={"toggle-row":"Toggle row","choose-table-column":"Choose table column"},_E=new URL("./img/chevron-wide-black.svg",import.meta.url).href,yd="mini-compare-chart",Ia={title:"heading-xs",prices:"heading-m-price",description:"body-m",ctas:"footer"},pu=[{className:"header-section-icon",cssVar:"--mas-table-header-icon-height"},{className:"header-section-title",cssVar:"--mas-table-header-title-height"},{className:"header-section-description",cssVar:"--mas-table-header-description-height"},{className:"header-section-price-strikethrough",cssVar:"--mas-table-header-strikethrough-height"},{className:"header-section-price",cssVar:"--mas-table-header-price-height"},{className:"header-section-legal",cssVar:"--mas-table-header-legal-height"},{className:"header-section-buttons",cssVar:"--mas-table-header-buttons-height"}],Rd="data-mas-table-height-rules",Ha="data-mas-table-height-scope",wd=0;var Nd=0;function Od(e){return e?.hasAttribute(Ha)||(wd+=1,e.setAttribute(Ha,`${wd}`)),e.getAttribute(Ha)}function mu(e){let r=e?.closest(lu)?.querySelector(`style[${Rd}]`);return r?(r._tableHeightRules||(r._tableHeightRules=new Map),r):null}function za(e,t=""){let r=mu(e),i=Od(e);!r||!i||(t?r._tableHeightRules.set(i,t):r._tableHeightRules.delete(i),r.textContent=Array.from(r._tableHeightRules.values()).join(`
+`))}function uu(e,t=[]){let r=Od(e);return!r||!t.length?"":`[${Ha}="${r}"] .row-heading { ${t.join(" ")} }`}function N(e,t={},r=null){let i=document.createElement(e);return Object.entries(t).forEach(([a,n])=>{n!=null&&i.setAttribute(a,n)}),Id(i,r),i}function Id(e,t){if(t!=null){if(Array.isArray(t)){t.forEach(r=>Id(e,r));return}if(t instanceof Node){e.append(t);return}e.append(document.createTextNode(String(t)))}}function gu(e,t){if(!t)return;let r=document.createElement("template");r.innerHTML=t,e.append(r.content.cloneNode(!0))}function Fo(e){return e?.fields?Array.isArray(e.fields)?e.fields.reduce((t,r)=>(r?.name&&(t[r.name]=r.multiple?r.values||[]:r.values?.[0]),t),{}):e.fields:{}}function Hd(e,t){let r=e?.[t];return r==null?"":Array.isArray(r)?String(r[0]??""):typeof r=="object"&&"value"in r?String(r.value??""):String(r)}function zd(e,t){let r=e?.[t];return r==null?[]:Array.isArray(r)?r:[r]}function $o(e){return Array.isArray(e)?e.map(t=>$o(t)):e&&typeof e=="object"&&"value"in e?$o(e.value):e}function fu(e){let t=Fo(e);return Object.fromEntries(Object.entries(t).map(([r,i])=>[r,$o(i)]))}function bu(e={}){let t=new Map;return Object.values(e).forEach(r=>{if(r?.type!=="content-fragment"||!r.value)return;let i=r.value,a={...i,fields:Fo(i)};a.id&&t.set(a.id,a),a.fields.originalId&&t.set(a.fields.originalId,a)}),t}function Ed(e,t){let r=e?.dictionary?.[t];return typeof r=="object"&&r&&"value"in r?r.value:r}function xu(e){return{"toggle-row":Ed(e,"toggle-row")||vd["toggle-row"],"choose-table-column":Ed(e,"choose-table-column")||vd["choose-table-column"]}}function vu(){return window.matchMedia("(orientation: landscape)").matches&&window.innerHeight<=Md}function Tr(){let e=window.innerWidth;return e>=hu?"DESKTOP":e<=Md?"MOBILE":"TABLET"}function Uo(e){return e.classList.contains("sticky")||e.classList.contains("sticky-desktop-up")&&Tr()==="DESKTOP"||e.classList.contains("sticky-tablet-up")&&Tr()!=="MOBILE"&&!vu()}function $d(e){if(!e||e.classList.contains("merch"))return!1;let t=e.querySelector(".row-heading"),r=t?.querySelector(".col-1"),i=t?.querySelector(".col-2");return!!(t&&i&&r&&!r.textContent?.trim())}function yu(e,t){let r=e.querySelectorAll("em a, strong a, p > a strong");if(!r.length)return;let i={STRONG:"blue",EM:"outline",A:"blue"};r.forEach(a=>{let n=a.parentElement,o=a,s=i[n.nodeName]||"outline";a.nodeName==="STRONG"?o=n:(n.insertAdjacentElement("afterend",a),n.remove()),o.classList.add("con-button",s),t&&o.classList.add(t),(o.href&&[...o.href.matchAll(/#_button-([a-zA-Z-]+)/g)])?.forEach(d=>{o.href=o.href.replace(d[0],""),o.dataset.modalHash&&o.setAttribute("data-modal-hash",o.dataset.modalHash.replace(d[0],"")),o.classList.add(d[1])});let l=a.closest("p, div");l&&(l.classList.add("action-area"),l.nextElementSibling?.classList.add("supplemental-text","body-xl"))})}function wu(e,t){let r=e.classList.contains("pricing-bottom");t.forEach((i,a)=>{if(i.classList.add("col-heading"),!i.innerHTML)return;let n=i.querySelector(":scope > .heading-content")&&i.querySelector(":scope > .heading-button"),o=i.children;if(!n)if(!o.length)i.innerHTML=``;else{let c=0,l=!1,d=k=>k?.matches?.("img, picture, mas-mnemonic, merch-icon"),h=o[c];if(h?.classList?.contains("header-product-tile")||d(h)||h?.querySelector("img, picture, mas-mnemonic, merch-icon")){if(d(h)){let k=N("p"),G=h;for(;d(G);){let ee=G.nextElementSibling;k.append(G),G=ee}i.insertBefore(k,G||null),h=k}c+=1,e.classList.contains("merch")||h?.classList.add("header-product-tile")}o[c]&&(o[c].classList.add("tracking-header"),l=!0);let u=[...o].slice(c+1),f="em a, strong a, p > a strong, a.con-button",b=u.find(k=>k.querySelector(f)),y=k=>{if(!k)return!1;if(k.querySelector('[is="inline-price"], .price, [data-template], .price-integer, .price-strikethrough, .price-alternative'))return!0;let G=k.textContent?.trim()||"";return/(?:US?\$|CA\$|A\$|€|£|¥|\/(?:mo|month|Monat))/i.test(G)},C=u.filter(k=>k!==b),w=C.find(y);!w&&C.length>1&&(w=C[C.length-1]);let v=C.find(k=>k!==w);w&&w.classList.add("pricing"),v&&v.classList.add("body"),yu(i,"button-xl");let T=N("div",{class:"buttons-wrapper"});i.append(T),i.querySelectorAll(".con-button").forEach(k=>{let G=k.closest("p");G&&T.append(G)});let F=N("div",{class:"heading-content"}),V=N("div",{class:"heading-button"});if([...o].forEach(k=>{k.classList.contains("pricing")&&r?V.appendChild(k):F.appendChild(k)}),V.appendChild(T),i.append(F,V),!l){let k=Array.from(i.childNodes).find(G=>G.nodeType===Node.TEXT_NODE);k?.textContent?.trim()&&F.append(N("p",{class:"tracking-header"},k.textContent)),k?.remove()}}let s=i.querySelector(".tracking-header");if(s){let c=`t${Nd+1}-c${a+1}-header`;s.setAttribute("id",c);let l=i.querySelector(".body:not(.action-area)");l?.setAttribute("id",`${c}-body`);let d=i.querySelector(".pricing");d?.setAttribute("id",`${c}-pricing`);let h=`${l?.id??""} ${d?.id??""}`.trim();s.setAttribute("aria-describedby",h),i.setAttribute("role","columnheader")}i.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(c=>{c.setAttribute("role","paragraph")})})}function $t(e,t=[]){return N("div",{class:`header-section ${e}`},Array.isArray(t)?t.filter(Boolean):t)}function Eu(e,t){if(!e||e.tagName.toLowerCase()===t)return e;let r=document.createElement(t);return Array.from(e.attributes).forEach(({name:i,value:a})=>{r.setAttribute(i,a)}),r.append(...Array.from(e.childNodes)),e.replaceWith(r),r}function Au(e){e.querySelectorAll(".row-heading p.pricing, .row-heading p.supplemental-text, .row-heading p.pricing-after").forEach(t=>{Eu(t,"div")})}function Oo(e,t){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:e.matches(t)||!!e.querySelector(t)}function Dd(e){return e?e.nodeType===Node.TEXT_NODE?e.textContent?.trim()?"price":"":e.nodeType!==Node.ELEMENT_NODE?"":Oo(e,`${O}[data-template="${ae}"], [data-template="${ae}"], .price-legal`)?"legal":Oo(e,`${O}[data-template="strikethrough"], [data-template="strikethrough"], .price-strikethrough, .price-promo-strikethrough`)?"strikethrough":Oo(e,`${O}, [data-template], .price, .price-alternative`)?"price":"":""}function Ad(e,t,r=[]){let i=r.filter(a=>a&&(a.nodeType!==Node.TEXT_NODE||a.textContent.trim()));return i.length?N(e.tagName.toLowerCase(),{class:t},i):null}function Su(e){if(!e)return{strikethrough:null,price:null,legal:null};let t={strikethrough:[],price:[],legal:[]},r="";Array.from(e.childNodes).forEach(n=>{let o=Dd(n);!o&&n.nodeType===Node.TEXT_NODE&&(o=r||"price"),o||(o=n.textContent?.trim()?"price":r),o&&(t[o].push(n),r=o)}),!t.strikethrough.length&&!t.price.length&&!t.legal.length&&(t.price=Array.from(e.childNodes));let a=Array.from(e.classList).filter(n=>!["has-pricing-before","has-pricing-after"].includes(n)).join(" ");return{strikethrough:Ad(e,[a,"pricing-strikethrough-group"].filter(Boolean).join(" "),t.strikethrough),price:Ad(e,[a,"pricing-main-group"].filter(Boolean).join(" "),t.price),legal:N("div",{class:"pricing-legal-group"},t.legal.filter(n=>n&&(n.nodeType!==Node.TEXT_NODE||n.textContent.trim())))}}function Cu(e){let t=Array.from(e.children);if(!t.length)return;let r=t.find(v=>v.classList.contains("heading-content"))||null,i=t.find(v=>v.classList.contains("heading-button"))||null,a=Array.from(r?.children||[]),n=t.filter(v=>v!==r&&v!==i&&(v.classList.contains("content-before")||v.classList.contains("content-after"))),o=a.find(v=>v.classList.contains("header-product-tile"))||null,s=a.find(v=>v.classList.contains("tracking-header"))||null,c=a.find(v=>v.classList.contains("body"))||null,l=a.filter(v=>v!==o&&v!==s&&v!==c),d=Array.from(i?.children||[]),h=d.find(v=>v.classList.contains("pricing"))||null,p=d.filter(v=>v!==h&&!v.classList.contains("buttons-wrapper")&&(v.classList.contains("pricing-before")||v.classList.contains("pricing-after")||v.classList.contains("supplemental-text"))),u=d.find(v=>v.classList.contains("buttons-wrapper"))||null,{strikethrough:f,price:b,legal:y}=Su(h),C=[...p,...y?.childNodes?Array.from(y.childNodes):[]],w=[$t("header-section-icon",o?[o]:[]),$t("header-section-title",s?[s]:[]),$t("header-section-description",[...n,c,...l].filter(Boolean)),$t("header-section-price-strikethrough",f?[f]:[]),$t("header-section-price",b?[b]:[]),$t("header-section-legal",C),$t("header-section-buttons",u?[u]:[])];e.replaceChildren(...w)}function Tu(e){if(!e.classList.contains("merch"))return;e.querySelectorAll(".row-heading .col-heading").forEach(r=>Cu(r))}function ku(e){let t=e.querySelector(".row-heading");if(!t){za(e,"");return}let r=Array.from(t.querySelectorAll(":scope > .col-heading")).filter(a=>!a.classList.contains("col-1")&&!a.classList.contains("hidden")&&getComputedStyle(a).display!=="none");if(!r.length){za(e,"");return}let i=[];pu.forEach(({className:a,cssVar:n})=>{let o=0;r.forEach(s=>{let c=s.querySelector(`:scope > .${a}`);c&&(o=Math.max(o,Math.ceil(c.getBoundingClientRect().height)))}),o>0&&i.push(`${n}: ${o}px;`)}),za(e,uu(e,i))}function kr(e){za(e,""),e.classList.contains("merch")&&ku(e)}function _u(e){let t=[...e.querySelectorAll(".section-row-title")].filter(r=>r.innerText.toUpperCase().includes("ADDON"));t.length&&(e.classList.add("has-addon"),t.forEach(r=>{let i=r.parentElement;i.remove();let[a,n,o]=r.innerText.split("-").filter(c=>c.toUpperCase()!=="ADDON").map(c=>c.toLowerCase());if(!a||!n)return;let s="data-col-index";[...e.querySelector(".row-heading").children].forEach(c=>{c.querySelector(".heading-content")?.classList.add("content");let l=c.getAttribute(s);if(Number(l)<=1)return;let d=`${a}-${n}`,h=[...i.children].find(y=>y.getAttribute(s)===l);if(!h)return;let p=[...h.childNodes],u=h.querySelector(".icon");if(o==="label"&&u){let y=p.filter(C=>!C.classList?.contains("icon"));p=[N("span",{},y),u]}let f=N("div",{class:o?`${d} addon-${o}`:d},p.map(y=>y.cloneNode(!0))),b=c.querySelector(`.${a}`);a==="pricing"&&n==="after"||b?.classList.add(`has-${d}`),b?.insertAdjacentElement(n==="before"?"beforebegin":"afterend",f)})}),setTimeout(()=>kr(e),0),e.addEventListener("mas:resolved",Ze(()=>{kr(e)},100)))}function Do(e,t){let r=e.querySelectorAll('.icon.expand[role="button"]');[...e.parentElement.querySelectorAll(".filters .filter"),...r].forEach(n=>{let o=n.classList.contains("filter")?"choose-table-column":"toggle-row";n.setAttribute("aria-label",t[o])})}function $a(e){e.dispatchEvent(new Event(du))}function Sd(e,t=[]){e.forEach((r,i)=>{let a=i===0||i===e.length-1,n=t[i],o=!!n&&(n.innerText||n.dataset.hasBadge==="true");r.classList.toggle("no-rounded",!a||o)})}function Lu(e){let t=e.classList.contains("highlight"),r=e.querySelector(".row-1"),i=r.querySelectorAll(".col"),a=e.querySelector(".row-2"),n=a?.querySelectorAll(".col")||[],o;t&&a?(r.classList.add("row-highlight"),r.setAttribute("aria-hidden","true"),a.classList.add("row-heading"),n.forEach(s=>s.classList.add("col-heading")),o=n,i.forEach((s,c)=>{s.classList.add("col-highlight"),s.innerText||s.dataset.hasBadge==="true"?e.classList.contains("compare-chart-features")||o[c]?.classList.add("no-rounded"):s.classList.add("hidden")}),e.classList.contains("compare-chart-features")&&Sd(o,i)):(o=i,r.classList.add("row-heading"),e.classList.contains("compare-chart-features")&&Sd(o)),wu(e,o),_u(e),Au(e),Tu(e),$a(e)}function Cd(e){let t=e.closest(".row"),r=t.nextElementSibling,i=e.getAttribute("aria-expanded")==="false";for(e.setAttribute("aria-expanded",i.toString());r&&!r.classList.contains("divider");)i?(t.classList.remove("section-head-collaped"),r.classList.remove("hidden")):(t.classList.add("section-head-collaped"),r.classList.add("hidden")),r=r.nextElementSibling}function Td(e){e.querySelectorAll(".icon.expand").forEach(t=>{let r=t.parentElement,i=()=>Cd(t),a=n=>{n.key===" "&&n.preventDefault(),(n.key==="Enter"||n.key===" ")&&Cd(t)};r.classList.add("point-cursor"),r.setAttribute("tabindex",0),r.addEventListener("click",i),r.addEventListener("keydown",a)})}function kd(e){if(!e||e.querySelector(".table-title-text"))return;let t=N("span",{class:"table-title-text"});for(;e.firstChild;)t.append(e.firstChild);let r=t.textContent?.replace(/\u00a0/g," ").trim();if(!t.querySelector('a, em, strong, b, i, picture, img, mas-mnemonic, merch-icon, [is="inline-price"], .icon, .icon-info, .icon-tooltip, .milo-tooltip, blockquote')&&(!r||r==="-")){e.replaceChildren();return}let a=t.querySelector(".icon-info, .icon-tooltip, .milo-tooltip");a&&e.append(a.closest("em")||a);let n=t.querySelector(".icon:first-child"),o=t;if(n){let c=N("span",{class:"table-title-row"});c.append(n,t),o=c}let s=o.querySelector("blockquote");if(s){let c=N("div",{class:"blockquote"});for(;s.firstChild;)c.appendChild(s.firstChild);s.replaceWith(c)}e.insertBefore(o,e.firstChild)}function Pu(e){let{row:t,index:r,allRows:i,rowCols:a,isMerch:n,isCollapseTable:o,isHighlightTable:s}=e,{expandSection:c}=e,l=i[r-1],d=i[r+1],h=Array.from(d?.children||[]);if(t.querySelector("hr")&&d){t.classList.add("divider"),t.removeAttribute("role"),d.classList.add("section-head");let p=h[0];if(n&&h.length?h.forEach(u=>{u.classList.add("section-head-title"),u.setAttribute("role","rowheader")}):(kd(p),p.classList.add("section-head-title"),p.setAttribute("role","rowheader")),o&&p){let u=N("span",{class:"icon expand",role:"button"});if(p.querySelector(".icon.expand")||p.prepend(u),c)u.setAttribute("aria-expanded","true"),c=!1;else{u.setAttribute("aria-expanded","false"),d.classList.add("section-head-collaped");let f=t.nextElementSibling;for(;f&&!f.classList.contains("divider");)f.classList.add("hidden"),f=f.nextElementSibling}}}else if(l?.querySelector("hr")&&d){if(d.classList.add("section-row"),!n){let p=h[0];p?.classList.add("section-row-title"),p?.setAttribute("role","rowheader"),p?.setAttribute("scope","row")}}else if(!t.classList.contains("row-1")&&(!s||!t.classList.contains("row-2")))if(t.classList.add("section-row"),a.forEach(p=>{if(p.querySelector("a")&&!p.querySelector("span")){let u=N("span",{class:"col-text"},[...p.childNodes]);p.appendChild(u)}}),n&&!t.classList.contains("divider"))a.forEach(p=>{if(p.classList.add("col-merch"),!p.children.length&&p.innerText){let u=N("p",{class:"merch-col-text"},p.innerText);p.innerText="",p.append(u)}});else{let p=a[0];kd(p),p.classList.add("section-row-title"),p.setAttribute("role","rowheader"),p.setAttribute("scope","row")}return a.forEach(p=>{p.querySelector(":scope > :is(strong, em, del, code, sub, sup)")&&p.childNodes.length>1&&!p.querySelector("picture")&&p.replaceChildren(N("p",{},[...p.childNodes]))}),c}function Mu(e){let t=e.querySelectorAll(".row"),r=t.length,n=t[0].querySelectorAll(".col").length;for(let o=n;o>0;o-=1){let s=e.querySelectorAll(`.col-${o}`);for(let c=r-1;c>=0;c-=1){let l=s[c];if(!l?.innerText&&l?.children.length===0)l.classList.add("no-borders");else{l.classList.add("border-bottom");break}}}}function _d(e){e.forEach(t=>t.classList.remove("hover","no-top-border","hover-border-bottom"))}function Ru(e){let t=e.querySelector(".row-1");if(!t)return;let r=t.childElementCount,a=e.classList.contains("merch")&&!e.classList.contains("compare-chart-features")?1:2,n=e.classList.contains("collapse"),o=e.querySelectorAll(".section-head"),s=o[o.length-1],c=s?.querySelector(".icon.expand");for(let l=a;l<=r;l+=1){let d=e.querySelectorAll(`.col-${l}`);d.forEach(h=>{h.addEventListener("mouseover",()=>{_d(d);let p=e.querySelector(".row-heading"),u=`col-${l}`,f=c?.getAttribute("aria-expanded")==="false";d.forEach(b=>{if(b.classList.contains("col-highlight")&&b.innerText){let y=Array.from(b.classList).find(w=>w.startsWith(u));p?.querySelector(`.${y}`)?.classList.add("no-top-border")}n&&f&&s?.querySelector(`.col-${l}`)?.classList.add("hover-border-bottom"),b.classList.add("hover")})}),h.addEventListener("mouseout",()=>_d(d))})}}function Bd(e,t){e._stickyObserver?.disconnect();let r=t(),i=e.querySelector(".row-highlight"),a=e.querySelector(".row-heading");if(!a)return;i?(i.style.top=`${r}px`,i.classList.add("top-border-transparent")):a.classList.add("top-border-transparent");let n=r+(i?i.offsetHeight:0);a.style.top=`${n}px`;let o=e.querySelector(".intercept")||N("div",{class:"intercept"});o.setAttribute("data-observer-intercept",""),a.insertAdjacentElement("beforebegin",o);let s=new IntersectionObserver(([c])=>{a.classList.toggle("active",!c.isIntersecting)},{rootMargin:`-${n}px`});s.observe(o),e._stickyObserver=s}function Io(e,t){e._filterObserver?.disconnect();let r=e.parentElement?.querySelector(".filters");if(!r)return;let i=Uo(e)&&Tr()==="MOBILE"&&$d(e);if(r.classList.toggle("sticky-mobile-compare",i),r.classList.remove("active"),!i){r.style.removeProperty("top");return}let a=t();r.style.top=`${a}px`;let n=r.parentElement?.querySelector(".filters-intercept")||N("div",{class:"filters-intercept"});n.setAttribute("data-observer-intercept",""),r.insertAdjacentElement("beforebegin",n);let o=new IntersectionObserver(([s])=>{r.classList.toggle("active",!s.isIntersecting)},{rootMargin:`-${a}px`});o.observe(n),e._filterObserver=o}function Nu(e,t,r,i){let a=e.querySelector(".row-heading");if(!a){$a(e);return}let n=e.classList.contains("merch"),o=$d(e),s=Tr(),c=()=>{if(n)return;let h=Array.from(e.getElementsByClassName("section-row"));if(h.length){let f=`repeat(auto-fit, ${100/(h[0].children.length-1)}%)`;h.forEach(b=>{s==="TABLET"||s==="MOBILE"&&!b.querySelector(".col-3")?b.style.gridTemplateColumns=f:b.style.gridTemplateColumns=""})}},l=()=>{$a(e);let h=e.querySelectorAll(".row-heading .col"),p=Array.from(h).filter(b=>b.textContent.trim()).length;if(e.querySelectorAll(".hide-mobile").forEach(b=>{b.classList.remove("hide-mobile")}),n&&p>=2?e.querySelectorAll(".col:not(.col-1, .col-2)").forEach(b=>{b.classList.add("hide-mobile")}):p>=3&&e.querySelectorAll(".col:not(.col-1, .col-2, .col-3), .col.no-borders").forEach(b=>{b.classList.add("hide-mobile")}),!n&&!e.querySelector(".col-3")||n&&!e.querySelector(".col-2"))return;o&&e.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(b=>{b.classList.add("hide-mobile"),b.style.display="none"});let u=b=>{let y=Array.from(e.parentElement.querySelectorAll(".filter")).map(w=>parseInt(w.value,10)),C=e.querySelectorAll(".row");if(e.querySelectorAll(".hide-mobile, .force-last").forEach(w=>{w.classList.remove("hide-mobile","force-last")}),C.forEach(w=>{w.querySelectorAll(".col[data-cloned]").forEach(v=>v.remove())}),n?e.querySelectorAll(`.col:not(.col-${y[0]+1}, .col-${y[1]+1})`).forEach(w=>{w.classList.add("hide-mobile")}):e.querySelectorAll(`.col:not(.col-1, .col-${y[0]+1}, .col-${y[1]+1}), .col.no-borders`).forEach(w=>{w.classList.add("hide-mobile")}),o&&e.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(w=>{w.classList.add("hide-mobile"),w.style.display="none"}),C.forEach(w=>{let v=w.querySelector(`.col-${y[0]+1}`),T=w.querySelector(`.col-${y[1]+1}`);v?.classList.contains("col-heading")&&(v.classList.remove("right-round"),v.classList.add("left-round")),T?.classList.contains("col-heading")&&(T.classList.remove("left-round"),T.classList.add("right-round")),T&&T.classList.add("force-last")}),y[0]===y[1]){let w=y[0]+1;C.forEach(v=>{let T=v.querySelector(`.col-${w}`);if(!T)return;let q=T.cloneNode(!0);q.setAttribute("data-cloned","true"),T.classList.remove("force-last"),T.classList.contains("col-heading")&&(T.classList.remove("right-round"),T.classList.add("left-round"),q.classList.remove("left-round"),q.classList.add("right-round")),v.appendChild(q)})}c(),Uo(e)&&Bd(e,i),Io(e,i),b&&kr(e),Do(e,r)},f=p>2;if(!e.parentElement.querySelector(".filters")&&f){let b=N("div",{class:"filters"}),y=N("div",{class:"filter-wrapper"}),C=N("div",{class:"filter-wrapper"}),w=N("select",{class:"filter"});t.querySelectorAll(".col-heading").forEach((G,ee)=>{let Q=G.querySelector(".tracking-header");if(!Q||!n&&Q.closest(".col-1"))return;let U=N("option",{value:ee},Q.innerText);w.append(U)});let T=w.cloneNode(!0);w.dataset.filterIndex=0,T.dataset.filterIndex=1;let q=e.querySelectorAll(`.col-heading:not([style*="display: none"], .hidden${n?"":", .col-1"})`),F=n?1:2,V=w.querySelectorAll("option").item(q.item(0).dataset.colIndex-F),k=T.querySelectorAll("option").item(q.item(1).dataset.colIndex-F);V&&(V.selected=!0),k&&(k.selected=!0),y.append(w),C.append(T),b.append(y,C),y.addEventListener("change",u),C.addEventListener("change",u),e.parentElement.insertBefore(b,e),e.parentElement.classList.add(`table-${e.classList.contains("merch")?"merch-":""}section`),!n&&p<3&&(b.style.display="none"),u()}Io(e,i)},d=()=>{e.querySelectorAll(".row .col[data-cloned]").forEach(h=>{h.remove()})};!n&&!e.querySelector(".row-heading .col-2")&&(a.style.display="block",a.querySelector(".col-1")?.style.setProperty("display","flex")),d(),s==="MOBILE"||n&&s==="TABLET"?l():(e.querySelectorAll(".hide-mobile, .left-round, .right-round").forEach(h=>{h.classList.remove("hide-mobile","left-round","right-round")}),o&&e.querySelectorAll(".row-heading .col-1, .row-highlight .col-1").forEach(h=>{h.style.removeProperty("display")}),Io(e,i),[...a.children].forEach(h=>[...h.children].forEach(p=>p.style.removeProperty("height"))),e.parentElement.querySelectorAll(".filters select").forEach((h,p)=>{h.querySelectorAll("option").item(p).selected=!0})),$a(e),Ru(e),c()}function Oa(e){e.classList.value.includes("sticky")&&setTimeout(()=>{let t=e.querySelector(".row-heading")?.offsetHeight||0;e.classList.toggle("cancel-sticky",!(t/window.innerHeight<.45))})}function Ou(e,t){e.setAttribute("role","table"),e.parentElement.classList.contains("section")&&e.parentElement.classList.add(`table-${e.classList.contains("merch")?"merch-":""}section`);let r=Array.from(e.children),i=e.classList.contains("merch"),a=e.classList.contains("collapse")&&!i,n=e.classList.contains("highlight"),o=!0;r.forEach((f,b)=>{f.classList.add("row",`row-${b+1}`),f.setAttribute("role","row");let y=Array.from(f.children),C={row:f,index:b,allRows:r,rowCols:y,isMerch:i,isCollapseTable:a,expandSection:o,isHighlightTable:n};y.forEach((w,v)=>{w.dataset.colIndex=v+1,w.classList.add("col",`col-${v+1}`),w.setAttribute("role",w.matches(".section-head-title")?"columnheader":"cell")}),o=Pu(C)}),Lu(e),Oa(e),i&&Mu(e);let s=!1,c=Tr(),l=()=>{Nu(e,e._originTable,t.labels,t.getStickyTop),kr(e),Uo(e)&&Bd(e,t.getStickyTop)};e.querySelectorAll(i?".col-heading:not(.hidden)":".col-heading:not(.hidden, .col-1)").length>2?e._originTable=e.cloneNode(!0):e._originTable=e;let d=Ze(()=>{kr(e),Oa(e);let f=Tr();c!==f&&(c=f,l())},100),h=()=>Oa(e),p=new IntersectionObserver(f=>{f.some(b=>b.isIntersecting)&&(p.disconnect(),s||(l(),Td(e),Do(e,t.labels),s=!0))}),u=new ResizeObserver(Ze(()=>Oa(e),100));return u.observe(e),window.addEventListener("resize",d),window.addEventListener(xd,h),p.observe(e),s||setTimeout(()=>{s||(l(),Td(e),Do(e,t.labels),s=!0)},0),Nd+=1,()=>{p.disconnect(),u.disconnect(),e._stickyObserver?.disconnect(),e._filterObserver?.disconnect(),delete e._stickyObserver,delete e._filterObserver,delete e._originTable,window.removeEventListener("resize",d),window.removeEventListener(xd,h)}}function ut(e){return e?e.startsWith("color-")||e.startsWith("spectrum-")||e.startsWith("--")?e.startsWith("--")?`var(${e})`:`var(--${e})`:e:""}function Iu(e,t=""){let r=N("mas-mnemonic",{slot:"icons",src:e,size:"l"});return t&&(r.setAttribute("role","img"),r.setAttribute("aria-label",t)),r}function Da(e,t){return e?Array.from(e.querySelectorAll(`[slot="${t}"]`)).map(r=>r.cloneNode(!0)):[]}function Ld(e){return e?Array.from(e.childNodes).map(t=>t.cloneNode(!0)):[]}function qo(e){if(!e)return[];if(e.nodeType!==Node.ELEMENT_NODE)return[e.cloneNode(!0)];let t=Ba(e.cloneNode(!0)),r=Array.from(t.childNodes).some(a=>a.nodeType===Node.TEXT_NODE&&a.textContent.trim()),i=t.childElementCount===1&&t.firstElementChild&&!r;return i&&t.firstElementChild.matches?.(`${O}, ${Fe}, merch-icon, merch-badge, mas-mnemonic`)?[t.firstElementChild.cloneNode(!0)]:i?Ld(t.firstElementChild):["P","DIV","H1","H2","H3","H4","H5","H6"].includes(t.tagName)?Ld(t):[t]}function Ba(e){return!e||e.nodeType!==Node.ELEMENT_NODE||(e.removeAttribute("slot"),e.querySelectorAll?.("[slot]").forEach(t=>t.removeAttribute("slot"))),e}function Pd(e,t){return Da(e,t).map(Ba).find(Boolean)}function Hu(e,t){if(!e)return null;let r=N("p",{class:t}),i=qo(e);return i.length?r.append(...i):r.textContent=e.textContent?.trim()||"",r.textContent?.trim()||r.childNodes.length?r:null}function zu(e){if(!e)return null;let t=N("p",{class:"body"}),r=qo(e);return r.length?t.append(...r):t.textContent=e.textContent?.trim()||"",t.textContent?.trim()||t.childNodes.length?t:null}function $u(e=[]){let t={strikethrough:[],price:[],legal:[]},r="";return e.forEach(i=>{let a=Ba(i.cloneNode(!0)),n=Dd(a);!n&&a.nodeType===Node.TEXT_NODE&&(n=a.textContent?.trim()?r||"price":""),!n&&a.textContent?.trim()&&(n="price"),n&&(t[n].push(a),r=n)}),t}function Ho(e,t=[]){let r=t.filter(i=>i&&(i.nodeType!==Node.TEXT_NODE||i.textContent.trim()));return r.length?N("div",{class:e},r):null}function Du(e=[]){for(let t of e){if(t?.nodeType!==Node.ELEMENT_NODE)continue;let r=t.matches?.(O)?t.cloneNode(!0):t.querySelector?.(O)?.cloneNode(!0);if(r)return r.setAttribute("data-template",ae),r.setAttribute("data-display-plan-type","true"),r.setAttribute("data-display-per-unit","false"),r.setAttribute("data-display-tax","false"),r.setAttribute("data-display-old-price","false"),r.hasAttribute("data-force-tax-exclusive")||r.setAttribute("data-force-tax-exclusive","true"),r}return null}function Bu(e){let r=Da(e,Ia.ctas).map(Ba).flatMap(a=>a.matches?.(".con-button, button, a.con-button")?[a]:Array.from(a.querySelectorAll?.(".con-button, button, a.con-button")||[]).map(n=>n.cloneNode(!0)));if(!r.length)return null;let i=N("div",{class:"buttons-wrapper"});return r.forEach((a,n)=>{let o=n===0?N("p"):N("div",{class:"supplemental-text body-xl action-area"});o.append(a),i.append(o)}),i}function Fu(e){let t=document.createDocumentFragment(),r=N("div",{class:"heading-content content"}),i=N("div",{class:"heading-button"}),a=Da(e,"icons");if(a.length){let f=N("p",{class:"header-product-tile"});a.forEach(b=>{if(b.tagName==="MERCH-ICON"){let y=Iu(b.getAttribute("src")||"",b.getAttribute("alt")||"");y.removeAttribute("slot"),f.append(y);return}b.removeAttribute?.("slot"),f.append(b)}),r.append(f)}let n=Hu(Pd(e,Ia.title),"tracking-header");n&&r.append(n);let o=zu(Pd(e,Ia.description));o&&r.append(o);let s=Da(e,Ia.prices).flatMap(f=>qo(f)),c=$u(s),l=Ho("pricing-before",c.strikethrough);l&&i.append(l);let d=Ho("pricing",c.price);d&&i.append(d);let h=c.legal.length?c.legal:[Du(c.price)].filter(Boolean),p=Ho("pricing-after",h);p&&i.append(p);let u=Bu(e);return u&&i.append(u),t.append(r,i),t}function Uu(e){if(!e)return null;if(e._masTableBadgeData?.contentHtml||e._masTableBadgeData?.text)return e._masTableBadgeData;let t=e.querySelector('[slot="badge"]'),r=e.shadowRoot?.getElementById("badge"),i=t?.matches("merch-badge")?t:t?.querySelector("merch-badge"),a=i?.innerHTML?.trim()||t?.innerHTML?.trim()||r?.innerHTML?.trim()||"",n=i?.textContent?.trim()||t?.textContent?.trim()||r?.textContent?.trim()||e.getAttribute("badge-text")||"";if(!a&&!n)return null;let o=r?getComputedStyle(r):null,s=ut(i?.getAttribute("background-color")||"")||ut(e.getAttribute("badge-background-color")||"")||o?.backgroundColor||"",c=ut(i?.getAttribute("color")||"")||ut(e.getAttribute("badge-color")||"")||o?.color||"";return{contentHtml:a,text:n,icon:i?.getAttribute("icon")||"",backgroundColor:s,textColor:c}}function qu(e){return e?e.startsWith("sp-icon-")?N(e,{class:"badge-icon"}):N("img",{class:"badge-icon",src:e,alt:""}):null}function Gu(e){let t=N("span",{class:"badge-inline-content"}),r=qu(e.icon),i=!!(e.contentHtml||e.text);if(r&&t.append(r),r&&i&&t.append(document.createTextNode(" ")),e.contentHtml){let a=document.createElement("template");a.innerHTML=e.contentHtml,t.append(a.content.cloneNode(!0))}else e.text&&t.append(document.createTextNode(e.text));return t}function Vu(e={}){let t=e.badge;if(!t)return null;if(typeof t!="string"){let o=String(t).trim();return o?{contentHtml:"",text:o,icon:"",backgroundColor:ut(e.badgeBackgroundColor||""),textColor:ut(e.badgeColor||"")}:null}let r=document.createElement("template");r.innerHTML=t;let i=r.content.querySelector("merch-badge")||r.content.firstElementChild,a=i?.innerHTML?.trim()||"",n=i?.textContent?.trim()||t.trim();return!a&&!n?null:{contentHtml:a,text:n,icon:i?.getAttribute?.("icon")||"",backgroundColor:ut(i?.getAttribute?.("background-color")||e.badgeBackgroundColor||""),textColor:ut(i?.getAttribute?.("color")||e.badgeColor||"")}}async function ju(e,t,r){let i=await Promise.all(e.map(async a=>{let n=t.get(a);if(!n)return[a,null];try{let o=document.createElement("merch-card"),s={...fu(n),variant:yd};return o.variant=yd,o._masTableBadgeData=Vu(s),r.append(o),await Ra({...n,fields:s,settings:n.settings||{},variantLayout:{aemFragmentMapping:Ta}},o),[a,o]}catch{return[a,null]}}));return new Map(i.filter(([,a])=>a))}function Wu(e,t,r){if(!e.classList.contains("merch")&&!e.classList.contains("compare-chart-features")||!e.classList.contains("highlight"))return;let i=e.firstElementChild;if(!i)return;let a=Array.from(i.children),n=e.classList.contains("compare-chart-features")?1:0;t.forEach((o,s)=>{let c=a[s+n],l=Uu(r.get(o));if(c){if(!l?.contentHtml&&!l?.text){c.removeAttribute("data-has-badge"),c.replaceChildren();return}c.dataset.hasBadge="true",c.replaceChildren(Gu(l)),l.backgroundColor&&(c.style.backgroundColor=l.backgroundColor,c.style.borderColor=l.backgroundColor),l.textColor&&(c.style.color=l.textColor)}})}function Yu(e,t,r){if(!e.classList.contains("merch")&&!e.classList.contains("compare-chart-features")||!t?.length)return;let i=Array.from(e.children);if(!i.length)return;let a=e.classList.contains("highlight")&&i.length>1?1:0,n=i[a];if(!n)return;let o=Array.from(n.children),s=e.classList.contains("compare-chart-features")?1:0;t.forEach((c,l)=>{let d=o[l+s],h=r.get(c);!d||!h||d.replaceChildren(Fu(h))})}function Xu(e,t){Hd(t,"blockName")==="Table"&&zd(t,"selectedVariantNames").forEach(i=>{i&&e.classList.add(String(i))})}async function Ku(e){let t=[...e.querySelectorAll(Fe)];await Promise.all(t.map(r=>typeof r.onceSettled!="function"?Promise.resolve(r):r.onceSettled().catch(()=>r)))}var Ci,Ar,Ti,pt,ki,_i,Sr,Li,Pi,Cr,mt,je,Bo=class extends HTMLElement{constructor(){super();A(this,Ci,[]);A(this,Ar,0);A(this,Ti);A(this,pt);A(this,ki);A(this,_i);A(this,Sr);A(this,Li);A(this,Pi,Promise.resolve(this));A(this,Cr);A(this,mt);A(this,je);E(this,Cr,document.createElement("style")),m(this,Cr).setAttribute(Rd,""),E(this,mt,document.createElement("div")),E(this,je,document.createElement("div")),m(this,je).className="mas-table-scratch",m(this,je).hidden=!0,m(this,je).setAttribute("aria-hidden","true"),this.append(m(this,Cr),m(this,mt),m(this,je)),this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}connectedCallback(){let r=this.localName||zo;E(this,pt,Ie()),m(this,Ti)??E(this,Ti,m(this,pt)?.Log?.module?.(r)??m(this,pt)?.log?.module?.(r)??console),this.syncDirection();let i=this.getAttribute("id")??this.aemFragment?.getAttribute("fragment")??"unknown";E(this,Sr,`${bd}${i}${Re}`),E(this,Li,`${bd}${i}${Ne}`),performance.mark(m(this,Sr)),this.addEventListener(me,this.handleAemFragmentEvents),this.addEventListener(pe,this.handleAemFragmentEvents),this.aemFragment?.setAttribute("hidden","")}disconnectedCallback(){this.removeEventListener(me,this.handleAemFragmentEvents),this.removeEventListener(pe,this.handleAemFragmentEvents),this.cleanup()}get aemFragment(){return this.querySelector("aem-fragment")}get updateComplete(){return m(this,Pi)}syncDirection(){let r=this.closest("[dir]")?.getAttribute("dir")||document.documentElement.getAttribute("dir")||"ltr";this.setAttribute("dir",r)}cleanup(){m(this,Ci).splice(0).forEach(r=>r())}beginUpdate(){E(this,Pi,new Promise((r,i)=>{E(this,ki,r),E(this,_i,i)}))}async handleAemFragmentEvents(r){var a;if(!this.isConnected)return;if(r.type===me&&r.target===this.aemFragment){this.fail("AEM fragment cannot be loaded");return}if(r.type!==pe||r.target!==this.aemFragment)return;this.removeAttribute("failed"),this.beginUpdate();let i=++Ft(this,Ar)._;try{if(await this.renderFragment(r.detail),i!==m(this,Ar))return;await Ku(this),m(this,mt).querySelectorAll(".table").forEach(s=>kr(s));let n=performance.measure(m(this,Li),m(this,Sr)),o={...this.aemFragment?.fetchInfo,...m(this,pt)?.duration,measure:xe(n)};this.dispatchEvent(new CustomEvent(We,{bubbles:!0,composed:!0,detail:o})),(a=m(this,ki))==null||a.call(this,this)}catch(n){if(i!==m(this,Ar))return;this.fail(n.message||"Failed to render table")}}getStickyTop(){let r=getComputedStyle(this).getPropertyValue("--mas-table-sticky-top"),i=parseFloat(r);return Number.isFinite(i)?i:0}async renderFragment(r){let i=Fo(r),a=Hd(i,"compareChart").trim();if(!a)throw new Error("compareChart field is missing");this.cleanup(),m(this,mt).replaceChildren(),m(this,je).replaceChildren();let n=document.createElement("div");n.className="mas-table-empty",gu(n,a);let o=Array.from(n.querySelectorAll(".table"));if(!o.length)throw new Error("compareChart does not contain a .table block");let s=bu(r.references),c=zd(i,"cards").map(String),l=await ju(c,s,m(this,je)),d=xu(r);o.forEach(h=>{Xu(h,i),Wu(h,c,l),Yu(h,c,l);let p=Ou(h,{labels:d,getStickyTop:()=>this.getStickyTop()});m(this,Ci).push(p)}),m(this,mt).append(...Array.from(n.childNodes))}fail(r,i={}){var o;if(!this.isConnected)return;this.setAttribute("failed","");let a=this.localName||zo,n={...this.aemFragment?.fetchInfo,...m(this,pt)?.duration,...i,message:r};m(this,Ti)?.error?.(`${a}: ${r}`,n),this.dispatchEvent(new CustomEvent(yt,{bubbles:!0,composed:!0,detail:n})),(o=m(this,_i))==null||o.call(this,new Error(r))}async checkReady(){let r=new Promise(a=>setTimeout(()=>a("timeout"),No));if(this.aemFragment){let a=await Promise.race([this.aemFragment.updateComplete,r]);if(a===!1||a==="timeout"){let n=a==="timeout"?`AEM fragment was not resolved within ${No} timeout`:"AEM fragment cannot be loaded";throw this.fail(n),new Error(n)}}let i=await Promise.race([this.updateComplete,r]);if(i==="timeout"){let a=`mas-table was not resolved within ${No} timeout`;throw this.fail(a),new Error(a)}return i}};Ci=new WeakMap,Ar=new WeakMap,Ti=new WeakMap,pt=new WeakMap,ki=new WeakMap,_i=new WeakMap,Sr=new WeakMap,Li=new WeakMap,Pi=new WeakMap,Cr=new WeakMap,mt=new WeakMap,je=new WeakMap;customElements.define(zo,Bo);var _r="mas-comparison-table",Fd="mas-comparison-table:",Go=2e4,Vo={"choose-table-column":"Choose table column","empty-table-cell":"Empty table cell"},P=(e,t={},r=null)=>{let i=document.createElement(e);return Object.entries(t).forEach(([a,n])=>{n!=null&&i.setAttribute(a,n)}),Ud(i,r),i},Ud=(e,t)=>{if(t!=null){if(Array.isArray(t)){t.forEach(r=>Ud(e,r));return}if(t instanceof Node){e.append(t);return}e.append(document.createTextNode(String(t)))}},jo=e=>e?.fields?Array.isArray(e.fields)?e.fields.reduce((t,r)=>(r?.name&&(t[r.name]=r.multiple?r.values||[]:r.values?.[0]),t),{}):e.fields:{},Mi=(e,t)=>{let r=e?.[t];return r==null?"":Array.isArray(r)?String(r[0]??""):typeof r=="object"&&"value"in r?String(r.value??""):String(r)},Wo=(e,t)=>{let r=e?.[t];return r==null?[]:Array.isArray(r)?r:[r]},Qu=e=>{let t=e?.dictionary||{};return{"choose-table-column":t["choose-table-column"]?.value||t["choose-table-column"]||Vo["choose-table-column"],"empty-table-cell":t["empty-table-cell"]?.value||t["empty-table-cell"]||Vo["empty-table-cell"]}},Zu=e=>e?.type==="content-fragment"&&e.value?{...e.value,path:e.path||e.value.path||"",fields:jo(e.value)}:{...e,path:e?.path||"",fields:jo(e)},Ju=(e=[])=>!e||typeof e!="object"?[]:Array.isArray(e)?e:Object.values(e),eg=(e=[])=>{let t=new Map;return Ju(e).forEach(r=>{let i=Zu(r);[i.id,i.path,i.originalId,i.fields?.originalId,i.path?.split("/").pop()].filter(Boolean).forEach(n=>t.set(String(n),i))}),t},tg=(e="")=>e?[...new DOMParser().parseFromString(e,"text/html").querySelectorAll(".compare-chart-row[data-row-id]")].map(r=>{let i={};return r.querySelectorAll(".compare-chart-cell[data-card-path]").forEach(a=>{let n=a.getAttribute("data-card-path");n&&(i[n]=a.innerHTML||"")}),{id:r.getAttribute("data-row-id")||"",label:r.querySelector(".compare-chart-label")?.innerHTML||"",cellsByPath:i}}):[],Lr=(e="")=>{if(!e)return[];let t=document.createElement("template");return t.innerHTML=e,Array.from(t.content.childNodes).map(r=>r.cloneNode(!0))},rg=(e="")=>{if(!e)return"";let t=document.createElement("template");t.innerHTML=e;let r=t.content.querySelector('[is="inline-price"]');return r?(r.setAttribute("data-template",ae),r.setAttribute("data-display-plan-type","true"),r.setAttribute("data-display-per-unit","false"),r.setAttribute("data-display-tax","false"),r.setAttribute("data-display-old-price","false"),r.hasAttribute("data-force-tax-exclusive")||r.setAttribute("data-force-tax-exclusive","true"),r.outerHTML):""},ig=e=>{let t=Wo(e,"mnemonicIcon"),r=Wo(e,"mnemonicAlt");return t.filter(Boolean).map((i,a)=>P("mas-mnemonic",{src:i,size:"l",...r[a]?{role:"img","aria-label":r[a]}:{}}))},ag={ctas:{size:"l"}},ng=e=>Ma(e,{consonant:!0},ag),og=e=>{let t=e?.fields||{},r=P("div"),i=ig(t);i.length&&r.append(P("p",{class:"header-product-tile"},i));let a=Mi(t,"cardTitle")||e?.title||"";a&&r.append(P("h3",{},a)),r.append(P("p",{},"-"));let n=Mi(t,"description");if(n){let l=P("p");l.append(...Lr(n)),r.append(l)}r.append(P("p",{},"-"));let o=Mi(t,"prices");if(o){let l=P("div");l.append(...Lr(o)),r.append(l)}let s=rg(o);if(s){let l=P("p");l.append(...Lr(s)),r.append(l)}let c=Mi(t,"ctas");if(c){let l=document.createElement("template");l.innerHTML=c,Array.from(l.content.querySelectorAll("a, button")).forEach((h,p)=>{let u=P(p===0?"p":"div",{class:"action-area"}),f=h.tagName==="A"?ng(h):h.cloneNode(!0);u.append(f),r.append(u)})}return r},sg=(e,t="Features")=>{let r=P("div"),i=P("div");i.append(...Lr(t||"Features")),r.append(i);for(let a=0;a
+ `:""}renderLayout(){return x`
-
+`;var Wd={backgroundImage:{tag:"div",slot:"image"},badge:!0,ctas:{slot:"footer",size:"S"},description:{tag:"div",slot:"body-s"},mnemonics:{size:"m"},size:["wide"]},Nr=class extends L{getGlobalCSS(){return jd}renderLayout(){return x`
{throw TypeError(e)};var jo=(e,t,r)=>t in
>${this.card.secureLabel}`:fs}get secureLabelFooter(){return jt`
+}`;var si={cardName:{attribute:"name"},badge:!0,ctas:{slot:"footer",size:"m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},prices:{tag:"h3",slot:"heading-xs"},shortDescription:{tag:"div",slot:"action-menu-content",attributes:{tabindex:"0"}},size:["wide","super-wide"],title:{tag:"h3",slot:"heading-xs"}},Ye=class extends L{constructor(r){super(r);f(this,"dispatchActionMenuToggle",()=>{this.card.dispatchEvent(new CustomEvent(Cr,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}}))});f(this,"toggleActionMenu",r=>{!this.actionMenuContentSlot||!r||r.type!=="click"&&r.code!=="Space"&&r.code!=="Enter"||(r.preventDefault(),r.stopPropagation(),this.setMenuVisibility(!this.isMenuOpen()))});f(this,"toggleActionMenuFromCard",r=>{let a=r?.type==="mouseleave"?!0:void 0;this.card.blur(),this.setIconVisibility(!1),this.actionMenuContentSlot&&r?.type==="mouseleave"&&this.setMenuVisibility(!1)});f(this,"showActionMenuOnHover",()=>{this.actionMenu&&this.setIconVisibility(!0)});f(this,"hideActionMenu",()=>{this.setMenuVisibility(!1),this.setIconVisibility(!1)});f(this,"hideActionMenuOnBlur",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||this.slottedContent?.contains(r.relatedTarget)||(this.isMenuOpen()&&this.setMenuVisibility(!1),this.card.contains(r.relatedTarget)||this.setIconVisibility(!1))});f(this,"handleCardFocusOut",r=>{r.relatedTarget===this.actionMenu||this.actionMenu?.contains(r.relatedTarget)||r.relatedTarget===this.card||(this.slottedContent&&(r.target===this.slottedContent||this.slottedContent.contains(r.target))&&(this.slottedContent.contains(r.relatedTarget)||this.setMenuVisibility(!1)),!this.card.contains(r.relatedTarget)&&!this.isMenuOpen()&&this.setIconVisibility(!1))});f(this,"handleKeyDown",r=>{(r.key==="Escape"||r.key==="Esc")&&(r.preventDefault(),this.hideActionMenu(),this.actionMenu?.focus())})}get actionMenu(){return this.card.shadowRoot.querySelector(".action-menu")}get actionMenuContentSlot(){return this.card.shadowRoot.querySelector('slot[name="action-menu-content"]')}get slottedContent(){return this.card.querySelector('[slot="action-menu-content"]')}setIconVisibility(r){if(this.slottedContent){if(Zr()&&this.card.actionMenu)return;this.actionMenu?.classList.toggle("invisible",!r),this.actionMenu?.classList.toggle("always-visible",r)}}setMenuVisibility(r){this.actionMenuContentSlot?.classList.toggle("hidden",!r),this.setAriaExpanded(this.actionMenu,r.toString()),r&&(this.dispatchActionMenuToggle(),setTimeout(()=>{let a=this.slottedContent?.querySelector("a");a&&a.focus()},0))}isMenuOpen(){return!this.actionMenuContentSlot?.classList.contains("hidden")}renderLayout(){return Qr`
+`;var li={cardName:{attribute:"name"},badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},badgeIcon:!0,borderColor:{attribute:"border-color"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],ctas:{slot:"footer",size:"m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},prices:{tag:"h3",slot:"heading-xs"},promoText:{tag:"p",slot:"promo-text"},size:["wide","super-wide"],title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},backgroundImage:{tag:"div",slot:"bg-image"}},Oe=class extends L{constructor(t){super(t)}getGlobalCSS(){return ci}renderLayout(){return Et`
@@ -303,7 +303,7 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
left: 0px;
right: initial;
}
- `);import{html as pi}from"./lit-all.min.js";var hi=`
+ `);import{html as hi}from"./lit-all.min.js";var di=`
:root {
--consonant-merch-card-inline-heading-width: 300px;
}
@@ -339,7 +339,7 @@ merch-card[variant="catalog"] [slot="footer"] .spectrum-Link--primary {
grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width));
}
}
-`;var Yt=class extends L{constructor(t){super(t)}getGlobalCSS(){return hi}renderLayout(){return pi` ${this.badge}
+`;var Wt=class extends L{constructor(t){super(t)}getGlobalCSS(){return di}renderLayout(){return hi` ${this.badge}
- ${this.card.customHr?"":pi`
`} ${this.secureLabelFooter}`}};import{html as Ce,css as bs,unsafeCSS as ui}from"./lit-all.min.js";var mi=`
+ ${this.card.customHr?"":hi`
`} ${this.secureLabelFooter}`}};import{html as Ce,css as bs,unsafeCSS as mi}from"./lit-all.min.js";var pi=`
:root {
--consonant-merch-card-mini-compare-chart-icon-size: 32px;
--consonant-merch-card-mini-compare-border-color: #E9E9E9;
@@ -1143,14 +1143,14 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(7) {
merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
min-height: var(--consonant-merch-card-footer-row-8-min-height);
}
-`;var ys=32,gi={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m-price"},promoText:{tag:"div",slot:"promo-text"},shortDescription:{tag:"div",slot:"body-xxs"},description:{tag:"div",slot:"body-m"},mnemonics:{size:"l"},quantitySelect:{tag:"div",slot:"quantity-select"},callout:{tag:"div",slot:"callout-content"},addon:!0,secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],whatsIncluded:{tag:"div",slot:"footer-rows"},ctas:{slot:"footer",size:"l"},style:"consonant"},Xe=class extends L{constructor(r){super(r);f(this,"getRowMinHeightPropertyName",r=>`--consonant-merch-card-footer-row-${r}-min-height`);f(this,"getMiniCompareFooter",()=>{let r=this.card.secureLabel?Ce`s.remove()),r.checked){if(o){let s=fe("p",{class:"addon-heading-m-price-addon",slot:"heading-m-price"},o.innerHTML);this.card.appendChild(s)}}else{let s=fe("p",{class:"card-heading",id:"free",slot:"heading-m-price"},"Free");this.card.appendChild(s)}}}showTooltip(r){r.classList.remove("hide-tooltip"),r.setAttribute("aria-expanded","true")}hideTooltip(r){r.classList.add("hide-tooltip"),r.setAttribute("aria-expanded","false")}adjustCallout(){let r=this.card.querySelector('[slot="callout-content"] .icon-button');if(!r||this.calloutListenersAdded)return;let a=r.title||r.dataset.tooltip;if(!a)return;r.title&&(r.dataset.tooltip=r.title,r.removeAttribute("title"));let i=r.parentElement;if(i&&i.tagName==="P"){let n=document.createElement("div"),o=document.createElement("div");o.className="callout-row";let s=document.createElement("div");for(s.className="callout-text";i.firstChild&&i.firstChild!==r;)s.appendChild(i.firstChild);o.appendChild(s),o.appendChild(r),n.appendChild(o),i.replaceWith(n)}r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.setAttribute("aria-label",a),r.setAttribute("aria-expanded","false"),this.hideTooltip(r),this.handleCalloutTouch=n=>{n.target!==r?this.hideTooltip(r):r.classList.contains("hide-tooltip")?this.showTooltip(r):this.hideTooltip(r)},this.handleCalloutMouse=n=>{n.target!==r?this.hideTooltip(r):this.showTooltip(r)},this.handleCalloutFocusin=()=>{this.showTooltip(r)},this.handleCalloutFocusout=()=>{this.hideTooltip(r)},this.handleCalloutKeydown=n=>{n.key==="Escape"&&(this.hideTooltip(r),r.blur())},document.addEventListener("touchstart",this.handleCalloutTouch),document.addEventListener("mouseover",this.handleCalloutMouse),r.addEventListener("focusin",this.handleCalloutFocusin),r.addEventListener("focusout",this.handleCalloutFocusout),r.addEventListener("keydown",this.handleCalloutKeydown),this.calloutListenersAdded=!0}async adjustAddon(){await this.card.updateComplete;let r=this.card.addon;if(!r)return;let a=this.mainPrice,i=this.card.planType;if(a&&(await a.onceSettled(),i=a.value?.[0]?.planType),!i)return;r.planType=i,this.card.querySelector("merch-addon[plan-type]")?.updateComplete.then(()=>{this.updateCardElementMinHeight(this.card.shadowRoot.querySelector('slot[name="addon"]'),"addon")})}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let r=this.mainPrice;if(!r)return;let a=r.cloneNode(!0);if(await r.onceSettled(),!r?.options)return;r.options.displayPerUnit&&(r.dataset.displayPerUnit="false"),r.options.displayTax&&(r.dataset.displayTax="false"),r.options.displayPlanType&&(r.dataset.displayPlanType="false"),a.setAttribute("data-template","legal"),r.parentNode.insertBefore(a,r.nextSibling),await a.onceSettled()}catch{}}adjustShortDescription(){let r=this.card.querySelector('[slot="body-xxs"]'),a=r?.textContent?.trim();if(!a)return;let n=this.card.querySelector('[slot="heading-m-price"] [data-template="legal"]')?.querySelector(".price-plan-type");if(!n)return;let o=document.createElement("em");o.setAttribute("slot","body-xxs"),o.textContent=` ${a}`,n.appendChild(o),r.remove()}renderLayout(){return this.isNewVariant?Ce`
+ `:Ce`s.remove()),r.checked){if(o){let s=fe("p",{class:"addon-heading-m-price-addon",slot:"heading-m-price"},o.innerHTML);this.card.appendChild(s)}}else{let s=fe("p",{class:"card-heading",id:"free",slot:"heading-m-price"},"Free");this.card.appendChild(s)}}}showTooltip(r){r.classList.remove("hide-tooltip"),r.setAttribute("aria-expanded","true")}hideTooltip(r){r.classList.add("hide-tooltip"),r.setAttribute("aria-expanded","false")}adjustCallout(){let r=this.card.querySelector('[slot="callout-content"] .icon-button');if(!r||this.calloutListenersAdded)return;let a=r.title||r.dataset.tooltip;if(!a)return;r.title&&(r.dataset.tooltip=r.title,r.removeAttribute("title"));let i=r.parentElement;if(i&&i.tagName==="P"){let n=document.createElement("div"),o=document.createElement("div");o.className="callout-row";let s=document.createElement("div");for(s.className="callout-text";i.firstChild&&i.firstChild!==r;)s.appendChild(i.firstChild);o.appendChild(s),o.appendChild(r),n.appendChild(o),i.replaceWith(n)}r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.setAttribute("aria-label",a),r.setAttribute("aria-expanded","false"),this.hideTooltip(r),this.handleCalloutTouch=n=>{n.target!==r?this.hideTooltip(r):r.classList.contains("hide-tooltip")?this.showTooltip(r):this.hideTooltip(r)},this.handleCalloutMouse=n=>{n.target!==r?this.hideTooltip(r):this.showTooltip(r)},this.handleCalloutFocusin=()=>{this.showTooltip(r)},this.handleCalloutFocusout=()=>{this.hideTooltip(r)},this.handleCalloutKeydown=n=>{n.key==="Escape"&&(this.hideTooltip(r),r.blur())},document.addEventListener("touchstart",this.handleCalloutTouch),document.addEventListener("mouseover",this.handleCalloutMouse),r.addEventListener("focusin",this.handleCalloutFocusin),r.addEventListener("focusout",this.handleCalloutFocusout),r.addEventListener("keydown",this.handleCalloutKeydown),this.calloutListenersAdded=!0}async adjustAddon(){await this.card.updateComplete;let r=this.card.addon;if(!r)return;let a=this.mainPrice,i=this.card.planType;if(a&&(await a.onceSettled(),i=a.value?.[0]?.planType),!i)return;r.planType=i,this.card.querySelector("merch-addon[plan-type]")?.updateComplete.then(()=>{this.updateCardElementMinHeight(this.card.shadowRoot.querySelector('slot[name="addon"]'),"addon")})}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let r=this.mainPrice;if(!r)return;let a=r.cloneNode(!0);if(await r.onceSettled(),!r?.options)return;r.options.displayPerUnit&&(r.dataset.displayPerUnit="false"),r.options.displayTax&&(r.dataset.displayTax="false"),r.options.displayPlanType&&(r.dataset.displayPlanType="false"),a.setAttribute("data-template","legal"),r.parentNode.insertBefore(a,r.nextSibling),await a.onceSettled()}catch{}}adjustShortDescription(){let r=this.card.querySelector('[slot="body-xxs"]'),a=r?.textContent?.trim();if(!a)return;let n=this.card.querySelector('[slot="heading-m-price"] [data-template="legal"]')?.querySelector(".price-plan-type");if(!n)return;let o=document.createElement("em");o.setAttribute("slot","body-xxs"),o.textContent=` ${a}`,n.appendChild(o),r.remove()}renderLayout(){return this.isNewVariant?Ce`
@@ -1276,7 +1276,7 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
color: #505050;
}
- @media screen and ${ui(X)} {
+ @media screen and ${mi(X)} {
[class*'-merch-cards']
:host([variant='mini-compare-chart'])
footer {
@@ -1286,7 +1286,7 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
}
}
- @media screen and ${ui(T)} {
+ @media screen and ${mi(T)} {
:host([variant='mini-compare-chart']) footer {
padding: var(--consonant-merch-spacing-xs)
var(--consonant-merch-spacing-s)
@@ -1365,26 +1365,24 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
/* Border color styles */
:host(
- [variant='mini-compare-chart'][border-color='spectrum-yellow-300-plans']
+ [variant='mini-compare-chart'][border-color='spectrum-yellow-300']
) {
--consonant-merch-card-border-color: #ffd947;
}
:host(
- [variant='mini-compare-chart'][border-color='spectrum-gray-300-plans']
+ [variant='mini-compare-chart'][border-color='spectrum-gray-300']
) {
--consonant-merch-card-border-color: #dadada;
}
:host(
- [variant='mini-compare-chart'][border-color='spectrum-green-900-plans']
+ [variant='mini-compare-chart'][border-color='spectrum-green-900']
) {
--consonant-merch-card-border-color: #05834e;
}
- :host(
- [variant='mini-compare-chart'][border-color='spectrum-red-700-plans']
- ) {
+ :host([variant='mini-compare-chart'][border-color='spectrum-red-700']) {
--consonant-merch-card-border-color: #eb1000;
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.16));
}
@@ -1401,45 +1399,45 @@ merch-card[variant="mini-compare-chart"] merch-mnemonic-list:nth-child(8) {
/* Badge color styles */
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-red-700-plans) {
+ ::slotted([slot='badge'].spectrum-red-700) {
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.16));
}
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-yellow-300-plans),
- :host([variant='mini-compare-chart']) #badge.spectrum-yellow-300-plans {
+ ::slotted([slot='badge'].spectrum-yellow-300),
+ :host([variant='mini-compare-chart']) #badge.spectrum-yellow-300 {
background-color: #ffd947;
color: #2c2c2c;
}
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-gray-300-plans),
- :host([variant='mini-compare-chart']) #badge.spectrum-gray-300-plans {
+ ::slotted([slot='badge'].spectrum-gray-300),
+ :host([variant='mini-compare-chart']) #badge.spectrum-gray-300 {
background-color: #dadada;
color: #2c2c2c;
}
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-gray-700-plans),
- :host([variant='mini-compare-chart']) #badge.spectrum-gray-700-plans {
+ ::slotted([slot='badge'].spectrum-gray-700),
+ :host([variant='mini-compare-chart']) #badge.spectrum-gray-700 {
background-color: #4b4b4b;
color: #ffffff;
}
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-green-900-plans),
- :host([variant='mini-compare-chart']) #badge.spectrum-green-900-plans {
+ ::slotted([slot='badge'].spectrum-green-900),
+ :host([variant='mini-compare-chart']) #badge.spectrum-green-900 {
background-color: #05834e;
color: #ffffff;
}
:host([variant='mini-compare-chart'])
- ::slotted([slot='badge'].spectrum-red-700-plans),
- :host([variant='mini-compare-chart']) #badge.spectrum-red-700-plans {
+ ::slotted([slot='badge'].spectrum-red-700),
+ :host([variant='mini-compare-chart']) #badge.spectrum-red-700 {
background-color: #eb1000;
color: #ffffff;
}
- `);import{html as Xt,css as ws,unsafeCSS as vi,nothing as Es}from"./lit-all.min.js";var fi=`
+ `);import{html as Yt,css as ws,unsafeCSS as fi,nothing as Es}from"./lit-all.min.js";var gi=`
:root {
--list-checked-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' width='20' height='20'%3E%3Cpath fill='%23222222' d='M15.656,3.8625l-.7275-.5665a.5.5,0,0,0-.7.0875L7.411,12.1415,4.0875,8.8355a.5.5,0,0,0-.707,0L2.718,9.5a.5.5,0,0,0,0,.707l4.463,4.45a.5.5,0,0,0,.75-.0465L15.7435,4.564A.5.5,0,0,0,15.656,3.8625Z'%3E%3C/path%3E%3C/svg%3E");
--merch-card-collection-card-width: var(--consonant-merch-card-mini-compare-chart-mweb-width);
@@ -2157,7 +2155,7 @@ merch-card .footer-row-cell:nth-child(7) {
merch-card .footer-row-cell:nth-child(8) {
min-height: var(--consonant-merch-card-footer-row-8-min-height);
}
-`;var As=32,xi={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m-price"},promoText:{tag:"div",slot:"promo-text"},shortDescription:{tag:"div",slot:"body-m"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},quantitySelect:{tag:"div",slot:"quantity-select"},secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","spectrum-red-700-plans","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],ctas:{slot:"footer",size:"l"},footerRows:{tag:"div",slot:"footer-rows"},style:"consonant"},Ke=class extends L{constructor(r){super(r);f(this,"getRowMinHeightPropertyName",r=>`--consonant-merch-card-footer-row-${r}-min-height`);f(this,"getMiniCompareFooter",()=>Xt`
${this.icons}
@@ -2227,7 +2225,7 @@ merch-card .footer-row-cell:nth-child(8) {
padding-inline-start: var(--consonant-merch-spacing-xs);
}
- @media screen and ${vi(X)} {
+ @media screen and ${fi(X)} {
[class*'-merch-cards']
:host([variant='mini-compare-chart-mweb'])
footer {
@@ -2237,7 +2235,7 @@ merch-card .footer-row-cell:nth-child(8) {
}
}
- @media screen and ${vi(T)} {
+ @media screen and ${fi(T)} {
:host([variant='mini-compare-chart-mweb']) footer {
padding: 0;
}
@@ -2455,7 +2453,7 @@ merch-card .footer-row-cell:nth-child(8) {
gap: var(--consonant-merch-spacing-xxs);
margin: unset;
}
- `);import{html as At,css as Ss,nothing as Kt}from"./lit-all.min.js";var bi=`
+ `);import{html as At,css as Ss,nothing as Xt}from"./lit-all.min.js";var xi=`
:root {
--consonant-merch-card-plans-width: 302px;
--consonant-merch-card-plans-students-width: 302px;
@@ -2917,11 +2915,11 @@ merch-card-collection:has([slot="subtitle"]) merch-card {
--merch-sidenav-collection-gap: 54px;
}
}
-`;var Zt={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"subtitle"},prices:{tag:"p",slot:"heading-m"},promoText:{tag:"p",slot:"promo-text"},description:{tag:"div",slot:"body-xs"},mnemonics:{size:"l"},callout:{tag:"div",slot:"callout-content"},quantitySelect:{tag:"div",slot:"quantity-select"},addon:!0,secureLabel:!0,planType:!0,badgeIcon:!0,badge:{tag:"div",slot:"badge",default:"spectrum-yellow-300-plans"},allowedBadgeColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-gray-700-plans","spectrum-green-900-plans","gradient-purple-blue"],allowedBorderColors:["spectrum-yellow-300-plans","spectrum-gray-300-plans","spectrum-green-900-plans","gradient-purple-blue"],borderColor:{attribute:"border-color"},size:["wide","super-wide"],whatsIncluded:{tag:"div",slot:"whats-included"},ctas:{slot:"footer",size:"m"},style:"consonant",perUnitLabel:{tag:"span",slot:"per-unit-label"}},yi={...function(){let{whatsIncluded:e,size:t,...r}=Zt;return r}(),title:{tag:"h3",slot:"heading-s"},secureLabel:!1},wi={...function(){let{subtitle:e,whatsIncluded:t,size:r,quantitySelect:a,...i}=Zt;return i}()},te=class extends L{constructor(t){super(t),this.adaptForMedia=this.adaptForMedia.bind(this)}priceOptionsProvider(t,r){t.dataset.template===ne&&(r.displayPlanType=this.card?.settings?.displayPlanType??!1)}getGlobalCSS(){return bi}adjustSlotPlacement(t,r,a){let i=this.card.shadowRoot,n=i.querySelector("footer"),o=this.card.getAttribute("size");if(!o)return;let s=i.querySelector(`footer slot[name="${t}"]`),c=i.querySelector(`.body slot[name="${t}"]`),l=i.querySelector(".body");if(o.includes("wide")||(n?.classList.remove("wide-footer"),s&&s.remove()),!!r.includes(o)){if(n?.classList.toggle("wide-footer",C.isDesktopOrUp),!a&&s){if(c)s.remove();else{let d=l.querySelector(`[data-placeholder-for="${t}"]`);d?d.replaceWith(s):l.appendChild(s)}return}if(a&&c){let d=document.createElement("div");if(d.setAttribute("data-placeholder-for",t),d.classList.add("slot-placeholder"),!s){let p=c.cloneNode(!0);n.prepend(p)}c.replaceWith(d)}}}adaptForMedia(){if(!this.card.closest("merch-card-collection,overlay-trigger,.two-merch-cards,.three-merch-cards,.four-merch-cards, .columns")){this.card.removeAttribute("size");return}this.adjustSlotPlacement("addon",["super-wide"],C.isDesktopOrUp),this.adjustSlotPlacement("callout-content",["super-wide"],C.isDesktopOrUp)}adjustCallout(){let t=this.card.querySelector('[slot="callout-content"] .icon-button');t&&t.title&&(t.dataset.tooltip=t.title,t.removeAttribute("title"),t.classList.add("hide-tooltip"),document.addEventListener("touchstart",r=>{r.preventDefault(),r.target!==t?t.classList.add("hide-tooltip"):r.target.classList.toggle("hide-tooltip")}),document.addEventListener("mouseover",r=>{r.preventDefault(),r.target!==t?t.classList.add("hide-tooltip"):r.target.classList.remove("hide-tooltip")}))}async adjustEduLists(){if(this.card.variant!=="plans-education"||this.card.querySelector(".spacer"))return;let r=this.card.querySelector('[slot="body-xs"]');if(!r)return;let a=r.querySelector("ul");if(!a)return;let i=a.previousElementSibling,n=document.createElement("div");n.classList.add("spacer"),r.insertBefore(n,i);let o=new IntersectionObserver(([s])=>{if(s.boundingClientRect.height===0)return;let c=0,l=this.card.querySelector('[slot="heading-s"]');l&&(c+=yt(l));let d=this.card.querySelector('[slot="subtitle"]');d&&(c+=yt(d));let p=this.card.querySelector('[slot="heading-m"]');p&&(c+=8+yt(p));for(let h of r.childNodes){if(h.classList.contains("spacer"))break;c+=yt(h)}let u=this.card.parentElement.style.getPropertyValue("--merch-card-plans-edu-list-max-offset");c>(parseFloat(u)||0)&&this.card.parentElement.style.setProperty("--merch-card-plans-edu-list-max-offset",`${c}px`),this.card.style.setProperty("--merch-card-plans-edu-list-offset",`${c}px`),o.disconnect()});o.observe(this.card)}async postCardUpdateHook(){this.adaptForMedia(),this.adjustAddon(),this.adjustCallout(),this.legalAdjusted||(await this.adjustLegal(),await this.adjustEduLists())}get headingM(){return this.card.querySelector('[slot="heading-m"]')}get mainPrice(){return this.headingM.querySelector(`${q}[data-template="price"]`)}get divider(){return this.card.variant==="plans-education"?At``:Kt}async adjustLegal(){if(!this.legalAdjusted)try{this.legalAdjusted=!0,await this.card.updateComplete,await customElements.whenDefined("inline-price");let t=[],r=this.card.querySelector(`[slot="heading-m"] ${q}[data-template="price"]`);r&&t.push(r);let a=t.map(async i=>{let n=i.cloneNode(!0);await i.onceSettled(),i?.options&&(i.options.displayPerUnit&&(i.dataset.displayPerUnit="false"),i.options.displayTax&&(i.dataset.displayTax="false"),i.options.displayPlanType&&(i.dataset.displayPlanType="false"),n.setAttribute("data-template","legal"),i.parentNode.insertBefore(n,i.nextSibling),await n.onceSettled())});await Promise.all(a)}catch{}}async adjustAddon(){await this.card.updateComplete;let t=this.card.addon;if(!t)return;t.setAttribute("custom-checkbox","");let r=this.mainPrice;if(!r)return;await r.onceSettled();let a=r.value?.[0]?.planType;a&&(t.planType=a)}get stockCheckbox(){return this.card.checkboxLabel?At`
${this.icons}
- `:Qt}get icons(){return this.card.querySelector('[slot="icons"]')||this.card.getAttribute("id")?be`
@@ -4628,7 +4626,7 @@ merch-card-collection.segment merch-card {
:host([variant='segment']) ::slotted(h3[slot='heading-xs']) {
max-width: var(--consonant-merch-card-heading-xs-max-width, 100%);
}
- `);import{html as Ps,css as Ls}from"./lit-all.min.js";var Li=`
+ `);import{html as Ps,css as Ls}from"./lit-all.min.js";var Pi=`
merch-card[variant='media'] {
border: 0;
@@ -4741,7 +4739,7 @@ merch-card-collection.segment merch-card {
width: 700px;
}
-`;var ki={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"m"},backgroundImage:{tag:"div",slot:"bg-image"},style:"consonant"},Je=class extends L{constructor(t){super(t)}getGlobalCSS(){return Li}removeFocusFromModalClose(){let t=this.card.closest(".dialog-modal");t&&t.querySelector(".dialog-close")?.blur()}async postCardUpdateHook(){this.removeFocusFromModalClose()}renderLayout(){return Ps`
+`;var Li={cardName:{attribute:"name"},title:{tag:"h3",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"footer",size:"m"},backgroundImage:{tag:"div",slot:"bg-image"},style:"consonant"},Je=class extends L{constructor(t){super(t)}getGlobalCSS(){return Pi}removeFocusFromModalClose(){let t=this.card.closest(".dialog-modal");t&&t.querySelector(".dialog-close")?.blur()}async postCardUpdateHook(){this.removeFocusFromModalClose()}renderLayout(){return Ps`
- ${this.evergreen?ra`
+ ${this.evergreen?ta`
- `:ra`
+ `:ta`
${this.secureLabelFooter}
`}
@@ -4891,7 +4889,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="pric
) {
border-color: var(--spectrum-green-900-special-offers);
}
- `);import{html as Ms,css as Rs}from"./lit-all.min.js";var Ni=`
+ `);import{html as Ms,css as Rs}from"./lit-all.min.js";var Ri=`
:root {
--merch-card-simplified-pricing-express-width: 311px;
}
@@ -5322,7 +5320,7 @@ merch-card[variant="simplified-pricing-express"] [slot="cta"] button.spectrum-Bu
merch-card[variant="simplified-pricing-express"] [slot="cta"] a.spectrum-Button.spectrum-Button--accent .spectrum-Button-label {
color: var(--spectrum-white, #ffffff);
}
-`;var aa={title:{tag:"h3",slot:"heading-xs",maxCount:250,withSuffix:!0},badge:{tag:"div",slot:"badge",default:"spectrum-blue-400"},allowedBadgeColors:["spectrum-blue-400","spectrum-gray-300","spectrum-yellow-300","gradient-purple-blue","gradient-firefly-spectrum"],description:{tag:"div",slot:"body-xs",maxCount:2e3,withSuffix:!1},prices:{tag:"div",slot:"price"},callout:{tag:"div",slot:"callout-content",editorLabel:"Price description"},ctas:{slot:"cta",size:"XL"},borderColor:{attribute:"border-color",specialValues:{gray:"var(--spectrum-gray-300)",blue:"var(--spectrum-blue-400)","gradient-purple-blue":"linear-gradient(96deg, #B539C8 0%, #7155FA 66%, #3B63FB 100%)","gradient-firefly-spectrum":"linear-gradient(96deg, #D73220 0%, #D92361 33%, #7155FA 100%)"}},disabledAttributes:["badgeColor","badgeBorderColor","trialBadgeColor","trialBadgeBorderColor"],supportsDefaultChild:!0},tt=class extends L{getGlobalCSS(){return Ni}get aemFragmentMapping(){return aa}get headingSelector(){return'[slot="heading-xs"]'}get badge(){return this.card.querySelector('[slot="badge"]')}syncHeights(){if(this.card.getBoundingClientRect().width===0)return;let t=this.card.querySelector('[slot="body-xs"]');t&&this.updateCardElementMinHeight(t,"description");let r=this.card.querySelector('[slot="price"]');r&&this.updateCardElementMinHeight(r,"price");let a=this.card.querySelector('[slot="callout-content"]');a&&this.updateCardElementMinHeight(a,"callout");let i=this.card.querySelector('[slot="body-xs"] p:has(mas-mnemonic)');i&&this.updateCardElementMinHeight(i,"icons")}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,this.card.prices?.length&&await Promise.all(this.card.prices.map(t=>t.onceSettled?.())),C.isDesktopOrUp)){let t=this.getContainer();if(!t)return;requestAnimationFrame(()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(a=>a.variantLayout?.syncHeights?.())})}}connectedCallbackHook(){!this.card||this.card.failed||(this.setupAccordion(),this.card?.hasAttribute("data-default-card")&&!Gt()&&this.card.setAttribute("data-expanded","true"))}setupAccordion(){let t=this.card;if(!t)return;let r=()=>{if(Gt())t.removeAttribute("data-expanded");else{let i=t.hasAttribute("data-default-card");t.setAttribute("data-expanded",i?"true":"false")}};r();let a=window.matchMedia(O);this.mediaQueryListener=()=>{r()},a.addEventListener("change",this.mediaQueryListener)}disconnectedCallbackHook(){this.mediaQueryListener&&window.matchMedia(O).removeEventListener("change",this.mediaQueryListener)}handleChevronClick(t){t.preventDefault(),t.stopPropagation(),this.toggleExpanded()}handleCardClick(t){t.target.closest('.chevron-button, mas-mnemonic, button, a, [role="button"]')||(t.preventDefault(),this.toggleExpanded())}toggleExpanded(){let t=this.card;if(!t||Gt())return;let i=t.getAttribute("data-expanded")==="true"?"false":"true";t.setAttribute("data-expanded",i)}renderLayout(){return Ms`
+`;var ra={title:{tag:"h3",slot:"heading-xs",maxCount:250,withSuffix:!0},badge:{tag:"div",slot:"badge",default:"spectrum-blue-400"},allowedBadgeColors:["spectrum-blue-400","spectrum-gray-300","spectrum-yellow-300","gradient-purple-blue","gradient-firefly-spectrum"],description:{tag:"div",slot:"body-xs",maxCount:2e3,withSuffix:!1},prices:{tag:"div",slot:"price"},callout:{tag:"div",slot:"callout-content",editorLabel:"Price description"},ctas:{slot:"cta",size:"XL"},borderColor:{attribute:"border-color",specialValues:{gray:"var(--spectrum-gray-300)",blue:"var(--spectrum-blue-400)","gradient-purple-blue":"linear-gradient(96deg, #B539C8 0%, #7155FA 66%, #3B63FB 100%)","gradient-firefly-spectrum":"linear-gradient(96deg, #D73220 0%, #D92361 33%, #7155FA 100%)"}},disabledAttributes:["badgeColor","badgeBorderColor","trialBadgeColor","trialBadgeBorderColor"],supportsDefaultChild:!0},tt=class extends L{getGlobalCSS(){return Ri}get aemFragmentMapping(){return ra}get headingSelector(){return'[slot="heading-xs"]'}get badge(){return this.card.querySelector('[slot="badge"]')}syncHeights(){if(this.card.getBoundingClientRect().width===0)return;let t=this.card.querySelector('[slot="body-xs"]');t&&this.updateCardElementMinHeight(t,"description");let r=this.card.querySelector('[slot="price"]');r&&this.updateCardElementMinHeight(r,"price");let a=this.card.querySelector('[slot="callout-content"]');a&&this.updateCardElementMinHeight(a,"callout");let i=this.card.querySelector('[slot="body-xs"] p:has(mas-mnemonic)');i&&this.updateCardElementMinHeight(i,"icons")}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,this.card.prices?.length&&await Promise.all(this.card.prices.map(t=>t.onceSettled?.())),C.isDesktopOrUp)){let t=this.getContainer();if(!t)return;requestAnimationFrame(()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(a=>a.variantLayout?.syncHeights?.())})}}connectedCallbackHook(){!this.card||this.card.failed||(this.setupAccordion(),this.card?.hasAttribute("data-default-card")&&!Gt()&&this.card.setAttribute("data-expanded","true"))}setupAccordion(){let t=this.card;if(!t)return;let r=()=>{if(Gt())t.removeAttribute("data-expanded");else{let i=t.hasAttribute("data-default-card");t.setAttribute("data-expanded",i?"true":"false")}};r();let a=window.matchMedia(O);this.mediaQueryListener=()=>{r()},a.addEventListener("change",this.mediaQueryListener)}disconnectedCallbackHook(){this.mediaQueryListener&&window.matchMedia(O).removeEventListener("change",this.mediaQueryListener)}handleChevronClick(t){t.preventDefault(),t.stopPropagation(),this.toggleExpanded()}handleCardClick(t){t.target.closest('.chevron-button, mas-mnemonic, button, a, [role="button"]')||(t.preventDefault(),this.toggleExpanded())}toggleExpanded(){let t=this.card;if(!t||Gt())return;let i=t.getAttribute("data-expanded")==="true"?"false":"true";t.setAttribute("data-expanded",i)}renderLayout(){return Ms`
- `}syncHeights(){this.card.getBoundingClientRect().width<=2||(["short-description","cta"].forEach(t=>this.updateCardElementMinHeight(this.card.querySelector(`[slot="${t}"]`),t)),this.updateCardElementMinHeight(this.card.shadowRoot?.querySelector(".price-container"),"price"))}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,await Promise.all(this.card.prices.map(t=>t.onceSettled())),window.matchMedia("(min-width: 1025px)").matches)){let t=this.getContainer();if(!t)return;let r=`--consonant-merch-card-${this.card.variant}`,a=t.style.getPropertyValue(`${r}-price-height`);requestAnimationFrame(a?()=>{this.syncHeights()}:()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(n=>n.variantLayout?.syncHeights?.())})}}renderLayout(){return Ii`
+ `}syncHeights(){this.card.getBoundingClientRect().width<=2||(["short-description","cta"].forEach(t=>this.updateCardElementMinHeight(this.card.querySelector(`[slot="${t}"]`),t)),this.updateCardElementMinHeight(this.card.shadowRoot?.querySelector(".price-container"),"price"))}async postCardUpdateHook(){if(this.card.isConnected&&(await this.card.updateComplete,await Promise.all(this.card.prices.map(t=>t.onceSettled())),window.matchMedia("(min-width: 1025px)").matches)){let t=this.getContainer();if(!t)return;let r=`--consonant-merch-card-${this.card.variant}`,a=t.style.getPropertyValue(`${r}-price-height`);requestAnimationFrame(a?()=>{this.syncHeights()}:()=>{t.querySelectorAll(`merch-card[variant="${this.card.variant}"]`).forEach(n=>n.variantLayout?.syncHeights?.())})}}renderLayout(){return Oi`
${this.badge}
@@ -6700,16 +6698,16 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
margin-bottom: 24px;
}
}
- `);import{html as na,css as Os,nothing as Is}from"./lit-all.min.js";var Di=`
+ `);import{html as ia,css as Os,nothing as Is}from"./lit-all.min.js";var Ii=`
/* Headless variant: minimal container for label/value rows */
.headless {
display: flex;
flex-direction: column;
padding: var(--consonant-merch-spacing-xs, 8px);
}
-`;var Hi={cardName:{attribute:"name"},title:{tag:"p",slot:"heading-xs"},cardTitle:{tag:"p",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},promoText:{tag:"p",slot:"promo-text"},shortDescription:{tag:"p",slot:"short-description"},callout:{tag:"div",slot:"callout-content"},quantitySelect:{tag:"div",slot:"quantity-select"},whatsIncluded:{tag:"div",slot:"whats-included"},addonConfirmation:{tag:"div",slot:"addon-confirmation"},badge:{tag:"div",slot:"badge"},trialBadge:{tag:"div",slot:"trial-badge"},prices:{tag:"p",slot:"prices"},backgroundImage:{tag:"div",slot:"bg-image"},ctas:{slot:"footer",size:"m"},addon:!0,secureLabel:!0,borderColor:{attribute:"border-color"},backgroundColor:{attribute:"background-color"},size:[],mnemonics:{size:"m"}},Ds=[{slot:"bg-image",label:"Background Image"},{slot:"badge",label:"Badge"},{slot:"icons",label:"Mnemonic icon"},{slot:"heading-xs",label:"Title"},{slot:"body-xxs",label:"Subtitle"},{slot:"body-xs",label:"Product description"},{slot:"promo-text",label:"Promo Text"},{slot:"callout-content",label:"Callout text"},{slot:"short-description",label:"Short Description"},{slot:"trial-badge",label:"Trial Badge"},{slot:"prices",label:"Product price"},{slot:"quantity-select",label:"Quantity select"},{slot:"addon",label:"Addon"},{slot:"whats-included",label:"What's included"},{slot:"addon-confirmation",label:"Addon confirmation"},{slot:"footer",label:"CTAs"}],at=class extends L{constructor(t){super(t)}getGlobalCSS(){return Di}renderLayout(){return na`
+`;var Di={cardName:{attribute:"name"},title:{tag:"p",slot:"heading-xs"},cardTitle:{tag:"p",slot:"heading-xs"},subtitle:{tag:"p",slot:"body-xxs"},description:{tag:"div",slot:"body-xs"},promoText:{tag:"p",slot:"promo-text"},shortDescription:{tag:"p",slot:"short-description"},callout:{tag:"div",slot:"callout-content"},quantitySelect:{tag:"div",slot:"quantity-select"},whatsIncluded:{tag:"div",slot:"whats-included"},addonConfirmation:{tag:"div",slot:"addon-confirmation"},badge:{tag:"div",slot:"badge"},trialBadge:{tag:"div",slot:"trial-badge"},prices:{tag:"p",slot:"prices"},backgroundImage:{tag:"div",slot:"bg-image"},ctas:{slot:"footer",size:"m"},addon:!0,secureLabel:!0,borderColor:{attribute:"border-color"},backgroundColor:{attribute:"background-color"},size:[],mnemonics:{size:"m"}},Ds=[{slot:"bg-image",label:"Background Image"},{slot:"badge",label:"Badge"},{slot:"icons",label:"Mnemonic icon"},{slot:"heading-xs",label:"Title"},{slot:"body-xxs",label:"Subtitle"},{slot:"body-xs",label:"Product description"},{slot:"promo-text",label:"Promo Text"},{slot:"callout-content",label:"Callout text"},{slot:"short-description",label:"Short Description"},{slot:"trial-badge",label:"Trial Badge"},{slot:"prices",label:"Product price"},{slot:"quantity-select",label:"Quantity select"},{slot:"addon",label:"Addon"},{slot:"whats-included",label:"What's included"},{slot:"addon-confirmation",label:"Addon confirmation"},{slot:"footer",label:"CTAs"}],at=class extends L{constructor(t){super(t)}getGlobalCSS(){return Ii}renderLayout(){return ia`
- ${Ds.map(({slot:t,label:r})=>na`
+ ${Ds.map(({slot:t,label:r})=>ia`
${r}
@@ -6717,7 +6715,7 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
`)}
- ${this.card.secureLabel?na`
+ ${this.card.secureLabel?ia`
Secure label
@@ -6753,7 +6751,7 @@ merch-card[variant="full-pricing-express"] mas-mnemonic {
:host([variant='headless']) .headless-value::slotted(*) {
display: inline;
}
- `);import{css as Hs,html as zs}from"./lit-all.min.js";var zi=`
+ `);import{css as Hs,html as zs}from"./lit-all.min.js";var Hi=`
merch-card[variant="mini"] {
color: var(--spectrum-body-color);
width: 400px;
@@ -6786,7 +6784,7 @@ merch-card[variant="mini"] span.promo-duration-text,
merch-card[variant="mini"] span.renewal-text {
display: block;
}
-`;var Bi={title:{tag:"p",slot:"title"},prices:{tag:"p",slot:"prices"},description:{tag:"p",slot:"description"},planType:!0,ctas:{slot:"ctas",size:"S"}},it=class extends L{constructor(){super(...arguments);f(this,"legal")}async postCardUpdateHook(){await this.card.updateComplete,this.adjustLegal()}getGlobalCSS(){return zi}get headingSelector(){return'[slot="title"]'}priceOptionsProvider(r,a){a.literals={...a.literals,strikethroughAriaLabel:"",alternativePriceAriaLabel:""},a.space=!0,a.displayAnnual=this.card.settings?.displayAnnual??!1}adjustLegal(){if(this.legal!==void 0)return;let r=this.card.querySelector(`${q}[data-template="price"]`);if(!r)return;let a=r.cloneNode(!0);this.legal=a,r.dataset.displayTax="false",r.dataset.displayPerUnit="false",a.dataset.template="legal",a.dataset.displayPlanType=this.card?.settings?.displayPlanType??!0,a.setAttribute("slot","legal"),this.card.appendChild(a)}renderLayout(){return zs`
+`;var zi={title:{tag:"p",slot:"title"},prices:{tag:"p",slot:"prices"},description:{tag:"p",slot:"description"},planType:!0,ctas:{slot:"ctas",size:"S"}},it=class extends L{constructor(){super(...arguments);f(this,"legal")}async postCardUpdateHook(){await this.card.updateComplete,this.adjustLegal()}getGlobalCSS(){return Hi}get headingSelector(){return'[slot="title"]'}priceOptionsProvider(r,a){a.literals={...a.literals,strikethroughAriaLabel:"",alternativePriceAriaLabel:""},a.space=!0,a.displayAnnual=this.card.settings?.displayAnnual??!1}adjustLegal(){if(this.legal!==void 0)return;let r=this.card.querySelector(`${q}[data-template="price"]`);if(!r)return;let a=r.cloneNode(!0);this.legal=a,r.dataset.displayTax="false",r.dataset.displayPerUnit="false",a.dataset.template="legal",a.dataset.displayPlanType=this.card?.settings?.displayPlanType??!0,a.setAttribute("slot","legal"),this.card.appendChild(a)}renderLayout(){return zs`
${this.badge}
=d&&l<=p},Be={MONTH:"MONTH",YEAR:"YEAR"},xc={[ce.ANNUAL]:12,[ce.MONTHLY]:1,[ce.THREE_YEARS]:36,[ce.TWO_YEARS]:24},Sa=(e,t)=>({accept:e,round:t}),bc=[Sa(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),Sa(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.round(t/e*100)/100),Sa(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],Ta={[Re.YEAR]:{[ce.MONTHLY]:Be.MONTH,[ce.ANNUAL]:Be.YEAR},[Re.MONTH]:{[ce.MONTHLY]:Be.MONTH}},yc=(e,t)=>e.indexOf(`'${t}'`)===0,wc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),a=vn(r);return!!a?t||(r=r.replace(/[,\.]0+/,a)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Ac(e)),r},Ec=e=>{let t=Sc(e),r=yc(e,t),a=e.replace(/'.*?'/,""),i=un.test(a)||gn.test(a);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},fn=e=>e.replace(un,mn).replace(gn,mn),Ac=e=>e.match(/#(.?)#/)?.[1]===pn?vc:pn,Sc=e=>e.match(/'(.*?)'/)?.[1]??"",vn=e=>e.match(/0(.?)0/)?.[1]??"";function ct({formatString:e,price:t,usePrecision:r,isIndianPrice:a=!1},i,n=o=>o){let{currencySymbol:o,isCurrencyFirst:s,hasCurrencySpace:c}=Ec(e),l=r?vn(e):"",d=wc(e,r),p=r?2:0,u=n(t,{currencySymbol:o}),h=a?u.toLocaleString("hi-IN",{minimumFractionDigits:p,maximumFractionDigits:p}):hn(d,u),m=r?h.lastIndexOf(l):h.length,g=h.substring(0,m),x=h.substring(m+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,h).replace(/SYMBOL/,o),currencySymbol:o,decimals:x,decimalsDelimiter:l,hasCurrencySpace:c,integer:g,isCurrencyFirst:s,recurrenceTerm:i}}var xn=e=>{let{commitment:t,term:r,usePrecision:a}=e,i=xc[r]??1;return ct(e,i>1?Be.MONTH:Ta[t]?.[r],n=>{let o={divisor:i,price:n,usePrecision:a},{round:s}=bc.find(({accept:c})=>c(o));if(!s)throw new Error(`Missing rounding rule for: ${JSON.stringify(o)}`);return s(o)})},bn=({commitment:e,term:t,...r})=>ct(r,Ta[e]?.[t]),yn=e=>{let{commitment:t,instant:r,price:a,originalPrice:i,priceWithoutDiscount:n,promotion:o,quantity:s=1,term:c}=e;if(t===Re.YEAR&&c===ce.MONTHLY){if(!o)return ct(e,Be.YEAR,Aa);let{displaySummary:{outcomeType:l,duration:d}={}}=o;switch(l){case"PERCENTAGE_DISCOUNT":if(Fe(o,r,s)){let p=parseInt(d.replace("P","").replace("M",""));if(isNaN(p))return Aa(a);let u=i*p,h=n*(12-p),m=Math.round((u+h)*100)/100;return ct({...e,price:m},Be.YEAR)}default:return ct(e,Be.YEAR,()=>Aa(n??a))}}return ct(e,Ta[t]?.[c])};var wn="download",En="upgrade",An={e:"EDU",t:"TEAM"};function Sn(e,t={},r=""){let a=ae();if(!a)return null;let{checkoutMarketSegment:i,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:p,quantity:u,wcsOsi:h,extraOptions:m,analyticsId:g}=a.collectCheckoutOptions(t),x=lr(e,{checkoutMarketSegment:i,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:p,quantity:u,wcsOsi:h,extraOptions:m,analyticsId:g});return r&&(x.innerHTML=`${r}`),x}function Tn(e){return class extends e{constructor(){super(...arguments);f(this,"checkoutActionHandler");f(this,"masElement",new Pe(this))}attributeChangedCallback(a,i,n){this.masElement.attributeChangedCallback(a,i,n)}connectedCallback(){this.masElement.connectedCallback(),this.addEventListener("click",this.clickHandler)}disconnectedCallback(){this.masElement.disconnectedCallback(),this.removeEventListener("click",this.clickHandler)}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}get options(){return this.masElement.options}get marketSegment(){let a=this.options?.ms??this.value?.[0].marketSegments?.[0];return An[a]??a}get customerSegment(){let a=this.options?.cs??this.value?.[0]?.customerSegment;return An[a]??a}get is3in1Modal(){return Object.values(Ne).includes(this.getAttribute("data-modal"))}get isOpen3in1Modal(){let a=document.querySelector("meta[name=mas-ff-3in1]");return this.is3in1Modal&&(!a||a.content!=="off")}requestUpdate(a=!1){return this.masElement.requestUpdate(a)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}async render(a={}){let i=ae();if(!i)return!1;this.dataset.imsCountry||i.imsCountryPromise.then(h=>{h&&(this.dataset.imsCountry=h)}),a.imsCountry=null;let n=i.collectCheckoutOptions(a,this);if(!n.wcsOsi.length)return!1;let o;try{o=JSON.parse(n.extraOptions??"{}")}catch(h){this.masElement.log?.error("cannot parse exta checkout options",h)}let s=this.masElement.togglePending(n);this.setCheckoutUrl("");let c=i.resolveOfferSelectors(n),l=await Promise.all(c);l=l.map(h=>Ct(h,n));let d=l.flat().find(h=>h.promotion);!Fe(d?.promotion,d?.promotion?.displaySummary?.instant,n.quantity[0])&&n.promotionCode&&delete n.promotionCode,n.country=this.dataset.imsCountry||n.country;let u=await i.buildCheckoutAction?.(l.flat(),{...o,...n},this);return this.renderOffers(l.flat(),n,{},u,s)}renderOffers(a,i,n={},o=void 0,s=void 0){let c=ae();if(!c)return!1;if(i={...JSON.parse(this.dataset.extraOptions??"{}"),...i,...n},s??(s=this.masElement.togglePending(i)),this.checkoutActionHandler&&(this.checkoutActionHandler=void 0),o){this.classList.remove(wn,En),this.masElement.toggleResolved(s,a,i);let{url:d,text:p,className:u,handler:h}=o;d&&this.setCheckoutUrl(d),p&&(this.firstElementChild.innerHTML=p),u&&this.classList.add(...u.split(" ")),h&&(this.setCheckoutUrl("#"),this.checkoutActionHandler=h.bind(this))}if(a.length){if(this.masElement.toggleResolved(s,a,i)){if(!this.classList.contains(wn)&&!this.classList.contains(En)){let d=c.buildCheckoutURL(a,i);this.setCheckoutUrl(i.modal==="true"?"#":d)}return!0}}else{let d=new Error(`Not provided: ${i?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(s,d,i))return this.setCheckoutUrl("#"),!0}}setCheckoutUrl(){}clickHandler(a){}updateOptions(a={}){let i=ae();if(!i)return!1;let{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:p,promotionCode:u,quantity:h,wcsOsi:m}=i.collectCheckoutOptions(a);return cn(this,{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:p,promotionCode:u,quantity:h,wcsOsi:m}),!0}}}var Pt=class Pt extends Tn(HTMLAnchorElement){static createCheckoutLink(t={},r=""){return Sn(Pt,t,r)}setCheckoutUrl(t){this.setAttribute("href",t)}get isCheckoutLink(){return!0}clickHandler(t){if(this.checkoutActionHandler){this.checkoutActionHandler?.(t);return}}};f(Pt,"is","checkout-link"),f(Pt,"tag","a");var ye=Pt;window.customElements.get(ye.is)||window.customElements.define(ye.is,ye,{extends:ye.tag});var Tc="p_draft_landscape",Cc="/store/",_c=new Map([["countrySpecific","cs"],["customerSegment","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["addonProductArrangementCode","ao"],["offerType","ot"],["marketSegment","ms"]]),Ca=new Set(["af","ai","ao","apc","appctxid","cli","co","cs","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Pc=["env","workflowStep","clientId","country"],Cn=new Set(["gid","gtoken","notifauditid","cohortid","productname","sdid","attimer","gcsrc","gcprog","gcprogcat","gcpagetype","mv","mv2"]),_n=e=>_c.get(e)??e;function dr(e,t,r){for(let[a,i]of Object.entries(e)){let n=_n(a);i!=null&&r.has(n)&&t.set(n,i)}}function Lc(e){switch(e){case Wr.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function kc(e,t){for(let r in e){let a=e[r];for(let[i,n]of Object.entries(a)){if(n==null)continue;let o=_n(i);t.set(`items[${r}][${o}]`,n)}}}function Mc({url:e,modal:t,is3in1:r}){if(!r||!e?.searchParams)return e;e.searchParams.set("rtc","t"),e.searchParams.set("lo","sl");let a=e.searchParams.get("af");return e.searchParams.set("af",[a,"uc_new_user_iframe","uc_new_system_close"].filter(Boolean).join(",")),e.searchParams.get("cli")!=="doc_cloud"&&e.searchParams.set("cli",t===Ne.CRM?"creative":"mini_plans"),e}function Rc(e){let t=new URLSearchParams(window.location.search),r={};Cn.forEach(a=>{let i=t.get(a);i!==null&&(r[a]=i)}),Object.keys(r).length>0&&dr(r,e.searchParams,Cn)}function Pn(e){Nc(e);let{env:t,items:r,workflowStep:a,marketSegment:i,customerSegment:n,offerType:o,productArrangementCode:s,landscape:c,modal:l,is3in1:d,preselectPlan:p,...u}=e,h=new URL(Lc(t));if(h.pathname=`${Cc}${a}`,a!==ee.SEGMENTATION&&a!==ee.CHANGE_PLAN_TEAM_PLANS&&kc(r,h.searchParams),dr({...u},h.searchParams,Ca),Rc(h),c===Te.DRAFT&&dr({af:Tc},h.searchParams,Ca),a===ee.SEGMENTATION){let m={marketSegment:i,offerType:o,customerSegment:n,productArrangementCode:s,quantity:r?.[0]?.quantity,addonProductArrangementCode:s?r?.find(g=>g.productArrangementCode!==s)?.productArrangementCode:r?.[1]?.productArrangementCode};p?.toLowerCase()==="edu"?h.searchParams.set("ms","EDU"):p?.toLowerCase()==="team"&&h.searchParams.set("cs","TEAM"),dr(m,h.searchParams,Ca),h.searchParams.get("ot")==="PROMOTION"&&h.searchParams.delete("ot"),h=Mc({url:h,modal:l,is3in1:d})}return h.toString()}function Nc(e){for(let t of Pc)if(!e[t])throw new Error(`Argument "checkoutData" is not valid, missing: ${t}`);if(e.workflowStep!==ee.SEGMENTATION&&e.workflowStep!==ee.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}var k=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflowStep:ee.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,displayPlanType:!1,env:ge.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,alternativePrice:!1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:Te.PUBLISHED});function Ln({settings:e,providers:t}){function r(n,o){let{checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:p,quantity:u,preselectPlan:h,env:m}=e,g={checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:p,quantity:u,preselectPlan:h,env:m};if(o)for(let qe of t.checkout)qe(o,g);let{checkoutMarketSegment:x,checkoutWorkflowStep:b=c,imsCountry:E,country:v=E??l,language:A=d,quantity:N=u,entitlement:M,upgrade:z,modal:$,perpetual:Q,promotionCode:j=p,wcsOsi:F,extraOptions:R,...J}=Object.assign(g,o?.dataset??{},n??{}),se=Tt(b,ee,k.checkoutWorkflowStep);return g=tr({...J,extraOptions:R,checkoutClientId:s,checkoutMarketSegment:x,country:v,quantity:ot(N,k.quantity),checkoutWorkflowStep:se,language:A,entitlement:y(M),upgrade:y(z),modal:$,perpetual:y(Q),promotionCode:ar(j).effectivePromoCode,wcsOsi:cr(F),preselectPlan:h}),g}function a(n,o){if(!Array.isArray(n)||!n.length||!o)return"";let{env:s,landscape:c}=e,{checkoutClientId:l,checkoutMarketSegment:d,checkoutWorkflowStep:p,country:u,promotionCode:h,quantity:m,preselectPlan:g,ms:x,cs:b,...E}=r(o),v=document.querySelector("meta[name=mas-ff-3in1]"),A=Object.values(Ne).includes(o.modal)&&(!v||v.content!=="off"),N=window.frameElement||A?"if":"fp",[{productArrangementCode:M,marketSegments:[z],customerSegment:$,offerType:Q}]=n,j=x??z??d,F=b??$;g?.toLowerCase()==="edu"?j="EDU":g?.toLowerCase()==="team"&&(F="TEAM");let R={is3in1:A,checkoutPromoCode:h,clientId:l,context:N,country:u,env:s,items:[],marketSegment:j,customerSegment:F,offerType:Q,productArrangementCode:M,workflowStep:p,landscape:c,...E},J=m[0]>1?m[0]:void 0;if(n.length===1){let{offerId:se}=n[0];R.items.push({id:se,quantity:J})}else R.items.push(...n.map(({offerId:se,productArrangementCode:qe})=>({id:se,quantity:J,...A?{productArrangementCode:qe}:{}})));return Pn(R)}let{createCheckoutLink:i}=ye;return{CheckoutLink:ye,CheckoutWorkflowStep:ee,buildCheckoutURL:a,collectCheckoutOptions:r,createCheckoutLink:i}}function Oc({interval:e=200,maxAttempts:t=25}={}){let r=re.module("ims");return new Promise(a=>{r.debug("Waing for IMS to be ready");let i=0;function n(){window.adobeIMS?.initialized?a():++i>t?(r.debug("Timeout"),a()):setTimeout(n,e)}n()})}function Ic(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function Dc(e){let t=re.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:a})=>(t.debug("Got user country:",a),a),a=>{t.error("Unable to get user country:",a)}):null)}function kn({}){let e=Oc(),t=Ic(e),r=Dc(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}var Mn=window.masPriceLiterals;function Rn(e){if(Array.isArray(Mn)){let t=e.locale==="id_ID"?"in":e.language,r=i=>Mn.find(n=>oa(n.lang,i)),a=r(t)??r(k.language);if(a)return Object.freeze(a)}return{}}var _a=function(e,t){return _a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,a){r.__proto__=a}||function(r,a){for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(r[i]=a[i])},_a(e,t)};function Lt(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");_a(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var _=function(){return _=Object.assign||function(t){for(var r,a=1,i=arguments.length;a0}),r=[],a=0,i=t;a=d&&l<=p},Be={MONTH:"MONTH",YEAR:"YEAR"},xc={[ce.ANNUAL]:12,[ce.MONTHLY]:1,[ce.THREE_YEARS]:36,[ce.TWO_YEARS]:24},Aa=(e,t)=>({accept:e,round:t}),bc=[Aa(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),Aa(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.round(t/e*100)/100),Aa(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],Sa={[Re.YEAR]:{[ce.MONTHLY]:Be.MONTH,[ce.ANNUAL]:Be.YEAR},[Re.MONTH]:{[ce.MONTHLY]:Be.MONTH}},yc=(e,t)=>e.indexOf(`'${t}'`)===0,wc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),a=vn(r);return!!a?t||(r=r.replace(/[,\.]0+/,a)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Ac(e)),r},Ec=e=>{let t=Sc(e),r=yc(e,t),a=e.replace(/'.*?'/,""),i=un.test(a)||gn.test(a);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},fn=e=>e.replace(un,mn).replace(gn,mn),Ac=e=>e.match(/#(.?)#/)?.[1]===pn?vc:pn,Sc=e=>e.match(/'(.*?)'/)?.[1]??"",vn=e=>e.match(/0(.?)0/)?.[1]??"";function ct({formatString:e,price:t,usePrecision:r,isIndianPrice:a=!1},i,n=o=>o){let{currencySymbol:o,isCurrencyFirst:s,hasCurrencySpace:c}=Ec(e),l=r?vn(e):"",d=wc(e,r),p=r?2:0,u=n(t,{currencySymbol:o}),h=a?u.toLocaleString("hi-IN",{minimumFractionDigits:p,maximumFractionDigits:p}):hn(d,u),m=r?h.lastIndexOf(l):h.length,g=h.substring(0,m),x=h.substring(m+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,h).replace(/SYMBOL/,o),currencySymbol:o,decimals:x,decimalsDelimiter:l,hasCurrencySpace:c,integer:g,isCurrencyFirst:s,recurrenceTerm:i}}var xn=e=>{let{commitment:t,term:r,usePrecision:a}=e,i=xc[r]??1;return ct(e,i>1?Be.MONTH:Sa[t]?.[r],n=>{let o={divisor:i,price:n,usePrecision:a},{round:s}=bc.find(({accept:c})=>c(o));if(!s)throw new Error(`Missing rounding rule for: ${JSON.stringify(o)}`);return s(o)})},bn=({commitment:e,term:t,...r})=>ct(r,Sa[e]?.[t]),yn=e=>{let{commitment:t,instant:r,price:a,originalPrice:i,priceWithoutDiscount:n,promotion:o,quantity:s=1,term:c}=e;if(t===Re.YEAR&&c===ce.MONTHLY){if(!o)return ct(e,Be.YEAR,Ea);let{displaySummary:{outcomeType:l,duration:d}={}}=o;switch(l){case"PERCENTAGE_DISCOUNT":if(Fe(o,r,s)){let p=parseInt(d.replace("P","").replace("M",""));if(isNaN(p))return Ea(a);let u=i*p,h=n*(12-p),m=Math.round((u+h)*100)/100;return ct({...e,price:m},Be.YEAR)}default:return ct(e,Be.YEAR,()=>Ea(n??a))}}return ct(e,Sa[t]?.[c])};var wn="download",En="upgrade",An={e:"EDU",t:"TEAM"};function Sn(e,t={},r=""){let a=ae();if(!a)return null;let{checkoutMarketSegment:i,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:p,quantity:u,wcsOsi:h,extraOptions:m,analyticsId:g}=a.collectCheckoutOptions(t),x=cr(e,{checkoutMarketSegment:i,checkoutWorkflow:n,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:l,perpetual:d,promotionCode:p,quantity:u,wcsOsi:h,extraOptions:m,analyticsId:g});return r&&(x.innerHTML=`${r}`),x}function Tn(e){return class extends e{constructor(){super(...arguments);f(this,"checkoutActionHandler");f(this,"masElement",new Pe(this))}attributeChangedCallback(a,i,n){this.masElement.attributeChangedCallback(a,i,n)}connectedCallback(){this.masElement.connectedCallback(),this.addEventListener("click",this.clickHandler)}disconnectedCallback(){this.masElement.disconnectedCallback(),this.removeEventListener("click",this.clickHandler)}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}get options(){return this.masElement.options}get marketSegment(){let a=this.options?.ms??this.value?.[0].marketSegments?.[0];return An[a]??a}get customerSegment(){let a=this.options?.cs??this.value?.[0]?.customerSegment;return An[a]??a}get is3in1Modal(){return Object.values(Ne).includes(this.getAttribute("data-modal"))}get isOpen3in1Modal(){let a=document.querySelector("meta[name=mas-ff-3in1]");return this.is3in1Modal&&(!a||a.content!=="off")}requestUpdate(a=!1){return this.masElement.requestUpdate(a)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}async render(a={}){let i=ae();if(!i)return!1;this.dataset.imsCountry||i.imsCountryPromise.then(h=>{h&&(this.dataset.imsCountry=h)}),a.imsCountry=null;let n=i.collectCheckoutOptions(a,this);if(!n.wcsOsi.length)return!1;let o;try{o=JSON.parse(n.extraOptions??"{}")}catch(h){this.masElement.log?.error("cannot parse exta checkout options",h)}let s=this.masElement.togglePending(n);this.setCheckoutUrl("");let c=i.resolveOfferSelectors(n),l=await Promise.all(c);l=l.map(h=>Ct(h,n));let d=l.flat().find(h=>h.promotion);!Fe(d?.promotion,d?.promotion?.displaySummary?.instant,n.quantity[0])&&n.promotionCode&&delete n.promotionCode,n.country=this.dataset.imsCountry||n.country;let u=await i.buildCheckoutAction?.(l.flat(),{...o,...n},this);return this.renderOffers(l.flat(),n,{},u,s)}renderOffers(a,i,n={},o=void 0,s=void 0){let c=ae();if(!c)return!1;if(i={...JSON.parse(this.dataset.extraOptions??"{}"),...i,...n},s??(s=this.masElement.togglePending(i)),this.checkoutActionHandler&&(this.checkoutActionHandler=void 0),o){this.classList.remove(wn,En),this.masElement.toggleResolved(s,a,i);let{url:d,text:p,className:u,handler:h}=o;d&&this.setCheckoutUrl(d),p&&(this.firstElementChild.innerHTML=p),u&&this.classList.add(...u.split(" ")),h&&(this.setCheckoutUrl("#"),this.checkoutActionHandler=h.bind(this))}if(a.length){if(this.masElement.toggleResolved(s,a,i)){if(!this.classList.contains(wn)&&!this.classList.contains(En)){let d=c.buildCheckoutURL(a,i);this.setCheckoutUrl(i.modal==="true"?"#":d)}return!0}}else{let d=new Error(`Not provided: ${i?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(s,d,i))return this.setCheckoutUrl("#"),!0}}setCheckoutUrl(){}clickHandler(a){}updateOptions(a={}){let i=ae();if(!i)return!1;let{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:p,promotionCode:u,quantity:h,wcsOsi:m}=i.collectCheckoutOptions(a);return cn(this,{checkoutMarketSegment:n,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:d,perpetual:p,promotionCode:u,quantity:h,wcsOsi:m}),!0}}}var Pt=class Pt extends Tn(HTMLAnchorElement){static createCheckoutLink(t={},r=""){return Sn(Pt,t,r)}setCheckoutUrl(t){this.setAttribute("href",t)}get isCheckoutLink(){return!0}clickHandler(t){if(this.checkoutActionHandler){this.checkoutActionHandler?.(t);return}}};f(Pt,"is","checkout-link"),f(Pt,"tag","a");var ye=Pt;window.customElements.get(ye.is)||window.customElements.define(ye.is,ye,{extends:ye.tag});var Tc="p_draft_landscape",Cc="/store/",_c=new Map([["countrySpecific","cs"],["customerSegment","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["addonProductArrangementCode","ao"],["offerType","ot"],["marketSegment","ms"]]),Ta=new Set(["af","ai","ao","apc","appctxid","cli","co","cs","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Pc=["env","workflowStep","clientId","country"],Cn=new Set(["gid","gtoken","notifauditid","cohortid","productname","sdid","attimer","gcsrc","gcprog","gcprogcat","gcpagetype","mv","mv2"]),_n=e=>_c.get(e)??e;function lr(e,t,r){for(let[a,i]of Object.entries(e)){let n=_n(a);i!=null&&r.has(n)&&t.set(n,i)}}function Lc(e){switch(e){case jr.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function kc(e,t){for(let r in e){let a=e[r];for(let[i,n]of Object.entries(a)){if(n==null)continue;let o=_n(i);t.set(`items[${r}][${o}]`,n)}}}function Mc({url:e,modal:t,is3in1:r}){if(!r||!e?.searchParams)return e;e.searchParams.set("rtc","t"),e.searchParams.set("lo","sl");let a=e.searchParams.get("af");return e.searchParams.set("af",[a,"uc_new_user_iframe","uc_new_system_close"].filter(Boolean).join(",")),e.searchParams.get("cli")!=="doc_cloud"&&e.searchParams.set("cli",t===Ne.CRM?"creative":"mini_plans"),e}function Rc(e){let t=new URLSearchParams(window.location.search),r={};Cn.forEach(a=>{let i=t.get(a);i!==null&&(r[a]=i)}),Object.keys(r).length>0&&lr(r,e.searchParams,Cn)}function Pn(e){Nc(e);let{env:t,items:r,workflowStep:a,marketSegment:i,customerSegment:n,offerType:o,productArrangementCode:s,landscape:c,modal:l,is3in1:d,preselectPlan:p,...u}=e,h=new URL(Lc(t));if(h.pathname=`${Cc}${a}`,a!==ee.SEGMENTATION&&a!==ee.CHANGE_PLAN_TEAM_PLANS&&kc(r,h.searchParams),lr({...u},h.searchParams,Ta),Rc(h),c===Te.DRAFT&&lr({af:Tc},h.searchParams,Ta),a===ee.SEGMENTATION){let m={marketSegment:i,offerType:o,customerSegment:n,productArrangementCode:s,quantity:r?.[0]?.quantity,addonProductArrangementCode:s?r?.find(g=>g.productArrangementCode!==s)?.productArrangementCode:r?.[1]?.productArrangementCode};p?.toLowerCase()==="edu"?h.searchParams.set("ms","EDU"):p?.toLowerCase()==="team"&&h.searchParams.set("cs","TEAM"),lr(m,h.searchParams,Ta),h.searchParams.get("ot")==="PROMOTION"&&h.searchParams.delete("ot"),h=Mc({url:h,modal:l,is3in1:d})}return h.toString()}function Nc(e){for(let t of Pc)if(!e[t])throw new Error(`Argument "checkoutData" is not valid, missing: ${t}`);if(e.workflowStep!==ee.SEGMENTATION&&e.workflowStep!==ee.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}var k=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflowStep:ee.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,displayPlanType:!1,env:ge.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,alternativePrice:!1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:Te.PUBLISHED});function Ln({settings:e,providers:t}){function r(n,o){let{checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:p,quantity:u,preselectPlan:h,env:m}=e,g={checkoutClientId:s,checkoutWorkflowStep:c,country:l,language:d,promotionCode:p,quantity:u,preselectPlan:h,env:m};if(o)for(let qe of t.checkout)qe(o,g);let{checkoutMarketSegment:x,checkoutWorkflowStep:b=c,imsCountry:E,country:v=E??l,language:A=d,quantity:N=u,entitlement:M,upgrade:z,modal:$,perpetual:Q,promotionCode:j=p,wcsOsi:F,extraOptions:R,...J}=Object.assign(g,o?.dataset??{},n??{}),se=Tt(b,ee,k.checkoutWorkflowStep);return g=er({...J,extraOptions:R,checkoutClientId:s,checkoutMarketSegment:x,country:v,quantity:ot(N,k.quantity),checkoutWorkflowStep:se,language:A,entitlement:y(M),upgrade:y(z),modal:$,perpetual:y(Q),promotionCode:rr(j).effectivePromoCode,wcsOsi:sr(F),preselectPlan:h}),g}function a(n,o){if(!Array.isArray(n)||!n.length||!o)return"";let{env:s,landscape:c}=e,{checkoutClientId:l,checkoutMarketSegment:d,checkoutWorkflowStep:p,country:u,promotionCode:h,quantity:m,preselectPlan:g,ms:x,cs:b,...E}=r(o),v=document.querySelector("meta[name=mas-ff-3in1]"),A=Object.values(Ne).includes(o.modal)&&(!v||v.content!=="off"),N=window.frameElement||A?"if":"fp",[{productArrangementCode:M,marketSegments:[z],customerSegment:$,offerType:Q}]=n,j=x??z??d,F=b??$;g?.toLowerCase()==="edu"?j="EDU":g?.toLowerCase()==="team"&&(F="TEAM");let R={is3in1:A,checkoutPromoCode:h,clientId:l,context:N,country:u,env:s,items:[],marketSegment:j,customerSegment:F,offerType:Q,productArrangementCode:M,workflowStep:p,landscape:c,...E},J=m[0]>1?m[0]:void 0;if(n.length===1){let{offerId:se}=n[0];R.items.push({id:se,quantity:J})}else R.items.push(...n.map(({offerId:se,productArrangementCode:qe})=>({id:se,quantity:J,...A?{productArrangementCode:qe}:{}})));return Pn(R)}let{createCheckoutLink:i}=ye;return{CheckoutLink:ye,CheckoutWorkflowStep:ee,buildCheckoutURL:a,collectCheckoutOptions:r,createCheckoutLink:i}}function Oc({interval:e=200,maxAttempts:t=25}={}){let r=re.module("ims");return new Promise(a=>{r.debug("Waing for IMS to be ready");let i=0;function n(){window.adobeIMS?.initialized?a():++i>t?(r.debug("Timeout"),a()):setTimeout(n,e)}n()})}function Ic(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function Dc(e){let t=re.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:a})=>(t.debug("Got user country:",a),a),a=>{t.error("Unable to get user country:",a)}):null)}function kn({}){let e=Oc(),t=Ic(e),r=Dc(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}var Mn=window.masPriceLiterals;function Rn(e){if(Array.isArray(Mn)){let t=e.locale==="id_ID"?"in":e.language,r=i=>Mn.find(n=>na(n.lang,i)),a=r(t)??r(k.language);if(a)return Object.freeze(a)}return{}}var Ca=function(e,t){return Ca=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,a){r.__proto__=a}||function(r,a){for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(r[i]=a[i])},Ca(e,t)};function Lt(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Ca(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var _=function(){return _=Object.assign||function(t){for(var r,a=1,i=arguments.length;a0}),r=[],a=0,i=t;a