{"version":3,"file":"static/chunks/2541-0e205408885ac4da.js","mappings":"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","sources":["webpack://_N_E/?2424","webpack://_N_E/./src/components/common-sections/http-toolkit-features/http-toolkit-features.styles.ts","webpack://_N_E/./src/components/common-sections/modify-features/modify-features.styles.ts","webpack://_N_E/./src/components/common-sections/try-it-for-yourself/wrapper.tsx","webpack://_N_E/./src/components/elements/check-icon/check-icon.styles.ts","webpack://_N_E/./src/components/elements/container/index.tsx","webpack://_N_E/./src/components/elements/gradient/gradient.styles.ts","webpack://_N_E/./src/components/elements/heading/index.tsx","webpack://_N_E/./src/components/elements/section/section.styles.ts","webpack://_N_E/./src/components/modules/heading-block/heading-block.styles.ts","webpack://_N_E/./src/components/modules/text-list/text-list.styles.ts","webpack://_N_E/./src/components/sections/feature-line/feature-line.styles.ts","webpack://_N_E/../src/InView.tsx","webpack://_N_E/../src/observe.ts","webpack://_N_E/../src/useInView.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"StyledGradientRight\",\"StyledFeaturesWrapper\",\"StyledGradientLeft\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/http-toolkit-features/http-toolkit-features.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledGradientRight\",\"StyledFeaturesWrapper\",\"StyledGradientLeft\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/modify-features/modify-features.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"TryYourselfWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/try-it-for-yourself/wrapper.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"BadgeWrapper\",\"AdditionalText\",\"StyledBadge\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/badge/badge.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledLink\",\"StyledButton\",\"StyledButtonWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/button/button.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledCheckIcon\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/check-icon/check-icon.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledContainer\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/container/container.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledGradient\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/gradient/gradient.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeading\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/heading/heading.styles.ts\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/apple-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/bun-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/chrome-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/deno-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/docker-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/electron-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/firefox-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/github.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/java-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/linux-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/node-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/product-hunt-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/python-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/ruby-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/shipping-fast.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/square-js-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/twitter-x.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/ycombinator-logo.svg\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"MovingBorder\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/moving-border/index.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"ResponsiveLineBreak\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/responsive-line-break/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledSection\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/section/section.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledSquareIcon\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/square-icon/square-icon.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledStack\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/stack/stack.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledText\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/text/text.styles.ts\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/themed-image/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"DownloadDropdown\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/download-button/download-dropdown.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeadingBlockWrapper\",\"StyledHeadingBlockTitle\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/heading-block/heading-block.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"PhoneAppVideoPair\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/phone-app-video-pair/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledTextListWrapper\",\"StyledTextListItem\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/text-list/text-list.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeroWrapper\",\"StyledContainer\",\"StyledExcerpt\",\"StyledCTAWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/cta/cta.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledFeatureLineWrapper\",\"StyledFeatureLineContentWrapper\",\"StyledFeatureLineTextWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/feature-line/feature-line.styles.ts\");\n","'use client';\n\nimport { css, screens, styled } from '@/styles';\n\nexport const StyledFeaturesWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 32px;\n\n @media (min-width: ${screens['lg']}) {\n gap: 96px;\n }\n`;\n\nconst commonGradientStyles = css`\n position: absolute;\n height: 641px;\n\n @media (min-width: ${screens['lg']}) {\n height: 940px;\n }\n`;\n\nexport const StyledGradientRight = styled.div`\n top: 65px;\n right: 0;\n transform: rotate(180deg);\n\n ${commonGradientStyles}\n`;\n\nexport const StyledGradientLeft = styled.div`\n bottom: 376px;\n left: 0;\n\n ${commonGradientStyles}\n`;\n","'use client';\n\nimport { css, screens, styled } from '@/styles';\n\nexport const StyledFeaturesWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 32px;\n\n @media (min-width: ${screens['lg']}) {\n gap: 96px;\n }\n`;\n\nconst commonGradientStyles = css`\n position: absolute;\n height: 940px;\n display: none;\n visibility: hidden;\n\n pointer-events: none;\n\n @media (min-width: ${screens['lg']}) {\n display: block;\n visibility: visible;\n }\n`;\n\nexport const StyledGradientRight = styled.div`\n top: 65px;\n right: 0;\n transform: rotate(180deg);\n\n ${commonGradientStyles}\n`;\n\nexport const StyledGradientLeft = styled.div`\n bottom: 376px;\n left: 0;\n\n ${commonGradientStyles}\n`;\n","'use client';\n\nimport React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nexport const TryYourselfWrapper = ({ children }: Component) => {\n const { ref, inView } = useInView({\n threshold: 0.5,\n triggerOnce: true,\n });\n\n return
{inView && children}
;\n};\n","'use client';\n\nimport type { CheckIconProps } from '.';\n\nimport { styled } from '@/styles';\n\nexport const StyledCheckIcon = styled.div`\n flex-shrink: 0;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${({ theme }) => theme.colors.blueGradient};\n width: ${({ $small }) => ($small ? '17px' : '20px')};\n height: ${({ $small }) => ($small ? '17px' : '20px')};\n color: ${({ theme }) => theme.colors.text.alwayWhite};\n box-shadow:\n 0px 1.66px 0.83px 0px rgba(201, 212, 251, 0.1) inset,\n 0px -0.83px 0.83px 0px rgba(16, 46, 151, 0.1) inset,\n 0 0 0 1px ${({ theme }) => theme.colors.borderAlwaysGradient} inset;\n`;\n","import { StyledContainer } from './container.styles';\nimport type { ContainerProps } from './container.types';\n\nexport const Container = ({ children, as, $size = 'default', ...props }: ContainerProps) => {\n return (\n \n {children}\n \n );\n};\n","'use client';\n\nimport type { StyledGradientProps } from './gradient.types';\n\nimport { css, styled } from '@/styles';\n\nexport const StyledGradient = styled.div`\n width: 100%;\n height: 100%;\n position: relative;\n aspect-ratio: 16/11;\n z-index: -1;\n pointer-events: none;\n user-select: none;\n\n ${({ $shape }) => {\n switch ($shape) {\n case 'full':\n return css`\n background: radial-gradient(circle, ${({ theme }) => theme.colors.circleGradient} 0%, transparent 30%),\n radial-gradient(ellipse 50% 45%, ${({ theme }) => theme.colors.ellipseGradient} 0%, transparent 70%);\n background-size: contain;\n opacity: 0.15;\n `;\n\n case 'side':\n return css`\n background: radial-gradient(circle at left, ${({ theme }) => theme.colors.circleGradient} 0%, transparent 30%),\n radial-gradient(ellipse 70% 45% at left, ${({ theme }) => theme.colors.ellipseGradient} 0%, transparent 70%);\n background-size: contain;\n opacity: 0.15;\n `;\n }\n }}\n`;\n","import { StyledHeading } from './heading.styles';\nimport type { HeadingProps } from './heading.types';\n\nexport const Heading = ({\n as = 'h1',\n id,\n children,\n className,\n color,\n fontSize = 'xl',\n fontWeight,\n textAlign,\n ...props\n}: Component) => {\n return (\n \n {children}\n \n );\n};\n","'use client';\n\nimport { styled, screens } from '@/styles';\n\nexport const StyledSection = styled.section`\n position: relative;\n padding-top: 32px;\n padding-bottom: 32px;\n\n @media (min-width: ${screens['2xl']}) {\n padding-top: 96px;\n padding-bottom: 96px;\n }\n`;\n","'use client';\n\nimport type { StyledHeadingBlockProps } from './heading-block.types';\n\nimport { Heading } from '@/components/elements/heading';\nimport { styled } from '@/styles';\n\nconst alignDictionary: Record = {\n right: 'end',\n left: 'start',\n center: 'center',\n end: 'end',\n start: 'start',\n};\n\nexport const StyledHeadingBlockWrapper = styled.section`\n max-width: 656px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n text-align: ${({ $align }) => $align};\n align-items: ${({ $align }) => alignDictionary[$align]};\n margin: ${({ $isContentCentered: $centered }) => $centered && '0 auto'};\n`;\n\nexport const StyledHeadingBlockTitle = styled(Heading)`\n &&& {\n span {\n -webkit-text-fill-color: var(--cinnabar-red-light);\n }\n }\n`;\n","'use client';\n\nimport { styled } from '@/styles';\n\nexport const StyledTextListWrapper = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 16px;\n text-align: start;\n\n @media (min-width: ${({ theme }) => theme.screens['2xl']}) {\n text-align: initial;\n }\n`;\n\nexport const StyledTextListItem = styled.li`\n display: flex;\n gap: 16px;\n align-items: center;\n`;\n","'use client';\n\nimport type { StyledFeatureLineProps } from './feature-line.types';\n\nimport { styled } from '@/styles';\n\nexport const StyledFeatureLineWrapper = styled.section`\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n display: flex;\n flex-direction: ${({ $align }) => $align === 'right' && 'row-reverse'};\n align-items: center;\n justify-content: space-between;\n }\n\n & > *:nth-child(2) {\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n width: 50%;\n }\n }\n\n img {\n mask-image: linear-gradient(transparent 1%, #000 5%, #000 95%, transparent 98%)\n }\n`;\n\nexport const StyledFeatureLineContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n max-width: 548px;\n\n @media (max-width: ${({ theme }) => theme.screens.lg}) {\n align-items: center;\n margin: 0 auto 32px;\n gap: 32px;\n }\n`;\n\nexport const StyledFeatureLineTextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n\n @media (max-width: ${({ theme }) => theme.screens.lg}) {\n gap: 32px;\n\n & > * {\n text-align: center;\n }\n }\n`;\n","import * as React from \"react\";\nimport type { IntersectionObserverProps, PlainChildrenProps } from \"./index\";\nimport { observe } from \"./observe\";\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== \"function\";\n}\n\n/**\n ## Render props\n\n To use the `` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n \n {({ inView, ref, entry }) => (\n
\n

{`Header inside viewport ${inView}.`}

\n
\n )}\n
\n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the ``, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n console.log('Inview:', inView)}>\n

