@rtstic.dev/pulse 0.0.14 → 0.0.18

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.
@@ -0,0 +1 @@
1
+ "use strict";(()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll('[pulse-faq-element="wrapper"]').forEach(e=>{let n=e.querySelector('[pulse-faq-element="toggle"]'),o=e.querySelector('[pulse-faq-element="content"]'),i=e.querySelector('[pulse-faq-element="content-inner"]');if(!n||!o||!i){console.warn("Required FAQ elements not found in wrapper");return}let l=e.closest("[pulse-faq-group]"),s=l?.getAttribute("pulse-faq-group")||null,r=l?.getAttribute("pulse-faq-type")||"one-at-a-time";e.getAttribute("pulse-faq-initialopen")==="true"?(gsap.set(o,{height:"auto",overflow:"hidden"}),gsap.set(i,{opacity:1}),n.setAttribute("data-state","open"),l&&c(l),q(e),g(e,s),d(e,s),p(e,s)):(gsap.set(o,{height:0}),gsap.set(i,{opacity:0}),n.setAttribute("data-state","closed"));let u=!1;n.addEventListener("click",()=>{if(u)return;u=!0;let a=n.getAttribute("data-state")==="open";if(r==="one-at-a-time"&&l){let h=l.querySelectorAll('[pulse-faq-element="wrapper"] [data-state="open"]');if(a&&h.length===1){u=!1;return}}a?m(e,()=>{u=!1}):(r==="one-at-a-time"&&l&&L(l),E(e,s,()=>{u=!1}))})}),f()});window.addEventListener("resize",()=>{f()});function f(){window.innerWidth<992||(document.querySelectorAll("[pulse-faq-image-target]").forEach(t=>{let e=t.parentElement;!e||e.getAttribute("ratio-height")!=="true"||(e.style.height="auto",requestAnimationFrame(()=>{e.style.height=`${e.offsetHeight}px`}))}),document.querySelectorAll('[pulse-faq-tabgroup][ratio-height="true"]').forEach(t=>{t.style.height="auto",requestAnimationFrame(()=>{t.style.height=`${t.offsetHeight}px`})}))}function E(t,e,n){let o=t.querySelector('[pulse-faq-element="toggle"]'),i=t.querySelector('[pulse-faq-element="content"]'),l=t.querySelector('[pulse-faq-element="content-inner"]');if(!o||!i||!l)return;i.gsapAnimation&&i.gsapAnimation.kill();let s=gsap.timeline({onComplete:()=>{n&&n()}});gsap.set(i,{height:"auto",visibility:"hidden",opacity:0});let r=i.offsetHeight;gsap.set(i,{height:0,visibility:"visible",opacity:1}),s.to(i,{height:r,duration:.5,ease:"power3.inOut",clearProps:"height",onComplete:()=>{i.style.height="auto"}}),s.to(l,{opacity:1,duration:.4,ease:"power2.out"},"-=0.35"),i.gsapAnimation=s,o.setAttribute("data-state","open");let u=o.querySelector('[pulse-faq-element="chevron"]');u&&gsap.to(u,{rotation:180,duration:.4,ease:"back.out(1.7)"});let a=t.closest("[pulse-faq-group]");a&&c(a),q(t),g(t,e),d(t,e),p(t,e)}function m(t,e){let n=t.querySelector('[pulse-faq-element="toggle"]'),o=t.querySelector('[pulse-faq-element="content"]'),i=t.querySelector('[pulse-faq-element="content-inner"]');if(!n||!o||!i)return;o.gsapAnimation&&o.gsapAnimation.kill();let l=gsap.timeline({onComplete:()=>{e&&e()}});l.to(i,{opacity:0,duration:.3,ease:"power2.in"}),l.to(o,{height:0,duration:.4,ease:"power3.inOut"},"-=0.25"),o.gsapAnimation=l,n.setAttribute("data-state","closed");let s=n.querySelector('[pulse-faq-element="chevron"]');s&&gsap.to(s,{rotation:0,duration:.4,ease:"back.out(1.7)"});let r=t.closest("[pulse-faq-group]");r&&c(r)}function L(t){t.querySelectorAll('[pulse-faq-element="wrapper"] [data-state="open"]').forEach(n=>{let o=n.closest('[pulse-faq-element="wrapper"]');o&&m(o)})}function g(t,e){if(!e)return;let n=document.querySelector(`[pulse-faq-image-target="${e}"]`);if(!n)return;let o=t.querySelector("[pulse-faq-image-source]");if(!o)return;let i=o.getAttribute("src");i&&n.setAttribute("src",i),n.setAttribute("srcset","")}function d(t,e){if(!e)return;let n=document.querySelector(`[pulse-faq-text-target="${e}"]`);if(!n)return;let o=t.querySelector("[pulse-faq-text-source]");o&&(n.textContent=o.textContent)}function p(t,e){if(!e)return;let n=document.querySelector(`[pulse-faq-button-text-target="${e}"]`),o=document.querySelector(`[pulse-faq-button-link-target="${e}"]`),i=t.querySelector("[pulse-faq-link-source]");if(i&&(n&&(n.textContent=i.textContent),o))for(let l=0;l<i.attributes.length;l++){let s=i.attributes[l];o.setAttribute(s.name,s.value)}}function c(t){t.querySelectorAll('[pulse-faq-element="dot"]').forEach(e=>gsap.set(e,{opacity:0,duration:.4}))}function q(t){let e=t.querySelector('[pulse-faq-element="dot"]');e&&gsap.set(e,{opacity:1,duration:.4})}})();
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/global/accordions.ts"],
4
+ "sourcesContent": ["// Type definitions\ninterface GSAPElement extends HTMLElement {\n gsapAnimation?: { kill(): void };\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const faqWrappers: NodeListOf<HTMLElement> = document.querySelectorAll(\n '[pulse-faq-element=\"wrapper\"]'\n );\n\n faqWrappers.forEach((wrapper: HTMLElement): void => {\n const toggle: HTMLElement | null = wrapper.querySelector(\n '[pulse-faq-element=\"toggle\"]'\n );\n const content: GSAPElement | null = wrapper.querySelector(\n '[pulse-faq-element=\"content\"]'\n );\n const contentInner: HTMLElement | null = wrapper.querySelector(\n '[pulse-faq-element=\"content-inner\"]'\n );\n\n if (!toggle || !content || !contentInner) {\n console.warn(\"Required FAQ elements not found in wrapper\");\n return;\n }\n\n const groupContainer: HTMLElement | null =\n wrapper.closest(\"[pulse-faq-group]\");\n const groupName: string | null =\n groupContainer?.getAttribute(\"pulse-faq-group\") || null;\n\n const faqType: string =\n groupContainer?.getAttribute(\"pulse-faq-type\") || \"one-at-a-time\";\n\n if (wrapper.getAttribute(\"pulse-faq-initialopen\") === \"true\") {\n gsap.set(content, { height: \"auto\", overflow: \"hidden\" });\n gsap.set(contentInner, { opacity: 1 });\n toggle.setAttribute(\"data-state\", \"open\");\n\n if (groupContainer) hideDots(groupContainer);\n showDot(wrapper);\n\n updateFaqGroupImage(wrapper, groupName);\n updateFaqGroupText(wrapper, groupName);\n updateFaqGroupButton(wrapper, groupName);\n } else {\n gsap.set(content, { height: 0 });\n gsap.set(contentInner, { opacity: 0 });\n toggle.setAttribute(\"data-state\", \"closed\");\n }\n\n let isAnimating = false;\n toggle.addEventListener(\"click\", (): void => {\n if (isAnimating) return;\n isAnimating = true;\n\n const isOpen = toggle.getAttribute(\"data-state\") === \"open\";\n\n if (faqType === \"one-at-a-time\" && groupContainer) {\n const openFAQs = groupContainer.querySelectorAll(\n '[pulse-faq-element=\"wrapper\"] [data-state=\"open\"]'\n );\n if (isOpen && openFAQs.length === 1) {\n isAnimating = false;\n return;\n }\n }\n\n if (isOpen) {\n closeAccordion(wrapper, (): void => {\n isAnimating = false;\n });\n } else {\n if (faqType === \"one-at-a-time\" && groupContainer) {\n closeOtherAccordions(groupContainer);\n }\n openAccordion(wrapper, groupName, (): void => {\n isAnimating = false;\n });\n }\n });\n });\n\n handleRatioHeights();\n});\n\n// \u2705 Wrap so callback is guaranteed void\nwindow.addEventListener(\"resize\", (): void => {\n handleRatioHeights();\n});\n\n// Function to handle ratio heights for FAQ image targets and tabgroups\nfunction handleRatioHeights(): void {\n if (window.innerWidth < 992) return;\n\n document\n .querySelectorAll<HTMLElement>(\"[pulse-faq-image-target]\")\n .forEach((imageTarget: HTMLElement): void => {\n const wrapper: HTMLElement | null = imageTarget.parentElement;\n if (!wrapper) return;\n\n const ratioHeight: string | null = wrapper.getAttribute(\"ratio-height\");\n if (ratioHeight !== \"true\") return;\n\n wrapper.style.height = \"auto\";\n requestAnimationFrame((): void => {\n wrapper.style.height = `${wrapper.offsetHeight}px`;\n });\n });\n\n document\n .querySelectorAll<HTMLElement>('[pulse-faq-tabgroup][ratio-height=\"true\"]')\n .forEach((tabGroup: HTMLElement): void => {\n tabGroup.style.height = \"auto\";\n requestAnimationFrame((): void => {\n tabGroup.style.height = `${tabGroup.offsetHeight}px`;\n });\n });\n}\n\nfunction openAccordion(\n wrapper: HTMLElement,\n groupName: string | null,\n callback?: () => void\n): void {\n const toggle = wrapper.querySelector<HTMLElement>(\n '[pulse-faq-element=\"toggle\"]'\n );\n const content = wrapper.querySelector<GSAPElement>(\n '[pulse-faq-element=\"content\"]'\n );\n const contentInner = wrapper.querySelector<HTMLElement>(\n '[pulse-faq-element=\"content-inner\"]'\n );\n\n if (!toggle || !content || !contentInner) return;\n\n if (content.gsapAnimation) content.gsapAnimation.kill();\n\n const timeline = gsap.timeline({\n onComplete: (): void => {\n if (callback) callback();\n },\n });\n\n gsap.set(content, { height: \"auto\", visibility: \"hidden\", opacity: 0 });\n const height = content.offsetHeight;\n gsap.set(content, { height: 0, visibility: \"visible\", opacity: 1 });\n\n timeline.to(content, {\n height,\n duration: 0.5,\n ease: \"power3.inOut\",\n clearProps: \"height\",\n onComplete: (): void => {\n content.style.height = \"auto\";\n },\n });\n\n timeline.to(\n contentInner,\n { opacity: 1, duration: 0.4, ease: \"power2.out\" },\n \"-=0.35\"\n );\n\n content.gsapAnimation = timeline;\n toggle.setAttribute(\"data-state\", \"open\");\n\n const icon = toggle.querySelector<HTMLElement>(\n '[pulse-faq-element=\"chevron\"]'\n );\n if (icon)\n gsap.to(icon, { rotation: 180, duration: 0.4, ease: \"back.out(1.7)\" });\n\n const groupContainer = wrapper.closest(\"[pulse-faq-group]\");\n if (groupContainer) hideDots(groupContainer);\n showDot(wrapper);\n\n updateFaqGroupImage(wrapper, groupName);\n updateFaqGroupText(wrapper, groupName);\n updateFaqGroupButton(wrapper, groupName);\n}\n\n\nfunction closeAccordion(wrapper: HTMLElement, callback?: () => void): void {\n const toggle = wrapper.querySelector<HTMLElement>(\n '[pulse-faq-element=\"toggle\"]'\n );\n const content = wrapper.querySelector<GSAPElement>(\n '[pulse-faq-element=\"content\"]'\n );\n const contentInner = wrapper.querySelector<HTMLElement>(\n '[pulse-faq-element=\"content-inner\"]'\n );\n\n if (!toggle || !content || !contentInner) return;\n\n if (content.gsapAnimation) content.gsapAnimation.kill();\n\n const timeline = gsap.timeline({\n onComplete: (): void => {\n if (callback) callback();\n },\n });\n\n timeline.to(contentInner, { opacity: 0, duration: 0.3, ease: \"power2.in\" });\n timeline.to(\n content,\n { height: 0, duration: 0.4, ease: \"power3.inOut\" },\n \"-=0.25\"\n );\n\n content.gsapAnimation = timeline;\n toggle.setAttribute(\"data-state\", \"closed\");\n\n const icon = toggle.querySelector<HTMLElement>(\n '[pulse-faq-element=\"chevron\"]'\n );\n if (icon)\n gsap.to(icon, { rotation: 0, duration: 0.4, ease: \"back.out(1.7)\" });\n\n const groupContainer = wrapper.closest(\"[pulse-faq-group]\");\n if (groupContainer) hideDots(groupContainer);\n}\n\n\nfunction closeOtherAccordions(groupContainer: HTMLElement): void {\n const openFAQs: NodeListOf<HTMLElement> = groupContainer.querySelectorAll(\n '[pulse-faq-element=\"wrapper\"] [data-state=\"open\"]'\n );\n\n openFAQs.forEach((openToggle: HTMLElement): void => {\n const wrapper: HTMLElement | null = openToggle.closest(\n '[pulse-faq-element=\"wrapper\"]'\n );\n if (wrapper) closeAccordion(wrapper);\n });\n}\n\nfunction updateFaqGroupImage(\n wrapper: HTMLElement,\n groupName: string | null\n): void {\n if (!groupName) return;\n\n const groupImage: HTMLImageElement | null = document.querySelector(\n `[pulse-faq-image-target=\"${groupName}\"]`\n );\n if (!groupImage) return;\n\n const imageSource: HTMLImageElement | null = wrapper.querySelector(\n \"[pulse-faq-image-source]\"\n );\n if (!imageSource) return;\n\n const newSrc: string | null = imageSource.getAttribute(\"src\");\n if (newSrc) groupImage.setAttribute(\"src\", newSrc);\n\n // srcset intentionally removed (matching your previous behavior)\n groupImage.setAttribute(\"srcset\", \"\");\n}\n\nfunction updateFaqGroupText(\n wrapper: HTMLElement,\n groupName: string | null\n): void {\n if (!groupName) return;\n\n const groupText: HTMLElement | null = document.querySelector(\n `[pulse-faq-text-target=\"${groupName}\"]`\n );\n if (!groupText) return;\n\n const textSource: HTMLElement | null = wrapper.querySelector(\n \"[pulse-faq-text-source]\"\n );\n if (!textSource) return;\n\n groupText.textContent = textSource.textContent;\n}\n\nfunction updateFaqGroupButton(\n wrapper: HTMLElement,\n groupName: string | null\n): void {\n if (!groupName) return;\n\n const buttonTextTarget: HTMLElement | null = document.querySelector(\n `[pulse-faq-button-text-target=\"${groupName}\"]`\n );\n const buttonLinkTarget: HTMLElement | null = document.querySelector(\n `[pulse-faq-button-link-target=\"${groupName}\"]`\n );\n\n const linkSource: HTMLAnchorElement | null = wrapper.querySelector(\n \"[pulse-faq-link-source]\"\n );\n if (!linkSource) return;\n\n if (buttonTextTarget) buttonTextTarget.textContent = linkSource.textContent;\n\n if (buttonLinkTarget) {\n for (let i = 0; i < linkSource.attributes.length; i++) {\n const attr = linkSource.attributes[i];\n buttonLinkTarget.setAttribute(attr.name, attr.value);\n }\n }\n}\n\nfunction hideDots(scope: ParentNode): void {\n scope\n .querySelectorAll<HTMLElement>('[pulse-faq-element=\"dot\"]')\n .forEach((dot) => gsap.set(dot, { opacity: 0, duration: 0.4 }));\n}\n\nfunction showDot(wrapper: HTMLElement): void {\n const dot = wrapper.querySelector<HTMLElement>('[pulse-faq-element=\"dot\"]');\n if (dot) gsap.set(dot, { opacity: 1, duration: 0.4 });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ [ai-gradient="1"]{background:linear-gradient(90deg,#ff84d2 2%,#ffa49d 46%,#ff5c2a 88%)}[ai-gradient="2"]{background:linear-gradient(90deg,#fd4fad 17%,#ff5200)}[style-bg-color=foreground]{background-color:var(--background-colors--foreground)}[style-bg-color=background]{background-color:var(--background-colors--background)}[style-type=h1]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h1);line-height:var(--_line-height---line-height-heading-tags--h1);font-weight:var(--_font-weight---font-weight-heading-tags--h1);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h1);margin:0}[style-type=h2]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h2);line-height:var(--_line-height---line-height-heading-tags--h2);font-weight:var(--_font-weight---font-weight-heading-tags--h2);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h2);margin:0}[style-type=h3]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h3);line-height:var(--_line-height---line-height-heading-tags--h3);font-weight:var(--_font-weight---font-weight-heading-tags--h3);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h3);margin:0}[style-type=h4]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h4);line-height:var(--_line-height---line-height-heading-tags--h4);font-weight:var(--_font-weight---font-weight-heading-tags--h4);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h4);margin:0}[style-type=h5]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h5);line-height:var(--_line-height---line-height-heading-tags--h5);font-weight:var(--_font-weight---font-weight-heading-tags--h5);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h5);margin:0}[style-type=h6]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h6);line-height:var(--_line-height---line-height-heading-tags--h6);font-weight:var(--_font-weight---font-weight-heading-tags--h6);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h6);margin:0}[style-type=title-l]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--l);line-height:var(--_line-height---line-height-title--l);font-weight:var(--_font-weight---font-weight-title--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=title-m]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--m);line-height:var(--_line-height---line-height-title--m);font-weight:var(--_font-weight---font-weight-title--m);letter-spacing:var(--_letter-spacing---letter-spacing-title--m)}[style-type=title-s]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--s);line-height:var(--_line-height---line-height-title--s);font-weight:var(--_font-weight---font-weight-title--s);letter-spacing:var(--_letter-spacing---letter-spacing-title--s)}[style-type=body-l]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--l);line-height:var(--_line-height---line-height-body--l);font-weight:var(--_font-weight---font-weight-body--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=body-m]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--m);line-height:var(--_line-height---line-height-body--m);font-weight:var(--_font-weight---font-weight-body--m);letter-spacing:var(--_letter-spacing---letter-spacing-body--m)}[style-type=body-s]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--s);line-height:var(--_line-height---line-height-body--s);font-weight:var(--_font-weight---font-weight-body--s);letter-spacing:var(--_letter-spacing---letter-spacing-body--s)}[style-text-align=center]{text-align:center}[style-text-align=left]{text-align:left}[style-text-align=right]{text-align:right}[style-text-color=title]{color:var(--text-colors--title)}[style-text-color=subtext]{color:var(--text-colors--subtext)}[style-text-color=orange]{color:var(--text-colors--orange)}[style-button-color=orange]{border-color:var(--orange--orange40);background-color:var(--orange--orange40);color:var(--text-colors--title-inverse)}[style-button-color=white]{border:1px solid var(--white);background-color:var(--white);color:var(--text-colors--title-inverse)}[style-button-color=transparent]{background-color:var(--transparent);color:var(--white);border:1px solid var(--white)}[style-padding-y=small]{padding-top:var(--_spaces---padding--small);padding-bottom:var(--_spaces---padding--small)}[style-padding-y=large]{padding-top:var(--_spaces---padding--large);padding-bottom:var(--_spaces---padding--largea)}[style-flex=center]{display:flex;justify-content:center;align-items:center}[style-flex=left]{flex-flow:column;align-items:flex-start;display:flex}[style-flex=right]{flex-flow:column;align-items:flex-end;display:flex}[style-flex=center]{flex-flow:column;align-items:center;justify-content:space-between;display:flex}
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/global/styles.css"],
4
+ "sourcesContent": ["/* Gradient Backgrounds */\n[ai-gradient=\"1\"]{\nbackground: linear-gradient(\n 90deg,\n #FF84D2 2%,\n #FFA49D 46%,\n #FF5C2A 88%\n);\n}\n[ai-gradient=\"2\"]{\nbackground: linear-gradient(\n 90deg,\n #FD4FAD 17%,\n #FF5200 100%\n);\n}\n/* Solid Backgrounds */\n[style-bg-color=\"foreground\"]{\n background-color: var(--background-colors--foreground);\n}\n[style-bg-color=\"background\"]{\n background-color: var(--background-colors--background);\n}\n\n/*Heading Styles */\n[style-type=\"h1\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h1);\n line-height: var(--_line-height---line-height-heading-tags--h1);\n font-weight: var(--_font-weight---font-weight-heading-tags--h1);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h1);\n margin: 0;\n}\n[style-type=\"h2\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h2);\n line-height: var(--_line-height---line-height-heading-tags--h2);\n font-weight: var(--_font-weight---font-weight-heading-tags--h2);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h2);\n margin: 0;\n}\n[style-type=\"h3\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h3);\n line-height: var(--_line-height---line-height-heading-tags--h3);\n font-weight: var(--_font-weight---font-weight-heading-tags--h3);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h3);\n margin: 0;\n}\n[style-type=\"h4\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h4);\n line-height: var(--_line-height---line-height-heading-tags--h4);\n font-weight: var(--_font-weight---font-weight-heading-tags--h4);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h4);\n margin: 0;\n}\n[style-type=\"h5\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h5);\n line-height: var(--_line-height---line-height-heading-tags--h5);\n font-weight: var(--_font-weight---font-weight-heading-tags--h5);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h5);\n margin: 0;\n}\n[style-type=\"h6\"]{\n font-family: var(--_font-family---heading);\n font-size: var(--_text-size---heading--h6);\n line-height: var(--_line-height---line-height-heading-tags--h6);\n font-weight: var(--_font-weight---font-weight-heading-tags--h6);\n letter-spacing: var(--_letter-spacing---letter-spacing-heading-tags--h6);\n margin: 0;\n}\n\n/* Title Styles */\n[style-type=\"title-l\"]{\n font-family: var(--_font-family---title);\n font-size: var(--_text-size---title--l);\n line-height: var(--_line-height---line-height-title--l);\n font-weight: var(--_font-weight---font-weight-title--l);\n letter-spacing: var(--_letter-spacing---letter-spacing-body--l);\n}\n[style-type=\"title-m\"]{\n font-family: var(--_font-family---title);\n font-size: var(--_text-size---title--m);\n line-height: var(--_line-height---line-height-title--m);\n font-weight: var(--_font-weight---font-weight-title--m);\n letter-spacing: var(--_letter-spacing---letter-spacing-title--m);\n}\n[style-type=\"title-s\"]{\n font-family: var(--_font-family---title);\n font-size: var(--_text-size---title--s);\n line-height: var(--_line-height---line-height-title--s);\n font-weight: var(--_font-weight---font-weight-title--s);\n letter-spacing: var(--_letter-spacing---letter-spacing-title--s);\n}\n\n/* Body Styles */\n[style-type=\"body-l\"]{\n font-family: var(--_font-family---body);\n font-size: var(--_text-size---body--l);\n line-height: var(--_line-height---line-height-body--l);\n font-weight: var(--_font-weight---font-weight-body--l);\n letter-spacing: var(--_letter-spacing---letter-spacing-body--l);\n}\n[style-type=\"body-m\"]{\n font-family: var(--_font-family---body);\n font-size: var(--_text-size---body--m);\n line-height: var(--_line-height---line-height-body--m);\n font-weight: var(--_font-weight---font-weight-body--m);\n letter-spacing: var(--_letter-spacing---letter-spacing-body--m);\n}\n[style-type=\"body-s\"]{\n font-family: var(--_font-family---body);\n font-size: var(--_text-size---body--s);\n line-height: var(--_line-height---line-height-body--s);\n font-weight: var(--_font-weight---font-weight-body--s);\n letter-spacing: var(--_letter-spacing---letter-spacing-body--s);\n}\n\n/* Alignments */\n[style-text-align=\"center\"]{\n text-align: center;\n}\n[style-text-align=\"left\"]{\n text-align: left;\n}\n[style-text-align=\"right\"]{\n text-align: right;\n}\n\n/* Text Colors */\n[style-text-color=\"title\"]{\n color : var(--text-colors--title)\n}\n[style-text-color=\"subtext\"]{\n color : var(--text-colors--subtext)\n}\n[style-text-color=\"subtext\"]{\n color : var(--text-colors--subtext)\n}\n[style-text-color=\"orange\"]{\n color : var(--text-colors--orange)\n}\n\n/* Button Styles */\n[style-button-color=\"orange\"]{\n border-color: var(--orange--orange40);\n background-color: var(--orange--orange40);\n color: var(--text-colors--title-inverse);\n}\n[style-button-color=\"white\"]{\n border: 1px solid var(--white);\n background-color: var(--white);\n color: var(--text-colors--title-inverse);\n}\n\n[style-button-color=\"transparent\"]{\n background-color: var(--transparent);\n color: var(--white);\n border: 1px solid var(--white);\n}\n\n[style-padding-y=\"small\"]{\n padding-top: var(--_spaces---padding--small);\n padding-bottom: var(--_spaces---padding--small);\n}\n[style-padding-y=\"large\"]{\n padding-top: var(--_spaces---padding--large);\n padding-bottom: var(--_spaces---padding--largea);\n}\n\n[style-flex=\"center\"]{\n display: flex;\n justify-content: center;\n align-items: center;\n}\n[style-flex=\"left\"]{\n flex-flow: column;\n align-items: flex-start;\n display: flex;\n}\n[style-flex=\"right\"]{\n flex-flow: column;\n align-items: flex-end;\n display: flex;\n}\n[style-flex=\"center\"]{\n flex-flow: column;\n align-items: center;\n justify-content: space-between;\n display: flex;\n}"],
5
+ "mappings": ";AACA,CAAC;AACD;AAAA,IAAY;AAAA,MACR,KADQ;AAAA,MAER,QAAQ,EAFA;AAAA,MAGR,QAAQ,GAHA;AAAA,MAIR,QAAQ;AAEZ;AACA,CAAC;AACD;AAAA,IAAY;AAAA,MACR,KADQ;AAAA,MAER,QAAQ,GAFA;AAAA,MAGR,QAAQ;AAEZ;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AACA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAGA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,UAAQ;AACZ;AAGA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AAGA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AACA,CAAC;AACO,eAAa,IAAI;AACrB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AACA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AAGA,CAAC;AACG,cAAY;AAChB;AACA,CAAC;AACG,cAAY;AAChB;AACA,CAAC;AACG,cAAY;AAChB;AAGA,CAAC;AACG,SAAQ,IAAI;AAChB;AACA,CAAC;AACG,SAAQ,IAAI;AAChB;AACA,CAAC;AACG,SAAQ,IAAI;AAChB;AACA,CAAC;AACG,SAAQ,IAAI;AAChB;AAGA,CAAC;AACG,gBAAc,IAAI;AAClB,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AACA,CAAC;AACO,UAAQ,IAAI,MAAM,IAAI;AAC1B,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACP,UAAQ,IAAI,MAAM,IAAI;AAC9B;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AACA,CAAC;AACG,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AAEA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,eAAa;AACjB;AACA,CAAC;AACE,aAAW;AACV,eAAa;AACb,WAAS;AACb;AACA,CAAC;AACG,aAAW;AACV,eAAa;AACb,WAAS;AACd;AACA,CAAC;AACG,aAAW;AACV,eAAa;AACb,mBAAiB;AACjB,WAAS;AACd;",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- [pulse-animation-element=player-inner-elements]{z-index:105;pointer-events:auto}[pulse-animation-element=hero-wrapper]{z-index:100}[pulse-animation-element=hero-blur-overlay]{z-index:95}[pulse-animation-element=hero-blur]{z-index:90}[pulse-animation-element=radial-gradient-wrapper]{z-index:70;opacity:0}[pulse-animation-element=canvas-wrapper]{z-index:85}[pulse-animation-element=player-wrapper],[pulse-animation-element=player-wrapper-mobile]{z-index:80}#spline-container canvas{width:100vw!important}.spline-disc canvas{width:1920px!important;height:1080px!important}#canvas3d{width:100vw!important;height:100%;display:flex;justify-content:center;align-items:center}.block-canvas{display:flex;justify-content:center;align-items:flex-end;height:100vh;width:100vw;overflow:hidden;top:48px}.block_spline-3d{display:flex;position:sticky;top:0;height:100vh;pointer-events:none}.block_hero-text{position:absolute;inset:0%;overflow:hidden;height:100vh;pointer-events:auto}.block_music-player{position:absolute;bottom:0;left:0;width:100vw;height:100vh}.canvas-helper{display:none}.scroll-section{position:relative;height:350vh;pointer-events:none}.box{width:360px;height:449px;background:#0b0b0b;position:relative}.box svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}[pulse-animation-element=player-elements]{position:absolute;inset:0}[pulse-animation-element=line-art]{background:transparent}[pulse-animation-element=player-handle]{transform-origin:left center;transform:rotate(0);left:70px}[pulse-animation-element=player-handle-tail]{transform-origin:right center;transform:rotate(0)}.blur-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#000c,#0000);height:100%}.gradient-blur{position:absolute;inset:0;backdrop-filter:blur(8px) brightness(1);-webkit-backdrop-filter:blur(25px) brightness(1);mask-image:linear-gradient(to top,#0000,#000 60%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 0%,rgb(0 0 0) 60%);height:80%}[pulse-animation-element=disc-spacer]{height:80px}.vignette{background:radial-gradient(circle,transparent 60%,rgba(0,0,0,.8) 100%);position:absolute;inset:0;pointer-events:none;width:100%;height:100%;z-index:89}.vignite-bg{position:absolute;z-index:90;width:100%;height:100px}@media (max-width: 479px){.vignite-bg{height:380px}}#gallery:before{content:"";position:absolute;inset:0;background:#00000006;z-index:2}.torch{position:absolute;inset:0;pointer-events:none;z-index:4;background:rgba(0,0,0,var(--darkness));opacity:0;transition:opacity .16s ease-out;-webkit-mask:radial-gradient(var(--torch-size) var(--torch-size) at var(--x) var(--y),transparent 0 var(--clear),white var(--torch-size));mask:radial-gradient(var(--torch-size) var(--torch-size) at var(--x) var(--y),transparent 0 var(--clear),white var(--torch-size))}#gallery:hover .torch{opacity:1}@media (pointer: coarse){.torch{opacity:1}}@media (prefers-reduced-motion: reduce){.torch{transition:none}}@media (max-width: 500px){.spline-disc canvas{height:800px!important}#canvas3d{width:100vw!important}.box,.col-2-row-2-item-1{width:250px;height:320px}.block-canvas{top:30px}.column_absolute{justify-content:center;align-items:center}.player-progress{padding:12px 12px 18px}}
1
+ [pulse-animation-element=player-inner-elements]{z-index:105;pointer-events:auto}[pulse-animation-element=hero-wrapper]{z-index:100}[pulse-animation-element=hero-blur-overlay]{z-index:95}[pulse-animation-element=hero-blur]{z-index:90}[pulse-animation-element=radial-gradient-wrapper]{z-index:70;opacity:0}[pulse-animation-element=canvas-wrapper]{z-index:85}[pulse-animation-element=player-wrapper]{z-index:80}#spline-container canvas{width:100vw!important}.spline-disc canvas{width:1920px!important;height:1080px!important}#canvas3d{width:100vw!important;height:100%;display:flex;justify-content:center;align-items:center}.block-canvas{display:flex;justify-content:center;align-items:flex-end;height:100vh;width:100vw;overflow:hidden;top:48px}.block_spline-3d{display:flex;position:sticky;top:0;height:100vh;pointer-events:none}.block_hero-text{position:absolute;inset:0%;overflow:hidden;height:100vh;pointer-events:auto}.block_music-player{position:absolute;bottom:0;left:0;width:100vw;height:100vh}.canvas-helper{display:none}.scroll-section{position:relative;height:350vh;pointer-events:none}.box{width:360px;height:449px;background:#0b0b0b;position:relative}.box svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}[pulse-animation-element=player-elements]{position:absolute;inset:0}[pulse-animation-element=line-art]{background:transparent}[pulse-animation-element=player-handle]{transform-origin:left center;transform:rotate(0);left:70px}[pulse-animation-element=player-handle-tail]{transform-origin:right center;transform:rotate(0)}.blur-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#000c,#0000);height:100%}.gradient-blur{position:absolute;inset:0;backdrop-filter:blur(25px) brightness(1.2);-webkit-backdrop-filter:blur(25px) brightness(1.2);mask-image:linear-gradient(to top,#0000 35%,#000 70%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0) 35%,rgba(0,0,0,1) 70%);height:100%}[pulse-animation-element=disc-spacer]{height:80px}.vignette{background:radial-gradient(circle,transparent 60%,rgba(0,0,0,.8) 100%);position:absolute;inset:0;pointer-events:none;width:100%;height:100%;z-index:89}.vignite-bg{position:absolute;z-index:90;width:100%;height:100px}#gallery:before{content:"";position:absolute;inset:0;background:#00000006;z-index:2}.torch{position:absolute;inset:0;pointer-events:none;z-index:4;background:rgba(0,0,0,var(--darkness));opacity:0;transition:opacity .16s ease-out;-webkit-mask:radial-gradient(var(--torch-size) var(--torch-size) at var(--x) var(--y),transparent 0 var(--clear),white var(--torch-size));mask:radial-gradient(var(--torch-size) var(--torch-size) at var(--x) var(--y),transparent 0 var(--clear),white var(--torch-size))}#gallery:hover .torch{opacity:1}@media (pointer: coarse){.torch{opacity:1}}@media (prefers-reduced-motion: reduce){.torch{transition:none}}@media (max-width: 500px){.spline-disc canvas{height:800px!important}#canvas3d{width:100vw!important}.box,.col-2-row-2-item-1{width:250px;height:320px}.block-canvas{top:30px}.column_absolute{justify-content:center;align-items:center}.player-progress{padding:12px 12px 18px}}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/home/hero-animation/styles.css"],
4
- "sourcesContent": ["/* Z-index hirearchy: */\n[pulse-animation-element=\"player-inner-elements\"]{\n z-index: 105;\n pointer-events: auto;\n}\n[pulse-animation-element=\"hero-wrapper\"]{\n z-index: 100;\n}\n[pulse-animation-element=\"hero-blur-overlay\"]{\n z-index: 95;\n}\n[pulse-animation-element=\"hero-blur\"]{\n z-index: 90;\n}\n[pulse-animation-element=\"radial-gradient-wrapper\"]{\n z-index: 70;\n opacity: 0;\n \n}\n[pulse-animation-element=\"canvas-wrapper\"]{\n z-index: 85;\n\n}\n\n[pulse-animation-element=\"player-wrapper\"]{\n z-index: 80; \n}\n[pulse-animation-element=\"player-wrapper-mobile\"]{\n z-index: 80; \n}\n\n\n#spline-container canvas{\n width: 100vw !important;\n}\n\n.spline-disc canvas{\n width: 1920px !important;\n height: 1080px !important;\n}\n\n\n#canvas3d{\n width: 100vw !important;\n /* height: 100vh !important; */\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.block-canvas{\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100vh;\n width: 100vw;\n overflow: hidden;\n top: 48px;\n}\n\n.block_spline-3d {\n display: flex;\n position: sticky;\n top: 0px;\n height: 100vh;\n pointer-events: none;\n}\n\n.block_hero-text {\n position: absolute;\n inset: 0%;\n overflow: hidden;\n height: 100vh;\n pointer-events: auto;\n}\n\n.block_music-player{\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n /* overflow: visible; */\n}\n\n.canvas-helper{\n display : none;\n}\n\n/* scroll animation start */\n.scroll-section{\n position: relative;\n height: 350vh;\n pointer-events: none;\n /* background-color: rgba(255, 0, 0, 0.333); */\n}\n\n.box {\n width: 360px;\n height: 449px;\n background: rgba(11, 11, 11, 1);\n position: relative;\n}\n\n/* The SVG acts as the border */\n.box svg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n display: block;\n overflow: visible;\n pointer-events: none;\n}\n\n[pulse-animation-element=\"player-elements\"]{\n position: absolute;\n inset: 0;\n}\n\n[pulse-animation-element=\"line-art\"]{\n background: transparent;\n}\n\n[pulse-animation-element=\"player-handle\"]{\n transform-origin: left center;\n transform: rotate(0deg);\n left: 70px;\n}\n\n[pulse-animation-element=\"player-handle-tail\"]{\n transform-origin: right center;\n transform: rotate(0deg);\n}\n\n/* [pulse-animation-element=\"radial-gradient\"]{\n background: radial-gradient(circle, #141414 0%, rgba(20, 20, 20, 0.9) 70%, rgba(20, 20, 20, 0.6) 80%, transparent 100%);\n opacity: 0.8;\n} */\n\n/* blue css */\n.blur-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.8) 0%,\n rgba(0, 0, 0, 0) 100%\n );\n height: 100%;\n}\n\n/* .gradient-blur {\n position: absolute;\n inset: 0;\n backdrop-filter: blur(25px) brightness(1.2);\n -webkit-backdrop-filter: blur(25px) brightness(1.2);\n mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n height: 100%;\n} */\n\n.gradient-blur {\n position: absolute;\n inset: 0;\n backdrop-filter: blur(8px) brightness(1);\n -webkit-backdrop-filter: blur(25px) brightness(1);\n mask-image: linear-gradient(to top, #0000 0%, #000 60%);\n -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgb(0 0 0) 60%);\n height: 80%;\n}\n\n\n[pulse-animation-element='disc-spacer']{\n height: 80px;\n}\n\n\n\n.vignette{\n background: radial-gradient(circle, transparent 60%, rgba(0, 0, 0, 0.8) 100%);\n position: absolute;\n inset: 0;\n pointer-events: none; \n width: 100%;\n height: 100%;\n z-index: 89;\n}\n.vignite-bg{\nposition: absolute;\nz-index: 90;\nwidth: 100%;\nheight:100px;\n}\n\n@media (max-width: 479px) {\n .vignite-bg{\n height:380px;\n }\n}\n\n/* \n.torch {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 91;\n background: rgba(0,0,0,var(--darkness, .75));\n opacity: 0;\n transition: opacity 160ms ease-out;\n\n -webkit-mask: radial-gradient(\n var(--torch-size, 480px) var(--torch-size, 480px)\n at var(--x, 50%) var(--y, 50%),\n transparent 0 var(--clear, 280px),\n white var(--torch-size, 480px)\n );\n mask: radial-gradient(\n var(--torch-size, 480px) var(--torch-size, 480px)\n at var(--x, 50%) var(--y, 50%),\n transparent 0 var(--clear, 280px),\n white var(--torch-size, 480px)\n );\n }\n\n #home-scroll:hover .torch { opacity: 1; } */\n\n #gallery {\n /* position: relative;\n overflow: hidden;\n box-shadow: 0 14px 44px rgba(0,0,0,.5);\n isolation: isolate; keep blending local */\n }\n /* Subtle global dim so the torch pops */\n #gallery::before {\n content: \"\";\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, .024);\n z-index: 2;\n }\n\n /* Torch overlay that masks a circular window where darkness is removed */\n .torch {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 4;\n background: rgba(0,0,0,var(--darkness));\n opacity: 0;\n transition: opacity 160ms ease-out;\n -webkit-mask: radial-gradient(\n var(--torch-size) var(--torch-size) at var(--x) var(--y),\n transparent 0 var(--clear),\n white var(--torch-size)\n );\n mask: radial-gradient(\n var(--torch-size) var(--torch-size) at var(--x) var(--y),\n transparent 0 var(--clear),\n white var(--torch-size)\n );\n }\n\n #gallery:hover .torch { opacity: 1; }\n\n @media (pointer: coarse) {\n .torch { opacity: 1; }\n }\n @media (prefers-reduced-motion: reduce) {\n .torch { transition: none; }\n }\n\n\n @media (max-width: 500px) {\n .spline-disc canvas{\n height: 800px !important;\n }\n #canvas3d{\n width: 100vw !important;\n}\n\n\n.box {\n width: 250px;\n height: 320px;\n}\n.col-2-row-2-item-1 {\n width: 250px;\n height: 320px;\n}\n.block-canvas {\n top: 30px;\n}\n.column_absolute {\n justify-content: center;\n align-items: center;\n}\n.player-progress {\n padding: 12px;\n padding-bottom: 18px;\n}\n}"],
5
- "mappings": ";AACA,CAAC;AACG,WAAS;AACT,kBAAgB;AACpB;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACT,WAAS;AAEb;AACA,CAAC;AACG,WAAS;AAEb;AAEA,CAAC;AACG,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACb;AAGA,CAAC,iBAAiB;AACd,SAAO;AACX;AAEA,CAAC,YAAY;AACT,SAAO;AACP,UAAQ;AACZ;AAGA,CAAC;AACG,SAAO;AAEP,UAAQ;AACR,WAAS;AACT,mBAAiB;AACjB,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,UAAQ;AACR,SAAO;AACP,YAAU;AACV,OAAK;AACT;AAEA,CAAC;AACG,WAAS;AACT,YAAU;AACV,OAAK;AACL,UAAQ;AACR,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,YAAU;AACV,UAAQ;AACR,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,UAAQ;AACR,QAAM;AACN,SAAO;AACP,UAAQ;AAEZ;AAEA,CAAC;AACG,WAAU;AACd;AAGA,CAAC;AACG,YAAU;AACV,UAAQ;AACR,kBAAgB;AAEpB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7B,YAAU;AACd;AAGA,CARC,IAQI;AACD,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,WAAS;AACT,YAAU;AACV,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACX;AAEA,CAAC;AACG,cAAY;AAChB;AAEA,CAAC;AACG,oBAAkB,KAAK;AACvB,aAAW,OAAO;AAClB,QAAM;AACV;AAEA,CAAC;AACG,oBAAkB,MAAM;AACxB,aAAW,OAAO;AACtB;AAQA,CAAC;AACG,YAAU;AACV,SAAO;AACP;AAAA,IAAY;AAAA,MACR,GAAG,MADK;AAAA,MAER,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAFX;AAAA,MAGR,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAErB,UAAQ;AACZ;AAYA,CAAC;AACG,YAAU;AACV,SAAO;AACP,mBAAiB,KAAK,KAAK,WAAW;AACtC,2BAAyB,KAAK,MAAM,WAAW;AAC/C;AAAA,IAAY;AAAA,MAAgB,GAAG,GAAnB;AAAA,MAAwB,MAAM,EAA9B;AAAA,MAAkC,KAAK;AACnD;AAAA,IAAoB;AAAA,MAAgB,GAAG,GAAG;AAAA,MAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AAAA,MAAE,IAAI,EAAE,EAAE,GAAG;AAC5E,UAAQ;AACZ;AAGA,CAAC;AACG,UAAQ;AACZ;AAIA,CAAC;AACI;AAAA,IAAY;AAAA,MAAgB,MAAM;AAAA,MAAE,YAAY,GAAG;AAAA,MAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK;AACxE,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,SAAO;AACP,UAAQ;AACR,WAAS;AACd;AACA,CAAC;AACD,YAAU;AACV,WAAS;AACT,SAAO;AACP,UAAO;AACP;AAEA,OAAO,CAAC,SAAS,EAAE;AACf,GARH;AASO,YAAO;AACX;AACJ;AA4BI,CAAC;AAKH;AAEA,CAPG,OAOK;AACN,WAAS;AACT,YAAU;AACV,SAAO;AACP,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,WAAS;AACX;AAGA,CAAC;AACC,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,WAAS;AACT,cAAY,KAAK,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI;AAC3B,WAAS;AACT,cAAY,QAAQ,MAAM;AAC1B;AAAA,IAAc;AAAA,MACZ,IAAI,cAAc,IAAI,cAAc,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA,MACxD,YAAY,EAAE,IAAI,QAAQ;AAAA,MAC1B,MAAM,IAAI;AAEJ;AAAA,IAAM;AAAA,MACZ,IAAI,cAAc,IAAI,cAAc,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA,MACxD,YAAY,EAAE,IAAI,QAAQ;AAAA,MAC1B,MAAM,IAAI;AAEd;AAEA,CApCG,OAoCK,OAAO,CApBd;AAoBuB,WAAS;AAAG;AAEpC,OAAO,CAAC,OAAO,EAAE;AACf,GAvBD;AAuBU,aAAS;AAAG;AACvB;AACA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GA1BD;AA0BU,gBAAY;AAAM;AAC7B;AAGA,OAAO,CAAC,SAAS,EAAE;AACjB,GA/OH,YA+OgB;AACT,YAAQ;AACZ;AACA,GA5OH;AA6OG,WAAO;AACX;AAGA,GAzLC;AA0LG,WAAO;AACP,YAAQ;AACZ;AACA,GAAC;AACC,WAAO;AACL,YAAQ;AACZ;AACA,GAhPC;AAiPG,SAAK;AACT;AACA,GAAC;AACG,qBAAiB;AACjB,iBAAa;AACjB;AACA,GAAC;AACO,aAAS;AACT,oBAAgB;AACxB;AACA;",
4
+ "sourcesContent": ["/* Z-index hirearchy: */\n[pulse-animation-element=\"player-inner-elements\"]{\n z-index: 105;\n pointer-events: auto;\n}\n[pulse-animation-element=\"hero-wrapper\"]{\n z-index: 100;\n}\n[pulse-animation-element=\"hero-blur-overlay\"]{\n z-index: 95;\n}\n[pulse-animation-element=\"hero-blur\"]{\n z-index: 90;\n}\n[pulse-animation-element=\"radial-gradient-wrapper\"]{\n z-index: 70;\n opacity: 0;\n \n}\n[pulse-animation-element=\"canvas-wrapper\"]{\n z-index: 85;\n\n}\n[pulse-animation-element=\"player-wrapper\"]{\n z-index: 80; \n}\n\n#spline-container canvas{\n width: 100vw !important;\n}\n\n.spline-disc canvas{\n width: 1920px !important;\n height: 1080px !important;\n}\n\n\n#canvas3d{\n width: 100vw !important;\n /* height: 100vh !important; */\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.block-canvas{\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100vh;\n width: 100vw;\n overflow: hidden;\n top: 48px;\n}\n\n.block_spline-3d {\n display: flex;\n position: sticky;\n top: 0px;\n height: 100vh;\n pointer-events: none;\n}\n\n.block_hero-text {\n position: absolute;\n inset: 0%;\n overflow: hidden;\n height: 100vh;\n pointer-events: auto;\n}\n\n.block_music-player{\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n /* overflow: visible; */\n}\n\n.canvas-helper{\n display : none;\n}\n\n/* scroll animation start */\n.scroll-section{\n position: relative;\n height: 350vh;\n pointer-events: none;\n /* background-color: rgba(255, 0, 0, 0.333); */\n}\n\n.box {\n width: 360px;\n height: 449px;\n background: rgba(11, 11, 11, 1);\n position: relative;\n}\n\n/* The SVG acts as the border */\n.box svg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n display: block;\n overflow: visible;\n pointer-events: none;\n}\n\n[pulse-animation-element=\"player-elements\"]{\n position: absolute;\n inset: 0;\n}\n\n[pulse-animation-element=\"line-art\"]{\n background: transparent;\n}\n\n[pulse-animation-element=\"player-handle\"]{\n transform-origin: left center;\n transform: rotate(0deg);\n left: 70px;\n}\n\n[pulse-animation-element=\"player-handle-tail\"]{\n transform-origin: right center;\n transform: rotate(0deg);\n}\n\n/* [pulse-animation-element=\"radial-gradient\"]{\n background: radial-gradient(circle, #141414 0%, rgba(20, 20, 20, 0.9) 70%, rgba(20, 20, 20, 0.6) 80%, transparent 100%);\n opacity: 0.8;\n} */\n\n/* blue css */\n.blur-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.8) 0%,\n rgba(0, 0, 0, 0) 100%\n );\n height: 100%;\n}\n\n.gradient-blur {\n position: absolute;\n inset: 0;\n backdrop-filter: blur(25px) brightness(1.2);\n -webkit-backdrop-filter: blur(25px) brightness(1.2);\n mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0) 35%, rgba(0,0,0,1) 70%);\n height: 100%;\n}\n\n\n[pulse-animation-element='disc-spacer']{\n height: 80px;\n}\n\n\n\n.vignette{\n background: radial-gradient(circle, transparent 60%, rgba(0, 0, 0, 0.8) 100%);\n position: absolute;\n inset: 0;\n pointer-events: none; \n width: 100%;\n height: 100%;\n z-index: 89;\n}\n.vignite-bg{\nposition: absolute;\nz-index: 90;\nwidth: 100%;\nheight:100px;\n}\n\n/* \n.torch {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 91;\n background: rgba(0,0,0,var(--darkness, .75));\n opacity: 0;\n transition: opacity 160ms ease-out;\n\n -webkit-mask: radial-gradient(\n var(--torch-size, 480px) var(--torch-size, 480px)\n at var(--x, 50%) var(--y, 50%),\n transparent 0 var(--clear, 280px),\n white var(--torch-size, 480px)\n );\n mask: radial-gradient(\n var(--torch-size, 480px) var(--torch-size, 480px)\n at var(--x, 50%) var(--y, 50%),\n transparent 0 var(--clear, 280px),\n white var(--torch-size, 480px)\n );\n }\n\n #home-scroll:hover .torch { opacity: 1; } */\n\n #gallery {\n /* position: relative;\n overflow: hidden;\n box-shadow: 0 14px 44px rgba(0,0,0,.5);\n isolation: isolate; keep blending local */\n }\n /* Subtle global dim so the torch pops */\n #gallery::before {\n content: \"\";\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, .024);\n z-index: 2;\n }\n\n /* Torch overlay that masks a circular window where darkness is removed */\n .torch {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 4;\n background: rgba(0,0,0,var(--darkness));\n opacity: 0;\n transition: opacity 160ms ease-out;\n -webkit-mask: radial-gradient(\n var(--torch-size) var(--torch-size) at var(--x) var(--y),\n transparent 0 var(--clear),\n white var(--torch-size)\n );\n mask: radial-gradient(\n var(--torch-size) var(--torch-size) at var(--x) var(--y),\n transparent 0 var(--clear),\n white var(--torch-size)\n );\n }\n\n #gallery:hover .torch { opacity: 1; }\n\n @media (pointer: coarse) {\n .torch { opacity: 1; }\n }\n @media (prefers-reduced-motion: reduce) {\n .torch { transition: none; }\n }\n\n\n @media (max-width: 500px) {\n .spline-disc canvas{\n height: 800px !important;\n }\n #canvas3d{\n width: 100vw !important;\n}\n\n\n.box {\n width: 250px;\n height: 320px;\n}\n.col-2-row-2-item-1 {\n width: 250px;\n height: 320px;\n}\n.block-canvas {\n top: 30px;\n}\n.column_absolute {\n justify-content: center;\n align-items: center;\n}\n.player-progress {\n padding: 12px;\n padding-bottom: 18px;\n}\n}"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,39 @@
1
+ "use strict";(()=>{var g="https://cdn.prod.website-files.com/680cbbaefb50442c848aedf7/6926cf888059f91e69c286e7_IMG_0311.jpg",p="https://cdn.prod.website-files.com/680cbbaefb50442c848aedf7/6926cf7fd0f3c3f3276d1575_IMG_0310.png";var t={gl:null,program:null,mousePos:{x:0,y:0},targetPos:{x:0,y:0},textures:{color:null,depth:null},animationId:null,isLoaded:!1,imageAspect:1,canvasAspect:1,uvScale:{x:1,y:1},uvOffset:{x:0,y:0}},E=document.getElementById("viewer-wrapper"),i=document.getElementById("viewer-canvas"),d=document.getElementById("status");i.addEventListener("mousemove",e=>{let r=i.getBoundingClientRect(),n=((e.clientX-r.left)/r.width-.5)*2,o=-((e.clientY-r.top)/r.height-.5)*2;t.targetPos.x=n,t.targetPos.y=o});i.addEventListener("mouseleave",()=>{t.targetPos.x=0,t.targetPos.y=0});function v(){i.width=E.clientWidth,i.height=E.clientHeight,t.gl&&(t.gl.viewport(0,0,i.width,i.height),T())}function T(){t.canvasAspect=i.width/i.height;let e=t.imageAspect||1,r=t.canvasAspect||1,n=1,o=1,u=0,a=0;r>e?(n=r/e,u=(n-1)/2):(o=e/r,a=(o-1)/2),t.uvScale.x=n,t.uvScale.y=o,t.uvOffset.x=u,t.uvOffset.y=a}function L(){v();let e=i.getContext("webgl");if(!e){d.textContent="WebGL not supported in this browser.";return}t.gl=e;let r=`
2
+ attribute vec2 a_position;
3
+ attribute vec2 a_texCoord;
4
+ varying vec2 v_texCoord;
5
+ void main() {
6
+ gl_Position = vec4(a_position, 0.0, 1.0);
7
+ v_texCoord = a_texCoord;
8
+ }
9
+ `,n=`
10
+ precision mediump float;
11
+ uniform sampler2D u_colorTexture;
12
+ uniform sampler2D u_depthTexture;
13
+ uniform vec2 u_mouse;
14
+ uniform float u_scale;
15
+ uniform vec2 u_uvScale;
16
+ uniform vec2 u_uvOffset;
17
+ uniform float u_imageScale;
18
+ varying vec2 v_texCoord;
19
+
20
+ void main() {
21
+ vec2 scaledUV = v_texCoord * u_uvScale + u_uvOffset;
22
+
23
+ vec2 centered = scaledUV - 0.5;
24
+ centered *= u_imageScale;
25
+ scaledUV = centered + 0.5;
26
+
27
+ vec2 depthUV = clamp(scaledUV, 0.0, 1.0);
28
+ float depth = texture2D(u_depthTexture, depthUV).r;
29
+
30
+ vec2 offset = u_mouse * depth * u_scale;
31
+ vec2 uv = scaledUV - offset;
32
+
33
+ if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {
34
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
35
+ } else {
36
+ gl_FragColor = texture2D(u_colorTexture, uv);
37
+ }
38
+ }
39
+ `;function o(c,A,R){let f=c.createShader(R);return f?(c.shaderSource(f,A),c.compileShader(f),c.getShaderParameter(f,c.COMPILE_STATUS)?f:(console.error(c.getShaderInfoLog(f)),c.deleteShader(f),null)):null}let u=o(e,r,e.VERTEX_SHADER),a=o(e,n,e.FRAGMENT_SHADER);if(!u||!a)return;let s=e.createProgram();if(!s)return;if(e.attachShader(s,u),e.attachShader(s,a),e.linkProgram(s),!e.getProgramParameter(s,e.LINK_STATUS)){console.error(e.getProgramInfoLog(s)),d.textContent="Error linking WebGL program.";return}t.program=s;let m=e.createBuffer();if(!m)return;e.bindBuffer(e.ARRAY_BUFFER,m),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),e.STATIC_DRAW);let l=e.createBuffer();l&&(e.bindBuffer(e.ARRAY_BUFFER,l),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,1,1,1,0,0,0,0,1,1,1,0]),e.STATIC_DRAW),t.positionBuffer=m,t.texCoordBuffer=l,b())}function _(e,r,n,o){let u=e.createTexture();if(!u)return null;e.bindTexture(e.TEXTURE_2D,u),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([0,0,0,255]));let a=new Image;return a.crossOrigin="anonymous",a.onload=()=>{o&&o(a),e.bindTexture(e.TEXTURE_2D,u),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),n()},a.onerror=()=>{d.textContent="Error loading image: "+r},a.src=r,u}function b(){let e=t.gl;if(!e)return;let r=0;function n(){r+=1,r===2&&e&&(e.viewport(0,0,i.width,i.height),t.isLoaded=!0,d.textContent="Move your mouse over the image to see the 3D parallax effect.",x())}t.textures.color=_(e,g,n,o=>{t.imageAspect=o.width/o.height,T()}),t.textures.depth=_(e,p,n)}function x(){if(!t.isLoaded)return;let e=t.gl,r=t.program;if(!e||!r)return;t.mousePos.x+=(t.targetPos.x-t.mousePos.x)*.9,t.mousePos.y+=(t.targetPos.y-t.mousePos.y)*.9,e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),e.useProgram(r);let n=e.getAttribLocation(r,"a_position");e.bindBuffer(e.ARRAY_BUFFER,t.positionBuffer),e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0);let o=e.getAttribLocation(r,"a_texCoord");e.bindBuffer(e.ARRAY_BUFFER,t.texCoordBuffer),e.enableVertexAttribArray(o),e.vertexAttribPointer(o,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.textures.color),e.uniform1i(e.getUniformLocation(r,"u_colorTexture"),0),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,t.textures.depth),e.uniform1i(e.getUniformLocation(r,"u_depthTexture"),1),e.uniform2f(e.getUniformLocation(r,"u_mouse"),t.mousePos.x,t.mousePos.y),e.uniform1f(e.getUniformLocation(r,"u_scale"),.01),e.uniform2f(e.getUniformLocation(r,"u_uvScale"),t.uvScale.x,t.uvScale.y),e.uniform2f(e.getUniformLocation(r,"u_uvOffset"),t.uvOffset.x,t.uvOffset.y),e.uniform1f(e.getUniformLocation(r,"u_imageScale"),.9),e.drawArrays(e.TRIANGLES,0,6),t.animationId=requestAnimationFrame(x)}window.addEventListener("load",L);window.addEventListener("resize",()=>{t.gl&&v()});})();
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/home/depth.ts"],
4
+ "sourcesContent": ["// Config variables\nconst COLOR_URL = \"https://cdn.prod.website-files.com/680cbbaefb50442c848aedf7/6926cf888059f91e69c286e7_IMG_0311.jpg\";\nconst DEPTH_URL = \"https://cdn.prod.website-files.com/680cbbaefb50442c848aedf7/6926cf7fd0f3c3f3276d1575_IMG_0310.png\";\n\nconst DEPTH_SCALE = 0.01;\nconst MOUSE_SMOOTH = 0.9;\nconst IMAGE_SCALE = 0.9;\n\ninterface State {\n gl: WebGLRenderingContext | null;\n program: WebGLProgram | null;\n mousePos: { x: number; y: number };\n targetPos: { x: number; y: number };\n textures: { color: WebGLTexture | null; depth: WebGLTexture | null };\n animationId: number | null;\n isLoaded: boolean;\n imageAspect: number;\n canvasAspect: number;\n uvScale: { x: number; y: number };\n uvOffset: { x: number; y: number };\n positionBuffer?: WebGLBuffer;\n texCoordBuffer?: WebGLBuffer;\n}\n\nconst state: State = {\n gl: null,\n program: null,\n mousePos: { x: 0, y: 0 },\n targetPos: { x: 0, y: 0 },\n textures: { color: null, depth: null },\n animationId: null,\n isLoaded: false,\n imageAspect: 1,\n canvasAspect: 1,\n uvScale: { x: 1, y: 1 },\n uvOffset: { x: 0, y: 0 }\n};\n\nconst wrapper = document.getElementById(\"viewer-wrapper\") as HTMLDivElement;\nconst canvas = document.getElementById(\"viewer-canvas\") as HTMLCanvasElement;\nconst statusEl = document.getElementById(\"status\") as HTMLDivElement;\n\ncanvas.addEventListener(\"mousemove\", (e: MouseEvent) => {\n const rect = canvas.getBoundingClientRect();\n const x = ((e.clientX - rect.left) / rect.width - 0.5) * 2;\n const y = -((e.clientY - rect.top) / rect.height - 0.5) * 2;\n\n state.targetPos.x = x;\n state.targetPos.y = y;\n});\n\ncanvas.addEventListener(\"mouseleave\", () => {\n state.targetPos.x = 0;\n state.targetPos.y = 0;\n});\n\nfunction updateCanvasSize(): void {\n canvas.width = wrapper.clientWidth;\n canvas.height = wrapper.clientHeight;\n if (state.gl) {\n state.gl.viewport(0, 0, canvas.width, canvas.height);\n updateUvScale();\n }\n}\n\nfunction updateUvScale(): void {\n state.canvasAspect = canvas.width / canvas.height;\n const ia = state.imageAspect || 1;\n const ca = state.canvasAspect || 1;\n\n let scaleX = 1;\n let scaleY = 1;\n let offsetX = 0;\n let offsetY = 0;\n\n if (ca > ia) {\n scaleX = ca / ia;\n offsetX = (scaleX - 1) / 2;\n } else {\n scaleY = ia / ca;\n offsetY = (scaleY - 1) / 2;\n }\n\n state.uvScale.x = scaleX;\n state.uvScale.y = scaleY;\n state.uvOffset.x = offsetX;\n state.uvOffset.y = offsetY;\n}\n\nfunction initWebGL(): void {\n updateCanvasSize();\n\n const gl = canvas.getContext(\"webgl\") as WebGLRenderingContext | null;\n if (!gl) {\n statusEl.textContent = \"WebGL not supported in this browser.\";\n return;\n }\n\n state.gl = gl;\n\n const vertexShaderSource = `\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n varying vec2 v_texCoord;\n void main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_texCoord;\n }\n `;\n\n const fragmentShaderSource = `\n precision mediump float;\n uniform sampler2D u_colorTexture;\n uniform sampler2D u_depthTexture;\n uniform vec2 u_mouse;\n uniform float u_scale;\n uniform vec2 u_uvScale;\n uniform vec2 u_uvOffset;\n uniform float u_imageScale;\n varying vec2 v_texCoord;\n\n void main() {\n vec2 scaledUV = v_texCoord * u_uvScale + u_uvOffset;\n \n vec2 centered = scaledUV - 0.5;\n centered *= u_imageScale;\n scaledUV = centered + 0.5;\n\n vec2 depthUV = clamp(scaledUV, 0.0, 1.0);\n float depth = texture2D(u_depthTexture, depthUV).r;\n\n vec2 offset = u_mouse * depth * u_scale;\n vec2 uv = scaledUV - offset;\n\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n } else {\n gl_FragColor = texture2D(u_colorTexture, uv);\n }\n }\n `;\n\n function compileShader(glContext: WebGLRenderingContext, source: string, type: number): WebGLShader | null {\n const shader = glContext.createShader(type);\n if (!shader) return null;\n glContext.shaderSource(shader, source);\n glContext.compileShader(shader);\n if (!glContext.getShaderParameter(shader, glContext.COMPILE_STATUS)) {\n console.error(glContext.getShaderInfoLog(shader));\n glContext.deleteShader(shader);\n return null;\n }\n return shader;\n }\n\n const vertexShader = compileShader(gl, vertexShaderSource, gl.VERTEX_SHADER);\n const fragmentShader = compileShader(gl, fragmentShaderSource, gl.FRAGMENT_SHADER);\n\n if (!vertexShader || !fragmentShader) return;\n\n const program = gl.createProgram();\n if (!program) return;\n\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.error(gl.getProgramInfoLog(program));\n statusEl.textContent = \"Error linking WebGL program.\";\n return;\n }\n\n state.program = program;\n\n const positionBuffer = gl.createBuffer();\n if (!positionBuffer) return;\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n gl.bufferData(\n gl.ARRAY_BUFFER,\n new Float32Array([\n -1, -1, 1, -1, -1, 1,\n -1, 1, 1, -1, 1, 1\n ]),\n gl.STATIC_DRAW\n );\n\n const texCoordBuffer = gl.createBuffer();\n if (!texCoordBuffer) return;\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(\n gl.ARRAY_BUFFER,\n new Float32Array([\n 0, 1, 1, 1, 0, 0,\n 0, 0, 1, 1, 1, 0\n ]),\n gl.STATIC_DRAW\n );\n\n state.positionBuffer = positionBuffer;\n state.texCoordBuffer = texCoordBuffer;\n\n loadTextures();\n}\n\nfunction loadTexture(gl: WebGLRenderingContext, url: string, onLoaded: () => void, onImageLoaded?: (image: HTMLImageElement) => void): WebGLTexture | null {\n const texture = gl.createTexture();\n if (!texture) return null;\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n gl.RGBA,\n 1,\n 1,\n 0,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n new Uint8Array([0, 0, 0, 255])\n );\n\n const image = new Image();\n image.crossOrigin = \"anonymous\";\n image.onload = () => {\n if (onImageLoaded) onImageLoaded(image);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n onLoaded();\n };\n image.onerror = () => {\n statusEl.textContent = \"Error loading image: \" + url;\n };\n image.src = url;\n\n return texture;\n}\n\nfunction loadTextures(): void {\n const gl = state.gl;\n if (!gl) return;\n\n let loadedCount = 0;\n\n function onLoaded(): void {\n loadedCount += 1;\n if (loadedCount === 2 && gl) {\n gl.viewport(0, 0, canvas.width, canvas.height);\n state.isLoaded = true;\n statusEl.textContent = \"Move your mouse over the image to see the 3D parallax effect.\";\n render();\n }\n }\n\n state.textures.color = loadTexture(\n gl,\n COLOR_URL,\n onLoaded,\n (image: HTMLImageElement) => {\n state.imageAspect = image.width / image.height;\n updateUvScale();\n }\n );\n state.textures.depth = loadTexture(gl, DEPTH_URL, onLoaded);\n}\n\nfunction render(): void {\n if (!state.isLoaded) return;\n\n const gl = state.gl;\n const program = state.program;\n\n if (!gl || !program) return;\n\n state.mousePos.x += (state.targetPos.x - state.mousePos.x) * MOUSE_SMOOTH;\n state.mousePos.y += (state.targetPos.y - state.mousePos.y) * MOUSE_SMOOTH;\n\n gl.clearColor(0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n gl.useProgram(program);\n\n const positionLocation = gl.getAttribLocation(program, \"a_position\");\n gl.bindBuffer(gl.ARRAY_BUFFER, state.positionBuffer!);\n gl.enableVertexAttribArray(positionLocation);\n gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n const texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n gl.bindBuffer(gl.ARRAY_BUFFER, state.texCoordBuffer!);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, state.textures.color);\n gl.uniform1i(gl.getUniformLocation(program, \"u_colorTexture\"), 0);\n\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, state.textures.depth);\n gl.uniform1i(gl.getUniformLocation(program, \"u_depthTexture\"), 1);\n\n gl.uniform2f(gl.getUniformLocation(program, \"u_mouse\"), state.mousePos.x, state.mousePos.y);\n gl.uniform1f(gl.getUniformLocation(program, \"u_scale\"), DEPTH_SCALE);\n gl.uniform2f(gl.getUniformLocation(program, \"u_uvScale\"), state.uvScale.x, state.uvScale.y);\n gl.uniform2f(gl.getUniformLocation(program, \"u_uvOffset\"), state.uvOffset.x, state.uvOffset.y);\n gl.uniform1f(gl.getUniformLocation(program, \"u_imageScale\"), IMAGE_SCALE);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n state.animationId = requestAnimationFrame(render);\n}\n\nwindow.addEventListener(\"load\", initWebGL);\nwindow.addEventListener(\"resize\", () => {\n if (!state.gl) return;\n updateCanvasSize();\n});"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }