@makeswift/runtime 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/Box.cjs.js +30 -270
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +29 -269
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +1 -1
  6. package/dist/Button.es.js +2 -2
  7. package/dist/Carousel.cjs.js +3 -4
  8. package/dist/Carousel.cjs.js.map +1 -1
  9. package/dist/Carousel.es.js +2 -3
  10. package/dist/Carousel.es.js.map +1 -1
  11. package/dist/Countdown.es.js +1 -1
  12. package/dist/Divider.es.js +1 -1
  13. package/dist/Embed.cjs.js +2 -1
  14. package/dist/Embed.cjs.js.map +1 -1
  15. package/dist/Embed.es.js +2 -1
  16. package/dist/Embed.es.js.map +1 -1
  17. package/dist/Form.cjs.js +1 -1
  18. package/dist/Form.es.js +2 -2
  19. package/dist/Image.cjs.js +1 -1
  20. package/dist/Image.es.js +2 -2
  21. package/dist/LiveProvider.es.js +1 -1
  22. package/dist/Navigation.cjs.js +4 -3
  23. package/dist/Navigation.cjs.js.map +1 -1
  24. package/dist/Navigation.es.js +4 -3
  25. package/dist/Navigation.es.js.map +1 -1
  26. package/dist/PreviewProvider.es.js +1 -1
  27. package/dist/Root.cjs.js +5 -5
  28. package/dist/Root.cjs.js.map +1 -1
  29. package/dist/Root.es.js +3 -3
  30. package/dist/SocialLinks.cjs.js +2 -2
  31. package/dist/SocialLinks.es.js +3 -3
  32. package/dist/Text.cjs.js +1 -1
  33. package/dist/Text.es.js +2 -2
  34. package/dist/Video.es.js +1 -1
  35. package/dist/api.cjs.js +11 -20
  36. package/dist/api.cjs.js.map +1 -1
  37. package/dist/api.es.js +11 -20
  38. package/dist/api.es.js.map +1 -1
  39. package/dist/components.cjs.js +10 -9
  40. package/dist/components.cjs.js.map +1 -1
  41. package/dist/components.es.js +9 -8
  42. package/dist/components.es.js.map +1 -1
  43. package/dist/index.cjs.js +73 -43
  44. package/dist/index.cjs.js.map +1 -1
  45. package/dist/index.cjs2.js +711 -92
  46. package/dist/index.cjs2.js.map +1 -1
  47. package/dist/index.cjs3.js +107 -20
  48. package/dist/index.cjs3.js.map +1 -1
  49. package/dist/index.cjs4.js +59 -0
  50. package/dist/index.cjs4.js.map +1 -0
  51. package/dist/index.es.js +74 -43
  52. package/dist/index.es.js.map +1 -1
  53. package/dist/index.es2.js +708 -93
  54. package/dist/index.es2.js.map +1 -1
  55. package/dist/index.es3.js +103 -21
  56. package/dist/index.es3.js.map +1 -1
  57. package/dist/index.es4.js +58 -0
  58. package/dist/index.es4.js.map +1 -0
  59. package/dist/next.es.js +1 -1
  60. package/dist/types/src/api/graphql/documents/fragments.d.ts +7 -1
  61. package/dist/types/src/api/graphql/documents/fragments.d.ts.map +1 -1
  62. package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  63. package/dist/types/src/components/builtin/Box/Box.d.ts +18 -26
  64. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  65. package/dist/types/src/components/builtin/Box/animations.d.ts +13 -60
  66. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  67. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  68. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  69. package/dist/types/src/components/hooks/useMediaQuery.d.ts +1 -1
  70. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -1
  71. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +1 -254
  72. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  73. package/dist/types/src/components/shared/grid-item.d.ts +9 -6
  74. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -1
  75. package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
  76. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  77. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  78. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  79. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/grid-item.cjs.js +0 -603
  82. package/dist/grid-item.cjs.js.map +0 -1
  83. package/dist/grid-item.es.js +0 -595
  84. package/dist/grid-item.es.js.map +0 -1
  85. package/dist/useMediaQuery.cjs.js +0 -26
  86. package/dist/useMediaQuery.cjs.js.map +0 -1
  87. package/dist/useMediaQuery.es.js +0 -25
  88. package/dist/useMediaQuery.es.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-item.cjs.js","sources":["../src/components/hooks/useBackgrounds.ts","../src/utils/clamp.ts","../src/components/shared/BackgroundsContainer/components/Parallax/index.tsx","../src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.tsx","../src/components/shared/BackgroundsContainer/components/Backgrounds/index.tsx","../src/components/shared/BackgroundsContainer/index.tsx","../src/components/shared/grid-item.tsx"],"sourcesContent":["import { useMemo } from 'react'\n\nimport { ColorValue as Color } from '../utils/types'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport { isNonNullable } from '../utils/isNonNullable'\nimport { BackgroundsValue as ResponsiveBackgroundsValue } from '../../prop-controllers/descriptors'\nimport { useFiles, useSwatches } from '../../runtimes/react/hooks/makeswift-api'\nimport {\n getBackgroundsFileIds,\n getBackgroundsSwatchIds,\n} from '../../prop-controllers/introspection'\n\ntype BackgroundColorData = Color\n\ntype BackgroundGradientStopData = {\n id: string\n location: number\n color: Color | null | undefined\n}\n\ntype BackgroundGradientData = {\n angle?: number\n isRadial?: boolean\n stops: Array<BackgroundGradientStopData>\n}\n\ntype BackgroundImageData = {\n publicUrl?: string\n dimensions?: { width: number; height: number } | null\n position: {\n x: number\n y: number\n }\n size?: 'cover' | 'contain' | 'auto'\n repeat?: 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n opacity?: number\n parallax?: number\n}\n\ntype BackgroundVideoData = {\n url?: string\n maskColor: Color | null | undefined\n aspectRatio?: 'wide' | 'standard'\n opacity?: number\n zoom?: number\n parallax?: number\n}\n\ntype BackgroundData =\n | { id: string; type: 'color'; payload: BackgroundColorData | null | undefined }\n | { id: string; type: 'image'; payload: BackgroundImageData | null | undefined }\n | { id: string; type: 'gradient'; payload: BackgroundGradientData | null | undefined }\n | { id: string; type: 'video'; payload: BackgroundVideoData | null | undefined }\n\nexport type BackgroundsData = Array<BackgroundData>\n\nexport type BackgroundsPropControllerData = ResponsiveValue<BackgroundsData>\n\nexport function useBackgrounds(\n value: ResponsiveBackgroundsValue | null | undefined,\n): BackgroundsPropControllerData | null | undefined {\n const fileIds = getBackgroundsFileIds(value)\n const files = useFiles(fileIds)\n const swatchIds = getBackgroundsSwatchIds(value)\n const swatches = useSwatches(swatchIds)\n\n return useMemo(() => {\n if (value == null) return null\n\n return value.map(({ value: backgrounds, ...restOfValue }) => ({\n ...restOfValue,\n value: backgrounds\n .map((bg): BackgroundData | null | undefined => {\n if (bg.type === 'image' && bg.payload != null && bg.payload.imageId != null) {\n const { imageId, ...restOfPayload } = bg.payload\n const file = files.find(f => f && f.id === imageId)\n\n return (\n file && {\n id: bg.id,\n type: 'image',\n payload: {\n ...restOfPayload,\n publicUrl: file.publicUrl,\n dimensions: file.dimensions,\n },\n }\n )\n }\n\n if (bg.type === 'color' && bg.payload != null) {\n const { swatchId, alpha } = bg.payload\n const swatch = swatches.filter(isNonNullable).find(s => s && s.id === swatchId)\n\n return { id: bg.id, type: 'color', payload: { swatch, alpha } }\n }\n\n if (bg.type === 'gradient' && bg.payload != null && bg.payload.stops.length > 0) {\n return {\n id: bg.id,\n type: 'gradient',\n payload: {\n angle: bg.payload.angle,\n isRadial: bg.payload.isRadial,\n stops: bg.payload.stops.map(({ color, ...restOfStop }) => ({\n ...restOfStop,\n color: color && {\n swatch: swatches.filter(isNonNullable).find(s => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n })),\n },\n }\n }\n\n if (bg.type === 'video' && bg.payload != null) {\n const { maskColor, ...restOfPayload } = bg.payload\n const swatch = maskColor && swatches.find(s => s && s.id === maskColor.swatchId)\n\n return {\n id: bg.id,\n type: 'video',\n payload: {\n ...restOfPayload,\n maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha },\n },\n }\n }\n\n return null\n })\n .filter(isNonNullable),\n }))\n }, [files, swatches, value])\n}\n","const clamp = (min: number, val: number, max: number): number => Math.min(Math.max(min, val), max)\n\nexport default clamp\n","import { useState, useRef, useCallback, ReactNode, CSSProperties } from 'react'\nimport clamp from '../../../../../utils/clamp'\nimport { useIsomorphicLayoutEffect } from '../../../../hooks/useIsomorphicLayoutEffect'\n\nfunction isScrollable(element: HTMLElement) {\n const { overflow, overflowY, overflowX } =\n element.ownerDocument.defaultView!.getComputedStyle(element)\n\n return /(auto|scroll)/.test(overflow + overflowX + overflowY)\n}\n\nfunction getScrollParent(element: HTMLElement): HTMLElement {\n const { parentElement } = element\n\n if (!element || !parentElement) return element\n\n if (isScrollable(element)) return element\n\n return getScrollParent(parentElement)\n}\n\ntype Props = {\n strength: number | null | undefined\n children: (\n getParallaxProps: <P extends { style?: CSSProperties; [key: string]: unknown }>(props: P) => P,\n ) => ReactNode\n}\n\nexport default function Parallax({ strength, children, ...rest }: Props): JSX.Element {\n const container = useRef<HTMLDivElement>(null)\n const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength)\n const lastScrollParentScrollTop = useRef(0)\n\n useIsomorphicLayoutEffect(() => {\n if (!container.current || strength == null || strength === 0) return undefined\n\n const containerDocument = container.current.ownerDocument\n const scrollParent = getScrollParent(container.current)\n const eventTarget =\n containerDocument.documentElement === scrollParent\n ? containerDocument.defaultView!\n : scrollParent\n\n lastScrollParentScrollTop.current = scrollParent.scrollTop\n setContainerScrollTop(strength)\n\n function handleScroll() {\n containerDocument.defaultView!.requestAnimationFrame(() => {\n if (!container.current) return\n\n const { top: containerTop, bottom: containerBottom } =\n container.current.getBoundingClientRect()\n const { top: scrollParentTop, bottom: scrollParentBottom } =\n scrollParent === containerDocument.documentElement\n ? { top: 0, bottom: containerDocument.defaultView!.innerHeight }\n : scrollParent.getBoundingClientRect()\n const { scrollTop: scrollParentScrollTop } =\n scrollParent === containerDocument.documentElement\n ? { scrollTop: containerDocument.defaultView!.pageYOffset }\n : scrollParent\n const scrollParentHeight = scrollParentBottom - scrollParentTop\n const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current\n\n lastScrollParentScrollTop.current = scrollParentScrollTop\n\n setContainerScrollTop(scrollTop => {\n const isContainerVisible =\n containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop\n const containerScrollRemaining =\n scrollParentScrollDelta > 0 ? 2 * strength! - scrollTop : scrollTop\n const scrollParentScrollRemaining =\n scrollParentScrollDelta > 0\n ? scrollParentTop + containerBottom\n : scrollParentHeight - containerTop\n const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining\n const containerScrollDelta = isContainerVisible\n ? parallaxRatio * scrollParentScrollDelta\n : 0\n\n return clamp(0, scrollTop + containerScrollDelta, strength! * 2)\n })\n })\n }\n\n eventTarget.addEventListener('scroll', handleScroll)\n\n return () => eventTarget.removeEventListener('scroll', handleScroll)\n }, [strength])\n\n const getProps = useCallback(\n ({ style, ...restOfChildrenProps }: any) => ({\n ...restOfChildrenProps,\n style: {\n ...style,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n ...(strength == null || strength === 0\n ? {}\n : {\n top: -strength,\n bottom: -strength,\n transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`,\n }),\n },\n }),\n [strength, containerScrollTop],\n )\n\n return (\n <div\n {...rest}\n ref={container}\n style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}\n >\n {children(getProps)}\n </div>\n )\n}\n","import { cx } from '@emotion/css'\nimport { useState, useRef, ComponentPropsWithoutRef, ForwardedRef, forwardRef } from 'react'\nimport ReactPlayer from 'react-player'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\n\nimport { useIsomorphicLayoutEffect } from '../../../../hooks/useIsomorphicLayoutEffect'\n\nconst Container = forwardRef(function Container(\n { className, ...restOfProps }: ComponentPropsWithoutRef<'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n pointerEvents: 'none',\n overflow: 'hidden',\n }),\n className,\n )}\n />\n )\n})\n\nfunction Mask({\n backgroundColor,\n visible,\n}: {\n backgroundColor: string | undefined\n visible: boolean\n}) {\n return (\n <div\n className={useStyle({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: backgroundColor,\n opacity: visible ? 1 : 0,\n transition: 'opacity 1s',\n })}\n />\n )\n}\n\nconst getScale = (element: HTMLElement, aspectRatio: number, zoom: number) => {\n const { offsetWidth: width, offsetHeight: height } = element\n const computedAspectRatio = width / height\n\n return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom\n}\n\ntype Props = {\n url?: string\n aspectRatio?: number\n zoom?: number\n opacity?: number\n maskColor?: string\n}\n\nexport default function BackgroundVideo({\n url = '',\n aspectRatio = 16 / 9,\n zoom = 1,\n maskColor,\n opacity,\n}: Props): JSX.Element {\n const [ready, setReady] = useState(false)\n const [scale, setScale] = useState(1)\n const container = useRef<HTMLDivElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n const { current: containerEl } = container\n\n if (!containerEl) return undefined\n\n const { defaultView } = containerEl.ownerDocument\n const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom))\n\n handleResize()\n\n defaultView!.addEventListener('resize', handleResize)\n\n return () => defaultView!.removeEventListener('resize', handleResize)\n }, [aspectRatio, zoom])\n\n if (!ReactPlayer.canPlay(url)) return <></>\n\n return (\n <Container ref={container}>\n {container.current && (\n <ReactPlayer\n url={url}\n config={{\n vimeo: { playerOptions: { background: true } },\n youtube: {\n playerVars: {\n origin: container.current.ownerDocument.defaultView?.location.origin,\n },\n },\n wistia: {\n options: {\n endVideoBehavior: 'loop',\n playbackRateControl: false,\n playbar: false,\n playButton: false,\n volumeControl: false,\n fullscreenButton: false,\n muted: true,\n },\n },\n }}\n playing\n loop\n muted\n controls={false}\n onReady={() => setReady(true)}\n style={{\n transform: `scale3d(${scale}, ${scale}, 1)`,\n opacity,\n }}\n width=\"100%\"\n height=\"100%\"\n />\n )}\n <Mask backgroundColor={maskColor} visible={!ready} />\n </Container>\n )\n}\n","import NextImage from 'next/image'\nimport type NextLegacyImageType from 'next/legacy/image'\n\nimport { BackgroundsPropControllerData, BackgroundsData } from '../../../../hooks'\nimport { ResponsiveValue } from '../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../utils/types'\nimport { colorToString } from '../../../../utils/colorToString'\nimport Parallax from '../Parallax'\nimport BackgroundVideo from '../BackgroundVideo'\nimport { CSSObject } from '@emotion/css'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { responsiveStyle } from '../../../../utils/responsive-style'\nimport { major as nextMajorVersion } from '../../../../../next/next-version'\n\nconst NextLegacyImage = NextImage as typeof NextLegacyImageType\n\nfunction getColor(color: Color | null | undefined) {\n if (color == null) return 'black'\n\n if (color.swatch == null) {\n return colorToString({ ...color, swatch: { hue: 0, saturation: 0, lightness: 0 } })\n }\n\n return colorToString(color)\n}\n\ntype GradientStop = { color: Color | null | undefined; location: number }\n\nconst getStopsStyle = (stops: GradientStop[]) =>\n stops.map(({ color, location }) => `${getColor(color)} ${location}%`).join(',')\n\nconst absoluteFillStyle: CSSObject = {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n}\n\nconst containerStyle: CSSObject = {\n ...absoluteFillStyle,\n borderRadius: 'inherit',\n}\n\ntype Props = { backgrounds: BackgroundsPropControllerData | null | undefined }\n\nexport default function Backgrounds({ backgrounds }: Props): JSX.Element {\n if (backgrounds == null) return <></>\n\n return (\n <>\n {backgrounds.map(({ value, deviceId }) => {\n const visibility = backgrounds.map(v => ({\n deviceId: v.deviceId,\n value: v.deviceId === deviceId,\n }))\n\n return <BackgroundDeviceLayer key={deviceId} layer={value} visibility={visibility} />\n })}\n </>\n )\n}\n\ntype BackgroundLayerProps = {\n layer: BackgroundsData\n visibility: ResponsiveValue<boolean>\n}\n\nfunction BackgroundDeviceLayer({ layer, visibility }: BackgroundLayerProps) {\n const visibilityStyle = responsiveStyle([visibility], ([v]) => ({\n display: v === true ? 'block' : 'none',\n }))\n\n return (\n <div className={useStyle({ ...containerStyle, ...visibilityStyle, overflow: 'hidden' })}>\n {[...layer].reverse().map(bg => {\n if (bg.type === 'color') {\n return <ColorBackground key={bg.id} color={getColor(bg.payload)} />\n }\n\n if (bg.type === 'image' && bg.payload) {\n return <ImageBackground {...bg.payload} key={bg.id} />\n }\n\n if (bg.type === 'gradient' && bg.payload) {\n return (\n <GradientBackground\n {...bg.payload}\n key={bg.id}\n gradient={getStopsStyle(bg.payload.stops)}\n />\n )\n }\n\n if (bg.type === 'video' && bg.payload) {\n return (\n <VideoBackground\n {...bg.payload}\n key={bg.id}\n maskColor={getColor(bg.payload.maskColor)}\n />\n )\n }\n\n return null\n })}\n </div>\n )\n}\n\ntype ColorBackgroundProps = { color: string }\n\nfunction ColorBackground({ color }: ColorBackgroundProps) {\n return <div className={useStyle({ ...containerStyle, backgroundColor: color })} />\n}\n\nconst ImageBackgroundRepeat = {\n NoRepeat: 'no-repeat',\n RepeatX: 'repeat-x',\n RepeatY: 'repeat-y',\n Repeat: 'repeat',\n} as const\n\ntype ImageBackgroundRepeat = typeof ImageBackgroundRepeat[keyof typeof ImageBackgroundRepeat]\n\nconst ImageBackgroundSize = {\n Cover: 'cover',\n Contain: 'contain',\n Auto: 'auto',\n} as const\n\ntype ImageBackgroundSize = typeof ImageBackgroundSize[keyof typeof ImageBackgroundSize]\n\ntype ImageBackgroundProps = {\n publicUrl?: string\n position: { x: number; y: number }\n repeat?: ImageBackgroundRepeat\n size?: ImageBackgroundSize\n opacity?: number\n parallax?: number\n}\n\nfunction ImageBackground({\n publicUrl,\n position,\n repeat = ImageBackgroundRepeat.NoRepeat,\n size = ImageBackgroundSize.Cover,\n opacity,\n parallax,\n}: ImageBackgroundProps) {\n const backgroundPosition = `${position.x}% ${position.y}%`\n const containerClassName = useStyle(containerStyle)\n\n if (repeat === 'no-repeat' && size !== 'auto' && publicUrl != null) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ style: { opacity, overflow: 'hidden' } })}>\n {nextMajorVersion < 13 ? (\n <NextLegacyImage\n src={publicUrl}\n layout=\"fill\"\n objectPosition={backgroundPosition}\n objectFit={size}\n />\n ) : (\n <NextImage\n src={publicUrl}\n alt={''}\n fill\n sizes=\"100vw\"\n style={{\n objectPosition: backgroundPosition,\n objectFit: size,\n }}\n />\n )}\n </div>\n )}\n </Parallax>\n )\n }\n\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div\n className={containerClassName}\n {...getParallaxProps({\n style: {\n backgroundImage: publicUrl != null ? `url('${publicUrl}')` : undefined,\n backgroundPosition,\n backgroundRepeat: repeat,\n backgroundSize: size,\n opacity,\n },\n })}\n />\n )}\n </Parallax>\n )\n}\n\ntype GradientBackgroundProps = {\n gradient: string\n angle?: number\n isRadial?: boolean\n}\n\nfunction GradientBackground({\n gradient,\n isRadial = false,\n angle = Math.PI,\n}: GradientBackgroundProps) {\n return (\n <div\n className={useStyle({\n ...containerStyle,\n background: isRadial\n ? `radial-gradient(${gradient})`\n : `linear-gradient(${angle}rad, ${gradient})`,\n })}\n />\n )\n}\n\nconst BackgroundVideoAspectRatio = {\n Wide: 'wide',\n Standard: 'standard',\n} as const\n\ntype BackgroundVideoAspectRatio =\n typeof BackgroundVideoAspectRatio[keyof typeof BackgroundVideoAspectRatio]\n\nfunction getAspectRatio(aspectRatio: BackgroundVideoAspectRatio | null | undefined): number {\n switch (aspectRatio) {\n case 'wide':\n return 16 / 9\n\n case 'standard':\n return 4 / 3\n\n default:\n return 16 / 9\n }\n}\n\ntype VideoBackgroundProps = {\n url?: string\n aspectRatio?: BackgroundVideoAspectRatio\n maskColor: string\n zoom?: number\n opacity?: number\n parallax?: number\n}\n\nfunction VideoBackground({\n url,\n aspectRatio,\n maskColor,\n zoom,\n opacity,\n parallax,\n}: VideoBackgroundProps) {\n return (\n <Parallax strength={parallax}>\n {getParallaxProps => (\n <div {...getParallaxProps({ className: useStyle(containerStyle) })}>\n <BackgroundVideo\n url={url}\n zoom={zoom}\n opacity={opacity}\n aspectRatio={getAspectRatio(aspectRatio)}\n maskColor={maskColor}\n />\n </div>\n )}\n </Parallax>\n )\n}\n","import { cx } from '@emotion/css'\nimport { motion } from 'framer-motion'\nimport {\n Children,\n ComponentPropsWithoutRef,\n ElementType,\n forwardRef,\n ReactElement,\n Ref,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { BackgroundsValue as BackgroundsPropControllerValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { useBackgrounds } from '../../hooks'\nimport Backgrounds from './components/Backgrounds'\n\ntype BaseProps = {\n hasAnimations?: boolean\n backgrounds: BackgroundsPropControllerValue | null | undefined\n children: ReactElement<ElementType>\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof motion.div>, keyof BaseProps>\n\nexport default forwardRef<HTMLDivElement | null, Props>(function BackgroundsContainer(\n { hasAnimations = false, backgrounds, children, className, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement | null>,\n) {\n const [handle, setHandle] = useState<HTMLDivElement | null>(null)\n const Component = hasAnimations ? motion.div : 'div'\n\n useImperativeHandle(ref, () => handle, [handle])\n\n return (\n // @ts-ignore: props for `div` and `motion.div` don't match.\n <Component\n {...restOfProps}\n ref={setHandle}\n className={cx(\n useStyle({\n position: 'relative',\n width: '100%',\n margin: '0 auto',\n '> *': {\n borderRadius: 'inherit',\n height: 'inherit',\n },\n '> :last-child': {\n position: 'relative',\n },\n }),\n className,\n )}\n >\n <Backgrounds backgrounds={useBackgrounds(backgrounds)} />\n {Children.only(children)}\n </Component>\n )\n})\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef, ElementType } from 'react'\nimport { ResponsiveValue, Length as LengthValue } from '../../prop-controllers'\nimport { useStyle } from '../../runtimes/react/use-style'\nimport { responsiveGridItem } from '../utils/responsive-style'\n\ntype BaseProps<T extends ElementType> = {\n as?: T\n className?: string\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}\n\ntype Props<T extends ElementType> = BaseProps<T> &\n Omit<ComponentPropsWithoutRef<T>, keyof BaseProps<T>>\n\nexport function GridItem<T extends ElementType = 'div'>({\n as,\n grid,\n index,\n columnGap,\n rowGap,\n className,\n ...restOfProps\n}: Props<T>) {\n const gridItemClassName = useStyle(responsiveGridItem({ grid, index, columnGap, rowGap }))\n const Component = as ?? 'div'\n\n return <Component {...restOfProps} className={cx(gridItemClassName, className)} />\n}\n"],"names":["getBackgroundsFileIds","useFiles","getBackgroundsSwatchIds","useSwatches","useMemo","isNonNullable","element","overflow","overflowY","overflowX","ownerDocument","defaultView","getComputedStyle","test","parentElement","isScrollable","getScrollParent","strength","children","rest","container","useRef","containerScrollTop","setContainerScrollTop","useState","lastScrollParentScrollTop","useIsomorphicLayoutEffect","current","undefined","containerDocument","scrollParent","eventTarget","documentElement","scrollTop","requestAnimationFrame","top","containerTop","bottom","containerBottom","getBoundingClientRect","scrollParentTop","scrollParentBottom","innerHeight","scrollParentScrollTop","pageYOffset","scrollParentHeight","scrollParentScrollDelta","isContainerVisible","containerScrollRemaining","scrollParentScrollRemaining","parallaxRatio","containerScrollDelta","clamp","addEventListener","handleScroll","removeEventListener","getProps","useCallback","style","restOfChildrenProps","position","left","right","transform","Container","forwardRef","ref","className","restOfProps","cx","useStyle","pointerEvents","backgroundColor","visible","background","opacity","transition","getScale","aspectRatio","zoom","offsetWidth","width","offsetHeight","height","computedAspectRatio","Math","max","url","maskColor","ready","setReady","scale","setScale","containerEl","handleResize","ReactPlayer","canPlay","_jsx","_Fragment","vimeo","playerOptions","youtube","playerVars","origin","location","wistia","options","endVideoBehavior","playbackRateControl","playbar","playButton","volumeControl","fullscreenButton","muted","NextLegacyImage","NextImage","color","swatch","colorToString","hue","saturation","lightness","getStopsStyle","stops","map","getColor","join","absoluteFillStyle","containerStyle","borderRadius","backgrounds","value","deviceId","visibility","v","layer","visibilityStyle","responsiveStyle","display","reverse","bg","type","payload","id","ImageBackgroundRepeat","NoRepeat","RepeatX","RepeatY","Repeat","ImageBackgroundSize","Cover","Contain","Auto","publicUrl","repeat","size","parallax","backgroundPosition","x","y","containerClassName","getParallaxProps","nextMajorVersion","objectPosition","objectFit","backgroundImage","backgroundRepeat","backgroundSize","gradient","isRadial","angle","PI","getAspectRatio","hasAnimations","handle","setHandle","Component","motion","div","useImperativeHandle","margin","useBackgrounds","Children","only","as","grid","index","columnGap","rowGap","gridItemClassName","responsiveGridItem"],"mappings":"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"}
@@ -1,595 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { cx } from "@emotion/css";
33
- import { motion } from "framer-motion";
34
- import { useMemo, useRef, useState, useCallback, forwardRef, createElement, useImperativeHandle, Children } from "react";
35
- import { N as useFiles, K as useSwatches, s as useIsomorphicLayoutEffect, n as useStyle, r as responsiveStyle, q as colorToString, w as responsiveGridItem } from "./index.es.js";
36
- import { l as isNonNullable, x as getBackgroundsFileIds, y as getBackgroundsSwatchIds } from "./react-page.es.js";
37
- import "./slot.es.js";
38
- import "use-sync-external-store/shim";
39
- import NextImage from "next/image";
40
- import { jsx, Fragment, jsxs } from "react/jsx-runtime";
41
- import ReactPlayer from "react-player";
42
- import { m as major } from "./next-version.es.js";
43
- function useBackgrounds(value) {
44
- const fileIds = getBackgroundsFileIds(value);
45
- const files = useFiles(fileIds);
46
- const swatchIds = getBackgroundsSwatchIds(value);
47
- const swatches = useSwatches(swatchIds);
48
- return useMemo(() => {
49
- if (value == null)
50
- return null;
51
- return value.map((_a) => {
52
- var _b = _a, { value: backgrounds } = _b, restOfValue = __objRest(_b, ["value"]);
53
- return __spreadProps(__spreadValues({}, restOfValue), {
54
- value: backgrounds.map((bg) => {
55
- if (bg.type === "image" && bg.payload != null && bg.payload.imageId != null) {
56
- const _a2 = bg.payload, { imageId } = _a2, restOfPayload = __objRest(_a2, ["imageId"]);
57
- const file = files.find((f) => f && f.id === imageId);
58
- return file && {
59
- id: bg.id,
60
- type: "image",
61
- payload: __spreadProps(__spreadValues({}, restOfPayload), {
62
- publicUrl: file.publicUrl,
63
- dimensions: file.dimensions
64
- })
65
- };
66
- }
67
- if (bg.type === "color" && bg.payload != null) {
68
- const { swatchId, alpha } = bg.payload;
69
- const swatch = swatches.filter(isNonNullable).find((s) => s && s.id === swatchId);
70
- return { id: bg.id, type: "color", payload: { swatch, alpha } };
71
- }
72
- if (bg.type === "gradient" && bg.payload != null && bg.payload.stops.length > 0) {
73
- return {
74
- id: bg.id,
75
- type: "gradient",
76
- payload: {
77
- angle: bg.payload.angle,
78
- isRadial: bg.payload.isRadial,
79
- stops: bg.payload.stops.map((_b2) => {
80
- var _c = _b2, { color } = _c, restOfStop = __objRest(_c, ["color"]);
81
- return __spreadProps(__spreadValues({}, restOfStop), {
82
- color: color && {
83
- swatch: swatches.filter(isNonNullable).find((s) => s && s.id === color.swatchId),
84
- alpha: color.alpha
85
- }
86
- });
87
- })
88
- }
89
- };
90
- }
91
- if (bg.type === "video" && bg.payload != null) {
92
- const _d = bg.payload, { maskColor } = _d, restOfPayload = __objRest(_d, ["maskColor"]);
93
- const swatch = maskColor && swatches.find((s) => s && s.id === maskColor.swatchId);
94
- return {
95
- id: bg.id,
96
- type: "video",
97
- payload: __spreadProps(__spreadValues({}, restOfPayload), {
98
- maskColor: swatch && maskColor && { swatch, alpha: maskColor.alpha }
99
- })
100
- };
101
- }
102
- return null;
103
- }).filter(isNonNullable)
104
- });
105
- });
106
- }, [files, swatches, value]);
107
- }
108
- const clamp = (min, val, max) => Math.min(Math.max(min, val), max);
109
- function isScrollable(element) {
110
- const {
111
- overflow,
112
- overflowY,
113
- overflowX
114
- } = element.ownerDocument.defaultView.getComputedStyle(element);
115
- return /(auto|scroll)/.test(overflow + overflowX + overflowY);
116
- }
117
- function getScrollParent(element) {
118
- const {
119
- parentElement
120
- } = element;
121
- if (!element || !parentElement)
122
- return element;
123
- if (isScrollable(element))
124
- return element;
125
- return getScrollParent(parentElement);
126
- }
127
- function Parallax(_a) {
128
- var _b = _a, {
129
- strength,
130
- children
131
- } = _b, rest = __objRest(_b, [
132
- "strength",
133
- "children"
134
- ]);
135
- const container = useRef(null);
136
- const [containerScrollTop, setContainerScrollTop] = useState(strength == null ? 0 : strength);
137
- const lastScrollParentScrollTop = useRef(0);
138
- useIsomorphicLayoutEffect(() => {
139
- if (!container.current || strength == null || strength === 0)
140
- return void 0;
141
- const containerDocument = container.current.ownerDocument;
142
- const scrollParent = getScrollParent(container.current);
143
- const eventTarget = containerDocument.documentElement === scrollParent ? containerDocument.defaultView : scrollParent;
144
- lastScrollParentScrollTop.current = scrollParent.scrollTop;
145
- setContainerScrollTop(strength);
146
- function handleScroll() {
147
- containerDocument.defaultView.requestAnimationFrame(() => {
148
- if (!container.current)
149
- return;
150
- const {
151
- top: containerTop,
152
- bottom: containerBottom
153
- } = container.current.getBoundingClientRect();
154
- const {
155
- top: scrollParentTop,
156
- bottom: scrollParentBottom
157
- } = scrollParent === containerDocument.documentElement ? {
158
- top: 0,
159
- bottom: containerDocument.defaultView.innerHeight
160
- } : scrollParent.getBoundingClientRect();
161
- const {
162
- scrollTop: scrollParentScrollTop
163
- } = scrollParent === containerDocument.documentElement ? {
164
- scrollTop: containerDocument.defaultView.pageYOffset
165
- } : scrollParent;
166
- const scrollParentHeight = scrollParentBottom - scrollParentTop;
167
- const scrollParentScrollDelta = scrollParentScrollTop - lastScrollParentScrollTop.current;
168
- lastScrollParentScrollTop.current = scrollParentScrollTop;
169
- setContainerScrollTop((scrollTop) => {
170
- const isContainerVisible = containerTop < scrollParentTop + scrollParentHeight && containerBottom > scrollParentTop;
171
- const containerScrollRemaining = scrollParentScrollDelta > 0 ? 2 * strength - scrollTop : scrollTop;
172
- const scrollParentScrollRemaining = scrollParentScrollDelta > 0 ? scrollParentTop + containerBottom : scrollParentHeight - containerTop;
173
- const parallaxRatio = containerScrollRemaining / scrollParentScrollRemaining;
174
- const containerScrollDelta = isContainerVisible ? parallaxRatio * scrollParentScrollDelta : 0;
175
- return clamp(0, scrollTop + containerScrollDelta, strength * 2);
176
- });
177
- });
178
- }
179
- eventTarget.addEventListener("scroll", handleScroll);
180
- return () => eventTarget.removeEventListener("scroll", handleScroll);
181
- }, [strength]);
182
- const getProps = useCallback((_a2) => {
183
- var _b2 = _a2, {
184
- style
185
- } = _b2, restOfChildrenProps = __objRest(_b2, [
186
- "style"
187
- ]);
188
- return __spreadProps(__spreadValues({}, restOfChildrenProps), {
189
- style: __spreadValues(__spreadProps(__spreadValues({}, style), {
190
- position: "absolute",
191
- left: 0,
192
- right: 0,
193
- top: 0,
194
- bottom: 0
195
- }), strength == null || strength === 0 ? {} : {
196
- top: -strength,
197
- bottom: -strength,
198
- transform: `translate3d(0, ${containerScrollTop - strength}px, 0)`
199
- })
200
- });
201
- }, [strength, containerScrollTop]);
202
- return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, rest), {
203
- ref: container,
204
- style: {
205
- position: "absolute",
206
- top: 0,
207
- left: 0,
208
- right: 0,
209
- bottom: 0
210
- },
211
- children: children(getProps)
212
- }));
213
- }
214
- const Container = forwardRef(function Container2(_c, ref) {
215
- var _d = _c, {
216
- className
217
- } = _d, restOfProps = __objRest(_d, [
218
- "className"
219
- ]);
220
- return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
221
- ref,
222
- className: cx(useStyle({
223
- position: "absolute",
224
- top: 0,
225
- left: 0,
226
- right: 0,
227
- bottom: 0,
228
- pointerEvents: "none",
229
- overflow: "hidden"
230
- }), className)
231
- }));
232
- });
233
- function Mask({
234
- backgroundColor,
235
- visible
236
- }) {
237
- return /* @__PURE__ */ jsx("div", {
238
- className: useStyle({
239
- position: "absolute",
240
- top: 0,
241
- left: 0,
242
- right: 0,
243
- bottom: 0,
244
- background: backgroundColor,
245
- opacity: visible ? 1 : 0,
246
- transition: "opacity 1s"
247
- })
248
- });
249
- }
250
- const getScale = (element, aspectRatio, zoom) => {
251
- const {
252
- offsetWidth: width,
253
- offsetHeight: height
254
- } = element;
255
- const computedAspectRatio = width / height;
256
- return Math.max(aspectRatio / computedAspectRatio, computedAspectRatio / aspectRatio) * zoom;
257
- };
258
- function BackgroundVideo({
259
- url = "",
260
- aspectRatio = 16 / 9,
261
- zoom = 1,
262
- maskColor,
263
- opacity
264
- }) {
265
- var _a;
266
- const [ready, setReady] = useState(false);
267
- const [scale, setScale] = useState(1);
268
- const container = useRef(null);
269
- useIsomorphicLayoutEffect(() => {
270
- const {
271
- current: containerEl
272
- } = container;
273
- if (!containerEl)
274
- return void 0;
275
- const {
276
- defaultView
277
- } = containerEl.ownerDocument;
278
- const handleResize = () => setScale(getScale(containerEl, aspectRatio, zoom));
279
- handleResize();
280
- defaultView.addEventListener("resize", handleResize);
281
- return () => defaultView.removeEventListener("resize", handleResize);
282
- }, [aspectRatio, zoom]);
283
- if (!ReactPlayer.canPlay(url))
284
- return /* @__PURE__ */ jsx(Fragment, {});
285
- return /* @__PURE__ */ jsxs(Container, {
286
- ref: container,
287
- children: [container.current && /* @__PURE__ */ jsx(ReactPlayer, {
288
- url,
289
- config: {
290
- vimeo: {
291
- playerOptions: {
292
- background: true
293
- }
294
- },
295
- youtube: {
296
- playerVars: {
297
- origin: (_a = container.current.ownerDocument.defaultView) == null ? void 0 : _a.location.origin
298
- }
299
- },
300
- wistia: {
301
- options: {
302
- endVideoBehavior: "loop",
303
- playbackRateControl: false,
304
- playbar: false,
305
- playButton: false,
306
- volumeControl: false,
307
- fullscreenButton: false,
308
- muted: true
309
- }
310
- }
311
- },
312
- playing: true,
313
- loop: true,
314
- muted: true,
315
- controls: false,
316
- onReady: () => setReady(true),
317
- style: {
318
- transform: `scale3d(${scale}, ${scale}, 1)`,
319
- opacity
320
- },
321
- width: "100%",
322
- height: "100%"
323
- }), /* @__PURE__ */ jsx(Mask, {
324
- backgroundColor: maskColor,
325
- visible: !ready
326
- })]
327
- });
328
- }
329
- const NextLegacyImage = NextImage;
330
- function getColor(color) {
331
- if (color == null)
332
- return "black";
333
- if (color.swatch == null) {
334
- return colorToString(__spreadProps(__spreadValues({}, color), {
335
- swatch: {
336
- hue: 0,
337
- saturation: 0,
338
- lightness: 0
339
- }
340
- }));
341
- }
342
- return colorToString(color);
343
- }
344
- const getStopsStyle = (stops) => stops.map(({
345
- color,
346
- location
347
- }) => `${getColor(color)} ${location}%`).join(",");
348
- const absoluteFillStyle = {
349
- position: "absolute",
350
- top: 0,
351
- right: 0,
352
- bottom: 0,
353
- left: 0
354
- };
355
- const containerStyle = __spreadProps(__spreadValues({}, absoluteFillStyle), {
356
- borderRadius: "inherit"
357
- });
358
- function Backgrounds({
359
- backgrounds
360
- }) {
361
- if (backgrounds == null)
362
- return /* @__PURE__ */ jsx(Fragment, {});
363
- return /* @__PURE__ */ jsx(Fragment, {
364
- children: backgrounds.map(({
365
- value,
366
- deviceId
367
- }) => {
368
- const visibility = backgrounds.map((v) => ({
369
- deviceId: v.deviceId,
370
- value: v.deviceId === deviceId
371
- }));
372
- return /* @__PURE__ */ jsx(BackgroundDeviceLayer, {
373
- layer: value,
374
- visibility
375
- }, deviceId);
376
- })
377
- });
378
- }
379
- function BackgroundDeviceLayer({
380
- layer,
381
- visibility
382
- }) {
383
- const visibilityStyle = responsiveStyle([visibility], ([v]) => ({
384
- display: v === true ? "block" : "none"
385
- }));
386
- return /* @__PURE__ */ jsx("div", {
387
- className: useStyle(__spreadProps(__spreadValues(__spreadValues({}, containerStyle), visibilityStyle), {
388
- overflow: "hidden"
389
- })),
390
- children: [...layer].reverse().map((bg) => {
391
- if (bg.type === "color") {
392
- return /* @__PURE__ */ jsx(ColorBackground, {
393
- color: getColor(bg.payload)
394
- }, bg.id);
395
- }
396
- if (bg.type === "image" && bg.payload) {
397
- return /* @__PURE__ */ createElement(ImageBackground, __spreadProps(__spreadValues({}, bg.payload), {
398
- key: bg.id
399
- }));
400
- }
401
- if (bg.type === "gradient" && bg.payload) {
402
- return /* @__PURE__ */ createElement(GradientBackground, __spreadProps(__spreadValues({}, bg.payload), {
403
- key: bg.id,
404
- gradient: getStopsStyle(bg.payload.stops)
405
- }));
406
- }
407
- if (bg.type === "video" && bg.payload) {
408
- return /* @__PURE__ */ createElement(VideoBackground, __spreadProps(__spreadValues({}, bg.payload), {
409
- key: bg.id,
410
- maskColor: getColor(bg.payload.maskColor)
411
- }));
412
- }
413
- return null;
414
- })
415
- });
416
- }
417
- function ColorBackground({
418
- color
419
- }) {
420
- return /* @__PURE__ */ jsx("div", {
421
- className: useStyle(__spreadProps(__spreadValues({}, containerStyle), {
422
- backgroundColor: color
423
- }))
424
- });
425
- }
426
- const ImageBackgroundRepeat = {
427
- NoRepeat: "no-repeat",
428
- RepeatX: "repeat-x",
429
- RepeatY: "repeat-y",
430
- Repeat: "repeat"
431
- };
432
- const ImageBackgroundSize = {
433
- Cover: "cover",
434
- Contain: "contain",
435
- Auto: "auto"
436
- };
437
- function ImageBackground({
438
- publicUrl,
439
- position,
440
- repeat = ImageBackgroundRepeat.NoRepeat,
441
- size = ImageBackgroundSize.Cover,
442
- opacity,
443
- parallax
444
- }) {
445
- const backgroundPosition = `${position.x}% ${position.y}%`;
446
- const containerClassName = useStyle(containerStyle);
447
- if (repeat === "no-repeat" && size !== "auto" && publicUrl != null) {
448
- return /* @__PURE__ */ jsx(Parallax, {
449
- strength: parallax,
450
- children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, getParallaxProps({
451
- style: {
452
- opacity,
453
- overflow: "hidden"
454
- }
455
- })), {
456
- children: major < 13 ? /* @__PURE__ */ jsx(NextLegacyImage, {
457
- src: publicUrl,
458
- layout: "fill",
459
- objectPosition: backgroundPosition,
460
- objectFit: size
461
- }) : /* @__PURE__ */ jsx(NextImage, {
462
- src: publicUrl,
463
- alt: "",
464
- fill: true,
465
- sizes: "100vw",
466
- style: {
467
- objectPosition: backgroundPosition,
468
- objectFit: size
469
- }
470
- })
471
- }))
472
- });
473
- }
474
- return /* @__PURE__ */ jsx(Parallax, {
475
- strength: parallax,
476
- children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadValues({
477
- className: containerClassName
478
- }, getParallaxProps({
479
- style: {
480
- backgroundImage: publicUrl != null ? `url('${publicUrl}')` : void 0,
481
- backgroundPosition,
482
- backgroundRepeat: repeat,
483
- backgroundSize: size,
484
- opacity
485
- }
486
- })))
487
- });
488
- }
489
- function GradientBackground({
490
- gradient,
491
- isRadial = false,
492
- angle = Math.PI
493
- }) {
494
- return /* @__PURE__ */ jsx("div", {
495
- className: useStyle(__spreadProps(__spreadValues({}, containerStyle), {
496
- background: isRadial ? `radial-gradient(${gradient})` : `linear-gradient(${angle}rad, ${gradient})`
497
- }))
498
- });
499
- }
500
- function getAspectRatio(aspectRatio) {
501
- switch (aspectRatio) {
502
- case "wide":
503
- return 16 / 9;
504
- case "standard":
505
- return 4 / 3;
506
- default:
507
- return 16 / 9;
508
- }
509
- }
510
- function VideoBackground({
511
- url,
512
- aspectRatio,
513
- maskColor,
514
- zoom,
515
- opacity,
516
- parallax
517
- }) {
518
- return /* @__PURE__ */ jsx(Parallax, {
519
- strength: parallax,
520
- children: (getParallaxProps) => /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, getParallaxProps({
521
- className: useStyle(containerStyle)
522
- })), {
523
- children: /* @__PURE__ */ jsx(BackgroundVideo, {
524
- url,
525
- zoom,
526
- opacity,
527
- aspectRatio: getAspectRatio(aspectRatio),
528
- maskColor
529
- })
530
- }))
531
- });
532
- }
533
- var BackgroundsContainer = forwardRef(function BackgroundsContainer2(_e, ref) {
534
- var _f = _e, {
535
- hasAnimations = false,
536
- backgrounds,
537
- children,
538
- className
539
- } = _f, restOfProps = __objRest(_f, [
540
- "hasAnimations",
541
- "backgrounds",
542
- "children",
543
- "className"
544
- ]);
545
- const [handle, setHandle] = useState(null);
546
- const Component = hasAnimations ? motion.div : "div";
547
- useImperativeHandle(ref, () => handle, [handle]);
548
- return /* @__PURE__ */ jsxs(Component, __spreadProps(__spreadValues({}, restOfProps), {
549
- ref: setHandle,
550
- className: cx(useStyle({
551
- position: "relative",
552
- width: "100%",
553
- margin: "0 auto",
554
- "> *": {
555
- borderRadius: "inherit",
556
- height: "inherit"
557
- },
558
- "> :last-child": {
559
- position: "relative"
560
- }
561
- }), className),
562
- children: [/* @__PURE__ */ jsx(Backgrounds, {
563
- backgrounds: useBackgrounds(backgrounds)
564
- }), Children.only(children)]
565
- }));
566
- });
567
- function GridItem(_g) {
568
- var _h = _g, {
569
- as,
570
- grid,
571
- index,
572
- columnGap,
573
- rowGap,
574
- className
575
- } = _h, restOfProps = __objRest(_h, [
576
- "as",
577
- "grid",
578
- "index",
579
- "columnGap",
580
- "rowGap",
581
- "className"
582
- ]);
583
- const gridItemClassName = useStyle(responsiveGridItem({
584
- grid,
585
- index,
586
- columnGap,
587
- rowGap
588
- }));
589
- const Component = as != null ? as : "div";
590
- return /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({}, restOfProps), {
591
- className: cx(gridItemClassName, className)
592
- }));
593
- }
594
- export { BackgroundsContainer as B, GridItem as G, useBackgrounds as u };
595
- //# sourceMappingURL=grid-item.es.js.map