Plain children are always rendered. Use onChange to monitor state.

\n
\n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n }\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props as PlainChildrenProps;\n\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import type { ObserverInstanceCallback } from \"./index\";\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map>;\n }\n>();\n\nconst RootIds: WeakMap = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit[\"root\"]) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter(\n (key) => options[key as keyof IntersectionObserverInit] !== undefined,\n )\n .map((key) => {\n return `${key}_${\n key === \"root\"\n ? getRootId(options.root)\n : options[key as keyof IntersectionObserverInit]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map>();\n // biome-ignore lint/style/useConst: It's fine to use let here, as we are going to assign it later\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === \"undefined\" &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from \"react\";\nimport type { InViewHookResponse, IntersectionOptions } from \"./index\";\nimport { observe } from \"./observe\";\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\n/**\n * React Hooks make it easy to monitor the `inView` state of your components. Call\n * the `useInView` hook with the (optional) [options](#options) you need. It will\n * return an array containing a `ref`, the `inView` status and the current\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\n * report the status.\n *\n * @example\n * ```jsx\n * import React from 'react';\n * import { useInView } from 'react-intersection-observer';\n *\n * const Component = () => {\n * const { ref, inView, entry } = useInView({\n * threshold: 0,\n * });\n *\n * return (\n *
\n *

