@weaverse/react 1.0.44 → 1.0.45
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.
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/context.ts","../src/elements/button.tsx","../src/elements/container.tsx","../src/components/modal/index.tsx","../src/components/icons/index.tsx","../src/components/icons/phosphor.tsx","../src/components/modal/styled.ts","../src/components/modal/use-open-change-effect.ts","../src/components/spinner.tsx","../src/components/tooltip.tsx","../src/components/slider/index.tsx","../src/components/slider/arrows.tsx","../src/components/slider/resize-plugin.ts","../src/components/background.tsx","../src/components/overlay.tsx","../src/components/slider/dots.tsx","../src/components/slider/autoplay-plugin.ts","../src/components/placeholder.tsx","../src/components/no-hydrate.tsx","../src/components/index.ts","../src/elements/countdown/index.tsx","../src/constant/index.ts","../src/utils/index.ts","../src/elements/countdown/timer-block.tsx","../src/elements/image.tsx","../src/elements/layout.tsx","../src/elements/map.tsx","../src/elements/text.tsx","../src/elements/scrolling-text.tsx","../src/elements/video/index.tsx","../src/elements/video/html-video.tsx","../src/elements/video/vimeo.tsx","../src/elements/video/youtube.tsx","../src/elements/instagram.tsx","../src/elements/slideshow/index.tsx","../src/elements/slideshow/use-slideshow-configs.ts","../src/utils/css.ts","../src/elements/slideshow/slide.tsx","../src/elements/slideshow/position.ts","../src/elements/index.ts","../src/renderer.tsx","../src/utils/uploadcare.ts"],"sourcesContent":["export * from '@weaverse/core'\nexport * from './context'\nexport * from './components'\nexport * from './elements'\nexport * from './renderer'\nexport * from './types'\nexport * from './types/components'\n","import type { WeaverseType } from '@weaverse/core'\nimport { Weaverse } from '@weaverse/core'\nimport { createContext } from 'react'\nimport { Elements } from './elements'\n\nexport let createRootContext = (configs: WeaverseType) => {\n let rootContext = new Weaverse(configs)\n Object.keys(Elements).forEach((key) => {\n rootContext.registerElement(Elements[key])\n })\n return rootContext\n}\n\nexport let WeaverseContext = createContext<Weaverse>({} as Weaverse)\nexport let WeaverseContextProvider = WeaverseContext.Provider\nexport let WeaverseContextConsumer = WeaverseContext.Consumer\n","import * as React from 'react'\nimport type { ButtonElementProps } from '~/types'\nimport type { ElementCSS } from '@weaverse/core'\nimport { useContext } from 'react'\nimport { WeaverseContext } from '~/context'\n\nexport let Button = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonElementProps\n>((props, ref) => {\n let { isDesignMode } = useContext(WeaverseContext)\n let { text, clickAction, linkTo, openInNewTab, ...rest } = props\n\n if (clickAction === 'none') {\n return (\n <button ref={ref as React.MutableRefObject<HTMLButtonElement>} {...rest}>\n {text}\n </button>\n )\n }\n return (\n <a\n ref={ref as React.MutableRefObject<HTMLAnchorElement>}\n href={!isDesignMode ? linkTo : undefined}\n target={openInNewTab ? '_blank' : '_self'}\n rel=\"noreferrer\"\n {...rest}\n >\n {text}\n </a>\n )\n})\n\nButton.defaultProps = {\n type: 'button',\n text: 'BUTTON',\n clickAction: 'none',\n linkTo: '',\n openInNewTab: false,\n}\n\nexport let css: ElementCSS = {\n '@desktop': {\n borderRadius: '4px',\n border: 'none',\n backgroundColor: '#3E3F40',\n color: '#fff',\n fontSize: '14px',\n lineHeight: '1.5',\n letterSpacing: '0',\n fontWeight: 'medium',\n padding: '10px 20px',\n height: '42px',\n minWidth: '120px',\n textDecoration: 'none',\n textAlign: 'center',\n '&:hover': {\n backgroundColor: '#1A1B1B',\n },\n },\n}\n\nexport default Button\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { Children, forwardRef } from 'react'\nimport type { ContainerElementProps } from '~/types'\nimport { Components } from '~/components'\n\nlet Container = forwardRef<HTMLDivElement, ContainerElementProps>(\n (props, ref) => {\n let { children, ...rest } = props\n\n return (\n <div ref={ref} {...rest}>\n {Children.count(children) ? (\n children\n ) : (\n <Components.Placeholder element={'Container'}>\n Drop element here\n </Components.Placeholder>\n )}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n gridArea: '1 / 1 / 3 / 6',\n overflow: 'hidden',\n // minWidth: '300px',\n minHeight: '100px',\n },\n '@mobile': {\n minHeight: '100px',\n },\n}\n\nContainer.defaultProps = {}\n\nexport default Container\n","import type {\n DialogCloseProps,\n DialogProps,\n DialogTitleProps,\n} from '@radix-ui/react-dialog'\nimport { Close, Portal, Root, Trigger } from '@radix-ui/react-dialog'\nimport React, { forwardRef } from 'react'\nimport type { ModalContentProps } from '~/types/components'\nimport { Icon } from '../icons'\nimport {\n StyledCloseIcon,\n StyledContent,\n StyledOverlay,\n StyledTitle,\n} from './styled'\nimport { useOpenChangeEffect } from './use-open-change-effect'\n\nexport let Modal = (props: DialogProps) => {\n let { children, open, defaultOpen, onOpenChange, ...rest } = props\n let handleOpenChange = useOpenChangeEffect(props)\n\n return (\n <Root\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={handleOpenChange}\n {...rest}\n >\n {children}\n </Root>\n )\n}\n\nexport let ModalTrigger = Trigger\nexport let ModalHeader = forwardRef<HTMLHeadingElement, DialogTitleProps>(\n (props, ref) => {\n let { children, ...rest } = props\n return (\n <StyledTitle ref={ref} {...rest} data-wv-modal-header>\n {children}\n </StyledTitle>\n )\n }\n)\n\nexport let ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n (props, ref) => {\n let { children, size, portal, ...rest } = props\n let modalContent = (\n <>\n <StyledOverlay />\n <StyledContent\n {...rest}\n onCloseAutoFocus={(e) => e.preventDefault()}\n data-wv-modal\n data-size={size}\n ref={ref}\n >\n <ModalClose />\n <div className=\"wv-modal-content\">{children}</div>\n </StyledContent>\n </>\n )\n\n if (portal) {\n return <Portal>{modalContent}</Portal>\n }\n return modalContent\n }\n)\n\nModalContent.defaultProps = {\n size: 'auto',\n portal: false,\n}\n\nexport let ModalClose = forwardRef<HTMLButtonElement, DialogCloseProps>(\n (props, ref) => {\n let { asChild, children, ...rest } = props\n let closeIcon = (\n <StyledCloseIcon>\n <Icon name=\"X\" />\n </StyledCloseIcon>\n )\n return (\n <Close asChild {...rest} ref={ref}>\n {asChild ? children : closeIcon}\n </Close>\n )\n }\n)\n","import React from 'react'\nimport type { WeaverseIconProps } from '~/types/components'\nimport * as PhosphorIcons from './phosphor'\nimport clsx from 'clsx'\n\nexport function Icon({ name, className, ...props }: WeaverseIconProps) {\n let WeaverseIcon = PhosphorIcons[name]\n let cls = clsx('wv-icon', className)\n return <WeaverseIcon className={cls} {...props} />\n}\n","import type { HTMLAttributes } from 'react'\nimport React from 'react'\n\nexport let Circle = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <circle cx=\"128\" cy=\"128\" r=\"104\"></circle>\n </svg>\n )\n}\n\nexport let CircleNotch = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <circle\n style={{ opacity: '.25' }}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n style={{ opacity: '.75' }}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )\n}\n\nexport let X = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"200\"\n y1=\"56\"\n x2=\"56\"\n y2=\"200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"200\"\n y1=\"200\"\n x2=\"56\"\n y2=\"56\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Minus = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Plus = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <line\n x1=\"128\"\n y1=\"40\"\n x2=\"128\"\n y2=\"216\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let CaretLeft = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <polyline\n points=\"160 208 80 128 160 48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let CaretRight = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <polyline\n points=\"96 48 176 128 96 208\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let ArrowLeft = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"216\"\n y1=\"128\"\n x2=\"40\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <polyline\n points=\"112 56 40 128 112 200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let ArrowRight = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <polyline\n points=\"144 56 216 128 144 200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Image = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 640 512\"\n {...props}\n >\n <path d=\"M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z\" />\n </svg>\n )\n}\n\nexport let ShoppingCart = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <circle\n cx=\"80\"\n cy=\"204\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <circle\n cx=\"184\"\n cy=\"204\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <path\n d=\"M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Storefront = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M96,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M160,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M224,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Package = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <polyline\n points=\"177 152.5 177 100.5 80 47\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <polyline\n points=\"222.9 74.6 128.9 128 33.1 74.6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <line\n x1=\"128.9\"\n y1=\"128\"\n x2=\"128\"\n y2=\"234.8\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n </svg>\n )\n}\n\nexport let HandBag = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <path\n d=\"M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n <path\n d=\"M88,104V72a40,40,0,0,1,80,0v32\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n </svg>\n )\n}\n\nexport let Tag = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <path\n d=\"M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n <circle cx=\"84\" cy=\"84\" r=\"12\"></circle>\n </svg>\n )\n}\n\nexport let Backpack = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"112\"\n y1=\"88\"\n x2=\"144\"\n y2=\"88\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"80\"\n y1=\"168\"\n x2=\"176\"\n y2=\"168\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"144\"\n y1=\"168\"\n x2=\"144\"\n y2=\"184\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Newspaper = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"96\"\n y1=\"112\"\n x2=\"176\"\n y2=\"112\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <line\n x1=\"96\"\n y1=\"144\"\n x2=\"176\"\n y2=\"144\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M32,200a16,16,0,0,1-16-16h0V88\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n </svg>\n )\n}\n\nexport let Eye = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <circle\n cx=\"128\"\n cy=\"128\"\n r=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n","import { Content, Overlay, Title } from '@radix-ui/react-dialog'\nimport { keyframes, styled } from '@stitches/react'\n\nlet overlayShow = keyframes({\n '0%': { opacity: 0 },\n '100%': { opacity: 1 },\n})\n\nlet contentShow = keyframes({\n '0%': { opacity: 0, transform: 'translate(-50%, -48%) scale(.96)' },\n '100%': { opacity: 1, transform: 'translate(-50%, -50%) scale(1)' },\n})\n\nexport let StyledOverlay = styled(Overlay, {\n display: 'block !important',\n backgroundColor: 'rgba(0, 0, 0, .3)',\n position: 'fixed',\n zIndex: 99999,\n inset: 0,\n animation: `${overlayShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n})\n\nexport let StyledTitle = styled(Title, {\n margin: '0 0 24px',\n fontWeight: 500,\n fontSize: 24,\n '@media (max-width: 768px)': {\n margin: '0 0 16px',\n fontSize: 20,\n },\n})\n\nexport let StyledContent = styled(Content, {\n backgroundColor: 'white',\n borderRadius: 6,\n boxShadow:\n 'hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px',\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: 24,\n animation: `${contentShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n zIndex: 99999,\n maxWidth: '90vw',\n width: 'auto',\n '*': {\n maxWidth: '100%',\n },\n '&:focus': { outline: 'none' },\n '&[data-size=\"fullscreen\"]': {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n borderRadius: 0,\n },\n '@media (max-width: 768px)': {\n width: '90vw',\n padding: 12,\n '&[data-size=\"fullscreen\"]': {\n width: '100vw',\n },\n },\n})\n\nexport let StyledCloseIcon = styled('button', {\n all: 'unset',\n cursor: 'pointer',\n fontFamily: 'inherit',\n borderRadius: '100%',\n height: 32,\n width: 32,\n padding: 4,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'rgb(55, 65, 81)',\n position: 'absolute',\n top: 8,\n right: 8,\n '&:hover': {\n backgroundColor: 'rgba(112, 112, 112, .1)',\n },\n svg: {\n width: 24,\n height: 24,\n },\n})\n","import type { DialogProps } from '@radix-ui/react-dialog'\nimport { useContext, useEffect } from 'react'\nimport { WeaverseContext } from '~/index'\n\nexport function useOpenChangeEffect(props: DialogProps) {\n let { open, defaultOpen, onOpenChange } = props\n let rootCtx = useContext(WeaverseContext)\n\n let toggleRootzIndex = (open?: boolean) => {\n let { contentRootElement } = rootCtx\n if (contentRootElement) {\n if (open) {\n contentRootElement.classList.add('modal-open')\n } else {\n contentRootElement.classList.remove('modal-open')\n }\n }\n }\n\n useEffect(() => {\n let isOpen = open || defaultOpen\n toggleRootzIndex(isOpen)\n }, [open, defaultOpen])\n\n let handleOpenChange = (open: boolean) => {\n toggleRootzIndex(open)\n onOpenChange?.(open)\n }\n\n return handleOpenChange\n}\n","import React from 'react'\nimport { Icon } from './icons'\n\nexport function Spinner() {\n return (\n <span className=\"wv-spinner-wrapper\">\n <Icon name=\"CircleNotch\" className=\"wv-spinner\" />\n </span>\n )\n}\n","import type { TooltipProps } from '~/types/components'\nimport React from 'react'\n\nexport function Tooltip({ children }: TooltipProps) {\n return <span className=\"wv-tooltip\">{children}</span>\n}\n","import clsx from 'clsx'\nimport { useKeenSlider } from 'keen-slider/react'\nimport React, { useState } from 'react'\nimport type { SliderProps } from '~/types/components'\nimport { Arrows } from './arrows'\nimport { ResizePlugin } from './resize-plugin'\n\nexport function Slider(props: SliderProps) {\n let { children, className, gap, slidesPerView, arrowOffset } = props\n let [currentSlide, setCurrentSlide] = useState(0)\n let [created, setCreated] = useState(false)\n let [ref, instanceRef] = useKeenSlider<HTMLDivElement>(\n {\n slides: { perView: slidesPerView, spacing: gap },\n breakpoints: {\n '(max-width: 1024px)': {\n slides: { perView: 3, spacing: gap },\n },\n '(max-width: 768px)': {\n slides: {\n perView: 1,\n spacing: 32,\n },\n },\n },\n created: () => {\n setCreated(true)\n },\n slideChanged: (slider) => {\n setCurrentSlide(slider.track.details.rel)\n },\n },\n [ResizePlugin]\n )\n let _className = clsx('keen-slider', className)\n let arrowsClass = clsx(className && `${className}-arrows`)\n\n return (\n <>\n <div ref={ref} className={_className}>\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css\"\n />\n {children}\n </div>\n {created && instanceRef?.current && (\n <Arrows\n currentSlide={currentSlide}\n instanceRef={instanceRef}\n className={arrowsClass}\n offset={arrowOffset}\n icon=\"arrow\"\n />\n )}\n </>\n )\n}\n","import { styled } from '@stitches/react'\nimport clsx from 'clsx'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport type { SliderArrowsProps } from '~/types/components'\nimport { Icon } from '../icons'\n\nexport function Arrows(props: SliderArrowsProps) {\n let { currentSlide, instanceRef, className, icon, offset } = props\n let isFirst = currentSlide === 0\n let isLast = false\n if (instanceRef.current) {\n isLast = currentSlide === instanceRef?.current?.track?.details?.maxIdx\n }\n let style = {\n '--offset': `${offset}px`,\n } as React.CSSProperties\n\n return (\n <StyledArrows className={className} style={style}>\n <button\n type=\"button\"\n className={clsx('arrow arrow--left', isFirst && 'arrow--disabled')}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n instanceRef?.current?.prev()\n }}\n >\n <Icon name={icon === 'caret' ? 'CaretLeft' : 'ArrowLeft'} />\n </button>\n <button\n type=\"button\"\n className={clsx('arrow arrow--right', isLast && 'arrow--disabled')}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n instanceRef?.current?.next()\n }}\n >\n <Icon name={icon === 'caret' ? 'CaretRight' : 'ArrowRight'} />\n </button>\n </StyledArrows>\n )\n}\n\nlet StyledArrows = styled('div', {\n '.arrow': {\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n width: '44px',\n height: '44px',\n padding: '8px',\n color: '#191919',\n backgroundColor: '#f2f2f2',\n textAlign: 'center',\n transition: 'all 0.2s ease-in-out',\n borderRadius: '4px',\n border: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '#191919',\n color: '#f2f2f2',\n },\n svg: {\n verticalAlign: 'middle',\n width: '22px',\n height: '22px',\n },\n '&.arrow--left': {\n left: 'var(--offset, 0px)',\n },\n '&.arrow--right': {\n right: 'var(--offset, 0px)',\n },\n '&.arrow--disabled': {\n opacity: 0.5,\n },\n },\n '@media (max-width: 768px)': {\n '.arrow': {\n display: 'none',\n },\n },\n})\n","import type { KeenSliderPlugin } from 'keen-slider/react'\n\nexport let ResizePlugin: KeenSliderPlugin = (slider) => {\n let observer = new ResizeObserver(() => slider.update())\n slider.on('created', () => {\n observer.observe(slider.container)\n })\n slider.on('destroyed', () => {\n observer.unobserve(slider.container)\n })\n}\n","import type { CSSProperties } from 'react'\nimport React from 'react'\nimport type { BackgroundProps } from '~/types/components'\n\nexport function Background(props: BackgroundProps) {\n let {\n backgroundColor,\n backgroundImage,\n backgroundFit,\n backgroundPosition,\n className,\n } = props\n let style = {\n display: 'block',\n position: 'absolute',\n inset: 0,\n backgroundColor,\n } as CSSProperties\n\n if (backgroundImage || backgroundColor) {\n return (\n <div style={style} className={className}>\n {backgroundImage && (\n <img\n width=\"100%\"\n height=\"100%\"\n data-blink-src={backgroundImage}\n alt=\"Background\"\n style={{\n objectFit: backgroundFit,\n objectPosition: backgroundPosition,\n }}\n />\n )}\n </div>\n )\n }\n return null\n}\n","import React from 'react'\nimport type { OverlayProps } from '~/types/components'\n\nexport function Overlay(props: OverlayProps) {\n let { enableOverlay, overlayOpacity, className } = props\n if (enableOverlay) {\n return (\n <div\n className={className}\n style={{\n position: 'absolute',\n inset: 0,\n display: 'block',\n backgroundColor: `rgba(0, 0, 0, ${overlayOpacity / 100})`,\n }}\n />\n )\n }\n return null\n}\n","import { styled } from '@stitches/react'\nimport clsx from 'clsx'\nimport React from 'react'\nimport type { SliderDotsProps } from '~/types/components'\n\nexport function Dots(props: SliderDotsProps) {\n let { currentSlide, instanceRef, className, absolute, position, color } =\n props\n let _className = clsx(\n className,\n absolute && 'dots--absolute',\n position && `dots--${position}`,\n color && `dots--${color}`\n )\n return (\n <StyledDots className={_className}>\n {[...Array(instanceRef.current?.track.details.slides.length).keys()].map(\n (idx) => {\n let className = clsx('dot', currentSlide === idx && 'dot--active')\n return (\n <button\n key={idx}\n type=\"button\"\n onClick={() => instanceRef.current?.moveToIdx(idx)}\n className={className}\n />\n )\n }\n )}\n </StyledDots>\n )\n}\n\nlet StyledDots = styled('div', {\n padding: '10px 0',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '12px',\n '&.dots--absolute': {\n position: 'absolute',\n '&.dots--top, &.dots--bottom': { left: 0, right: 0 },\n '&.dots--top': { top: 10 },\n '&.dots--bottom': { bottom: 10 },\n '&.dots--left, &.dots--right': {\n top: 0,\n bottom: 0,\n flexDirection: 'column',\n },\n '&.dots--left': { left: 20 },\n '&.dots--right': { right: 20 },\n },\n '&.dots--light': {\n '.dot': {\n backgroundColor: '#ffffff66',\n '&.dot--active': {\n backgroundColor: '#ffffff',\n },\n },\n },\n '&.dots--dark': {\n '.dot': {\n backgroundColor: '#00000033',\n '&.dot--active': {\n backgroundColor: '#000000',\n },\n },\n },\n '.dot': {\n width: '9px',\n height: '9px',\n padding: '0',\n border: 'none',\n borderRadius: '50%',\n transition: 'all 0.2s ease-in-out',\n },\n})\n","import type { KeenSliderInstance, KeenSliderPlugin } from 'keen-slider/react'\n\nexport function AutoplayPlugin(changeSlidesEvery: number): KeenSliderPlugin {\n return (slider: KeenSliderInstance) => {\n let timeout: ReturnType<typeof setTimeout>\n let mouseOver = false\n function clearNextTimeout() {\n clearTimeout(timeout)\n }\n function nextTimeout() {\n clearTimeout(timeout)\n if (mouseOver) return\n timeout = setTimeout(() => {\n slider.next()\n }, changeSlidesEvery * 1000)\n }\n slider.on('created', () => {\n slider.container.addEventListener('mouseover', () => {\n mouseOver = true\n clearNextTimeout()\n })\n slider.container.addEventListener('mouseout', () => {\n mouseOver = false\n nextTimeout()\n })\n nextTimeout()\n })\n slider.on('dragStarted', clearNextTimeout)\n slider.on('animationEnded', nextTimeout)\n slider.on('updated', nextTimeout)\n }\n}\n","import React, { forwardRef } from 'react'\nimport type { PlaceholderProps } from '~/types'\n\nconst Placeholder = forwardRef<HTMLDivElement, PlaceholderProps>(\n (props, ref) => {\n let { element, className, children, ...rest } = props\n return (\n <div data-wv-placeholder ref={ref} className={className} {...rest}>\n <div\n style={{ fontWeight: 600, margin: '10px 0 5px', padding: '0 10px' }}\n >\n {element}\n </div>\n <div\n style={{\n margin: '5px 0 10px',\n textAlign: 'center',\n padding: '0 10px',\n }}\n >\n {children}\n </div>\n </div>\n )\n }\n)\n\nexport default Placeholder\n","import React, { useState } from 'react'\n\ntype NoHydrateProps = {\n id: string\n getHTML?: () => string\n} & JSX.IntrinsicElements['div']\n\nexport function NoHydrate({ id, getHTML, ...rest }: NoHydrateProps) {\n let [html] = useState(() => {\n if (typeof document === 'undefined') {\n return getHTML?.() ?? ''\n }\n let el = document.getElementById(id)\n if (!el) return getHTML?.() ?? ''\n return el.innerHTML\n })\n return <div {...rest} id={id} dangerouslySetInnerHTML={{ __html: html }} />\n}\n","import * as ModalComponents from './modal'\nimport { Spinner } from './spinner'\nimport { Icon } from './icons'\nimport { Tooltip } from './tooltip'\nimport { Slider } from './slider'\nimport { Background } from './background'\nimport { Overlay } from './overlay'\nimport { Arrows } from './slider/arrows'\nimport { Dots } from './slider/dots'\nimport { ResizePlugin } from './slider/resize-plugin'\nimport { AutoplayPlugin } from './slider/autoplay-plugin'\nimport Placeholder from './placeholder'\nimport { NoHydrate } from './no-hydrate'\n\nexport let Components = {\n Background,\n Icon,\n ModalComponents,\n Overlay,\n Placeholder,\n Spinner,\n Slider,\n Tooltip,\n NoHydrate,\n}\n\nexport let SliderComponents = {\n Arrows,\n Dots,\n ResizePlugin,\n AutoplayPlugin,\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef, useContext, useEffect } from 'react'\nimport { COUNTDOWN_KEY, TIMES } from '~/constant'\nimport { WeaverseContext } from '~/context'\nimport type { CountdownElementProps } from '~/types'\nimport { getTime } from '~/utils'\nimport { TimerBlock } from './timer-block'\n\nlet Countdown = forwardRef<HTMLDivElement, CountdownElementProps>(\n (props, ref) => {\n const { isDesignMode } = useContext(WeaverseContext)\n let {\n timerType,\n startTime: startTimeProp,\n endTime: endTimeProp,\n periods: periodsProp,\n redirectWhenTimerStops,\n redirectUrl,\n openInNewTab,\n showColon,\n showLabel,\n ...rest\n } = props\n const [remaining, setRemaining] = React.useState(0)\n\n let periods = periodsProp * 60 * 1000 // convert into milliseconds\n\n const handleEnd = () => {\n if (!isDesignMode && redirectWhenTimerStops && redirectUrl)\n window.open(redirectUrl, openInNewTab ? '_blank' : '_self')\n }\n\n const getStartTime = (): number => {\n let startTime = startTimeProp\n if (timerType === 'evergreen') {\n const start = localStorage.getItem(COUNTDOWN_KEY)\n if (start) {\n startTime = Number.parseInt(start)\n if (startTime + periods < Date.now()) {\n // reset when end time\n startTime = Date.now()\n localStorage.setItem(COUNTDOWN_KEY, startTime.toString())\n }\n } else {\n startTime = Date.now()\n localStorage.setItem(COUNTDOWN_KEY, startTime.toString())\n }\n }\n return startTime\n }\n\n const checkActive = (startTime: number): boolean =>\n startTime < Date.now() && endTimeProp > Date.now()\n\n const handleRemaining = () => {\n let startTime = getStartTime()\n let endTime =\n timerType === 'fixed-time' ? endTimeProp : startTime + periods\n // when active, calculate remaining time\n let isActive = checkActive(startTime)\n const remainingTime = isActive ? Math.max(endTime - Date.now(), 0) : 0\n if (remainingTime > 0 && remainingTime < 1000) {\n handleEnd()\n }\n setRemaining(remainingTime)\n }\n\n useEffect(() => {\n let intervalFlag: ReturnType<typeof setInterval> = setInterval(\n handleRemaining,\n 1000\n )\n return () => {\n clearInterval(intervalFlag)\n }\n }, [startTimeProp, endTimeProp, periods, timerType])\n\n const timer = getTime(remaining)\n return (\n <div ref={ref} {...rest}>\n {TIMES.map((time) => {\n return (\n <React.Fragment key={time}>\n <TimerBlock\n label={showLabel ? time : ''}\n value={remaining === 0 ? '--' : timer[time]}\n />\n {time !== 'seconds' && (\n <div className=\"wv-cd-separator\">\n {showColon && <span>:</span>}\n </div>\n )}\n </React.Fragment>\n )\n })}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n fontSize: '36px',\n fontWeight: 500,\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n justifyContent: 'center',\n gap: 10,\n lineHeight: 'initial',\n '.wv-cd-block': {\n width: 48,\n textAlign: 'center',\n '.wv-cd-label': {\n fontSize: 10,\n },\n },\n '.wv-cd-separator': {\n span: {\n lineHeight: '100%',\n },\n '.hidden': {\n visibility: 'hidden',\n },\n },\n },\n}\n\nCountdown.defaultProps = {\n timerType: 'fixed-time',\n startTime: Date.now(),\n endTime: Date.now() + 1000 * 60 * 60 * 24,\n periods: 90,\n redirectWhenTimerStops: false,\n redirectUrl: '',\n openInNewTab: false,\n showLabel: true,\n showColon: true,\n}\n\nexport default Countdown\n","import type { CountdownTimeKey } from '~/types'\n\nexport let TIMES: CountdownTimeKey[] = ['days', 'hours', 'minutes', 'seconds']\nexport let COUNTDOWN_KEY = 'wv-cd-evergreen-start'\nexport let INSTAGRAM_API = 'https://graph.instagram.com'\n","import type { CountdownTimeKey } from '~/types'\n\nexport function getTime(_seconds: number): {\n [key in CountdownTimeKey]: number\n} {\n let ONE_MINUTE = 60 * 1000\n let ONE_HOUR = 60 * ONE_MINUTE\n let ONE_DAY = 24 * ONE_HOUR\n let days = Math.floor(_seconds / ONE_DAY)\n let hours = Math.floor((_seconds - days * ONE_DAY) / ONE_HOUR)\n let minutes = Math.floor(\n (_seconds - days * ONE_DAY - hours * ONE_HOUR) / ONE_MINUTE\n )\n let seconds = Math.floor(\n (_seconds - days * ONE_DAY - hours * ONE_HOUR - minutes * ONE_MINUTE) / 1000\n )\n return { days, hours, minutes, seconds }\n}\n\nexport function getYoutubeEmbedId(url: string) {\n const match = url.match(\n /(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com|youtu\\.be)\\/(?:watch\\?v=)?(.+)/\n )\n return match ? match[1] : null\n}\n\nexport function getVimeoId(url: string) {\n const match = url.match(/(?:https?:\\/\\/)?(?:www\\.)?vimeo\\.com\\/(.+)/)\n return match ? match[1] : null\n}\n","import React from 'react'\nimport type { TimerBlockProps } from '~/types'\n\nexport function TimerBlock({ value, label }: TimerBlockProps) {\n return (\n <div className=\"wv-cd-block\">\n <div className=\"wv-cd-number\">\n {typeof value === 'string' ? value : value.toString().padStart(2, '0')}\n </div>\n {label && <div className=\"wv-cd-label\">{label}</div>}\n </div>\n )\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React from 'react'\nimport type { ImageElementProps } from '~/types'\n\nlet Image = React.forwardRef<HTMLDivElement, ImageElementProps>(\n (props, ref) => {\n let {\n src,\n alt,\n objectFit,\n objectPosition,\n clickAction,\n openLinkInNewTab,\n linkTo,\n ...rest\n } = props\n\n let style = {\n '--img-object-fit': objectFit,\n '--img-object-position': objectPosition,\n } as React.CSSProperties\n\n let content = <img alt={alt} data-blink-src={src} />\n if (clickAction === 'openLink' && linkTo) {\n content = (\n <a\n href={linkTo}\n target={openLinkInNewTab ? '_blank' : '_self'}\n rel=\"noreferrer\"\n >\n <img alt={alt} data-blink-src={src} />\n </a>\n )\n }\n\n return (\n <div ref={ref} style={style} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'center',\n alignItems: 'center',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'var(--img-object-fit, cover)',\n objectPosition: 'var(--img-object-position, center)',\n },\n },\n}\n\nImage.defaultProps = {\n src: 'https://ucarecdn.com/dac0f414-2b1f-46df-99ce-41554f0f653a/',\n alt: 'Alternative information',\n objectFit: 'cover',\n objectPosition: 'center center',\n clickAction: 'none',\n openLinkInNewTab: false,\n linkTo: '',\n}\n\nexport default Image\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport type { LayoutElementProps } from '~/types'\nimport { Background } from '~/components/background'\nimport { Overlay } from '~/components/overlay'\n\nlet Layout = forwardRef<HTMLDivElement, LayoutElementProps>((props, ref) => {\n let {\n children,\n rows,\n gap,\n rowSize,\n columns,\n contentSize,\n gridSize,\n backgroundColor,\n backgroundImage,\n objectFit,\n objectPosition,\n enableOverlay,\n overlayOpacity,\n ...rest\n } = props\n let style = {\n '--layout-content-width': '100vw',\n '--content-size': contentSize + 'px',\n '--grid-size': gridSize + 'px',\n '--rows': rows,\n '--columns': columns,\n '--gap': gap + 'px',\n '--row-size': rowSize + 'px',\n '--col-size':\n 'calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))',\n } as React.CSSProperties\n\n return (\n <div ref={ref} {...rest} style={style}>\n <Background\n backgroundImage={backgroundImage}\n backgroundColor={backgroundColor}\n backgroundFit={objectFit}\n backgroundPosition={objectPosition}\n />\n <Overlay enableOverlay={enableOverlay} overlayOpacity={overlayOpacity} />\n <div data-layout-content>{children}</div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n position: 'relative',\n '> [data-layout-content]': {\n // paddingTop: 'var(--gap)',\n // paddingBottom: 'var(--gap)',\n margin: '0 auto',\n display: 'grid',\n gridTemplateRows: 'repeat(var(--rows), var(--row-size))',\n gridTemplateColumns:\n 'calc((var(--layout-content-width) - var(--content-size)) / 2) 1fr repeat(var(--columns), minmax(0, var(--col-size))) 1fr calc((var(--layout-content-width) - var(--content-size)) / 2)',\n gridAutoRows: 'var(--row-size)',\n gap: 'var(--gap)',\n maxWidth: 'var(--layout-content-width)',\n },\n },\n '@mobile': {\n padding: '0 16px',\n '> [data-layout-content]': {\n display: 'flex',\n flexDirection: 'column',\n },\n },\n}\n\nLayout.defaultProps = {\n contentSize: 1600,\n gridSize: 1224,\n rows: 16,\n columns: 12,\n gap: 16,\n rowSize: 48,\n objectFit: 'cover',\n objectPosition: 'center center',\n enableOverlay: false,\n overlayOpacity: 30,\n}\n\nexport default Layout\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport type { MapElementProps } from '~/types'\n\nlet Map = forwardRef<HTMLDivElement, MapElementProps>((props, ref) => {\n let { place, zoom, ...rest } = props\n\n return (\n <div ref={ref} {...rest}>\n <iframe\n loading=\"lazy\"\n width=\"100%\"\n height=\"100%\"\n title=\"map\"\n src={`https://maps.google.com/maps?z=${zoom}&t=m&q=${place}&ie=UTF8&&output=embed`}\n style={{ pointerEvents: 'none' }}\n />\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n iframe: {\n border: 'none',\n },\n },\n '@mobile': {\n iframe: {\n border: 'none',\n },\n },\n}\n\nMap.defaultProps = {\n place: 'Hanoi',\n zoom: 14,\n}\n\nexport default Map\n","import type { ElementCSS } from '@weaverse/core'\nimport * as React from 'react'\nimport type { TextElementProps } from '~/types'\n\nconst Text = React.forwardRef<HTMLDivElement, TextElementProps>(\n (props, ref) => {\n let { children, value, ...rest } = props\n return (\n <div ref={ref} {...rest}>\n <div\n className=\"wv-text-content\"\n dangerouslySetInnerHTML={{ __html: value }}\n />\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n padding: '10px',\n overflow: 'hidden',\n '.wv-text-content': {\n width: '100%',\n height: 'fit-content',\n '> p, > h1, > h2, > h3, > h4, > h5, > h6': {\n all: 'inherit',\n margin: '0',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n width: 'auto',\n height: 'auto',\n },\n },\n },\n}\n\nText.defaultProps = {\n value: '<p>The quick brown fox jumps over the lazy dog</p>',\n}\n\nexport default Text\n","import type { ElementCSS } from '@weaverse/core'\nimport type { CSSProperties } from 'react'\nimport React from 'react'\nimport { useState } from 'react'\nimport type { ScrollingTextElementProps } from '~/types'\n\ntype AnimationPlayState = 'running' | 'paused'\n\nconst ScrollingText = React.forwardRef<\n HTMLDivElement,\n ScrollingTextElementProps\n>((props, ref) => {\n let { children, value, gap, speed, pauseOnHover, ...rest } = props\n let [playState, setPlayState] = useState<AnimationPlayState>('running')\n let style = {\n '--gap': `${gap}px`,\n '--speed': `${speed}s`,\n '--play-state': playState,\n } as CSSProperties\n\n let events = {}\n if (pauseOnHover) {\n events = {\n onMouseEnter: () => setPlayState('paused'),\n onMouseLeave: () => setPlayState('running'),\n }\n }\n\n return (\n <div ref={ref} {...rest}>\n <div className=\"wv-scrolling-text__container\" style={style} {...events}>\n {Array.from({ length: 30 }).map((_, i) => (\n <div\n key={i}\n className=\"wv-text-content\"\n dangerouslySetInnerHTML={{ __html: value }}\n />\n ))}\n </div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n padding: '10px',\n overflow: 'hidden',\n '.wv-scrolling-text__container': {\n visibility: 'visible',\n whiteSpace: 'nowrap',\n display: 'flex',\n gap: 'var(--gap, 40px)',\n animation: 'wv-scrolling-text var(--speed, 100s) linear infinite',\n animationPlayState: 'var(--play-state, running)',\n '.wv-text-content': {\n width: '100%',\n height: 'fit-content',\n '> p, > h1, > h2, > h3, > h4, > h5, > h6': {\n all: 'inherit',\n margin: '0',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n width: 'auto',\n height: 'auto',\n },\n },\n },\n },\n}\n\nScrollingText.defaultProps = {\n value: '<p>The quick brown fox jumps over the lazy dog</p>',\n gap: 40,\n speed: 200,\n pauseOnHover: true,\n}\n\nexport default ScrollingText\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef, useContext } from 'react'\nimport { WeaverseContext } from '~/context'\nimport type { VideoElementProps } from '~/types'\nimport { getVimeoId, getYoutubeEmbedId } from '~/utils'\nimport { HTMLVideo } from './html-video'\nimport { Vimeo } from './vimeo'\nimport { Youtube } from './youtube'\n\nlet Video = forwardRef<HTMLDivElement, VideoElementProps>((props, ref) => {\n let { isDesignMode } = useContext(WeaverseContext)\n let {\n src,\n controls,\n poster,\n autoPlay: originAutoPlay,\n loop,\n muted,\n ...rest\n } = props\n let autoPlay = !isDesignMode && originAutoPlay\n let videoProps = { src, controls, poster, autoPlay, loop, muted }\n let content\n let youtubeId = getYoutubeEmbedId(src)\n let vimeoId = getVimeoId(src)\n // youtube\n if (youtubeId) {\n content = <Youtube {...videoProps} youtubeId={youtubeId} />\n // vimeo\n } else if (vimeoId) {\n content = <Vimeo {...videoProps} vimeoId={vimeoId} />\n } else {\n content = <HTMLVideo {...videoProps} />\n }\n return (\n <div ref={ref} {...rest}>\n {content}\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n video: {\n height: '100%',\n width: '100%',\n aspectRatio: '16 / 9',\n },\n iframe: {\n border: 'none',\n },\n },\n '@mobile': {\n iframe: {\n border: 'none',\n },\n },\n}\n\nVideo.defaultProps = {\n src: 'https://youtu.be/wM-NT6hcw48',\n poster:\n 'https://ucarecdn.com/c413b8fe-ceec-4948-9c42-a0434c4ca920/-/preview/-/quality/smart/-/format/auto/',\n loop: false,\n controls: false,\n autoPlay: true,\n muted: true,\n}\n\nexport default Video\n","import React from 'react'\nimport type { VideoCommonProps } from '~/types'\n\nexport function HTMLVideo(props: VideoCommonProps) {\n let { src, type, controls, autoPlay, loop, muted } = props\n return (\n <video\n controls={controls}\n autoPlay={autoPlay}\n loop={loop}\n muted={muted}\n controlsList=\"nodownload\"\n disablePictureInPicture\n >\n <source src={src} type={type || 'video/mp4'} />\n <source src={src} type=\"video/ogg\" />\n Your browser does not support the video tag.\n </video>\n )\n}\n","import React from 'react'\nimport type { VimeoElementProps } from '~/types'\n\nexport function Vimeo(props: VimeoElementProps) {\n let { vimeoId, controls, autoPlay, loop, muted } = props\n let params = `autoplay=${autoPlay}&loop=${loop}&controls=${controls}&muted=${muted}`\n let vimeoSrc = `https://player.vimeo.com/video/${vimeoId}?${params}`\n return <iframe src={vimeoSrc} width=\"100%\" height=\"100%\" allowFullScreen />\n}\n","import React from 'react'\nimport type { YoutubeElementProps } from '~/types'\n\nexport function Youtube(props: YoutubeElementProps) {\n let { youtubeId, controls, autoPlay, loop, muted } = props\n let params = new URLSearchParams({\n autoplay: autoPlay ? '1' : '0',\n controls: controls ? '1' : '0',\n loop: loop ? '1' : '0',\n mute: muted ? '1' : '0',\n })\n let youtubeSrc = `https://www.youtube.com/embed/${youtubeId}?playlist=${youtubeId}&${params.toString()}`\n let allow = `accelerometer;${\n autoPlay ? 'autoplay;' : ''\n } clipboard-write; encrypted-media; gyroscope; picture-in-picture`\n return <iframe src={youtubeSrc} width=\"100%\" height=\"100%\" allow={allow} />\n}\n","import React, { forwardRef, useEffect, useState } from 'react'\nimport { INSTAGRAM_API } from '~/constant'\nimport type { InstagramElementProps, InstagramMedia } from '~/types'\nimport { Components } from '~/components'\n\nlet Instagram = forwardRef<HTMLDivElement, InstagramElementProps>(\n (props, ref) => {\n let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props\n let [media, setMedia] = useState<InstagramMedia[]>([])\n let [error, setError] = useState(null)\n\n useEffect(() => {\n if (token) {\n let params = new URLSearchParams({\n access_token: token,\n fields: 'id,media_type,caption,media_url,permalink,thumbnail_url',\n })\n fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`)\n .then((res) => res.json())\n .then((res) => {\n if (res.error) {\n setError(res)\n } else {\n setError(null)\n setMedia([...res.data])\n }\n })\n .catch(setError)\n }\n }, [token])\n\n if (!token || error) {\n return (\n <div ref={ref} {...rest}>\n <Components.Placeholder element=\"Instagram\">\n {!token\n ? 'Connect to Instagram to display photos on your site.'\n : 'Invalid or expired token!'}\n </Components.Placeholder>\n </div>\n )\n }\n\n let style = {\n '--wv-ig-images-per-row': imagesPerRow,\n '--wv-ig-images-gap': gap + 'px',\n } as React.CSSProperties\n\n return (\n <div ref={ref} {...rest} style={style}>\n <div className=\"wv-ig-media-container\">\n {media.slice(0, numberOfImages).map((item) => {\n let {\n id,\n permalink,\n caption,\n media_url,\n media_type,\n thumbnail_url,\n } = item\n if (media_type === 'VIDEO') {\n return (\n <video key={id} controls poster={thumbnail_url}>\n <source src={media_url} type=\"video/mp4\" />\n </video>\n )\n }\n return (\n <a key={id} href={permalink} target=\"_blank\" rel=\"noreferrer\">\n <img alt={caption} src={media_url} />\n </a>\n )\n })}\n </div>\n </div>\n )\n }\n)\nexport let css = {\n // '@desktop': {\n // '.wv-ig-media-container': {\n // overflow: 'hidden',\n // maxWidth: '100%',\n // maxHeight: '100%',\n // display: 'grid',\n // gridTemplateColumns: 'repeat(var(--wv-ig-images-per-row, 4), 1fr)',\n // gap: 'var(--wv-ig-images-gap, 0px)',\n // img: {\n // // aspectRatio: '1 / 1',\n // maxWidth: '100%',\n // maxHeight: '100%',\n // objectFit: 'cover',\n // },\n // },\n // },\n}\n\nexport let permanentCss = {\n '@desktop': {\n '.wv-ig-media-container': {\n overflow: 'hidden',\n maxWidth: '100%',\n maxHeight: '100%',\n display: 'grid',\n gridTemplateColumns: 'repeat(var(--wv-ig-images-per-row, 4), 1fr)',\n gap: 'var(--wv-ig-images-gap, 0px)',\n img: {\n // aspectRatio: '1 / 1',\n maxWidth: '100%',\n maxHeight: '100%',\n objectFit: 'cover',\n },\n video: {\n width: '100%',\n height: '100%',\n },\n },\n },\n '@mobile': {\n '.wv-ig-media-container': {\n overflowX: 'auto',\n display: 'flex',\n scrollSnapType: 'x mandatory',\n },\n '.wv-ig-media-container a': {\n scrollSnapAlign: 'start',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: '100%',\n },\n },\n}\n\nInstagram.defaultProps = {\n token: '',\n username: '',\n numberOfImages: 8,\n imagesPerRow: 4,\n gap: 0,\n}\n\nexport default Instagram\n","import { css as stitchesCss } from '@stitches/react'\nimport type { ElementCSS } from '@weaverse/core'\nimport clsx from 'clsx'\nimport React, { forwardRef } from 'react'\nimport { Arrows } from '~/components/slider/arrows'\nimport { Dots } from '~/components/slider/dots'\nimport type { SlideshowProps } from '~/types'\nimport { useSlideshowConfigs } from './use-slideshow-configs'\n\nlet Slideshow = forwardRef<HTMLDivElement, SlideshowProps>((props, ref) => {\n let {\n animation,\n showArrows,\n showArrowsOnHover,\n arrowIcon,\n arrowsColor,\n showDots,\n dotsPosition,\n dotsColor,\n children,\n ...rest\n } = props\n let { sliderRef, instanceRef, currentSlide, opacities, ready, created } =\n useSlideshowConfigs(props)\n\n let style = {\n '--slider-opacity': ready ? 1 : 0,\n } as React.CSSProperties\n let faderClass = ''\n if (animation === 'fade') {\n faderClass = stitchesCss({\n '.keen-slider__slide': opacities.reduce<\n Record<string, { opacity: number }>\n >((acc, opacity, index) => {\n acc[`&:nth-child(${index + 1})`] = {\n opacity,\n }\n return acc\n }, {}),\n })().className\n }\n let _className = clsx(\n faderClass,\n animation === 'slide' ? 'keen-slider' : 'keen-fader'\n )\n let arrowsClass = clsx(\n 'wv-slideshow--arrows',\n showArrowsOnHover && 'show-on-hover',\n `arrows--${arrowsColor}`\n )\n\n return (\n <div ref={ref} style={style} {...rest}>\n <div ref={sliderRef} className={_className}>\n {children}\n </div>\n {showArrows && created && instanceRef?.current && (\n <Arrows\n instanceRef={instanceRef}\n currentSlide={currentSlide}\n className={arrowsClass}\n icon={arrowIcon}\n offset={20}\n />\n )}\n {showDots && created && instanceRef?.current && (\n <Dots\n instanceRef={instanceRef}\n currentSlide={currentSlide}\n className=\"wv-slideshow--dots\"\n position={dotsPosition}\n color={dotsColor}\n absolute\n />\n )}\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n opacity: 'var(--slider-opacity, 0)',\n padding: '32px 0',\n position: 'relative',\n '.keen-slider': {\n height: '100%',\n },\n '.keen-fader': {\n position: 'relative',\n height: '100%',\n '.keen-slider__slide': {\n position: 'absolute',\n inset: 0,\n },\n },\n '.wv-slideshow--arrows': {\n '.arrow': {\n borderRadius: '100%',\n backgroundColor: 'transparent',\n padding: '6px',\n '&:hover': {\n backgroundColor: '#fff',\n },\n svg: {\n width: '28px',\n height: '28px',\n },\n },\n '&.show-on-hover': {\n opacity: 0,\n transition: 'opacity 0.3s ease',\n },\n '&.arrows--dark': {\n '.arrow': {\n color: '#000',\n },\n },\n '&.arrows--light': {\n '.arrow': {\n color: '#fff',\n },\n },\n },\n '&:hover': {\n '.wv-slideshow--arrows': {\n opacity: 1,\n },\n },\n },\n}\n\nSlideshow.defaultProps = {\n animation: 'slide',\n slidesPerView: 1,\n spacing: 0,\n showArrows: true,\n showArrowsOnHover: false,\n arrowIcon: 'caret',\n arrowsColor: 'dark',\n showDots: true,\n dotsPosition: 'bottom',\n dotsColor: 'dark',\n loop: true,\n autoRotate: false,\n changeSlidesEvery: 5,\n}\n\nexport default Slideshow\n","import { useKeenSlider } from 'keen-slider/react'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { AutoplayPlugin } from '~/components/slider/autoplay-plugin'\nimport { ResizePlugin } from '~/components/slider/resize-plugin'\nimport { WeaverseContext } from '~/context'\nimport type { SlideshowProps } from '~/types'\nimport { loadCSS } from '~/utils/css'\n\nexport function useSlideshowConfigs(props: SlideshowProps) {\n let {\n animation,\n slidesPerView,\n loop,\n autoRotate,\n changeSlidesEvery,\n children,\n } = props\n\n let { isDesignMode, isPreviewMode } = useContext(WeaverseContext)\n let [opacities, setOpacities] = React.useState<number[]>([])\n let [cssLoaded, setCssLoaded] = useState(false)\n let [created, setCreated] = useState(false)\n let [ready, setReady] = useState(false)\n let [currentSlide, setCurrentSlide] = useState(0)\n\n let sliderPlugins = [ResizePlugin]\n if (autoRotate && (isPreviewMode || !isDesignMode)) {\n sliderPlugins.push(AutoplayPlugin(changeSlidesEvery))\n }\n let [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>(\n {\n slides:\n animation === 'fade'\n ? React.Children.count(children)\n : { perView: slidesPerView, number: React.Children.count(children) },\n drag: isPreviewMode || !isDesignMode,\n loop,\n selector: animation === 'fade' ? null : '.keen-slider__slide',\n created: (slider) => {\n setCreated(true)\n if (isDesignMode) {\n // Save instance to window so we can access it inside the editor\n let slideshowElement = slider.container.closest(\n '[data-wv-type=\"slideshow\"]'\n )\n let elementId = slideshowElement?.getAttribute('data-wv-id')\n if (elementId) {\n window.weaverseSlideshowInstances = {\n [elementId]: slider,\n }\n }\n }\n },\n slideChanged: (slider) => {\n setCurrentSlide(slider.track.details.rel)\n },\n detailsChanged: (slider) => {\n let newOpacities = slider.track?.details?.slides?.map(\n (slide) => slide.portion\n )\n setOpacities(newOpacities)\n },\n },\n sliderPlugins\n )\n\n useEffect(() => {\n loadCSS({\n rel: 'stylesheet',\n href: 'https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css',\n }).then(() => setCssLoaded(true))\n }, [])\n\n useEffect(() => {\n if (created && cssLoaded) {\n setReady(true)\n }\n }, [created, cssLoaded])\n\n return {\n sliderRef,\n instanceRef,\n currentSlide,\n opacities,\n ready,\n created,\n }\n}\n","import type Stitches from '@stitches/react/types/stitches'\nimport type { ElementCSS, WeaverseItemStore } from '@weaverse/core'\nimport clsx from 'clsx'\nimport type { LinkHTMLAttributes } from 'react'\n\n// Make the css data formatted to correct order (desktop, tablet, mobile)\nfunction formatCSS(css: ElementCSS) {\n return {\n '@desktop': css['@desktop'],\n '@mobile': css['@mobile'],\n }\n}\n\nlet permanentClasses: Record<string, string> = {}\nexport function generateItemClassName(\n instance: WeaverseItemStore,\n stitchesInstance: Stitches\n) {\n let { css, type, className: cls = '', tailwindClasses } = instance.data\n let className = ''\n let permanentClass = ''\n let perCss = instance.Element?.permanentCss\n if (perCss) {\n if (type in permanentClasses) {\n permanentClass = permanentClasses[type]\n } else {\n // @ts-ignore\n let { className: perCls } = stitchesInstance.css(perCss)()\n Object.assign(permanentClasses, { [type]: perCls })\n permanentClass = perCls\n }\n }\n className = permanentClass\n if (css) {\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let formattedCss = formatCSS(css)\n let newStitchesClass = stitchesInstance.css(formattedCss)().className || ''\n let { stitchesClass } = instance\n let otherClass = (instance.ref.current?.className || '')\n .replace(stitchesClass, '')\n .replace(cls, '')\n .replace(permanentClass, '')\n .trim()\n className = clsx(\n permanentClass,\n cls,\n tailwindClasses,\n newStitchesClass,\n otherClass\n )\n instance.stitchesClass = newStitchesClass\n }\n return className\n}\n\nexport function loadCSS(attrs: LinkHTMLAttributes<HTMLLinkElement>) {\n return new Promise((resolve, reject) => {\n let found = document.querySelector(`link[href=\"${attrs.href}\"]`)\n if (found) {\n return resolve(true)\n }\n let link = document.createElement('link')\n Object.assign(link, attrs)\n link.addEventListener('load', () => resolve(true))\n link.onerror = reject\n document.head.appendChild(link)\n })\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport { Background } from '~/components/background'\nimport { Overlay } from '~/components/overlay'\nimport Placeholder from '~/components/placeholder'\nimport type { SlideProps } from '~/types'\nimport { slidePositionMap } from './position'\n\nlet Slide = forwardRef<HTMLDivElement, SlideProps>((props, ref) => {\n let {\n contentPosition,\n backgroundColor,\n backgroundImage,\n objectFit,\n objectPosition,\n enableOverlay,\n overlayOpacity,\n backgroundFit,\n backgroundPosition,\n children,\n ...rest\n } = props\n\n return (\n <div className=\"keen-slider__slide\">\n <Background\n backgroundColor={backgroundColor}\n backgroundImage={backgroundImage}\n backgroundFit={objectFit}\n backgroundPosition={objectPosition}\n className=\"slide-background\"\n />\n <Overlay\n enableOverlay={enableOverlay}\n overlayOpacity={overlayOpacity}\n className=\"slide-overlay\"\n />\n <div ref={ref} style={slidePositionMap[contentPosition]} {...rest}>\n {children?.length ? (\n children\n ) : (\n <Placeholder element=\"Slide\" className=\"wv-slide-placeholder\">\n Drag and drop elements here\n </Placeholder>\n )}\n </div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n position: 'relative',\n height: '100%',\n width: '1224px',\n maxWidth: '100%',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n padding: '100px 20px',\n '.wv-slide-placeholder': {\n height: '200px',\n zIndex: 1,\n },\n },\n}\n\nSlide.defaultProps = {\n contentPosition: 'center center',\n objectFit: 'cover',\n objectPosition: 'center center',\n enableOverlay: false,\n overlayOpacity: 30,\n}\n\nexport default Slide\n","import type { CSSProperties } from 'react'\n\nexport let slidePositionMap: Record<string, CSSProperties> = {\n 'top left': {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n },\n 'top center': {\n justifyContent: 'flex-start',\n alignItems: 'center',\n },\n 'top right': {\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n 'center left': {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n 'center center': {\n justifyContent: 'center',\n alignItems: 'center',\n },\n 'center right': {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n 'bottom left': {\n justifyContent: 'flex-end',\n alignItems: 'flex-start',\n },\n 'bottom center': {\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n 'bottom right': {\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n}\n","import type { WeaverseElement } from '@weaverse/core'\nimport * as Button from './button'\nimport * as Container from './container'\nimport * as Countdown from './countdown'\nimport * as Image from './image'\nimport * as Layout from './layout'\nimport * as Map from './map'\nimport * as Text from './text'\nimport * as ScrollingText from './scrolling-text'\nimport * as Video from './video'\nimport * as Instagram from './instagram'\nimport * as Slideshow from './slideshow'\nimport * as Slide from './slideshow/slide'\n\nexport const Elements: Record<string, WeaverseElement> = {\n Countdown: {\n Component: Countdown.default,\n type: 'countdown',\n defaultCss: Countdown.css,\n },\n Button: {\n Component: Button.default,\n type: 'button',\n defaultCss: Button.css,\n },\n Container: {\n Component: Container.default,\n type: 'container',\n defaultCss: Container.css,\n },\n Image: {\n Component: Image.default,\n type: 'image',\n defaultCss: Image.css,\n },\n Instagram: {\n Component: Instagram.default,\n type: 'instagram',\n defaultCss: Instagram.css,\n permanentCss: Instagram.permanentCss,\n },\n Layout: {\n Component: Layout.default,\n type: 'layout',\n defaultCss: Layout.css,\n },\n Map: {\n Component: Map.default,\n type: 'map',\n defaultCss: Map.css,\n },\n Text: {\n Component: Text.default,\n type: 'text',\n defaultCss: Text.css,\n },\n ScrollingText: {\n Component: ScrollingText.default,\n type: 'scrolling-text',\n defaultCss: ScrollingText.css,\n },\n Video: {\n Component: Video.default,\n type: 'video',\n defaultCss: Video.css,\n },\n Slideshow: {\n Component: Slideshow.default,\n type: 'slideshow',\n defaultCss: Slideshow.css,\n },\n Slide: {\n Component: Slide.default,\n type: 'slide',\n defaultCss: Slide.css,\n },\n}\n","/* eslint-disable react/no-children-prop */\nimport type { ElementData, WeaverseProjectDataType } from '@weaverse/core'\nimport { isBrowser } from '@weaverse/core'\nimport React, { memo, useContext, useEffect, useRef, useState } from 'react'\nimport { initUploadCareAdaptiveDelivery } from '~/utils/uploadcare'\nimport { WeaverseContext, WeaverseContextProvider } from './context'\nimport type { ItemComponentProps, WeaverseRootPropsType } from './types'\nimport { generateItemClassName } from './utils/css'\n\nexport let WeaverseRoot = memo(({ context }: WeaverseRootPropsType) => {\n let [, setData] = useState<WeaverseProjectDataType | unknown>(context.data)\n let rootRef = useRef<HTMLElement>()\n let renderRoot = () => setData({})\n\n useEffect(() => {\n context.subscribe(renderRoot)\n context.contentRootElement = rootRef.current\n initUploadCareAdaptiveDelivery(context.weaverseHost as string)\n return () => {\n context.unsubscribe(renderRoot)\n }\n }, [])\n\n let eventHandlers = context?.studioBridge?.eventHandlers || {}\n let themeClass = context.stitchesInstance.theme.className\n\n if (context.data?.rootId) {\n return (\n <div\n className={`weaverse-content-root ${themeClass}`}\n {...eventHandlers}\n ref={rootRef}\n >\n <WeaverseContextProvider value={context}>\n <ItemInstance id={context.data.rootId} />\n </WeaverseContextProvider>\n </div>\n )\n }\n return null\n})\n\nconst ItemComponent = memo(({ instance }: ItemComponentProps) => {\n let context = useContext(WeaverseContext)\n let { stitchesInstance, elementInstances } = context\n let [data, setData] = useState<ElementData>(instance.data)\n let {\n id,\n type,\n childIds = [],\n children = [],\n parentId,\n createdAt,\n updatedAt,\n deletedAt,\n tailwindClasses,\n css,\n className,\n ...rest\n } = data\n\n useEffect(() => {\n let render = (data: ElementData) => setData({ ...data })\n instance.subscribe(render)\n if (isBrowser && !instance.ref.current) {\n // Fallback `ref` if the element isn't created by `React.forwardRef`\n Object.assign(instance.ref, {\n current: document.querySelector(`[data-wv-id=\"${id}\"]`),\n })\n }\n return () => instance.unsubscribe(render)\n }, [])\n\n let Element = elementInstances.get(type)\n\n if (Element?.Component) {\n let Component = Element.Component\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = instance.ref\n }\n return (\n <Component\n key={id}\n data-wv-type={type}\n data-wv-id={id}\n className={generateItemClassName(instance, stitchesInstance)}\n {...rest}\n >\n {/* // TODO: refactor this, migrate to `children` prop */}\n {childIds.map((cid) => (\n <ItemInstance key={cid} id={cid} />\n ))}\n {children.map((item: any) => (\n <ItemInstance key={item.id} id={item.id} />\n ))}\n </Component>\n )\n } else {\n console.warn(`Unknown element: ${type}`)\n return null\n }\n})\n\nlet ItemInstance = memo(({ id }: { id: string | number }) => {\n let context = useContext(WeaverseContext)\n let { itemInstances } = context\n let instance = itemInstances.get(id)\n if (!instance) {\n console.warn(`Item instance ${id} not found`)\n return <div style={{ display: 'none' }}>Item instance {id} not found</div>\n }\n return <ItemComponent key={id} instance={instance} />\n})\n","import { isBrowser } from '@weaverse/core'\nlet initialized = false\nexport function initUploadCareAdaptiveDelivery(baseUrl: string) {\n try {\n Promise.resolve().then(() => {\n if (!initialized && isBrowser && !window.Blinkloader) {\n initialized = true\n ;(function (src, cb) {\n let s = document.createElement('script')\n s.setAttribute('src', src)\n s.onload = cb\n ;(document.head || document.body).appendChild(s)\n })(baseUrl + '/static/blinkloader.min.js', function () {\n window.Blinkloader.optimize({\n pubkey: '1a22133d1a1bdc089d4c',\n fadeIn: true,\n lazyload: true,\n smartCompression: true,\n responsive: true,\n retina: true,\n webp: true,\n })\n })\n }\n })\n } catch (e) {\n console.error(e)\n }\n}\n"],"mappings":"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","names":["React","forwardRef","React","forwardRef","React","React","React","useContext","useContext","open","React","forwardRef","React","React","React","clsx","React","styled","clsx","React","React","clsx","styled","clsx","React","React","React","Overlay","styled","clsx","React","className","React","forwardRef","React","useState","Overlay","forwardRef","React","css","React","forwardRef","useContext","useEffect","React","forwardRef","useContext","React","useEffect","css","React","Image","css","React","forwardRef","forwardRef","React","Overlay","css","React","forwardRef","css","React","css","React","useState","css","React","forwardRef","useContext","React","React","React","forwardRef","useContext","React","css","React","forwardRef","useEffect","useState","forwardRef","useState","useEffect","React","css","clsx","React","forwardRef","useKeenSlider","React","useContext","useEffect","useState","clsx","css","useContext","React","useState","useKeenSlider","useEffect","forwardRef","clsx","React","css","React","forwardRef","forwardRef","React","Overlay","css","css","isBrowser","React","useContext","useEffect","useState","useState","useEffect","React","useContext","css","data","isBrowser"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/context.ts","../src/elements/button.tsx","../src/elements/container.tsx","../src/elements/countdown/index.tsx","../src/constant/index.ts","../src/utils/index.ts","../src/elements/countdown/timer-block.tsx","../src/elements/image.tsx","../src/elements/layout.tsx","../src/components/background.tsx","../src/components/overlay.tsx","../src/elements/map.tsx","../src/elements/text.tsx","../src/elements/scrolling-text.tsx","../src/elements/video/index.tsx","../src/elements/video/html-video.tsx","../src/elements/video/vimeo.tsx","../src/elements/video/youtube.tsx","../src/elements/instagram.tsx","../src/components/modal/index.tsx","../src/components/icons/index.tsx","../src/components/icons/phosphor.tsx","../src/components/modal/styled.ts","../src/components/modal/use-open-change-effect.ts","../src/components/spinner.tsx","../src/components/tooltip.tsx","../src/components/slider/index.tsx","../src/components/slider/arrows.tsx","../src/components/slider/resize-plugin.ts","../src/components/slider/dots.tsx","../src/components/slider/autoplay-plugin.ts","../src/components/placeholder.tsx","../src/components/no-hydrate.tsx","../src/components/index.ts","../src/elements/slideshow/index.tsx","../src/elements/slideshow/use-slideshow-configs.ts","../src/utils/css.ts","../src/elements/slideshow/slide.tsx","../src/elements/slideshow/position.ts","../src/elements/index.ts","../src/renderer.tsx","../src/utils/uploadcare.ts"],"sourcesContent":["export * from '@weaverse/core'\nexport * from './context'\nexport * from './components'\nexport * from './elements'\nexport * from './renderer'\nexport * from './types'\nexport * from './types/components'\n","import type { WeaverseType } from '@weaverse/core'\nimport { Weaverse } from '@weaverse/core'\nimport { createContext } from 'react'\nimport { Elements } from './elements'\n\nexport let createRootContext = (configs: WeaverseType) => {\n let rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach((key) => {\n rootContext.registerElement(Elements[key])\n })\n return rootContext\n}\n\nexport let WeaverseContext = createContext<Weaverse>({} as Weaverse)\nexport let WeaverseContextProvider = WeaverseContext.Provider\nexport let WeaverseContextConsumer = WeaverseContext.Consumer\n","import * as React from 'react'\nimport type { ButtonElementProps } from '~/types'\nimport type { ElementCSS } from '@weaverse/core'\nimport { useContext } from 'react'\nimport { WeaverseContext } from '~/context'\n\nexport let Button = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonElementProps\n>((props, ref) => {\n let { isDesignMode } = useContext(WeaverseContext)\n let { text, clickAction, linkTo, openInNewTab, ...rest } = props\n\n if (clickAction === 'none') {\n return (\n <button ref={ref as React.MutableRefObject<HTMLButtonElement>} {...rest}>\n {text}\n </button>\n )\n }\n return (\n <a\n ref={ref as React.MutableRefObject<HTMLAnchorElement>}\n href={!isDesignMode ? linkTo : undefined}\n target={openInNewTab ? '_blank' : '_self'}\n rel=\"noreferrer\"\n {...rest}\n >\n {text}\n </a>\n )\n})\n\nButton.defaultProps = {\n type: 'button',\n text: 'BUTTON',\n clickAction: 'none',\n linkTo: '',\n openInNewTab: false,\n}\n\nexport let css: ElementCSS = {\n '@desktop': {\n borderRadius: '4px',\n border: 'none',\n backgroundColor: '#3E3F40',\n color: '#fff',\n fontSize: '14px',\n lineHeight: '1.5',\n letterSpacing: '0',\n fontWeight: 'medium',\n padding: '10px 20px',\n height: '42px',\n minWidth: '120px',\n textDecoration: 'none',\n textAlign: 'center',\n '&:hover': {\n backgroundColor: '#1A1B1B',\n },\n },\n}\n\nexport default Button\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport type { ContainerElementProps } from '~/types'\n\nlet Container = forwardRef<HTMLDivElement, ContainerElementProps>(\n (props, ref) => {\n let { children, ...rest } = props\n return (\n <div ref={ref} {...rest}>\n {children}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n gridArea: '1 / 1 / 3 / 6',\n overflow: 'hidden',\n // minWidth: '300px',\n minHeight: '100px',\n },\n '@mobile': {\n minHeight: '100px',\n },\n}\n\nContainer.defaultProps = {}\n\nexport default Container\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef, useContext, useEffect } from 'react'\nimport { COUNTDOWN_KEY, TIMES } from '~/constant'\nimport { WeaverseContext } from '~/context'\nimport type { CountdownElementProps } from '~/types'\nimport { getTime } from '~/utils'\nimport { TimerBlock } from './timer-block'\n\nlet Countdown = forwardRef<HTMLDivElement, CountdownElementProps>(\n (props, ref) => {\n const { isDesignMode } = useContext(WeaverseContext)\n let {\n timerType,\n startTime: startTimeProp,\n endTime: endTimeProp,\n periods: periodsProp,\n redirectWhenTimerStops,\n redirectUrl,\n openInNewTab,\n showColon,\n showLabel,\n ...rest\n } = props\n const [remaining, setRemaining] = React.useState(0)\n\n let periods = periodsProp * 60 * 1000 // convert into milliseconds\n\n const handleEnd = () => {\n if (!isDesignMode && redirectWhenTimerStops && redirectUrl)\n window.open(redirectUrl, openInNewTab ? '_blank' : '_self')\n }\n\n const getStartTime = (): number => {\n let startTime = startTimeProp\n if (timerType === 'evergreen') {\n const start = localStorage.getItem(COUNTDOWN_KEY)\n if (start) {\n startTime = Number.parseInt(start)\n if (startTime + periods < Date.now()) {\n // reset when end time\n startTime = Date.now()\n localStorage.setItem(COUNTDOWN_KEY, startTime.toString())\n }\n } else {\n startTime = Date.now()\n localStorage.setItem(COUNTDOWN_KEY, startTime.toString())\n }\n }\n return startTime\n }\n\n const checkActive = (startTime: number): boolean =>\n startTime < Date.now() && endTimeProp > Date.now()\n\n const handleRemaining = () => {\n let startTime = getStartTime()\n let endTime =\n timerType === 'fixed-time' ? endTimeProp : startTime + periods\n // when active, calculate remaining time\n let isActive = checkActive(startTime)\n const remainingTime = isActive ? Math.max(endTime - Date.now(), 0) : 0\n if (remainingTime > 0 && remainingTime < 1000) {\n handleEnd()\n }\n setRemaining(remainingTime)\n }\n\n useEffect(() => {\n let intervalFlag: ReturnType<typeof setInterval> = setInterval(\n handleRemaining,\n 1000\n )\n return () => {\n clearInterval(intervalFlag)\n }\n }, [startTimeProp, endTimeProp, periods, timerType])\n\n const timer = getTime(remaining)\n return (\n <div ref={ref} {...rest}>\n {TIMES.map((time) => {\n return (\n <React.Fragment key={time}>\n <TimerBlock\n label={showLabel ? time : ''}\n value={remaining === 0 ? '--' : timer[time]}\n />\n {time !== 'seconds' && (\n <div className=\"wv-cd-separator\">\n {showColon && <span>:</span>}\n </div>\n )}\n </React.Fragment>\n )\n })}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n fontSize: '36px',\n fontWeight: 500,\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n justifyContent: 'center',\n gap: 10,\n lineHeight: 'initial',\n '.wv-cd-block': {\n width: 48,\n textAlign: 'center',\n '.wv-cd-label': {\n fontSize: 10,\n },\n },\n '.wv-cd-separator': {\n span: {\n lineHeight: '100%',\n },\n '.hidden': {\n visibility: 'hidden',\n },\n },\n },\n}\n\nCountdown.defaultProps = {\n timerType: 'fixed-time',\n startTime: Date.now(),\n endTime: Date.now() + 1000 * 60 * 60 * 24,\n periods: 90,\n redirectWhenTimerStops: false,\n redirectUrl: '',\n openInNewTab: false,\n showLabel: true,\n showColon: true,\n}\n\nexport default Countdown\n","import type { CountdownTimeKey } from '~/types'\n\nexport let TIMES: CountdownTimeKey[] = ['days', 'hours', 'minutes', 'seconds']\nexport let COUNTDOWN_KEY = 'wv-cd-evergreen-start'\nexport let INSTAGRAM_API = 'https://graph.instagram.com'\n","import type { CountdownTimeKey } from '~/types'\n\nexport function getTime(_seconds: number): {\n [key in CountdownTimeKey]: number\n} {\n let ONE_MINUTE = 60 * 1000\n let ONE_HOUR = 60 * ONE_MINUTE\n let ONE_DAY = 24 * ONE_HOUR\n let days = Math.floor(_seconds / ONE_DAY)\n let hours = Math.floor((_seconds - days * ONE_DAY) / ONE_HOUR)\n let minutes = Math.floor(\n (_seconds - days * ONE_DAY - hours * ONE_HOUR) / ONE_MINUTE\n )\n let seconds = Math.floor(\n (_seconds - days * ONE_DAY - hours * ONE_HOUR - minutes * ONE_MINUTE) / 1000\n )\n return { days, hours, minutes, seconds }\n}\n\nexport function getYoutubeEmbedId(url: string) {\n const match = url.match(\n /(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com|youtu\\.be)\\/(?:watch\\?v=)?(.+)/\n )\n return match ? match[1] : null\n}\n\nexport function getVimeoId(url: string) {\n const match = url.match(/(?:https?:\\/\\/)?(?:www\\.)?vimeo\\.com\\/(.+)/)\n return match ? match[1] : null\n}\n","import React from 'react'\nimport type { TimerBlockProps } from '~/types'\n\nexport function TimerBlock({ value, label }: TimerBlockProps) {\n return (\n <div className=\"wv-cd-block\">\n <div className=\"wv-cd-number\">\n {typeof value === 'string' ? value : value.toString().padStart(2, '0')}\n </div>\n {label && <div className=\"wv-cd-label\">{label}</div>}\n </div>\n )\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React from 'react'\nimport type { ImageElementProps } from '~/types'\n\nlet Image = React.forwardRef<HTMLDivElement, ImageElementProps>(\n (props, ref) => {\n let {\n src,\n alt,\n objectFit,\n objectPosition,\n clickAction,\n openLinkInNewTab,\n linkTo,\n ...rest\n } = props\n\n let style = {\n '--img-object-fit': objectFit,\n '--img-object-position': objectPosition,\n } as React.CSSProperties\n\n let content = <img alt={alt} data-blink-src={src} />\n if (clickAction === 'openLink' && linkTo) {\n content = (\n <a\n href={linkTo}\n target={openLinkInNewTab ? '_blank' : '_self'}\n rel=\"noreferrer\"\n >\n <img alt={alt} data-blink-src={src} />\n </a>\n )\n }\n\n return (\n <div ref={ref} style={style} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'center',\n alignItems: 'center',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'var(--img-object-fit, cover)',\n objectPosition: 'var(--img-object-position, center)',\n },\n },\n}\n\nImage.defaultProps = {\n src: 'https://ucarecdn.com/dac0f414-2b1f-46df-99ce-41554f0f653a/',\n alt: 'Alternative information',\n objectFit: 'cover',\n objectPosition: 'center center',\n clickAction: 'none',\n openLinkInNewTab: false,\n linkTo: '',\n}\n\nexport default Image\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport type { LayoutElementProps } from '~/types'\nimport { Background } from '~/components/background'\nimport { Overlay } from '~/components/overlay'\n\nlet Layout = forwardRef<HTMLDivElement, LayoutElementProps>((props, ref) => {\n let {\n children,\n rows,\n gap,\n rowSize,\n columns,\n contentSize,\n gridSize,\n backgroundColor,\n backgroundImage,\n objectFit,\n objectPosition,\n enableOverlay,\n overlayOpacity,\n ...rest\n } = props\n let style = {\n '--layout-content-width': '100vw',\n '--content-size': contentSize + 'px',\n '--grid-size': gridSize + 'px',\n '--rows': rows,\n '--columns': columns,\n '--gap': gap + 'px',\n '--row-size': rowSize + 'px',\n '--col-size':\n 'calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))',\n } as React.CSSProperties\n\n return (\n <div ref={ref} {...rest} style={style}>\n <Background\n backgroundImage={backgroundImage}\n backgroundColor={backgroundColor}\n backgroundFit={objectFit}\n backgroundPosition={objectPosition}\n />\n <Overlay enableOverlay={enableOverlay} overlayOpacity={overlayOpacity} />\n <div data-layout-content>{children}</div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n position: 'relative',\n '> [data-layout-content]': {\n // paddingTop: 'var(--gap)',\n // paddingBottom: 'var(--gap)',\n margin: '0 auto',\n display: 'grid',\n gridTemplateRows: 'repeat(var(--rows), var(--row-size))',\n gridTemplateColumns:\n 'calc((var(--layout-content-width) - var(--content-size)) / 2) 1fr repeat(var(--columns), minmax(0, var(--col-size))) 1fr calc((var(--layout-content-width) - var(--content-size)) / 2)',\n gridAutoRows: 'var(--row-size)',\n gap: 'var(--gap)',\n maxWidth: 'var(--layout-content-width)',\n },\n },\n '@mobile': {\n padding: '0 16px',\n '> [data-layout-content]': {\n display: 'flex',\n flexDirection: 'column',\n },\n },\n}\n\nLayout.defaultProps = {\n contentSize: 1600,\n gridSize: 1224,\n rows: 16,\n columns: 12,\n gap: 16,\n rowSize: 48,\n objectFit: 'cover',\n objectPosition: 'center center',\n enableOverlay: false,\n overlayOpacity: 30,\n}\n\nexport default Layout\n","import type { CSSProperties } from 'react'\nimport React from 'react'\nimport type { BackgroundProps } from '~/types/components'\n\nexport function Background(props: BackgroundProps) {\n let {\n backgroundColor,\n backgroundImage,\n backgroundFit,\n backgroundPosition,\n className,\n } = props\n let style = {\n display: 'block',\n position: 'absolute',\n inset: 0,\n backgroundColor,\n } as CSSProperties\n\n if (backgroundImage || backgroundColor) {\n return (\n <div style={style} className={className}>\n {backgroundImage && (\n <img\n width=\"100%\"\n height=\"100%\"\n data-blink-src={backgroundImage}\n alt=\"Background\"\n style={{\n objectFit: backgroundFit,\n objectPosition: backgroundPosition,\n }}\n />\n )}\n </div>\n )\n }\n return null\n}\n","import React from 'react'\nimport type { OverlayProps } from '~/types/components'\n\nexport function Overlay(props: OverlayProps) {\n let { enableOverlay, overlayOpacity, className } = props\n if (enableOverlay) {\n return (\n <div\n className={className}\n style={{\n position: 'absolute',\n inset: 0,\n display: 'block',\n backgroundColor: `rgba(0, 0, 0, ${overlayOpacity / 100})`,\n }}\n />\n )\n }\n return null\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport type { MapElementProps } from '~/types'\n\nlet Map = forwardRef<HTMLDivElement, MapElementProps>((props, ref) => {\n let { place, zoom, ...rest } = props\n\n return (\n <div ref={ref} {...rest}>\n <iframe\n loading=\"lazy\"\n width=\"100%\"\n height=\"100%\"\n title=\"map\"\n src={`https://maps.google.com/maps?z=${zoom}&t=m&q=${place}&ie=UTF8&&output=embed`}\n style={{ pointerEvents: 'none' }}\n />\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n iframe: {\n border: 'none',\n },\n },\n '@mobile': {\n iframe: {\n border: 'none',\n },\n },\n}\n\nMap.defaultProps = {\n place: 'Hanoi',\n zoom: 14,\n}\n\nexport default Map\n","import type { ElementCSS } from '@weaverse/core'\nimport * as React from 'react'\nimport type { TextElementProps } from '~/types'\n\nconst Text = React.forwardRef<HTMLDivElement, TextElementProps>(\n (props, ref) => {\n let { children, value, ...rest } = props\n return (\n <div ref={ref} {...rest}>\n <div\n className=\"wv-text-content\"\n dangerouslySetInnerHTML={{ __html: value }}\n />\n </div>\n )\n }\n)\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n padding: '10px',\n overflow: 'hidden',\n '.wv-text-content': {\n width: '100%',\n height: 'fit-content',\n '> p, > h1, > h2, > h3, > h4, > h5, > h6': {\n all: 'inherit',\n margin: '0',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n width: 'auto',\n height: 'auto',\n },\n },\n },\n}\n\nText.defaultProps = {\n value: '<p>The quick brown fox jumps over the lazy dog</p>',\n}\n\nexport default Text\n","import type { ElementCSS } from '@weaverse/core'\nimport type { CSSProperties } from 'react'\nimport React from 'react'\nimport { useState } from 'react'\nimport type { ScrollingTextElementProps } from '~/types'\n\ntype AnimationPlayState = 'running' | 'paused'\n\nconst ScrollingText = React.forwardRef<\n HTMLDivElement,\n ScrollingTextElementProps\n>((props, ref) => {\n let { children, value, gap, speed, pauseOnHover, ...rest } = props\n let [playState, setPlayState] = useState<AnimationPlayState>('running')\n let style = {\n '--gap': `${gap}px`,\n '--speed': `${speed}s`,\n '--play-state': playState,\n } as CSSProperties\n\n let events = {}\n if (pauseOnHover) {\n events = {\n onMouseEnter: () => setPlayState('paused'),\n onMouseLeave: () => setPlayState('running'),\n }\n }\n\n return (\n <div ref={ref} {...rest}>\n <div className=\"wv-scrolling-text__container\" style={style} {...events}>\n {Array.from({ length: 30 }).map((_, i) => (\n <div\n key={i}\n className=\"wv-text-content\"\n dangerouslySetInnerHTML={{ __html: value }}\n />\n ))}\n </div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n display: 'flex',\n padding: '10px',\n overflow: 'hidden',\n '.wv-scrolling-text__container': {\n visibility: 'visible',\n whiteSpace: 'nowrap',\n display: 'flex',\n gap: 'var(--gap, 40px)',\n animation: 'wv-scrolling-text var(--speed, 100s) linear infinite',\n animationPlayState: 'var(--play-state, running)',\n '.wv-text-content': {\n width: '100%',\n height: 'fit-content',\n '> p, > h1, > h2, > h3, > h4, > h5, > h6': {\n all: 'inherit',\n margin: '0',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n width: 'auto',\n height: 'auto',\n },\n },\n },\n },\n}\n\nScrollingText.defaultProps = {\n value: '<p>The quick brown fox jumps over the lazy dog</p>',\n gap: 40,\n speed: 200,\n pauseOnHover: true,\n}\n\nexport default ScrollingText\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef, useContext } from 'react'\nimport { WeaverseContext } from '~/context'\nimport type { VideoElementProps } from '~/types'\nimport { getVimeoId, getYoutubeEmbedId } from '~/utils'\nimport { HTMLVideo } from './html-video'\nimport { Vimeo } from './vimeo'\nimport { Youtube } from './youtube'\n\nlet Video = forwardRef<HTMLDivElement, VideoElementProps>((props, ref) => {\n let { isDesignMode } = useContext(WeaverseContext)\n let {\n src,\n controls,\n poster,\n autoPlay: originAutoPlay,\n loop,\n muted,\n ...rest\n } = props\n let autoPlay = !isDesignMode && originAutoPlay\n let videoProps = { src, controls, poster, autoPlay, loop, muted }\n let content\n let youtubeId = getYoutubeEmbedId(src)\n let vimeoId = getVimeoId(src)\n // youtube\n if (youtubeId) {\n content = <Youtube {...videoProps} youtubeId={youtubeId} />\n // vimeo\n } else if (vimeoId) {\n content = <Vimeo {...videoProps} vimeoId={vimeoId} />\n } else {\n content = <HTMLVideo {...videoProps} />\n }\n return (\n <div ref={ref} {...rest}>\n {content}\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n video: {\n height: '100%',\n width: '100%',\n aspectRatio: '16 / 9',\n },\n iframe: {\n border: 'none',\n },\n },\n '@mobile': {\n iframe: {\n border: 'none',\n },\n },\n}\n\nVideo.defaultProps = {\n src: 'https://youtu.be/wM-NT6hcw48',\n poster:\n 'https://ucarecdn.com/c413b8fe-ceec-4948-9c42-a0434c4ca920/-/preview/-/quality/smart/-/format/auto/',\n loop: false,\n controls: false,\n autoPlay: true,\n muted: true,\n}\n\nexport default Video\n","import React from 'react'\nimport type { VideoCommonProps } from '~/types'\n\nexport function HTMLVideo(props: VideoCommonProps) {\n let { src, type, controls, autoPlay, loop, muted } = props\n return (\n <video\n controls={controls}\n autoPlay={autoPlay}\n loop={loop}\n muted={muted}\n controlsList=\"nodownload\"\n disablePictureInPicture\n >\n <source src={src} type={type || 'video/mp4'} />\n <source src={src} type=\"video/ogg\" />\n Your browser does not support the video tag.\n </video>\n )\n}\n","import React from 'react'\nimport type { VimeoElementProps } from '~/types'\n\nexport function Vimeo(props: VimeoElementProps) {\n let { vimeoId, controls, autoPlay, loop, muted } = props\n let params = `autoplay=${autoPlay}&loop=${loop}&controls=${controls}&muted=${muted}`\n let vimeoSrc = `https://player.vimeo.com/video/${vimeoId}?${params}`\n return <iframe src={vimeoSrc} width=\"100%\" height=\"100%\" allowFullScreen />\n}\n","import React from 'react'\nimport type { YoutubeElementProps } from '~/types'\n\nexport function Youtube(props: YoutubeElementProps) {\n let { youtubeId, controls, autoPlay, loop, muted } = props\n let params = new URLSearchParams({\n autoplay: autoPlay ? '1' : '0',\n controls: controls ? '1' : '0',\n loop: loop ? '1' : '0',\n mute: muted ? '1' : '0',\n })\n let youtubeSrc = `https://www.youtube.com/embed/${youtubeId}?playlist=${youtubeId}&${params.toString()}`\n let allow = `accelerometer;${\n autoPlay ? 'autoplay;' : ''\n } clipboard-write; encrypted-media; gyroscope; picture-in-picture`\n return <iframe src={youtubeSrc} width=\"100%\" height=\"100%\" allow={allow} />\n}\n","import React, { forwardRef, useEffect, useState } from 'react'\nimport { INSTAGRAM_API } from '~/constant'\nimport type { InstagramElementProps, InstagramMedia } from '~/types'\nimport { Components } from '~/components'\n\nlet Instagram = forwardRef<HTMLDivElement, InstagramElementProps>(\n (props, ref) => {\n let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props\n let [media, setMedia] = useState<InstagramMedia[]>([])\n let [error, setError] = useState(null)\n\n useEffect(() => {\n if (token) {\n let params = new URLSearchParams({\n access_token: token,\n fields: 'id,media_type,caption,media_url,permalink,thumbnail_url',\n })\n fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`)\n .then((res) => res.json())\n .then((res) => {\n if (res.error) {\n setError(res)\n } else {\n setError(null)\n setMedia([...res.data])\n }\n })\n .catch(setError)\n }\n }, [token])\n\n if (!token || error) {\n return (\n <div ref={ref} {...rest}>\n <Components.Placeholder element=\"Instagram\">\n {!token\n ? 'Connect to Instagram to display photos on your site.'\n : 'Invalid or expired token!'}\n </Components.Placeholder>\n </div>\n )\n }\n\n let style = {\n '--wv-ig-images-per-row': imagesPerRow,\n '--wv-ig-images-gap': gap + 'px',\n } as React.CSSProperties\n\n return (\n <div ref={ref} {...rest} style={style}>\n <div className=\"wv-ig-media-container\">\n {media.slice(0, numberOfImages).map((item) => {\n let {\n id,\n permalink,\n caption,\n media_url,\n media_type,\n thumbnail_url,\n } = item\n if (media_type === 'VIDEO') {\n return (\n <video key={id} controls poster={thumbnail_url}>\n <source src={media_url} type=\"video/mp4\" />\n </video>\n )\n }\n return (\n <a key={id} href={permalink} target=\"_blank\" rel=\"noreferrer\">\n <img alt={caption} src={media_url} />\n </a>\n )\n })}\n </div>\n </div>\n )\n }\n)\nexport let css = {\n // '@desktop': {\n // '.wv-ig-media-container': {\n // overflow: 'hidden',\n // maxWidth: '100%',\n // maxHeight: '100%',\n // display: 'grid',\n // gridTemplateColumns: 'repeat(var(--wv-ig-images-per-row, 4), 1fr)',\n // gap: 'var(--wv-ig-images-gap, 0px)',\n // img: {\n // // aspectRatio: '1 / 1',\n // maxWidth: '100%',\n // maxHeight: '100%',\n // objectFit: 'cover',\n // },\n // },\n // },\n}\n\nexport let permanentCss = {\n '@desktop': {\n '.wv-ig-media-container': {\n overflow: 'hidden',\n maxWidth: '100%',\n maxHeight: '100%',\n display: 'grid',\n gridTemplateColumns: 'repeat(var(--wv-ig-images-per-row, 4), 1fr)',\n gap: 'var(--wv-ig-images-gap, 0px)',\n img: {\n // aspectRatio: '1 / 1',\n maxWidth: '100%',\n maxHeight: '100%',\n objectFit: 'cover',\n },\n video: {\n width: '100%',\n height: '100%',\n },\n },\n },\n '@mobile': {\n '.wv-ig-media-container': {\n overflowX: 'auto',\n display: 'flex',\n scrollSnapType: 'x mandatory',\n },\n '.wv-ig-media-container a': {\n scrollSnapAlign: 'start',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: '100%',\n },\n },\n}\n\nInstagram.defaultProps = {\n token: '',\n username: '',\n numberOfImages: 8,\n imagesPerRow: 4,\n gap: 0,\n}\n\nexport default Instagram\n","import type {\n DialogCloseProps,\n DialogProps,\n DialogTitleProps,\n} from '@radix-ui/react-dialog'\nimport { Close, Portal, Root, Trigger } from '@radix-ui/react-dialog'\nimport React, { forwardRef } from 'react'\nimport type { ModalContentProps } from '~/types/components'\nimport { Icon } from '../icons'\nimport {\n StyledCloseIcon,\n StyledContent,\n StyledOverlay,\n StyledTitle,\n} from './styled'\nimport { useOpenChangeEffect } from './use-open-change-effect'\n\nexport let Modal = (props: DialogProps) => {\n let { children, open, defaultOpen, onOpenChange, ...rest } = props\n let handleOpenChange = useOpenChangeEffect(props)\n\n return (\n <Root\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={handleOpenChange}\n {...rest}\n >\n {children}\n </Root>\n )\n}\n\nexport let ModalTrigger = Trigger\nexport let ModalHeader = forwardRef<HTMLHeadingElement, DialogTitleProps>(\n (props, ref) => {\n let { children, ...rest } = props\n return (\n <StyledTitle ref={ref} {...rest} data-wv-modal-header>\n {children}\n </StyledTitle>\n )\n }\n)\n\nexport let ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n (props, ref) => {\n let { children, size, portal, ...rest } = props\n let modalContent = (\n <>\n <StyledOverlay />\n <StyledContent\n {...rest}\n onCloseAutoFocus={(e) => e.preventDefault()}\n data-wv-modal\n data-size={size}\n ref={ref}\n >\n <ModalClose />\n <div className=\"wv-modal-content\">{children}</div>\n </StyledContent>\n </>\n )\n\n if (portal) {\n return <Portal>{modalContent}</Portal>\n }\n return modalContent\n }\n)\n\nModalContent.defaultProps = {\n size: 'auto',\n portal: false,\n}\n\nexport let ModalClose = forwardRef<HTMLButtonElement, DialogCloseProps>(\n (props, ref) => {\n let { asChild, children, ...rest } = props\n let closeIcon = (\n <StyledCloseIcon>\n <Icon name=\"X\" />\n </StyledCloseIcon>\n )\n return (\n <Close asChild {...rest} ref={ref}>\n {asChild ? children : closeIcon}\n </Close>\n )\n }\n)\n","import React from 'react'\nimport type { WeaverseIconProps } from '~/types/components'\nimport * as PhosphorIcons from './phosphor'\nimport clsx from 'clsx'\n\nexport function Icon({ name, className, ...props }: WeaverseIconProps) {\n let WeaverseIcon = PhosphorIcons[name]\n let cls = clsx('wv-icon', className)\n return <WeaverseIcon className={cls} {...props} />\n}\n","import type { HTMLAttributes } from 'react'\nimport React from 'react'\n\nexport let Circle = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <circle cx=\"128\" cy=\"128\" r=\"104\"></circle>\n </svg>\n )\n}\n\nexport let CircleNotch = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <circle\n style={{ opacity: '.25' }}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n style={{ opacity: '.75' }}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )\n}\n\nexport let X = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"200\"\n y1=\"56\"\n x2=\"56\"\n y2=\"200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"200\"\n y1=\"200\"\n x2=\"56\"\n y2=\"56\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Minus = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Plus = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <line\n x1=\"128\"\n y1=\"40\"\n x2=\"128\"\n y2=\"216\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let CaretLeft = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <polyline\n points=\"160 208 80 128 160 48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let CaretRight = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <polyline\n points=\"96 48 176 128 96 208\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let ArrowLeft = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"216\"\n y1=\"128\"\n x2=\"40\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <polyline\n points=\"112 56 40 128 112 200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let ArrowRight = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"40\"\n y1=\"128\"\n x2=\"216\"\n y2=\"128\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <polyline\n points=\"144 56 216 128 144 200\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Image = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 640 512\"\n {...props}\n >\n <path d=\"M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z\" />\n </svg>\n )\n}\n\nexport let ShoppingCart = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <circle\n cx=\"80\"\n cy=\"204\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <circle\n cx=\"184\"\n cy=\"204\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n <path\n d=\"M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n />\n </svg>\n )\n}\n\nexport let Storefront = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M96,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M160,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M224,96v16a32,32,0,0,1-64,0V96\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Package = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <polyline\n points=\"177 152.5 177 100.5 80 47\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <polyline\n points=\"222.9 74.6 128.9 128 33.1 74.6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <line\n x1=\"128.9\"\n y1=\"128\"\n x2=\"128\"\n y2=\"234.8\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n </svg>\n )\n}\n\nexport let HandBag = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <path\n d=\"M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n <path\n d=\"M88,104V72a40,40,0,0,1,80,0v32\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n </svg>\n )\n}\n\nexport let Tag = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\"></rect>\n <path\n d=\"M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"16\"\n ></path>\n <circle cx=\"84\" cy=\"84\" r=\"12\"></circle>\n </svg>\n )\n}\n\nexport let Backpack = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <path\n d=\"M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"112\"\n y1=\"88\"\n x2=\"144\"\n y2=\"88\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"80\"\n y1=\"168\"\n x2=\"176\"\n y2=\"168\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <line\n x1=\"144\"\n y1=\"168\"\n x2=\"144\"\n y2=\"184\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n\nexport let Newspaper = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <line\n x1=\"96\"\n y1=\"112\"\n x2=\"176\"\n y2=\"112\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <line\n x1=\"96\"\n y1=\"144\"\n x2=\"176\"\n y2=\"144\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M32,200a16,16,0,0,1-16-16h0V88\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"8\"\n />\n </svg>\n )\n}\n\nexport let Eye = (props: HTMLAttributes<SVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"192\"\n height=\"192\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n {...props}\n >\n <rect width=\"256\" height=\"256\" fill=\"none\" />\n <path\n d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n <circle\n cx=\"128\"\n cy=\"128\"\n r=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"12\"\n />\n </svg>\n )\n}\n","import { Content, Overlay, Title } from '@radix-ui/react-dialog'\nimport { keyframes, styled } from '@stitches/react'\n\nlet overlayShow = keyframes({\n '0%': { opacity: 0 },\n '100%': { opacity: 1 },\n})\n\nlet contentShow = keyframes({\n '0%': { opacity: 0, transform: 'translate(-50%, -48%) scale(.96)' },\n '100%': { opacity: 1, transform: 'translate(-50%, -50%) scale(1)' },\n})\n\nexport let StyledOverlay = styled(Overlay, {\n display: 'block !important',\n backgroundColor: 'rgba(0, 0, 0, .3)',\n position: 'fixed',\n zIndex: 99999,\n inset: 0,\n animation: `${overlayShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n})\n\nexport let StyledTitle = styled(Title, {\n margin: '0 0 24px',\n fontWeight: 500,\n fontSize: 24,\n '@media (max-width: 768px)': {\n margin: '0 0 16px',\n fontSize: 20,\n },\n})\n\nexport let StyledContent = styled(Content, {\n backgroundColor: 'white',\n borderRadius: 6,\n boxShadow:\n 'hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px',\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: 24,\n animation: `${contentShow} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n zIndex: 99999,\n maxWidth: '90vw',\n width: 'auto',\n '*': {\n maxWidth: '100%',\n },\n '&:focus': { outline: 'none' },\n '&[data-size=\"fullscreen\"]': {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n borderRadius: 0,\n },\n '@media (max-width: 768px)': {\n width: '90vw',\n padding: 12,\n '&[data-size=\"fullscreen\"]': {\n width: '100vw',\n },\n },\n})\n\nexport let StyledCloseIcon = styled('button', {\n all: 'unset',\n cursor: 'pointer',\n fontFamily: 'inherit',\n borderRadius: '100%',\n height: 32,\n width: 32,\n padding: 4,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'rgb(55, 65, 81)',\n position: 'absolute',\n top: 8,\n right: 8,\n '&:hover': {\n backgroundColor: 'rgba(112, 112, 112, .1)',\n },\n svg: {\n width: 24,\n height: 24,\n },\n})\n","import type { DialogProps } from '@radix-ui/react-dialog'\nimport { useContext, useEffect } from 'react'\nimport { WeaverseContext } from '~/index'\n\nexport function useOpenChangeEffect(props: DialogProps) {\n let { open, defaultOpen, onOpenChange } = props\n let rootCtx = useContext(WeaverseContext)\n\n let toggleRootzIndex = (open?: boolean) => {\n let { contentRootElement } = rootCtx\n if (contentRootElement) {\n if (open) {\n contentRootElement.classList.add('modal-open')\n } else {\n contentRootElement.classList.remove('modal-open')\n }\n }\n }\n\n useEffect(() => {\n let isOpen = open || defaultOpen\n toggleRootzIndex(isOpen)\n }, [open, defaultOpen])\n\n let handleOpenChange = (open: boolean) => {\n toggleRootzIndex(open)\n onOpenChange?.(open)\n }\n\n return handleOpenChange\n}\n","import React from 'react'\nimport { Icon } from './icons'\n\nexport function Spinner() {\n return (\n <span className=\"wv-spinner-wrapper\">\n <Icon name=\"CircleNotch\" className=\"wv-spinner\" />\n </span>\n )\n}\n","import type { TooltipProps } from '~/types/components'\nimport React from 'react'\n\nexport function Tooltip({ children }: TooltipProps) {\n return <span className=\"wv-tooltip\">{children}</span>\n}\n","import clsx from 'clsx'\nimport { useKeenSlider } from 'keen-slider/react'\nimport React, { useState } from 'react'\nimport type { SliderProps } from '~/types/components'\nimport { Arrows } from './arrows'\nimport { ResizePlugin } from './resize-plugin'\n\nexport function Slider(props: SliderProps) {\n let { children, className, gap, slidesPerView, arrowOffset } = props\n let [currentSlide, setCurrentSlide] = useState(0)\n let [created, setCreated] = useState(false)\n let [ref, instanceRef] = useKeenSlider<HTMLDivElement>(\n {\n slides: { perView: slidesPerView, spacing: gap },\n breakpoints: {\n '(max-width: 1024px)': {\n slides: { perView: 3, spacing: gap },\n },\n '(max-width: 768px)': {\n slides: {\n perView: 1,\n spacing: 32,\n },\n },\n },\n created: () => {\n setCreated(true)\n },\n slideChanged: (slider) => {\n setCurrentSlide(slider.track.details.rel)\n },\n },\n [ResizePlugin]\n )\n let _className = clsx('keen-slider', className)\n let arrowsClass = clsx(className && `${className}-arrows`)\n\n return (\n <>\n <div ref={ref} className={_className}>\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css\"\n />\n {children}\n </div>\n {created && instanceRef?.current && (\n <Arrows\n currentSlide={currentSlide}\n instanceRef={instanceRef}\n className={arrowsClass}\n offset={arrowOffset}\n icon=\"arrow\"\n />\n )}\n </>\n )\n}\n","import { styled } from '@stitches/react'\nimport clsx from 'clsx'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport type { SliderArrowsProps } from '~/types/components'\nimport { Icon } from '../icons'\n\nexport function Arrows(props: SliderArrowsProps) {\n let { currentSlide, instanceRef, className, icon, offset } = props\n let isFirst = currentSlide === 0\n let isLast = false\n if (instanceRef.current) {\n isLast = currentSlide === instanceRef?.current?.track?.details?.maxIdx\n }\n let style = {\n '--offset': `${offset}px`,\n } as React.CSSProperties\n\n return (\n <StyledArrows className={className} style={style}>\n <button\n type=\"button\"\n className={clsx('arrow arrow--left', isFirst && 'arrow--disabled')}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n instanceRef?.current?.prev()\n }}\n >\n <Icon name={icon === 'caret' ? 'CaretLeft' : 'ArrowLeft'} />\n </button>\n <button\n type=\"button\"\n className={clsx('arrow arrow--right', isLast && 'arrow--disabled')}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n instanceRef?.current?.next()\n }}\n >\n <Icon name={icon === 'caret' ? 'CaretRight' : 'ArrowRight'} />\n </button>\n </StyledArrows>\n )\n}\n\nlet StyledArrows = styled('div', {\n '.arrow': {\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n width: '44px',\n height: '44px',\n padding: '8px',\n color: '#191919',\n backgroundColor: '#f2f2f2',\n textAlign: 'center',\n transition: 'all 0.2s ease-in-out',\n borderRadius: '4px',\n border: 'none',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '#191919',\n color: '#f2f2f2',\n },\n svg: {\n verticalAlign: 'middle',\n width: '22px',\n height: '22px',\n },\n '&.arrow--left': {\n left: 'var(--offset, 0px)',\n },\n '&.arrow--right': {\n right: 'var(--offset, 0px)',\n },\n '&.arrow--disabled': {\n opacity: 0.5,\n },\n },\n '@media (max-width: 768px)': {\n '.arrow': {\n display: 'none',\n },\n },\n})\n","import type { KeenSliderPlugin } from 'keen-slider/react'\n\nexport let ResizePlugin: KeenSliderPlugin = (slider) => {\n let observer = new ResizeObserver(() => slider.update())\n slider.on('created', () => {\n observer.observe(slider.container)\n })\n slider.on('destroyed', () => {\n observer.unobserve(slider.container)\n })\n}\n","import { styled } from '@stitches/react'\nimport clsx from 'clsx'\nimport React from 'react'\nimport type { SliderDotsProps } from '~/types/components'\n\nexport function Dots(props: SliderDotsProps) {\n let { currentSlide, instanceRef, className, absolute, position, color } =\n props\n let _className = clsx(\n className,\n absolute && 'dots--absolute',\n position && `dots--${position}`,\n color && `dots--${color}`\n )\n return (\n <StyledDots className={_className}>\n {[...Array(instanceRef.current?.track.details.slides.length).keys()].map(\n (idx) => {\n let className = clsx('dot', currentSlide === idx && 'dot--active')\n return (\n <button\n key={idx}\n type=\"button\"\n onClick={() => instanceRef.current?.moveToIdx(idx)}\n className={className}\n />\n )\n }\n )}\n </StyledDots>\n )\n}\n\nlet StyledDots = styled('div', {\n padding: '10px 0',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '12px',\n '&.dots--absolute': {\n position: 'absolute',\n '&.dots--top, &.dots--bottom': { left: 0, right: 0 },\n '&.dots--top': { top: 10 },\n '&.dots--bottom': { bottom: 10 },\n '&.dots--left, &.dots--right': {\n top: 0,\n bottom: 0,\n flexDirection: 'column',\n },\n '&.dots--left': { left: 20 },\n '&.dots--right': { right: 20 },\n },\n '&.dots--light': {\n '.dot': {\n backgroundColor: '#ffffff66',\n '&.dot--active': {\n backgroundColor: '#ffffff',\n },\n },\n },\n '&.dots--dark': {\n '.dot': {\n backgroundColor: '#00000033',\n '&.dot--active': {\n backgroundColor: '#000000',\n },\n },\n },\n '.dot': {\n width: '9px',\n height: '9px',\n padding: '0',\n border: 'none',\n borderRadius: '50%',\n transition: 'all 0.2s ease-in-out',\n },\n})\n","import type { KeenSliderInstance, KeenSliderPlugin } from 'keen-slider/react'\n\nexport function AutoplayPlugin(changeSlidesEvery: number): KeenSliderPlugin {\n return (slider: KeenSliderInstance) => {\n let timeout: ReturnType<typeof setTimeout>\n let mouseOver = false\n function clearNextTimeout() {\n clearTimeout(timeout)\n }\n function nextTimeout() {\n clearTimeout(timeout)\n if (mouseOver) return\n timeout = setTimeout(() => {\n slider.next()\n }, changeSlidesEvery * 1000)\n }\n slider.on('created', () => {\n slider.container.addEventListener('mouseover', () => {\n mouseOver = true\n clearNextTimeout()\n })\n slider.container.addEventListener('mouseout', () => {\n mouseOver = false\n nextTimeout()\n })\n nextTimeout()\n })\n slider.on('dragStarted', clearNextTimeout)\n slider.on('animationEnded', nextTimeout)\n slider.on('updated', nextTimeout)\n }\n}\n","import React, { forwardRef } from 'react'\nimport type { PlaceholderProps } from '~/types'\n\nconst Placeholder = forwardRef<HTMLDivElement, PlaceholderProps>(\n (props, ref) => {\n let { element, className, children, ...rest } = props\n return (\n <div data-wv-placeholder ref={ref} className={className} {...rest}>\n <div\n style={{ fontWeight: 600, margin: '10px 0 5px', padding: '0 10px' }}\n >\n {element}\n </div>\n <div\n style={{\n margin: '5px 0 10px',\n textAlign: 'center',\n padding: '0 10px',\n }}\n >\n {children}\n </div>\n </div>\n )\n }\n)\n\nexport default Placeholder\n","import React, { useState } from 'react'\n\ntype NoHydrateProps = {\n id: string\n getHTML?: () => string\n} & JSX.IntrinsicElements['div']\n\nexport function NoHydrate({ id, getHTML, ...rest }: NoHydrateProps) {\n let [html] = useState(() => {\n if (typeof document === 'undefined') {\n return getHTML?.() ?? ''\n }\n let el = document.getElementById(id)\n if (!el) return getHTML?.() ?? ''\n return el.innerHTML\n })\n return <div {...rest} id={id} dangerouslySetInnerHTML={{ __html: html }} />\n}\n","import * as ModalComponents from './modal'\nimport { Spinner } from './spinner'\nimport { Icon } from './icons'\nimport { Tooltip } from './tooltip'\nimport { Slider } from './slider'\nimport { Background } from './background'\nimport { Overlay } from './overlay'\nimport { Arrows } from './slider/arrows'\nimport { Dots } from './slider/dots'\nimport { ResizePlugin } from './slider/resize-plugin'\nimport { AutoplayPlugin } from './slider/autoplay-plugin'\nimport Placeholder from './placeholder'\nimport { NoHydrate } from './no-hydrate'\n\nexport let Components = {\n Background,\n Icon,\n ModalComponents,\n Overlay,\n Placeholder,\n Spinner,\n Slider,\n Tooltip,\n NoHydrate,\n}\n\nexport let SliderComponents = {\n Arrows,\n Dots,\n ResizePlugin,\n AutoplayPlugin,\n}\n","import { css as stitchesCss } from '@stitches/react'\nimport type { ElementCSS } from '@weaverse/core'\nimport clsx from 'clsx'\nimport React, { forwardRef } from 'react'\nimport { Arrows } from '~/components/slider/arrows'\nimport { Dots } from '~/components/slider/dots'\nimport type { SlideshowProps } from '~/types'\nimport { useSlideshowConfigs } from './use-slideshow-configs'\n\nlet Slideshow = forwardRef<HTMLDivElement, SlideshowProps>((props, ref) => {\n let {\n animation,\n showArrows,\n showArrowsOnHover,\n arrowIcon,\n arrowsColor,\n showDots,\n dotsPosition,\n dotsColor,\n children,\n ...rest\n } = props\n let { sliderRef, instanceRef, currentSlide, opacities, ready, created } =\n useSlideshowConfigs(props)\n\n let style = {\n '--slider-opacity': ready ? 1 : 0,\n } as React.CSSProperties\n let faderClass = ''\n if (animation === 'fade') {\n faderClass = stitchesCss({\n '.keen-slider__slide': opacities.reduce<\n Record<string, { opacity: number }>\n >((acc, opacity, index) => {\n acc[`&:nth-child(${index + 1})`] = {\n opacity,\n }\n return acc\n }, {}),\n })().className\n }\n let _className = clsx(\n faderClass,\n animation === 'slide' ? 'keen-slider' : 'keen-fader'\n )\n let arrowsClass = clsx(\n 'wv-slideshow--arrows',\n showArrowsOnHover && 'show-on-hover',\n `arrows--${arrowsColor}`\n )\n\n return (\n <div ref={ref} style={style} {...rest}>\n <div ref={sliderRef} className={_className}>\n {children}\n </div>\n {showArrows && created && instanceRef?.current && (\n <Arrows\n instanceRef={instanceRef}\n currentSlide={currentSlide}\n className={arrowsClass}\n icon={arrowIcon}\n offset={20}\n />\n )}\n {showDots && created && instanceRef?.current && (\n <Dots\n instanceRef={instanceRef}\n currentSlide={currentSlide}\n className=\"wv-slideshow--dots\"\n position={dotsPosition}\n color={dotsColor}\n absolute\n />\n )}\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n opacity: 'var(--slider-opacity, 0)',\n padding: '32px 0',\n position: 'relative',\n '.keen-slider': {\n height: '100%',\n },\n '.keen-fader': {\n position: 'relative',\n height: '100%',\n '.keen-slider__slide': {\n position: 'absolute',\n inset: 0,\n },\n },\n '.wv-slideshow--arrows': {\n '.arrow': {\n borderRadius: '100%',\n backgroundColor: 'transparent',\n padding: '6px',\n '&:hover': {\n backgroundColor: '#fff',\n },\n svg: {\n width: '28px',\n height: '28px',\n },\n },\n '&.show-on-hover': {\n opacity: 0,\n transition: 'opacity 0.3s ease',\n },\n '&.arrows--dark': {\n '.arrow': {\n color: '#000',\n },\n },\n '&.arrows--light': {\n '.arrow': {\n color: '#fff',\n },\n },\n },\n '&:hover': {\n '.wv-slideshow--arrows': {\n opacity: 1,\n },\n },\n },\n}\n\nSlideshow.defaultProps = {\n animation: 'slide',\n slidesPerView: 1,\n spacing: 0,\n showArrows: true,\n showArrowsOnHover: false,\n arrowIcon: 'caret',\n arrowsColor: 'dark',\n showDots: true,\n dotsPosition: 'bottom',\n dotsColor: 'dark',\n loop: true,\n autoRotate: false,\n changeSlidesEvery: 5,\n}\n\nexport default Slideshow\n","import { useKeenSlider } from 'keen-slider/react'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { AutoplayPlugin } from '~/components/slider/autoplay-plugin'\nimport { ResizePlugin } from '~/components/slider/resize-plugin'\nimport { WeaverseContext } from '~/context'\nimport type { SlideshowProps } from '~/types'\nimport { loadCSS } from '~/utils/css'\n\nexport function useSlideshowConfigs(props: SlideshowProps) {\n let {\n animation,\n slidesPerView,\n loop,\n autoRotate,\n changeSlidesEvery,\n children,\n } = props\n\n let { isDesignMode, isPreviewMode } = useContext(WeaverseContext)\n let [opacities, setOpacities] = React.useState<number[]>([])\n let [cssLoaded, setCssLoaded] = useState(false)\n let [created, setCreated] = useState(false)\n let [ready, setReady] = useState(false)\n let [currentSlide, setCurrentSlide] = useState(0)\n\n let sliderPlugins = [ResizePlugin]\n if (autoRotate && (isPreviewMode || !isDesignMode)) {\n sliderPlugins.push(AutoplayPlugin(changeSlidesEvery))\n }\n let [sliderRef, instanceRef] = useKeenSlider<HTMLDivElement>(\n {\n slides:\n animation === 'fade'\n ? React.Children.count(children)\n : { perView: slidesPerView, number: React.Children.count(children) },\n drag: isPreviewMode || !isDesignMode,\n loop,\n selector: animation === 'fade' ? null : '.keen-slider__slide',\n created: (slider) => {\n setCreated(true)\n if (isDesignMode) {\n // Save instance to window so we can access it inside the editor\n let slideshowElement = slider.container.closest(\n '[data-wv-type=\"slideshow\"]'\n )\n let elementId = slideshowElement?.getAttribute('data-wv-id')\n if (elementId) {\n window.weaverseSlideshowInstances = {\n [elementId]: slider,\n }\n }\n }\n },\n slideChanged: (slider) => {\n setCurrentSlide(slider.track.details.rel)\n },\n detailsChanged: (slider) => {\n let newOpacities = slider.track?.details?.slides?.map(\n (slide) => slide.portion\n )\n setOpacities(newOpacities)\n },\n },\n sliderPlugins\n )\n\n useEffect(() => {\n loadCSS({\n rel: 'stylesheet',\n href: 'https://cdn.jsdelivr.net/npm/keen-slider@latest/keen-slider.min.css',\n }).then(() => setCssLoaded(true))\n }, [])\n\n useEffect(() => {\n if (created && cssLoaded) {\n setReady(true)\n }\n }, [created, cssLoaded])\n\n return {\n sliderRef,\n instanceRef,\n currentSlide,\n opacities,\n ready,\n created,\n }\n}\n","import type Stitches from '@stitches/react/types/stitches'\nimport type { ElementCSS, WeaverseItemStore } from '@weaverse/core'\nimport clsx from 'clsx'\nimport type { LinkHTMLAttributes } from 'react'\n\n// Make the css data formatted to correct order (desktop, tablet, mobile)\nfunction formatCSS(css: ElementCSS) {\n return {\n '@desktop': css['@desktop'],\n '@mobile': css['@mobile'],\n }\n}\n\nlet permanentClasses: Record<string, string> = {}\nexport function generateItemClassName(\n instance: WeaverseItemStore,\n stitchesInstance: Stitches\n) {\n let { css, type, className: cls = '', tailwindClasses } = instance.data\n let className = ''\n let permanentClass = ''\n let perCss = instance.Element?.permanentCss\n if (perCss) {\n if (type in permanentClasses) {\n permanentClass = permanentClasses[type]\n } else {\n // @ts-ignore\n let { className: perCls } = stitchesInstance.css(perCss)()\n Object.assign(permanentClasses, { [type]: perCls })\n permanentClass = perCls\n }\n }\n className = permanentClass\n if (css) {\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let formattedCss = formatCSS(css)\n let newStitchesClass = stitchesInstance.css(formattedCss)().className || ''\n let { stitchesClass } = instance\n let otherClass = (instance.ref.current?.className || '')\n .replace(stitchesClass, '')\n .replace(cls, '')\n .replace(permanentClass, '')\n .trim()\n className = clsx(\n permanentClass,\n cls,\n tailwindClasses,\n newStitchesClass,\n otherClass\n )\n instance.stitchesClass = newStitchesClass\n }\n return className\n}\n\nexport function loadCSS(attrs: LinkHTMLAttributes<HTMLLinkElement>) {\n return new Promise((resolve, reject) => {\n let found = document.querySelector(`link[href=\"${attrs.href}\"]`)\n if (found) {\n return resolve(true)\n }\n let link = document.createElement('link')\n Object.assign(link, attrs)\n link.addEventListener('load', () => resolve(true))\n link.onerror = reject\n document.head.appendChild(link)\n })\n}\n","import type { ElementCSS } from '@weaverse/core'\nimport React, { forwardRef } from 'react'\nimport { Background } from '~/components/background'\nimport { Overlay } from '~/components/overlay'\nimport Placeholder from '~/components/placeholder'\nimport type { SlideProps } from '~/types'\nimport { slidePositionMap } from './position'\n\nlet Slide = forwardRef<HTMLDivElement, SlideProps>((props, ref) => {\n let {\n contentPosition,\n backgroundColor,\n backgroundImage,\n objectFit,\n objectPosition,\n enableOverlay,\n overlayOpacity,\n children,\n ...rest\n } = props\n\n return (\n <div className=\"keen-slider__slide\">\n <Background\n backgroundColor={backgroundColor}\n backgroundImage={backgroundImage}\n backgroundFit={objectFit}\n backgroundPosition={objectPosition}\n className=\"slide-background\"\n />\n <Overlay\n enableOverlay={enableOverlay}\n overlayOpacity={overlayOpacity}\n className=\"slide-overlay\"\n />\n <div ref={ref} style={slidePositionMap[contentPosition]} {...rest}>\n {children?.length ? (\n children\n ) : (\n <Placeholder element=\"Slide\" className=\"wv-slide-placeholder\">\n Drag and drop elements here\n </Placeholder>\n )}\n </div>\n </div>\n )\n})\n\nexport let css: ElementCSS = {\n '@desktop': {\n position: 'relative',\n height: '100%',\n width: '1224px',\n maxWidth: '100%',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n padding: '100px 20px',\n '.wv-slide-placeholder': {\n height: '200px',\n zIndex: 1,\n },\n },\n}\n\nSlide.defaultProps = {\n contentPosition: 'center center',\n objectFit: 'cover',\n objectPosition: 'center center',\n enableOverlay: false,\n overlayOpacity: 30,\n}\n\nexport default Slide\n","import type { CSSProperties } from 'react'\n\nexport let slidePositionMap: Record<string, CSSProperties> = {\n 'top left': {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n },\n 'top center': {\n justifyContent: 'flex-start',\n alignItems: 'center',\n },\n 'top right': {\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n 'center left': {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n 'center center': {\n justifyContent: 'center',\n alignItems: 'center',\n },\n 'center right': {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n 'bottom left': {\n justifyContent: 'flex-end',\n alignItems: 'flex-start',\n },\n 'bottom center': {\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n 'bottom right': {\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n}\n","import type { WeaverseElement } from '@weaverse/core'\nimport * as Button from './button'\nimport * as Container from './container'\nimport * as Countdown from './countdown'\nimport * as Image from './image'\nimport * as Layout from './layout'\nimport * as Map from './map'\nimport * as Text from './text'\nimport * as ScrollingText from './scrolling-text'\nimport * as Video from './video'\nimport * as Instagram from './instagram'\nimport * as Slideshow from './slideshow'\nimport * as Slide from './slideshow/slide'\n\nexport const Elements: Record<string, WeaverseElement> = {\n Countdown: {\n Component: Countdown.default,\n type: 'countdown',\n defaultCss: Countdown.css,\n },\n Button: {\n Component: Button.default,\n type: 'button',\n defaultCss: Button.css,\n },\n Container: {\n Component: Container.default,\n type: 'container',\n defaultCss: Container.css,\n },\n Image: {\n Component: Image.default,\n type: 'image',\n defaultCss: Image.css,\n },\n Instagram: {\n Component: Instagram.default,\n type: 'instagram',\n defaultCss: Instagram.css,\n permanentCss: Instagram.permanentCss,\n },\n Layout: {\n Component: Layout.default,\n type: 'layout',\n defaultCss: Layout.css,\n },\n Map: {\n Component: Map.default,\n type: 'map',\n defaultCss: Map.css,\n },\n Text: {\n Component: Text.default,\n type: 'text',\n defaultCss: Text.css,\n },\n ScrollingText: {\n Component: ScrollingText.default,\n type: 'scrolling-text',\n defaultCss: ScrollingText.css,\n },\n Video: {\n Component: Video.default,\n type: 'video',\n defaultCss: Video.css,\n },\n Slideshow: {\n Component: Slideshow.default,\n type: 'slideshow',\n defaultCss: Slideshow.css,\n },\n Slide: {\n Component: Slide.default,\n type: 'slide',\n defaultCss: Slide.css,\n },\n}\n","/* eslint-disable react/no-children-prop */\nimport type { ElementData, WeaverseProjectDataType } from '@weaverse/core'\nimport { isBrowser } from '@weaverse/core'\nimport React, { memo, useContext, useEffect, useRef, useState } from 'react'\nimport { initUploadCareAdaptiveDelivery } from '~/utils/uploadcare'\nimport { WeaverseContext, WeaverseContextProvider } from './context'\nimport type { ItemComponentProps, WeaverseRootPropsType } from './types'\nimport { generateItemClassName } from './utils/css'\n\nexport let WeaverseRoot = memo(({ context }: WeaverseRootPropsType) => {\n let [, setData] = useState<WeaverseProjectDataType | unknown>(context.data)\n let rootRef = useRef<HTMLElement>()\n let renderRoot = () => setData({})\n\n useEffect(() => {\n context.subscribe(renderRoot)\n context.contentRootElement = rootRef.current\n initUploadCareAdaptiveDelivery(context.weaverseHost as string)\n return () => {\n context.unsubscribe(renderRoot)\n }\n }, [])\n\n let eventHandlers = context?.studioBridge?.eventHandlers || {}\n let themeClass = context.stitchesInstance.theme.className\n\n if (context.data?.rootId) {\n return (\n <div\n className={`weaverse-content-root ${themeClass}`}\n {...eventHandlers}\n ref={rootRef}\n >\n <WeaverseContextProvider value={context}>\n <ItemInstance id={context.data.rootId} />\n </WeaverseContextProvider>\n </div>\n )\n }\n return null\n})\n\nconst ItemComponent = memo(({ instance }: ItemComponentProps) => {\n let context = useContext(WeaverseContext)\n let { stitchesInstance, elementInstances } = context\n let [data, setData] = useState<ElementData>(instance.data)\n let {\n id,\n type,\n childIds = [],\n children = [],\n parentId,\n createdAt,\n updatedAt,\n deletedAt,\n tailwindClasses,\n css,\n className,\n ...rest\n } = data\n\n useEffect(() => {\n let render = (data: ElementData) => setData({ ...data })\n instance.subscribe(render)\n if (isBrowser && !instance.ref.current) {\n // Fallback `ref` if the element isn't created by `React.forwardRef`\n Object.assign(instance.ref, {\n current: document.querySelector(`[data-wv-id=\"${id}\"]`),\n })\n }\n return () => instance.unsubscribe(render)\n }, [])\n\n let Element = elementInstances.get(type)\n\n if (Element?.Component) {\n let Component = Element.Component\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = instance.ref\n }\n return (\n <Component\n key={id}\n data-wv-type={type}\n data-wv-id={id}\n className={generateItemClassName(instance, stitchesInstance)}\n {...rest}\n >\n {/* // TODO: refactor this, migrate to `children` prop */}\n {childIds.map((cid) => (\n <ItemInstance key={cid} id={cid} />\n ))}\n {children.map((item: any) => (\n <ItemInstance key={item.id} id={item.id} />\n ))}\n </Component>\n )\n } else {\n console.warn(`Unknown element: ${type}`)\n return null\n }\n})\nlet ItemInstance = memo(({ id }: { id: string | number }) => {\n let context = useContext(WeaverseContext)\n let { itemInstances } = context\n let instance = itemInstances.get(id)\n if (!instance) {\n console.warn(`Item instance ${id} not found`)\n return <div style={{ display: 'none' }}>Item instance {id} not found</div>\n }\n return <ItemComponent key={id} instance={instance} />\n})\n","import { isBrowser } from '@weaverse/core'\nlet initialized = false\nexport function initUploadCareAdaptiveDelivery(baseUrl: string) {\n try {\n Promise.resolve().then(() => {\n if (!initialized && isBrowser && !window.Blinkloader) {\n initialized = true\n ;(function (src, cb) {\n let s = document.createElement('script')\n s.setAttribute('src', src)\n s.onload = cb\n ;(document.head || document.body).appendChild(s)\n })(baseUrl + '/static/blinkloader.min.js', function () {\n window.Blinkloader.optimize({\n pubkey: '1a22133d1a1bdc089d4c',\n fadeIn: true,\n lazyload: true,\n smartCompression: true,\n responsive: true,\n retina: true,\n webp: true,\n })\n })\n }\n })\n } catch (e) {\n console.error(e)\n }\n}\n"],"mappings":"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","names":["React","forwardRef","css","React","forwardRef","useContext","React","forwardRef","useContext","React","css","React","css","React","forwardRef","React","React","forwardRef","React","css","React","forwardRef","css","React","css","React","css","React","forwardRef","useContext","React","React","React","forwardRef","useContext","React","css","React","forwardRef","useEffect","useState","React","forwardRef","React","Image","React","React","Overlay","useContext","useEffect","useContext","open","useEffect","React","forwardRef","React","React","React","clsx","React","useState","styled","clsx","React","React","clsx","styled","useState","clsx","React","styled","clsx","React","className","React","forwardRef","React","useState","forwardRef","useState","useEffect","React","css","clsx","React","forwardRef","useKeenSlider","React","useContext","useEffect","useState","clsx","css","useContext","React","useState","useKeenSlider","useEffect","forwardRef","clsx","React","css","React","forwardRef","forwardRef","React","css","css","isBrowser","React","useContext","useEffect","useState","useState","useEffect","React","useContext","css","data","isBrowser"]}
|