@plasmicapp/react-web 0.2.403 → 0.2.405
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 +14 -10
- 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 +8 -8
- 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/skinny/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/auth/PlasmicPageGuard.tsx","../../src/render/PlasmicIcon.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/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"],"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","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 * 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 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"],"names":["React","ReactDOM","useIsomorphicLayoutEffect","useAriaFocusRing","useAriaHover","useAriaPress","isNum","isValtioProxy","createValtioRef","createValtioProxy","_classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/auth/PlasmicPageGuard.tsx","../../src/render/PlasmicIcon.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/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"],"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","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 * 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 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"],"names":["React","ReactDOM","useIsomorphicLayoutEffect","useAriaFocusRing","useAriaHover","useAriaPress","isNum","isValtioProxy","createValtioRef","createValtioProxy","_classNames"],"mappings":"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"}
|