{`Header inside viewport ${inView}.`}

\n *
\n * );\n * };\n * ```\n */\nexport function useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange,\n}: IntersectionOptions = {}): InViewHookResponse {\n const [ref, setRef] = React.useState(null);\n const callback = React.useRef();\n const [state, setState] = React.useState({\n inView: !!initialInView,\n entry: undefined,\n });\n\n // Store the onChange callback in a `ref`, so we can access the latest instance\n // inside the `useEffect`, but without triggering a rerender.\n callback.current = onChange;\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: threshold is not correctly detected as a dependency\n React.useEffect(\n () => {\n // Ensure we have node ref, and that we shouldn't skip observing\n if (skip || !ref) return;\n\n let unobserve: (() => void) | undefined;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry,\n });\n if (callback.current) callback.current(inView, entry);\n\n if (entry.isIntersecting && triggerOnce && unobserve) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve();\n unobserve = undefined;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay,\n ],\n );\n\n const entryTarget = state.entry?.target;\n const previousEntryTarget = React.useRef();\n if (\n !ref &&\n entryTarget &&\n !triggerOnce &&\n !skip &&\n previousEntryTarget.current !== entryTarget\n ) {\n // If we don't have a node ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: undefined,\n });\n }\n\n const result = [setRef, state.inView, state.entry] as InViewHookResponse;\n\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n\n return result;\n}\n"],"names":["Promise","resolve","then","__webpack_require__","bind","StyledFeaturesWrapper","styled","div","_templateObject","screens","commonGradientStyles","css","StyledGradientRight","_templateObject2","StyledGradientLeft","_templateObject3","TryYourselfWrapper","children","param","ref","inView","useInView","threshold","triggerOnce","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","StyledCheckIcon","theme","colors","blueGradient","$small","text","alwayWhite","borderAlwaysGradient","Container","as","$size","props","StyledContainer","StyledGradient","$shape","circleGradient","ellipseGradient","Heading","id","className","color","fontSize","fontWeight","textAlign","StyledHeading","data-heading","$textAlign","StyledSection","section","alignDictionary","right","left","center","end","start","StyledHeadingBlockWrapper","$align","$isContentCentered","$centered","StyledHeadingBlockTitle","StyledTextListWrapper","ul","StyledTextListItem","li","_templateObject1","StyledFeatureLineWrapper","lg","StyledFeatureLineContentWrapper","StyledFeatureLineTextWrapper","observerMap","Map","RootIds","WeakMap","rootId","unsupportedValue","_a","delay","trackVisibility","rootMargin","root","skip","initialInView","fallbackInView","onChange","arguments","length","setRef","React2","callback","state","setState","entry","current","unobserve","observe","element","options","window","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","target","intersectionRatio","time","boundingClientRect","intersectionRect","rootBounds","observer","elements","createObserver","Object","keys","sort","filter","key","map","concat","has","set","toString","get","instance","thresholds","entries","forEach","some","isVisible","Array","isArray","callbacks","push","splice","indexOf","delete","size","disconnect","entryTarget","previousEntryTarget","result","React"],"sourceRoot":""}