@plasmicapp/react-web 0.2.402 → 0.2.404
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/all.d.ts +30 -12
- package/dist/index.cjs.js +12 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/react-web.esm.js +12 -15
- package/dist/react-web.esm.js.map +1 -1
- package/dist/render/style-tokens.d.ts +14 -10
- package/package.json +4 -4
- package/skinny/dist/index.js +12 -15
- package/skinny/dist/index.js.map +1 -1
- package/skinny/dist/render/style-tokens.d.ts +14 -10
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/auth/PlasmicPageGuard.tsx","../src/common.ts","../src/render/PlasmicHead/index.tsx","../src/render/PlasmicIcon.tsx","../src/react-utils.tsx","../src/render/PlasmicImg/index.tsx","../src/render/PlasmicLink.tsx","../src/render/translation.tsx","../src/render/PlasmicSlot.tsx","../src/render/elements.ts","../src/render/Stack.tsx","../src/render/global-variants.ts","../src/render/screen-variants.ts","../src/render/ssr.tsx","../src/render/style-tokens.tsx","../src/render/triggers.ts","../src/states/types.ts","../src/states/errors.ts","../src/states/graph.ts","../src/states/valtio.tsx","../src/states/helpers.ts","../src/index-common.tsx","../src/plume/plume-utils.ts","../src/plume/button/index.tsx","../src/plume/props-utils.ts","../src/plume/checkbox/index.tsx","../src/plume/collection-utils.tsx","../src/plume/triggered-overlay/context.tsx","../src/plume/menu/context.tsx","../src/plume/menu/menu.tsx","../src/plume/menu/menu-group.tsx","../src/plume/menu/menu-item.tsx","../src/plume/menu-button/menu-trigger.tsx","../src/plume/menu-button/DropdownMenu.tsx","../src/plume/menu-button/menu-button.tsx","../src/plume/select/context.tsx","../src/plume/select/select.tsx","../src/plume/select/select-option.tsx","../src/plume/select/select-option-group.tsx","../src/plume/switch/index.tsx","../src/plume/text-input/index.tsx","../src/plume/triggered-overlay/triggered-overlay.tsx"],"sourcesContent":["import { usePlasmicDataSourceContext } from \"@plasmicapp/data-sources-context\";\nimport * as plasmicQuery from \"@plasmicapp/query\";\nimport React from \"react\";\n\n// https://stackoverflow.com/a/2117523\nfunction uuidv4() {\n // eslint-disable-next-line\n // @ts-ignore\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16)\n );\n}\n\nasync function triggerLogin(\n appId: string,\n authorizeEndpoint: string,\n redirectUri?: string\n) {\n async function sha256(text: string) {\n const encoder = new TextEncoder();\n const data = encoder.encode(text);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return hashHex;\n }\n\n const continueTo = window.location.href;\n const state = JSON.stringify({ continueTo });\n const code_verifier = uuidv4();\n localStorage.setItem(\"code_verifier\", code_verifier);\n const code_challenge = await sha256(code_verifier);\n\n const params = new URLSearchParams();\n params.set(\"client_id\", appId);\n params.set(\"state\", state);\n params.set(\"response_type\", \"code\");\n params.set(\"code_challenge\", code_challenge);\n params.set(\"code_challenge_method\", \"S256\");\n params.set(\"origin_host\", window.location.host);\n\n if (redirectUri) {\n params.set(\"redirect_uri\", redirectUri);\n }\n\n const url = `${authorizeEndpoint}?${params.toString()}`;\n window.location.href = url;\n}\n\ninterface PlasmicPageGuardProps {\n appId: string;\n authorizeEndpoint: string;\n minRole?: string;\n canTriggerLogin: boolean;\n children: React.ReactNode;\n unauthorizedComp?: React.ReactNode;\n}\n\nexport function PlasmicPageGuard(props: PlasmicPageGuardProps) {\n const {\n appId,\n authorizeEndpoint,\n minRole,\n canTriggerLogin,\n children,\n unauthorizedComp,\n } = props;\n\n const dataSourceCtxValue = usePlasmicDataSourceContext();\n\n React.useEffect(() => {\n if (canTriggerLogin) {\n if (\n minRole &&\n dataSourceCtxValue &&\n \"isUserLoading\" in dataSourceCtxValue &&\n !dataSourceCtxValue.isUserLoading &&\n !dataSourceCtxValue.user\n ) {\n triggerLogin(\n appId,\n authorizeEndpoint,\n dataSourceCtxValue.authRedirectUri\n );\n }\n }\n }, [dataSourceCtxValue, appId, authorizeEndpoint, canTriggerLogin, minRole]);\n\n function canUserViewPage() {\n if (!minRole) {\n return true;\n }\n if (!dataSourceCtxValue) {\n return false;\n }\n if (!dataSourceCtxValue.user) {\n return false;\n }\n if (!(\"roleIds\" in dataSourceCtxValue.user)) {\n return false;\n }\n if (!Array.isArray(dataSourceCtxValue.user.roleIds)) {\n return false;\n }\n return dataSourceCtxValue.user.roleIds.includes(minRole);\n }\n\n // If we are in prepass, PlasmicPageGuard should not render anything\n // it's expected that pages are only equipped with PlasmicPageGuard\n // when it's known that it will disable prepass/prefetching\n if (plasmicQuery.isPlasmicPrepass?.()) {\n return null;\n }\n\n /*\n PlasmicPageGuard has three cases:\n 1. No value of dataSourceCtxValue, user is loading or a trigger login should be performed.\n In this case, we don't want to render the children or the access denied message.\n While the user is loading we look to see if don't have a user value as we can be in a\n revalidate state.\n 2. The user doesn't have access to the page in which we show an access denied message.\n 3. The user has access to the page in which we render the children.\n */\n if (\n !dataSourceCtxValue ||\n (dataSourceCtxValue.isUserLoading && !dataSourceCtxValue.user) ||\n (!dataSourceCtxValue.user && minRole && canTriggerLogin)\n ) {\n return null;\n }\n\n if (!canUserViewPage()) {\n if (unauthorizedComp) {\n return <>{unauthorizedComp}</>;\n }\n\n return <div>You don't have access to this page</div>;\n }\n\n return <>{children}</>;\n}\n\nexport function withPlasmicPageGuard<P extends object>(\n WrappedComponent: React.ComponentType<P>,\n options: Omit<PlasmicPageGuardProps, \"children\">\n) {\n const PageGuard: React.FC<P> = (props) => (\n <PlasmicPageGuard {...options}>\n <WrappedComponent {...props} />\n </PlasmicPageGuard>\n );\n return PageGuard;\n}\n","export function notNil<T>(x: T | undefined | null): x is T {\n return x != null;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...keys: (string | number | symbol)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const key of keys) {\n if (key in obj) {\n res[key] = obj[key as keyof T];\n }\n }\n return res as Partial<T>;\n}\n\nexport function pickBy<T extends {}>(\n obj: T,\n func: (key: string, val: any) => boolean\n): Partial<T> {\n const res: any = {};\n for (const [key, val] of Object.entries(obj)) {\n if (func(key, val)) {\n res[key] = obj[key as keyof T];\n }\n }\n return res as Partial<T>;\n}\n\nexport function omit<T extends {}>(obj: T, ...keys: (keyof T)[]): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function isSubset<T>(a1: T[], a2: T[]) {\n return a1.every((x) => a2.includes(x));\n}\n\nexport function chainSingleArgFuncs<A>(...funcs: ((arg: A) => A)[]) {\n if (funcs.length === 0) {\n return undefined;\n }\n return (arg: A) => {\n let res: A = arg;\n for (const func of funcs) {\n res = func(res);\n }\n return res;\n };\n}\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nexport function isString(x: any): x is string {\n return typeof x === \"string\";\n}\n\nexport function groupBy<T>(\n collection: T[],\n keyFunc: (x: T) => string\n): Record<string, T[]> {\n const result: Record<string, T[]> = {};\n for (const obj of collection) {\n const key = keyFunc(obj);\n if (key in result) {\n result[key].push(obj);\n } else {\n result[key] = [obj];\n }\n }\n return result;\n}\n\nexport function mapValues<V, V2>(\n obj: Record<string, V>,\n mapper: (value: V) => V2\n): Record<string, V2> {\n const result: Record<string, V2> = {};\n for (const key in obj) {\n result[key] = mapper(obj[key]);\n }\n return result;\n}\n","import * as plasmicQuery from \"@plasmicapp/query\";\nimport * as React from \"react\";\n\nexport const PlasmicHeadContext = React.createContext<\n React.ComponentType<any> | undefined\n>(undefined);\n\nexport function PlasmicHead(props: plasmicQuery.HeadMetadata) {\n const Head = React.useContext(PlasmicHeadContext);\n const headMetadata =\n // Check if `HeadMetadataContext` is exported for backward compatibility\n \"HeadMetadataContext\" in plasmicQuery\n ? React.useContext(plasmicQuery.HeadMetadataContext)\n : undefined;\n\n if (headMetadata) {\n // If we have the Head metadata object specified, mutate it so to ensure it\n // stores the data that should go in the <head>.\n if (props.image) {\n headMetadata.image = props.image;\n }\n if (props.title) {\n headMetadata.title = props.title;\n }\n if (props.description) {\n headMetadata.description = props.description;\n }\n if (props.canonical) {\n headMetadata.canonical = props.canonical;\n }\n }\n\n if (!Head) {\n console.warn(\n `Plasmic: Head meta tags are being ignored. To make them work, pass a Head component into PlasmicRootProvider.`\n );\n // TODO: Link to doc about Head.\n return null;\n }\n\n // Helmet does not support React.Fragments, so we need to use `[<meta />,\n // <meta />]` instead of `<><meta /><meta /></>`.\n return (\n <Head>\n {props.image ? (\n [\n <meta\n key=\"twitter:card\"\n name=\"twitter:card\"\n content=\"summary_large_image\"\n />,\n <meta key=\"og:image\" property=\"og:image\" content={props.image} />,\n <meta\n key=\"twitter:image\"\n name=\"twitter:image\"\n content={props.image}\n />,\n ]\n ) : (\n <meta key=\"twitter:card\" name=\"twitter:card\" content=\"summary\" />\n )}\n {props.title && [\n <title key=\"title\">{props.title}</title>,\n <meta key=\"og:title\" property=\"og:title\" content={props.title} />,\n <meta\n key=\"twitter:title\"\n property=\"twitter:title\"\n content={props.title}\n />,\n ]}\n {props.description && [\n <meta\n key=\"description\"\n name=\"description\"\n content={props.description}\n />,\n <meta\n key=\"og:description\"\n property=\"og:description\"\n content={props.description}\n />,\n <meta\n key=\"twitter:description\"\n name=\"twitter:description\"\n content={props.description}\n />,\n ]}\n {props.canonical && (\n <link key=\"canonical\" rel=\"canonical\" href={props.canonical} />\n )}\n </Head>\n );\n}\n\nexport const plasmicHeadMeta = {\n name: \"hostless-plasmic-head\",\n displayName: \"Page Metadata Override\",\n description: \"Set page metadata (HTML <head />) to dynamic values.\",\n importName: \"PlasmicHead\",\n importPath: \"@plasmicapp/react-web\",\n isRepeatable: false,\n styleSections: false,\n props: {\n title: {\n type: \"string\",\n displayName: \"Title\",\n },\n description: {\n type: \"string\",\n displayName: \"Description\",\n },\n image: {\n type: \"imageUrl\",\n displayName: \"Image\",\n },\n canonical: {\n type: \"string\",\n displayName: \"Canonical URL\",\n },\n },\n};\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","/**\n * Responsive `<img/>` replacement, based on `next/image`\n */\n\nimport classNames from \"classnames\";\nimport React, { CSSProperties } from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeRefs } from \"../../react-utils\";\n\nexport interface ImageLoader {\n supportsUrl: (url: string) => boolean;\n transformUrl: (opts: {\n src: string;\n width?: number;\n quality?: number;\n format?: \"webp\";\n }) => string;\n}\n\ntype ImgTagProps = Omit<\n React.ComponentProps<\"img\">,\n \"src\" | \"srcSet\" | \"ref\" | \"style\"\n>;\n\nconst IMG_OPTIMIZER_HOST = \"https://img.plasmic.app\";\n\n// Default image sizes to snap to\n// TODO: make this configurable?\nconst IMG_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nconst DEVICE_SIZES = [640, 750, 828, 1080, 1200, 1920, 2048, 3840];\nconst ALL_SIZES = [...IMG_SIZES, ...DEVICE_SIZES];\n\nexport interface PlasmicImgProps extends ImgTagProps {\n /**\n * Either an object with the src string, and its full width and height,\n * or just a src string with unknown intrinsic dimensions.\n */\n src?:\n | string\n | {\n src:\n | string\n | {\n src: string;\n height: number;\n width: number;\n blurDataURL?: string;\n };\n fullHeight: number;\n fullWidth: number;\n // We might also get a more precise aspectRatio for SVGs\n // instead of relyiing on fullWidth / fullHeight, because\n // those values might be rounded and not so accurate.\n aspectRatio?: number;\n };\n\n /**\n * className applied to the wrapper element if one is used.\n */\n className?: string;\n\n /**\n * css width\n */\n displayWidth?: number | string;\n\n /**\n * css height\n */\n displayHeight?: number | string;\n\n /**\n * css min-width\n */\n displayMinWidth?: number | string;\n\n /**\n * css min-height\n */\n displayMinHeight?: number | string;\n\n /**\n * css max-width\n */\n displayMaxWidth?: number | string;\n\n /**\n * css max-height\n */\n displayMaxHeight?: number | string;\n\n /**\n * For variable quality formats like jpg, the quality from 0 to 100\n */\n quality?: number;\n\n /**\n * ImageLoader to use for loading different dimensions of the image.\n * If none specified, will not attempt to load different dimensions.\n */\n loader?: \"plasmic\" | ImageLoader;\n\n /**\n * Style applied to the wrapper element. objectFit and objectPosition\n * rules are applied to the img element.\n */\n style?: React.CSSProperties;\n\n /**\n * Ref for the img element. The normal <PlasmicImg ref={...} />\n * prop gives the root element instead, which may be the img element\n * or a wrapper element\n */\n imgRef?: React.Ref<HTMLImageElement>;\n}\n\nexport const PlasmicImg = React.forwardRef(function PlasmicImg(\n props: PlasmicImgProps,\n outerRef: React.Ref<HTMLElement>\n) {\n let {\n src,\n className,\n displayWidth,\n displayHeight,\n displayMinWidth,\n displayMinHeight,\n displayMaxWidth,\n displayMaxHeight,\n quality,\n loader,\n imgRef,\n style,\n loading,\n ...rest\n } = props;\n\n const imgProps = Object.assign({}, rest, {\n // Default loading to \"lazy\" if not specified (which is different from the\n // html img, which defaults to eager!)\n loading: loading ?? \"lazy\",\n });\n\n const { fullWidth, fullHeight, aspectRatio } = !src\n ? { fullWidth: undefined, fullHeight: undefined, aspectRatio: undefined }\n : typeof src === \"string\"\n ? getImageSizeData(\n getPixelLength(props.width),\n getPixelLength(props.height)\n )\n : src;\n const srcStr = src\n ? typeof src === \"string\"\n ? src\n : typeof src.src === \"string\"\n ? src.src\n : src.src.src\n : \"\";\n\n // Assume external image if either dimension is null and use usual <img>\n if (fullHeight == null || fullWidth == null) {\n return (\n <img\n src={srcStr}\n className={className}\n style={style}\n {...imgProps}\n loading={loading}\n ref={mergeRefs(imgRef, outerRef) as any}\n />\n );\n }\n\n if (\n isSvg(srcStr) &&\n (displayHeight == null || displayHeight === \"auto\") &&\n (displayWidth == null || displayWidth === \"auto\")\n ) {\n displayWidth = \"100%\";\n }\n\n let computedDisplayWidth = displayWidth;\n if (\n fullWidth &&\n fullHeight &&\n (!displayWidth || displayWidth === \"auto\") &&\n !!getPixelLength(displayHeight)\n ) {\n // If there's a pixel length specified for displayHeight but not displayWidth,\n // then we can derive the pixel length for displayWidth. Having an explicit\n // displayWidth makes this a fixed-size image, which makes it possible for us to\n // generate better markup!\n if (!isSvg(srcStr)) {\n // We shouldn't do it for SVGs though, because `fullWidth` and\n // `fullHeight` might have rounded values so the final\n // `displayWidth` could differ by 1px or so.\n computedDisplayWidth =\n (getPixelLength(displayHeight)! * fullWidth) / fullHeight;\n }\n }\n\n let spacerWidth = fullWidth;\n let spacerHeight = fullHeight;\n if (aspectRatio && isFinite(aspectRatio) && isSvg(srcStr)) {\n // For SVGs, fullWidth and fullHeight can be rounded values, which would\n // cause some discrepancy between the actual aspect ratio and the aspect\n // ratio from those values. So, for those cases, we set large width / height\n // values to get a more precise ratio from the spacer.\n spacerWidth = DEFAULT_SVG_WIDTH;\n spacerHeight = Math.round(spacerWidth / aspectRatio);\n }\n\n const { sizes, widthDescs } = getWidths(computedDisplayWidth, fullWidth, {\n minWidth: displayMinWidth,\n });\n const imageLoader = getImageLoader(loader);\n const spacerSvg = `<svg width=\"${spacerWidth}\" height=\"${spacerHeight}\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"/>`;\n const spacerSvgBase64 =\n // if btoa exists, use btoa, as it works in browser and in\n // cloudflare edge workers. For node, use Buffer.from().\n typeof globalThis.btoa === \"function\"\n ? globalThis.btoa(spacerSvg)\n : Buffer.from(spacerSvg).toString(\"base64\");\n\n let wrapperStyle: CSSProperties = { ...(style || {}) };\n let spacerStyle: CSSProperties = {\n ...pick(style || {}, \"objectFit\", \"objectPosition\"),\n };\n\n if (displayWidth != null && displayWidth !== \"auto\") {\n // If width is set, set it on the wrapper along with min/max width\n // and just use `width: 100%` on the spacer\n spacerStyle.width = \"100%\";\n // Rely on the styles set by `classname` on the wrapper:\n // wrapperStyle.width = displayWidth;\n // wrapperStyle.minWidth = displayMinWidth;\n // wrapperStyle.maxWidth = displayMaxWidth;\n } else {\n // Otherwise, we want auto sizing from the spacer, so set width there.\n //\n // But if we have min/max width, it should be set in the wrapper and it\n // can be percentage values (and we add corresponding min/max width to\n // 100% in the spacer). In general it ends up with the correct effect,\n // but some edge cases might make `min-width: 100%` shrink the image more\n // than it should.\n spacerStyle.width = displayWidth;\n wrapperStyle.width = \"auto\";\n if (displayMinWidth) {\n spacerStyle.minWidth = \"100%\";\n // Rely on min-width set by `classname` on the wrapper:\n // wrapperStyle.minWidth = displayMinWidth;\n }\n if (displayMaxWidth != null && displayMaxWidth !== \"none\") {\n spacerStyle.maxWidth = \"100%\";\n // Rely on max-width set by `classname` on the wrapper:\n // wrapperStyle.maxWidth = displayMaxWidth;\n }\n }\n\n if (displayHeight != null && displayHeight !== \"auto\") {\n spacerStyle.height = \"100%\";\n // wrapperStyle.height = displayHeight;\n // wrapperStyle.minHeight = displayMinHeight;\n // wrapperStyle.maxHeight = displayMaxHeight;\n } else {\n spacerStyle.height = displayHeight;\n wrapperStyle.height = \"auto\";\n if (displayMinHeight) {\n spacerStyle.minHeight = \"100%\";\n // wrapperStyle.minHeight = displayMinHeight;\n }\n if (displayMaxHeight != null && displayMaxHeight !== \"none\") {\n spacerStyle.maxHeight = \"100%\";\n // wrapperStyle.maxHeight = displayMaxHeight;\n }\n }\n\n return (\n <div\n className={classNames(className, \"__wab_img-wrapper\")}\n ref={outerRef as any}\n style={wrapperStyle}\n >\n <img\n alt=\"\"\n aria-hidden\n className=\"__wab_img-spacer-svg\"\n src={`data:image/svg+xml;base64,${spacerSvgBase64}`}\n style={spacerStyle}\n />\n {makePicture({\n imageLoader,\n widthDescs,\n sizes,\n src: srcStr,\n quality,\n ref: imgRef,\n style: style ? pick(style, \"objectFit\", \"objectPosition\") : undefined,\n imgProps,\n className: \"__wab_img\",\n })}\n </div>\n );\n});\n\nfunction makePicture(opts: {\n imageLoader?: ImageLoader;\n widthDescs: WidthDesc[];\n sizes?: string;\n src: string;\n quality?: number;\n style?: React.CSSProperties;\n className?: string;\n imgProps: ImgTagProps;\n ref?: React.Ref<HTMLImageElement>;\n}) {\n // If imageLoader is undefined, then this renders to just a normal\n // <img />. Else it will render to a <picture> with a <source> for\n // webp, and srcSet/sizes set according to width requirements.\n const {\n imageLoader,\n widthDescs,\n src,\n quality,\n style,\n className,\n sizes,\n imgProps,\n ref,\n } = opts;\n return (\n <picture className=\"__wab_picture\">\n {imageLoader && imageLoader.supportsUrl(src) && (\n <source\n type=\"image/webp\"\n srcSet={widthDescs\n .map(\n (wd) =>\n `${imageLoader.transformUrl({\n src,\n quality,\n width: wd.width,\n format: \"webp\",\n })} ${wd.desc}`\n )\n .join(\", \")}\n />\n )}\n <img\n {...imgProps}\n ref={ref}\n className={className}\n decoding=\"async\"\n src={\n imageLoader && imageLoader.supportsUrl(src)\n ? imageLoader.transformUrl({\n src,\n quality,\n width: widthDescs[widthDescs.length - 1].width,\n })\n : src\n }\n srcSet={\n imageLoader && imageLoader.supportsUrl(src)\n ? widthDescs\n .map(\n (wd) =>\n `${imageLoader.transformUrl({\n src,\n quality,\n width: wd.width,\n })} ${wd.desc}`\n )\n .join(\", \")\n : undefined\n }\n sizes={imageLoader && imageLoader.supportsUrl(src) ? sizes : undefined}\n style={{\n ...(style ? pick(style, \"objectFit\", \"objectPosition\") : {}),\n width: 0,\n height: 0,\n }}\n />\n </picture>\n );\n}\n\nconst DEFAULT_SVG_WIDTH = 10000;\n\nfunction isSvg(src: string) {\n return src.endsWith(\".svg\") || src.startsWith(\"data:image/svg\");\n}\n\ninterface WidthDesc {\n width?: number;\n desc: string;\n}\n\nfunction getClosestPresetSize(width: number, fullWidth: number) {\n const nextBiggerIndex =\n ALL_SIZES.findIndex((w) => w >= width) ?? ALL_SIZES.length - 1;\n const nextBigger = ALL_SIZES[nextBiggerIndex];\n if (nextBigger >= fullWidth) {\n // If the requested width is larger than the fullWidth,\n // we just use the original width instead. It's impossible\n // to make an image bigger than fullWidth!\n return undefined;\n } else if (\n nextBiggerIndex + 1 < ALL_SIZES.length &&\n fullWidth <= ALL_SIZES[nextBiggerIndex + 1]\n ) {\n // If the fullWidth is just between nextBigger and the one after that,\n // then also might as well just use the original size (so, width is 30,\n // nextBigger is 32, then we just use the original as long as fullWidth is\n // less than 48)\n return undefined;\n }\n\n return nextBigger;\n}\n\n/**\n * Computes the appropriate srcSet and sizes to use\n */\nfunction getWidths(\n width: number | string | undefined,\n fullWidth: number,\n extra?: { minWidth: string | number | undefined }\n): { sizes: string | undefined; widthDescs: WidthDesc[] } {\n const minWidth = extra?.minWidth;\n const pixelWidth = getPixelLength(width);\n const pixelMinWidth = getPixelLength(minWidth);\n if (pixelWidth != null && (!minWidth || pixelMinWidth != null)) {\n // If there's an exact width, then we just need to display it at 1x and 2x density\n return {\n widthDescs: [\n {\n width: getClosestPresetSize(\n Math.max(pixelWidth, pixelMinWidth ?? 0),\n fullWidth\n ),\n desc: \"1x\",\n },\n {\n width: getClosestPresetSize(\n Math.max(pixelWidth, pixelMinWidth ?? 0) * 2,\n fullWidth\n ),\n desc: \"2x\",\n },\n ],\n sizes: undefined,\n };\n }\n // Otherwise we don't know what sizes we'll end up, so we just cap it at\n // device width. TODO: do better!\n const usefulSizes = DEVICE_SIZES.filter(\n (size) => !fullWidth || size < fullWidth\n );\n if (!!fullWidth && usefulSizes.length === 0) {\n // image fullWidth is smaller than all device sizes. So all we can do\n // is offer 1x\n return {\n widthDescs: [\n {\n width: getClosestPresetSize(fullWidth, fullWidth),\n desc: \"1x\",\n },\n ],\n sizes: undefined,\n };\n }\n return {\n widthDescs: usefulSizes.map((size) => ({\n width: getClosestPresetSize(size, fullWidth),\n // If this is the last (buggest) useful width, but it is\n // still within the bounds set by DEVICE_SIZES, then just\n // use the original, unresized image. This means if we match\n // the largest size, we use unresized and best quality image.\n // We only do this, though, if fullWidth is \"reasonable\" --\n // smaller than the largest size we would consider.\n // i === usefulSizes.length - 1 &&\n // fullWidth < DEVICE_SIZES[DEVICE_SIZES.length - 1]\n // ? undefined\n // : size,\n desc: `${size}w`,\n })),\n sizes: \"100vw\",\n };\n}\n\nfunction getPixelLength(length: number | string | undefined) {\n if (length == null || length == \"\") {\n return undefined;\n }\n\n if (typeof length === \"number\") {\n return length;\n }\n\n const parsed = parseNumeric(length);\n if (parsed && (!parsed.units || parsed.units === \"px\")) {\n return parsed.num;\n }\n\n return undefined;\n}\n\nfunction parseNumeric(val: string) {\n // Parse strings like \"30\", \"30px\", \"30%\", \"30px /* blah blah */\"\n const res = val.match(\n /^\\s*(-?(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+))\\s*([a-z]*|%)\\s*(?:\\/\\*.*)?$/i\n );\n if (res == null) {\n return undefined;\n }\n const num = res[1];\n const units = res[2];\n return { num: +num, units };\n}\n\nfunction getImageSizeData(\n width: number | undefined,\n height: number | undefined\n) {\n const aspectRatio = width && height ? width / height : undefined;\n return {\n fullWidth: width,\n fullHeight: height,\n aspectRatio: aspectRatio && isFinite(aspectRatio) ? aspectRatio : undefined,\n };\n}\n\nfunction getImageLoader(loader: \"plasmic\" | ImageLoader | undefined) {\n if (loader == null) {\n return undefined;\n } else if (loader === \"plasmic\") {\n return PLASMIC_IMAGE_LOADER;\n } else {\n return loader;\n }\n}\n\nfunction isInternalKey(src: string) {\n return /^([a-f0-9]{32})\\..{1,16}$/i.test(src);\n}\n\nconst PLASMIC_IMAGE_LOADER: ImageLoader = {\n supportsUrl: (src) => {\n return (src.startsWith(\"http\") || isInternalKey(src)) && !isSvg(src);\n },\n transformUrl: (opts) => {\n const params = [\n `src=${encodeURIComponent(opts.src)}`,\n opts.width ? `w=${opts.width}` : undefined,\n `q=${opts.quality ?? 75}`,\n opts.format ? `f=${opts.format}` : undefined,\n ].filter((x) => !!x);\n return `${IMG_OPTIMIZER_HOST}/img-optimizer/v1/img?${params.join(\"&\")}`;\n },\n};\n","import { usePlasmicLinkMaybe } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // The usePlasmicLinkMaybe function may be undefined, if host is not up-to-date\n const Link = usePlasmicLinkMaybe?.() ?? PlasmicLinkInternal;\n if (Link === PlasmicLink || Link === PlasmicLinkInternal) {\n // Just in case, break the cycle\n return <PlasmicLinkInternal {...props} ref={ref} />;\n } else {\n // Don't pass component/platform props to non-PlasmicLinkInternal\n return <Link {...omit(props, \"component\", \"platform\")} ref={ref} />;\n }\n});\n\nexport const PlasmicLinkInternal = React.forwardRef(\n function PlasmicLinkInternal(props: any, ref: React.Ref<any>) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = props.href?.startsWith(\"#\");\n\n return React.createElement(\n props.component,\n {\n scroll: !isFragment,\n ...pick(props, ...nextjsProps),\n legacyBehavior: true,\n },\n <a\n {...omit(props, \"component\", \"platform\", ...nextjsProps)}\n ref={ref}\n />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n if (props.platform === \"tanstack\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n }\n);\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import {\n PlasmicTranslatorContext as HostPlasmicTranslatorContext,\n PlasmicI18NContextValue,\n PlasmicTranslator,\n usePlasmicTranslator as useHostPlasmicTranslator,\n} from \"@plasmicapp/host\";\nimport React from \"react\";\n\n// Make the refactor to host backwards compatible for loader\nexport const PlasmicTranslatorContext =\n HostPlasmicTranslatorContext ??\n React.createContext<PlasmicI18NContextValue | PlasmicTranslator | undefined>(\n undefined\n );\n\nexport const usePlasmicTranslator =\n useHostPlasmicTranslator ??\n (() => {\n const _t = React.useContext(PlasmicTranslatorContext);\n const translator = _t\n ? typeof _t === \"function\"\n ? _t\n : _t.translator\n : undefined;\n return translator;\n });\n\nexport interface TransProps {\n transKey?: string;\n children?: React.ReactNode;\n}\n\nexport function genTranslatableString(\n elt: React.ReactNode,\n opts?: {\n tagPrefix?: string;\n }\n) {\n const components: {\n [key: string]: React.ReactElement;\n } = {};\n let componentsCount = 0;\n\n const getText = (node: React.ReactNode): string => {\n if (!node) {\n return \"\";\n }\n if (\n typeof node === \"number\" ||\n typeof node === \"boolean\" ||\n typeof node === \"string\"\n ) {\n return node.toString();\n }\n if (typeof node !== \"object\") {\n return \"\";\n }\n if (Array.isArray(node) || isIterable(node)) {\n return Array.from(node)\n .map((child) => getText(child))\n .filter((child) => !!child)\n .join(\"\");\n }\n const nodeChildren: React.ReactNode =\n (hasKey(node, \"props\") &&\n hasKey(node.props, \"children\") &&\n (node.props.children as React.ReactNode | undefined)) ||\n (hasKey(node, \"children\") && node.children) ||\n [];\n const contents = `${React.Children.toArray(nodeChildren)\n .map((child) => getText(child))\n .filter((child) => !!child)\n .join(\"\")}`;\n if (React.isValidElement(node) && node.type === React.Fragment) {\n return contents;\n }\n const prefix = opts?.tagPrefix ?? \"\";\n const componentId = `${prefix}${componentsCount + 1}`;\n componentsCount++;\n components[componentId] = React.isValidElement(node)\n ? React.cloneElement(node as any, {\n key: componentId,\n children: undefined,\n })\n : (node as never);\n return `<${componentId}>${contents}</${componentId}>`;\n };\n\n const str = getText(elt);\n return {\n str,\n components,\n componentsCount,\n };\n}\n\nexport function Trans({ transKey, children }: TransProps) {\n const _t = React.useContext(PlasmicTranslatorContext);\n const translator = _t\n ? typeof _t === \"function\"\n ? _t\n : _t.translator\n : undefined;\n if (!translator) {\n warnNoTranslationFunctionAtMostOnce();\n return children;\n }\n\n const { str, components, componentsCount } = genTranslatableString(children, {\n tagPrefix: typeof _t === \"object\" ? _t.tagPrefix : undefined,\n });\n return translator(\n transKey ?? str,\n componentsCount > 0 ? { components } : undefined\n );\n}\n\nlet hasWarned = false;\nfunction warnNoTranslationFunctionAtMostOnce() {\n if (!hasWarned) {\n console.warn(\n \"Using Plasmic Translation but no translation function has been provided\"\n );\n hasWarned = true;\n }\n}\n\nfunction hasKey<K extends string>(v: any, key: K): v is Record<K, any> {\n return typeof v === \"object\" && v !== null && key in v;\n}\n\nfunction isIterable(val: any): val is Iterable<any> {\n return val != null && typeof val[Symbol.iterator] === \"function\";\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\nimport { Trans } from \"./translation\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (\n typeof content !== \"number\" &&\n (!content || (Array.isArray(content) && content.length === 0))\n ) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = (\n <span className=\"__wab_slot-string-wrapper ρsw\">{maybeString}</span>\n );\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return content as React.ReactElement | null;\n }\n\n return React.createElement(\n as || \"span\",\n mergeProps({ className: \"__wab_slot ρs\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(\n node: React.ReactNode\n): string | React.ReactElement | undefined {\n // Unwrap fragments\n if (React.isValidElement(node)) {\n // Fragment doesn't render DOM elements\n if (node.type === React.Fragment) {\n return maybeAsString(node.props.children);\n } else if (node.type === Trans) {\n // Trans also doesn't render DOM elements. But we don't want to just render\n // its content string, because we want to keep the <Trans/> for the localization.\n // So we render the same node, to be wrapped into __wab_slot-string-wrapper.\n return node;\n }\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (typeof node === \"number\") {\n return `${node}`;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import get from \"dlv\";\nimport * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { $State } from \"../states\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n): boolean {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container ρfc\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (\n !override ||\n (typeof override === \"object\" && Object.keys(override).length === 0)\n ) {\n return createElementWithChildren(\n defaultRoot,\n defaultProps,\n defaultProps.children\n );\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0\n ? {}\n : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nexport function mergeVariantsWithStates(\n variants: Variants,\n $state: $State,\n linkedStates: {\n variantGroup: string;\n statePath: (string | number)[];\n }[]\n): Variants {\n return {\n ...variants,\n ...Object.fromEntries(\n linkedStates.map(({ variantGroup, statePath }) => [\n variantGroup,\n get($state, statePath),\n ])\n ),\n };\n}\n\nfunction mergeArgs<A extends Args>(\n a1: Partial<A> | undefined,\n a2: Partial<A> | undefined\n): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","const isDefaultValue = (val: unknown) =>\n val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\n\ntype ActiveGlobalVariants = string | string[] | undefined;\nexport type GlobalVariants = { [gv: string]: ActiveGlobalVariants };\nexport type UseGlobalVariants = () => GlobalVariants;\n\n/**\n * Usage:\n * ```\n * // plasmic.ts\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n *\n * export const useGlobalVariants = createUseGlobalVariants({\n * platform: usePlatform,\n * theme: useTheme,\n * });\n *\n * // PlasmicComponent.tsx\n * import { useGlobalVariants } from \"./plasmic_project\";\n *\n * export function PlasmicComponent() {\n * // ...\n * const globalVariants = useGlobalVariants();\n * // ...\n * }\n * ```\n */\nexport function createUseGlobalVariants<\n T extends { [gv: string]: () => ActiveGlobalVariants }\n>(globalVariantHooks: T): UseGlobalVariants {\n return () => {\n return ensureGlobalVariants(\n Object.fromEntries(\n Object.entries(globalVariantHooks).map<[string, ActiveGlobalVariants]>(\n ([globalVariant, useHook]) => [globalVariant, useHook()]\n )\n )\n );\n };\n}\n\n/**\n * @deprecated - new generated code should use `useGlobalVariants` instead\n *\n * Usage:\n * ```\n * // PlasmicComponent.tsx\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n *\n * export function PlasmicComponent() {\n * // ...\n * const globalVariants = ensureGlobalVariants({\n * platform: usePlatform(),\n * theme: useTheme(),\n * });\n * // ...\n * }\n * ```\n */\nexport function ensureGlobalVariants<T extends GlobalVariants>(\n globalVariants: T\n): GlobalVariants {\n Object.entries(globalVariants)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariants as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariants;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import {\n PlasmicDataSourceContextProvider,\n PlasmicDataSourceContextValue,\n} from \"@plasmicapp/data-sources-context\";\nimport {\n DataProvider,\n PlasmicI18NContextValue,\n PlasmicLinkProvider,\n PlasmicTranslator,\n} from \"@plasmicapp/host\";\nimport { SSRProvider, useIsSSR as useAriaIsSSR } from \"@react-aria/ssr\";\nimport * as React from \"react\";\nimport { PlasmicHeadContext } from \"./PlasmicHead\";\nimport { PlasmicLinkInternal } from \"./PlasmicLink\";\nimport { PlasmicTranslatorContext } from \"./translation\";\nexport {\n PlasmicDataSourceContextProvider,\n useCurrentUser,\n} from \"@plasmicapp/data-sources-context\";\n// import { PlasmicLink } from \"./PlasmicLink\";\n\nexport interface PlasmicRootContextValue {\n platform?: \"nextjs\" | \"gatsby\";\n}\n\nconst PlasmicRootContext = React.createContext<\n PlasmicRootContextValue | undefined\n>(undefined);\n\nexport interface PlasmicRootProviderProps\n extends PlasmicDataSourceContextValue {\n platform?: \"nextjs\" | \"gatsby\";\n children?: React.ReactNode;\n i18n?: PlasmicI18NContextValue;\n /**\n * @deprecated use i18n.translator instead\n */\n translator?: PlasmicTranslator;\n Head?: React.ComponentType<any>;\n Link?: React.ComponentType<any>;\n disableLoadingBoundary?: boolean;\n suspenseFallback?: React.ReactNode;\n}\n\nexport function PlasmicRootProvider(props: PlasmicRootProviderProps) {\n const {\n platform,\n children,\n userAuthToken,\n isUserLoading,\n authRedirectUri,\n user,\n disableLoadingBoundary,\n suspenseFallback,\n } = props;\n const context = React.useMemo(\n () => ({\n platform,\n }),\n [platform]\n );\n const dataSourceContextValue = React.useMemo(\n () => ({\n userAuthToken,\n user,\n isUserLoading,\n authRedirectUri,\n }),\n [userAuthToken, isUserLoading, user, authRedirectUri]\n );\n const reactMajorVersion = +React.version.split(\".\")[0];\n\n return (\n <MaybeWrap\n cond={!disableLoadingBoundary && reactMajorVersion >= 18}\n wrapper={(children_) => (\n <DataProvider\n name=\"plasmicInternalEnableLoadingBoundary\"\n hidden\n data={true}\n >\n <React.Suspense fallback={suspenseFallback ?? \"Loading...\"}>\n {children_}\n </React.Suspense>\n </DataProvider>\n )}\n >\n <PlasmicRootContext.Provider value={context}>\n <MaybeWrap\n cond={reactMajorVersion < 18}\n wrapper={(children_) => <SSRProvider>{children_}</SSRProvider>}\n >\n <PlasmicDataSourceContextProvider value={dataSourceContextValue}>\n <PlasmicTranslatorContext.Provider\n value={props.i18n ?? props.translator}\n >\n <PlasmicHeadContext.Provider value={props.Head}>\n <SafePlasmicLinkProvider\n Link={props.Link ?? PlasmicLinkInternal}\n >\n {children}\n </SafePlasmicLinkProvider>\n </PlasmicHeadContext.Provider>\n </PlasmicTranslatorContext.Provider>\n </PlasmicDataSourceContextProvider>\n </MaybeWrap>\n </PlasmicRootContext.Provider>\n </MaybeWrap>\n );\n}\n\n/**\n * A PlasmicLinkProvider that anticipates PlasmicLinkProvider may not exist yet from\n * @plasmicapp/host if the user is using an older version\n */\nfunction SafePlasmicLinkProvider(\n props: React.ComponentProps<typeof PlasmicLinkProvider>\n) {\n if (PlasmicLinkProvider) {\n return <PlasmicLinkProvider {...props} />;\n } else {\n return <>{props.children}</>;\n }\n}\n\nexport const useIsSSR = useAriaIsSSR;\n\nexport function useHasPlasmicRoot() {\n return !!React.useContext(PlasmicRootContext);\n}\n\nlet hasWarnedSSR = false;\n/**\n * Warns the user if PlasmicRootProvider is not used\n */\nexport function useEnsureSSRProvider() {\n const hasRoot = useHasPlasmicRoot();\n if (hasRoot || hasWarnedSSR || process.env.NODE_ENV !== \"development\") {\n return;\n }\n\n hasWarnedSSR = true;\n console.warn(\n `Plasmic: To ensure your components work correctly with server-side rendering, please use PlasmicRootProvider at the root of your application. See https://docs.plasmic.app/learn/ssr`\n );\n}\n\nfunction MaybeWrap(props: {\n children: React.ReactElement;\n cond: boolean;\n wrapper: (children: React.ReactElement) => React.ReactElement;\n}) {\n return props.cond ? props.wrapper(props.children) : props.children;\n}\n","import React from \"react\";\nimport { hasVariant } from \"./elements\";\nimport { GlobalVariants, UseGlobalVariants } from \"./global-variants\";\n\ntype ClassName = string;\n\n/**\n * Context that enables a project's style tokens to be propagated across projects.\n *\n * The value is an array of class names, including the class name for the base\n * variant and active global variants. The class names should be applied to all\n * Plasmic content.\n */\nconst StyleTokensContext = React.createContext<ClassName[] | undefined>(\n undefined\n);\n\n/**\n * All style token data for this project.\n *\n * Usage:\n *\n * ```\n * // PlasmicStyleTokensProvider.ts\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n * import projectcss from \"./plasmic.module.css\";\n *\n * const projectStyleTokenData: ProjectStyleTokenData = {\n * base: projectcss.plasmic_tokens,\n * varianted: [\n * {\n * className: projectcss.global_platform_windows,\n * groupName: \"platform\",\n * variant: \"windows\"\n * },\n * {\n * className: projectcss.global_platform_osx,\n * groupName: \"platform\",\n * variant: \"osx\"\n * },\n * {\n * className: projectcss.global_theme_light,\n * groupName: \"theme\",\n * variant: \"light\"\n * },\n * {\n * className: projectcss.global_theme_dark,\n * groupName: \"theme\",\n * variant: \"dark\"\n * },\n * ],\n * };\n * ```\n */\ninterface ProjectStyleTokenData {\n base: ClassName;\n varianted: {\n className: ClassName;\n groupName: string;\n variant: string;\n }[];\n}\n\ntype UseStyleTokens = () => ClassName[];\n\n/**\n * Returns style tokens. If the context is not available, falls back to the\n * current project's styles.\n *\n * Usage:\n * ```\n * // PlasmicStyleTokensProvider.ts\n * export const useStyleTokens = createUseStyleTokens(\n * projectStyleTokenData,\n * useGlobalVariants,\n * );\n *\n * // PlasmicPage.tsx\n * import { useStyleTokens } from \"./plasmic_project\";\n *\n * export function PlasmicPage() {\n * const styleTokensClassNames = useStyleTokens();\n * return (\n * <div className={classNames(\n * projectcss.all,\n * projectcss.root_reset,\n * projectcss.plasmic_default_styles,\n * projectcss.plasmic_mixins,\n * styleTokensClassNames,\n * )}>\n * <h1 className={projectcss.all}>\n * Hello, world!\n * </h1>\n * </div>\n * );\n * }\n * ```\n */\nexport function createUseStyleTokens(\n tokenData: ProjectStyleTokenData,\n useGlobalVariants: UseGlobalVariants\n): UseStyleTokens {\n return () => {\n const overrides = React.useContext(StyleTokensContext);\n const globalVariants = useGlobalVariants();\n return React.useMemo(() => {\n if (overrides && overrides.length > 0) {\n return overrides;\n } else {\n return activeTokensClassNames(tokenData, globalVariants);\n }\n }, [overrides, globalVariants, tokenData]);\n };\n}\n\n/**\n * Creates a StyleTokens context provider for a given project, which includes\n * its tokens, overrides, and all tokens from its dependencies.\n *\n * Usage:\n * ```\n * // PlasmicStyleTokensProvider.ts\n * export const StyleTokensProvider = createStyleTokensProvider(\n * projectStyleTokenData,\n * useGlobalVariants,\n * );\n *\n * // Page.tsx\n * import { StyleTokensProvider } from \"./plasmic_project\";\n *\n * export default function Page() {\n * return (\n * <PlatformContext.Provider value=\"osx\">\n * <ThemeContext.Provider value=\"dark\">\n * <StyleTokensProvider>\n * <PlasmicPage />\n * </StyleTokensProvider>\n * </ThemeContext.Provider>\n * </PlatformContext.Provider>\n * );\n * }\n * ```\n */\nexport function createStyleTokensProvider(\n tokenData: ProjectStyleTokenData,\n useGlobalVariants: UseGlobalVariants\n): React.ComponentType<React.PropsWithChildren> {\n return (props: React.PropsWithChildren) => {\n const globalVariants = useGlobalVariants();\n const tokens = React.useMemo(() => {\n return activeTokensClassNames(tokenData, globalVariants);\n }, [globalVariants, tokenData]);\n return (\n <StyleTokensContext.Provider value={tokens}>\n {props.children}\n </StyleTokensContext.Provider>\n );\n };\n}\n\n/**\n * Gets the class names for the base tokens and the varianted tokens for active\n * global variants.\n */\nfunction activeTokensClassNames(\n tokenData: ProjectStyleTokenData,\n globalVariants: GlobalVariants\n): ClassName[] {\n const varianted = tokenData.varianted\n .filter(({ groupName, variant }) =>\n hasVariant(globalVariants, groupName, variant)\n )\n .map(({ className }) => className);\n return [tokenData.base, ...varianted];\n}\n","import {\n FocusRingAria,\n useFocusRing as useAriaFocusRing,\n} from \"@react-aria/focus\";\nimport {\n HoverResult,\n PressResult,\n useHover as useAriaHover,\n usePress as useAriaPress,\n} from \"@react-aria/interactions\";\n\nimport * as React from \"react\";\n\ntype FocusHookResult = [boolean, FocusRingAria[\"focusProps\"]];\ntype HoverHookResult = [boolean, HoverResult[\"hoverProps\"]];\ntype PressHookResult = [boolean, PressResult[\"pressProps\"]];\n\nfunction useFocused(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: {\n isTextInput?: boolean;\n}): FocusHookResult {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover(): HoverHookResult {\n const { isHovered, hoverProps } = useAriaHover({});\n return [isHovered, hoverProps];\n}\n\nfunction usePressed(): PressHookResult {\n const { isPressed, pressProps } = useAriaPress({\n onPress: (e) => e.continuePropagation(),\n onPressStart: (e) => e.continuePropagation(),\n onPressEnd: (e) => e.continuePropagation(),\n onPressUp: (e) => e.continuePropagation(),\n });\n return [isPressed, pressProps];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","import { StateSpecNode } from \"./graph\";\n\nexport type InitFuncEnv = {\n $props: Record<string, any>;\n $state: Record<string, any>;\n $queries?: Record<string, any>;\n $ctx?: Record<string, any>;\n $refs?: Record<string, any>;\n};\n\nexport type DollarStateEnv = Omit<InitFuncEnv, \"$state\">;\n\nexport type NoUndefinedField<T> = { [P in keyof T]-?: T[P] };\n\nexport type InitFunc<T> = (env: NoUndefinedField<InitFuncEnv>) => T;\n\nexport type DeprecatedInitFunc<T> = (\n $props: Record<string, any>,\n $state: $State,\n $ctx: Record<string, any>\n) => T;\n\nexport type ObjectPath = (string | number)[];\n\nexport interface $StateSpec<T> {\n // path of the state, like `count` or `list.selectedIndex`\n path: string;\n // if initial value is defined by a js expression\n initFunc?: InitFunc<T>;\n // if initial value is a hard-coded value\n initVal?: T;\n // Whether this state is private, readonly, or writable in\n // this component\n type: \"private\" | \"readonly\" | \"writable\";\n\n // If writable, there should be a valueProp that maps props[valueProp]\n // to the value of the state\n valueProp?: string;\n\n // If writable or readonly, there should be an onChangeProp where\n // props[onChangeProp] is invoked whenever the value changes\n onChangeProp?: string;\n\n isImmutable?: boolean;\n\n variableType:\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"array\"\n | \"object\"\n | \"variant\"\n | \"dateString\"\n | \"dateRangeStrings\";\n\n // Hash used to re-create the state\n // This is only used in canvas where the state specs are dynamic\n initFuncHash?: string;\n\n refName?: string;\n onMutate?: (stateValue: T, $ref: any) => void;\n}\n\nexport interface $State {\n [key: string]: any;\n registerInitFunc?: (\n path: string,\n f: InitFunc<any>,\n repetitonIndex?: number[],\n overrideEnv?: DollarStateEnv\n ) => any;\n}\n\nexport const ARRAY_SYMBOL = Symbol(\"[]\");\nexport const PLASMIC_STATE_PROXY_SYMBOL = Symbol(\"plasmic.state.proxy\");\nexport const UNINITIALIZED = Symbol(\"plasmic.unitialized\");\n\nexport interface Internal$StateSpec<T> extends $StateSpec<T> {\n isRepeated: boolean;\n pathObj: (string | symbol)[];\n}\n\nexport interface Internal$StateInstance {\n path: ObjectPath; // [\"counter\", 0, \"count\"]\n specKey: string;\n}\n\nexport interface StateCell<T> {\n initialValue?: T | symbol;\n node: StateSpecNode<any>;\n path: ObjectPath;\n initFunc?: InitFunc<T>;\n listeners: (() => void)[];\n initFuncHash: string;\n overrideEnv?: NoUndefinedField<DollarStateEnv>;\n}\n\nexport interface Internal$State {\n registrationsQueue: {\n node: StateSpecNode<any>;\n path: ObjectPath;\n f: InitFunc<any>;\n overrideEnv?: NoUndefinedField<DollarStateEnv>;\n }[];\n stateValues: Record<string, any>;\n env: NoUndefinedField<DollarStateEnv>;\n rootSpecTree: StateSpecNode<any>;\n specTreeLeaves: StateSpecNode<any>[];\n specs: $StateSpec<any>[];\n stateInitializationEnv: {\n stack: string[];\n visited: Set<string>;\n };\n initializedLeafPaths: Set<string>;\n}\n","export class CustomError extends Error {\n name: string;\n constructor(msg?: string) {\n super(msg);\n this.name = this.constructor.name;\n ({ message: this.message, stack: this.stack } = this);\n }\n}\n\nexport class CyclicStatesReferencesError extends Error {\n constructor(stateAccessCycle: string[]) {\n super(\n \"Cyclic reference found in state initialization: \" +\n stateAccessCycle.join(\" -> \")\n );\n }\n}\n\nexport class InvalidOperation extends Error {\n constructor(msg: string) {\n super(msg);\n }\n}\n\nexport class UnknownError extends Error {\n constructor(msg: string) {\n super(msg);\n }\n}\n","import { isNum, shallowEqual } from \"./helpers\";\nimport {\n $StateSpec,\n ARRAY_SYMBOL,\n Internal$StateSpec,\n ObjectPath,\n} from \"./types\";\n\nexport class StateSpecNode<T> {\n private _specs: Internal$StateSpec<T>[];\n private _edges: Map<string | symbol, StateSpecNode<any>>;\n\n constructor(specs: Internal$StateSpec<T>[]) {\n this._specs = specs;\n this._edges = new Map();\n }\n\n setSpecs(specs: Internal$StateSpec<T>[]) {\n this._specs = specs;\n }\n\n edges() {\n return this._edges;\n }\n\n hasEdge(key: string | symbol) {\n return this._edges.has(key);\n }\n\n addEdge(key: string | symbol, node: StateSpecNode<any>) {\n this._edges.set(key, node);\n }\n\n clearEdges() {\n this._edges = new Map();\n }\n\n children() {\n return this._edges.values();\n }\n\n makeTransition(key: string | symbol | number) {\n key = isNum(key) ? ARRAY_SYMBOL : key;\n return this._edges.get(key);\n }\n\n isLeaf() {\n return this._edges.size === 0 && this.getAllSpecs().length > 0;\n }\n\n hasArrayTransition() {\n return this._edges.has(ARRAY_SYMBOL);\n }\n\n getSpec() {\n return this._specs[0];\n }\n\n getAllSpecs() {\n return this._specs;\n }\n}\n\nexport const transformPathStringToObj = (str: string) => {\n const splitStatePathPart = (state: string): (string | symbol)[] =>\n state.endsWith(\"[]\")\n ? [...splitStatePathPart(state.slice(0, -2)), ARRAY_SYMBOL]\n : [state];\n return str.split(\".\").flatMap(splitStatePathPart);\n};\n\nexport function buildTree(specs: $StateSpec<any>[]) {\n const internalSpec = specs.map(\n (spec) =>\n ({\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n } as Internal$StateSpec<any>)\n );\n\n const rec = (currentPath: (string | symbol)[]): StateSpecNode<any> => {\n const node = new StateSpecNode(\n internalSpec.filter((spec) =>\n shallowEqual(currentPath, spec.pathObj.slice(0, currentPath.length))\n )!\n );\n node.getAllSpecs().forEach((spec) => {\n if (spec.pathObj.length > currentPath.length) {\n const nextKey = spec.pathObj[currentPath.length];\n if (!node.hasEdge(nextKey)) {\n node.addEdge(nextKey, rec([...currentPath, nextKey]));\n }\n }\n });\n return node;\n };\n\n return rec([]);\n}\n\nexport function updateTree(root: StateSpecNode<any>, specs: $StateSpec<any>[]) {\n const internalSpec = specs.map(\n (spec) =>\n ({\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n } as Internal$StateSpec<any>)\n );\n\n const rec = (\n oldNode: StateSpecNode<any> | undefined,\n currentPath: (string | symbol)[]\n ): StateSpecNode<any> => {\n const nodeSpecs = internalSpec.filter((spec) =>\n shallowEqual(currentPath, spec.pathObj.slice(0, currentPath.length))\n )!;\n const node = oldNode ?? new StateSpecNode(nodeSpecs);\n node.setSpecs(nodeSpecs);\n const oldEdges = oldNode?.edges();\n node.clearEdges();\n node.getAllSpecs().forEach((spec) => {\n if (spec.pathObj.length > currentPath.length) {\n const nextKey = spec.pathObj[currentPath.length];\n if (!node.hasEdge(nextKey)) {\n node.addEdge(\n nextKey,\n rec(oldEdges?.get(nextKey), [...currentPath, nextKey])\n );\n }\n }\n });\n return node;\n };\n\n return rec(root, []);\n}\n\nexport function getSpecTreeLeaves(root: StateSpecNode<any>) {\n const leaves: StateSpecNode<any>[] = [];\n const rec = (node: StateSpecNode<any>) => {\n for (const child of node.children()) {\n rec(child);\n }\n if (node.isLeaf() && node.getAllSpecs().length > 0) {\n leaves.push(node);\n }\n };\n rec(root);\n return leaves;\n}\n\nexport function findStateCell(\n root: StateSpecNode<any>,\n pathStr: string,\n repetitionIndex?: number[]\n) {\n const realPath: ObjectPath = [];\n const pathObj = transformPathStringToObj(pathStr);\n let currRepIndex = 0;\n for (const part of pathObj) {\n if (typeof part === \"symbol\") {\n if (\n !root.hasArrayTransition() ||\n !repetitionIndex ||\n currRepIndex > repetitionIndex.length\n ) {\n throw new Error(\n `transition not found: pathStr ${pathStr} part ${\n typeof part === \"symbol\" ? \"[]\" : part\n }`\n );\n }\n realPath.push(repetitionIndex[currRepIndex++]);\n root = root.makeTransition(ARRAY_SYMBOL)!;\n } else {\n if (!root.hasEdge(part)) {\n throw new Error(\n `transition not found: pathStr ${pathStr} part ${\n typeof part === \"symbol\" ? \"[]\" : part\n }`\n );\n }\n realPath.push(part);\n root = root.makeTransition(part)!;\n }\n }\n return {\n node: root,\n realPath,\n };\n}\n","import clone from \"clone\";\nimport get from \"dlv\";\nimport React from \"react\";\nimport {\n proxy as createValtioProxy,\n ref as createValtioRef,\n getVersion as isValtioProxy,\n subscribe,\n useSnapshot,\n} from \"valtio\";\nimport { ensure } from \"../common\";\nimport {\n CyclicStatesReferencesError,\n InvalidOperation,\n UnknownError,\n} from \"./errors\";\nimport {\n StateSpecNode,\n buildTree,\n findStateCell,\n getSpecTreeLeaves,\n updateTree,\n} from \"./graph\";\nimport {\n arrayEq,\n deepEqual,\n getStateCells,\n set,\n useIsomorphicLayoutEffect,\n} from \"./helpers\";\nimport {\n $State,\n $StateSpec,\n DeprecatedInitFunc,\n DollarStateEnv,\n InitFunc,\n InitFuncEnv,\n Internal$State,\n NoUndefinedField,\n ObjectPath,\n PLASMIC_STATE_PROXY_SYMBOL,\n StateCell,\n UNINITIALIZED,\n} from \"./types\";\nimport defer = setTimeout;\n\nfunction isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\nfunction canProxy(value: any) {\n return typeof value === \"object\" && value != null;\n}\n\nexport const proxyObjToStateCell = new WeakMap<\n object,\n Record<string | number | symbol, StateCell<any>>\n>();\nexport const valtioSubscriptions = new WeakMap<\n object,\n ReturnType<typeof subscribe>[]\n>();\n\nfunction ensureStateCell(\n target: any,\n property: string | number | symbol,\n path: ObjectPath,\n node: StateSpecNode<any>\n) {\n if (!proxyObjToStateCell.has(target)) {\n proxyObjToStateCell.set(target, {});\n }\n const stateCell = proxyObjToStateCell.get(target)!;\n if (!(property in stateCell)) {\n stateCell[property as any] = {\n listeners: [],\n initialValue: UNINITIALIZED,\n path,\n node,\n initFunc: node.getSpec().initFunc,\n initFuncHash: node.getSpec().initFuncHash ?? \"\",\n };\n }\n return stateCell[property as any];\n}\n\nfunction getStateCell(target: any, property: string | number | symbol) {\n return proxyObjToStateCell.get(target)?.[property as any];\n}\n\nexport function tryGetStateCellFrom$StateRoot(\n $state: $State,\n path: ObjectPath\n) {\n if (path.length === 0) {\n throw new UnknownError(\"expected a path with length greater than 0\");\n }\n const target = get($state, path.slice(0, -1));\n get(target, path.slice(-1)); // create state cell;\n return getStateCell(target, path.slice(-1)[0]);\n}\n\nexport function getStateCellFrom$StateRoot($state: $State, path: ObjectPath) {\n return ensure(tryGetStateCellFrom$StateRoot($state, path));\n}\n\nexport function unsubscribeToValtio(\n $$state: Internal$State,\n statePath: ObjectPath\n) {\n const oldValue = get($$state.stateValues, statePath);\n if (isValtioProxy(oldValue)) {\n valtioSubscriptions.get(oldValue)?.forEach((f) => f());\n valtioSubscriptions.delete(oldValue);\n }\n}\n\nexport function subscribeToValtio(\n $$state: Internal$State,\n statePath: ObjectPath,\n node: StateSpecNode<any>\n) {\n const spec = node.getSpec();\n const maybeValtioProxy = spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : get($$state.stateValues, statePath);\n if (\n isValtioProxy(maybeValtioProxy) &&\n (spec.onChangeProp || (spec.onMutate && node.isLeaf()))\n ) {\n const unsub = subscribe(maybeValtioProxy, () => {\n if (spec.onMutate && node.isLeaf()) {\n spec.onMutate(\n maybeValtioProxy,\n spec.refName ? $$state.env.$refs[spec.refName] : undefined\n );\n }\n $$state.env.$props[spec.onChangeProp!]?.(\n spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : get($$state.stateValues, statePath)\n );\n });\n if (!valtioSubscriptions.has(maybeValtioProxy)) {\n valtioSubscriptions.set(maybeValtioProxy, []);\n }\n ensure(valtioSubscriptions.get(maybeValtioProxy)).push(unsub);\n }\n}\n\nfunction initializeStateValue(\n $$state: Internal$State,\n initialStateCell: StateCell<any>,\n proxyRoot: any\n) {\n const initialStateName = initialStateCell.node.getSpec().path;\n const stateAccess: Set<{\n stateCell: StateCell<any>;\n }> = new Set();\n $$state.stateInitializationEnv.visited.add(initialStateName);\n $$state.stateInitializationEnv.stack.push(initialStateName);\n const $state = create$StateProxy($$state, (internalStateCell) => ({\n get() {\n const spec = internalStateCell.node.getSpec();\n if ($$state.stateInitializationEnv.visited.has(spec.path)) {\n // cyclic reference found\n const stateAccessCycle: string[] = [spec.path];\n while ($$state.stateInitializationEnv.stack.length > 0) {\n const curr = $$state.stateInitializationEnv.stack.pop();\n if (!curr) {\n break;\n }\n stateAccessCycle.push(curr);\n if (curr === spec.path) {\n throw new CyclicStatesReferencesError(stateAccessCycle);\n }\n }\n throw new UnknownError(\"Internal error: cycle not found\");\n }\n\n const stateCell = getStateCellFrom$StateRoot(\n proxyRoot,\n internalStateCell.path\n );\n stateAccess.add({ stateCell });\n if (spec.valueProp) {\n return $$state.env.$props[spec.valueProp];\n } else if (spec.initFunc && stateCell.initialValue === UNINITIALIZED) {\n return initializeStateValue($$state, stateCell, proxyRoot);\n }\n return get(proxyRoot, stateCell.path);\n },\n set() {\n throw new InvalidOperation(\n `Cannot update state values during initialization`\n );\n },\n }));\n\n stateAccess.forEach(({ stateCell }) => {\n stateCell.listeners.push(() => {\n const newValue = invokeInitFuncBackwardsCompatible(\n initialStateCell.node.getSpec().initFunc!,\n {\n $state,\n ...(initialStateCell.overrideEnv ?? $$state.env),\n }\n );\n set(proxyRoot, initialStateCell.path, newValue);\n });\n });\n\n const initialValue = invokeInitFuncBackwardsCompatible(\n initialStateCell.initFunc!,\n {\n $state,\n ...(initialStateCell.overrideEnv ?? $$state.env),\n }\n );\n const initialSpec = initialStateCell.node.getSpec();\n\n // Try to clone initialValue. It can fail if it's a PlasmicUndefinedDataProxy\n // and we still want to clear some states and return the initialValue.\n try {\n const clonedValue = clone(initialValue);\n initialStateCell.initialValue = clonedValue;\n\n const value = initialSpec.isImmutable\n ? mkUntrackedValue(initialValue)\n : clonedValue;\n set(proxyRoot, initialStateCell.path, value);\n } catch {\n // Setting the state to undefined to make sure it gets re-initialized\n // in case it changes values.\n initialStateCell.initialValue = undefined;\n set(proxyRoot, initialStateCell.path, undefined);\n }\n\n $$state.stateInitializationEnv.visited.delete(initialStateName);\n $$state.stateInitializationEnv.stack.pop();\n\n return initialValue;\n}\n\nfunction create$StateProxy(\n $$state: Internal$State,\n leafHandlers: (stateCell: StateCell<any>) => ProxyHandler<any>\n) {\n let proxyRoot: any;\n const rec = (currPath: ObjectPath, currNode: StateSpecNode<any>) => {\n const getNextPath = (property: string | number | symbol) => [\n ...currPath,\n isNum(property) ? +property : (property as string),\n ];\n const spec = currNode.getSpec();\n const handlers: ProxyHandler<any> = {\n deleteProperty(target, property) {\n if (\n !currNode.isLeaf() &&\n !currNode.hasArrayTransition() &&\n !isNum(property)\n ) {\n throw new InvalidOperation(\n \"Can't delete a property in the middle of the state spec\"\n );\n }\n delete get($$state.stateValues, currPath)[property];\n if (spec.onChangeProp) {\n //we are always in a leaf, since we only have two cases:\n // 1 - delete properties outside the state tree\n // 2 - delete indices in repeated implicit states, but these can't be exposed, so they don't have onChangeProp\n $$state.env.$props[spec.onChangeProp]?.(\n get(proxyRoot, currPath.slice(spec.pathObj.length))\n );\n }\n return Reflect.deleteProperty(target, property);\n },\n get(target, property, receiver) {\n if (property === PLASMIC_STATE_PROXY_SYMBOL) {\n return {\n node: currNode,\n path: currPath,\n };\n }\n const nextPath = getNextPath(property);\n\n const nextNode = currNode.makeTransition(property);\n if (nextNode?.isLeaf()) {\n return leafHandlers(\n ensureStateCell(receiver, property, nextPath, nextNode)\n ).get?.(target, property, receiver);\n } else if (nextNode && !(property in target)) {\n target[property] = rec(nextPath, nextNode);\n }\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n const nextPath = getNextPath(property);\n const nextNode = currNode.makeTransition(property);\n const nextSpec = nextNode?.getSpec();\n\n if (\n (property === \"registerInitFunc\" ||\n property === \"eagerInitializeStates\") &&\n currPath.length === 0\n ) {\n return Reflect.set(target, property, value, receiver);\n }\n if (!nextNode && currNode.hasArrayTransition()) {\n set($$state.stateValues, nextPath, value);\n //array can set his own properties such as length, map, ...\n return Reflect.set(target, property, value, receiver);\n }\n if (nextNode?.isLeaf()) {\n leafHandlers(\n ensureStateCell(receiver, property, nextPath, nextNode)\n ).set?.(target, property, value, receiver);\n Reflect.set(target, property, value, receiver);\n if (nextSpec?.onChangeProp) {\n const pathKey = JSON.stringify(nextPath);\n const isInitOnChange =\n // If we are dealing with a valueProp it means that this state cell value is provided by the parent\n // and we don't need to consider initialization calls for it.\n !nextSpec.valueProp && !$$state.initializedLeafPaths.has(pathKey);\n\n // We need to call the onChangeProp during initialization process so that the parent\n // state can be updated with the correct value. We will provide an additional parameter\n // to the onChangeProp function to indicate that the call is made during initialization.\n $$state.env.$props[nextSpec.onChangeProp]?.(value, {\n _plasmic_state_init_: isInitOnChange,\n });\n\n if (isInitOnChange) {\n $$state.initializedLeafPaths.add(pathKey);\n }\n }\n }\n if (!nextNode) {\n // can't set an unknown field in $state\n return false;\n }\n if (canProxy(value) && !nextNode.isLeaf()) {\n target[property] = rec(nextPath, nextNode);\n Reflect.ownKeys(value).forEach((key) => {\n target[property][key] = value[key];\n });\n } else if (!nextNode.isLeaf()) {\n throw new InvalidOperation(\n \"inserting a primitive value into a non-leaf\"\n );\n }\n const newValue =\n nextNode.isLeaf() && nextSpec?.isImmutable\n ? mkUntrackedValue(value)\n : value;\n\n unsubscribeToValtio($$state, nextPath);\n set($$state.stateValues, nextPath, newValue);\n subscribeToValtio($$state, nextPath, nextNode);\n return true;\n },\n };\n const baseObject = currNode.hasArrayTransition() ? [] : {};\n const proxyObj = new Proxy(baseObject, handlers);\n if (currPath.length === 0) {\n proxyRoot = proxyObj;\n }\n return proxyObj;\n };\n\n return rec([], $$state.rootSpecTree);\n}\n\nconst mkUntrackedValue = (o: any) =>\n o != null && typeof o === \"object\" ? createValtioRef(o) : o;\n\nconst envFieldsAreNonNill = (\n env: DollarStateEnv\n): NoUndefinedField<DollarStateEnv> => ({\n $props: env.$props,\n $ctx: env.$ctx ?? {},\n $queries: env.$queries ?? {},\n $refs: env.$refs ?? {},\n});\n\n/**\n * We need to support two versions with different parameters to be backward compatible\n * {\n * specs: $StateSpec<any>[],\n * props: Record<string, any>,\n * $ctx?: Record<string, any>,\n * opts?: { inCanvas: boolean; }\n * }\n * {\n * specs: $StateSpec<any>[],\n * env: { $props; $queries; $ctx },\n * opts?: { inCanvas: boolean }\n * }\n */\nfunction extractDollarStateParametersBackwardCompatible(...rest: any[]): {\n env: DollarStateEnv;\n opts?: { inCanvas: boolean };\n} {\n if (\"$props\" in rest[0]) {\n // latest version\n return {\n env: rest[0],\n opts: rest[1],\n };\n } else {\n return {\n env: {\n $props: rest[0],\n $ctx: rest[1],\n $queries: {},\n },\n opts: rest[2],\n };\n }\n}\n\nfunction invokeInitFuncBackwardsCompatible<T>(\n initFunc: InitFunc<T> | DeprecatedInitFunc<T>,\n env: NoUndefinedField<InitFuncEnv>\n) {\n if (initFunc.length > 1) {\n return (initFunc as DeprecatedInitFunc<T>)(\n env.$props,\n env.$state,\n env.$ctx\n );\n } else {\n return (initFunc as InitFunc<T>)(env);\n }\n}\n\nexport function useDollarState(\n specs: $StateSpec<any>[],\n ...rest: any[]\n): $State {\n const { env, opts } = extractDollarStateParametersBackwardCompatible(...rest);\n const [, setState] = React.useState<[]>();\n\n const mountedRef = React.useRef<boolean>(false);\n const isMounted = React.useCallback(() => mountedRef.current, []);\n\n React.useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const pendingUpdate = React.useRef(false);\n\n const forceUpdate = React.useCallback(\n () =>\n defer(() => {\n if (isMounted()) {\n setState([]);\n pendingUpdate.current = false;\n }\n }),\n []\n );\n\n const $$state = React.useRef<Internal$State>(\n (() => {\n const rootSpecTree = buildTree(specs);\n return {\n rootSpecTree: rootSpecTree,\n specTreeLeaves: getSpecTreeLeaves(rootSpecTree),\n stateValues: createValtioProxy({}),\n env: envFieldsAreNonNill(env),\n specs: [],\n registrationsQueue: [],\n stateInitializationEnv: { stack: [], visited: new Set<string>() },\n initializedLeafPaths: new Set(),\n };\n })()\n ).current;\n $$state.env = envFieldsAreNonNill(env);\n $$state.specs = specs;\n\n const create$State = React.useCallback(() => {\n const $state = Object.assign(\n create$StateProxy($$state, (stateCell) => {\n const spec = stateCell.node.getSpec();\n if (stateCell.initialValue === UNINITIALIZED && spec.initFunc) {\n initializeStateValue($$state, stateCell, $state);\n } else if (\n stateCell.initialValue === UNINITIALIZED &&\n !spec.valueProp\n ) {\n stateCell.initialValue = spec.initVal;\n set($state, stateCell.path, spec.initVal);\n }\n return {\n get() {\n const currSpec = stateCell.node.getSpec();\n if (currSpec.valueProp) {\n const valueProp = $$state.env.$props[currSpec.valueProp];\n subscribeToValtio($$state, stateCell.path, stateCell.node);\n return valueProp;\n } else {\n return get($$state.stateValues, stateCell.path);\n }\n },\n };\n }),\n {\n registerInitFunc: function <T>(\n pathStr: string,\n f: InitFunc<T>,\n repetitionIndex?: number[],\n overrideEnv?: DollarStateEnv\n ) {\n const { node, realPath } = findStateCell(\n $$state.rootSpecTree,\n pathStr,\n repetitionIndex\n );\n const stateCell = getStateCellFrom$StateRoot($state, realPath);\n const innerEnv = overrideEnv\n ? envFieldsAreNonNill(overrideEnv)\n : $$state.env;\n if (!deepEqual(stateCell.initialValue, f({ $state, ...innerEnv }))) {\n $$state.registrationsQueue.push({\n node,\n path: realPath,\n f,\n overrideEnv: overrideEnv\n ? envFieldsAreNonNill(overrideEnv)\n : undefined,\n });\n if (!pendingUpdate.current) {\n pendingUpdate.current = true;\n forceUpdate();\n }\n }\n },\n ...(opts?.inCanvas\n ? {\n eagerInitializeStates: (stateSpecs: $StateSpec<any>[]) => {\n // we need to eager initialize all states in canvas to populate the data picker\n $$state.specTreeLeaves.forEach((node) => {\n const spec = node.getSpec();\n if (spec.isRepeated) {\n return;\n }\n const stateCell = getStateCellFrom$StateRoot(\n $state,\n spec.pathObj as string[]\n );\n const newSpec = stateSpecs.find(\n (sp) => sp.path === spec.path\n );\n if (\n !newSpec ||\n (stateCell.initFuncHash === (newSpec?.initFuncHash ?? \"\") &&\n stateCell.initialValue !== UNINITIALIZED)\n ) {\n return;\n }\n stateCell.initFunc = newSpec.initFunc;\n stateCell.initFuncHash = newSpec.initFuncHash ?? \"\";\n const init = spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : spec.initFunc\n ? initializeStateValue($$state, stateCell, $state)\n : spec.initVal;\n set($state, spec.pathObj, init);\n });\n },\n }\n : {}),\n }\n );\n return $state;\n }, [opts?.inCanvas]);\n const ref = React.useRef<undefined | $State>(undefined);\n if (!ref.current) {\n ref.current = create$State();\n }\n let $state = ref.current as $State;\n if (opts?.inCanvas) {\n $$state.rootSpecTree = updateTree($$state.rootSpecTree, specs);\n const newLeaves = getSpecTreeLeaves($$state.rootSpecTree);\n if (!arrayEq(newLeaves, $$state.specTreeLeaves)) {\n const old$state = $state;\n $state = ref.current = create$State();\n $$state.specTreeLeaves = newLeaves;\n getStateCells(old$state, $$state.rootSpecTree).forEach(({ path }) => {\n const oldStateCell = tryGetStateCellFrom$StateRoot(old$state, path);\n if (oldStateCell) {\n set($state, path, get(old$state, path));\n const newStateCell = getStateCellFrom$StateRoot($state, path);\n newStateCell.initialValue = oldStateCell.initialValue;\n }\n });\n }\n }\n\n const reInitializeState = (stateCell: StateCell<any>) => {\n const newInit = initializeStateValue($$state, stateCell, $state);\n const spec = stateCell.node.getSpec();\n if (spec.onChangeProp) {\n $$state.env.$props[spec.onChangeProp]?.(newInit);\n }\n };\n useIsomorphicLayoutEffect(() => {\n // For each spec with an initFunc, evaluate it and see if\n // the init value has changed. If so, reset its state.\n const resetSpecs: {\n stateCell: StateCell<any>;\n }[] = [];\n getStateCells($state, $$state.rootSpecTree).forEach((stateCell) => {\n if (stateCell.initFunc) {\n try {\n const newInit = invokeInitFuncBackwardsCompatible(\n stateCell.initFunc,\n {\n $state,\n ...(stateCell.overrideEnv ?? envFieldsAreNonNill(env)),\n }\n );\n if (!deepEqual(newInit, stateCell.initialValue)) {\n resetSpecs.push({ stateCell });\n }\n } catch {\n // Exception may be thrown from initFunc -- for example, if it tries to access $queries\n // that are still loading. We swallow those here, since we're only interested in\n // checking if the init value has changed, not in handling these errors.\n }\n }\n });\n resetSpecs.forEach(({ stateCell }) => {\n reInitializeState(stateCell);\n });\n }, [env.$props, $state, $$state, reInitializeState]);\n useIsomorphicLayoutEffect(() => {\n while ($$state.registrationsQueue.length) {\n const { path, f, overrideEnv } = $$state.registrationsQueue.shift()!;\n const stateCell = getStateCellFrom$StateRoot($state, path);\n stateCell.initFunc = f;\n stateCell.overrideEnv = overrideEnv;\n reInitializeState(stateCell);\n }\n });\n // immediately initialize exposed non-private states\n useIsomorphicLayoutEffect(() => {\n $$state.specTreeLeaves.forEach((node) => {\n const spec = node.getSpec();\n if (!spec.isRepeated && spec.type !== \"private\") {\n // We only need to attempt to access the state cell to trigger initialization,\n // Check create$StateProxy for more details on how this works.\n getStateCellFrom$StateRoot($state, spec.pathObj as ObjectPath);\n }\n });\n }, []);\n\n // Re-render if any value changed in one of these objects\n useSnapshot($$state.stateValues, { sync: true });\n return $state;\n}\n\nexport default useDollarState;\n","import type { ComponentHelpers } from \"@plasmicapp/host\";\nimport get from \"dlv\";\nimport { useEffect, useLayoutEffect } from \"react\";\nimport { getVersion as isValtioProxy } from \"valtio\";\nimport { ensure } from \"../common\";\nimport { StateSpecNode } from \"./graph\";\nimport {\n $State,\n ARRAY_SYMBOL,\n InitFunc,\n ObjectPath,\n PLASMIC_STATE_PROXY_SYMBOL,\n StateCell,\n} from \"./types\";\nimport { proxyObjToStateCell, tryGetStateCellFrom$StateRoot } from \"./valtio\";\n\nexport function initializeCodeComponentStates(\n $state: $State,\n states: {\n name: string;\n plasmicStateName: string;\n }[],\n repetitionIndex: number[],\n componentHelpers: ComponentHelpers<any>,\n child$Props: Record<string, any>\n) {\n const stateHelpers = componentHelpers?.states ?? {};\n for (const { name, plasmicStateName } of states) {\n if (name in stateHelpers && \"initFunc\" in stateHelpers[name]) {\n $state.registerInitFunc?.(\n plasmicStateName,\n ({ $props }) => stateHelpers[name].initFunc?.($props),\n repetitionIndex ?? [],\n { $props: child$Props }\n );\n }\n }\n}\n\nexport function generateOnMutateForSpec(\n stateName: string,\n componentHelpers: ComponentHelpers<any>\n) {\n return componentHelpers?.states?.[stateName]?.onMutate;\n}\n\nexport function initializePlasmicStates(\n $state: $State,\n states: {\n name: string;\n initFunc: InitFunc<any>;\n }[],\n repetitionIndex: number[]\n) {\n for (const { name, initFunc } of states) {\n $state.registerInitFunc?.(name, initFunc, repetitionIndex ?? []);\n }\n}\n\nexport function generateStateOnChangeProp(\n $state: $State,\n path: ObjectPath\n): (val: any) => void {\n return (val) => set($state, path, val);\n}\n\nexport function generateStateOnChangePropForCodeComponents(\n $state: $State,\n stateName: string,\n plasmicStatePath: ObjectPath,\n componentHelpers: ComponentHelpers<any>\n): (val: any) => void {\n const onChangeArgsToValue =\n componentHelpers?.states?.[stateName]?.onChangeArgsToValue;\n if (!onChangeArgsToValue || typeof onChangeArgsToValue !== \"function\") {\n return generateStateOnChangeProp($state, plasmicStatePath);\n }\n return (...args) =>\n generateStateOnChangeProp(\n $state,\n plasmicStatePath\n )(onChangeArgsToValue.apply(null, args));\n}\n\nexport function generateStateValueProp($state: $State, path: ObjectPath) {\n return get($state, path);\n}\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport function isPlasmicStateProxy(obj: any) {\n return (\n obj != null && typeof obj === \"object\" && !!obj[PLASMIC_STATE_PROXY_SYMBOL]\n );\n}\n\nexport function is$StateProxy(obj: any) {\n return (\n obj != null &&\n typeof obj === \"object\" &&\n (!!obj[PLASMIC_STATE_PROXY_SYMBOL] || isValtioProxy(obj))\n );\n}\n\nexport function getStateCells(\n $state: $State,\n root: StateSpecNode<any>\n): StateCell<any>[] {\n if ($state == null || typeof $state !== \"object\") {\n return [];\n }\n\n if (root.hasArrayTransition()) {\n return Object.keys($state).flatMap((key) =>\n getStateCells($state[key], ensure(root.makeTransition(ARRAY_SYMBOL)))\n );\n } else {\n const stateCell = proxyObjToStateCell.get($state) ?? {};\n const stateCells: StateCell<any>[] = [];\n for (const [key, child] of root.edges().entries()) {\n if (typeof key === \"string\" && key in $state) {\n stateCells.push(...getStateCells($state[key], child));\n if (key in stateCell) {\n stateCells.push(stateCell[key]);\n }\n }\n }\n return stateCells;\n }\n}\n\nexport function getStateCellsInPlasmicProxy(\n obj: any\n): { realPath: ObjectPath; path: string }[] {\n if (!isPlasmicStateProxy(obj)) {\n return [];\n }\n const {\n node: rootNode,\n path: rootPath,\n isOutside,\n } = obj[PLASMIC_STATE_PROXY_SYMBOL];\n if (isOutside) {\n return [];\n }\n return getStateCells(obj, rootNode).map((stateCell) => ({\n path: stateCell.node.getSpec().path,\n realPath: stateCell.path.slice(rootPath.length),\n }));\n}\n\nexport function getStateSpecInPlasmicProxy(obj: any, path: ObjectPath) {\n obj = get(obj, path.slice(0, path.length - 1));\n if (!isPlasmicStateProxy(obj)) {\n return undefined;\n }\n const { node } = obj[PLASMIC_STATE_PROXY_SYMBOL] as {\n node: StateSpecNode<any>;\n };\n const nextNode = node.makeTransition(path[path.length - 1]);\n if (node.isLeaf() || !nextNode) {\n return undefined;\n }\n return {\n spec: nextNode.getSpec(),\n isImplicitStateArray: nextNode.hasArrayTransition(),\n };\n}\n\nexport function getCurrentInitialValue(obj: any, path: ObjectPath) {\n if (!isPlasmicStateProxy(obj)) {\n return undefined;\n }\n return tryGetStateCellFrom$StateRoot(obj, path)?.initialValue;\n}\n\nexport function resetToInitialValue(obj: any, path: ObjectPath) {\n const stateCell = tryGetStateCellFrom$StateRoot(obj, path);\n if (stateCell) {\n set(obj, path, stateCell.initialValue);\n }\n}\n\nexport function shallowEqual<T>(a1: T[], a2: T[]) {\n if (a1.length !== a2.length) {\n return false;\n }\n for (let i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Shallow comparison of arrays.\n */\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return (\n xs.length === ys.length && xs.every((_, index) => xs[index] === ys[index])\n );\n}\n\nexport function isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\ntype StringGen = string | (() => string);\nexport function assert<T>(\n cond: T,\n msg: StringGen = \"Assertion failed\"\n): asserts cond {\n if (!cond) {\n // We always generate an non empty message so that it doesn't get swallowed\n // by the async library.\n msg = (typeof msg === \"string\" ? msg : msg()) || \"Assertion failed\";\n debugger;\n throw new Error(msg);\n }\n}\n\n/**\n * Forked from https://github.com/lukeed/dset\n * Changes: fixed setting a deep value to a proxy object\n */\nexport function set(obj: any, keys: any, val: any) {\n keys = keys.split ? keys.split(\".\") : keys;\n var i = 0,\n l = keys.length,\n t = obj,\n x,\n k;\n while (i < l) {\n k = \"\" + keys[i++];\n if (k === \"__proto__\" || k === \"constructor\" || k === \"prototype\") break;\n const newValue =\n i === l\n ? val\n : typeof (x = t[k]) === typeof keys\n ? x\n : keys[i] * 0 !== 0 || !!~(\"\" + keys[i]).indexOf(\".\")\n ? {}\n : [];\n assignValue(t, k, newValue);\n t = t[k];\n }\n}\n\n/**\n * Forked from lodash\n */\nfunction baseAssignValue(object: any, key: any, value: any) {\n if (key == \"__proto__\") {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n value: value,\n writable: true,\n });\n } else {\n object[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (value !== value && other !== other);\n}\n\nfunction assignValue(object: any, key: any, value: any) {\n const objValue = object[key];\n if (\n !(\n Object.prototype.hasOwnProperty.call(object, key) && eq(objValue, value)\n ) ||\n (value === undefined && !(key in object))\n ) {\n baseAssignValue(object, key, value);\n }\n}\n\nconst isInstanceOfMap = (a: any) =>\n a != null &&\n typeof a === \"object\" &&\n \"size\" in a &&\n typeof a.entries === \"function\" &&\n typeof a.get === \"function\" &&\n typeof a.set === \"function\" &&\n typeof a.has === \"function\";\n\nconst isInstanceOfSet = (a: any) =>\n a != null &&\n typeof a === \"object\" &&\n \"size\" in a &&\n typeof a.entries === \"function\" &&\n typeof a.add === \"function\" &&\n typeof a.has === \"function\" &&\n typeof a.delete === \"function\";\n\nconst isRegExp = (a: any) =>\n Object.prototype.toString.call(a) === \"[object RegExp]\";\n\n/**\n * Forked from https://github.com/epoberezkin/fast-deep-equal/blob/master/src/index.jst\n * Changes: removed the comparison between constructors and instanceof objects\n * because they are dependent on the window object\n */\nexport function deepEqual(a: any, b: any) {\n if (a === b) return true;\n\n if (a && b && typeof a == \"object\" && typeof b == \"object\") {\n // if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\n return true;\n }\n\n // if ((a instanceof Map) && (b instanceof Map)) {\n if (isInstanceOfMap(a) && isInstanceOfMap(b)) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n for (i of a.entries()) if (!deepEqual(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n // if ((a instanceof Set) && (b instanceof Set)) {\n if (isInstanceOfSet(a) && isInstanceOfSet(b)) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n return true;\n }\n\n // if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (isRegExp(a) && isRegExp(b))\n return a.source === b.source && a.flags === b.flags;\n // if (a.valueOf !== Object.prototype.valueOf)\n // return a.valueOf() === b.valueOf();\n // if (a.toString !== Object.prototype.toString)\n // return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n var key = keys[i];\n if (key === \"_owner\" && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n if (!deepEqual(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport { PlasmicTranslator } from \"@plasmicapp/host\";\nexport {\n PlasmicPageGuard,\n withPlasmicPageGuard,\n} from \"./auth/PlasmicPageGuard\";\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport { PlasmicHead, plasmicHeadMeta } from \"./render/PlasmicHead\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { Stack } from \"./render/Stack\";\nexport {\n Flex,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n createPlasmicElementProxy,\n deriveRenderOpts,\n hasVariant,\n makeFragment,\n mergeVariantsWithStates,\n wrapWithClassName,\n} from \"./render/elements\";\nexport {\n createUseGlobalVariants,\n ensureGlobalVariants,\n} from \"./render/global-variants\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport {\n PlasmicDataSourceContextProvider,\n PlasmicRootProvider,\n useCurrentUser,\n useIsSSR,\n} from \"./render/ssr\";\nexport {\n createStyleTokensProvider,\n createUseStyleTokens,\n} from \"./render/style-tokens\";\nexport {\n Trans,\n genTranslatableString,\n usePlasmicTranslator,\n} from \"./render/translation\";\nexport { useTrigger } from \"./render/triggers\";\nexport * from \"./states\";\n// Using any while classnames package is not updated to have the correct types exported\nexport const classNames: any = _classNames;\n","import * as React from \"react\";\nimport { groupBy, mapValues } from \"../common\";\nimport { SingleChoiceArg } from \"../render/elements\";\n\nexport let PLUME_STRICT_MODE = true;\n\nexport function setPlumeStrictMode(mode: boolean) {\n PLUME_STRICT_MODE = mode;\n}\n\ntype VariantArgChoices<T> = T extends (infer M)[]\n ? M\n : T extends SingleChoiceArg<infer M>\n ? M\n : never;\ntype VariantArgsChoices<V> = { [k in keyof V]-?: VariantArgChoices<V[k]> };\ntype DictValues<V extends Record<string, any>> = V[keyof V];\ntype DictTuples<V extends Record<string, any>> = DictValues<\n { [K in keyof V]: [K, V[K]] }\n>;\nexport type VariantDefTuple<V> = DictTuples<VariantArgsChoices<V>>;\n\ntype DistributeTuple<T> = T extends [infer T1, infer T2]\n ? { group: T1; variant: T2 }\n : never;\n\nexport type VariantDef<V> = DistributeTuple<VariantDefTuple<V>>;\n\nexport type PlasmicClass<\n V extends Record<string, any>,\n A extends Record<string, any>,\n O extends Record<string, any>\n> = {\n (props: { variants?: V; args?: A; overrides?: O }): React.ReactNode;\n internalVariantProps: (keyof V)[];\n internalArgProps: (keyof A)[];\n};\n\nexport type AnyPlasmicClass = PlasmicClass<any, any, any>;\n\nexport type PlasmicClassVariants<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<infer V, any, any> ? V : unknown;\nexport type PlasmicClassArgs<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, infer A, any> ? A : unknown;\nexport type PlasmicClassOverrides<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, any, infer O> ? O : unknown;\n\ntype BooleanLike = boolean | undefined | null;\n\nexport function mergeVariantToggles<V>(\n ...toggles: { def?: VariantDef<V>; active: BooleanLike }[]\n) {\n const definedToggles = toggles.filter((x) => !!x.def) as {\n def: VariantDef<V>;\n active: BooleanLike;\n }[];\n const grouped = groupBy(definedToggles, ({ def }) => def.group as string);\n return mapValues(grouped, (subToggles) => {\n return Object.fromEntries(\n subToggles.map(({ def, active }) => [def.variant, !!active])\n );\n });\n}\n\nexport function noOutline() {\n return { outline: \"none\" };\n}\n\nexport function getPlumeType(child: React.ReactChild): string | undefined {\n if (!React.isValidElement(child)) {\n return undefined;\n }\n const childType = child.type as any;\n return (childType.__plumeType || childType.getPlumeType?.(child.props)) as\n | string\n | undefined;\n}\n","import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\ninterface PlumeCommonProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n children?: React.ReactNode;\n isDisabled?: boolean;\n}\n\ninterface HtmlButtonProps\n extends Omit<React.ComponentProps<\"button\">, \"ref\" | \"disabled\"> {}\n\ninterface HtmlAnchorProps\n extends Omit<React.ComponentProps<\"a\">, \"ref\" | \"href\" | \"target\"> {}\n\ninterface PlumeActualButtonProps {\n submitsForm?: boolean;\n}\n\ninterface PlumeAnchorProps {\n link?: string;\n target?: React.ComponentProps<\"a\">[\"target\"] | boolean;\n}\n\nexport type PlumeButtonProps = PlumeCommonProps &\n PlumeActualButtonProps &\n PlumeAnchorProps;\n\nexport type BaseButtonProps = PlumeButtonProps &\n HtmlButtonProps &\n HtmlAnchorProps;\n\ntype AllButtonProps = PlumeCommonProps &\n PlumeActualButtonProps &\n HtmlButtonProps;\ntype AllAnchorProps = PlumeCommonProps & PlumeAnchorProps & HtmlAnchorProps;\n\nexport type HtmlAnchorOnlyProps = Exclude<\n keyof AllAnchorProps,\n keyof AllButtonProps\n>;\nexport type HtmlButtonOnlyProps = Exclude<\n keyof AllButtonProps,\n keyof AllAnchorProps\n>;\n\nexport type ButtonRef = React.Ref<HTMLButtonElement | HTMLAnchorElement>;\n\ninterface ButtonConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useButton<\n P extends PlumeButtonProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: ButtonConfig<C>, ref: ButtonRef = null) {\n const {\n link,\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n children,\n target,\n submitsForm = false,\n ...rest\n } = props;\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n [config.contentSlot]: children,\n };\n\n let buttonType = undefined;\n if (!link) {\n if (\n !plasmicClass.internalVariantProps.includes(\"type\") &&\n !plasmicClass.internalArgProps.includes(\"type\") &&\n \"type\" in rest\n ) {\n // There's no Plasmic-defined variant or arg called \"type\",\n // but the user passed in a \"type\" arg, so must be an override\n // or direct instantiation. We use that value\n buttonType = rest.type;\n } else {\n // Otherwise, we set buttonType depending in submitsForm\n buttonType = submitsForm ? \"submit\" : \"button\";\n }\n }\n\n const overrides: Overrides = {\n [config.root]: {\n as: link ? \"a\" : \"button\",\n props: {\n // Put this at the top, as user may also have set `type` as\n // inherited from \"button\", so let `rest` override it\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps,\n ...plasmicClass.internalVariantProps\n ),\n type: buttonType,\n ref: ref,\n disabled: isDisabled,\n target:\n target === true ? \"_blank\" : target === false ? undefined : target,\n ...(!!link && { href: link }),\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import * as React from \"react\";\nimport { pick, pickBy } from \"../common\";\nimport {\n AnyPlasmicClass,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n} from \"./plume-utils\";\n\nexport interface StyleProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function getStyleProps<P extends StyleProps>(props: P): StyleProps {\n return pick(props, \"className\", \"style\");\n}\n\nexport function getDefaultPlasmicProps<C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: Record<string, any>\n) {\n return {\n plasmicProps: {\n variants: pick(\n props,\n ...plasmicClass.internalVariantProps\n ) as PlasmicClassVariants<C>,\n args: pick(\n props,\n ...plasmicClass.internalArgProps\n ) as PlasmicClassArgs<C>,\n overrides: {} as PlasmicClassOverrides<C>,\n },\n };\n}\n\nconst RE_DATA_PROP = /^(data-.*)$/;\n\nexport function getDataProps(props: Record<string, any>) {\n return pickBy(props, (k) => RE_DATA_PROP.test(k));\n}\n","import { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n","/**\n * In general, we try not to expose react-aria's Collections API to Plume users.\n * The Collections API is how react-aria users pass data about collections of\n * things using the built-in Item and Section components, which are abstract,\n * metadata-only components that don't render anything but only serve to specify\n * data. For example, here's how you would use react-spectrum's Picker:\n *\n * <Picker>\n * <Section title=\"Asia\">\n * <Item key=\"taiwan\">Taiwan</Item>\n * <Item key=\"japan\">Japan</Item>\n * <Item key=\"china\">China</Item>\n * </Section>\n * <Section title=\"Europe\">\n * <Item key=\"germany\">Germany</Item>\n * <Item key=\"france\">France</Item>\n * </Section>\n * </Picker>\n *\n * You would re-use this same Item/Section components to pass similar things to\n * Menu, Tabs, etc.\n *\n * For Plasmic, this API is too abstract. The user has explicitly designed components\n * like Select.Option and Select.OptionGroup, and it is weird that they don't actually\n * use these components. It is more natural to do:\n *\n * <Select>\n * <Select.OptionGroup title=\"Asia\">\n * <Select.Option key=\"taiwan\">Taiwan</Select>\n * </Select.OptionGroup>\n * </Select>\n *\n * For Plume, we let users directly use the components they designed, both to collect\n * information and to perform actual rendering. For example, for Plume,\n * you'd use Select.Option instead of Item, and Select.OptionGroup instead of Section.\n * This means that the Select.Option props will collect the same information Item\n * does.\n *\n * A component like Select.Option then serves two purposes:\n *\n * 1. Allow users to specify the collection of data, like in the above example\n * Here, we're mainly interested in the props in those ReactElements so\n * we can pass the Item/Section data onto react-aria's APIs. We are not\n * actually rendering these elements.\n * 2. Once react-aria's Collections API has gone through them and built\n * Collection \"nodes\", we then create cloned versions of these elements\n * with the corresponding node passed in as a secret prop. These ReactElements\n * are then actually used to _render_ the corresponding Option / OptionGroup.\n *\n * This file contains helper functions to help with implementing the above.\n *\n * Note also that most of the collections-based react-aria components expose\n * a parallel API that accepts a list of \"items\" and a render prop, instead\n * of list of Item/Section elements. This is for efficiency, but we are opting\n * to only support the composite-component pattern for now for simplicity.\n */\n\nimport { Item, Section } from \"@react-stately/collections\";\nimport { Node } from \"@react-types/shared\";\nimport React from \"react\";\nimport { isString } from \"../common\";\nimport { getElementTypeName, toChildArray } from \"../react-utils\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"./plume-utils\";\n\nexport interface PlasmicLoaderProps<T> {\n component: string;\n componentProps: T;\n}\n\n/**\n * Props for a Plume component that corresponds to an Item\n */\nexport interface ItemLikeProps {\n /**\n * value key corresponding to this item. Not required if you use the\n * `key` prop instead.\n */\n value?: string | null;\n\n /**\n * The text string value corresponding to this item. Used to support\n * keyboard type-ahead. If not specified, then will be derived from\n * `children` if it is a string, or the `value` or `key`.\n */\n textValue?: string;\n\n /**\n * aria-label for this item.\n */\n \"aria-label\"?: string;\n\n /**\n * Primary content label for this item.\n */\n children?: React.ReactNode;\n\n /**\n * If true, this item will not be selectable.\n */\n isDisabled?: boolean;\n}\n\ntype LoaderAwareItemLikeProps =\n | ItemLikeProps\n | PlasmicLoaderProps<ItemLikeProps>;\n\n/**\n * Props for a Plume component that corresponds to a Section\n */\nexport interface SectionLikeProps {\n /**\n * Heading content of the title\n */\n title?: React.ReactNode;\n\n /**\n * aria-label for this section\n */\n \"aria-label\"?: string;\n\n /**\n * A list of items that belong in this group\n */\n children?: React.ReactNode;\n}\n\ntype LoaderAwareSectionLikeProps =\n | SectionLikeProps\n | PlasmicLoaderProps<SectionLikeProps>;\n\nexport type ItemJson = LeafItemJson | SectionJson;\n\nexport type LeafItemJson =\n | string\n | {\n value: string;\n label?: string;\n textValue?: string;\n isDisabled?: boolean;\n };\n\nexport interface SectionJson {\n title: string;\n children: ItemJson[];\n}\n\nexport function deriveItemsFromProps(\n props: any,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n ItemComponent?: React.ComponentType<ItemLikeProps>;\n SectionComponent?: React.ComponentType<SectionLikeProps>;\n itemsProp?: string;\n }\n) {\n if (opts.itemsProp && opts.itemsProp in props) {\n if (!opts.ItemComponent || !opts.SectionComponent) {\n throw new Error(`You may need to re-generate your Plasmic* files`);\n }\n const items = props[opts.itemsProp] as ItemJson[] | undefined;\n return deriveItemsFromItemsProp(items, {\n ItemComponent: opts.ItemComponent,\n SectionComponent: opts.SectionComponent,\n });\n } else {\n return deriveItemsFromChildren(props.children as React.ReactNode, opts);\n }\n}\n\nfunction deriveItemsFromItemsProp(\n items: ItemJson[] | undefined,\n opts: {\n ItemComponent: React.ComponentType<ItemLikeProps>;\n SectionComponent: React.ComponentType<SectionLikeProps>;\n }\n) {\n const { ItemComponent, SectionComponent } = opts;\n const disabledKeys: string[] = [];\n const transform = (item: ItemJson) => {\n if (typeof item === \"string\") {\n return (\n <ItemComponent key={item} value={item}>\n {item}\n </ItemComponent>\n );\n } else if (\"children\" in item) {\n return (\n <SectionComponent key={item.title} title={item.title}>\n {item.children.map((x) => transform(x))}\n </SectionComponent>\n );\n } else {\n if (item.isDisabled) {\n disabledKeys.push(item.value);\n }\n return (\n <ItemComponent\n key={item.value}\n value={item.value}\n textValue={item.textValue}\n isDisabled={item.isDisabled}\n >\n {item.label ?? item.value}\n </ItemComponent>\n );\n }\n };\n return {\n items: items?.map((x) => transform(x)) ?? [],\n disabledKeys,\n };\n}\n\n/**\n * Given children of a component like Select or Menu, derive the items\n * that we will pass into the Collections API. These will be\n * ReactElement<ItemLikeProps|SectionLikeProps>[].\n *\n * Will also assign keys to items by their index in the collection,\n * and collect the keys of disabled items.\n */\nexport function deriveItemsFromChildren<T extends React.ReactElement>(\n children: React.ReactNode,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n }\n) {\n if (!children) {\n return {\n items: [] as T[],\n disabledKeys: [] as React.Key[],\n };\n }\n\n const { itemPlumeType, sectionPlumeType, invalidChildError } = opts;\n\n // For Plume items without an explicit key, we assign a key as the index\n // of the collection.\n let itemCount = 0;\n let sectionCount = 0;\n\n const ensureValue = (element: React.ReactElement) => {\n if (!propInChild(element, \"value\")) {\n if (opts.requireItemValue && PLUME_STRICT_MODE) {\n throw new Error(\n `Must specify a \"value\" prop for ${getElementTypeName(element)}`\n );\n } else {\n return cloneChild(element, { value: `${itemCount++}` });\n }\n } else {\n // Still increment count even if key is present, so that the\n // auto-assigned key really reflects the index\n itemCount++;\n return element;\n }\n };\n\n const disabledKeys: React.Key[] = [];\n\n const flattenedChildren = (\n children: React.ReactNode\n ): React.ReactElement[] => {\n return toChildArray(children).flatMap((child) => {\n if (React.isValidElement(child)) {\n if (child.type === React.Fragment) {\n return flattenedChildren(\n (child as React.ReactElement<{ children: React.ReactNode }>).props\n .children\n );\n }\n const type = getPlumeType(child);\n if (type === itemPlumeType) {\n child = ensureValue(child);\n const childKey = getItemLikeKey(child);\n if (getChildProp(child, \"isDisabled\") && !!childKey) {\n disabledKeys.push(childKey);\n }\n return [child];\n }\n if (type === sectionPlumeType) {\n return [\n cloneChild(child, {\n // key of section doesn't actually matter, just needs\n // to be unique\n key: child.key ?? `section-${sectionCount++}`,\n children: flattenedChildren(getChildProp(child, \"children\")),\n }),\n ];\n }\n }\n\n if (PLUME_STRICT_MODE) {\n throw new Error(invalidChildError ?? `Unexpected child`);\n } else {\n return [];\n }\n });\n };\n\n return { items: flattenedChildren(children) as T[], disabledKeys };\n}\n\nexport function useDerivedItems(\n props: any,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n ItemComponent?: React.ComponentType<ItemLikeProps>;\n SectionComponent?: React.ComponentType<SectionLikeProps>;\n itemsProp?: string;\n }\n) {\n const { children } = props;\n const {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ItemComponent,\n SectionComponent,\n itemsProp,\n } = opts;\n const items = itemsProp ? props[itemsProp] : undefined;\n return React.useMemo(() => {\n return deriveItemsFromProps(props, {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n itemsProp,\n ItemComponent,\n SectionComponent,\n });\n }, [\n children,\n items,\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ItemComponent,\n SectionComponent,\n ]);\n}\n\nexport function useDerivedItemsFromChildren<T extends React.ReactElement>(\n children: React.ReactNode,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n }\n) {\n const {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n } = opts;\n return React.useMemo(() => {\n return deriveItemsFromChildren<T>(children, {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n });\n }, [\n children,\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ]);\n}\n\n/**\n * Given a Collection node, create the React element that we should use\n * to render it.\n */\nexport function renderCollectionNode(node: Node<any>) {\n // node.rendered should already have our item-like or section-like Plume\n // component elements, so we just need to clone them with a secret\n // _node prop that we use to render.\n return cloneChild(node.rendered as React.ReactElement, {\n _node: node,\n key: node.key,\n });\n}\n\n/**\n * Renders a item-like or section-like Plume component element into an\n * Item or a Section element.\n */\nexport function renderAsCollectionChild<\n T extends React.ReactElement<\n LoaderAwareItemLikeProps | LoaderAwareSectionLikeProps\n >\n>(\n child: T,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n }\n) {\n const plumeType = getPlumeType(child);\n if (plumeType === opts.itemPlumeType) {\n const option = child as React.ReactElement<LoaderAwareItemLikeProps>;\n\n // We look at the children passed to the item-like element, and derive key\n // or textValue from it if it is a string\n const content = getChildProp(option, \"children\");\n\n // The children render prop needs to return an <Item/>\n return (\n <Item\n // We use ItemLike.value if the user explicitly specified a value,\n // and we fallback to key. If the user specified neither, then\n // the Collections API will generate a unique key for this item.\n key={getItemLikeKey(option)}\n // textValue is either explicitly specified by the user, or we\n // try to derive it if `content` is a string.\n textValue={\n getChildProp(option, \"textValue\") ??\n (isString(content)\n ? content\n : propInChild(option, \"value\")\n ? getChildProp(option, \"value\")\n : option.key)\n }\n aria-label={getChildProp(option, \"aria-label\")}\n >\n {\n // Note that what we setting the item-like element as the children\n // here, and not content; we want the entire item-like Plume element to\n // end up as Node.rendered.\n }\n {option}\n </Item>\n );\n } else {\n const group = child as React.ReactElement<LoaderAwareSectionLikeProps>;\n return (\n <Section\n // Note that we are using the whole section-like element as the title\n // here, and not group.props.title; we want the entire section-like\n // Plume element to end up as Node.rendered.\n title={group}\n aria-label={getChildProp(group, \"aria-label\")}\n // We are flattening and deriving the descendant Options as items here.\n // group.props.children should've already been cleaned up by\n // deriveItemsFromChildren()\n items={getChildProp(group, \"children\") as React.ReactElement[]}\n >\n {\n // We use the same render function to turn descendent Options into Items\n }\n {(c: React.ReactElement) => renderAsCollectionChild(c, opts)}\n </Section>\n );\n }\n}\n\nfunction getItemLikeKey(element: React.ReactElement<LoaderAwareItemLikeProps>) {\n return getChildProp(element, \"value\") ?? element.key;\n}\n\n// PlasmicLoader-aware function to get prop from child.\nexport function getChildProp(child: React.ReactElement, prop: string) {\n return \"componentProps\" in child.props\n ? child.props.componentProps[prop]\n : child.props[prop];\n}\n\n// PlasmicLoader-aware function to check `if (prop in element.props)`.\nfunction propInChild(child: React.ReactElement, prop: string): boolean {\n return \"componentProps\" in child.props\n ? prop in child.props.componentProps\n : prop in child.props;\n}\n\n// PlasmicLoader-aware function to clone React element.\nfunction cloneChild(child: React.ReactElement, props: Record<string, any>) {\n if ((child.type as any).getPlumeType) {\n // If React element has getPlumeType(), assume that it is PlasmicLoader,\n // so add nodeProps to componentProps instead of element props.\n return React.cloneElement(child, {\n componentProps: {\n ...child.props.componentProps,\n ...props,\n },\n ...(props.key ? { key: props.key } : {}),\n });\n }\n\n return React.cloneElement(child, props);\n}\n","import type { Placement } from \"@react-types/overlays\";\nimport type { FocusStrategy } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport type { OverlayTriggerState } from \"@react-stately/overlays\";\n\nexport interface TriggeredOverlayContextValue {\n triggerRef: React.RefObject<HTMLElement>;\n state: OverlayTriggerState;\n autoFocus?: boolean | FocusStrategy;\n\n placement?: Placement;\n overlayMatchTriggerWidth?: boolean;\n overlayMinTriggerWidth?: boolean;\n overlayWidth?: number;\n}\n\nexport const TriggeredOverlayContext = React.createContext<\n TriggeredOverlayContextValue | undefined\n>(undefined);\n","import * as React from \"react\";\nimport type { TreeState } from \"@react-stately/tree\";\nimport type { BaseMenuProps } from \"./menu\";\n\nexport interface MenuContextValue {\n menuProps: BaseMenuProps;\n state: TreeState<any>;\n}\n\nexport const MenuContext = React.createContext<MenuContextValue | undefined>(\n undefined\n);\n","import { useMenu as useAriaMenu } from \"@react-aria/menu\";\nimport { useTreeState } from \"@react-stately/tree\";\nimport { AriaMenuProps } from \"@react-types/menu\";\nimport { AriaLabelingProps, DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * List of `Menu.Item`s or `Menu.Group`s that make up the menu\n */\n children?: React.ReactNode;\n\n /**\n * Called with the value of a `Menu.Item` when it is selected.\n */\n onAction?: (value: string) => void;\n}\n\nexport type MenuRef = React.Ref<MenuRefValue>;\nexport interface MenuRefValue extends MenuState {\n getRoot: () => HTMLElement | null;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"menu-item\",\n sectionPlumeType: \"menu-group\",\n};\n\nexport interface MenuConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\n/**\n * Converts props from BaseMenuProps to react-aria's useMenu() props.\n */\nfunction asAriaMenuProps(props: BaseMenuProps) {\n const { children, ...rest } = props;\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Menu.Item and Menu.Group as children to Menu`,\n requireItemValue: false,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n items,\n disabledKeys,\n } as AriaMenuProps<any>,\n };\n}\n\nexport interface MenuState {\n getFocusedValue: () => string | null;\n setFocusedValue: (value: string) => void;\n}\n\nexport function useMenu<P extends BaseMenuProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: MenuConfig<C>,\n ref: MenuRef = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = asAriaMenuProps(props);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const state = useTreeState(ariaProps);\n\n const menuListRef = React.useRef<HTMLUListElement>(null);\n\n const { menuProps } = useAriaMenu(\n {\n ...ariaProps,\n autoFocus: triggerContext?.autoFocus,\n },\n state,\n menuListRef\n );\n\n const contextValue = React.useMemo(() => ({ state, menuProps: props }), [\n state,\n props,\n ]);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n },\n [config.itemsContainer]: {\n as: \"ul\",\n props: mergeProps(menuProps, {\n ref: menuListRef,\n style: {\n ...noOutline(),\n },\n }),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.itemsSlot]: (\n <MenuContext.Provider value={contextValue}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </MenuContext.Provider>\n ),\n };\n\n const plumeState: MenuState = React.useMemo(\n () => ({\n getFocusedValue: () => state.selectionManager.focusedKey as string | null,\n setFocusedValue: (value: string) =>\n state.selectionManager.setFocusedKey(value),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getFocusedValue: () => plumeState.getFocusedValue(),\n setFocusedValue: (key) => plumeState.setFocusedValue(key),\n }),\n [rootRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuSection } from \"@react-aria/menu\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuGroupProps extends SectionLikeProps, StyleProps {}\n\ninterface MenuGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuGroup<\n P extends BaseMenuGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuGroupConfig<C>) {\n const context = React.useContext(MenuContext);\n\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseMenuGroupProps>>\n | undefined;\n\n if (!context || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Group within a Menu component.\");\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useMenuSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: context.state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.itemsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n as: \"li\",\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.itemsContainer]: {\n props: {\n ...groupProps,\n },\n as: \"ul\",\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuItem as useAriaMenuItem } from \"@react-aria/menu\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport { getDefaultPlasmicProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuItemProps extends ItemLikeProps {\n /**\n * Called when this item is selected\n */\n onAction?: (key: string) => void;\n}\n\ninterface MenuItemConfig<C extends AnyPlasmicClass> {\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuItem<\n P extends BaseMenuItemProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuItemConfig<C>) {\n const menuContext = React.useContext(MenuContext);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n\n if (!menuContext) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Item within a Menu component.\");\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children, onAction } = props;\n\n const { state, menuProps } = menuContext;\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseMenuItemProps>\n >;\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const ref = React.useRef<HTMLLIElement>(null);\n\n const { menuItemProps, labelProps } = useAriaMenuItem(\n mergeProps(\n {\n // We need to merge both the onAction on MenuItem and the onAction\n // on Menu\n onAction,\n },\n {\n onAction: menuProps.onAction,\n onClose: triggerContext?.state.close,\n },\n {\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n isVirtualized: false,\n closeOnSelect: true,\n }\n ),\n state,\n ref\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: \"li\",\n props: mergeProps(menuItemProps, { ref, style: noOutline() }),\n },\n [config.labelContainer]: {\n props: { ...labelProps },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { PressResult, usePress } from \"@react-aria/interactions\";\nimport { useMenuTrigger as useAriaMenuTrigger } from \"@react-aria/menu\";\nimport { MenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"../plume-utils\";\nimport { TriggeredOverlayContextValue } from \"../triggered-overlay/context\";\n\n/**\n * A menu trigger hook that combines react-aria's useMenuTrigger, useAriaMenuTrigger,\n * useOverlayPosition, useOverlay, and usePress\n */\nexport function useMenuTrigger(\n opts: {\n isDisabled?: boolean;\n triggerRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n menuMatchTriggerWidth?: boolean;\n menuWidth?: number;\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n },\n state: MenuTriggerState\n): {\n triggerProps: PressResult[\"pressProps\"];\n makeMenu: () => React.ReactElement;\n triggerContext: TriggeredOverlayContextValue;\n} {\n const {\n triggerRef,\n isDisabled,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n } = opts;\n\n const { menuTriggerProps: triggerPressProps, menuProps } = useAriaMenuTrigger(\n {\n type: \"menu\",\n isDisabled,\n },\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const makeMenu = () => {\n let realMenu = typeof menu === \"function\" ? menu() : menu;\n if (!realMenu) {\n return null;\n }\n if (getPlumeType(realMenu) !== \"menu\") {\n if (PLUME_STRICT_MODE) {\n throw new Error(`Must use an instance of the Menu component.`);\n }\n return null;\n }\n\n return React.cloneElement(realMenu, mergeProps(realMenu.props, menuProps));\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n autoFocus: state.focusStrategy ?? true,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n return {\n triggerProps,\n makeMenu,\n triggerContext,\n };\n}\n","import { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface DropdownMenuProps {\n /**\n * A ReactElement that takes in a `ref` as well as the usual mouse and\n * pointer events. The dropdown menu will be positioned relative to this\n * trigger.\n */\n children: React.ReactElement;\n\n /**\n * The menu to show; must be either a ReactElement of Menu type, or\n * a function that creates one if you prefer to delay creating it until\n * the menu has been triggered.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Where to place the menu relative to the trigger.\n */\n placement?: Placement;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state.\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport function DropdownMenu(props: DropdownMenuProps) {\n const { isOpen, defaultOpen, onOpenChange, children, placement, menu } =\n props;\n\n const triggerRef = React.useRef<HTMLElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n triggerRef,\n placement,\n menu,\n },\n state\n );\n\n return (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {React.cloneElement(\n children,\n mergeProps(children.props, triggerProps, { ref: triggerRef })\n )}\n {state.isOpen && makeMenu()}\n </TriggeredOverlayContext.Provider>\n );\n}\n","import { useFocusable } from \"@react-aria/focus\";\nimport { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport { DOMProps, FocusableProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface BaseMenuButtonProps\n extends DOMProps,\n FocusableProps,\n StyleProps,\n Pick<React.ComponentProps<\"button\">, \"title\"> {\n /**\n * The menu to show; can either be a Menu instance, or a function that returns a Menu\n * instance if you want to defer creating the instance till when it's opened.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Whether the button is disabled\n */\n isDisabled?: boolean;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n}\n\nexport interface MenuButtonConfig<C extends AnyPlasmicClass> {\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n menuSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n}\n\ninterface MenuButtonState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n}\n\nexport type MenuButtonRef = React.Ref<MenuButtonRefValue>;\n\nexport interface MenuButtonRefValue extends MenuButtonState {\n getRoot: () => HTMLElement | null;\n getTrigger: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\nexport function useMenuButton<\n P extends BaseMenuButtonProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: MenuButtonConfig<C>,\n outerRef: MenuButtonRef = null\n) {\n const {\n placement,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n menu,\n autoFocus,\n menuMatchTriggerWidth,\n menuWidth,\n } = props;\n\n useEnsureSSRProvider();\n const rootRef = React.useRef<HTMLElement>(null);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n isDisabled,\n triggerRef,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n },\n state\n );\n\n const { focusableProps: triggerFocusProps } = useFocusable(props, triggerRef);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.menuSlot]: state.isOpen ? makeMenu() : undefined,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n wrapChildren: (children: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {children}\n </TriggeredOverlayContext.Provider>\n ),\n props: {\n ref: rootRef,\n },\n },\n [config.trigger]: {\n props: mergeProps(\n triggerProps,\n triggerFocusProps,\n getStyleProps(props),\n pick(props, \"title\"),\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Make sure this button is not interpreted as submit\n type: \"button\",\n }\n ),\n },\n };\n\n const plumeState: MenuButtonState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n }),\n [state]\n );\n\n React.useImperativeHandle(\n outerRef,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current && triggerRef.current.focus(),\n blur: () => triggerRef.current && triggerRef.current.blur(),\n open: plumeState.open,\n close: plumeState.close,\n isOpen: plumeState.isOpen,\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import * as React from \"react\";\nimport type { ListState } from \"@react-stately/list\";\n\nexport const SelectContext = React.createContext<ListState<any> | undefined>(\n undefined\n);\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { usePress } from \"@react-aria/interactions\";\nimport { AriaListBoxOptions, useListBox } from \"@react-aria/listbox\";\nimport { HiddenSelect, useSelect as useAriaSelect } from \"@react-aria/select\";\nimport {\n SelectState as AriaSelectState,\n useSelectState as useAriaSelectState,\n} from \"@react-stately/select\";\nimport { Placement } from \"@react-types/overlays\";\nimport { AriaSelectProps } from \"@react-types/select\";\nimport {\n AriaLabelingProps,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputBase,\n} from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n getChildProp,\n ItemJson,\n ItemLikeProps,\n renderAsCollectionChild,\n renderCollectionNode,\n SectionLikeProps,\n useDerivedItems,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport {\n TriggeredOverlayContext,\n TriggeredOverlayContextValue,\n} from \"../triggered-overlay/context\";\nimport { SelectContext } from \"./context\";\nimport { BaseSelectOptionProps } from \"./select-option\";\nimport { BaseSelectOptionGroupProps } from \"./select-option-group\";\n\nexport interface BaseSelectProps\n extends DOMProps,\n AriaLabelingProps,\n FocusableDOMProps,\n InputBase,\n FocusableProps,\n StyleProps {\n /**\n * Key of the currently selected value\n */\n value?: string | null;\n\n /**\n * Event handler fired when currently selected value changes\n */\n onChange?: (value: string | null) => void;\n\n /**\n * Uncontrolled key of the default selected value\n */\n defaultValue?: string;\n\n /**\n * List of Select.Options\n */\n children?: React.ReactNode;\n\n /**\n * List of options as an array, instead of using `children` prop. If this\n * is passed in, then `children` is ignored.\n *\n * The options can be a list of strings, or a list of objects with\n * fields `value` (for the value of the option), `label` (for what's rendered\n * in the option), and `isDisabled` (if the option should be disabled).\n */\n options?: ItemJson[];\n\n /**\n * Whether the Select is currently open\n */\n isOpen?: boolean;\n\n /**\n * Event handler fired when Select's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Uncontrolled default open state\n */\n defaultOpen?: boolean;\n\n /**\n * Form name of the select element\n */\n name?: string;\n\n /**\n * By default, Select will render whatever is in Select.Option as the\n * content in the trigger button when it is selected. You can override\n * what content by passing in `selectedContent` here.\n */\n selectedContent?: React.ReactNode;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n\n /**\n * Content to display when nothing is selected.\n */\n placeholder?: React.ReactNode;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"select-option\",\n sectionPlumeType: \"select-option-group\",\n};\n\ntype AriaOptionType = React.ReactElement<BaseSelectOptionProps>;\ntype AriaGroupType = React.ReactElement<BaseSelectOptionGroupProps>;\ntype AriaSelectItemType = AriaOptionType | AriaGroupType;\n\n/**\n * Converts props in our BaseSelectProps into props that react-aria's\n * useSelect() understands.\n *\n * Because we're not exposing the Collections API (see ./index.tsx),\n * we are converting our own API into props for useSelect.\n *\n * Specifically, in Plume's API,\n * - `children` flattens to a list of ReactElements of type Select.Option\n * or Select.OptionGroup\n *\n * and we map it this way to the Collections API:\n * - `items` is a list of those flattened ReactElements from `children`!\n * - `children`, as a render prop, is supposed to take one of the `items`\n * and return a `Section` or `Item` element. We take an Option/OptionGroup\n * element, and use its props to render the appropriate `Section` or\n * `Item`. The \"trick\" here is that we then stuff the Option element as\n * `Item.children`, and the OptionGroup element as `Section.title`.\n *\n * When the Collections API does its work deriving `Node`s, the corresponding\n * Option/OptionGroup ReactElements will end up as `Node.rendered`.\n *\n * Then, when we are actually rendering the content of the dropdown, we\n * iterate through each collected `Node`, and renders\n * React.cloneElement(Node.rendered, {_node: node}). This \"secretly\" passes\n * the derived collection `Node` as a prop to Option and OptionGroup, and they\n * can make use of the derived `Node.key` etc in their rendering functions.\n *\n * One thing to note here is that we never \"rendered\" the Option/OptionGroup\n * React elements that the user constructed; instead, we just looked at the\n * props used on those elements, and passed those onto the Collections API.\n * What gets rendered to the screen is the cloned version of these elements\n * with the secret derived `_node` prop. That means Option and OptionGroup\n * render functions can assume that _node is passed in.\n */\nfunction useAriaSelectProps(props: BaseSelectProps, config: SelectConfig<any>) {\n const {\n value,\n defaultValue,\n children,\n onChange,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n ...rest\n } = props;\n\n const { items, disabledKeys } = useDerivedItems(props, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Select.Option and Select.OptionGroup as children to Select`,\n requireItemValue: true,\n ItemComponent: config.OptionComponent,\n SectionComponent: config.OptionGroupComponent,\n itemsProp: \"options\",\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n const onSelectionChange = React.useMemo(() => {\n if (onChange) {\n return (val: string | null) =>\n onChange!(\n (val == null || val === \"null\" ? null : val) as string | null\n );\n } else {\n return undefined;\n }\n }, [onChange]);\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n onSelectionChange,\n items,\n disabledKeys,\n defaultSelectedKey: defaultValue,\n\n // react-aria is picky about selectedKey; if it is null, it means \"no selection\";\n // if it is undefined, it means \"uncontrolled\". So here, if the user passes in a\n // value prop, then we make sure selectedKey will be null and not undefined, so\n // we don't accidentally enter uncontrolled mode.\n ...(\"value\" in props && { selectedKey: value ?? null }),\n } as AriaSelectProps<AriaSelectItemType>,\n };\n}\n\nexport type SelectRef = React.Ref<SelectRefValue>;\n\nexport interface SelectRefValue extends SelectState {\n getTrigger: () => HTMLElement | null;\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SelectConfig<C extends AnyPlasmicClass> {\n placeholderVariant?: VariantDef<PlasmicClassVariants<C>>;\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n triggerContentSlot: keyof PlasmicClassArgs<C>;\n optionsSlot: keyof PlasmicClassArgs<C>;\n placeholderSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n overlay: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n\n OptionComponent?: React.ComponentType<ItemLikeProps>;\n OptionGroupComponent?: React.ComponentType<SectionLikeProps>;\n}\n\ninterface SelectState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getSelectedValue: () => string | null;\n setSelectedValue: (value: string | null) => void;\n}\n\nexport function useSelect<P extends BaseSelectProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SelectConfig<C>,\n ref: React.Ref<SelectRefValue> = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = useAriaSelectProps(props, config);\n const { placement } = props;\n const state = useAriaSelectState<AriaSelectItemType>(ariaProps);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const {\n isDisabled,\n name,\n menuWidth,\n menuMatchTriggerWidth,\n autoFocus,\n placeholder,\n selectedContent,\n } = props;\n\n const canvasCtx = usePlasmicCanvasContext();\n\n const { triggerProps: triggerPressProps, menuProps } = useAriaSelect(\n ariaProps,\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const triggerContent = state.selectedItem?.value\n ? selectedContent ?? getChildProp(state.selectedItem.value, \"children\")\n : null;\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.placeholderVariant, active: !state.selectedItem },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n {(!canvasCtx || canvasCtx.interactive) && (\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n name={name}\n isDisabled={isDisabled}\n />\n )}\n {children}\n </>\n ),\n },\n [config.trigger]: {\n props: mergeProps(\n canvasCtx && !canvasCtx.interactive ? {} : triggerProps,\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Don't trigger form submission!\n type: \"button\",\n }\n ),\n },\n [config.overlay]: {\n wrap: (content: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {content}\n </TriggeredOverlayContext.Provider>\n ),\n },\n [config.optionsContainer]: {\n wrap: (content: React.ReactNode) => (\n <ListBoxWrapper state={state} menuProps={menuProps}>\n {content as React.ReactElement}\n </ListBoxWrapper>\n ),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.triggerContentSlot]: triggerContent,\n [config.placeholderSlot]: placeholder,\n [config.optionsSlot]: (\n <SelectContext.Provider value={state}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </SelectContext.Provider>\n ),\n };\n\n const plumeState: SelectState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n getSelectedValue: () =>\n state.selectedKey ? `${state.selectedKey}` : null,\n setSelectedValue: (key) => state.setSelectedKey(key as any),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current?.focus(),\n blur: () => triggerRef.current?.blur(),\n open: () => plumeState.open(),\n close: () => plumeState.close(),\n isOpen: () => plumeState.isOpen(),\n getSelectedValue: () => plumeState.getSelectedValue(),\n setSelectedValue: (key) => plumeState.setSelectedValue(key),\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n\nfunction ListBoxWrapper(props: {\n state: AriaSelectState<any>;\n menuProps: AriaListBoxOptions<any>;\n children: React.ReactElement;\n}) {\n const { state, menuProps, children } = props;\n\n const ref = React.useRef<HTMLElement>(null);\n const canvasCtx = usePlasmicCanvasContext();\n\n const { listBoxProps } = useListBox(\n {\n ...menuProps,\n isVirtualized: false,\n autoFocus: state.focusStrategy || true,\n disallowEmptySelection: true,\n },\n state,\n ref\n );\n\n return React.cloneElement(\n children,\n mergeProps(\n children.props,\n canvasCtx && !canvasCtx.interactive ? {} : listBoxProps,\n {\n style: noOutline(),\n ref,\n }\n )\n );\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { useOption as useAriaOption } from \"@react-aria/listbox\";\nimport { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps, mergeRefs } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionProps extends ItemLikeProps, StyleProps {}\n\ninterface SelectOptionConfig<C extends AnyPlasmicClass> {\n isSelectedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type SelectOptionRef = React.Ref<HTMLElement>;\n\nexport function useSelectOption<\n P extends BaseSelectOptionProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: SelectOptionConfig<C>,\n outerRef: SelectOptionRef = null\n) {\n const state = React.useContext(SelectContext);\n\n if (!state) {\n // If no context, then we are being incorrectly used. Complain or just don't\n // bother installing any hooks. It's okay to violate rules of hooks here\n // because this instance won't suddenly be used correctly in another render.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.Option within a Select component.\"\n );\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n\n const canvasCtx = usePlasmicCanvasContext();\n const rootRef = React.useRef<HTMLElement>(null);\n const onRef = mergeRefs(rootRef, outerRef);\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseSelectOptionProps>\n >;\n\n const isSelected = state.selectionManager.isSelected(node.key);\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const { optionProps, labelProps } = useAriaOption(\n {\n isSelected,\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n isVirtualized: false,\n shouldUseVirtualFocus: canvasCtx && !canvasCtx.interactive,\n },\n state,\n rootRef\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isSelectedVariant, active: isSelected },\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(\n canvasCtx && !canvasCtx.interactive ? {} : optionProps,\n getStyleProps(props),\n {\n ref: onRef,\n style: noOutline(),\n }\n ),\n },\n [config.labelContainer]: {\n props: labelProps,\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useListBoxSection } from \"@react-aria/listbox\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionGroupProps\n extends SectionLikeProps,\n StyleProps {}\n\ninterface SelectOptionGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: VariantDef<PlasmicClassVariants<C>>;\n isFirstVariant: VariantDef<PlasmicClassVariants<C>>;\n\n optionsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSelectOptionGroup<\n P extends BaseSelectOptionGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: SelectOptionGroupConfig<C>) {\n const state = React.useContext(SelectContext);\n\n // `node` should exist if the OptionGroup was instantiated properly\n // within a Select\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseSelectOptionGroupProps>>\n | undefined;\n\n if (!state || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.OptionGroup within a Select component.\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useListBoxSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.optionsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.optionsContainer]: {\n props: {\n ...groupProps,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { useSwitch as useAriaSwitch } from \"@react-aria/switch\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaSwitchProps } from \"@react-types/switch\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type SwitchRef = React.Ref<SwitchRefValue>;\nexport interface SwitchRefValue extends SwitchState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SwitchState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface SwitchProps\n extends Omit<AriaSwitchProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Switch is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Switch is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n}\n\nfunction asAriaSwitchProps(props: SwitchProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface SwitchConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSwitch<P extends SwitchProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SwitchConfig<C>,\n ref: SwitchRef = null\n) {\n const { children, isDisabled } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaSwitchProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaSwitch(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: SwitchState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n","import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\nexport interface BaseTextInputProps\n extends Omit<React.ComponentProps<\"input\">, \"type\" | \"disabled\">,\n PlumeTextInputProps {}\n\nexport interface PlumeTextInputProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n isDisabled?: boolean;\n type?: \"text\" | \"password\" | \"email\" | \"url\" | string;\n inputClassName?: string;\n inputStyle?: React.CSSProperties;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface TextInputRefValue {\n focus: () => void;\n blur: () => void;\n getRoot: () => HTMLElement | null;\n getInput: () => HTMLInputElement | null;\n}\n\nexport type TextInputRef = React.Ref<TextInputRefValue>;\n\ninterface TextInputConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n input: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useTextInput<\n P extends PlumeTextInputProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TextInputConfig<C>,\n ref: TextInputRef = null\n) {\n const {\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n className,\n style,\n inputClassName,\n inputStyle,\n ...rest\n } = props;\n const rootRef = React.useRef<HTMLElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useImperativeHandle(\n ref,\n () => ({\n focus() {\n inputRef.current?.focus();\n },\n blur() {\n inputRef.current?.blur();\n },\n getRoot() {\n return rootRef.current;\n },\n getInput() {\n return inputRef.current;\n },\n getBoundingClientRect() {\n return rootRef.current?.getBoundingClientRect();\n },\n }),\n [rootRef, inputRef]\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: {\n ref: rootRef,\n className,\n style,\n },\n },\n [config.input]: {\n props: {\n // We throw all of extra \"rest\" onto the `input` element, except props\n // that were meant for the Plasmic component -- the args and variants.\n // We make two exceptions though:\n // 1. onChange - Plume text-input is kind of screwy, and the \"value\" state\n // of the input element is not exposed to the outer component via the\n // normal way; instead, we register a separate \"value\" state that's\n // in additional to the input.value state. So that means there are\n // two `onChange` that we need to pipe through -- the one that updates\n // `$state.input.value`, the input value state internal to the component,\n // and the one that updates `$state.value`, the separate value state\n // exposed to the outside. The generated <PlasmicTextInput/> will pass\n // in the onChange for updating the internal `$state.input.value`, and\n // props.onChange here will pass in the onChange for updating the\n // externally exposed `$state.value`. Wow! Very sad. If\n // `$state.input.value` were just externally exposed, then we wouldn't\n // need to do so; but we can't retroactively update people's TextInput\n // components that have already been forked :-/\n // 2. `required`, because that prop existed prior to Plume pkg <= 19.1.1,\n // but it was not linked to the input's `required` attribute as it should.\n // So this again works around older versions of TextInput out there.\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps.filter(\n (prop) => prop !== \"required\" && prop !== \"onChange\"\n ),\n ...plasmicClass.internalVariantProps\n ),\n disabled: isDisabled,\n ref: inputRef,\n className: inputClassName,\n style: inputStyle,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { FocusScope } from \"@react-aria/focus\";\nimport {\n DismissButton,\n useOverlay,\n useOverlayPosition,\n} from \"@react-aria/overlays\";\nimport { DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { pick } from \"../../common\";\nimport {\n mergeProps,\n mergeRefs,\n useIsomorphicLayoutEffect,\n} from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"./context\";\n\nexport interface BaseTriggeredOverlayProps extends StyleProps, DOMProps {\n children?: React.ReactNode;\n}\n\nexport interface TriggeredOverlayConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport type TriggeredOverlayRef = React.Ref<HTMLElement>;\n\nexport function useTriggeredOverlay<\n P extends BaseTriggeredOverlayProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TriggeredOverlayConfig<C>,\n outerRef: TriggeredOverlayRef = null,\n isDismissable = true\n) {\n const overlayRef = React.useRef<HTMLElement>(null);\n const onOverlayRef = mergeRefs(overlayRef, outerRef, (ref) => {\n // Workaround for https://github.com/adobe/react-spectrum/issues/1513\n // to avoid touch events leaking under the overlay when it is closed.\n if (ref) {\n ref.addEventListener(\"touchend\", (e) => {\n e.preventDefault();\n });\n }\n });\n\n const context = React.useContext(TriggeredOverlayContext);\n\n if (!context) {\n // If no context, then we are not being correctly used. Either complain, or\n // exit early. It's okay to exit early and break the rules of React hooks\n // because we won't suddenly have the appropriate context anyway for this instance.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a triggered overlay with a TriggeredOverlayContext\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n const {\n triggerRef,\n placement,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n overlayWidth,\n state,\n } = context;\n\n // Measure the width of the trigger to inform the width of the menu (below).\n const [isRendered, setRendered] = React.useState(false);\n const triggerWidth =\n triggerRef.current && (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ? triggerRef.current.offsetWidth\n : undefined;\n\n useIsomorphicLayoutEffect(() => {\n if (\n !isRendered &&\n triggerRef.current &&\n (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ) {\n setRendered(true);\n }\n }, [\n triggerRef,\n isRendered,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n ]);\n\n const { overlayProps: overlayAriaProps } = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n isDismissable,\n shouldCloseOnBlur: true,\n },\n overlayRef\n );\n\n const {\n overlayProps: overlayPositionProps,\n updatePosition,\n placement: placementAxis,\n } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n placement: placement ?? \"bottom left\",\n shouldFlip: true,\n isOpen: state.isOpen,\n onClose: state.close,\n containerPadding: 0,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (state.isOpen) {\n requestAnimationFrame(() => {\n updatePosition();\n });\n }\n }, [state.isOpen, updatePosition]);\n\n const overlayProps = mergeProps(\n {\n style: {\n left: \"auto\",\n right: \"auto\",\n top: \"auto\",\n bottom: \"auto\",\n position: \"absolute\",\n width:\n overlayWidth ?? (overlayMatchTriggerWidth ? triggerWidth : \"auto\"),\n minWidth: overlayMinTriggerWidth ? triggerWidth : \"auto\",\n },\n },\n overlayAriaProps,\n overlayPositionProps\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isPlacedTopVariant, active: placementAxis === \"top\" },\n { def: config.isPlacedBottomVariant, active: placementAxis === \"bottom\" },\n { def: config.isPlacedLeftVariant, active: placementAxis === \"left\" },\n { def: config.isPlacedRightVariant, active: placementAxis === \"right\" }\n ),\n };\n\n const canvasCtx = usePlasmicCanvasContext();\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.contentSlot]:\n canvasCtx && !canvasCtx.interactive ? (\n children\n ) : (\n <FocusScope restoreFocus>\n <DismissButton onDismiss={state.close} />\n {children}\n {/* We don't use the DismissButton at the end because it ends up taking up 1px space :-/ */}\n {/* <DismissButton onDismiss={state.close} /> */}\n </FocusScope>\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(overlayProps, getStyleProps(props), {\n ref: onOverlayRef,\n }),\n wrap: (root: React.ReactNode) => {\n if (typeof document !== \"undefined\") {\n return ReactDOM.createPortal(root, document.body);\n } else {\n // Possibly being invoked on the server during SSR; no need to\n // bother with a portal in that case.\n return root;\n }\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["usePlasmicDataSourceContext","plasmicQuery","React","useIsomorphicLayoutEffect","classNames","usePlasmicLinkMaybe","HostPlasmicTranslatorContext","useHostPlasmicTranslator","DataProvider","SSRProvider","PlasmicDataSourceContextProvider","PlasmicLinkProvider","useAriaIsSSR","useAriaFocusRing","useAriaHover","useAriaPress","isNum","isValtioProxy","subscribe","createValtioRef","createValtioProxy","useSnapshot","useLayoutEffect","useEffect","_classNames","useToggleState","useAriaCheckbox","VisuallyHidden","Item","Section","COLLECTION_OPTS","useTreeState","useAriaMenu","useMenuSection","useSeparator","useAriaMenuItem","menu","useAriaMenuTrigger","usePress","useMenuTriggerState","useFocusable","useAriaSelectState","usePlasmicCanvasContext","useAriaSelect","HiddenSelect","useListBox","useAriaOption","useListBoxSection","useAriaSwitch","useOverlay","useOverlayPosition","FocusScope","DismissButton","ReactDOM"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/auth/PlasmicPageGuard.tsx","../src/common.ts","../src/render/PlasmicHead/index.tsx","../src/render/PlasmicIcon.tsx","../src/react-utils.tsx","../src/render/PlasmicImg/index.tsx","../src/render/PlasmicLink.tsx","../src/render/translation.tsx","../src/render/PlasmicSlot.tsx","../src/render/elements.ts","../src/render/Stack.tsx","../src/render/global-variants.ts","../src/render/screen-variants.ts","../src/render/ssr.tsx","../src/render/style-tokens.tsx","../src/render/triggers.ts","../src/states/types.ts","../src/states/errors.ts","../src/states/graph.ts","../src/states/valtio.tsx","../src/states/helpers.ts","../src/index-common.tsx","../src/plume/plume-utils.ts","../src/plume/button/index.tsx","../src/plume/props-utils.ts","../src/plume/checkbox/index.tsx","../src/plume/collection-utils.tsx","../src/plume/triggered-overlay/context.tsx","../src/plume/menu/context.tsx","../src/plume/menu/menu.tsx","../src/plume/menu/menu-group.tsx","../src/plume/menu/menu-item.tsx","../src/plume/menu-button/menu-trigger.tsx","../src/plume/menu-button/DropdownMenu.tsx","../src/plume/menu-button/menu-button.tsx","../src/plume/select/context.tsx","../src/plume/select/select.tsx","../src/plume/select/select-option.tsx","../src/plume/select/select-option-group.tsx","../src/plume/switch/index.tsx","../src/plume/text-input/index.tsx","../src/plume/triggered-overlay/triggered-overlay.tsx"],"sourcesContent":["import { usePlasmicDataSourceContext } from \"@plasmicapp/data-sources-context\";\nimport * as plasmicQuery from \"@plasmicapp/query\";\nimport React from \"react\";\n\n// https://stackoverflow.com/a/2117523\nfunction uuidv4() {\n // eslint-disable-next-line\n // @ts-ignore\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16)\n );\n}\n\nasync function triggerLogin(\n appId: string,\n authorizeEndpoint: string,\n redirectUri?: string\n) {\n async function sha256(text: string) {\n const encoder = new TextEncoder();\n const data = encoder.encode(text);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return hashHex;\n }\n\n const continueTo = window.location.href;\n const state = JSON.stringify({ continueTo });\n const code_verifier = uuidv4();\n localStorage.setItem(\"code_verifier\", code_verifier);\n const code_challenge = await sha256(code_verifier);\n\n const params = new URLSearchParams();\n params.set(\"client_id\", appId);\n params.set(\"state\", state);\n params.set(\"response_type\", \"code\");\n params.set(\"code_challenge\", code_challenge);\n params.set(\"code_challenge_method\", \"S256\");\n params.set(\"origin_host\", window.location.host);\n\n if (redirectUri) {\n params.set(\"redirect_uri\", redirectUri);\n }\n\n const url = `${authorizeEndpoint}?${params.toString()}`;\n window.location.href = url;\n}\n\ninterface PlasmicPageGuardProps {\n appId: string;\n authorizeEndpoint: string;\n minRole?: string;\n canTriggerLogin: boolean;\n children: React.ReactNode;\n unauthorizedComp?: React.ReactNode;\n}\n\nexport function PlasmicPageGuard(props: PlasmicPageGuardProps) {\n const {\n appId,\n authorizeEndpoint,\n minRole,\n canTriggerLogin,\n children,\n unauthorizedComp,\n } = props;\n\n const dataSourceCtxValue = usePlasmicDataSourceContext();\n\n React.useEffect(() => {\n if (canTriggerLogin) {\n if (\n minRole &&\n dataSourceCtxValue &&\n \"isUserLoading\" in dataSourceCtxValue &&\n !dataSourceCtxValue.isUserLoading &&\n !dataSourceCtxValue.user\n ) {\n triggerLogin(\n appId,\n authorizeEndpoint,\n dataSourceCtxValue.authRedirectUri\n );\n }\n }\n }, [dataSourceCtxValue, appId, authorizeEndpoint, canTriggerLogin, minRole]);\n\n function canUserViewPage() {\n if (!minRole) {\n return true;\n }\n if (!dataSourceCtxValue) {\n return false;\n }\n if (!dataSourceCtxValue.user) {\n return false;\n }\n if (!(\"roleIds\" in dataSourceCtxValue.user)) {\n return false;\n }\n if (!Array.isArray(dataSourceCtxValue.user.roleIds)) {\n return false;\n }\n return dataSourceCtxValue.user.roleIds.includes(minRole);\n }\n\n // If we are in prepass, PlasmicPageGuard should not render anything\n // it's expected that pages are only equipped with PlasmicPageGuard\n // when it's known that it will disable prepass/prefetching\n if (plasmicQuery.isPlasmicPrepass?.()) {\n return null;\n }\n\n /*\n PlasmicPageGuard has three cases:\n 1. No value of dataSourceCtxValue, user is loading or a trigger login should be performed.\n In this case, we don't want to render the children or the access denied message.\n While the user is loading we look to see if don't have a user value as we can be in a\n revalidate state.\n 2. The user doesn't have access to the page in which we show an access denied message.\n 3. The user has access to the page in which we render the children.\n */\n if (\n !dataSourceCtxValue ||\n (dataSourceCtxValue.isUserLoading && !dataSourceCtxValue.user) ||\n (!dataSourceCtxValue.user && minRole && canTriggerLogin)\n ) {\n return null;\n }\n\n if (!canUserViewPage()) {\n if (unauthorizedComp) {\n return <>{unauthorizedComp}</>;\n }\n\n return <div>You don't have access to this page</div>;\n }\n\n return <>{children}</>;\n}\n\nexport function withPlasmicPageGuard<P extends object>(\n WrappedComponent: React.ComponentType<P>,\n options: Omit<PlasmicPageGuardProps, \"children\">\n) {\n const PageGuard: React.FC<P> = (props) => (\n <PlasmicPageGuard {...options}>\n <WrappedComponent {...props} />\n </PlasmicPageGuard>\n );\n return PageGuard;\n}\n","export function notNil<T>(x: T | undefined | null): x is T {\n return x != null;\n}\n\nexport function pick<T extends {}>(\n obj: T,\n ...keys: (string | number | symbol)[]\n): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: any = {};\n for (const key of keys) {\n if (key in obj) {\n res[key] = obj[key as keyof T];\n }\n }\n return res as Partial<T>;\n}\n\nexport function pickBy<T extends {}>(\n obj: T,\n func: (key: string, val: any) => boolean\n): Partial<T> {\n const res: any = {};\n for (const [key, val] of Object.entries(obj)) {\n if (func(key, val)) {\n res[key] = obj[key as keyof T];\n }\n }\n return res as Partial<T>;\n}\n\nexport function omit<T extends {}>(obj: T, ...keys: (keyof T)[]): Partial<T> {\n if (Object.keys(obj).length === 0) {\n return obj;\n }\n const res: Partial<T> = {};\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (!keys.includes(key)) {\n res[key] = obj[key];\n }\n }\n return res;\n}\n\nexport function isSubset<T>(a1: T[], a2: T[]) {\n return a1.every((x) => a2.includes(x));\n}\n\nexport function chainSingleArgFuncs<A>(...funcs: ((arg: A) => A)[]) {\n if (funcs.length === 0) {\n return undefined;\n }\n return (arg: A) => {\n let res: A = arg;\n for (const func of funcs) {\n res = func(res);\n }\n return res;\n };\n}\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nexport function isString(x: any): x is string {\n return typeof x === \"string\";\n}\n\nexport function groupBy<T>(\n collection: T[],\n keyFunc: (x: T) => string\n): Record<string, T[]> {\n const result: Record<string, T[]> = {};\n for (const obj of collection) {\n const key = keyFunc(obj);\n if (key in result) {\n result[key].push(obj);\n } else {\n result[key] = [obj];\n }\n }\n return result;\n}\n\nexport function mapValues<V, V2>(\n obj: Record<string, V>,\n mapper: (value: V) => V2\n): Record<string, V2> {\n const result: Record<string, V2> = {};\n for (const key in obj) {\n result[key] = mapper(obj[key]);\n }\n return result;\n}\n","import * as plasmicQuery from \"@plasmicapp/query\";\nimport * as React from \"react\";\n\nexport const PlasmicHeadContext = React.createContext<\n React.ComponentType<any> | undefined\n>(undefined);\n\nexport function PlasmicHead(props: plasmicQuery.HeadMetadata) {\n const Head = React.useContext(PlasmicHeadContext);\n const headMetadata =\n // Check if `HeadMetadataContext` is exported for backward compatibility\n \"HeadMetadataContext\" in plasmicQuery\n ? React.useContext(plasmicQuery.HeadMetadataContext)\n : undefined;\n\n if (headMetadata) {\n // If we have the Head metadata object specified, mutate it so to ensure it\n // stores the data that should go in the <head>.\n if (props.image) {\n headMetadata.image = props.image;\n }\n if (props.title) {\n headMetadata.title = props.title;\n }\n if (props.description) {\n headMetadata.description = props.description;\n }\n if (props.canonical) {\n headMetadata.canonical = props.canonical;\n }\n }\n\n if (!Head) {\n console.warn(\n `Plasmic: Head meta tags are being ignored. To make them work, pass a Head component into PlasmicRootProvider.`\n );\n // TODO: Link to doc about Head.\n return null;\n }\n\n // Helmet does not support React.Fragments, so we need to use `[<meta />,\n // <meta />]` instead of `<><meta /><meta /></>`.\n return (\n <Head>\n {props.image ? (\n [\n <meta\n key=\"twitter:card\"\n name=\"twitter:card\"\n content=\"summary_large_image\"\n />,\n <meta key=\"og:image\" property=\"og:image\" content={props.image} />,\n <meta\n key=\"twitter:image\"\n name=\"twitter:image\"\n content={props.image}\n />,\n ]\n ) : (\n <meta key=\"twitter:card\" name=\"twitter:card\" content=\"summary\" />\n )}\n {props.title && [\n <title key=\"title\">{props.title}</title>,\n <meta key=\"og:title\" property=\"og:title\" content={props.title} />,\n <meta\n key=\"twitter:title\"\n property=\"twitter:title\"\n content={props.title}\n />,\n ]}\n {props.description && [\n <meta\n key=\"description\"\n name=\"description\"\n content={props.description}\n />,\n <meta\n key=\"og:description\"\n property=\"og:description\"\n content={props.description}\n />,\n <meta\n key=\"twitter:description\"\n name=\"twitter:description\"\n content={props.description}\n />,\n ]}\n {props.canonical && (\n <link key=\"canonical\" rel=\"canonical\" href={props.canonical} />\n )}\n </Head>\n );\n}\n\nexport const plasmicHeadMeta = {\n name: \"hostless-plasmic-head\",\n displayName: \"Page Metadata Override\",\n description: \"Set page metadata (HTML <head />) to dynamic values.\",\n importName: \"PlasmicHead\",\n importPath: \"@plasmicapp/react-web\",\n isRepeatable: false,\n styleSections: false,\n props: {\n title: {\n type: \"string\",\n displayName: \"Title\",\n },\n description: {\n type: \"string\",\n displayName: \"Description\",\n },\n image: {\n type: \"imageUrl\",\n displayName: \"Image\",\n },\n canonical: {\n type: \"string\",\n displayName: \"Canonical URL\",\n },\n },\n};\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","/**\n * Responsive `<img/>` replacement, based on `next/image`\n */\n\nimport classNames from \"classnames\";\nimport React, { CSSProperties } from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeRefs } from \"../../react-utils\";\n\nexport interface ImageLoader {\n supportsUrl: (url: string) => boolean;\n transformUrl: (opts: {\n src: string;\n width?: number;\n quality?: number;\n format?: \"webp\";\n }) => string;\n}\n\ntype ImgTagProps = Omit<\n React.ComponentProps<\"img\">,\n \"src\" | \"srcSet\" | \"ref\" | \"style\"\n>;\n\nconst IMG_OPTIMIZER_HOST = \"https://img.plasmic.app\";\n\n// Default image sizes to snap to\n// TODO: make this configurable?\nconst IMG_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nconst DEVICE_SIZES = [640, 750, 828, 1080, 1200, 1920, 2048, 3840];\nconst ALL_SIZES = [...IMG_SIZES, ...DEVICE_SIZES];\n\nexport interface PlasmicImgProps extends ImgTagProps {\n /**\n * Either an object with the src string, and its full width and height,\n * or just a src string with unknown intrinsic dimensions.\n */\n src?:\n | string\n | {\n src:\n | string\n | {\n src: string;\n height: number;\n width: number;\n blurDataURL?: string;\n };\n fullHeight: number;\n fullWidth: number;\n // We might also get a more precise aspectRatio for SVGs\n // instead of relyiing on fullWidth / fullHeight, because\n // those values might be rounded and not so accurate.\n aspectRatio?: number;\n };\n\n /**\n * className applied to the wrapper element if one is used.\n */\n className?: string;\n\n /**\n * css width\n */\n displayWidth?: number | string;\n\n /**\n * css height\n */\n displayHeight?: number | string;\n\n /**\n * css min-width\n */\n displayMinWidth?: number | string;\n\n /**\n * css min-height\n */\n displayMinHeight?: number | string;\n\n /**\n * css max-width\n */\n displayMaxWidth?: number | string;\n\n /**\n * css max-height\n */\n displayMaxHeight?: number | string;\n\n /**\n * For variable quality formats like jpg, the quality from 0 to 100\n */\n quality?: number;\n\n /**\n * ImageLoader to use for loading different dimensions of the image.\n * If none specified, will not attempt to load different dimensions.\n */\n loader?: \"plasmic\" | ImageLoader;\n\n /**\n * Style applied to the wrapper element. objectFit and objectPosition\n * rules are applied to the img element.\n */\n style?: React.CSSProperties;\n\n /**\n * Ref for the img element. The normal <PlasmicImg ref={...} />\n * prop gives the root element instead, which may be the img element\n * or a wrapper element\n */\n imgRef?: React.Ref<HTMLImageElement>;\n}\n\nexport const PlasmicImg = React.forwardRef(function PlasmicImg(\n props: PlasmicImgProps,\n outerRef: React.Ref<HTMLElement>\n) {\n let {\n src,\n className,\n displayWidth,\n displayHeight,\n displayMinWidth,\n displayMinHeight,\n displayMaxWidth,\n displayMaxHeight,\n quality,\n loader,\n imgRef,\n style,\n loading,\n ...rest\n } = props;\n\n const imgProps = Object.assign({}, rest, {\n // Default loading to \"lazy\" if not specified (which is different from the\n // html img, which defaults to eager!)\n loading: loading ?? \"lazy\",\n });\n\n const { fullWidth, fullHeight, aspectRatio } = !src\n ? { fullWidth: undefined, fullHeight: undefined, aspectRatio: undefined }\n : typeof src === \"string\"\n ? getImageSizeData(\n getPixelLength(props.width),\n getPixelLength(props.height)\n )\n : src;\n const srcStr = src\n ? typeof src === \"string\"\n ? src\n : typeof src.src === \"string\"\n ? src.src\n : src.src.src\n : \"\";\n\n // Assume external image if either dimension is null and use usual <img>\n if (fullHeight == null || fullWidth == null) {\n return (\n <img\n src={srcStr}\n className={className}\n style={style}\n {...imgProps}\n loading={loading}\n ref={mergeRefs(imgRef, outerRef) as any}\n />\n );\n }\n\n if (\n isSvg(srcStr) &&\n (displayHeight == null || displayHeight === \"auto\") &&\n (displayWidth == null || displayWidth === \"auto\")\n ) {\n displayWidth = \"100%\";\n }\n\n let computedDisplayWidth = displayWidth;\n if (\n fullWidth &&\n fullHeight &&\n (!displayWidth || displayWidth === \"auto\") &&\n !!getPixelLength(displayHeight)\n ) {\n // If there's a pixel length specified for displayHeight but not displayWidth,\n // then we can derive the pixel length for displayWidth. Having an explicit\n // displayWidth makes this a fixed-size image, which makes it possible for us to\n // generate better markup!\n if (!isSvg(srcStr)) {\n // We shouldn't do it for SVGs though, because `fullWidth` and\n // `fullHeight` might have rounded values so the final\n // `displayWidth` could differ by 1px or so.\n computedDisplayWidth =\n (getPixelLength(displayHeight)! * fullWidth) / fullHeight;\n }\n }\n\n let spacerWidth = fullWidth;\n let spacerHeight = fullHeight;\n if (aspectRatio && isFinite(aspectRatio) && isSvg(srcStr)) {\n // For SVGs, fullWidth and fullHeight can be rounded values, which would\n // cause some discrepancy between the actual aspect ratio and the aspect\n // ratio from those values. So, for those cases, we set large width / height\n // values to get a more precise ratio from the spacer.\n spacerWidth = DEFAULT_SVG_WIDTH;\n spacerHeight = Math.round(spacerWidth / aspectRatio);\n }\n\n const { sizes, widthDescs } = getWidths(computedDisplayWidth, fullWidth, {\n minWidth: displayMinWidth,\n });\n const imageLoader = getImageLoader(loader);\n const spacerSvg = `<svg width=\"${spacerWidth}\" height=\"${spacerHeight}\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"/>`;\n const spacerSvgBase64 =\n // if btoa exists, use btoa, as it works in browser and in\n // cloudflare edge workers. For node, use Buffer.from().\n typeof globalThis.btoa === \"function\"\n ? globalThis.btoa(spacerSvg)\n : Buffer.from(spacerSvg).toString(\"base64\");\n\n let wrapperStyle: CSSProperties = { ...(style || {}) };\n let spacerStyle: CSSProperties = {\n ...pick(style || {}, \"objectFit\", \"objectPosition\"),\n };\n\n if (displayWidth != null && displayWidth !== \"auto\") {\n // If width is set, set it on the wrapper along with min/max width\n // and just use `width: 100%` on the spacer\n spacerStyle.width = \"100%\";\n // Rely on the styles set by `classname` on the wrapper:\n // wrapperStyle.width = displayWidth;\n // wrapperStyle.minWidth = displayMinWidth;\n // wrapperStyle.maxWidth = displayMaxWidth;\n } else {\n // Otherwise, we want auto sizing from the spacer, so set width there.\n //\n // But if we have min/max width, it should be set in the wrapper and it\n // can be percentage values (and we add corresponding min/max width to\n // 100% in the spacer). In general it ends up with the correct effect,\n // but some edge cases might make `min-width: 100%` shrink the image more\n // than it should.\n spacerStyle.width = displayWidth;\n wrapperStyle.width = \"auto\";\n if (displayMinWidth) {\n spacerStyle.minWidth = \"100%\";\n // Rely on min-width set by `classname` on the wrapper:\n // wrapperStyle.minWidth = displayMinWidth;\n }\n if (displayMaxWidth != null && displayMaxWidth !== \"none\") {\n spacerStyle.maxWidth = \"100%\";\n // Rely on max-width set by `classname` on the wrapper:\n // wrapperStyle.maxWidth = displayMaxWidth;\n }\n }\n\n if (displayHeight != null && displayHeight !== \"auto\") {\n spacerStyle.height = \"100%\";\n // wrapperStyle.height = displayHeight;\n // wrapperStyle.minHeight = displayMinHeight;\n // wrapperStyle.maxHeight = displayMaxHeight;\n } else {\n spacerStyle.height = displayHeight;\n wrapperStyle.height = \"auto\";\n if (displayMinHeight) {\n spacerStyle.minHeight = \"100%\";\n // wrapperStyle.minHeight = displayMinHeight;\n }\n if (displayMaxHeight != null && displayMaxHeight !== \"none\") {\n spacerStyle.maxHeight = \"100%\";\n // wrapperStyle.maxHeight = displayMaxHeight;\n }\n }\n\n return (\n <div\n className={classNames(className, \"__wab_img-wrapper\")}\n ref={outerRef as any}\n style={wrapperStyle}\n >\n <img\n alt=\"\"\n aria-hidden\n className=\"__wab_img-spacer-svg\"\n src={`data:image/svg+xml;base64,${spacerSvgBase64}`}\n style={spacerStyle}\n />\n {makePicture({\n imageLoader,\n widthDescs,\n sizes,\n src: srcStr,\n quality,\n ref: imgRef,\n style: style ? pick(style, \"objectFit\", \"objectPosition\") : undefined,\n imgProps,\n className: \"__wab_img\",\n })}\n </div>\n );\n});\n\nfunction makePicture(opts: {\n imageLoader?: ImageLoader;\n widthDescs: WidthDesc[];\n sizes?: string;\n src: string;\n quality?: number;\n style?: React.CSSProperties;\n className?: string;\n imgProps: ImgTagProps;\n ref?: React.Ref<HTMLImageElement>;\n}) {\n // If imageLoader is undefined, then this renders to just a normal\n // <img />. Else it will render to a <picture> with a <source> for\n // webp, and srcSet/sizes set according to width requirements.\n const {\n imageLoader,\n widthDescs,\n src,\n quality,\n style,\n className,\n sizes,\n imgProps,\n ref,\n } = opts;\n return (\n <picture className=\"__wab_picture\">\n {imageLoader && imageLoader.supportsUrl(src) && (\n <source\n type=\"image/webp\"\n srcSet={widthDescs\n .map(\n (wd) =>\n `${imageLoader.transformUrl({\n src,\n quality,\n width: wd.width,\n format: \"webp\",\n })} ${wd.desc}`\n )\n .join(\", \")}\n />\n )}\n <img\n {...imgProps}\n ref={ref}\n className={className}\n decoding=\"async\"\n src={\n imageLoader && imageLoader.supportsUrl(src)\n ? imageLoader.transformUrl({\n src,\n quality,\n width: widthDescs[widthDescs.length - 1].width,\n })\n : src\n }\n srcSet={\n imageLoader && imageLoader.supportsUrl(src)\n ? widthDescs\n .map(\n (wd) =>\n `${imageLoader.transformUrl({\n src,\n quality,\n width: wd.width,\n })} ${wd.desc}`\n )\n .join(\", \")\n : undefined\n }\n sizes={imageLoader && imageLoader.supportsUrl(src) ? sizes : undefined}\n style={{\n ...(style ? pick(style, \"objectFit\", \"objectPosition\") : {}),\n width: 0,\n height: 0,\n }}\n />\n </picture>\n );\n}\n\nconst DEFAULT_SVG_WIDTH = 10000;\n\nfunction isSvg(src: string) {\n return src.endsWith(\".svg\") || src.startsWith(\"data:image/svg\");\n}\n\ninterface WidthDesc {\n width?: number;\n desc: string;\n}\n\nfunction getClosestPresetSize(width: number, fullWidth: number) {\n const nextBiggerIndex =\n ALL_SIZES.findIndex((w) => w >= width) ?? ALL_SIZES.length - 1;\n const nextBigger = ALL_SIZES[nextBiggerIndex];\n if (nextBigger >= fullWidth) {\n // If the requested width is larger than the fullWidth,\n // we just use the original width instead. It's impossible\n // to make an image bigger than fullWidth!\n return undefined;\n } else if (\n nextBiggerIndex + 1 < ALL_SIZES.length &&\n fullWidth <= ALL_SIZES[nextBiggerIndex + 1]\n ) {\n // If the fullWidth is just between nextBigger and the one after that,\n // then also might as well just use the original size (so, width is 30,\n // nextBigger is 32, then we just use the original as long as fullWidth is\n // less than 48)\n return undefined;\n }\n\n return nextBigger;\n}\n\n/**\n * Computes the appropriate srcSet and sizes to use\n */\nfunction getWidths(\n width: number | string | undefined,\n fullWidth: number,\n extra?: { minWidth: string | number | undefined }\n): { sizes: string | undefined; widthDescs: WidthDesc[] } {\n const minWidth = extra?.minWidth;\n const pixelWidth = getPixelLength(width);\n const pixelMinWidth = getPixelLength(minWidth);\n if (pixelWidth != null && (!minWidth || pixelMinWidth != null)) {\n // If there's an exact width, then we just need to display it at 1x and 2x density\n return {\n widthDescs: [\n {\n width: getClosestPresetSize(\n Math.max(pixelWidth, pixelMinWidth ?? 0),\n fullWidth\n ),\n desc: \"1x\",\n },\n {\n width: getClosestPresetSize(\n Math.max(pixelWidth, pixelMinWidth ?? 0) * 2,\n fullWidth\n ),\n desc: \"2x\",\n },\n ],\n sizes: undefined,\n };\n }\n // Otherwise we don't know what sizes we'll end up, so we just cap it at\n // device width. TODO: do better!\n const usefulSizes = DEVICE_SIZES.filter(\n (size) => !fullWidth || size < fullWidth\n );\n if (!!fullWidth && usefulSizes.length === 0) {\n // image fullWidth is smaller than all device sizes. So all we can do\n // is offer 1x\n return {\n widthDescs: [\n {\n width: getClosestPresetSize(fullWidth, fullWidth),\n desc: \"1x\",\n },\n ],\n sizes: undefined,\n };\n }\n return {\n widthDescs: usefulSizes.map((size) => ({\n width: getClosestPresetSize(size, fullWidth),\n // If this is the last (buggest) useful width, but it is\n // still within the bounds set by DEVICE_SIZES, then just\n // use the original, unresized image. This means if we match\n // the largest size, we use unresized and best quality image.\n // We only do this, though, if fullWidth is \"reasonable\" --\n // smaller than the largest size we would consider.\n // i === usefulSizes.length - 1 &&\n // fullWidth < DEVICE_SIZES[DEVICE_SIZES.length - 1]\n // ? undefined\n // : size,\n desc: `${size}w`,\n })),\n sizes: \"100vw\",\n };\n}\n\nfunction getPixelLength(length: number | string | undefined) {\n if (length == null || length == \"\") {\n return undefined;\n }\n\n if (typeof length === \"number\") {\n return length;\n }\n\n const parsed = parseNumeric(length);\n if (parsed && (!parsed.units || parsed.units === \"px\")) {\n return parsed.num;\n }\n\n return undefined;\n}\n\nfunction parseNumeric(val: string) {\n // Parse strings like \"30\", \"30px\", \"30%\", \"30px /* blah blah */\"\n const res = val.match(\n /^\\s*(-?(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+))\\s*([a-z]*|%)\\s*(?:\\/\\*.*)?$/i\n );\n if (res == null) {\n return undefined;\n }\n const num = res[1];\n const units = res[2];\n return { num: +num, units };\n}\n\nfunction getImageSizeData(\n width: number | undefined,\n height: number | undefined\n) {\n const aspectRatio = width && height ? width / height : undefined;\n return {\n fullWidth: width,\n fullHeight: height,\n aspectRatio: aspectRatio && isFinite(aspectRatio) ? aspectRatio : undefined,\n };\n}\n\nfunction getImageLoader(loader: \"plasmic\" | ImageLoader | undefined) {\n if (loader == null) {\n return undefined;\n } else if (loader === \"plasmic\") {\n return PLASMIC_IMAGE_LOADER;\n } else {\n return loader;\n }\n}\n\nfunction isInternalKey(src: string) {\n return /^([a-f0-9]{32})\\..{1,16}$/i.test(src);\n}\n\nconst PLASMIC_IMAGE_LOADER: ImageLoader = {\n supportsUrl: (src) => {\n return (src.startsWith(\"http\") || isInternalKey(src)) && !isSvg(src);\n },\n transformUrl: (opts) => {\n const params = [\n `src=${encodeURIComponent(opts.src)}`,\n opts.width ? `w=${opts.width}` : undefined,\n `q=${opts.quality ?? 75}`,\n opts.format ? `f=${opts.format}` : undefined,\n ].filter((x) => !!x);\n return `${IMG_OPTIMIZER_HOST}/img-optimizer/v1/img?${params.join(\"&\")}`;\n },\n};\n","import { usePlasmicLinkMaybe } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // The usePlasmicLinkMaybe function may be undefined, if host is not up-to-date\n const Link = usePlasmicLinkMaybe?.() ?? PlasmicLinkInternal;\n if (Link === PlasmicLink || Link === PlasmicLinkInternal) {\n // Just in case, break the cycle\n return <PlasmicLinkInternal {...props} ref={ref} />;\n } else {\n // Don't pass component/platform props to non-PlasmicLinkInternal\n return <Link {...omit(props, \"component\", \"platform\")} ref={ref} />;\n }\n});\n\nexport const PlasmicLinkInternal = React.forwardRef(\n function PlasmicLinkInternal(props: any, ref: React.Ref<any>) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = props.href?.startsWith(\"#\");\n\n return React.createElement(\n props.component,\n {\n scroll: !isFragment,\n ...pick(props, ...nextjsProps),\n legacyBehavior: true,\n },\n <a\n {...omit(props, \"component\", \"platform\", ...nextjsProps)}\n ref={ref}\n />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n if (props.platform === \"tanstack\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n }\n);\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import {\n PlasmicTranslatorContext as HostPlasmicTranslatorContext,\n PlasmicI18NContextValue,\n PlasmicTranslator,\n usePlasmicTranslator as useHostPlasmicTranslator,\n} from \"@plasmicapp/host\";\nimport React from \"react\";\n\n// Make the refactor to host backwards compatible for loader\nexport const PlasmicTranslatorContext =\n HostPlasmicTranslatorContext ??\n React.createContext<PlasmicI18NContextValue | PlasmicTranslator | undefined>(\n undefined\n );\n\nexport const usePlasmicTranslator =\n useHostPlasmicTranslator ??\n (() => {\n const _t = React.useContext(PlasmicTranslatorContext);\n const translator = _t\n ? typeof _t === \"function\"\n ? _t\n : _t.translator\n : undefined;\n return translator;\n });\n\nexport interface TransProps {\n transKey?: string;\n children?: React.ReactNode;\n}\n\nexport function genTranslatableString(\n elt: React.ReactNode,\n opts?: {\n tagPrefix?: string;\n }\n) {\n const components: {\n [key: string]: React.ReactElement;\n } = {};\n let componentsCount = 0;\n\n const getText = (node: React.ReactNode): string => {\n if (!node) {\n return \"\";\n }\n if (\n typeof node === \"number\" ||\n typeof node === \"boolean\" ||\n typeof node === \"string\"\n ) {\n return node.toString();\n }\n if (typeof node !== \"object\") {\n return \"\";\n }\n if (Array.isArray(node) || isIterable(node)) {\n return Array.from(node)\n .map((child) => getText(child))\n .filter((child) => !!child)\n .join(\"\");\n }\n const nodeChildren: React.ReactNode =\n (hasKey(node, \"props\") &&\n hasKey(node.props, \"children\") &&\n (node.props.children as React.ReactNode | undefined)) ||\n (hasKey(node, \"children\") && node.children) ||\n [];\n const contents = `${React.Children.toArray(nodeChildren)\n .map((child) => getText(child))\n .filter((child) => !!child)\n .join(\"\")}`;\n if (React.isValidElement(node) && node.type === React.Fragment) {\n return contents;\n }\n const prefix = opts?.tagPrefix ?? \"\";\n const componentId = `${prefix}${componentsCount + 1}`;\n componentsCount++;\n components[componentId] = React.isValidElement(node)\n ? React.cloneElement(node as any, {\n key: componentId,\n children: undefined,\n })\n : (node as never);\n return `<${componentId}>${contents}</${componentId}>`;\n };\n\n const str = getText(elt);\n return {\n str,\n components,\n componentsCount,\n };\n}\n\nexport function Trans({ transKey, children }: TransProps) {\n const _t = React.useContext(PlasmicTranslatorContext);\n const translator = _t\n ? typeof _t === \"function\"\n ? _t\n : _t.translator\n : undefined;\n if (!translator) {\n warnNoTranslationFunctionAtMostOnce();\n return children;\n }\n\n const { str, components, componentsCount } = genTranslatableString(children, {\n tagPrefix: typeof _t === \"object\" ? _t.tagPrefix : undefined,\n });\n return translator(\n transKey ?? str,\n componentsCount > 0 ? { components } : undefined\n );\n}\n\nlet hasWarned = false;\nfunction warnNoTranslationFunctionAtMostOnce() {\n if (!hasWarned) {\n console.warn(\n \"Using Plasmic Translation but no translation function has been provided\"\n );\n hasWarned = true;\n }\n}\n\nfunction hasKey<K extends string>(v: any, key: K): v is Record<K, any> {\n return typeof v === \"object\" && v !== null && key in v;\n}\n\nfunction isIterable(val: any): val is Iterable<any> {\n return val != null && typeof val[Symbol.iterator] === \"function\";\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\nimport { Trans } from \"./translation\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (\n typeof content !== \"number\" &&\n (!content || (Array.isArray(content) && content.length === 0))\n ) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = (\n <span className=\"__wab_slot-string-wrapper ρsw\">{maybeString}</span>\n );\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return content as React.ReactElement | null;\n }\n\n return React.createElement(\n as || \"span\",\n mergeProps({ className: \"__wab_slot ρs\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(\n node: React.ReactNode\n): string | React.ReactElement | undefined {\n // Unwrap fragments\n if (React.isValidElement(node)) {\n // Fragment doesn't render DOM elements\n if (node.type === React.Fragment) {\n return maybeAsString(node.props.children);\n } else if (node.type === Trans) {\n // Trans also doesn't render DOM elements. But we don't want to just render\n // its content string, because we want to keep the <Trans/> for the localization.\n // So we render the same node, to be wrapped into __wab_slot-string-wrapper.\n return node;\n }\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (typeof node === \"number\") {\n return `${node}`;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import get from \"dlv\";\nimport * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { $State } from \"../states\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n): boolean {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container ρfc\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (\n !override ||\n (typeof override === \"object\" && Object.keys(override).length === 0)\n ) {\n return createElementWithChildren(\n defaultRoot,\n defaultProps,\n defaultProps.children\n );\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0\n ? {}\n : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nexport function mergeVariantsWithStates(\n variants: Variants,\n $state: $State,\n linkedStates: {\n variantGroup: string;\n statePath: (string | number)[];\n }[]\n): Variants {\n return {\n ...variants,\n ...Object.fromEntries(\n linkedStates.map(({ variantGroup, statePath }) => [\n variantGroup,\n get($state, statePath),\n ])\n ),\n };\n}\n\nfunction mergeArgs<A extends Args>(\n a1: Partial<A> | undefined,\n a2: Partial<A> | undefined\n): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","const isDefaultValue = (val: unknown) =>\n val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\n\ntype ActiveGlobalVariants = string | string[] | undefined;\nexport type GlobalVariants = { [gv: string]: ActiveGlobalVariants };\nexport type UseGlobalVariants = () => GlobalVariants;\n\n/**\n * Usage:\n * ```\n * // plasmic.ts\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n *\n * export const useGlobalVariants = createUseGlobalVariants({\n * platform: usePlatform,\n * theme: useTheme,\n * });\n *\n * // PlasmicComponent.tsx\n * import { useGlobalVariants } from \"./plasmic_project\";\n *\n * export function PlasmicComponent() {\n * // ...\n * const globalVariants = useGlobalVariants();\n * // ...\n * }\n * ```\n */\nexport function createUseGlobalVariants<\n T extends { [gv: string]: () => ActiveGlobalVariants }\n>(globalVariantHooks: T): UseGlobalVariants {\n return () => {\n return ensureGlobalVariants(\n Object.fromEntries(\n Object.entries(globalVariantHooks).map<[string, ActiveGlobalVariants]>(\n ([globalVariant, useHook]) => [globalVariant, useHook()]\n )\n )\n );\n };\n}\n\n/**\n * @deprecated - new generated code should use `useGlobalVariants` instead\n *\n * Usage:\n * ```\n * // PlasmicComponent.tsx\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n *\n * export function PlasmicComponent() {\n * // ...\n * const globalVariants = ensureGlobalVariants({\n * platform: usePlatform(),\n * theme: useTheme(),\n * });\n * // ...\n * }\n * ```\n */\nexport function ensureGlobalVariants<T extends GlobalVariants>(\n globalVariants: T\n): GlobalVariants {\n Object.entries(globalVariants)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariants as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariants;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import {\n PlasmicDataSourceContextProvider,\n PlasmicDataSourceContextValue,\n} from \"@plasmicapp/data-sources-context\";\nimport {\n DataProvider,\n PlasmicI18NContextValue,\n PlasmicLinkProvider,\n PlasmicTranslator,\n} from \"@plasmicapp/host\";\nimport { SSRProvider, useIsSSR as useAriaIsSSR } from \"@react-aria/ssr\";\nimport * as React from \"react\";\nimport { PlasmicHeadContext } from \"./PlasmicHead\";\nimport { PlasmicLinkInternal } from \"./PlasmicLink\";\nimport { PlasmicTranslatorContext } from \"./translation\";\nexport {\n PlasmicDataSourceContextProvider,\n useCurrentUser,\n} from \"@plasmicapp/data-sources-context\";\n// import { PlasmicLink } from \"./PlasmicLink\";\n\nexport interface PlasmicRootContextValue {\n platform?: \"nextjs\" | \"gatsby\";\n}\n\nconst PlasmicRootContext = React.createContext<\n PlasmicRootContextValue | undefined\n>(undefined);\n\nexport interface PlasmicRootProviderProps\n extends PlasmicDataSourceContextValue {\n platform?: \"nextjs\" | \"gatsby\";\n children?: React.ReactNode;\n i18n?: PlasmicI18NContextValue;\n /**\n * @deprecated use i18n.translator instead\n */\n translator?: PlasmicTranslator;\n Head?: React.ComponentType<any>;\n Link?: React.ComponentType<any>;\n disableLoadingBoundary?: boolean;\n suspenseFallback?: React.ReactNode;\n}\n\nexport function PlasmicRootProvider(props: PlasmicRootProviderProps) {\n const {\n platform,\n children,\n userAuthToken,\n isUserLoading,\n authRedirectUri,\n user,\n disableLoadingBoundary,\n suspenseFallback,\n } = props;\n const context = React.useMemo(\n () => ({\n platform,\n }),\n [platform]\n );\n const dataSourceContextValue = React.useMemo(\n () => ({\n userAuthToken,\n user,\n isUserLoading,\n authRedirectUri,\n }),\n [userAuthToken, isUserLoading, user, authRedirectUri]\n );\n const reactMajorVersion = +React.version.split(\".\")[0];\n\n return (\n <MaybeWrap\n cond={!disableLoadingBoundary && reactMajorVersion >= 18}\n wrapper={(children_) => (\n <DataProvider\n name=\"plasmicInternalEnableLoadingBoundary\"\n hidden\n data={true}\n >\n <React.Suspense fallback={suspenseFallback ?? \"Loading...\"}>\n {children_}\n </React.Suspense>\n </DataProvider>\n )}\n >\n <PlasmicRootContext.Provider value={context}>\n <MaybeWrap\n cond={reactMajorVersion < 18}\n wrapper={(children_) => <SSRProvider>{children_}</SSRProvider>}\n >\n <PlasmicDataSourceContextProvider value={dataSourceContextValue}>\n <PlasmicTranslatorContext.Provider\n value={props.i18n ?? props.translator}\n >\n <PlasmicHeadContext.Provider value={props.Head}>\n <SafePlasmicLinkProvider\n Link={props.Link ?? PlasmicLinkInternal}\n >\n {children}\n </SafePlasmicLinkProvider>\n </PlasmicHeadContext.Provider>\n </PlasmicTranslatorContext.Provider>\n </PlasmicDataSourceContextProvider>\n </MaybeWrap>\n </PlasmicRootContext.Provider>\n </MaybeWrap>\n );\n}\n\n/**\n * A PlasmicLinkProvider that anticipates PlasmicLinkProvider may not exist yet from\n * @plasmicapp/host if the user is using an older version\n */\nfunction SafePlasmicLinkProvider(\n props: React.ComponentProps<typeof PlasmicLinkProvider>\n) {\n if (PlasmicLinkProvider) {\n return <PlasmicLinkProvider {...props} />;\n } else {\n return <>{props.children}</>;\n }\n}\n\nexport const useIsSSR = useAriaIsSSR;\n\nexport function useHasPlasmicRoot() {\n return !!React.useContext(PlasmicRootContext);\n}\n\nlet hasWarnedSSR = false;\n/**\n * Warns the user if PlasmicRootProvider is not used\n */\nexport function useEnsureSSRProvider() {\n const hasRoot = useHasPlasmicRoot();\n if (hasRoot || hasWarnedSSR || process.env.NODE_ENV !== \"development\") {\n return;\n }\n\n hasWarnedSSR = true;\n console.warn(\n `Plasmic: To ensure your components work correctly with server-side rendering, please use PlasmicRootProvider at the root of your application. See https://docs.plasmic.app/learn/ssr`\n );\n}\n\nfunction MaybeWrap(props: {\n children: React.ReactElement;\n cond: boolean;\n wrapper: (children: React.ReactElement) => React.ReactElement;\n}) {\n return props.cond ? props.wrapper(props.children) : props.children;\n}\n","import React from \"react\";\nimport { hasVariant } from \"./elements\";\nimport { GlobalVariants, UseGlobalVariants } from \"./global-variants\";\n\ntype ClassName = string;\n\n/**\n * Context that enables a project's style tokens to be propagated across projects.\n *\n * The value is an array of class names, including the class name for the base\n * variant and active global variants. The class names should be applied to all\n * Plasmic content.\n */\nconst StyleTokensContext = React.createContext<ClassName[] | undefined>(\n undefined\n);\n\n/**\n * All style token data (except overrides) for this project.\n * This data is used as the default context value.\n *\n * We don't include the overrides because the Provider (that wraps the components) decides which project's overrides to apply.\n *\n * Usage:\n *\n * ```\n * // PlasmicStyleTokensProvider.ts\n * import { usePlatform } from \"./PlasmicGlobalVariant__Platform\";\n * import { useTheme } from \"./PlasmicGlobalVariant__Theme\";\n * import projectcss from \"./plasmic.module.css\";\n * import depcss from \"../dep/plasmic.module.css\";\n *\n * const data: ProjectStyleTokenData = {\n * base: `${projectcss.plasmic_tokens} ${depcss.plasmic_tokens}`,\n * varianted: [\n * {\n * className: projectcss.global_platform_windows,\n * groupName: \"platform\",\n * variant: \"windows\"\n * },\n * {\n * className: projectcss.global_platform_osx,\n * groupName: \"platform\",\n * variant: \"osx\"\n * },\n * {\n * className: projectcss.global_theme_light,\n * groupName: \"theme\",\n * variant: \"light\"\n * },\n * {\n * className: projectcss.global_theme_dark,\n * groupName: \"theme\",\n * variant: \"dark\"\n * },\n * ],\n * };\n * ```\n */\ninterface ProjectStyleTokenData {\n // An older version of codegen generated `base: projectcss.plasmic_tokens`\n // We make `base` optional since projectcss might not have plasmic_tokens\n base?: ClassName;\n varianted: {\n className: ClassName;\n groupName: string;\n variant: string;\n }[];\n}\n\ntype UseStyleTokens = () => ClassName[];\n\n/**\n * Creates a useStyleTokens hook for a given project that returns class names for the given project's tokens plus token overrides from StyleTokensProvider if present.\n *\n * Usage:\n * ```\n * // PlasmicStyleTokensProvider.ts\n * export const useStyleTokens = createUseStyleTokens(\n * data,\n * useGlobalVariants,\n * );\n *\n * // PlasmicPage.tsx\n * import { useStyleTokens } from \"./plasmic_project\";\n *\n * export function PlasmicPage() {\n * const styleTokensClassNames = useStyleTokens();\n * return (\n * <div className={classNames(\n * projectcss.all,\n * projectcss.root_reset,\n * projectcss.plasmic_default_styles,\n * projectcss.plasmic_mixins,\n * styleTokensClassNames,\n * )}>\n * <h1 className={projectcss.all}>\n * Hello, world!\n * </h1>\n * </div>\n * );\n * }\n * ```\n */\nexport function createUseStyleTokens(\n tokenData: ProjectStyleTokenData,\n useGlobalVariants: UseGlobalVariants\n): UseStyleTokens {\n return () => {\n const ctxClassNames = React.useContext(StyleTokensContext);\n const globalVariants = useGlobalVariants();\n return React.useMemo(() => {\n // Use a set to deduplicate\n return Array.from(\n new Set([\n ...(ctxClassNames ?? []),\n ...activeTokensClassNames(tokenData, globalVariants),\n ])\n );\n }, [ctxClassNames, globalVariants]);\n };\n}\n\n/**\n * Creates a StyleTokensProvider for a given project to allow propagating its overrides to components of other projects.\n *\n * To ensure all tokens in the overrides class name resolve properly, the base and varianted class names must be included.\n *\n * Usage:\n * ```\n * // PlasmicStyleTokensProvider.ts\n * export const StyleTokensProvider = createStyleTokensProvider(\n * { base: `${projectcss.plasmic_tokens_override} ${data.base}`, varianted: data.varianted },\n * useGlobalVariants,\n * );\n *\n * // Page.tsx\n * import { StyleTokensProvider } from \"./plasmic_project\";\n *\n * export default function Page() {\n * return (\n * <PlatformContext.Provider value=\"osx\">\n * <ThemeContext.Provider value=\"dark\">\n * <StyleTokensProvider>\n * <PlasmicPage />\n * </StyleTokensProvider>\n * </ThemeContext.Provider>\n * </PlatformContext.Provider>\n * );\n * }\n * ```\n */\nexport function createStyleTokensProvider(\n tokenData: ProjectStyleTokenData,\n useGlobalVariants: UseGlobalVariants\n): React.ComponentType<React.PropsWithChildren> {\n return (props: React.PropsWithChildren) => {\n const globalVariants = useGlobalVariants();\n const tokens = React.useMemo(() => {\n return activeTokensClassNames(tokenData, globalVariants);\n }, [globalVariants, tokenData]);\n return (\n <StyleTokensContext.Provider value={tokens}>\n {props.children}\n </StyleTokensContext.Provider>\n );\n };\n}\n\n/**\n * Gets the class names for the base tokens and the varianted tokens for active\n * global variants.\n */\nfunction activeTokensClassNames(\n tokenData: ProjectStyleTokenData,\n globalVariants: GlobalVariants\n): ClassName[] {\n const varianted = tokenData.varianted\n .filter(({ groupName, variant }) =>\n hasVariant(globalVariants, groupName, variant)\n )\n .map(({ className }) => className);\n return [...(tokenData.base?.split(\" \") ?? []), ...varianted];\n}\n","import {\n FocusRingAria,\n useFocusRing as useAriaFocusRing,\n} from \"@react-aria/focus\";\nimport {\n HoverResult,\n PressResult,\n useHover as useAriaHover,\n usePress as useAriaPress,\n} from \"@react-aria/interactions\";\n\nimport * as React from \"react\";\n\ntype FocusHookResult = [boolean, FocusRingAria[\"focusProps\"]];\ntype HoverHookResult = [boolean, HoverResult[\"hoverProps\"]];\ntype PressHookResult = [boolean, PressResult[\"pressProps\"]];\n\nfunction useFocused(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }): FocusHookResult {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: {\n isTextInput?: boolean;\n}): FocusHookResult {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover(): HoverHookResult {\n const { isHovered, hoverProps } = useAriaHover({});\n return [isHovered, hoverProps];\n}\n\nfunction usePressed(): PressHookResult {\n const { isPressed, pressProps } = useAriaPress({\n onPress: (e) => e.continuePropagation(),\n onPressStart: (e) => e.continuePropagation(),\n onPressEnd: (e) => e.continuePropagation(),\n onPressUp: (e) => e.continuePropagation(),\n });\n return [isPressed, pressProps];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","import { StateSpecNode } from \"./graph\";\n\nexport type InitFuncEnv = {\n $props: Record<string, any>;\n $state: Record<string, any>;\n $queries?: Record<string, any>;\n $ctx?: Record<string, any>;\n $refs?: Record<string, any>;\n};\n\nexport type DollarStateEnv = Omit<InitFuncEnv, \"$state\">;\n\nexport type NoUndefinedField<T> = { [P in keyof T]-?: T[P] };\n\nexport type InitFunc<T> = (env: NoUndefinedField<InitFuncEnv>) => T;\n\nexport type DeprecatedInitFunc<T> = (\n $props: Record<string, any>,\n $state: $State,\n $ctx: Record<string, any>\n) => T;\n\nexport type ObjectPath = (string | number)[];\n\nexport interface $StateSpec<T> {\n // path of the state, like `count` or `list.selectedIndex`\n path: string;\n // if initial value is defined by a js expression\n initFunc?: InitFunc<T>;\n // if initial value is a hard-coded value\n initVal?: T;\n // Whether this state is private, readonly, or writable in\n // this component\n type: \"private\" | \"readonly\" | \"writable\";\n\n // If writable, there should be a valueProp that maps props[valueProp]\n // to the value of the state\n valueProp?: string;\n\n // If writable or readonly, there should be an onChangeProp where\n // props[onChangeProp] is invoked whenever the value changes\n onChangeProp?: string;\n\n isImmutable?: boolean;\n\n variableType:\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"array\"\n | \"object\"\n | \"variant\"\n | \"dateString\"\n | \"dateRangeStrings\";\n\n // Hash used to re-create the state\n // This is only used in canvas where the state specs are dynamic\n initFuncHash?: string;\n\n refName?: string;\n onMutate?: (stateValue: T, $ref: any) => void;\n}\n\nexport interface $State {\n [key: string]: any;\n registerInitFunc?: (\n path: string,\n f: InitFunc<any>,\n repetitonIndex?: number[],\n overrideEnv?: DollarStateEnv\n ) => any;\n}\n\nexport const ARRAY_SYMBOL = Symbol(\"[]\");\nexport const PLASMIC_STATE_PROXY_SYMBOL = Symbol(\"plasmic.state.proxy\");\nexport const UNINITIALIZED = Symbol(\"plasmic.unitialized\");\n\nexport interface Internal$StateSpec<T> extends $StateSpec<T> {\n isRepeated: boolean;\n pathObj: (string | symbol)[];\n}\n\nexport interface Internal$StateInstance {\n path: ObjectPath; // [\"counter\", 0, \"count\"]\n specKey: string;\n}\n\nexport interface StateCell<T> {\n initialValue?: T | symbol;\n node: StateSpecNode<any>;\n path: ObjectPath;\n initFunc?: InitFunc<T>;\n listeners: (() => void)[];\n initFuncHash: string;\n overrideEnv?: NoUndefinedField<DollarStateEnv>;\n}\n\nexport interface Internal$State {\n registrationsQueue: {\n node: StateSpecNode<any>;\n path: ObjectPath;\n f: InitFunc<any>;\n overrideEnv?: NoUndefinedField<DollarStateEnv>;\n }[];\n stateValues: Record<string, any>;\n env: NoUndefinedField<DollarStateEnv>;\n rootSpecTree: StateSpecNode<any>;\n specTreeLeaves: StateSpecNode<any>[];\n specs: $StateSpec<any>[];\n stateInitializationEnv: {\n stack: string[];\n visited: Set<string>;\n };\n initializedLeafPaths: Set<string>;\n}\n","export class CustomError extends Error {\n name: string;\n constructor(msg?: string) {\n super(msg);\n this.name = this.constructor.name;\n ({ message: this.message, stack: this.stack } = this);\n }\n}\n\nexport class CyclicStatesReferencesError extends Error {\n constructor(stateAccessCycle: string[]) {\n super(\n \"Cyclic reference found in state initialization: \" +\n stateAccessCycle.join(\" -> \")\n );\n }\n}\n\nexport class InvalidOperation extends Error {\n constructor(msg: string) {\n super(msg);\n }\n}\n\nexport class UnknownError extends Error {\n constructor(msg: string) {\n super(msg);\n }\n}\n","import { isNum, shallowEqual } from \"./helpers\";\nimport {\n $StateSpec,\n ARRAY_SYMBOL,\n Internal$StateSpec,\n ObjectPath,\n} from \"./types\";\n\nexport class StateSpecNode<T> {\n private _specs: Internal$StateSpec<T>[];\n private _edges: Map<string | symbol, StateSpecNode<any>>;\n\n constructor(specs: Internal$StateSpec<T>[]) {\n this._specs = specs;\n this._edges = new Map();\n }\n\n setSpecs(specs: Internal$StateSpec<T>[]) {\n this._specs = specs;\n }\n\n edges() {\n return this._edges;\n }\n\n hasEdge(key: string | symbol) {\n return this._edges.has(key);\n }\n\n addEdge(key: string | symbol, node: StateSpecNode<any>) {\n this._edges.set(key, node);\n }\n\n clearEdges() {\n this._edges = new Map();\n }\n\n children() {\n return this._edges.values();\n }\n\n makeTransition(key: string | symbol | number) {\n key = isNum(key) ? ARRAY_SYMBOL : key;\n return this._edges.get(key);\n }\n\n isLeaf() {\n return this._edges.size === 0 && this.getAllSpecs().length > 0;\n }\n\n hasArrayTransition() {\n return this._edges.has(ARRAY_SYMBOL);\n }\n\n getSpec() {\n return this._specs[0];\n }\n\n getAllSpecs() {\n return this._specs;\n }\n}\n\nexport const transformPathStringToObj = (str: string) => {\n const splitStatePathPart = (state: string): (string | symbol)[] =>\n state.endsWith(\"[]\")\n ? [...splitStatePathPart(state.slice(0, -2)), ARRAY_SYMBOL]\n : [state];\n return str.split(\".\").flatMap(splitStatePathPart);\n};\n\nexport function buildTree(specs: $StateSpec<any>[]) {\n const internalSpec = specs.map(\n (spec) =>\n ({\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n } as Internal$StateSpec<any>)\n );\n\n const rec = (currentPath: (string | symbol)[]): StateSpecNode<any> => {\n const node = new StateSpecNode(\n internalSpec.filter((spec) =>\n shallowEqual(currentPath, spec.pathObj.slice(0, currentPath.length))\n )!\n );\n node.getAllSpecs().forEach((spec) => {\n if (spec.pathObj.length > currentPath.length) {\n const nextKey = spec.pathObj[currentPath.length];\n if (!node.hasEdge(nextKey)) {\n node.addEdge(nextKey, rec([...currentPath, nextKey]));\n }\n }\n });\n return node;\n };\n\n return rec([]);\n}\n\nexport function updateTree(root: StateSpecNode<any>, specs: $StateSpec<any>[]) {\n const internalSpec = specs.map(\n (spec) =>\n ({\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n } as Internal$StateSpec<any>)\n );\n\n const rec = (\n oldNode: StateSpecNode<any> | undefined,\n currentPath: (string | symbol)[]\n ): StateSpecNode<any> => {\n const nodeSpecs = internalSpec.filter((spec) =>\n shallowEqual(currentPath, spec.pathObj.slice(0, currentPath.length))\n )!;\n const node = oldNode ?? new StateSpecNode(nodeSpecs);\n node.setSpecs(nodeSpecs);\n const oldEdges = oldNode?.edges();\n node.clearEdges();\n node.getAllSpecs().forEach((spec) => {\n if (spec.pathObj.length > currentPath.length) {\n const nextKey = spec.pathObj[currentPath.length];\n if (!node.hasEdge(nextKey)) {\n node.addEdge(\n nextKey,\n rec(oldEdges?.get(nextKey), [...currentPath, nextKey])\n );\n }\n }\n });\n return node;\n };\n\n return rec(root, []);\n}\n\nexport function getSpecTreeLeaves(root: StateSpecNode<any>) {\n const leaves: StateSpecNode<any>[] = [];\n const rec = (node: StateSpecNode<any>) => {\n for (const child of node.children()) {\n rec(child);\n }\n if (node.isLeaf() && node.getAllSpecs().length > 0) {\n leaves.push(node);\n }\n };\n rec(root);\n return leaves;\n}\n\nexport function findStateCell(\n root: StateSpecNode<any>,\n pathStr: string,\n repetitionIndex?: number[]\n) {\n const realPath: ObjectPath = [];\n const pathObj = transformPathStringToObj(pathStr);\n let currRepIndex = 0;\n for (const part of pathObj) {\n if (typeof part === \"symbol\") {\n if (\n !root.hasArrayTransition() ||\n !repetitionIndex ||\n currRepIndex > repetitionIndex.length\n ) {\n throw new Error(\n `transition not found: pathStr ${pathStr} part ${\n typeof part === \"symbol\" ? \"[]\" : part\n }`\n );\n }\n realPath.push(repetitionIndex[currRepIndex++]);\n root = root.makeTransition(ARRAY_SYMBOL)!;\n } else {\n if (!root.hasEdge(part)) {\n throw new Error(\n `transition not found: pathStr ${pathStr} part ${\n typeof part === \"symbol\" ? \"[]\" : part\n }`\n );\n }\n realPath.push(part);\n root = root.makeTransition(part)!;\n }\n }\n return {\n node: root,\n realPath,\n };\n}\n","import clone from \"clone\";\nimport get from \"dlv\";\nimport React from \"react\";\nimport {\n proxy as createValtioProxy,\n ref as createValtioRef,\n getVersion as isValtioProxy,\n subscribe,\n useSnapshot,\n} from \"valtio\";\nimport { ensure } from \"../common\";\nimport {\n CyclicStatesReferencesError,\n InvalidOperation,\n UnknownError,\n} from \"./errors\";\nimport {\n StateSpecNode,\n buildTree,\n findStateCell,\n getSpecTreeLeaves,\n updateTree,\n} from \"./graph\";\nimport {\n arrayEq,\n deepEqual,\n getStateCells,\n set,\n useIsomorphicLayoutEffect,\n} from \"./helpers\";\nimport {\n $State,\n $StateSpec,\n DeprecatedInitFunc,\n DollarStateEnv,\n InitFunc,\n InitFuncEnv,\n Internal$State,\n NoUndefinedField,\n ObjectPath,\n PLASMIC_STATE_PROXY_SYMBOL,\n StateCell,\n UNINITIALIZED,\n} from \"./types\";\nimport defer = setTimeout;\n\nfunction isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\nfunction canProxy(value: any) {\n return typeof value === \"object\" && value != null;\n}\n\nexport const proxyObjToStateCell = new WeakMap<\n object,\n Record<string | number | symbol, StateCell<any>>\n>();\nexport const valtioSubscriptions = new WeakMap<\n object,\n ReturnType<typeof subscribe>[]\n>();\n\nfunction ensureStateCell(\n target: any,\n property: string | number | symbol,\n path: ObjectPath,\n node: StateSpecNode<any>\n) {\n if (!proxyObjToStateCell.has(target)) {\n proxyObjToStateCell.set(target, {});\n }\n const stateCell = proxyObjToStateCell.get(target)!;\n if (!(property in stateCell)) {\n stateCell[property as any] = {\n listeners: [],\n initialValue: UNINITIALIZED,\n path,\n node,\n initFunc: node.getSpec().initFunc,\n initFuncHash: node.getSpec().initFuncHash ?? \"\",\n };\n }\n return stateCell[property as any];\n}\n\nfunction getStateCell(target: any, property: string | number | symbol) {\n return proxyObjToStateCell.get(target)?.[property as any];\n}\n\nexport function tryGetStateCellFrom$StateRoot(\n $state: $State,\n path: ObjectPath\n) {\n if (path.length === 0) {\n throw new UnknownError(\"expected a path with length greater than 0\");\n }\n const target = get($state, path.slice(0, -1));\n get(target, path.slice(-1)); // create state cell;\n return getStateCell(target, path.slice(-1)[0]);\n}\n\nexport function getStateCellFrom$StateRoot($state: $State, path: ObjectPath) {\n return ensure(tryGetStateCellFrom$StateRoot($state, path));\n}\n\nexport function unsubscribeToValtio(\n $$state: Internal$State,\n statePath: ObjectPath\n) {\n const oldValue = get($$state.stateValues, statePath);\n if (isValtioProxy(oldValue)) {\n valtioSubscriptions.get(oldValue)?.forEach((f) => f());\n valtioSubscriptions.delete(oldValue);\n }\n}\n\nexport function subscribeToValtio(\n $$state: Internal$State,\n statePath: ObjectPath,\n node: StateSpecNode<any>\n) {\n const spec = node.getSpec();\n const maybeValtioProxy = spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : get($$state.stateValues, statePath);\n if (\n isValtioProxy(maybeValtioProxy) &&\n (spec.onChangeProp || (spec.onMutate && node.isLeaf()))\n ) {\n const unsub = subscribe(maybeValtioProxy, () => {\n if (spec.onMutate && node.isLeaf()) {\n spec.onMutate(\n maybeValtioProxy,\n spec.refName ? $$state.env.$refs[spec.refName] : undefined\n );\n }\n $$state.env.$props[spec.onChangeProp!]?.(\n spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : get($$state.stateValues, statePath)\n );\n });\n if (!valtioSubscriptions.has(maybeValtioProxy)) {\n valtioSubscriptions.set(maybeValtioProxy, []);\n }\n ensure(valtioSubscriptions.get(maybeValtioProxy)).push(unsub);\n }\n}\n\nfunction initializeStateValue(\n $$state: Internal$State,\n initialStateCell: StateCell<any>,\n proxyRoot: any\n) {\n const initialStateName = initialStateCell.node.getSpec().path;\n const stateAccess: Set<{\n stateCell: StateCell<any>;\n }> = new Set();\n $$state.stateInitializationEnv.visited.add(initialStateName);\n $$state.stateInitializationEnv.stack.push(initialStateName);\n const $state = create$StateProxy($$state, (internalStateCell) => ({\n get() {\n const spec = internalStateCell.node.getSpec();\n if ($$state.stateInitializationEnv.visited.has(spec.path)) {\n // cyclic reference found\n const stateAccessCycle: string[] = [spec.path];\n while ($$state.stateInitializationEnv.stack.length > 0) {\n const curr = $$state.stateInitializationEnv.stack.pop();\n if (!curr) {\n break;\n }\n stateAccessCycle.push(curr);\n if (curr === spec.path) {\n throw new CyclicStatesReferencesError(stateAccessCycle);\n }\n }\n throw new UnknownError(\"Internal error: cycle not found\");\n }\n\n const stateCell = getStateCellFrom$StateRoot(\n proxyRoot,\n internalStateCell.path\n );\n stateAccess.add({ stateCell });\n if (spec.valueProp) {\n return $$state.env.$props[spec.valueProp];\n } else if (spec.initFunc && stateCell.initialValue === UNINITIALIZED) {\n return initializeStateValue($$state, stateCell, proxyRoot);\n }\n return get(proxyRoot, stateCell.path);\n },\n set() {\n throw new InvalidOperation(\n `Cannot update state values during initialization`\n );\n },\n }));\n\n stateAccess.forEach(({ stateCell }) => {\n stateCell.listeners.push(() => {\n const newValue = invokeInitFuncBackwardsCompatible(\n initialStateCell.node.getSpec().initFunc!,\n {\n $state,\n ...(initialStateCell.overrideEnv ?? $$state.env),\n }\n );\n set(proxyRoot, initialStateCell.path, newValue);\n });\n });\n\n const initialValue = invokeInitFuncBackwardsCompatible(\n initialStateCell.initFunc!,\n {\n $state,\n ...(initialStateCell.overrideEnv ?? $$state.env),\n }\n );\n const initialSpec = initialStateCell.node.getSpec();\n\n // Try to clone initialValue. It can fail if it's a PlasmicUndefinedDataProxy\n // and we still want to clear some states and return the initialValue.\n try {\n const clonedValue = clone(initialValue);\n initialStateCell.initialValue = clonedValue;\n\n const value = initialSpec.isImmutable\n ? mkUntrackedValue(initialValue)\n : clonedValue;\n set(proxyRoot, initialStateCell.path, value);\n } catch {\n // Setting the state to undefined to make sure it gets re-initialized\n // in case it changes values.\n initialStateCell.initialValue = undefined;\n set(proxyRoot, initialStateCell.path, undefined);\n }\n\n $$state.stateInitializationEnv.visited.delete(initialStateName);\n $$state.stateInitializationEnv.stack.pop();\n\n return initialValue;\n}\n\nfunction create$StateProxy(\n $$state: Internal$State,\n leafHandlers: (stateCell: StateCell<any>) => ProxyHandler<any>\n) {\n let proxyRoot: any;\n const rec = (currPath: ObjectPath, currNode: StateSpecNode<any>) => {\n const getNextPath = (property: string | number | symbol) => [\n ...currPath,\n isNum(property) ? +property : (property as string),\n ];\n const spec = currNode.getSpec();\n const handlers: ProxyHandler<any> = {\n deleteProperty(target, property) {\n if (\n !currNode.isLeaf() &&\n !currNode.hasArrayTransition() &&\n !isNum(property)\n ) {\n throw new InvalidOperation(\n \"Can't delete a property in the middle of the state spec\"\n );\n }\n delete get($$state.stateValues, currPath)[property];\n if (spec.onChangeProp) {\n //we are always in a leaf, since we only have two cases:\n // 1 - delete properties outside the state tree\n // 2 - delete indices in repeated implicit states, but these can't be exposed, so they don't have onChangeProp\n $$state.env.$props[spec.onChangeProp]?.(\n get(proxyRoot, currPath.slice(spec.pathObj.length))\n );\n }\n return Reflect.deleteProperty(target, property);\n },\n get(target, property, receiver) {\n if (property === PLASMIC_STATE_PROXY_SYMBOL) {\n return {\n node: currNode,\n path: currPath,\n };\n }\n const nextPath = getNextPath(property);\n\n const nextNode = currNode.makeTransition(property);\n if (nextNode?.isLeaf()) {\n return leafHandlers(\n ensureStateCell(receiver, property, nextPath, nextNode)\n ).get?.(target, property, receiver);\n } else if (nextNode && !(property in target)) {\n target[property] = rec(nextPath, nextNode);\n }\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n const nextPath = getNextPath(property);\n const nextNode = currNode.makeTransition(property);\n const nextSpec = nextNode?.getSpec();\n\n if (\n (property === \"registerInitFunc\" ||\n property === \"eagerInitializeStates\") &&\n currPath.length === 0\n ) {\n return Reflect.set(target, property, value, receiver);\n }\n if (!nextNode && currNode.hasArrayTransition()) {\n set($$state.stateValues, nextPath, value);\n //array can set his own properties such as length, map, ...\n return Reflect.set(target, property, value, receiver);\n }\n if (nextNode?.isLeaf()) {\n leafHandlers(\n ensureStateCell(receiver, property, nextPath, nextNode)\n ).set?.(target, property, value, receiver);\n Reflect.set(target, property, value, receiver);\n if (nextSpec?.onChangeProp) {\n const pathKey = JSON.stringify(nextPath);\n const isInitOnChange =\n // If we are dealing with a valueProp it means that this state cell value is provided by the parent\n // and we don't need to consider initialization calls for it.\n !nextSpec.valueProp && !$$state.initializedLeafPaths.has(pathKey);\n\n // We need to call the onChangeProp during initialization process so that the parent\n // state can be updated with the correct value. We will provide an additional parameter\n // to the onChangeProp function to indicate that the call is made during initialization.\n $$state.env.$props[nextSpec.onChangeProp]?.(value, {\n _plasmic_state_init_: isInitOnChange,\n });\n\n if (isInitOnChange) {\n $$state.initializedLeafPaths.add(pathKey);\n }\n }\n }\n if (!nextNode) {\n // can't set an unknown field in $state\n return false;\n }\n if (canProxy(value) && !nextNode.isLeaf()) {\n target[property] = rec(nextPath, nextNode);\n Reflect.ownKeys(value).forEach((key) => {\n target[property][key] = value[key];\n });\n } else if (!nextNode.isLeaf()) {\n throw new InvalidOperation(\n \"inserting a primitive value into a non-leaf\"\n );\n }\n const newValue =\n nextNode.isLeaf() && nextSpec?.isImmutable\n ? mkUntrackedValue(value)\n : value;\n\n unsubscribeToValtio($$state, nextPath);\n set($$state.stateValues, nextPath, newValue);\n subscribeToValtio($$state, nextPath, nextNode);\n return true;\n },\n };\n const baseObject = currNode.hasArrayTransition() ? [] : {};\n const proxyObj = new Proxy(baseObject, handlers);\n if (currPath.length === 0) {\n proxyRoot = proxyObj;\n }\n return proxyObj;\n };\n\n return rec([], $$state.rootSpecTree);\n}\n\nconst mkUntrackedValue = (o: any) =>\n o != null && typeof o === \"object\" ? createValtioRef(o) : o;\n\nconst envFieldsAreNonNill = (\n env: DollarStateEnv\n): NoUndefinedField<DollarStateEnv> => ({\n $props: env.$props,\n $ctx: env.$ctx ?? {},\n $queries: env.$queries ?? {},\n $refs: env.$refs ?? {},\n});\n\n/**\n * We need to support two versions with different parameters to be backward compatible\n * {\n * specs: $StateSpec<any>[],\n * props: Record<string, any>,\n * $ctx?: Record<string, any>,\n * opts?: { inCanvas: boolean; }\n * }\n * {\n * specs: $StateSpec<any>[],\n * env: { $props; $queries; $ctx },\n * opts?: { inCanvas: boolean }\n * }\n */\nfunction extractDollarStateParametersBackwardCompatible(...rest: any[]): {\n env: DollarStateEnv;\n opts?: { inCanvas: boolean };\n} {\n if (\"$props\" in rest[0]) {\n // latest version\n return {\n env: rest[0],\n opts: rest[1],\n };\n } else {\n return {\n env: {\n $props: rest[0],\n $ctx: rest[1],\n $queries: {},\n },\n opts: rest[2],\n };\n }\n}\n\nfunction invokeInitFuncBackwardsCompatible<T>(\n initFunc: InitFunc<T> | DeprecatedInitFunc<T>,\n env: NoUndefinedField<InitFuncEnv>\n) {\n if (initFunc.length > 1) {\n return (initFunc as DeprecatedInitFunc<T>)(\n env.$props,\n env.$state,\n env.$ctx\n );\n } else {\n return (initFunc as InitFunc<T>)(env);\n }\n}\n\nexport function useDollarState(\n specs: $StateSpec<any>[],\n ...rest: any[]\n): $State {\n const { env, opts } = extractDollarStateParametersBackwardCompatible(...rest);\n const [, setState] = React.useState<[]>();\n\n const mountedRef = React.useRef<boolean>(false);\n const isMounted = React.useCallback(() => mountedRef.current, []);\n\n React.useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const pendingUpdate = React.useRef(false);\n\n const forceUpdate = React.useCallback(\n () =>\n defer(() => {\n if (isMounted()) {\n setState([]);\n pendingUpdate.current = false;\n }\n }),\n []\n );\n\n const $$state = React.useRef<Internal$State>(\n (() => {\n const rootSpecTree = buildTree(specs);\n return {\n rootSpecTree: rootSpecTree,\n specTreeLeaves: getSpecTreeLeaves(rootSpecTree),\n stateValues: createValtioProxy({}),\n env: envFieldsAreNonNill(env),\n specs: [],\n registrationsQueue: [],\n stateInitializationEnv: { stack: [], visited: new Set<string>() },\n initializedLeafPaths: new Set(),\n };\n })()\n ).current;\n $$state.env = envFieldsAreNonNill(env);\n $$state.specs = specs;\n\n const create$State = React.useCallback(() => {\n const $state = Object.assign(\n create$StateProxy($$state, (stateCell) => {\n const spec = stateCell.node.getSpec();\n if (stateCell.initialValue === UNINITIALIZED && spec.initFunc) {\n initializeStateValue($$state, stateCell, $state);\n } else if (\n stateCell.initialValue === UNINITIALIZED &&\n !spec.valueProp\n ) {\n stateCell.initialValue = spec.initVal;\n set($state, stateCell.path, spec.initVal);\n }\n return {\n get() {\n const currSpec = stateCell.node.getSpec();\n if (currSpec.valueProp) {\n const valueProp = $$state.env.$props[currSpec.valueProp];\n subscribeToValtio($$state, stateCell.path, stateCell.node);\n return valueProp;\n } else {\n return get($$state.stateValues, stateCell.path);\n }\n },\n };\n }),\n {\n registerInitFunc: function <T>(\n pathStr: string,\n f: InitFunc<T>,\n repetitionIndex?: number[],\n overrideEnv?: DollarStateEnv\n ) {\n const { node, realPath } = findStateCell(\n $$state.rootSpecTree,\n pathStr,\n repetitionIndex\n );\n const stateCell = getStateCellFrom$StateRoot($state, realPath);\n const innerEnv = overrideEnv\n ? envFieldsAreNonNill(overrideEnv)\n : $$state.env;\n if (!deepEqual(stateCell.initialValue, f({ $state, ...innerEnv }))) {\n $$state.registrationsQueue.push({\n node,\n path: realPath,\n f,\n overrideEnv: overrideEnv\n ? envFieldsAreNonNill(overrideEnv)\n : undefined,\n });\n if (!pendingUpdate.current) {\n pendingUpdate.current = true;\n forceUpdate();\n }\n }\n },\n ...(opts?.inCanvas\n ? {\n eagerInitializeStates: (stateSpecs: $StateSpec<any>[]) => {\n // we need to eager initialize all states in canvas to populate the data picker\n $$state.specTreeLeaves.forEach((node) => {\n const spec = node.getSpec();\n if (spec.isRepeated) {\n return;\n }\n const stateCell = getStateCellFrom$StateRoot(\n $state,\n spec.pathObj as string[]\n );\n const newSpec = stateSpecs.find(\n (sp) => sp.path === spec.path\n );\n if (\n !newSpec ||\n (stateCell.initFuncHash === (newSpec?.initFuncHash ?? \"\") &&\n stateCell.initialValue !== UNINITIALIZED)\n ) {\n return;\n }\n stateCell.initFunc = newSpec.initFunc;\n stateCell.initFuncHash = newSpec.initFuncHash ?? \"\";\n const init = spec.valueProp\n ? $$state.env.$props[spec.valueProp]\n : spec.initFunc\n ? initializeStateValue($$state, stateCell, $state)\n : spec.initVal;\n set($state, spec.pathObj, init);\n });\n },\n }\n : {}),\n }\n );\n return $state;\n }, [opts?.inCanvas]);\n const ref = React.useRef<undefined | $State>(undefined);\n if (!ref.current) {\n ref.current = create$State();\n }\n let $state = ref.current as $State;\n if (opts?.inCanvas) {\n $$state.rootSpecTree = updateTree($$state.rootSpecTree, specs);\n const newLeaves = getSpecTreeLeaves($$state.rootSpecTree);\n if (!arrayEq(newLeaves, $$state.specTreeLeaves)) {\n const old$state = $state;\n $state = ref.current = create$State();\n $$state.specTreeLeaves = newLeaves;\n getStateCells(old$state, $$state.rootSpecTree).forEach(({ path }) => {\n const oldStateCell = tryGetStateCellFrom$StateRoot(old$state, path);\n if (oldStateCell) {\n set($state, path, get(old$state, path));\n const newStateCell = getStateCellFrom$StateRoot($state, path);\n newStateCell.initialValue = oldStateCell.initialValue;\n }\n });\n }\n }\n\n const reInitializeState = (stateCell: StateCell<any>) => {\n const newInit = initializeStateValue($$state, stateCell, $state);\n const spec = stateCell.node.getSpec();\n if (spec.onChangeProp) {\n $$state.env.$props[spec.onChangeProp]?.(newInit);\n }\n };\n useIsomorphicLayoutEffect(() => {\n // For each spec with an initFunc, evaluate it and see if\n // the init value has changed. If so, reset its state.\n const resetSpecs: {\n stateCell: StateCell<any>;\n }[] = [];\n getStateCells($state, $$state.rootSpecTree).forEach((stateCell) => {\n if (stateCell.initFunc) {\n try {\n const newInit = invokeInitFuncBackwardsCompatible(\n stateCell.initFunc,\n {\n $state,\n ...(stateCell.overrideEnv ?? envFieldsAreNonNill(env)),\n }\n );\n if (!deepEqual(newInit, stateCell.initialValue)) {\n resetSpecs.push({ stateCell });\n }\n } catch {\n // Exception may be thrown from initFunc -- for example, if it tries to access $queries\n // that are still loading. We swallow those here, since we're only interested in\n // checking if the init value has changed, not in handling these errors.\n }\n }\n });\n resetSpecs.forEach(({ stateCell }) => {\n reInitializeState(stateCell);\n });\n }, [env.$props, $state, $$state, reInitializeState]);\n useIsomorphicLayoutEffect(() => {\n while ($$state.registrationsQueue.length) {\n const { path, f, overrideEnv } = $$state.registrationsQueue.shift()!;\n const stateCell = getStateCellFrom$StateRoot($state, path);\n stateCell.initFunc = f;\n stateCell.overrideEnv = overrideEnv;\n reInitializeState(stateCell);\n }\n });\n // immediately initialize exposed non-private states\n useIsomorphicLayoutEffect(() => {\n $$state.specTreeLeaves.forEach((node) => {\n const spec = node.getSpec();\n if (!spec.isRepeated && spec.type !== \"private\") {\n // We only need to attempt to access the state cell to trigger initialization,\n // Check create$StateProxy for more details on how this works.\n getStateCellFrom$StateRoot($state, spec.pathObj as ObjectPath);\n }\n });\n }, []);\n\n // Re-render if any value changed in one of these objects\n useSnapshot($$state.stateValues, { sync: true });\n return $state;\n}\n\nexport default useDollarState;\n","import type { ComponentHelpers } from \"@plasmicapp/host\";\nimport get from \"dlv\";\nimport { useEffect, useLayoutEffect } from \"react\";\nimport { getVersion as isValtioProxy } from \"valtio\";\nimport { ensure } from \"../common\";\nimport { StateSpecNode } from \"./graph\";\nimport {\n $State,\n ARRAY_SYMBOL,\n InitFunc,\n ObjectPath,\n PLASMIC_STATE_PROXY_SYMBOL,\n StateCell,\n} from \"./types\";\nimport { proxyObjToStateCell, tryGetStateCellFrom$StateRoot } from \"./valtio\";\n\nexport function initializeCodeComponentStates(\n $state: $State,\n states: {\n name: string;\n plasmicStateName: string;\n }[],\n repetitionIndex: number[],\n componentHelpers: ComponentHelpers<any>,\n child$Props: Record<string, any>\n) {\n const stateHelpers = componentHelpers?.states ?? {};\n for (const { name, plasmicStateName } of states) {\n if (name in stateHelpers && \"initFunc\" in stateHelpers[name]) {\n $state.registerInitFunc?.(\n plasmicStateName,\n ({ $props }) => stateHelpers[name].initFunc?.($props),\n repetitionIndex ?? [],\n { $props: child$Props }\n );\n }\n }\n}\n\nexport function generateOnMutateForSpec(\n stateName: string,\n componentHelpers: ComponentHelpers<any>\n) {\n return componentHelpers?.states?.[stateName]?.onMutate;\n}\n\nexport function initializePlasmicStates(\n $state: $State,\n states: {\n name: string;\n initFunc: InitFunc<any>;\n }[],\n repetitionIndex: number[]\n) {\n for (const { name, initFunc } of states) {\n $state.registerInitFunc?.(name, initFunc, repetitionIndex ?? []);\n }\n}\n\nexport function generateStateOnChangeProp(\n $state: $State,\n path: ObjectPath\n): (val: any) => void {\n return (val) => set($state, path, val);\n}\n\nexport function generateStateOnChangePropForCodeComponents(\n $state: $State,\n stateName: string,\n plasmicStatePath: ObjectPath,\n componentHelpers: ComponentHelpers<any>\n): (val: any) => void {\n const onChangeArgsToValue =\n componentHelpers?.states?.[stateName]?.onChangeArgsToValue;\n if (!onChangeArgsToValue || typeof onChangeArgsToValue !== \"function\") {\n return generateStateOnChangeProp($state, plasmicStatePath);\n }\n return (...args) =>\n generateStateOnChangeProp(\n $state,\n plasmicStatePath\n )(onChangeArgsToValue.apply(null, args));\n}\n\nexport function generateStateValueProp($state: $State, path: ObjectPath) {\n return get($state, path);\n}\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport function isPlasmicStateProxy(obj: any) {\n return (\n obj != null && typeof obj === \"object\" && !!obj[PLASMIC_STATE_PROXY_SYMBOL]\n );\n}\n\nexport function is$StateProxy(obj: any) {\n return (\n obj != null &&\n typeof obj === \"object\" &&\n (!!obj[PLASMIC_STATE_PROXY_SYMBOL] || isValtioProxy(obj))\n );\n}\n\nexport function getStateCells(\n $state: $State,\n root: StateSpecNode<any>\n): StateCell<any>[] {\n if ($state == null || typeof $state !== \"object\") {\n return [];\n }\n\n if (root.hasArrayTransition()) {\n return Object.keys($state).flatMap((key) =>\n getStateCells($state[key], ensure(root.makeTransition(ARRAY_SYMBOL)))\n );\n } else {\n const stateCell = proxyObjToStateCell.get($state) ?? {};\n const stateCells: StateCell<any>[] = [];\n for (const [key, child] of root.edges().entries()) {\n if (typeof key === \"string\" && key in $state) {\n stateCells.push(...getStateCells($state[key], child));\n if (key in stateCell) {\n stateCells.push(stateCell[key]);\n }\n }\n }\n return stateCells;\n }\n}\n\nexport function getStateCellsInPlasmicProxy(\n obj: any\n): { realPath: ObjectPath; path: string }[] {\n if (!isPlasmicStateProxy(obj)) {\n return [];\n }\n const {\n node: rootNode,\n path: rootPath,\n isOutside,\n } = obj[PLASMIC_STATE_PROXY_SYMBOL];\n if (isOutside) {\n return [];\n }\n return getStateCells(obj, rootNode).map((stateCell) => ({\n path: stateCell.node.getSpec().path,\n realPath: stateCell.path.slice(rootPath.length),\n }));\n}\n\nexport function getStateSpecInPlasmicProxy(obj: any, path: ObjectPath) {\n obj = get(obj, path.slice(0, path.length - 1));\n if (!isPlasmicStateProxy(obj)) {\n return undefined;\n }\n const { node } = obj[PLASMIC_STATE_PROXY_SYMBOL] as {\n node: StateSpecNode<any>;\n };\n const nextNode = node.makeTransition(path[path.length - 1]);\n if (node.isLeaf() || !nextNode) {\n return undefined;\n }\n return {\n spec: nextNode.getSpec(),\n isImplicitStateArray: nextNode.hasArrayTransition(),\n };\n}\n\nexport function getCurrentInitialValue(obj: any, path: ObjectPath) {\n if (!isPlasmicStateProxy(obj)) {\n return undefined;\n }\n return tryGetStateCellFrom$StateRoot(obj, path)?.initialValue;\n}\n\nexport function resetToInitialValue(obj: any, path: ObjectPath) {\n const stateCell = tryGetStateCellFrom$StateRoot(obj, path);\n if (stateCell) {\n set(obj, path, stateCell.initialValue);\n }\n}\n\nexport function shallowEqual<T>(a1: T[], a2: T[]) {\n if (a1.length !== a2.length) {\n return false;\n }\n for (let i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Shallow comparison of arrays.\n */\nexport function arrayEq(xs: ReadonlyArray<any>, ys: ReadonlyArray<any>) {\n return (\n xs.length === ys.length && xs.every((_, index) => xs[index] === ys[index])\n );\n}\n\nexport function isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\ntype StringGen = string | (() => string);\nexport function assert<T>(\n cond: T,\n msg: StringGen = \"Assertion failed\"\n): asserts cond {\n if (!cond) {\n // We always generate an non empty message so that it doesn't get swallowed\n // by the async library.\n msg = (typeof msg === \"string\" ? msg : msg()) || \"Assertion failed\";\n debugger;\n throw new Error(msg);\n }\n}\n\n/**\n * Forked from https://github.com/lukeed/dset\n * Changes: fixed setting a deep value to a proxy object\n */\nexport function set(obj: any, keys: any, val: any) {\n keys = keys.split ? keys.split(\".\") : keys;\n var i = 0,\n l = keys.length,\n t = obj,\n x,\n k;\n while (i < l) {\n k = \"\" + keys[i++];\n if (k === \"__proto__\" || k === \"constructor\" || k === \"prototype\") break;\n const newValue =\n i === l\n ? val\n : typeof (x = t[k]) === typeof keys\n ? x\n : keys[i] * 0 !== 0 || !!~(\"\" + keys[i]).indexOf(\".\")\n ? {}\n : [];\n assignValue(t, k, newValue);\n t = t[k];\n }\n}\n\n/**\n * Forked from lodash\n */\nfunction baseAssignValue(object: any, key: any, value: any) {\n if (key == \"__proto__\") {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n value: value,\n writable: true,\n });\n } else {\n object[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (value !== value && other !== other);\n}\n\nfunction assignValue(object: any, key: any, value: any) {\n const objValue = object[key];\n if (\n !(\n Object.prototype.hasOwnProperty.call(object, key) && eq(objValue, value)\n ) ||\n (value === undefined && !(key in object))\n ) {\n baseAssignValue(object, key, value);\n }\n}\n\nconst isInstanceOfMap = (a: any) =>\n a != null &&\n typeof a === \"object\" &&\n \"size\" in a &&\n typeof a.entries === \"function\" &&\n typeof a.get === \"function\" &&\n typeof a.set === \"function\" &&\n typeof a.has === \"function\";\n\nconst isInstanceOfSet = (a: any) =>\n a != null &&\n typeof a === \"object\" &&\n \"size\" in a &&\n typeof a.entries === \"function\" &&\n typeof a.add === \"function\" &&\n typeof a.has === \"function\" &&\n typeof a.delete === \"function\";\n\nconst isRegExp = (a: any) =>\n Object.prototype.toString.call(a) === \"[object RegExp]\";\n\n/**\n * Forked from https://github.com/epoberezkin/fast-deep-equal/blob/master/src/index.jst\n * Changes: removed the comparison between constructors and instanceof objects\n * because they are dependent on the window object\n */\nexport function deepEqual(a: any, b: any) {\n if (a === b) return true;\n\n if (a && b && typeof a == \"object\" && typeof b == \"object\") {\n // if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\n return true;\n }\n\n // if ((a instanceof Map) && (b instanceof Map)) {\n if (isInstanceOfMap(a) && isInstanceOfMap(b)) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n for (i of a.entries()) if (!deepEqual(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n // if ((a instanceof Set) && (b instanceof Set)) {\n if (isInstanceOfSet(a) && isInstanceOfSet(b)) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n return true;\n }\n\n // if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (isRegExp(a) && isRegExp(b))\n return a.source === b.source && a.flags === b.flags;\n // if (a.valueOf !== Object.prototype.valueOf)\n // return a.valueOf() === b.valueOf();\n // if (a.toString !== Object.prototype.toString)\n // return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n var key = keys[i];\n if (key === \"_owner\" && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n if (!deepEqual(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport { PlasmicTranslator } from \"@plasmicapp/host\";\nexport {\n PlasmicPageGuard,\n withPlasmicPageGuard,\n} from \"./auth/PlasmicPageGuard\";\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport { PlasmicHead, plasmicHeadMeta } from \"./render/PlasmicHead\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { Stack } from \"./render/Stack\";\nexport {\n Flex,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n createPlasmicElementProxy,\n deriveRenderOpts,\n hasVariant,\n makeFragment,\n mergeVariantsWithStates,\n wrapWithClassName,\n} from \"./render/elements\";\nexport {\n createUseGlobalVariants,\n ensureGlobalVariants,\n} from \"./render/global-variants\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport {\n PlasmicDataSourceContextProvider,\n PlasmicRootProvider,\n useCurrentUser,\n useIsSSR,\n} from \"./render/ssr\";\nexport {\n createStyleTokensProvider,\n createUseStyleTokens,\n} from \"./render/style-tokens\";\nexport {\n Trans,\n genTranslatableString,\n usePlasmicTranslator,\n} from \"./render/translation\";\nexport { useTrigger } from \"./render/triggers\";\nexport * from \"./states\";\n// Using any while classnames package is not updated to have the correct types exported\nexport const classNames: any = _classNames;\n","import * as React from \"react\";\nimport { groupBy, mapValues } from \"../common\";\nimport { SingleChoiceArg } from \"../render/elements\";\n\nexport let PLUME_STRICT_MODE = true;\n\nexport function setPlumeStrictMode(mode: boolean) {\n PLUME_STRICT_MODE = mode;\n}\n\ntype VariantArgChoices<T> = T extends (infer M)[]\n ? M\n : T extends SingleChoiceArg<infer M>\n ? M\n : never;\ntype VariantArgsChoices<V> = { [k in keyof V]-?: VariantArgChoices<V[k]> };\ntype DictValues<V extends Record<string, any>> = V[keyof V];\ntype DictTuples<V extends Record<string, any>> = DictValues<\n { [K in keyof V]: [K, V[K]] }\n>;\nexport type VariantDefTuple<V> = DictTuples<VariantArgsChoices<V>>;\n\ntype DistributeTuple<T> = T extends [infer T1, infer T2]\n ? { group: T1; variant: T2 }\n : never;\n\nexport type VariantDef<V> = DistributeTuple<VariantDefTuple<V>>;\n\nexport type PlasmicClass<\n V extends Record<string, any>,\n A extends Record<string, any>,\n O extends Record<string, any>\n> = {\n (props: { variants?: V; args?: A; overrides?: O }): React.ReactNode;\n internalVariantProps: (keyof V)[];\n internalArgProps: (keyof A)[];\n};\n\nexport type AnyPlasmicClass = PlasmicClass<any, any, any>;\n\nexport type PlasmicClassVariants<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<infer V, any, any> ? V : unknown;\nexport type PlasmicClassArgs<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, infer A, any> ? A : unknown;\nexport type PlasmicClassOverrides<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, any, infer O> ? O : unknown;\n\ntype BooleanLike = boolean | undefined | null;\n\nexport function mergeVariantToggles<V>(\n ...toggles: { def?: VariantDef<V>; active: BooleanLike }[]\n) {\n const definedToggles = toggles.filter((x) => !!x.def) as {\n def: VariantDef<V>;\n active: BooleanLike;\n }[];\n const grouped = groupBy(definedToggles, ({ def }) => def.group as string);\n return mapValues(grouped, (subToggles) => {\n return Object.fromEntries(\n subToggles.map(({ def, active }) => [def.variant, !!active])\n );\n });\n}\n\nexport function noOutline() {\n return { outline: \"none\" };\n}\n\nexport function getPlumeType(child: React.ReactChild): string | undefined {\n if (!React.isValidElement(child)) {\n return undefined;\n }\n const childType = child.type as any;\n return (childType.__plumeType || childType.getPlumeType?.(child.props)) as\n | string\n | undefined;\n}\n","import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\ninterface PlumeCommonProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n children?: React.ReactNode;\n isDisabled?: boolean;\n}\n\ninterface HtmlButtonProps\n extends Omit<React.ComponentProps<\"button\">, \"ref\" | \"disabled\"> {}\n\ninterface HtmlAnchorProps\n extends Omit<React.ComponentProps<\"a\">, \"ref\" | \"href\" | \"target\"> {}\n\ninterface PlumeActualButtonProps {\n submitsForm?: boolean;\n}\n\ninterface PlumeAnchorProps {\n link?: string;\n target?: React.ComponentProps<\"a\">[\"target\"] | boolean;\n}\n\nexport type PlumeButtonProps = PlumeCommonProps &\n PlumeActualButtonProps &\n PlumeAnchorProps;\n\nexport type BaseButtonProps = PlumeButtonProps &\n HtmlButtonProps &\n HtmlAnchorProps;\n\ntype AllButtonProps = PlumeCommonProps &\n PlumeActualButtonProps &\n HtmlButtonProps;\ntype AllAnchorProps = PlumeCommonProps & PlumeAnchorProps & HtmlAnchorProps;\n\nexport type HtmlAnchorOnlyProps = Exclude<\n keyof AllAnchorProps,\n keyof AllButtonProps\n>;\nexport type HtmlButtonOnlyProps = Exclude<\n keyof AllButtonProps,\n keyof AllAnchorProps\n>;\n\nexport type ButtonRef = React.Ref<HTMLButtonElement | HTMLAnchorElement>;\n\ninterface ButtonConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useButton<\n P extends PlumeButtonProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: ButtonConfig<C>, ref: ButtonRef = null) {\n const {\n link,\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n children,\n target,\n submitsForm = false,\n ...rest\n } = props;\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n [config.contentSlot]: children,\n };\n\n let buttonType = undefined;\n if (!link) {\n if (\n !plasmicClass.internalVariantProps.includes(\"type\") &&\n !plasmicClass.internalArgProps.includes(\"type\") &&\n \"type\" in rest\n ) {\n // There's no Plasmic-defined variant or arg called \"type\",\n // but the user passed in a \"type\" arg, so must be an override\n // or direct instantiation. We use that value\n buttonType = rest.type;\n } else {\n // Otherwise, we set buttonType depending in submitsForm\n buttonType = submitsForm ? \"submit\" : \"button\";\n }\n }\n\n const overrides: Overrides = {\n [config.root]: {\n as: link ? \"a\" : \"button\",\n props: {\n // Put this at the top, as user may also have set `type` as\n // inherited from \"button\", so let `rest` override it\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps,\n ...plasmicClass.internalVariantProps\n ),\n type: buttonType,\n ref: ref,\n disabled: isDisabled,\n target:\n target === true ? \"_blank\" : target === false ? undefined : target,\n ...(!!link && { href: link }),\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import * as React from \"react\";\nimport { pick, pickBy } from \"../common\";\nimport {\n AnyPlasmicClass,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n} from \"./plume-utils\";\n\nexport interface StyleProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function getStyleProps<P extends StyleProps>(props: P): StyleProps {\n return pick(props, \"className\", \"style\");\n}\n\nexport function getDefaultPlasmicProps<C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: Record<string, any>\n) {\n return {\n plasmicProps: {\n variants: pick(\n props,\n ...plasmicClass.internalVariantProps\n ) as PlasmicClassVariants<C>,\n args: pick(\n props,\n ...plasmicClass.internalArgProps\n ) as PlasmicClassArgs<C>,\n overrides: {} as PlasmicClassOverrides<C>,\n },\n };\n}\n\nconst RE_DATA_PROP = /^(data-.*)$/;\n\nexport function getDataProps(props: Record<string, any>) {\n return pickBy(props, (k) => RE_DATA_PROP.test(k));\n}\n","import { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n","/**\n * In general, we try not to expose react-aria's Collections API to Plume users.\n * The Collections API is how react-aria users pass data about collections of\n * things using the built-in Item and Section components, which are abstract,\n * metadata-only components that don't render anything but only serve to specify\n * data. For example, here's how you would use react-spectrum's Picker:\n *\n * <Picker>\n * <Section title=\"Asia\">\n * <Item key=\"taiwan\">Taiwan</Item>\n * <Item key=\"japan\">Japan</Item>\n * <Item key=\"china\">China</Item>\n * </Section>\n * <Section title=\"Europe\">\n * <Item key=\"germany\">Germany</Item>\n * <Item key=\"france\">France</Item>\n * </Section>\n * </Picker>\n *\n * You would re-use this same Item/Section components to pass similar things to\n * Menu, Tabs, etc.\n *\n * For Plasmic, this API is too abstract. The user has explicitly designed components\n * like Select.Option and Select.OptionGroup, and it is weird that they don't actually\n * use these components. It is more natural to do:\n *\n * <Select>\n * <Select.OptionGroup title=\"Asia\">\n * <Select.Option key=\"taiwan\">Taiwan</Select>\n * </Select.OptionGroup>\n * </Select>\n *\n * For Plume, we let users directly use the components they designed, both to collect\n * information and to perform actual rendering. For example, for Plume,\n * you'd use Select.Option instead of Item, and Select.OptionGroup instead of Section.\n * This means that the Select.Option props will collect the same information Item\n * does.\n *\n * A component like Select.Option then serves two purposes:\n *\n * 1. Allow users to specify the collection of data, like in the above example\n * Here, we're mainly interested in the props in those ReactElements so\n * we can pass the Item/Section data onto react-aria's APIs. We are not\n * actually rendering these elements.\n * 2. Once react-aria's Collections API has gone through them and built\n * Collection \"nodes\", we then create cloned versions of these elements\n * with the corresponding node passed in as a secret prop. These ReactElements\n * are then actually used to _render_ the corresponding Option / OptionGroup.\n *\n * This file contains helper functions to help with implementing the above.\n *\n * Note also that most of the collections-based react-aria components expose\n * a parallel API that accepts a list of \"items\" and a render prop, instead\n * of list of Item/Section elements. This is for efficiency, but we are opting\n * to only support the composite-component pattern for now for simplicity.\n */\n\nimport { Item, Section } from \"@react-stately/collections\";\nimport { Node } from \"@react-types/shared\";\nimport React from \"react\";\nimport { isString } from \"../common\";\nimport { getElementTypeName, toChildArray } from \"../react-utils\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"./plume-utils\";\n\nexport interface PlasmicLoaderProps<T> {\n component: string;\n componentProps: T;\n}\n\n/**\n * Props for a Plume component that corresponds to an Item\n */\nexport interface ItemLikeProps {\n /**\n * value key corresponding to this item. Not required if you use the\n * `key` prop instead.\n */\n value?: string | null;\n\n /**\n * The text string value corresponding to this item. Used to support\n * keyboard type-ahead. If not specified, then will be derived from\n * `children` if it is a string, or the `value` or `key`.\n */\n textValue?: string;\n\n /**\n * aria-label for this item.\n */\n \"aria-label\"?: string;\n\n /**\n * Primary content label for this item.\n */\n children?: React.ReactNode;\n\n /**\n * If true, this item will not be selectable.\n */\n isDisabled?: boolean;\n}\n\ntype LoaderAwareItemLikeProps =\n | ItemLikeProps\n | PlasmicLoaderProps<ItemLikeProps>;\n\n/**\n * Props for a Plume component that corresponds to a Section\n */\nexport interface SectionLikeProps {\n /**\n * Heading content of the title\n */\n title?: React.ReactNode;\n\n /**\n * aria-label for this section\n */\n \"aria-label\"?: string;\n\n /**\n * A list of items that belong in this group\n */\n children?: React.ReactNode;\n}\n\ntype LoaderAwareSectionLikeProps =\n | SectionLikeProps\n | PlasmicLoaderProps<SectionLikeProps>;\n\nexport type ItemJson = LeafItemJson | SectionJson;\n\nexport type LeafItemJson =\n | string\n | {\n value: string;\n label?: string;\n textValue?: string;\n isDisabled?: boolean;\n };\n\nexport interface SectionJson {\n title: string;\n children: ItemJson[];\n}\n\nexport function deriveItemsFromProps(\n props: any,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n ItemComponent?: React.ComponentType<ItemLikeProps>;\n SectionComponent?: React.ComponentType<SectionLikeProps>;\n itemsProp?: string;\n }\n) {\n if (opts.itemsProp && opts.itemsProp in props) {\n if (!opts.ItemComponent || !opts.SectionComponent) {\n throw new Error(`You may need to re-generate your Plasmic* files`);\n }\n const items = props[opts.itemsProp] as ItemJson[] | undefined;\n return deriveItemsFromItemsProp(items, {\n ItemComponent: opts.ItemComponent,\n SectionComponent: opts.SectionComponent,\n });\n } else {\n return deriveItemsFromChildren(props.children as React.ReactNode, opts);\n }\n}\n\nfunction deriveItemsFromItemsProp(\n items: ItemJson[] | undefined,\n opts: {\n ItemComponent: React.ComponentType<ItemLikeProps>;\n SectionComponent: React.ComponentType<SectionLikeProps>;\n }\n) {\n const { ItemComponent, SectionComponent } = opts;\n const disabledKeys: string[] = [];\n const transform = (item: ItemJson) => {\n if (typeof item === \"string\") {\n return (\n <ItemComponent key={item} value={item}>\n {item}\n </ItemComponent>\n );\n } else if (\"children\" in item) {\n return (\n <SectionComponent key={item.title} title={item.title}>\n {item.children.map((x) => transform(x))}\n </SectionComponent>\n );\n } else {\n if (item.isDisabled) {\n disabledKeys.push(item.value);\n }\n return (\n <ItemComponent\n key={item.value}\n value={item.value}\n textValue={item.textValue}\n isDisabled={item.isDisabled}\n >\n {item.label ?? item.value}\n </ItemComponent>\n );\n }\n };\n return {\n items: items?.map((x) => transform(x)) ?? [],\n disabledKeys,\n };\n}\n\n/**\n * Given children of a component like Select or Menu, derive the items\n * that we will pass into the Collections API. These will be\n * ReactElement<ItemLikeProps|SectionLikeProps>[].\n *\n * Will also assign keys to items by their index in the collection,\n * and collect the keys of disabled items.\n */\nexport function deriveItemsFromChildren<T extends React.ReactElement>(\n children: React.ReactNode,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n }\n) {\n if (!children) {\n return {\n items: [] as T[],\n disabledKeys: [] as React.Key[],\n };\n }\n\n const { itemPlumeType, sectionPlumeType, invalidChildError } = opts;\n\n // For Plume items without an explicit key, we assign a key as the index\n // of the collection.\n let itemCount = 0;\n let sectionCount = 0;\n\n const ensureValue = (element: React.ReactElement) => {\n if (!propInChild(element, \"value\")) {\n if (opts.requireItemValue && PLUME_STRICT_MODE) {\n throw new Error(\n `Must specify a \"value\" prop for ${getElementTypeName(element)}`\n );\n } else {\n return cloneChild(element, { value: `${itemCount++}` });\n }\n } else {\n // Still increment count even if key is present, so that the\n // auto-assigned key really reflects the index\n itemCount++;\n return element;\n }\n };\n\n const disabledKeys: React.Key[] = [];\n\n const flattenedChildren = (\n children: React.ReactNode\n ): React.ReactElement[] => {\n return toChildArray(children).flatMap((child) => {\n if (React.isValidElement(child)) {\n if (child.type === React.Fragment) {\n return flattenedChildren(\n (child as React.ReactElement<{ children: React.ReactNode }>).props\n .children\n );\n }\n const type = getPlumeType(child);\n if (type === itemPlumeType) {\n child = ensureValue(child);\n const childKey = getItemLikeKey(child);\n if (getChildProp(child, \"isDisabled\") && !!childKey) {\n disabledKeys.push(childKey);\n }\n return [child];\n }\n if (type === sectionPlumeType) {\n return [\n cloneChild(child, {\n // key of section doesn't actually matter, just needs\n // to be unique\n key: child.key ?? `section-${sectionCount++}`,\n children: flattenedChildren(getChildProp(child, \"children\")),\n }),\n ];\n }\n }\n\n if (PLUME_STRICT_MODE) {\n throw new Error(invalidChildError ?? `Unexpected child`);\n } else {\n return [];\n }\n });\n };\n\n return { items: flattenedChildren(children) as T[], disabledKeys };\n}\n\nexport function useDerivedItems(\n props: any,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n ItemComponent?: React.ComponentType<ItemLikeProps>;\n SectionComponent?: React.ComponentType<SectionLikeProps>;\n itemsProp?: string;\n }\n) {\n const { children } = props;\n const {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ItemComponent,\n SectionComponent,\n itemsProp,\n } = opts;\n const items = itemsProp ? props[itemsProp] : undefined;\n return React.useMemo(() => {\n return deriveItemsFromProps(props, {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n itemsProp,\n ItemComponent,\n SectionComponent,\n });\n }, [\n children,\n items,\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ItemComponent,\n SectionComponent,\n ]);\n}\n\nexport function useDerivedItemsFromChildren<T extends React.ReactElement>(\n children: React.ReactNode,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n invalidChildError?: string;\n requireItemValue: boolean;\n }\n) {\n const {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n } = opts;\n return React.useMemo(() => {\n return deriveItemsFromChildren<T>(children, {\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n });\n }, [\n children,\n itemPlumeType,\n sectionPlumeType,\n invalidChildError,\n requireItemValue,\n ]);\n}\n\n/**\n * Given a Collection node, create the React element that we should use\n * to render it.\n */\nexport function renderCollectionNode(node: Node<any>) {\n // node.rendered should already have our item-like or section-like Plume\n // component elements, so we just need to clone them with a secret\n // _node prop that we use to render.\n return cloneChild(node.rendered as React.ReactElement, {\n _node: node,\n key: node.key,\n });\n}\n\n/**\n * Renders a item-like or section-like Plume component element into an\n * Item or a Section element.\n */\nexport function renderAsCollectionChild<\n T extends React.ReactElement<\n LoaderAwareItemLikeProps | LoaderAwareSectionLikeProps\n >\n>(\n child: T,\n opts: {\n itemPlumeType: string;\n sectionPlumeType?: string;\n }\n) {\n const plumeType = getPlumeType(child);\n if (plumeType === opts.itemPlumeType) {\n const option = child as React.ReactElement<LoaderAwareItemLikeProps>;\n\n // We look at the children passed to the item-like element, and derive key\n // or textValue from it if it is a string\n const content = getChildProp(option, \"children\");\n\n // The children render prop needs to return an <Item/>\n return (\n <Item\n // We use ItemLike.value if the user explicitly specified a value,\n // and we fallback to key. If the user specified neither, then\n // the Collections API will generate a unique key for this item.\n key={getItemLikeKey(option)}\n // textValue is either explicitly specified by the user, or we\n // try to derive it if `content` is a string.\n textValue={\n getChildProp(option, \"textValue\") ??\n (isString(content)\n ? content\n : propInChild(option, \"value\")\n ? getChildProp(option, \"value\")\n : option.key)\n }\n aria-label={getChildProp(option, \"aria-label\")}\n >\n {\n // Note that what we setting the item-like element as the children\n // here, and not content; we want the entire item-like Plume element to\n // end up as Node.rendered.\n }\n {option}\n </Item>\n );\n } else {\n const group = child as React.ReactElement<LoaderAwareSectionLikeProps>;\n return (\n <Section\n // Note that we are using the whole section-like element as the title\n // here, and not group.props.title; we want the entire section-like\n // Plume element to end up as Node.rendered.\n title={group}\n aria-label={getChildProp(group, \"aria-label\")}\n // We are flattening and deriving the descendant Options as items here.\n // group.props.children should've already been cleaned up by\n // deriveItemsFromChildren()\n items={getChildProp(group, \"children\") as React.ReactElement[]}\n >\n {\n // We use the same render function to turn descendent Options into Items\n }\n {(c: React.ReactElement) => renderAsCollectionChild(c, opts)}\n </Section>\n );\n }\n}\n\nfunction getItemLikeKey(element: React.ReactElement<LoaderAwareItemLikeProps>) {\n return getChildProp(element, \"value\") ?? element.key;\n}\n\n// PlasmicLoader-aware function to get prop from child.\nexport function getChildProp(child: React.ReactElement, prop: string) {\n return \"componentProps\" in child.props\n ? child.props.componentProps[prop]\n : child.props[prop];\n}\n\n// PlasmicLoader-aware function to check `if (prop in element.props)`.\nfunction propInChild(child: React.ReactElement, prop: string): boolean {\n return \"componentProps\" in child.props\n ? prop in child.props.componentProps\n : prop in child.props;\n}\n\n// PlasmicLoader-aware function to clone React element.\nfunction cloneChild(child: React.ReactElement, props: Record<string, any>) {\n if ((child.type as any).getPlumeType) {\n // If React element has getPlumeType(), assume that it is PlasmicLoader,\n // so add nodeProps to componentProps instead of element props.\n return React.cloneElement(child, {\n componentProps: {\n ...child.props.componentProps,\n ...props,\n },\n ...(props.key ? { key: props.key } : {}),\n });\n }\n\n return React.cloneElement(child, props);\n}\n","import type { Placement } from \"@react-types/overlays\";\nimport type { FocusStrategy } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport type { OverlayTriggerState } from \"@react-stately/overlays\";\n\nexport interface TriggeredOverlayContextValue {\n triggerRef: React.RefObject<HTMLElement>;\n state: OverlayTriggerState;\n autoFocus?: boolean | FocusStrategy;\n\n placement?: Placement;\n overlayMatchTriggerWidth?: boolean;\n overlayMinTriggerWidth?: boolean;\n overlayWidth?: number;\n}\n\nexport const TriggeredOverlayContext = React.createContext<\n TriggeredOverlayContextValue | undefined\n>(undefined);\n","import * as React from \"react\";\nimport type { TreeState } from \"@react-stately/tree\";\nimport type { BaseMenuProps } from \"./menu\";\n\nexport interface MenuContextValue {\n menuProps: BaseMenuProps;\n state: TreeState<any>;\n}\n\nexport const MenuContext = React.createContext<MenuContextValue | undefined>(\n undefined\n);\n","import { useMenu as useAriaMenu } from \"@react-aria/menu\";\nimport { useTreeState } from \"@react-stately/tree\";\nimport { AriaMenuProps } from \"@react-types/menu\";\nimport { AriaLabelingProps, DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * List of `Menu.Item`s or `Menu.Group`s that make up the menu\n */\n children?: React.ReactNode;\n\n /**\n * Called with the value of a `Menu.Item` when it is selected.\n */\n onAction?: (value: string) => void;\n}\n\nexport type MenuRef = React.Ref<MenuRefValue>;\nexport interface MenuRefValue extends MenuState {\n getRoot: () => HTMLElement | null;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"menu-item\",\n sectionPlumeType: \"menu-group\",\n};\n\nexport interface MenuConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\n/**\n * Converts props from BaseMenuProps to react-aria's useMenu() props.\n */\nfunction asAriaMenuProps(props: BaseMenuProps) {\n const { children, ...rest } = props;\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Menu.Item and Menu.Group as children to Menu`,\n requireItemValue: false,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n items,\n disabledKeys,\n } as AriaMenuProps<any>,\n };\n}\n\nexport interface MenuState {\n getFocusedValue: () => string | null;\n setFocusedValue: (value: string) => void;\n}\n\nexport function useMenu<P extends BaseMenuProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: MenuConfig<C>,\n ref: MenuRef = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = asAriaMenuProps(props);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const state = useTreeState(ariaProps);\n\n const menuListRef = React.useRef<HTMLUListElement>(null);\n\n const { menuProps } = useAriaMenu(\n {\n ...ariaProps,\n autoFocus: triggerContext?.autoFocus,\n },\n state,\n menuListRef\n );\n\n const contextValue = React.useMemo(() => ({ state, menuProps: props }), [\n state,\n props,\n ]);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n },\n [config.itemsContainer]: {\n as: \"ul\",\n props: mergeProps(menuProps, {\n ref: menuListRef,\n style: {\n ...noOutline(),\n },\n }),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.itemsSlot]: (\n <MenuContext.Provider value={contextValue}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </MenuContext.Provider>\n ),\n };\n\n const plumeState: MenuState = React.useMemo(\n () => ({\n getFocusedValue: () => state.selectionManager.focusedKey as string | null,\n setFocusedValue: (value: string) =>\n state.selectionManager.setFocusedKey(value),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getFocusedValue: () => plumeState.getFocusedValue(),\n setFocusedValue: (key) => plumeState.setFocusedValue(key),\n }),\n [rootRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuSection } from \"@react-aria/menu\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuGroupProps extends SectionLikeProps, StyleProps {}\n\ninterface MenuGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuGroup<\n P extends BaseMenuGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuGroupConfig<C>) {\n const context = React.useContext(MenuContext);\n\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseMenuGroupProps>>\n | undefined;\n\n if (!context || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Group within a Menu component.\");\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useMenuSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: context.state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.itemsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n as: \"li\",\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.itemsContainer]: {\n props: {\n ...groupProps,\n },\n as: \"ul\",\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuItem as useAriaMenuItem } from \"@react-aria/menu\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport { getDefaultPlasmicProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuItemProps extends ItemLikeProps {\n /**\n * Called when this item is selected\n */\n onAction?: (key: string) => void;\n}\n\ninterface MenuItemConfig<C extends AnyPlasmicClass> {\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuItem<\n P extends BaseMenuItemProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuItemConfig<C>) {\n const menuContext = React.useContext(MenuContext);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n\n if (!menuContext) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Item within a Menu component.\");\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children, onAction } = props;\n\n const { state, menuProps } = menuContext;\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseMenuItemProps>\n >;\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const ref = React.useRef<HTMLLIElement>(null);\n\n const { menuItemProps, labelProps } = useAriaMenuItem(\n mergeProps(\n {\n // We need to merge both the onAction on MenuItem and the onAction\n // on Menu\n onAction,\n },\n {\n onAction: menuProps.onAction,\n onClose: triggerContext?.state.close,\n },\n {\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n isVirtualized: false,\n closeOnSelect: true,\n }\n ),\n state,\n ref\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: \"li\",\n props: mergeProps(menuItemProps, { ref, style: noOutline() }),\n },\n [config.labelContainer]: {\n props: { ...labelProps },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { PressResult, usePress } from \"@react-aria/interactions\";\nimport { useMenuTrigger as useAriaMenuTrigger } from \"@react-aria/menu\";\nimport { MenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"../plume-utils\";\nimport { TriggeredOverlayContextValue } from \"../triggered-overlay/context\";\n\n/**\n * A menu trigger hook that combines react-aria's useMenuTrigger, useAriaMenuTrigger,\n * useOverlayPosition, useOverlay, and usePress\n */\nexport function useMenuTrigger(\n opts: {\n isDisabled?: boolean;\n triggerRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n menuMatchTriggerWidth?: boolean;\n menuWidth?: number;\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n },\n state: MenuTriggerState\n): {\n triggerProps: PressResult[\"pressProps\"];\n makeMenu: () => React.ReactElement;\n triggerContext: TriggeredOverlayContextValue;\n} {\n const {\n triggerRef,\n isDisabled,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n } = opts;\n\n const { menuTriggerProps: triggerPressProps, menuProps } = useAriaMenuTrigger(\n {\n type: \"menu\",\n isDisabled,\n },\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const makeMenu = () => {\n let realMenu = typeof menu === \"function\" ? menu() : menu;\n if (!realMenu) {\n return null;\n }\n if (getPlumeType(realMenu) !== \"menu\") {\n if (PLUME_STRICT_MODE) {\n throw new Error(`Must use an instance of the Menu component.`);\n }\n return null;\n }\n\n return React.cloneElement(realMenu, mergeProps(realMenu.props, menuProps));\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n autoFocus: state.focusStrategy ?? true,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n return {\n triggerProps,\n makeMenu,\n triggerContext,\n };\n}\n","import { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface DropdownMenuProps {\n /**\n * A ReactElement that takes in a `ref` as well as the usual mouse and\n * pointer events. The dropdown menu will be positioned relative to this\n * trigger.\n */\n children: React.ReactElement;\n\n /**\n * The menu to show; must be either a ReactElement of Menu type, or\n * a function that creates one if you prefer to delay creating it until\n * the menu has been triggered.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Where to place the menu relative to the trigger.\n */\n placement?: Placement;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state.\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport function DropdownMenu(props: DropdownMenuProps) {\n const { isOpen, defaultOpen, onOpenChange, children, placement, menu } =\n props;\n\n const triggerRef = React.useRef<HTMLElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n triggerRef,\n placement,\n menu,\n },\n state\n );\n\n return (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {React.cloneElement(\n children,\n mergeProps(children.props, triggerProps, { ref: triggerRef })\n )}\n {state.isOpen && makeMenu()}\n </TriggeredOverlayContext.Provider>\n );\n}\n","import { useFocusable } from \"@react-aria/focus\";\nimport { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport { DOMProps, FocusableProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface BaseMenuButtonProps\n extends DOMProps,\n FocusableProps,\n StyleProps,\n Pick<React.ComponentProps<\"button\">, \"title\"> {\n /**\n * The menu to show; can either be a Menu instance, or a function that returns a Menu\n * instance if you want to defer creating the instance till when it's opened.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Whether the button is disabled\n */\n isDisabled?: boolean;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n}\n\nexport interface MenuButtonConfig<C extends AnyPlasmicClass> {\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n menuSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n}\n\ninterface MenuButtonState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n}\n\nexport type MenuButtonRef = React.Ref<MenuButtonRefValue>;\n\nexport interface MenuButtonRefValue extends MenuButtonState {\n getRoot: () => HTMLElement | null;\n getTrigger: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\nexport function useMenuButton<\n P extends BaseMenuButtonProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: MenuButtonConfig<C>,\n outerRef: MenuButtonRef = null\n) {\n const {\n placement,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n menu,\n autoFocus,\n menuMatchTriggerWidth,\n menuWidth,\n } = props;\n\n useEnsureSSRProvider();\n const rootRef = React.useRef<HTMLElement>(null);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n isDisabled,\n triggerRef,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n },\n state\n );\n\n const { focusableProps: triggerFocusProps } = useFocusable(props, triggerRef);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.menuSlot]: state.isOpen ? makeMenu() : undefined,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n wrapChildren: (children: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {children}\n </TriggeredOverlayContext.Provider>\n ),\n props: {\n ref: rootRef,\n },\n },\n [config.trigger]: {\n props: mergeProps(\n triggerProps,\n triggerFocusProps,\n getStyleProps(props),\n pick(props, \"title\"),\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Make sure this button is not interpreted as submit\n type: \"button\",\n }\n ),\n },\n };\n\n const plumeState: MenuButtonState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n }),\n [state]\n );\n\n React.useImperativeHandle(\n outerRef,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current && triggerRef.current.focus(),\n blur: () => triggerRef.current && triggerRef.current.blur(),\n open: plumeState.open,\n close: plumeState.close,\n isOpen: plumeState.isOpen,\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import * as React from \"react\";\nimport type { ListState } from \"@react-stately/list\";\n\nexport const SelectContext = React.createContext<ListState<any> | undefined>(\n undefined\n);\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { usePress } from \"@react-aria/interactions\";\nimport { AriaListBoxOptions, useListBox } from \"@react-aria/listbox\";\nimport { HiddenSelect, useSelect as useAriaSelect } from \"@react-aria/select\";\nimport {\n SelectState as AriaSelectState,\n useSelectState as useAriaSelectState,\n} from \"@react-stately/select\";\nimport { Placement } from \"@react-types/overlays\";\nimport { AriaSelectProps } from \"@react-types/select\";\nimport {\n AriaLabelingProps,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputBase,\n} from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n getChildProp,\n ItemJson,\n ItemLikeProps,\n renderAsCollectionChild,\n renderCollectionNode,\n SectionLikeProps,\n useDerivedItems,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport {\n TriggeredOverlayContext,\n TriggeredOverlayContextValue,\n} from \"../triggered-overlay/context\";\nimport { SelectContext } from \"./context\";\nimport { BaseSelectOptionProps } from \"./select-option\";\nimport { BaseSelectOptionGroupProps } from \"./select-option-group\";\n\nexport interface BaseSelectProps\n extends DOMProps,\n AriaLabelingProps,\n FocusableDOMProps,\n InputBase,\n FocusableProps,\n StyleProps {\n /**\n * Key of the currently selected value\n */\n value?: string | null;\n\n /**\n * Event handler fired when currently selected value changes\n */\n onChange?: (value: string | null) => void;\n\n /**\n * Uncontrolled key of the default selected value\n */\n defaultValue?: string;\n\n /**\n * List of Select.Options\n */\n children?: React.ReactNode;\n\n /**\n * List of options as an array, instead of using `children` prop. If this\n * is passed in, then `children` is ignored.\n *\n * The options can be a list of strings, or a list of objects with\n * fields `value` (for the value of the option), `label` (for what's rendered\n * in the option), and `isDisabled` (if the option should be disabled).\n */\n options?: ItemJson[];\n\n /**\n * Whether the Select is currently open\n */\n isOpen?: boolean;\n\n /**\n * Event handler fired when Select's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Uncontrolled default open state\n */\n defaultOpen?: boolean;\n\n /**\n * Form name of the select element\n */\n name?: string;\n\n /**\n * By default, Select will render whatever is in Select.Option as the\n * content in the trigger button when it is selected. You can override\n * what content by passing in `selectedContent` here.\n */\n selectedContent?: React.ReactNode;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n\n /**\n * Content to display when nothing is selected.\n */\n placeholder?: React.ReactNode;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"select-option\",\n sectionPlumeType: \"select-option-group\",\n};\n\ntype AriaOptionType = React.ReactElement<BaseSelectOptionProps>;\ntype AriaGroupType = React.ReactElement<BaseSelectOptionGroupProps>;\ntype AriaSelectItemType = AriaOptionType | AriaGroupType;\n\n/**\n * Converts props in our BaseSelectProps into props that react-aria's\n * useSelect() understands.\n *\n * Because we're not exposing the Collections API (see ./index.tsx),\n * we are converting our own API into props for useSelect.\n *\n * Specifically, in Plume's API,\n * - `children` flattens to a list of ReactElements of type Select.Option\n * or Select.OptionGroup\n *\n * and we map it this way to the Collections API:\n * - `items` is a list of those flattened ReactElements from `children`!\n * - `children`, as a render prop, is supposed to take one of the `items`\n * and return a `Section` or `Item` element. We take an Option/OptionGroup\n * element, and use its props to render the appropriate `Section` or\n * `Item`. The \"trick\" here is that we then stuff the Option element as\n * `Item.children`, and the OptionGroup element as `Section.title`.\n *\n * When the Collections API does its work deriving `Node`s, the corresponding\n * Option/OptionGroup ReactElements will end up as `Node.rendered`.\n *\n * Then, when we are actually rendering the content of the dropdown, we\n * iterate through each collected `Node`, and renders\n * React.cloneElement(Node.rendered, {_node: node}). This \"secretly\" passes\n * the derived collection `Node` as a prop to Option and OptionGroup, and they\n * can make use of the derived `Node.key` etc in their rendering functions.\n *\n * One thing to note here is that we never \"rendered\" the Option/OptionGroup\n * React elements that the user constructed; instead, we just looked at the\n * props used on those elements, and passed those onto the Collections API.\n * What gets rendered to the screen is the cloned version of these elements\n * with the secret derived `_node` prop. That means Option and OptionGroup\n * render functions can assume that _node is passed in.\n */\nfunction useAriaSelectProps(props: BaseSelectProps, config: SelectConfig<any>) {\n const {\n value,\n defaultValue,\n children,\n onChange,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n ...rest\n } = props;\n\n const { items, disabledKeys } = useDerivedItems(props, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Select.Option and Select.OptionGroup as children to Select`,\n requireItemValue: true,\n ItemComponent: config.OptionComponent,\n SectionComponent: config.OptionGroupComponent,\n itemsProp: \"options\",\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n const onSelectionChange = React.useMemo(() => {\n if (onChange) {\n return (val: string | null) =>\n onChange!(\n (val == null || val === \"null\" ? null : val) as string | null\n );\n } else {\n return undefined;\n }\n }, [onChange]);\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n onSelectionChange,\n items,\n disabledKeys,\n defaultSelectedKey: defaultValue,\n\n // react-aria is picky about selectedKey; if it is null, it means \"no selection\";\n // if it is undefined, it means \"uncontrolled\". So here, if the user passes in a\n // value prop, then we make sure selectedKey will be null and not undefined, so\n // we don't accidentally enter uncontrolled mode.\n ...(\"value\" in props && { selectedKey: value ?? null }),\n } as AriaSelectProps<AriaSelectItemType>,\n };\n}\n\nexport type SelectRef = React.Ref<SelectRefValue>;\n\nexport interface SelectRefValue extends SelectState {\n getTrigger: () => HTMLElement | null;\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SelectConfig<C extends AnyPlasmicClass> {\n placeholderVariant?: VariantDef<PlasmicClassVariants<C>>;\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n triggerContentSlot: keyof PlasmicClassArgs<C>;\n optionsSlot: keyof PlasmicClassArgs<C>;\n placeholderSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n overlay: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n\n OptionComponent?: React.ComponentType<ItemLikeProps>;\n OptionGroupComponent?: React.ComponentType<SectionLikeProps>;\n}\n\ninterface SelectState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getSelectedValue: () => string | null;\n setSelectedValue: (value: string | null) => void;\n}\n\nexport function useSelect<P extends BaseSelectProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SelectConfig<C>,\n ref: React.Ref<SelectRefValue> = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = useAriaSelectProps(props, config);\n const { placement } = props;\n const state = useAriaSelectState<AriaSelectItemType>(ariaProps);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const {\n isDisabled,\n name,\n menuWidth,\n menuMatchTriggerWidth,\n autoFocus,\n placeholder,\n selectedContent,\n } = props;\n\n const canvasCtx = usePlasmicCanvasContext();\n\n const { triggerProps: triggerPressProps, menuProps } = useAriaSelect(\n ariaProps,\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const triggerContent = state.selectedItem?.value\n ? selectedContent ?? getChildProp(state.selectedItem.value, \"children\")\n : null;\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.placeholderVariant, active: !state.selectedItem },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n {(!canvasCtx || canvasCtx.interactive) && (\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n name={name}\n isDisabled={isDisabled}\n />\n )}\n {children}\n </>\n ),\n },\n [config.trigger]: {\n props: mergeProps(\n canvasCtx && !canvasCtx.interactive ? {} : triggerProps,\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Don't trigger form submission!\n type: \"button\",\n }\n ),\n },\n [config.overlay]: {\n wrap: (content: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {content}\n </TriggeredOverlayContext.Provider>\n ),\n },\n [config.optionsContainer]: {\n wrap: (content: React.ReactNode) => (\n <ListBoxWrapper state={state} menuProps={menuProps}>\n {content as React.ReactElement}\n </ListBoxWrapper>\n ),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.triggerContentSlot]: triggerContent,\n [config.placeholderSlot]: placeholder,\n [config.optionsSlot]: (\n <SelectContext.Provider value={state}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </SelectContext.Provider>\n ),\n };\n\n const plumeState: SelectState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n getSelectedValue: () =>\n state.selectedKey ? `${state.selectedKey}` : null,\n setSelectedValue: (key) => state.setSelectedKey(key as any),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current?.focus(),\n blur: () => triggerRef.current?.blur(),\n open: () => plumeState.open(),\n close: () => plumeState.close(),\n isOpen: () => plumeState.isOpen(),\n getSelectedValue: () => plumeState.getSelectedValue(),\n setSelectedValue: (key) => plumeState.setSelectedValue(key),\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n\nfunction ListBoxWrapper(props: {\n state: AriaSelectState<any>;\n menuProps: AriaListBoxOptions<any>;\n children: React.ReactElement;\n}) {\n const { state, menuProps, children } = props;\n\n const ref = React.useRef<HTMLElement>(null);\n const canvasCtx = usePlasmicCanvasContext();\n\n const { listBoxProps } = useListBox(\n {\n ...menuProps,\n isVirtualized: false,\n autoFocus: state.focusStrategy || true,\n disallowEmptySelection: true,\n },\n state,\n ref\n );\n\n return React.cloneElement(\n children,\n mergeProps(\n children.props,\n canvasCtx && !canvasCtx.interactive ? {} : listBoxProps,\n {\n style: noOutline(),\n ref,\n }\n )\n );\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { useOption as useAriaOption } from \"@react-aria/listbox\";\nimport { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps, mergeRefs } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionProps extends ItemLikeProps, StyleProps {}\n\ninterface SelectOptionConfig<C extends AnyPlasmicClass> {\n isSelectedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type SelectOptionRef = React.Ref<HTMLElement>;\n\nexport function useSelectOption<\n P extends BaseSelectOptionProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: SelectOptionConfig<C>,\n outerRef: SelectOptionRef = null\n) {\n const state = React.useContext(SelectContext);\n\n if (!state) {\n // If no context, then we are being incorrectly used. Complain or just don't\n // bother installing any hooks. It's okay to violate rules of hooks here\n // because this instance won't suddenly be used correctly in another render.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.Option within a Select component.\"\n );\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n\n const canvasCtx = usePlasmicCanvasContext();\n const rootRef = React.useRef<HTMLElement>(null);\n const onRef = mergeRefs(rootRef, outerRef);\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseSelectOptionProps>\n >;\n\n const isSelected = state.selectionManager.isSelected(node.key);\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const { optionProps, labelProps } = useAriaOption(\n {\n isSelected,\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n isVirtualized: false,\n shouldUseVirtualFocus: canvasCtx && !canvasCtx.interactive,\n },\n state,\n rootRef\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isSelectedVariant, active: isSelected },\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(\n canvasCtx && !canvasCtx.interactive ? {} : optionProps,\n getStyleProps(props),\n {\n ref: onRef,\n style: noOutline(),\n }\n ),\n },\n [config.labelContainer]: {\n props: labelProps,\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useListBoxSection } from \"@react-aria/listbox\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionGroupProps\n extends SectionLikeProps,\n StyleProps {}\n\ninterface SelectOptionGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: VariantDef<PlasmicClassVariants<C>>;\n isFirstVariant: VariantDef<PlasmicClassVariants<C>>;\n\n optionsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSelectOptionGroup<\n P extends BaseSelectOptionGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: SelectOptionGroupConfig<C>) {\n const state = React.useContext(SelectContext);\n\n // `node` should exist if the OptionGroup was instantiated properly\n // within a Select\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseSelectOptionGroupProps>>\n | undefined;\n\n if (!state || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.OptionGroup within a Select component.\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useListBoxSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.optionsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.optionsContainer]: {\n props: {\n ...groupProps,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { useSwitch as useAriaSwitch } from \"@react-aria/switch\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaSwitchProps } from \"@react-types/switch\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type SwitchRef = React.Ref<SwitchRefValue>;\nexport interface SwitchRefValue extends SwitchState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SwitchState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface SwitchProps\n extends Omit<AriaSwitchProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Switch is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Switch is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n}\n\nfunction asAriaSwitchProps(props: SwitchProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface SwitchConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSwitch<P extends SwitchProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SwitchConfig<C>,\n ref: SwitchRef = null\n) {\n const { children, isDisabled } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaSwitchProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaSwitch(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: SwitchState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n","import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\nexport interface BaseTextInputProps\n extends Omit<React.ComponentProps<\"input\">, \"type\" | \"disabled\">,\n PlumeTextInputProps {}\n\nexport interface PlumeTextInputProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n isDisabled?: boolean;\n type?: \"text\" | \"password\" | \"email\" | \"url\" | string;\n inputClassName?: string;\n inputStyle?: React.CSSProperties;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface TextInputRefValue {\n focus: () => void;\n blur: () => void;\n getRoot: () => HTMLElement | null;\n getInput: () => HTMLInputElement | null;\n}\n\nexport type TextInputRef = React.Ref<TextInputRefValue>;\n\ninterface TextInputConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n input: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useTextInput<\n P extends PlumeTextInputProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TextInputConfig<C>,\n ref: TextInputRef = null\n) {\n const {\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n className,\n style,\n inputClassName,\n inputStyle,\n ...rest\n } = props;\n const rootRef = React.useRef<HTMLElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useImperativeHandle(\n ref,\n () => ({\n focus() {\n inputRef.current?.focus();\n },\n blur() {\n inputRef.current?.blur();\n },\n getRoot() {\n return rootRef.current;\n },\n getInput() {\n return inputRef.current;\n },\n getBoundingClientRect() {\n return rootRef.current?.getBoundingClientRect();\n },\n }),\n [rootRef, inputRef]\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: {\n ref: rootRef,\n className,\n style,\n },\n },\n [config.input]: {\n props: {\n // We throw all of extra \"rest\" onto the `input` element, except props\n // that were meant for the Plasmic component -- the args and variants.\n // We make two exceptions though:\n // 1. onChange - Plume text-input is kind of screwy, and the \"value\" state\n // of the input element is not exposed to the outer component via the\n // normal way; instead, we register a separate \"value\" state that's\n // in additional to the input.value state. So that means there are\n // two `onChange` that we need to pipe through -- the one that updates\n // `$state.input.value`, the input value state internal to the component,\n // and the one that updates `$state.value`, the separate value state\n // exposed to the outside. The generated <PlasmicTextInput/> will pass\n // in the onChange for updating the internal `$state.input.value`, and\n // props.onChange here will pass in the onChange for updating the\n // externally exposed `$state.value`. Wow! Very sad. If\n // `$state.input.value` were just externally exposed, then we wouldn't\n // need to do so; but we can't retroactively update people's TextInput\n // components that have already been forked :-/\n // 2. `required`, because that prop existed prior to Plume pkg <= 19.1.1,\n // but it was not linked to the input's `required` attribute as it should.\n // So this again works around older versions of TextInput out there.\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps.filter(\n (prop) => prop !== \"required\" && prop !== \"onChange\"\n ),\n ...plasmicClass.internalVariantProps\n ),\n disabled: isDisabled,\n ref: inputRef,\n className: inputClassName,\n style: inputStyle,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { FocusScope } from \"@react-aria/focus\";\nimport {\n DismissButton,\n useOverlay,\n useOverlayPosition,\n} from \"@react-aria/overlays\";\nimport { DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { pick } from \"../../common\";\nimport {\n mergeProps,\n mergeRefs,\n useIsomorphicLayoutEffect,\n} from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"./context\";\n\nexport interface BaseTriggeredOverlayProps extends StyleProps, DOMProps {\n children?: React.ReactNode;\n}\n\nexport interface TriggeredOverlayConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport type TriggeredOverlayRef = React.Ref<HTMLElement>;\n\nexport function useTriggeredOverlay<\n P extends BaseTriggeredOverlayProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TriggeredOverlayConfig<C>,\n outerRef: TriggeredOverlayRef = null,\n isDismissable = true\n) {\n const overlayRef = React.useRef<HTMLElement>(null);\n const onOverlayRef = mergeRefs(overlayRef, outerRef, (ref) => {\n // Workaround for https://github.com/adobe/react-spectrum/issues/1513\n // to avoid touch events leaking under the overlay when it is closed.\n if (ref) {\n ref.addEventListener(\"touchend\", (e) => {\n e.preventDefault();\n });\n }\n });\n\n const context = React.useContext(TriggeredOverlayContext);\n\n if (!context) {\n // If no context, then we are not being correctly used. Either complain, or\n // exit early. It's okay to exit early and break the rules of React hooks\n // because we won't suddenly have the appropriate context anyway for this instance.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a triggered overlay with a TriggeredOverlayContext\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n const {\n triggerRef,\n placement,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n overlayWidth,\n state,\n } = context;\n\n // Measure the width of the trigger to inform the width of the menu (below).\n const [isRendered, setRendered] = React.useState(false);\n const triggerWidth =\n triggerRef.current && (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ? triggerRef.current.offsetWidth\n : undefined;\n\n useIsomorphicLayoutEffect(() => {\n if (\n !isRendered &&\n triggerRef.current &&\n (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ) {\n setRendered(true);\n }\n }, [\n triggerRef,\n isRendered,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n ]);\n\n const { overlayProps: overlayAriaProps } = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n isDismissable,\n shouldCloseOnBlur: true,\n },\n overlayRef\n );\n\n const {\n overlayProps: overlayPositionProps,\n updatePosition,\n placement: placementAxis,\n } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n placement: placement ?? \"bottom left\",\n shouldFlip: true,\n isOpen: state.isOpen,\n onClose: state.close,\n containerPadding: 0,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (state.isOpen) {\n requestAnimationFrame(() => {\n updatePosition();\n });\n }\n }, [state.isOpen, updatePosition]);\n\n const overlayProps = mergeProps(\n {\n style: {\n left: \"auto\",\n right: \"auto\",\n top: \"auto\",\n bottom: \"auto\",\n position: \"absolute\",\n width:\n overlayWidth ?? (overlayMatchTriggerWidth ? triggerWidth : \"auto\"),\n minWidth: overlayMinTriggerWidth ? triggerWidth : \"auto\",\n },\n },\n overlayAriaProps,\n overlayPositionProps\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isPlacedTopVariant, active: placementAxis === \"top\" },\n { def: config.isPlacedBottomVariant, active: placementAxis === \"bottom\" },\n { def: config.isPlacedLeftVariant, active: placementAxis === \"left\" },\n { def: config.isPlacedRightVariant, active: placementAxis === \"right\" }\n ),\n };\n\n const canvasCtx = usePlasmicCanvasContext();\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.contentSlot]:\n canvasCtx && !canvasCtx.interactive ? (\n children\n ) : (\n <FocusScope restoreFocus>\n <DismissButton onDismiss={state.close} />\n {children}\n {/* We don't use the DismissButton at the end because it ends up taking up 1px space :-/ */}\n {/* <DismissButton onDismiss={state.close} /> */}\n </FocusScope>\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(overlayProps, getStyleProps(props), {\n ref: onOverlayRef,\n }),\n wrap: (root: React.ReactNode) => {\n if (typeof document !== \"undefined\") {\n return ReactDOM.createPortal(root, document.body);\n } else {\n // Possibly being invoked on the server during SSR; no need to\n // bother with a portal in that case.\n return root;\n }\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["usePlasmicDataSourceContext","plasmicQuery","React","useIsomorphicLayoutEffect","classNames","usePlasmicLinkMaybe","HostPlasmicTranslatorContext","useHostPlasmicTranslator","DataProvider","SSRProvider","PlasmicDataSourceContextProvider","PlasmicLinkProvider","useAriaIsSSR","useAriaFocusRing","useAriaHover","useAriaPress","isNum","isValtioProxy","subscribe","createValtioRef","createValtioProxy","useSnapshot","useLayoutEffect","useEffect","_classNames","useToggleState","useAriaCheckbox","VisuallyHidden","Item","Section","COLLECTION_OPTS","useTreeState","useAriaMenu","useMenuSection","useSeparator","useAriaMenuItem","menu","useAriaMenuTrigger","usePress","useMenuTriggerState","useFocusable","useAriaSelectState","usePlasmicCanvasContext","useAriaSelect","HiddenSelect","useListBox","useAriaOption","useListBoxSection","useAriaSwitch","useOverlay","useOverlayPosition","FocusScope","DismissButton","ReactDOM"],"mappings":"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"}
|