From 255850ea2a2716d4c9195fdf40f35d04b9ff8030 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:14 +0000 Subject: [PATCH 01/15] Update registry/components/HeroSplitDualMedia.json --- registry/components/HeroSplitDualMedia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/components/HeroSplitDualMedia.json b/registry/components/HeroSplitDualMedia.json index c51f9cd..0c5e0ca 100644 --- a/registry/components/HeroSplitDualMedia.json +++ b/registry/components/HeroSplitDualMedia.json @@ -24,7 +24,7 @@ }, "ratingText": { "required": true, - "example": "Rated by loving Clients", + "example": "Rated by loving Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! s", "minChars": 2, "maxChars": 50 } @@ -89,7 +89,7 @@ "ratingClassName?": "string", "ratingTextClassName?": "string" }, - "usageExample": "", + "usageExample": "", "do": [ "Use for coaching, consulting, or service-focused landing pages", "Include exactly 2 media items", -- 2.49.1 From 64b98cdb9d8df58bf8bb3340e8a10dd23fa19f67 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:14 +0000 Subject: [PATCH 02/15] Update registry/components/TestimonialCardFive.json --- registry/components/TestimonialCardFive.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/registry/components/TestimonialCardFive.json b/registry/components/TestimonialCardFive.json index e36f9db..d4f0604 100644 --- a/registry/components/TestimonialCardFive.json +++ b/registry/components/TestimonialCardFive.json @@ -6,7 +6,7 @@ "textRules": { "title": { "required": true, - "example": "What Our Clients Say", + "example": "What Our Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! s Say", "minChars": 2, "maxChars": 50 }, @@ -89,7 +89,7 @@ }, "videoAriaLabel": { "required": false, - "example": "Client testimonial video", + "example": "Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! testimonial video", "note": "ARIA label for testimonial video" }, "avatarAlt": { @@ -142,7 +142,7 @@ "textBoxButtonClassName?": "string", "textBoxButtonTextClassName?": "string" }, - "usageExample": "", + "usageExample": "", "do": [ "Use for social proof", "Use for customer reviews", -- 2.49.1 From 7819162ab7f4a1d4105d02a3884c0d52548464f0 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:15 +0000 Subject: [PATCH 03/15] Update registry/components/TestimonialCardSix.json --- registry/components/TestimonialCardSix.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/components/TestimonialCardSix.json b/registry/components/TestimonialCardSix.json index fd9e2fd..78c2817 100644 --- a/registry/components/TestimonialCardSix.json +++ b/registry/components/TestimonialCardSix.json @@ -6,7 +6,7 @@ "textRules": { "title": { "required": true, - "example": "What Our Clients Say", + "example": "What Our Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! s Say", "minChars": 2, "maxChars": 50 }, @@ -110,7 +110,7 @@ "textBoxButtonClassName?": "string", "textBoxButtonTextClassName?": "string" }, - "usageExample": "", + "usageExample": "", "do": [ "Use for social proof", "Use for customer reviews", -- 2.49.1 From c6d6e44ec8571fba0ecdd83a1fa8a2e546570f7c Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:15 +0000 Subject: [PATCH 04/15] Update registry/components/TestimonialCardSixteen.json --- registry/components/TestimonialCardSixteen.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/registry/components/TestimonialCardSixteen.json b/registry/components/TestimonialCardSixteen.json index 2890767..9c14a43 100644 --- a/registry/components/TestimonialCardSixteen.json +++ b/registry/components/TestimonialCardSixteen.json @@ -6,7 +6,7 @@ "textRules": { "title": { "required": true, - "example": "What Our Clients Say", + "example": "What Our Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! s Say", "minChars": 2, "maxChars": 50 }, @@ -29,9 +29,9 @@ "recommendedItems": "3", "structure": { "id": "string - Unique identifier (required)", - "name": "string - Client name (required)", - "role": "string - Client role/position (required)", - "company": "string - Client company (required)", + "name": "string - Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! name (required)", + "role": "string - Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! role/position (required)", + "company": "string - Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! company (required)", "rating": "number - Star rating 0-5 (required)", "imageSrc?": "string - Path to client image", "videoSrc?": "string - Path to client video", @@ -90,7 +90,7 @@ "textBoxButtonClassName?": "string", "textBoxButtonTextClassName?": "string" }, - "usageExample": "", + "usageExample": "", "do": [ "Use for testimonial sections with visual emphasis on people", "Include exactly 3 KPI items for the bottom section", -- 2.49.1 From 9f6da8d31d305f1f85a5c5843e67ed077a1105ab Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:16 +0000 Subject: [PATCH 05/15] Update registry/components/TestimonialCardThirteen.json --- registry/components/TestimonialCardThirteen.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/components/TestimonialCardThirteen.json b/registry/components/TestimonialCardThirteen.json index 1a14132..752ecd5 100644 --- a/registry/components/TestimonialCardThirteen.json +++ b/registry/components/TestimonialCardThirteen.json @@ -6,7 +6,7 @@ "textRules": { "title": { "required": true, - "example": "What Our Clients Say", + "example": "What Our Jordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! s Say", "minChars": 2, "maxChars": 50 }, @@ -105,7 +105,7 @@ "carouselClassName?": "string", "controlsClassName?": "string" }, - "usageExample": "", + "usageExample": "", "do": [ "Use for social proof", "Use for customer reviews", -- 2.49.1 From b7ec4d0766e724b07b3852624e6251784f35c05d Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:16 +0000 Subject: [PATCH 06/15] Update src/app/layout.tsx --- src/app/layout.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3154b88..e8c25a4 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -265,7 +265,7 @@ export default function RootLayout({ }; const getElementInfo = (element, assignId = false) => { - const rect = element.getBoundingClientRect(); + const rect = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const tagName = element.tagName.toLowerCase(); const selector = getUniqueSelector(element, assignId); const sectionId = getSectionId(element); @@ -392,7 +392,7 @@ export default function RootLayout({ if (validElements.length === 0) return null; const scoredElements = validElements.map(element => { let score = 0; - const rect = element.getBoundingClientRect(); + const rect = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const tagName = element.tagName.toLowerCase(); const computedStyle = window.getComputedStyle(element); let depth = 0; @@ -659,7 +659,7 @@ export default function RootLayout({ }; const createHoverOverlay = (element) => { - const rect = element.getBoundingClientRect(); + const rect = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const overlay = document.createElement('div'); overlay.className = 'webild-hover-overlay'; overlay.style.cssText = \` @@ -689,7 +689,7 @@ export default function RootLayout({ removeElementTypeLabel(); - const rect = element.getBoundingClientRect(); + const rect = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); elementTypeLabel = document.createElement('div'); elementTypeLabel.className = 'webild-element-type-label'; const ariaLabel = element.getAttribute('aria-label'); @@ -707,7 +707,7 @@ export default function RootLayout({ elementTypeLabel.textContent = labelText; document.body.appendChild(elementTypeLabel); - const labelRect = elementTypeLabel.getBoundingClientRect(); + const labelRect = elementTypeLabel.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); let labelTop = rect.top - labelRect.height - 2; let labelLeft = rect.left - 3; let isLabelOnTop = true; -- 2.49.1 From 1c759dbed07e7c84485ee1b92098ec9d14714560 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:17 +0000 Subject: [PATCH 07/15] Update src/app/page.tsx --- src/app/page.tsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index effe43c..0e63cca 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -43,7 +43,7 @@ export default function LandingPage() {
Date: Wed, 4 Mar 2026 20:52:17 +0000 Subject: [PATCH 08/15] Update src/components/background/AnimatedGridBackground.tsx --- src/components/background/AnimatedGridBackground.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/background/AnimatedGridBackground.tsx b/src/components/background/AnimatedGridBackground.tsx index a5279b8..b490e58 100644 --- a/src/components/background/AnimatedGridBackground.tsx +++ b/src/components/background/AnimatedGridBackground.tsx @@ -24,7 +24,7 @@ const AnimatedGridBackground = ({ useEffect(() => { if (containerRef.current) { - const { width, height } = containerRef.current.getBoundingClientRect(); + const { width, height } = containerRef.current.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); setDimensions({ width, height }); } }, []); -- 2.49.1 From db11afba98ce0e77d4788eaee3ed84b151b0c42f Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:17 +0000 Subject: [PATCH 09/15] Update src/components/background/GlowingEffect.tsx --- src/components/background/GlowingEffect.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/background/GlowingEffect.tsx b/src/components/background/GlowingEffect.tsx index 5104fbe..684c1ff 100644 --- a/src/components/background/GlowingEffect.tsx +++ b/src/components/background/GlowingEffect.tsx @@ -118,7 +118,7 @@ const GlowingEffect = memo( const element = containerRef.current; if (!element) return; - const { left, top, width, height } = element.getBoundingClientRect(); + const { left, top, width, height } = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const mousePosition = calculateMousePosition(e); if (e) { -- 2.49.1 From 4179197b9e837830d2181db98470ee9f316c4c24 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:18 +0000 Subject: [PATCH 10/15] Update src/components/button/ButtonDirectionalHover/useDirectionalHover.ts --- .../button/ButtonDirectionalHover/useDirectionalHover.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/button/ButtonDirectionalHover/useDirectionalHover.ts b/src/components/button/ButtonDirectionalHover/useDirectionalHover.ts index a8b7917..2185032 100644 --- a/src/components/button/ButtonDirectionalHover/useDirectionalHover.ts +++ b/src/components/button/ButtonDirectionalHover/useDirectionalHover.ts @@ -9,7 +9,7 @@ export const useDirectionalHover = ( const button = buttonRef.current; if (!button) return; - const buttonRect = button.getBoundingClientRect(); + const buttonRect = button.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const buttonWidth = buttonRect.width; const buttonHeight = buttonRect.height; const buttonCenterX = buttonRect.left + buttonWidth / 2; -- 2.49.1 From 3e40ee18c82e22e71631af148ccd17a6e6b05128 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:18 +0000 Subject: [PATCH 11/15] Update src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts --- src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts b/src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts index 540523c..c245017 100644 --- a/src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts +++ b/src/components/button/ButtonHoverMagnetic/useMagneticEffect.ts @@ -30,7 +30,7 @@ const useMagneticEffect = (strengthFactor = 10) => { }; const moveMagnet = (e: MouseEvent) => { - const b = element.getBoundingClientRect(); + const b = element.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const strength = strengthFactor; const offsetX = ((e.clientX - b.left) / element.offsetWidth - 0.5) * (strength / 16); -- 2.49.1 From 28a4edb4ca1c3fcdf0fa98bfaadb105f6a461fbd Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:19 +0000 Subject: [PATCH 12/15] Update src/components/button/SelectorButton.tsx --- src/components/button/SelectorButton.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/button/SelectorButton.tsx b/src/components/button/SelectorButton.tsx index 3c601d2..064fadf 100644 --- a/src/components/button/SelectorButton.tsx +++ b/src/components/button/SelectorButton.tsx @@ -40,8 +40,8 @@ const SelectorButton = memo(({ const moveHoverBlock = (target: HTMLElement) => { if (!target) return; - const targetRect = target.getBoundingClientRect(); - const containerRect = container.getBoundingClientRect(); + const targetRect = target.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); + const containerRect = container.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); hoverElement.style.width = `${targetRect.width}px`; hoverElement.style.transform = `translateX(${targetRect.left - containerRect.left}px)`; -- 2.49.1 From b79691b5c4ac9d6457d15ed2c0b83fa3d5452d03 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:19 +0000 Subject: [PATCH 13/15] Update src/components/cardStack/hooks/useDepth3DAnimation.ts --- src/components/cardStack/hooks/useDepth3DAnimation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/cardStack/hooks/useDepth3DAnimation.ts b/src/components/cardStack/hooks/useDepth3DAnimation.ts index 1966225..0a4aa4b 100644 --- a/src/components/cardStack/hooks/useDepth3DAnimation.ts +++ b/src/components/cardStack/hooks/useDepth3DAnimation.ts @@ -60,7 +60,7 @@ export const useDepth3DAnimation = ({ const handleMouseMove = (event: MouseEvent): void => { if (containerRef.current) { - const rect = containerRef.current.getBoundingClientRect(); + const rect = containerRef.current.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); isMouseInSection = event.clientX >= rect.left && event.clientX <= rect.right && -- 2.49.1 From afc0b19cde82fb4c0ba34d04b60e20a3765a297d Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:20 +0000 Subject: [PATCH 14/15] Update src/components/sections/feature/featureCardThree/useDynamicDimensions.ts --- .../sections/feature/featureCardThree/useDynamicDimensions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/sections/feature/featureCardThree/useDynamicDimensions.ts b/src/components/sections/feature/featureCardThree/useDynamicDimensions.ts index e861535..3ec7152 100644 --- a/src/components/sections/feature/featureCardThree/useDynamicDimensions.ts +++ b/src/components/sections/feature/featureCardThree/useDynamicDimensions.ts @@ -13,7 +13,7 @@ const getVw15InPixels = (): number => { temp.style.position = 'absolute' temp.style.width = 'var(--vw-1_5)' document.body.appendChild(temp) - const width = temp.getBoundingClientRect().width + const width = temp.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect().width document.body.removeChild(temp) cachedVw15 = width || 0 -- 2.49.1 From 305f3973c2a85e084bf61122b0cfd2de57c2b713 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 4 Mar 2026 20:52:20 +0000 Subject: [PATCH 15/15] Update src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts --- .../feature/featureHoverPattern/usePatternInteraction.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts b/src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts index 45a7c07..0393c19 100644 --- a/src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts +++ b/src/components/sections/feature/featureHoverPattern/usePatternInteraction.ts @@ -71,7 +71,7 @@ export function usePatternInteraction( const updateMobilePosition = useCallback(() => { if (!containerRef.current) return; - const { left, top } = containerRef.current.getBoundingClientRect(); + const { left, top } = containerRef.current.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const viewportCenterX = window.innerWidth / 2; const viewportCenterY = window.innerHeight / 2; @@ -82,7 +82,7 @@ export function usePatternInteraction( const checkInView = useCallback(() => { if (!containerRef.current) return; - const rect = containerRef.current.getBoundingClientRect(); + const rect = containerRef.current.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); const viewportHeight = window.innerHeight; const threshold = viewportHeight * PATTERN_VISIBILITY_THRESHOLD; const iconThreshold = viewportHeight * ICON_VISIBILITY_THRESHOLD; @@ -122,7 +122,7 @@ export function usePatternInteraction( (event: MouseEvent) => { if (state.isMobile) return; - const { left, top } = event.currentTarget.getBoundingClientRect(); + const { left, top } = event.currentTarget.getBoundingJordan was amazing! I’m so in love with my permanent eyeliner. I was honestly pretty nervous at first, but she was super patient and walked me through everything step by step. She made the whole appointment feel calm and comfortable. The results are flawless and look so natural. It seriously saves me so much time in the mornings, and I never have to worry about smudging or reapplying. Couldn’t be happier! Rect(); mouseX.set(event.clientX - left); mouseY.set(event.clientY - top); updateRandomString(); -- 2.49.1