@universityofmaryland/web-elements-library 1.4.3 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +1 -1
  2. package/dist/atomic/animations/brand/chevron-scroll.js +3 -3
  3. package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
  4. package/dist/atomic/animations/brand/chevron-scroll.mjs +3 -3
  5. package/dist/atomic/animations/brand/chevron-scroll.mjs.map +1 -1
  6. package/dist/composite/carousel/cards/index.js +1 -1
  7. package/dist/composite/carousel/cards/index.js.map +1 -1
  8. package/dist/composite/carousel/cards/index.mjs +1 -1
  9. package/dist/composite/carousel/cards/index.mjs.map +1 -1
  10. package/dist/composite/hero/stacked.js +1 -1
  11. package/dist/composite/hero/stacked.js.map +1 -1
  12. package/dist/composite/hero/stacked.mjs +1 -1
  13. package/dist/composite/hero/stacked.mjs.map +1 -1
  14. package/dist/composite/layout/image/expand.js +10 -10
  15. package/dist/composite/layout/image/expand.js.map +1 -1
  16. package/dist/composite/layout/image/expand.mjs +10 -10
  17. package/dist/composite/layout/image/expand.mjs.map +1 -1
  18. package/dist/composite/pathway/hero.d.ts.map +1 -1
  19. package/dist/composite/pathway/hero.js +1 -2
  20. package/dist/composite/pathway/hero.js.map +1 -1
  21. package/dist/composite/pathway/hero.mjs +1 -2
  22. package/dist/composite/pathway/hero.mjs.map +1 -1
  23. package/dist/composite/pathway/overlay.js +4 -4
  24. package/dist/composite/pathway/overlay.js.map +1 -1
  25. package/dist/composite/pathway/overlay.mjs +4 -4
  26. package/dist/composite/pathway/overlay.mjs.map +1 -1
  27. package/dist/utilities/theme/media.d.ts +1 -1
  28. package/dist/utilities/theme/media.js +1 -1
  29. package/dist/utilities/theme/media.js.map +1 -1
  30. package/dist/utilities/theme/media.mjs +1 -1
  31. package/dist/utilities/theme/media.mjs.map +1 -1
  32. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # University of Maryland Web Elements Library
2
2
 
3
- [![Elements Version](https://img.shields.io/badge/Elements-v1.4.3-blue)](https://www.npmjs.com/package/@universityofmaryland/web-elements-library)
3
+ [![Elements Version](https://img.shields.io/badge/Elements-v1.4.5-blue)](https://www.npmjs.com/package/@universityofmaryland/web-elements-library)
4
4
 
5
5
  Foundational UI building blocks for the UMD Design System, providing atomic elements that combine to create complex, accessible, and brand-compliant University of Maryland digital experiences.
6
6
 
@@ -22,7 +22,7 @@ const FirstChevronStyles = `
22
22
  }
23
23
 
24
24
  @media (prefers-reduced-motion: no-preference) {
25
- @supports (animation-timeline: view()) {
25
+ @supports (animation-timeline: scroll()) {
26
26
  .${ELEMENT_FIRST_CHEVRON} {
27
27
  transform: translateX(40%);
28
28
  animation: chevron-one forwards;
@@ -56,7 +56,7 @@ const SecondChevronStyles = `
56
56
  }
57
57
 
58
58
  @media (prefers-reduced-motion: no-preference) {
59
- @supports (animation-timeline: view()) {
59
+ @supports (animation-timeline: scroll()) {
60
60
  .${ELEMENT_SECOND_CHEVRON} {
61
61
  transform: translateX(24%);
62
62
  animation: chevron-two forwards;
@@ -89,7 +89,7 @@ const ThirdChevronStyles = `
89
89
  }
90
90
 
91
91
  @media (prefers-reduced-motion: no-preference) {
92
- @supports (animation-timeline: view()) {
92
+ @supports (animation-timeline: scroll()) {
93
93
  .${ELEMENT_THIRD_CHEVRON} {
94
94
  transform: translateX(60%);
95
95
  animation: chevron-three forwards;
@@ -1 +1 @@
1
- {"version":3,"file":"chevron-scroll.js","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import { token } from '@universityofmaryland/web-styles-library';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":["token"],"mappings":";;AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMfA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACfA,OAAAA,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKXA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
1
+ {"version":3,"file":"chevron-scroll.js","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import { token } from '@universityofmaryland/web-styles-library';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":["token"],"mappings":";;AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMfA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACfA,OAAAA,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKXA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
@@ -21,7 +21,7 @@ const FirstChevronStyles = `
21
21
  }
22
22
 
23
23
  @media (prefers-reduced-motion: no-preference) {
24
- @supports (animation-timeline: view()) {
24
+ @supports (animation-timeline: scroll()) {
25
25
  .${ELEMENT_FIRST_CHEVRON} {
26
26
  transform: translateX(40%);
27
27
  animation: chevron-one forwards;
@@ -55,7 +55,7 @@ const SecondChevronStyles = `
55
55
  }
56
56
 
57
57
  @media (prefers-reduced-motion: no-preference) {
58
- @supports (animation-timeline: view()) {
58
+ @supports (animation-timeline: scroll()) {
59
59
  .${ELEMENT_SECOND_CHEVRON} {
60
60
  transform: translateX(24%);
61
61
  animation: chevron-two forwards;
@@ -88,7 +88,7 @@ const ThirdChevronStyles = `
88
88
  }
89
89
 
90
90
  @media (prefers-reduced-motion: no-preference) {
91
- @supports (animation-timeline: view()) {
91
+ @supports (animation-timeline: scroll()) {
92
92
  .${ELEMENT_THIRD_CHEVRON} {
93
93
  transform: translateX(60%);
94
94
  animation: chevron-three forwards;
@@ -1 +1 @@
1
- {"version":3,"file":"chevron-scroll.mjs","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import { token } from '@universityofmaryland/web-styles-library';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":[],"mappings":";AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACd,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMf,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACf,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKd,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACd,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKd,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKX,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
1
+ {"version":3,"file":"chevron-scroll.mjs","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import { token } from '@universityofmaryland/web-styles-library';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":[],"mappings":";AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACd,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMf,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACf,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKd,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACd,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKd,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKX,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
@@ -207,7 +207,7 @@ const ContainerStyles = `
207
207
  }
208
208
 
209
209
  @media (prefers-reduced-motion: no-preference) {
210
- @supports (animation-timeline: view()) {
210
+ @supports (animation-timeline: scroll()) {
211
211
  .${CAROUSEL_CONTAINER} > svg {
212
212
  animation: card-carousel-slide-in ease-in-out forwards;
213
213
  animation-timeline: view();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../source/composite/carousel/cards/index.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselCardsRequirements = {\n headline?: HTMLElement | null;\n text?: HTMLElement | null;\n actions?: HTMLElement | null;\n slide: HTMLElement;\n shadowRef?: HTMLElement;\n cards: HTMLElement[];\n};\n\nconst MEDIUM = 768;\nconst LARGE = 1024;\n\nconst BACKGROUND_TEXTURE = `<svg aria-hidden=\"true\" width=\"1599\" height=\"618\" viewBox=\"0 0 1599 618\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\"><mask id=\"mask0_2135_11278\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"1600\" height=\"618\"><rect width=\"1600\" height=\"618\" fill=\"#242424\"></rect></mask><g mask=\"url(#mask0_2135_11278)\"><g opacity=\"0.5\"><mask id=\"mask1_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"-56\" width=\"1823\" height=\"408\"><path d=\"M-17 351.98V-56H1806V351.98\" fill=\"white\"></path></mask><g mask=\"url(#mask1_2135_11278)\"><path d=\"M807.562 -68.3515L-433.759 1173.58L-217.501 1389.94L1023.82 148.012L807.562 -68.3515Z\" fill=\"#262626\"></path><path d=\"M360.649 -82.8017L-880.672 1159.13L-649.997 1389.92L591.324 147.986L360.649 -82.8017Z\" fill=\"black\"></path><path d=\"M1154.8 1173.26L-533.139 -515.499L-677.311 -371.256L1010.63 1317.51L1154.8 1173.26Z\" fill=\"#262626\"></path><path d=\"M2162.77 710.525L1312.18 -140.478L1168.01 3.76505L2018.6 854.768L2162.77 710.525Z\" fill=\"black\"></path><path d=\"M1312.16 -140.485L202.096 -1251.09L57.9241 -1106.85L1167.99 3.75794L1312.16 -140.485Z\" fill=\"#EDEDED\"></path><path d=\"M2133.89 -1251.07L1023.83 -140.458L1168 3.78455L2278.07 -1106.83L2133.89 -1251.07Z\" fill=\"#383838\"></path><path d=\"M591.343 147.968L-634.061 -1078.04L-864.736 -847.248L360.668 378.756L591.343 147.968Z\" fill=\"black\"></path><path d=\"M1023.82 147.97L-217.503 -1093.96L-433.761 -877.595L807.559 364.333L1023.82 147.97Z\" fill=\"#383838\"></path></g><mask id=\"mask2_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"351\" width=\"1823\" height=\"780\"><path d=\"M-17 351.938V753.629L837.67 753.672L845.662 1130.18L1806 1130.26V352.094\" fill=\"white\"></path></mask><g mask=\"url(#mask2_2135_11278)\"><path d=\"M1023.81 555.952L-217.506 -685.977L-433.764 -469.613L807.557 772.316L1023.81 555.952Z\" fill=\"#262626\"></path><path d=\"M591.347 555.967L-649.973 -685.962L-880.648 -455.174L360.672 786.755L591.347 555.967Z\" fill=\"black\"></path><path d=\"M1010.63 -613.543L-677.305 1075.22L-533.133 1219.46L1154.8 -469.3L1010.63 -613.543Z\" fill=\"#262626\"></path><path d=\"M1760.63 110.929L910.039 961.932L1054.21 1106.17L1904.8 255.172L1760.63 110.929Z\" fill=\"black\"></path><path d=\"M360.674 325.168L-864.73 1551.17L-634.055 1781.96L591.349 555.956L360.674 325.168Z\" fill=\"black\"></path><path d=\"M807.565 339.631L-433.756 1581.56L-217.498 1797.92L1023.82 555.995L807.565 339.631Z\" fill=\"#383838\"></path></g></g></g></svg>`;\n\nconst ELEMENT_NAME = 'umd-element-carousel-cards';\n\nconst ELEMENT_DECLARATION = 'carousel-cards-declaration';\nconst CAROUSEL_CONTAINER = 'element-carousel-container';\nconst CAROUSEL_LOCK = 'element-carousel-lock';\n\nconst INTRO_CONTAINER = 'carousel-cards-intro-container';\nconst INTRO_CONTAINER_LOCK = 'carousel-cards-intro-container-lock';\nconst INTRO_CONTAINER_HEADLINE = 'carousel-cards-intro-container-headline';\nconst INTRO_CONTAINER_TEXT = 'carousel-cards-intro-container-text';\nconst INTRO_CONTAINER_CTA = 'carousel-cards-intro-container-cta';\n\nconst OVERWRITE_ANIMATION_CAROUSEL_DECLARATION = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.declaration}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_CONTAINER = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.container}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_BUTTON = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.button}`;\n\n// prettier-ignore\nconst OverwriteCarouselStyles = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_CONTAINER} {\n padding-bottom: 60px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_DECLARATION} {\n width: 60%;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n bottom: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n left: 49px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n right: -52px;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: -52px;\n }\n }\n`;\n\n// prettier-ignore\nconst HeadlineStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE}`]: typography.sans.largest,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE} *`]: typography.sans.largest,\n },\n })}\n\n .${INTRO_CONTAINER_HEADLINE},\n .${INTRO_CONTAINER_HEADLINE} * {\n color: ${token.color.white};\n font-weight: 800;\n text-transform: uppercase;\n }\n`;\n\n// prettier-ignore\nconst TextStyles = `\n * + .${INTRO_CONTAINER_TEXT} {\n margin-top: ${token.spacing.md};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: element.text.rich.advancedDark,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: typography.sans.medium,\n },\n })}\n`;\n\n// prettier-ignore\nconst ActionStyles = `\n * + .${INTRO_CONTAINER_CTA} {\n margin-top: ${token.spacing.md};\n }\n\n .${INTRO_CONTAINER_CTA} a {\n color: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst IntroContainer = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n .${INTRO_CONTAINER} {\n margin-bottom: ${token.spacing.md};\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} {\n width: calc(40% - ${token.spacing['2xl']});\n padding-right: ${token.spacing['2xl']};\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} .${INTRO_CONTAINER_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerLock = `\n .${CAROUSEL_LOCK} {\n position: relative;\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: layout.space.horizontal.larger,\n })}\n }\n\n @media (max-width: ${MEDIUM - 1}px) {\n .${CAROUSEL_LOCK} {\n padding-right: 0;\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${CAROUSEL_LOCK} {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n @media umd-carousel-card (max-width: ${LARGE - 1}px) {\n .${CAROUSEL_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerStyles = `\n @keyframes card-carousel-slide-in {\n from { transform: translateX(-25vw); }\n to { transform: translateX(0);}\n }\n\n .${CAROUSEL_CONTAINER} {\n background-color: ${token.color.black};\n padding: ${token.spacing['3xl']} 0;\n position: relative;\n overflow: clip;\n }\n\n @container ${ELEMENT_NAME} (max-width: 300px) {\n .${CAROUSEL_CONTAINER} {\n display: none;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${MEDIUM}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['4xl']} 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['max']} 0;\n }\n }\n\n .${CAROUSEL_CONTAINER} > svg {\n width: auto;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${CAROUSEL_CONTAINER} > svg {\n animation: card-carousel-slide-in ease-in-out forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n transform: translateX(-15vw);\n }\n }\n }\n`\n\n// prettier-ignore\nconst STYLES_CAROUSEL_CARDS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_DECLARATION} * {\n color: ${token.color.white};\n }\n \n ${carouselElements.blocks.Styles}\n ${ContainerStyles}\n ${ContainerLock}\n ${HeadlineStyles}\n ${TextStyles}\n ${ActionStyles}\n ${IntroContainer}\n ${OverwriteCarouselStyles}\n`;\n\nconst CreateIntro = (props: TypeCarouselCardsRequirements) => {\n const { headline, text, actions } = props;\n const introContainer = document.createElement('div');\n const introWrapper = document.createElement('div');\n\n introWrapper.classList.add(INTRO_CONTAINER_LOCK);\n\n if (headline) {\n headline.classList.add(INTRO_CONTAINER_HEADLINE);\n introWrapper.appendChild(headline);\n }\n\n if (text) {\n text.classList.add(INTRO_CONTAINER_TEXT);\n introWrapper.appendChild(text);\n }\n\n if (actions) {\n actions.classList.add(INTRO_CONTAINER_CTA);\n introWrapper.appendChild(actions);\n }\n\n introContainer.classList.add(INTRO_CONTAINER);\n introContainer.appendChild(introWrapper);\n\n return introContainer;\n};\n\nexport default (props: TypeCarouselCardsRequirements) =>\n (() => {\n const { slide, shadowRef } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n if (slide) slide.style.minHeight = '450px';\n if (shadowRef) shadowRef.style.minHeight = '450px';\n\n const carouselContainer = carouselElements.blocks.CreateElement({\n ...props,\n blocks: props.cards,\n overwriteDisplayLogic: {\n mobileBreakpoint: 650,\n tabletBreakpoint: 1024,\n desktopBreakpoint: 1024,\n mobileCount: 1,\n tabletCount: 2,\n desktopCount: 2,\n maxCount: 2,\n showMobileHint: true,\n showHint: false,\n },\n });\n const introContainer = CreateIntro(props);\n\n wrapper.classList.add(CAROUSEL_LOCK);\n wrapper.appendChild(introContainer);\n wrapper.appendChild(carouselContainer.element);\n\n container.classList.add(CAROUSEL_CONTAINER);\n container.innerHTML = BACKGROUND_TEXTURE;\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n styles: STYLES_CAROUSEL_CARDS_ELEMENT,\n events: {\n resize: carouselContainer.events.resize,\n load: carouselContainer.events.load,\n },\n };\n })();\n"],"names":["carouselElements.blocks","Utility.theme.convertJSSObjectToStyles","typography","token","element","layout"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../source/composite/carousel/cards/index.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselCardsRequirements = {\n headline?: HTMLElement | null;\n text?: HTMLElement | null;\n actions?: HTMLElement | null;\n slide: HTMLElement;\n shadowRef?: HTMLElement;\n cards: HTMLElement[];\n};\n\nconst MEDIUM = 768;\nconst LARGE = 1024;\n\nconst BACKGROUND_TEXTURE = `<svg aria-hidden=\"true\" width=\"1599\" height=\"618\" viewBox=\"0 0 1599 618\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\"><mask id=\"mask0_2135_11278\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"1600\" height=\"618\"><rect width=\"1600\" height=\"618\" fill=\"#242424\"></rect></mask><g mask=\"url(#mask0_2135_11278)\"><g opacity=\"0.5\"><mask id=\"mask1_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"-56\" width=\"1823\" height=\"408\"><path d=\"M-17 351.98V-56H1806V351.98\" fill=\"white\"></path></mask><g mask=\"url(#mask1_2135_11278)\"><path d=\"M807.562 -68.3515L-433.759 1173.58L-217.501 1389.94L1023.82 148.012L807.562 -68.3515Z\" fill=\"#262626\"></path><path d=\"M360.649 -82.8017L-880.672 1159.13L-649.997 1389.92L591.324 147.986L360.649 -82.8017Z\" fill=\"black\"></path><path d=\"M1154.8 1173.26L-533.139 -515.499L-677.311 -371.256L1010.63 1317.51L1154.8 1173.26Z\" fill=\"#262626\"></path><path d=\"M2162.77 710.525L1312.18 -140.478L1168.01 3.76505L2018.6 854.768L2162.77 710.525Z\" fill=\"black\"></path><path d=\"M1312.16 -140.485L202.096 -1251.09L57.9241 -1106.85L1167.99 3.75794L1312.16 -140.485Z\" fill=\"#EDEDED\"></path><path d=\"M2133.89 -1251.07L1023.83 -140.458L1168 3.78455L2278.07 -1106.83L2133.89 -1251.07Z\" fill=\"#383838\"></path><path d=\"M591.343 147.968L-634.061 -1078.04L-864.736 -847.248L360.668 378.756L591.343 147.968Z\" fill=\"black\"></path><path d=\"M1023.82 147.97L-217.503 -1093.96L-433.761 -877.595L807.559 364.333L1023.82 147.97Z\" fill=\"#383838\"></path></g><mask id=\"mask2_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"351\" width=\"1823\" height=\"780\"><path d=\"M-17 351.938V753.629L837.67 753.672L845.662 1130.18L1806 1130.26V352.094\" fill=\"white\"></path></mask><g mask=\"url(#mask2_2135_11278)\"><path d=\"M1023.81 555.952L-217.506 -685.977L-433.764 -469.613L807.557 772.316L1023.81 555.952Z\" fill=\"#262626\"></path><path d=\"M591.347 555.967L-649.973 -685.962L-880.648 -455.174L360.672 786.755L591.347 555.967Z\" fill=\"black\"></path><path d=\"M1010.63 -613.543L-677.305 1075.22L-533.133 1219.46L1154.8 -469.3L1010.63 -613.543Z\" fill=\"#262626\"></path><path d=\"M1760.63 110.929L910.039 961.932L1054.21 1106.17L1904.8 255.172L1760.63 110.929Z\" fill=\"black\"></path><path d=\"M360.674 325.168L-864.73 1551.17L-634.055 1781.96L591.349 555.956L360.674 325.168Z\" fill=\"black\"></path><path d=\"M807.565 339.631L-433.756 1581.56L-217.498 1797.92L1023.82 555.995L807.565 339.631Z\" fill=\"#383838\"></path></g></g></g></svg>`;\n\nconst ELEMENT_NAME = 'umd-element-carousel-cards';\n\nconst ELEMENT_DECLARATION = 'carousel-cards-declaration';\nconst CAROUSEL_CONTAINER = 'element-carousel-container';\nconst CAROUSEL_LOCK = 'element-carousel-lock';\n\nconst INTRO_CONTAINER = 'carousel-cards-intro-container';\nconst INTRO_CONTAINER_LOCK = 'carousel-cards-intro-container-lock';\nconst INTRO_CONTAINER_HEADLINE = 'carousel-cards-intro-container-headline';\nconst INTRO_CONTAINER_TEXT = 'carousel-cards-intro-container-text';\nconst INTRO_CONTAINER_CTA = 'carousel-cards-intro-container-cta';\n\nconst OVERWRITE_ANIMATION_CAROUSEL_DECLARATION = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.declaration}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_CONTAINER = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.container}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_BUTTON = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.button}`;\n\n// prettier-ignore\nconst OverwriteCarouselStyles = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_CONTAINER} {\n padding-bottom: 60px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_DECLARATION} {\n width: 60%;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n bottom: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n left: 49px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n right: -52px;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: -52px;\n }\n }\n`;\n\n// prettier-ignore\nconst HeadlineStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE}`]: typography.sans.largest,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE} *`]: typography.sans.largest,\n },\n })}\n\n .${INTRO_CONTAINER_HEADLINE},\n .${INTRO_CONTAINER_HEADLINE} * {\n color: ${token.color.white};\n font-weight: 800;\n text-transform: uppercase;\n }\n`;\n\n// prettier-ignore\nconst TextStyles = `\n * + .${INTRO_CONTAINER_TEXT} {\n margin-top: ${token.spacing.md};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: element.text.rich.advancedDark,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: typography.sans.medium,\n },\n })}\n`;\n\n// prettier-ignore\nconst ActionStyles = `\n * + .${INTRO_CONTAINER_CTA} {\n margin-top: ${token.spacing.md};\n }\n\n .${INTRO_CONTAINER_CTA} a {\n color: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst IntroContainer = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n .${INTRO_CONTAINER} {\n margin-bottom: ${token.spacing.md};\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} {\n width: calc(40% - ${token.spacing['2xl']});\n padding-right: ${token.spacing['2xl']};\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} .${INTRO_CONTAINER_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerLock = `\n .${CAROUSEL_LOCK} {\n position: relative;\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: layout.space.horizontal.larger,\n })}\n }\n\n @media (max-width: ${MEDIUM - 1}px) {\n .${CAROUSEL_LOCK} {\n padding-right: 0;\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${CAROUSEL_LOCK} {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n @media umd-carousel-card (max-width: ${LARGE - 1}px) {\n .${CAROUSEL_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerStyles = `\n @keyframes card-carousel-slide-in {\n from { transform: translateX(-25vw); }\n to { transform: translateX(0);}\n }\n\n .${CAROUSEL_CONTAINER} {\n background-color: ${token.color.black};\n padding: ${token.spacing['3xl']} 0;\n position: relative;\n overflow: clip;\n }\n\n @container ${ELEMENT_NAME} (max-width: 300px) {\n .${CAROUSEL_CONTAINER} {\n display: none;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${MEDIUM}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['4xl']} 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['max']} 0;\n }\n }\n\n .${CAROUSEL_CONTAINER} > svg {\n width: auto;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${CAROUSEL_CONTAINER} > svg {\n animation: card-carousel-slide-in ease-in-out forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n transform: translateX(-15vw);\n }\n }\n }\n`\n\n// prettier-ignore\nconst STYLES_CAROUSEL_CARDS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_DECLARATION} * {\n color: ${token.color.white};\n }\n \n ${carouselElements.blocks.Styles}\n ${ContainerStyles}\n ${ContainerLock}\n ${HeadlineStyles}\n ${TextStyles}\n ${ActionStyles}\n ${IntroContainer}\n ${OverwriteCarouselStyles}\n`;\n\nconst CreateIntro = (props: TypeCarouselCardsRequirements) => {\n const { headline, text, actions } = props;\n const introContainer = document.createElement('div');\n const introWrapper = document.createElement('div');\n\n introWrapper.classList.add(INTRO_CONTAINER_LOCK);\n\n if (headline) {\n headline.classList.add(INTRO_CONTAINER_HEADLINE);\n introWrapper.appendChild(headline);\n }\n\n if (text) {\n text.classList.add(INTRO_CONTAINER_TEXT);\n introWrapper.appendChild(text);\n }\n\n if (actions) {\n actions.classList.add(INTRO_CONTAINER_CTA);\n introWrapper.appendChild(actions);\n }\n\n introContainer.classList.add(INTRO_CONTAINER);\n introContainer.appendChild(introWrapper);\n\n return introContainer;\n};\n\nexport default (props: TypeCarouselCardsRequirements) =>\n (() => {\n const { slide, shadowRef } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n if (slide) slide.style.minHeight = '450px';\n if (shadowRef) shadowRef.style.minHeight = '450px';\n\n const carouselContainer = carouselElements.blocks.CreateElement({\n ...props,\n blocks: props.cards,\n overwriteDisplayLogic: {\n mobileBreakpoint: 650,\n tabletBreakpoint: 1024,\n desktopBreakpoint: 1024,\n mobileCount: 1,\n tabletCount: 2,\n desktopCount: 2,\n maxCount: 2,\n showMobileHint: true,\n showHint: false,\n },\n });\n const introContainer = CreateIntro(props);\n\n wrapper.classList.add(CAROUSEL_LOCK);\n wrapper.appendChild(introContainer);\n wrapper.appendChild(carouselContainer.element);\n\n container.classList.add(CAROUSEL_CONTAINER);\n container.innerHTML = BACKGROUND_TEXTURE;\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n styles: STYLES_CAROUSEL_CARDS_ELEMENT,\n events: {\n resize: carouselContainer.events.resize,\n load: carouselContainer.events.load,\n },\n };\n })();\n"],"names":["carouselElements.blocks","Utility.theme.convertJSSObjectToStyles","typography","token","element","layout"],"mappings":"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"}
@@ -206,7 +206,7 @@ const ContainerStyles = `
206
206
  }
207
207
 
208
208
  @media (prefers-reduced-motion: no-preference) {
209
- @supports (animation-timeline: view()) {
209
+ @supports (animation-timeline: scroll()) {
210
210
  .${CAROUSEL_CONTAINER} > svg {
211
211
  animation: card-carousel-slide-in ease-in-out forwards;
212
212
  animation-timeline: view();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../source/composite/carousel/cards/index.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselCardsRequirements = {\n headline?: HTMLElement | null;\n text?: HTMLElement | null;\n actions?: HTMLElement | null;\n slide: HTMLElement;\n shadowRef?: HTMLElement;\n cards: HTMLElement[];\n};\n\nconst MEDIUM = 768;\nconst LARGE = 1024;\n\nconst BACKGROUND_TEXTURE = `<svg aria-hidden=\"true\" width=\"1599\" height=\"618\" viewBox=\"0 0 1599 618\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\"><mask id=\"mask0_2135_11278\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"1600\" height=\"618\"><rect width=\"1600\" height=\"618\" fill=\"#242424\"></rect></mask><g mask=\"url(#mask0_2135_11278)\"><g opacity=\"0.5\"><mask id=\"mask1_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"-56\" width=\"1823\" height=\"408\"><path d=\"M-17 351.98V-56H1806V351.98\" fill=\"white\"></path></mask><g mask=\"url(#mask1_2135_11278)\"><path d=\"M807.562 -68.3515L-433.759 1173.58L-217.501 1389.94L1023.82 148.012L807.562 -68.3515Z\" fill=\"#262626\"></path><path d=\"M360.649 -82.8017L-880.672 1159.13L-649.997 1389.92L591.324 147.986L360.649 -82.8017Z\" fill=\"black\"></path><path d=\"M1154.8 1173.26L-533.139 -515.499L-677.311 -371.256L1010.63 1317.51L1154.8 1173.26Z\" fill=\"#262626\"></path><path d=\"M2162.77 710.525L1312.18 -140.478L1168.01 3.76505L2018.6 854.768L2162.77 710.525Z\" fill=\"black\"></path><path d=\"M1312.16 -140.485L202.096 -1251.09L57.9241 -1106.85L1167.99 3.75794L1312.16 -140.485Z\" fill=\"#EDEDED\"></path><path d=\"M2133.89 -1251.07L1023.83 -140.458L1168 3.78455L2278.07 -1106.83L2133.89 -1251.07Z\" fill=\"#383838\"></path><path d=\"M591.343 147.968L-634.061 -1078.04L-864.736 -847.248L360.668 378.756L591.343 147.968Z\" fill=\"black\"></path><path d=\"M1023.82 147.97L-217.503 -1093.96L-433.761 -877.595L807.559 364.333L1023.82 147.97Z\" fill=\"#383838\"></path></g><mask id=\"mask2_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"351\" width=\"1823\" height=\"780\"><path d=\"M-17 351.938V753.629L837.67 753.672L845.662 1130.18L1806 1130.26V352.094\" fill=\"white\"></path></mask><g mask=\"url(#mask2_2135_11278)\"><path d=\"M1023.81 555.952L-217.506 -685.977L-433.764 -469.613L807.557 772.316L1023.81 555.952Z\" fill=\"#262626\"></path><path d=\"M591.347 555.967L-649.973 -685.962L-880.648 -455.174L360.672 786.755L591.347 555.967Z\" fill=\"black\"></path><path d=\"M1010.63 -613.543L-677.305 1075.22L-533.133 1219.46L1154.8 -469.3L1010.63 -613.543Z\" fill=\"#262626\"></path><path d=\"M1760.63 110.929L910.039 961.932L1054.21 1106.17L1904.8 255.172L1760.63 110.929Z\" fill=\"black\"></path><path d=\"M360.674 325.168L-864.73 1551.17L-634.055 1781.96L591.349 555.956L360.674 325.168Z\" fill=\"black\"></path><path d=\"M807.565 339.631L-433.756 1581.56L-217.498 1797.92L1023.82 555.995L807.565 339.631Z\" fill=\"#383838\"></path></g></g></g></svg>`;\n\nconst ELEMENT_NAME = 'umd-element-carousel-cards';\n\nconst ELEMENT_DECLARATION = 'carousel-cards-declaration';\nconst CAROUSEL_CONTAINER = 'element-carousel-container';\nconst CAROUSEL_LOCK = 'element-carousel-lock';\n\nconst INTRO_CONTAINER = 'carousel-cards-intro-container';\nconst INTRO_CONTAINER_LOCK = 'carousel-cards-intro-container-lock';\nconst INTRO_CONTAINER_HEADLINE = 'carousel-cards-intro-container-headline';\nconst INTRO_CONTAINER_TEXT = 'carousel-cards-intro-container-text';\nconst INTRO_CONTAINER_CTA = 'carousel-cards-intro-container-cta';\n\nconst OVERWRITE_ANIMATION_CAROUSEL_DECLARATION = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.declaration}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_CONTAINER = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.container}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_BUTTON = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.button}`;\n\n// prettier-ignore\nconst OverwriteCarouselStyles = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_CONTAINER} {\n padding-bottom: 60px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_DECLARATION} {\n width: 60%;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n bottom: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n left: 49px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n right: -52px;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: -52px;\n }\n }\n`;\n\n// prettier-ignore\nconst HeadlineStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE}`]: typography.sans.largest,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE} *`]: typography.sans.largest,\n },\n })}\n\n .${INTRO_CONTAINER_HEADLINE},\n .${INTRO_CONTAINER_HEADLINE} * {\n color: ${token.color.white};\n font-weight: 800;\n text-transform: uppercase;\n }\n`;\n\n// prettier-ignore\nconst TextStyles = `\n * + .${INTRO_CONTAINER_TEXT} {\n margin-top: ${token.spacing.md};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: element.text.rich.advancedDark,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: typography.sans.medium,\n },\n })}\n`;\n\n// prettier-ignore\nconst ActionStyles = `\n * + .${INTRO_CONTAINER_CTA} {\n margin-top: ${token.spacing.md};\n }\n\n .${INTRO_CONTAINER_CTA} a {\n color: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst IntroContainer = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n .${INTRO_CONTAINER} {\n margin-bottom: ${token.spacing.md};\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} {\n width: calc(40% - ${token.spacing['2xl']});\n padding-right: ${token.spacing['2xl']};\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} .${INTRO_CONTAINER_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerLock = `\n .${CAROUSEL_LOCK} {\n position: relative;\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: layout.space.horizontal.larger,\n })}\n }\n\n @media (max-width: ${MEDIUM - 1}px) {\n .${CAROUSEL_LOCK} {\n padding-right: 0;\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${CAROUSEL_LOCK} {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n @media umd-carousel-card (max-width: ${LARGE - 1}px) {\n .${CAROUSEL_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerStyles = `\n @keyframes card-carousel-slide-in {\n from { transform: translateX(-25vw); }\n to { transform: translateX(0);}\n }\n\n .${CAROUSEL_CONTAINER} {\n background-color: ${token.color.black};\n padding: ${token.spacing['3xl']} 0;\n position: relative;\n overflow: clip;\n }\n\n @container ${ELEMENT_NAME} (max-width: 300px) {\n .${CAROUSEL_CONTAINER} {\n display: none;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${MEDIUM}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['4xl']} 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['max']} 0;\n }\n }\n\n .${CAROUSEL_CONTAINER} > svg {\n width: auto;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: view()) {\n .${CAROUSEL_CONTAINER} > svg {\n animation: card-carousel-slide-in ease-in-out forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n transform: translateX(-15vw);\n }\n }\n }\n`\n\n// prettier-ignore\nconst STYLES_CAROUSEL_CARDS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_DECLARATION} * {\n color: ${token.color.white};\n }\n \n ${carouselElements.blocks.Styles}\n ${ContainerStyles}\n ${ContainerLock}\n ${HeadlineStyles}\n ${TextStyles}\n ${ActionStyles}\n ${IntroContainer}\n ${OverwriteCarouselStyles}\n`;\n\nconst CreateIntro = (props: TypeCarouselCardsRequirements) => {\n const { headline, text, actions } = props;\n const introContainer = document.createElement('div');\n const introWrapper = document.createElement('div');\n\n introWrapper.classList.add(INTRO_CONTAINER_LOCK);\n\n if (headline) {\n headline.classList.add(INTRO_CONTAINER_HEADLINE);\n introWrapper.appendChild(headline);\n }\n\n if (text) {\n text.classList.add(INTRO_CONTAINER_TEXT);\n introWrapper.appendChild(text);\n }\n\n if (actions) {\n actions.classList.add(INTRO_CONTAINER_CTA);\n introWrapper.appendChild(actions);\n }\n\n introContainer.classList.add(INTRO_CONTAINER);\n introContainer.appendChild(introWrapper);\n\n return introContainer;\n};\n\nexport default (props: TypeCarouselCardsRequirements) =>\n (() => {\n const { slide, shadowRef } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n if (slide) slide.style.minHeight = '450px';\n if (shadowRef) shadowRef.style.minHeight = '450px';\n\n const carouselContainer = carouselElements.blocks.CreateElement({\n ...props,\n blocks: props.cards,\n overwriteDisplayLogic: {\n mobileBreakpoint: 650,\n tabletBreakpoint: 1024,\n desktopBreakpoint: 1024,\n mobileCount: 1,\n tabletCount: 2,\n desktopCount: 2,\n maxCount: 2,\n showMobileHint: true,\n showHint: false,\n },\n });\n const introContainer = CreateIntro(props);\n\n wrapper.classList.add(CAROUSEL_LOCK);\n wrapper.appendChild(introContainer);\n wrapper.appendChild(carouselContainer.element);\n\n container.classList.add(CAROUSEL_CONTAINER);\n container.innerHTML = BACKGROUND_TEXTURE;\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n styles: STYLES_CAROUSEL_CARDS_ELEMENT,\n events: {\n resize: carouselContainer.events.resize,\n load: carouselContainer.events.load,\n },\n };\n })();\n"],"names":["carouselElements.blocks","Utility.theme.convertJSSObjectToStyles"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../source/composite/carousel/cards/index.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselCardsRequirements = {\n headline?: HTMLElement | null;\n text?: HTMLElement | null;\n actions?: HTMLElement | null;\n slide: HTMLElement;\n shadowRef?: HTMLElement;\n cards: HTMLElement[];\n};\n\nconst MEDIUM = 768;\nconst LARGE = 1024;\n\nconst BACKGROUND_TEXTURE = `<svg aria-hidden=\"true\" width=\"1599\" height=\"618\" viewBox=\"0 0 1599 618\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\"><mask id=\"mask0_2135_11278\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"1600\" height=\"618\"><rect width=\"1600\" height=\"618\" fill=\"#242424\"></rect></mask><g mask=\"url(#mask0_2135_11278)\"><g opacity=\"0.5\"><mask id=\"mask1_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"-56\" width=\"1823\" height=\"408\"><path d=\"M-17 351.98V-56H1806V351.98\" fill=\"white\"></path></mask><g mask=\"url(#mask1_2135_11278)\"><path d=\"M807.562 -68.3515L-433.759 1173.58L-217.501 1389.94L1023.82 148.012L807.562 -68.3515Z\" fill=\"#262626\"></path><path d=\"M360.649 -82.8017L-880.672 1159.13L-649.997 1389.92L591.324 147.986L360.649 -82.8017Z\" fill=\"black\"></path><path d=\"M1154.8 1173.26L-533.139 -515.499L-677.311 -371.256L1010.63 1317.51L1154.8 1173.26Z\" fill=\"#262626\"></path><path d=\"M2162.77 710.525L1312.18 -140.478L1168.01 3.76505L2018.6 854.768L2162.77 710.525Z\" fill=\"black\"></path><path d=\"M1312.16 -140.485L202.096 -1251.09L57.9241 -1106.85L1167.99 3.75794L1312.16 -140.485Z\" fill=\"#EDEDED\"></path><path d=\"M2133.89 -1251.07L1023.83 -140.458L1168 3.78455L2278.07 -1106.83L2133.89 -1251.07Z\" fill=\"#383838\"></path><path d=\"M591.343 147.968L-634.061 -1078.04L-864.736 -847.248L360.668 378.756L591.343 147.968Z\" fill=\"black\"></path><path d=\"M1023.82 147.97L-217.503 -1093.96L-433.761 -877.595L807.559 364.333L1023.82 147.97Z\" fill=\"#383838\"></path></g><mask id=\"mask2_2135_11278\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"-17\" y=\"351\" width=\"1823\" height=\"780\"><path d=\"M-17 351.938V753.629L837.67 753.672L845.662 1130.18L1806 1130.26V352.094\" fill=\"white\"></path></mask><g mask=\"url(#mask2_2135_11278)\"><path d=\"M1023.81 555.952L-217.506 -685.977L-433.764 -469.613L807.557 772.316L1023.81 555.952Z\" fill=\"#262626\"></path><path d=\"M591.347 555.967L-649.973 -685.962L-880.648 -455.174L360.672 786.755L591.347 555.967Z\" fill=\"black\"></path><path d=\"M1010.63 -613.543L-677.305 1075.22L-533.133 1219.46L1154.8 -469.3L1010.63 -613.543Z\" fill=\"#262626\"></path><path d=\"M1760.63 110.929L910.039 961.932L1054.21 1106.17L1904.8 255.172L1760.63 110.929Z\" fill=\"black\"></path><path d=\"M360.674 325.168L-864.73 1551.17L-634.055 1781.96L591.349 555.956L360.674 325.168Z\" fill=\"black\"></path><path d=\"M807.565 339.631L-433.756 1581.56L-217.498 1797.92L1023.82 555.995L807.565 339.631Z\" fill=\"#383838\"></path></g></g></g></svg>`;\n\nconst ELEMENT_NAME = 'umd-element-carousel-cards';\n\nconst ELEMENT_DECLARATION = 'carousel-cards-declaration';\nconst CAROUSEL_CONTAINER = 'element-carousel-container';\nconst CAROUSEL_LOCK = 'element-carousel-lock';\n\nconst INTRO_CONTAINER = 'carousel-cards-intro-container';\nconst INTRO_CONTAINER_LOCK = 'carousel-cards-intro-container-lock';\nconst INTRO_CONTAINER_HEADLINE = 'carousel-cards-intro-container-headline';\nconst INTRO_CONTAINER_TEXT = 'carousel-cards-intro-container-text';\nconst INTRO_CONTAINER_CTA = 'carousel-cards-intro-container-cta';\n\nconst OVERWRITE_ANIMATION_CAROUSEL_DECLARATION = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.declaration}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_CONTAINER = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.container}`;\nconst OVERWRITE_ANIMATION_CAROUSEL_BUTTON = `.${CAROUSEL_CONTAINER} .${carouselElements.blocks.Elements.button}`;\n\n// prettier-ignore\nconst OverwriteCarouselStyles = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_CONTAINER} {\n padding-bottom: 60px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_DECLARATION} {\n width: 60%;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n bottom: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n left: 49px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {\n right: -52px;\n }\n }\n\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n ${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {\n left: -52px;\n }\n }\n`;\n\n// prettier-ignore\nconst HeadlineStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE}`]: typography.sans.largest,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_HEADLINE} *`]: typography.sans.largest,\n },\n })}\n\n .${INTRO_CONTAINER_HEADLINE},\n .${INTRO_CONTAINER_HEADLINE} * {\n color: ${token.color.white};\n font-weight: 800;\n text-transform: uppercase;\n }\n`;\n\n// prettier-ignore\nconst TextStyles = `\n * + .${INTRO_CONTAINER_TEXT} {\n margin-top: ${token.spacing.md};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: element.text.rich.advancedDark,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${INTRO_CONTAINER_TEXT}`]: typography.sans.medium,\n },\n })}\n`;\n\n// prettier-ignore\nconst ActionStyles = `\n * + .${INTRO_CONTAINER_CTA} {\n margin-top: ${token.spacing.md};\n }\n\n .${INTRO_CONTAINER_CTA} a {\n color: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst IntroContainer = `\n @container ${ELEMENT_NAME} (max-width: ${LARGE - 1}px) {\n .${INTRO_CONTAINER} {\n margin-bottom: ${token.spacing.md};\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} {\n width: calc(40% - ${token.spacing['2xl']});\n padding-right: ${token.spacing['2xl']};\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${INTRO_CONTAINER} .${INTRO_CONTAINER_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerLock = `\n .${CAROUSEL_LOCK} {\n position: relative;\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: layout.space.horizontal.larger,\n })}\n }\n\n @media (max-width: ${MEDIUM - 1}px) {\n .${CAROUSEL_LOCK} {\n padding-right: 0;\n }\n }\n\n @media (min-width: ${LARGE}px) {\n .${CAROUSEL_LOCK} {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n @media umd-carousel-card (max-width: ${LARGE - 1}px) {\n .${CAROUSEL_LOCK} {\n max-width: inherit;\n padding: 0;\n }\n }\n`;\n\n// prettier-ignore\nconst ContainerStyles = `\n @keyframes card-carousel-slide-in {\n from { transform: translateX(-25vw); }\n to { transform: translateX(0);}\n }\n\n .${CAROUSEL_CONTAINER} {\n background-color: ${token.color.black};\n padding: ${token.spacing['3xl']} 0;\n position: relative;\n overflow: clip;\n }\n\n @container ${ELEMENT_NAME} (max-width: 300px) {\n .${CAROUSEL_CONTAINER} {\n display: none;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${MEDIUM}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['4xl']} 0;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${CAROUSEL_CONTAINER} {\n padding: ${token.spacing['max']} 0;\n }\n }\n\n .${CAROUSEL_CONTAINER} > svg {\n width: auto;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${CAROUSEL_CONTAINER} > svg {\n animation: card-carousel-slide-in ease-in-out forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n transform: translateX(-15vw);\n }\n }\n }\n`\n\n// prettier-ignore\nconst STYLES_CAROUSEL_CARDS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_DECLARATION} * {\n color: ${token.color.white};\n }\n \n ${carouselElements.blocks.Styles}\n ${ContainerStyles}\n ${ContainerLock}\n ${HeadlineStyles}\n ${TextStyles}\n ${ActionStyles}\n ${IntroContainer}\n ${OverwriteCarouselStyles}\n`;\n\nconst CreateIntro = (props: TypeCarouselCardsRequirements) => {\n const { headline, text, actions } = props;\n const introContainer = document.createElement('div');\n const introWrapper = document.createElement('div');\n\n introWrapper.classList.add(INTRO_CONTAINER_LOCK);\n\n if (headline) {\n headline.classList.add(INTRO_CONTAINER_HEADLINE);\n introWrapper.appendChild(headline);\n }\n\n if (text) {\n text.classList.add(INTRO_CONTAINER_TEXT);\n introWrapper.appendChild(text);\n }\n\n if (actions) {\n actions.classList.add(INTRO_CONTAINER_CTA);\n introWrapper.appendChild(actions);\n }\n\n introContainer.classList.add(INTRO_CONTAINER);\n introContainer.appendChild(introWrapper);\n\n return introContainer;\n};\n\nexport default (props: TypeCarouselCardsRequirements) =>\n (() => {\n const { slide, shadowRef } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n if (slide) slide.style.minHeight = '450px';\n if (shadowRef) shadowRef.style.minHeight = '450px';\n\n const carouselContainer = carouselElements.blocks.CreateElement({\n ...props,\n blocks: props.cards,\n overwriteDisplayLogic: {\n mobileBreakpoint: 650,\n tabletBreakpoint: 1024,\n desktopBreakpoint: 1024,\n mobileCount: 1,\n tabletCount: 2,\n desktopCount: 2,\n maxCount: 2,\n showMobileHint: true,\n showHint: false,\n },\n });\n const introContainer = CreateIntro(props);\n\n wrapper.classList.add(CAROUSEL_LOCK);\n wrapper.appendChild(introContainer);\n wrapper.appendChild(carouselContainer.element);\n\n container.classList.add(CAROUSEL_CONTAINER);\n container.innerHTML = BACKGROUND_TEXTURE;\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n styles: STYLES_CAROUSEL_CARDS_ELEMENT,\n events: {\n resize: carouselContainer.events.resize,\n load: carouselContainer.events.load,\n },\n };\n })();\n"],"names":["carouselElements.blocks","Utility.theme.convertJSSObjectToStyles"],"mappings":";;;;;;AAkBA,MAAM,SAAS;AACf,MAAM,QAAQ;AAEd,MAAM,qBAAqB;AAAA;AAG3B,MAAM,eAAe;AAErB,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,gBAAgB;AAEtB,MAAM,kBAAkB;AACxB,MAAM,uBAAuB;AAC7B,MAAM,2BAA2B;AACjC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAE5B,MAAM,2CAA2C,IAAI,kBAAkB,KAAKA,OAAwB,SAAS,WAAW;AACxH,MAAM,yCAAyC,IAAI,kBAAkB,KAAKA,OAAwB,SAAS,SAAS;AACpH,MAAM,sCAAsC,IAAI,kBAAkB,KAAKA,OAAwB,SAAS,MAAM;AAG9G,MAAM,0BAA0B;AAAA,eACjB,YAAY,gBAAgB,QAAQ,CAAC;AAAA,MAC9C,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK7B,YAAY,gBAAgB,KAAK;AAAA,MAC1C,wCAAwC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK/B,YAAY,gBAAgB,QAAQ,CAAC;AAAA,MAC9C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1B,YAAY,gBAAgB,KAAK;AAAA,MAC1C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAM1B,YAAY,gBAAgB,QAAQ,CAAC;AAAA,MAC9C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1B,YAAY,gBAAgB,KAAK;AAAA,MAC1C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1B,YAAY,gBAAgB,QAAQ,CAAC;AAAA,MAC9C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA,eAK1B,YAAY,gBAAgB,KAAK;AAAA,MAC1C,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAOzC,MAAM,iBAAiB;AAAA,IACnBC,yBAAuC;AAAA,EACvC,UAAU;AAAA,IACR,CAAC,IAAI,wBAAwB,EAAE,GAAG,WAAW,KAAK;AAAA,EAAA;AAEtD,CAAC,CAAC;AAAA;AAAA,IAEAA,yBAAuC;AAAA,EACvC,UAAU;AAAA,IACR,CAAC,IAAI,wBAAwB,IAAI,GAAG,WAAW,KAAK;AAAA,EAAA;AAExD,CAAC,CAAC;AAAA;AAAA,KAEC,wBAAwB;AAAA,KACxB,wBAAwB;AAAA,aAChB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAO9B,MAAM,aAAa;AAAA,SACV,oBAAoB;AAAA,kBACX,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,IAG9BA,yBAAuC;AAAA,EACvC,UAAU;AAAA,IACR,CAAC,IAAI,oBAAoB,EAAE,GAAG,QAAQ,KAAK,KAAK;AAAA,EAAA;AAEpD,CAAC,CAAC;AAAA;AAAA,IAEAA,yBAAuC;AAAA,EACvC,UAAU;AAAA,IACR,CAAC,IAAI,oBAAoB,EAAE,GAAG,WAAW,KAAK;AAAA,EAAA;AAElD,CAAC,CAAC;AAAA;AAIJ,MAAM,eAAe;AAAA,SACZ,mBAAmB;AAAA,kBACV,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,KAG7B,mBAAmB;AAAA,aACX,MAAM,MAAM,KAAK;AAAA;AAAA;AAK9B,MAAM,iBAAiB;AAAA,eACR,YAAY,gBAAgB,QAAQ,CAAC;AAAA,OAC7C,eAAe;AAAA,uBACC,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,eAIxB,YAAY,gBAAgB,KAAK;AAAA,OACzC,eAAe;AAAA,0BACI,MAAM,QAAQ,KAAK,CAAC;AAAA,uBACvB,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIpB,KAAK;AAAA,OACrB,eAAe,KAAK,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ/C,MAAM,gBAAgB;AAAA,KACjB,aAAa;AAAA;AAAA,MAEZA,yBAAuC;AAAA,EACvC,UAAU,OAAO,MAAM,WAAW;AACpC,CAAC,CAAC;AAAA;AAAA;AAAA,uBAGiB,SAAS,CAAC;AAAA,OAC1B,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKG,KAAK;AAAA,OACrB,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAOqB,QAAQ,CAAC;AAAA,OAC3C,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAQpB,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMnB,kBAAkB;AAAA,wBACC,MAAM,MAAM,KAAK;AAAA,eAC1B,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,eAKpB,YAAY;AAAA,OACpB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,eAKV,YAAY,gBAAgB,MAAM;AAAA,OAC1C,kBAAkB;AAAA,iBACR,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,eAItB,YAAY,gBAAgB,KAAK;AAAA,OACzC,kBAAkB;AAAA,iBACR,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,KAIhC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAUd,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY3B,MAAM,gCAAgC;AAAA,KACjC,mBAAmB;AAAA,iBACP,YAAY;AAAA;AAAA;AAAA,KAGxB,mBAAmB;AAAA,aACX,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1BD,OAAwB,MAAM;AAAA,IAC9B,eAAe;AAAA,IACf,aAAa;AAAA,IACb,cAAc;AAAA,IACd,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,uBAAuB;AAAA;AAG3B,MAAM,cAAc,CAAC,UAAyC;AAC5D,QAAM,EAAE,UAAU,MAAM,QAAA,IAAY;AACpC,QAAM,iBAAiB,SAAS,cAAc,KAAK;AACnD,QAAM,eAAe,SAAS,cAAc,KAAK;AAEjD,eAAa,UAAU,IAAI,oBAAoB;AAE/C,MAAI,UAAU;AACZ,aAAS,UAAU,IAAI,wBAAwB;AAC/C,iBAAa,YAAY,QAAQ;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,SAAK,UAAU,IAAI,oBAAoB;AACvC,iBAAa,YAAY,IAAI;AAAA,EAC/B;AAEA,MAAI,SAAS;AACX,YAAQ,UAAU,IAAI,mBAAmB;AACzC,iBAAa,YAAY,OAAO;AAAA,EAClC;AAEA,iBAAe,UAAU,IAAI,eAAe;AAC5C,iBAAe,YAAY,YAAY;AAEvC,SAAO;AACT;AAEA,MAAA,QAAe,CAAC,WACb,MAAM;AACL,QAAM,EAAE,OAAO,UAAA,IAAc;AAC7B,QAAM,cAAc,SAAS,cAAc,KAAK;AAChD,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,UAAU,SAAS,cAAc,KAAK;AAE5C,MAAI,MAAO,OAAM,MAAM,YAAY;AACnC,MAAI,UAAW,WAAU,MAAM,YAAY;AAE3C,QAAM,oBAAoBA,OAAwB,cAAc;AAAA,IAC9D,GAAG;AAAA,IACH,QAAQ,MAAM;AAAA,IACd,uBAAuB;AAAA,MACrB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,cAAc;AAAA,MACd,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA;AAAA,EACZ,CACD;AACD,QAAM,iBAAiB,YAAY,KAAK;AAExC,UAAQ,UAAU,IAAI,aAAa;AACnC,UAAQ,YAAY,cAAc;AAClC,UAAQ,YAAY,kBAAkB,OAAO;AAE7C,YAAU,UAAU,IAAI,kBAAkB;AAC1C,YAAU,YAAY;AACtB,YAAU,YAAY,OAAO;AAE7B,cAAY,UAAU,IAAI,mBAAmB;AAC7C,cAAY,YAAY,SAAS;AAEjC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,MACN,QAAQ,kBAAkB,OAAO;AAAA,MACjC,MAAM,kBAAkB,OAAO;AAAA,IAAA;AAAA,EACjC;AAEJ,GAAA;"}
@@ -95,7 +95,7 @@ const createOverlay = (includesAnimation) => {
95
95
  ...includesAnimation && {
96
96
  [`@media (${Styles__namespace.token.media.queries.tablet.min})`]: {
97
97
  [`@media (prefers-reduced-motion: no-preference)`]: {
98
- [`@supports (animation-timeline: view())`]: {
98
+ [`@supports (animation-timeline: scroll())`]: {
99
99
  animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,
100
100
  animationTimeline: "view()",
101
101
  animationRangeStart: "30vh",
@@ -1 +1 @@
1
- {"version":3,"file":"stacked.js","sources":["../../../source/composite/hero/stacked.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport * as Utils from 'utilities';\nimport { assets, textLockup } from 'atomic';\nimport { ElementModel } from 'model';\nimport { type ElementVisual } from '../../_types';\nimport { type HeroStackedProps } from './_types';\n\nconst REF_KEY_FRAME_FADE_OVER = 'hero-stacked-fade-over';\nconst REF_KEY_FRAME_FONT_COLOR = 'hero-stacked-font-color';\n\nconst keyFrameFadeOver = `\n @keyframes ${REF_KEY_FRAME_FADE_OVER} {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n`;\n\nconst keyFrameFontColor = `\n @keyframes ${REF_KEY_FRAME_FONT_COLOR} {\n from { color: ${Styles.token.color.black}; }\n to { color: ${Styles.token.color.white}; }\n }\n`;\n\nconst createVideoAsset = (video: HTMLVideoElement) => {\n return assets.video.observedAutoPlay({\n video,\n isScaled: true,\n });\n};\n\nconst createImageAsset = (image: HTMLImageElement) => {\n return assets.image.background({\n element: image,\n isScaled: true,\n isGifAllowed: true,\n isShowCaption: true,\n customStyles: {\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '56vw',\n },\n },\n\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '550px',\n },\n },\n\n [`& .${Styles.element.asset.gif.toggle.className} button`]: {\n zIndex: 99999,\n },\n },\n });\n};\n\nconst createOverlay = (includesAnimation?: boolean) => {\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__overlay',\n elementStyles: {\n element: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n height: '100vh',\n width: '100vw',\n display: 'block',\n backgroundColor: 'rgba(0,0,0,.7)',\n zIndex: 99,\n opacity: 0,\n\n ...(includesAnimation && {\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`@media (prefers-reduced-motion: no-preference)`]: {\n [`@supports (animation-timeline: view())`]: {\n animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '30vh',\n animationRangeEnd: '70vh',\n },\n },\n },\n }),\n },\n },\n });\n};\n\nconst createAsset = ({\n image,\n video,\n includesAnimation,\n isWidthLarge = false,\n isHeightSmall = false,\n}: Pick<\n HeroStackedProps,\n 'image' | 'video' | 'includesAnimation' | 'isWidthLarge' | 'isHeightSmall'\n>) => {\n let mediaElement: ElementVisual | null = null;\n\n if (video && video instanceof HTMLVideoElement) {\n mediaElement = createVideoAsset(video);\n } else if (image) {\n mediaElement = createImageAsset(image);\n }\n\n if (!mediaElement) {\n return null;\n }\n\n const assetInteriorElement = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset--interior',\n children: [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n overflow: 'clip',\n position: 'relative',\n height: '100%',\n },\n },\n });\n\n const horizontalLock = ElementModel.layout.spaceHorizontalLarger({\n element: document.createElement('div'),\n children: [assetInteriorElement],\n elementStyles: {\n element: {\n height: '100%',\n width: '100%',\n },\n },\n });\n\n const assetContainer = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset',\n children: isWidthLarge\n ? [horizontalLock]\n : [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n position: 'relative',\n overflow: 'clip',\n display: 'grid',\n\n ['& img, & video']: {\n objectFit: 'cover',\n aspectRatio: '5 / 4',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n maxHeight: '700px',\n minHeight: '300px',\n\n ...(!isHeightSmall && {\n minHeight: '400px',\n height: '65vh !important',\n }),\n },\n },\n },\n },\n });\n\n return assetContainer;\n};\n\nconst createHeadline = (\n props: Pick<\n HeroStackedProps,\n 'headline' | 'isHeightSmall' | 'includesAnimation' | 'isThemeDark'\n >,\n) => {\n const { headline, isHeightSmall, includesAnimation, isThemeDark } = props;\n const characterCount = headline?.textContent?.trim().length || 0;\n const isOverwriteHeadline = characterCount < 30;\n\n if (!headline) return null;\n\n const desktopStyles = {\n [`@container (${Styles.token.media.queries.desktop.min})`]: {\n ...(isOverwriteHeadline && {\n fontSize: '80px',\n }),\n },\n };\n\n const animationStyles = {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '100vh',\n animationRangeEnd: '130vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '120vh',\n animationRangeEnd: '150vh',\n }),\n }),\n },\n };\n\n const elementStyles = {\n element: {\n color: Styles.token.color.black,\n maxWidth: '700px',\n margin: '0 auto',\n textTransform: 'uppercase',\n marginTop: `${Styles.token.spacing.sm}`,\n\n ...(isThemeDark && {\n color: Styles.token.color.white,\n }),\n\n ...(includesAnimation && {\n ...(!isThemeDark && {\n ...animationStyles,\n }),\n }),\n\n ...desktopStyles,\n },\n siblingAfter: {\n marginTop: `${Styles.token.spacing.md}`,\n },\n };\n\n return ElementModel.headline.campaignLarge({\n element: headline,\n elementStyles,\n });\n};\n\nconst createText = (\n props: Omit<HeroStackedProps, 'image' | 'video' | 'isWidthLarge'>,\n) => {\n const { topPosition, isThemeDark, includesAnimation, isHeightSmall } = props;\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const textLockupElement = textLockup.large({\n ...props,\n ribbon: props.eyebrow,\n headlineComposite: createHeadline(props),\n textLargest: props.text,\n });\n\n const lock = ElementModel.layout.spaceHorizontalSmall({\n element: document.createElement('div'),\n children: [textLockupElement],\n elementStyles: {\n element: {\n position: 'relative',\n },\n },\n });\n\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__text',\n children: [lock],\n elementStyles: {\n element: {\n padding: `${Styles.token.spacing.lg} 0`,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n position: 'relative',\n zIndex: '999',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n padding: `${Styles.token.spacing['6xl']} 0 ${Styles.token.spacing['3xl']}`,\n },\n\n ...(includesAnimation && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: additionalSpread || 0,\n }),\n },\n }),\n\n [`& *`]: {\n ...(includesAnimation && {\n ...(!isThemeDark && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n }),\n }),\n },\n }),\n }),\n },\n\n [`& .${Styles.element.text.decoration.ribbon.className[0]}`]: {\n animation: 'none !important',\n },\n\n [`& .${Styles.element.text.rich.simpleLargest.className}`]: {\n maxWidth: '860px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n },\n });\n};\n\nexport default (props: HeroStackedProps) => {\n const asset = createAsset(props);\n const hasAsset = asset !== null;\n const shouldAnimateText = hasAsset && props.includesAnimation;\n\n const text = createText({\n ...props,\n includesAnimation: shouldAnimateText,\n });\n\n const children: ElementVisual[] = [text];\n if (hasAsset) {\n children.push(asset);\n }\n\n const composite = ElementModel.createDiv({\n className: 'umd-hero-stacked',\n children,\n elementStyles: {\n element: {\n containerType: 'inline-size',\n\n ...(props.isThemeDark && {\n backgroundColor: Styles.token.color.black,\n }),\n },\n },\n });\n\n composite.styles += keyFrameFadeOver;\n composite.styles += keyFrameFontColor;\n\n return composite;\n};\n"],"names":["Styles","assets.video.observedAutoPlay","assets.image.background","ElementModel.createDiv","ElementModel.layout.spaceHorizontalLarger","headline","Utils.theme.media.withViewTimelineAnimation","ElementModel.headline.campaignLarge","textLockup.large","ElementModel.layout.spaceHorizontalSmall"],"mappings":"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"}
1
+ {"version":3,"file":"stacked.js","sources":["../../../source/composite/hero/stacked.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport * as Utils from 'utilities';\nimport { assets, textLockup } from 'atomic';\nimport { ElementModel } from 'model';\nimport { type ElementVisual } from '../../_types';\nimport { type HeroStackedProps } from './_types';\n\nconst REF_KEY_FRAME_FADE_OVER = 'hero-stacked-fade-over';\nconst REF_KEY_FRAME_FONT_COLOR = 'hero-stacked-font-color';\n\nconst keyFrameFadeOver = `\n @keyframes ${REF_KEY_FRAME_FADE_OVER} {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n`;\n\nconst keyFrameFontColor = `\n @keyframes ${REF_KEY_FRAME_FONT_COLOR} {\n from { color: ${Styles.token.color.black}; }\n to { color: ${Styles.token.color.white}; }\n }\n`;\n\nconst createVideoAsset = (video: HTMLVideoElement) => {\n return assets.video.observedAutoPlay({\n video,\n isScaled: true,\n });\n};\n\nconst createImageAsset = (image: HTMLImageElement) => {\n return assets.image.background({\n element: image,\n isScaled: true,\n isGifAllowed: true,\n isShowCaption: true,\n customStyles: {\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '56vw',\n },\n },\n\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '550px',\n },\n },\n\n [`& .${Styles.element.asset.gif.toggle.className} button`]: {\n zIndex: 99999,\n },\n },\n });\n};\n\nconst createOverlay = (includesAnimation?: boolean) => {\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__overlay',\n elementStyles: {\n element: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n height: '100vh',\n width: '100vw',\n display: 'block',\n backgroundColor: 'rgba(0,0,0,.7)',\n zIndex: 99,\n opacity: 0,\n\n ...(includesAnimation && {\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`@media (prefers-reduced-motion: no-preference)`]: {\n [`@supports (animation-timeline: scroll())`]: {\n animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '30vh',\n animationRangeEnd: '70vh',\n },\n },\n },\n }),\n },\n },\n });\n};\n\nconst createAsset = ({\n image,\n video,\n includesAnimation,\n isWidthLarge = false,\n isHeightSmall = false,\n}: Pick<\n HeroStackedProps,\n 'image' | 'video' | 'includesAnimation' | 'isWidthLarge' | 'isHeightSmall'\n>) => {\n let mediaElement: ElementVisual | null = null;\n\n if (video && video instanceof HTMLVideoElement) {\n mediaElement = createVideoAsset(video);\n } else if (image) {\n mediaElement = createImageAsset(image);\n }\n\n if (!mediaElement) {\n return null;\n }\n\n const assetInteriorElement = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset--interior',\n children: [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n overflow: 'clip',\n position: 'relative',\n height: '100%',\n },\n },\n });\n\n const horizontalLock = ElementModel.layout.spaceHorizontalLarger({\n element: document.createElement('div'),\n children: [assetInteriorElement],\n elementStyles: {\n element: {\n height: '100%',\n width: '100%',\n },\n },\n });\n\n const assetContainer = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset',\n children: isWidthLarge\n ? [horizontalLock]\n : [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n position: 'relative',\n overflow: 'clip',\n display: 'grid',\n\n ['& img, & video']: {\n objectFit: 'cover',\n aspectRatio: '5 / 4',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n maxHeight: '700px',\n minHeight: '300px',\n\n ...(!isHeightSmall && {\n minHeight: '400px',\n height: '65vh !important',\n }),\n },\n },\n },\n },\n });\n\n return assetContainer;\n};\n\nconst createHeadline = (\n props: Pick<\n HeroStackedProps,\n 'headline' | 'isHeightSmall' | 'includesAnimation' | 'isThemeDark'\n >,\n) => {\n const { headline, isHeightSmall, includesAnimation, isThemeDark } = props;\n const characterCount = headline?.textContent?.trim().length || 0;\n const isOverwriteHeadline = characterCount < 30;\n\n if (!headline) return null;\n\n const desktopStyles = {\n [`@container (${Styles.token.media.queries.desktop.min})`]: {\n ...(isOverwriteHeadline && {\n fontSize: '80px',\n }),\n },\n };\n\n const animationStyles = {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '100vh',\n animationRangeEnd: '130vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '120vh',\n animationRangeEnd: '150vh',\n }),\n }),\n },\n };\n\n const elementStyles = {\n element: {\n color: Styles.token.color.black,\n maxWidth: '700px',\n margin: '0 auto',\n textTransform: 'uppercase',\n marginTop: `${Styles.token.spacing.sm}`,\n\n ...(isThemeDark && {\n color: Styles.token.color.white,\n }),\n\n ...(includesAnimation && {\n ...(!isThemeDark && {\n ...animationStyles,\n }),\n }),\n\n ...desktopStyles,\n },\n siblingAfter: {\n marginTop: `${Styles.token.spacing.md}`,\n },\n };\n\n return ElementModel.headline.campaignLarge({\n element: headline,\n elementStyles,\n });\n};\n\nconst createText = (\n props: Omit<HeroStackedProps, 'image' | 'video' | 'isWidthLarge'>,\n) => {\n const { topPosition, isThemeDark, includesAnimation, isHeightSmall } = props;\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const textLockupElement = textLockup.large({\n ...props,\n ribbon: props.eyebrow,\n headlineComposite: createHeadline(props),\n textLargest: props.text,\n });\n\n const lock = ElementModel.layout.spaceHorizontalSmall({\n element: document.createElement('div'),\n children: [textLockupElement],\n elementStyles: {\n element: {\n position: 'relative',\n },\n },\n });\n\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__text',\n children: [lock],\n elementStyles: {\n element: {\n padding: `${Styles.token.spacing.lg} 0`,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n position: 'relative',\n zIndex: '999',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n padding: `${Styles.token.spacing['6xl']} 0 ${Styles.token.spacing['3xl']}`,\n },\n\n ...(includesAnimation && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: additionalSpread || 0,\n }),\n },\n }),\n\n [`& *`]: {\n ...(includesAnimation && {\n ...(!isThemeDark && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n }),\n }),\n },\n }),\n }),\n },\n\n [`& .${Styles.element.text.decoration.ribbon.className[0]}`]: {\n animation: 'none !important',\n },\n\n [`& .${Styles.element.text.rich.simpleLargest.className}`]: {\n maxWidth: '860px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n },\n });\n};\n\nexport default (props: HeroStackedProps) => {\n const asset = createAsset(props);\n const hasAsset = asset !== null;\n const shouldAnimateText = hasAsset && props.includesAnimation;\n\n const text = createText({\n ...props,\n includesAnimation: shouldAnimateText,\n });\n\n const children: ElementVisual[] = [text];\n if (hasAsset) {\n children.push(asset);\n }\n\n const composite = ElementModel.createDiv({\n className: 'umd-hero-stacked',\n children,\n elementStyles: {\n element: {\n containerType: 'inline-size',\n\n ...(props.isThemeDark && {\n backgroundColor: Styles.token.color.black,\n }),\n },\n },\n });\n\n composite.styles += keyFrameFadeOver;\n composite.styles += keyFrameFontColor;\n\n return composite;\n};\n"],"names":["Styles","assets.video.observedAutoPlay","assets.image.background","ElementModel.createDiv","ElementModel.layout.spaceHorizontalLarger","headline","Utils.theme.media.withViewTimelineAnimation","ElementModel.headline.campaignLarge","textLockup.large","ElementModel.layout.spaceHorizontalSmall"],"mappings":"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"}
@@ -77,7 +77,7 @@ const createOverlay = (includesAnimation) => {
77
77
  ...includesAnimation && {
78
78
  [`@media (${Styles.token.media.queries.tablet.min})`]: {
79
79
  [`@media (prefers-reduced-motion: no-preference)`]: {
80
- [`@supports (animation-timeline: view())`]: {
80
+ [`@supports (animation-timeline: scroll())`]: {
81
81
  animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,
82
82
  animationTimeline: "view()",
83
83
  animationRangeStart: "30vh",
@@ -1 +1 @@
1
- {"version":3,"file":"stacked.mjs","sources":["../../../source/composite/hero/stacked.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport * as Utils from 'utilities';\nimport { assets, textLockup } from 'atomic';\nimport { ElementModel } from 'model';\nimport { type ElementVisual } from '../../_types';\nimport { type HeroStackedProps } from './_types';\n\nconst REF_KEY_FRAME_FADE_OVER = 'hero-stacked-fade-over';\nconst REF_KEY_FRAME_FONT_COLOR = 'hero-stacked-font-color';\n\nconst keyFrameFadeOver = `\n @keyframes ${REF_KEY_FRAME_FADE_OVER} {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n`;\n\nconst keyFrameFontColor = `\n @keyframes ${REF_KEY_FRAME_FONT_COLOR} {\n from { color: ${Styles.token.color.black}; }\n to { color: ${Styles.token.color.white}; }\n }\n`;\n\nconst createVideoAsset = (video: HTMLVideoElement) => {\n return assets.video.observedAutoPlay({\n video,\n isScaled: true,\n });\n};\n\nconst createImageAsset = (image: HTMLImageElement) => {\n return assets.image.background({\n element: image,\n isScaled: true,\n isGifAllowed: true,\n isShowCaption: true,\n customStyles: {\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '56vw',\n },\n },\n\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '550px',\n },\n },\n\n [`& .${Styles.element.asset.gif.toggle.className} button`]: {\n zIndex: 99999,\n },\n },\n });\n};\n\nconst createOverlay = (includesAnimation?: boolean) => {\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__overlay',\n elementStyles: {\n element: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n height: '100vh',\n width: '100vw',\n display: 'block',\n backgroundColor: 'rgba(0,0,0,.7)',\n zIndex: 99,\n opacity: 0,\n\n ...(includesAnimation && {\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`@media (prefers-reduced-motion: no-preference)`]: {\n [`@supports (animation-timeline: view())`]: {\n animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '30vh',\n animationRangeEnd: '70vh',\n },\n },\n },\n }),\n },\n },\n });\n};\n\nconst createAsset = ({\n image,\n video,\n includesAnimation,\n isWidthLarge = false,\n isHeightSmall = false,\n}: Pick<\n HeroStackedProps,\n 'image' | 'video' | 'includesAnimation' | 'isWidthLarge' | 'isHeightSmall'\n>) => {\n let mediaElement: ElementVisual | null = null;\n\n if (video && video instanceof HTMLVideoElement) {\n mediaElement = createVideoAsset(video);\n } else if (image) {\n mediaElement = createImageAsset(image);\n }\n\n if (!mediaElement) {\n return null;\n }\n\n const assetInteriorElement = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset--interior',\n children: [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n overflow: 'clip',\n position: 'relative',\n height: '100%',\n },\n },\n });\n\n const horizontalLock = ElementModel.layout.spaceHorizontalLarger({\n element: document.createElement('div'),\n children: [assetInteriorElement],\n elementStyles: {\n element: {\n height: '100%',\n width: '100%',\n },\n },\n });\n\n const assetContainer = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset',\n children: isWidthLarge\n ? [horizontalLock]\n : [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n position: 'relative',\n overflow: 'clip',\n display: 'grid',\n\n ['& img, & video']: {\n objectFit: 'cover',\n aspectRatio: '5 / 4',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n maxHeight: '700px',\n minHeight: '300px',\n\n ...(!isHeightSmall && {\n minHeight: '400px',\n height: '65vh !important',\n }),\n },\n },\n },\n },\n });\n\n return assetContainer;\n};\n\nconst createHeadline = (\n props: Pick<\n HeroStackedProps,\n 'headline' | 'isHeightSmall' | 'includesAnimation' | 'isThemeDark'\n >,\n) => {\n const { headline, isHeightSmall, includesAnimation, isThemeDark } = props;\n const characterCount = headline?.textContent?.trim().length || 0;\n const isOverwriteHeadline = characterCount < 30;\n\n if (!headline) return null;\n\n const desktopStyles = {\n [`@container (${Styles.token.media.queries.desktop.min})`]: {\n ...(isOverwriteHeadline && {\n fontSize: '80px',\n }),\n },\n };\n\n const animationStyles = {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '100vh',\n animationRangeEnd: '130vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '120vh',\n animationRangeEnd: '150vh',\n }),\n }),\n },\n };\n\n const elementStyles = {\n element: {\n color: Styles.token.color.black,\n maxWidth: '700px',\n margin: '0 auto',\n textTransform: 'uppercase',\n marginTop: `${Styles.token.spacing.sm}`,\n\n ...(isThemeDark && {\n color: Styles.token.color.white,\n }),\n\n ...(includesAnimation && {\n ...(!isThemeDark && {\n ...animationStyles,\n }),\n }),\n\n ...desktopStyles,\n },\n siblingAfter: {\n marginTop: `${Styles.token.spacing.md}`,\n },\n };\n\n return ElementModel.headline.campaignLarge({\n element: headline,\n elementStyles,\n });\n};\n\nconst createText = (\n props: Omit<HeroStackedProps, 'image' | 'video' | 'isWidthLarge'>,\n) => {\n const { topPosition, isThemeDark, includesAnimation, isHeightSmall } = props;\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const textLockupElement = textLockup.large({\n ...props,\n ribbon: props.eyebrow,\n headlineComposite: createHeadline(props),\n textLargest: props.text,\n });\n\n const lock = ElementModel.layout.spaceHorizontalSmall({\n element: document.createElement('div'),\n children: [textLockupElement],\n elementStyles: {\n element: {\n position: 'relative',\n },\n },\n });\n\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__text',\n children: [lock],\n elementStyles: {\n element: {\n padding: `${Styles.token.spacing.lg} 0`,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n position: 'relative',\n zIndex: '999',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n padding: `${Styles.token.spacing['6xl']} 0 ${Styles.token.spacing['3xl']}`,\n },\n\n ...(includesAnimation && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: additionalSpread || 0,\n }),\n },\n }),\n\n [`& *`]: {\n ...(includesAnimation && {\n ...(!isThemeDark && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n }),\n }),\n },\n }),\n }),\n },\n\n [`& .${Styles.element.text.decoration.ribbon.className[0]}`]: {\n animation: 'none !important',\n },\n\n [`& .${Styles.element.text.rich.simpleLargest.className}`]: {\n maxWidth: '860px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n },\n });\n};\n\nexport default (props: HeroStackedProps) => {\n const asset = createAsset(props);\n const hasAsset = asset !== null;\n const shouldAnimateText = hasAsset && props.includesAnimation;\n\n const text = createText({\n ...props,\n includesAnimation: shouldAnimateText,\n });\n\n const children: ElementVisual[] = [text];\n if (hasAsset) {\n children.push(asset);\n }\n\n const composite = ElementModel.createDiv({\n className: 'umd-hero-stacked',\n children,\n elementStyles: {\n element: {\n containerType: 'inline-size',\n\n ...(props.isThemeDark && {\n backgroundColor: Styles.token.color.black,\n }),\n },\n },\n });\n\n composite.styles += keyFrameFadeOver;\n composite.styles += keyFrameFontColor;\n\n return composite;\n};\n"],"names":["assets.video.observedAutoPlay","assets.image.background","ElementModel.createDiv","ElementModel.layout.spaceHorizontalLarger","Utils.theme.media.withViewTimelineAnimation","ElementModel.headline.campaignLarge","textLockup.large","ElementModel.layout.spaceHorizontalSmall"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,MAAM,0BAA0B;AAChC,MAAM,2BAA2B;AAEjC,MAAM,mBAAmB;AAAA,eACV,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAMtC,MAAM,oBAAoB;AAAA,eACX,wBAAwB;AAAA,oBACnB,OAAO,MAAM,MAAM,KAAK;AAAA,kBAC1B,OAAO,MAAM,MAAM,KAAK;AAAA;AAAA;AAI1C,MAAM,mBAAmB,CAAC,UAA4B;AACpD,SAAOA,iBAA8B;AAAA,IACnC;AAAA,IACA,UAAU;AAAA,EAAA,CACX;AACH;AAEA,MAAM,mBAAmB,CAAC,UAA4B;AACpD,SAAOC,eAAwB;AAAA,IAC7B,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,IACd,eAAe;AAAA,IACf,cAAc;AAAA,MACZ,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,QACpD,CAAC,UAAU,OAAO,QAAQ,MAAM,IAAI,OAAO,SAAS,GAAG,GAAG;AAAA,UACxD,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAGF,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,QACrD,CAAC,UAAU,OAAO,QAAQ,MAAM,IAAI,OAAO,SAAS,GAAG,GAAG;AAAA,UACxD,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAGF,CAAC,MAAM,OAAO,QAAQ,MAAM,IAAI,OAAO,SAAS,SAAS,GAAG;AAAA,QAC1D,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EACF,CACD;AACH;AAEA,MAAM,gBAAgB,CAAC,sBAAgC;AACrD,SAAOC,UAAuB;AAAA,IAC5B,WAAW;AAAA,IACX,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,SAAS;AAAA,QAET,GAAI,qBAAqB;AAAA,UACvB,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,YACrD,CAAC,gDAAgD,GAAG;AAAA,cAClD,CAAC,wCAAwC,GAAG;AAAA,gBAC1C,WAAW,GAAG,uBAAuB;AAAA,gBACrC,mBAAmB;AAAA,gBACnB,qBAAqB;AAAA,gBACrB,mBAAmB;AAAA,cAAA;AAAA,YACrB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CACD;AACH;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,gBAAgB;AAClB,MAGM;AACJ,MAAI,eAAqC;AAEzC,MAAI,SAAS,iBAAiB,kBAAkB;AAC9C,mBAAe,iBAAiB,KAAK;AAAA,EACvC,WAAW,OAAO;AAChB,mBAAe,iBAAiB,KAAK;AAAA,EACvC;AAEA,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AAEA,QAAM,uBAAuBA,UAAuB;AAAA,IAClD,WAAW;AAAA,IACX,UAAU,CAAC,cAAc,cAAc,iBAAiB,CAAC;AAAA,IACzD,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EACF,CACD;AAED,QAAM,iBAAiBC,sBAA0C;AAAA,IAC/D,SAAS,SAAS,cAAc,KAAK;AAAA,IACrC,UAAU,CAAC,oBAAoB;AAAA,IAC/B,eAAe;AAAA,MACb,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AAED,QAAM,iBAAiBD,UAAuB;AAAA,IAC5C,WAAW;AAAA,IACX,UAAU,eACN,CAAC,cAAc,IACf,CAAC,cAAc,cAAc,iBAAiB,CAAC;AAAA,IACnD,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,QACV,SAAS;AAAA,QAET,CAAC,gBAAgB,GAAG;AAAA,UAClB,WAAW;AAAA,UACX,aAAa;AAAA,UAEb,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,YACzD,WAAW;AAAA,YACX,WAAW;AAAA,YAEX,GAAI,CAAC,iBAAiB;AAAA,cACpB,WAAW;AAAA,cACX,QAAQ;AAAA,YAAA;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CACD;AAED,SAAO;AACT;AAEA,MAAM,iBAAiB,CACrB,UAIG;AACH,QAAM,EAAE,UAAU,eAAe,mBAAmB,gBAAgB;AACpE,QAAM,iBAAiB,UAAU,aAAa,KAAA,EAAO,UAAU;AAC/D,QAAM,sBAAsB,iBAAiB;AAE7C,MAAI,CAAC,SAAU,QAAO;AAEtB,QAAM,gBAAgB;AAAA,IACpB,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,QAAQ,GAAG,GAAG,GAAG;AAAA,MAC1D,GAAI,uBAAuB;AAAA,QACzB,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EACF;AAGF,QAAM,kBAAkB;AAAA,IACtB,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,MACzD,GAAGE,0BAA4C;AAAA,QAC7C,WAAW,GAAG,wBAAwB;AAAA,QACtC,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QAEnB,GAAI,iBAAiB;AAAA,UACnB,qBAAqB;AAAA,UACrB,mBAAmB;AAAA,QAAA;AAAA,MACrB,CACD;AAAA,IAAA;AAAA,EACH;AAGF,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,MACP,OAAO,OAAO,MAAM,MAAM;AAAA,MAC1B,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,WAAW,GAAG,OAAO,MAAM,QAAQ,EAAE;AAAA,MAErC,GAAI,eAAe;AAAA,QACjB,OAAO,OAAO,MAAM,MAAM;AAAA,MAAA;AAAA,MAG5B,GAAI,qBAAqB;AAAA,QACvB,GAAI,CAAC,eAAe;AAAA,UAClB,GAAG;AAAA,QAAA;AAAA,MACL;AAAA,MAGF,GAAG;AAAA,IAAA;AAAA,IAEL,cAAc;AAAA,MACZ,WAAW,GAAG,OAAO,MAAM,QAAQ,EAAE;AAAA,IAAA;AAAA,EACvC;AAGF,SAAOC,cAAoC;AAAA,IACzC,SAAS;AAAA,IACT;AAAA,EAAA,CACD;AACH;AAEA,MAAM,aAAa,CACjB,UACG;AACH,QAAM,EAAE,aAAa,aAAa,mBAAmB,kBAAkB;AACvE,QAAM,mBAAmB,cAAc,SAAS,WAAW,IAAI;AAC/D,QAAM,oBAAoBC,MAAiB;AAAA,IACzC,GAAG;AAAA,IACH,QAAQ,MAAM;AAAA,IACd,mBAAmB,eAAe,KAAK;AAAA,IACvC,aAAa,MAAM;AAAA,EAAA,CACpB;AAED,QAAM,OAAOC,qBAAyC;AAAA,IACpD,SAAS,SAAS,cAAc,KAAK;AAAA,IACrC,UAAU,CAAC,iBAAiB;AAAA,IAC5B,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EACF,CACD;AAED,SAAOL,UAAuB;AAAA,IAC5B,WAAW;AAAA,IACX,UAAU,CAAC,IAAI;AAAA,IACf,eAAe;AAAA,MACb,SAAS;AAAA,QACP,SAAS,GAAG,OAAO,MAAM,QAAQ,EAAE;AAAA,QACnC,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QAER,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,UACzD,SAAS,GAAG,OAAO,MAAM,QAAQ,KAAK,CAAC,MAAM,OAAO,MAAM,QAAQ,KAAK,CAAC;AAAA,QAAA;AAAA,QAG1E,GAAI,qBAAqB;AAAA,UACvB,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,YACzD,GAAGE,0BAA4C;AAAA,cAC7C,UAAU;AAAA,cACV,KAAK,oBAAoB;AAAA,YAAA,CAC1B;AAAA,UAAA;AAAA,QACH;AAAA,QAGF,CAAC,KAAK,GAAG;AAAA,UACP,GAAI,qBAAqB;AAAA,YACvB,GAAI,CAAC,eAAe;AAAA,cAClB,CAAC,eAAe,OAAO,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,gBACzD,GAAGA,0BAA4C;AAAA,kBAC7C,WAAW,GAAG,wBAAwB;AAAA,kBACtC,mBAAmB;AAAA,kBACnB,qBAAqB;AAAA,kBACrB,mBAAmB;AAAA,kBAEnB,GAAI,iBAAiB;AAAA,oBACnB,qBAAqB;AAAA,oBACrB,mBAAmB;AAAA,kBAAA;AAAA,gBACrB,CACD;AAAA,cAAA;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,QAGF,CAAC,MAAM,OAAO,QAAQ,KAAK,WAAW,OAAO,UAAU,CAAC,CAAC,EAAE,GAAG;AAAA,UAC5D,WAAW;AAAA,QAAA;AAAA,QAGb,CAAC,MAAM,OAAO,QAAQ,KAAK,KAAK,cAAc,SAAS,EAAE,GAAG;AAAA,UAC1D,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,aAAa;AAAA,QAAA;AAAA,MACf;AAAA,IACF;AAAA,EACF,CACD;AACH;AAEA,MAAA,UAAe,CAAC,UAA4B;AAC1C,QAAM,QAAQ,YAAY,KAAK;AAC/B,QAAM,WAAW,UAAU;AAC3B,QAAM,oBAAoB,YAAY,MAAM;AAE5C,QAAM,OAAO,WAAW;AAAA,IACtB,GAAG;AAAA,IACH,mBAAmB;AAAA,EAAA,CACpB;AAED,QAAM,WAA4B,CAAC,IAAI;AACvC,MAAI,UAAU;AACZ,aAAS,KAAK,KAAK;AAAA,EACrB;AAEA,QAAM,YAAYF,UAAuB;AAAA,IACvC,WAAW;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,QACP,eAAe;AAAA,QAEf,GAAI,MAAM,eAAe;AAAA,UACvB,iBAAiB,OAAO,MAAM,MAAM;AAAA,QAAA;AAAA,MACtC;AAAA,IACF;AAAA,EACF,CACD;AAED,YAAU,UAAU;AACpB,YAAU,UAAU;AAEpB,SAAO;AACT;"}
1
+ {"version":3,"file":"stacked.mjs","sources":["../../../source/composite/hero/stacked.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport * as Utils from 'utilities';\nimport { assets, textLockup } from 'atomic';\nimport { ElementModel } from 'model';\nimport { type ElementVisual } from '../../_types';\nimport { type HeroStackedProps } from './_types';\n\nconst REF_KEY_FRAME_FADE_OVER = 'hero-stacked-fade-over';\nconst REF_KEY_FRAME_FONT_COLOR = 'hero-stacked-font-color';\n\nconst keyFrameFadeOver = `\n @keyframes ${REF_KEY_FRAME_FADE_OVER} {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n`;\n\nconst keyFrameFontColor = `\n @keyframes ${REF_KEY_FRAME_FONT_COLOR} {\n from { color: ${Styles.token.color.black}; }\n to { color: ${Styles.token.color.white}; }\n }\n`;\n\nconst createVideoAsset = (video: HTMLVideoElement) => {\n return assets.video.observedAutoPlay({\n video,\n isScaled: true,\n });\n};\n\nconst createImageAsset = (image: HTMLImageElement) => {\n return assets.image.background({\n element: image,\n isScaled: true,\n isGifAllowed: true,\n isShowCaption: true,\n customStyles: {\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '56vw',\n },\n },\n\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`&:has(.${Styles.element.asset.gif.toggle.className})`]: {\n minHeight: '550px',\n },\n },\n\n [`& .${Styles.element.asset.gif.toggle.className} button`]: {\n zIndex: 99999,\n },\n },\n });\n};\n\nconst createOverlay = (includesAnimation?: boolean) => {\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__overlay',\n elementStyles: {\n element: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n height: '100vh',\n width: '100vw',\n display: 'block',\n backgroundColor: 'rgba(0,0,0,.7)',\n zIndex: 99,\n opacity: 0,\n\n ...(includesAnimation && {\n [`@media (${Styles.token.media.queries.tablet.min})`]: {\n [`@media (prefers-reduced-motion: no-preference)`]: {\n [`@supports (animation-timeline: scroll())`]: {\n animation: `${REF_KEY_FRAME_FADE_OVER} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '30vh',\n animationRangeEnd: '70vh',\n },\n },\n },\n }),\n },\n },\n });\n};\n\nconst createAsset = ({\n image,\n video,\n includesAnimation,\n isWidthLarge = false,\n isHeightSmall = false,\n}: Pick<\n HeroStackedProps,\n 'image' | 'video' | 'includesAnimation' | 'isWidthLarge' | 'isHeightSmall'\n>) => {\n let mediaElement: ElementVisual | null = null;\n\n if (video && video instanceof HTMLVideoElement) {\n mediaElement = createVideoAsset(video);\n } else if (image) {\n mediaElement = createImageAsset(image);\n }\n\n if (!mediaElement) {\n return null;\n }\n\n const assetInteriorElement = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset--interior',\n children: [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n overflow: 'clip',\n position: 'relative',\n height: '100%',\n },\n },\n });\n\n const horizontalLock = ElementModel.layout.spaceHorizontalLarger({\n element: document.createElement('div'),\n children: [assetInteriorElement],\n elementStyles: {\n element: {\n height: '100%',\n width: '100%',\n },\n },\n });\n\n const assetContainer = ElementModel.createDiv({\n className: 'umd-hero-stacked__asset',\n children: isWidthLarge\n ? [horizontalLock]\n : [mediaElement, createOverlay(includesAnimation)],\n elementStyles: {\n element: {\n position: 'relative',\n overflow: 'clip',\n display: 'grid',\n\n ['& img, & video']: {\n objectFit: 'cover',\n aspectRatio: '5 / 4',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n maxHeight: '700px',\n minHeight: '300px',\n\n ...(!isHeightSmall && {\n minHeight: '400px',\n height: '65vh !important',\n }),\n },\n },\n },\n },\n });\n\n return assetContainer;\n};\n\nconst createHeadline = (\n props: Pick<\n HeroStackedProps,\n 'headline' | 'isHeightSmall' | 'includesAnimation' | 'isThemeDark'\n >,\n) => {\n const { headline, isHeightSmall, includesAnimation, isThemeDark } = props;\n const characterCount = headline?.textContent?.trim().length || 0;\n const isOverwriteHeadline = characterCount < 30;\n\n if (!headline) return null;\n\n const desktopStyles = {\n [`@container (${Styles.token.media.queries.desktop.min})`]: {\n ...(isOverwriteHeadline && {\n fontSize: '80px',\n }),\n },\n };\n\n const animationStyles = {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '100vh',\n animationRangeEnd: '130vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '120vh',\n animationRangeEnd: '150vh',\n }),\n }),\n },\n };\n\n const elementStyles = {\n element: {\n color: Styles.token.color.black,\n maxWidth: '700px',\n margin: '0 auto',\n textTransform: 'uppercase',\n marginTop: `${Styles.token.spacing.sm}`,\n\n ...(isThemeDark && {\n color: Styles.token.color.white,\n }),\n\n ...(includesAnimation && {\n ...(!isThemeDark && {\n ...animationStyles,\n }),\n }),\n\n ...desktopStyles,\n },\n siblingAfter: {\n marginTop: `${Styles.token.spacing.md}`,\n },\n };\n\n return ElementModel.headline.campaignLarge({\n element: headline,\n elementStyles,\n });\n};\n\nconst createText = (\n props: Omit<HeroStackedProps, 'image' | 'video' | 'isWidthLarge'>,\n) => {\n const { topPosition, isThemeDark, includesAnimation, isHeightSmall } = props;\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const textLockupElement = textLockup.large({\n ...props,\n ribbon: props.eyebrow,\n headlineComposite: createHeadline(props),\n textLargest: props.text,\n });\n\n const lock = ElementModel.layout.spaceHorizontalSmall({\n element: document.createElement('div'),\n children: [textLockupElement],\n elementStyles: {\n element: {\n position: 'relative',\n },\n },\n });\n\n return ElementModel.createDiv({\n className: 'umd-hero-stacked__text',\n children: [lock],\n elementStyles: {\n element: {\n padding: `${Styles.token.spacing.lg} 0`,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n position: 'relative',\n zIndex: '999',\n\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n padding: `${Styles.token.spacing['6xl']} 0 ${Styles.token.spacing['3xl']}`,\n },\n\n ...(includesAnimation && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: additionalSpread || 0,\n }),\n },\n }),\n\n [`& *`]: {\n ...(includesAnimation && {\n ...(!isThemeDark && {\n [`@container (${Styles.token.media.queries.tablet.min})`]: {\n ...Utils.theme.media.withViewTimelineAnimation({\n animation: `${REF_KEY_FRAME_FONT_COLOR} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n\n ...(isHeightSmall && {\n animationRangeStart: '90vh',\n animationRangeEnd: '110vh',\n }),\n }),\n },\n }),\n }),\n },\n\n [`& .${Styles.element.text.decoration.ribbon.className[0]}`]: {\n animation: 'none !important',\n },\n\n [`& .${Styles.element.text.rich.simpleLargest.className}`]: {\n maxWidth: '860px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n },\n });\n};\n\nexport default (props: HeroStackedProps) => {\n const asset = createAsset(props);\n const hasAsset = asset !== null;\n const shouldAnimateText = hasAsset && props.includesAnimation;\n\n const text = createText({\n ...props,\n includesAnimation: shouldAnimateText,\n });\n\n const children: ElementVisual[] = [text];\n if (hasAsset) {\n children.push(asset);\n }\n\n const composite = ElementModel.createDiv({\n className: 'umd-hero-stacked',\n children,\n elementStyles: {\n element: {\n containerType: 'inline-size',\n\n ...(props.isThemeDark && {\n backgroundColor: Styles.token.color.black,\n }),\n },\n },\n });\n\n composite.styles += keyFrameFadeOver;\n composite.styles += keyFrameFontColor;\n\n return composite;\n};\n"],"names":["assets.video.observedAutoPlay","assets.image.background","ElementModel.createDiv","ElementModel.layout.spaceHorizontalLarger","Utils.theme.media.withViewTimelineAnimation","ElementModel.headline.campaignLarge","textLockup.large","ElementModel.layout.spaceHorizontalSmall"],"mappings":"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"}
@@ -40,7 +40,7 @@ const TextAnimation = `
40
40
  }
41
41
 
42
42
  @media (prefers-reduced-motion: no-preference) {
43
- @supports (animation-timeline: view()) {
43
+ @supports (animation-timeline: scroll()) {
44
44
  .${ELEMENT_EXPAND_TEXT_ANIMATION} {
45
45
  position: absolute;
46
46
  top: 0;
@@ -52,7 +52,7 @@ const TextAnimation = `
52
52
 
53
53
  @media (${Styles.token.media.queries.tablet.min}) {
54
54
  @media (prefers-reduced-motion: no-preference) {
55
- @supports (animation-timeline: view()) {
55
+ @supports (animation-timeline: scroll()) {
56
56
  .${ELEMENT_EXPAND_TEXT_ANIMATION} {
57
57
  transform: translateY(100vh);
58
58
  }
@@ -77,7 +77,7 @@ const ImageOverlayContainer = `
77
77
  }
78
78
 
79
79
  @media (prefers-reduced-motion: no-preference) {
80
- @supports (animation-timeline: view()) {
80
+ @supports (animation-timeline: scroll()) {
81
81
  .${ELEMENT_EXPAND_IMAGE_OVERLAY} {
82
82
  opacity: 1;
83
83
  animation: img-overlay forwards;
@@ -99,7 +99,7 @@ const ImageSizeContainer = `
99
99
  }
100
100
 
101
101
  @media (prefers-reduced-motion: no-preference) {
102
- @supports (animation-timeline: view()) {
102
+ @supports (animation-timeline: scroll()) {
103
103
  .${ELEMENT_EXPAND_IMAGE_SIZE} {
104
104
  width: ${Styles.token.spacing.maxWidth.smallest};
105
105
  height: 70vh;
@@ -111,7 +111,7 @@ const ImageSizeContainer = `
111
111
  }
112
112
  }
113
113
 
114
- @supports not (animation-timeline: view()) {
114
+ @supports not (animation-timeline: scroll()) {
115
115
  .${ELEMENT_EXPAND_IMAGE_SIZE} {
116
116
  height: 100%;
117
117
  }
@@ -130,7 +130,7 @@ const ImagePosition = `
130
130
  }
131
131
 
132
132
  @media (prefers-reduced-motion: no-preference) {
133
- @supports (animation-timeline: view()) {
133
+ @supports (animation-timeline: scroll()) {
134
134
  .${ELEMENT_EXPAND_IMAGE_POSITION} {
135
135
  display: flex;
136
136
  justify-content: center;
@@ -144,7 +144,7 @@ const ImagePosition = `
144
144
  }
145
145
  }
146
146
 
147
- @supports not (animation-timeline: view()) {
147
+ @supports not (animation-timeline: scroll()) {
148
148
  .${ELEMENT_EXPAND_IMAGE_POSITION} {
149
149
  height: 100%;
150
150
  }
@@ -166,7 +166,7 @@ const ImageContainer = `
166
166
  }
167
167
 
168
168
  @media (prefers-reduced-motion: no-preference) {
169
- @supports (animation-timeline: view()) {
169
+ @supports (animation-timeline: scroll()) {
170
170
  .${ELEMENT_EXPAND_IMAGE_CONTAINER} {
171
171
  position: relative;
172
172
  }
@@ -187,7 +187,7 @@ const STYLES_LAYOUT_IMAGE_EXPAND = `
187
187
  }
188
188
 
189
189
  @media (prefers-reduced-motion: no-preference) {
190
- @supports (animation-timeline: view()) {
190
+ @supports (animation-timeline: scroll()) {
191
191
  .${ELEMENT_EXPLAND_DECLARATION} {
192
192
  height: 180vh;
193
193
  }
@@ -196,7 +196,7 @@ const STYLES_LAYOUT_IMAGE_EXPAND = `
196
196
 
197
197
  @media (${Styles.token.media.queries.tablet.min}) {
198
198
  @media (prefers-reduced-motion: no-preference) {
199
- @supports (animation-timeline: view()) {
199
+ @supports (animation-timeline: scroll()) {
200
200
  .${ELEMENT_EXPLAND_DECLARATION} {
201
201
  height: 200vh;
202
202
  }