@plasmicapp/react-web 0.2.124 → 0.2.126

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.
@@ -1,4 +1,5 @@
1
1
  import get from "dlv";
2
+ import { useLayoutEffect } from "react";
2
3
  import { $State } from ".";
3
4
  export declare function generateStateOnChangeProp($state: $State, stateName: string, dataReps: number[]): (val: any, path: (string | number)[]) => void;
4
5
  /**
@@ -13,4 +14,5 @@ export declare function generateStateValueProp($state: $State, path: (string | n
13
14
  * Changes: fixed setting a deep value to a proxy object
14
15
  */
15
16
  export declare function set(obj: any, keys: any, val: any): void;
17
+ export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
16
18
  export { get };
@@ -1,4 +1,4 @@
1
- declare type InitFunc<T> = ($props: Record<string, any>, $state: $State, indexes: number[]) => T;
1
+ declare type InitFunc<T> = ($props: Record<string, any>, $state: $State, $ctx: Record<string, any>, indexes: number[]) => T;
2
2
  export interface $State {
3
3
  [key: string]: any;
4
4
  registerInitFunc?: (path: string, f: InitFunc<any>) => any;
@@ -12,6 +12,6 @@ export interface $StateSpec<T> {
12
12
  onChangeProp?: string;
13
13
  isArray?: boolean;
14
14
  }
15
- export declare function useDollarState(specs: $StateSpec<any>[], props: Record<string, any>): any;
15
+ export declare function useDollarState(specs: $StateSpec<any>[], props: Record<string, any>, $ctx?: Record<string, any>): any;
16
16
  export default useDollarState;
17
- export declare function useCanvasDollarState(specs: $StateSpec<any>[], props: Record<string, any>): any;
17
+ export declare function useCanvasDollarState(specs: $StateSpec<any>[], props: Record<string, any>, $ctx?: Record<string, any>): any;
@@ -31,7 +31,13 @@ export declare const RepeatedStates: import("@storybook/csf").AnnotatedStoryFn<i
31
31
  }>;
32
32
  export declare const NestedRepeatedCounter: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, {}>;
33
33
  export declare const MatrixRepeatedCounter: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, {}>;
34
- export declare const InitFuncFromContextData: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, {
34
+ export declare const InitFuncFromInternalContextData: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, {
35
+ products: {
36
+ price: number;
37
+ name: string;
38
+ }[];
39
+ }>;
40
+ export declare const InitFuncFromRootContextData: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, {
35
41
  products: {
36
42
  price: number;
37
43
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicapp/react-web",
3
- "version": "0.2.124",
3
+ "version": "0.2.126",
4
4
  "description": "plasmic library for rendering in the presentational style",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "prettier": {},
42
42
  "dependencies": {
43
- "@plasmicapp/data-sources": "0.1.14",
43
+ "@plasmicapp/data-sources": "0.1.15",
44
44
  "@plasmicapp/data-sources-context": "0.1.2",
45
45
  "@plasmicapp/host": "1.0.85",
46
46
  "@plasmicapp/query": "0.1.55",
@@ -108,5 +108,5 @@
108
108
  "react": ">=16.8.0",
109
109
  "react-dom": ">=16.8.0"
110
110
  },
111
- "gitHead": "00b3f5ec9773b3770b8f1f4e0b5cd28abda89ccf"
111
+ "gitHead": "851946852b0740179cdff9a42f2216a8b78cda33"
112
112
  }
@@ -2,8 +2,8 @@ import classNames$1 from 'classnames';
2
2
  import get from 'dlv';
3
3
  export { default as get } from 'dlv';
4
4
  import * as React from 'react';
5
- import React__default from 'react';
6
- import { c as createElementWithChildren, m as mergeProps, e as ensureNotArray, N as NONE, a as mergePropVals, i as isReactNode, b as isBrowser, u as useIsomorphicLayoutEffect } from './react-utils-7bc53870.js';
5
+ import React__default, { useLayoutEffect, useEffect } from 'react';
6
+ import { c as createElementWithChildren, m as mergeProps, e as ensureNotArray, N as NONE, a as mergePropVals, i as isReactNode, b as isBrowser, u as useIsomorphicLayoutEffect$1 } from './react-utils-7bc53870.js';
7
7
  import { _ as __rest, a as __assign, b as __spreadArray, c as __read, o as omit, p as pick, d as __values, i as isSubset, e as chainSingleArgFuncs, n as notNil } from './common-9ebe374e.js';
8
8
  export { o as omit, p as pick } from './common-9ebe374e.js';
9
9
  export { PlasmicHead, plasmicHeadMeta } from './render/PlasmicHead/index.js';
@@ -537,7 +537,7 @@ function createUseScreenVariants(isMulti, screenQueries) {
537
537
  // register our forceUpdate. This ensures that if there was
538
538
  // a window resize event between render and effects, that the
539
539
  // listener will be registered in time
540
- useIsomorphicLayoutEffect(function () {
540
+ useIsomorphicLayoutEffect$1(function () {
541
541
  var updateIfChanged = function () {
542
542
  if (curScreenVariants &&
543
543
  lastScreenVariantsRef.current.join("") !== curScreenVariants.join("")) {
@@ -679,9 +679,12 @@ function set(obj, keys, val) {
679
679
  }
680
680
  }
681
681
  }
682
- }
682
+ }
683
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
683
684
 
684
- var mkUntrackedValue = function (o) { return (typeof o === "object" ? ref(o) : o); };
685
+ var mkUntrackedValue = function (o) {
686
+ return o != null && typeof o === "object" ? ref(o) : o;
687
+ };
685
688
  var transformPathStringToObj = function (str) {
686
689
  var splitStatePathPart = function (state) {
687
690
  return state.endsWith("[]")
@@ -878,11 +881,11 @@ function initializeStateValue($$state, initialStatePath, initialSpec) {
878
881
  stateAccess.forEach(function (_a) {
879
882
  var path = _a.path, spec = _a.spec;
880
883
  var unsubscribe = subscribeKey(get($$state.stateValues, path.slice(-1)), path.slice(-1)[0], function () {
881
- return set($$state.stateValues, initialStatePath, mkUntrackedValue(initialSpec.initFunc($$state.props, $state, getIndexes(path, spec))));
884
+ return set($$state.stateValues, initialStatePath, mkUntrackedValue(initialSpec.initFunc($$state.props, $state, $$state.ctx, getIndexes(path, spec))));
882
885
  });
883
886
  $$state.unsubscriptionsByState[initialStateKey].push(unsubscribe);
884
887
  });
885
- var initialValue = initialSpec.initFunc($$state.props, $state, getIndexes(initialStatePath, initialSpec));
888
+ var initialValue = initialSpec.initFunc($$state.props, $state, $$state.ctx, getIndexes(initialStatePath, initialSpec));
886
889
  saveStateInitialValue($$state, initialStatePath, initialSpec, initialValue);
887
890
  return initialValue;
888
891
  }
@@ -904,7 +907,7 @@ function saveStateInitialValue($$state, path, spec, initialValue) {
904
907
  set($$state.initStateValues, path, untrackedValue);
905
908
  }
906
909
  }
907
- function useDollarState(specs, props) {
910
+ function useDollarState(specs, props, $ctx) {
908
911
  var $$state = React__default.useRef(proxy({
909
912
  stateValues: {},
910
913
  initStateValues: {},
@@ -917,10 +920,12 @@ function useDollarState(specs, props) {
917
920
  statesInstanceBySpec: new Map(),
918
921
  existingStates: new Map(),
919
922
  unsubscriptionsByState: {},
920
- props: undefined,
923
+ props: {},
924
+ ctx: {},
921
925
  registrationsQueue: []
922
926
  })).current;
923
927
  $$state.props = mkUntrackedValue(props);
928
+ $$state.ctx = mkUntrackedValue($ctx !== null && $ctx !== void 0 ? $ctx : {});
924
929
  var $state = React__default.useRef(Object.assign(create$StateProxy($$state, function (path, spec) {
925
930
  var _a;
926
931
  var key = JSON.stringify(path);
@@ -958,7 +963,7 @@ function useDollarState(specs, props) {
958
963
  if ((_a = $$state.statesInstanceBySpec
959
964
  .get(pathStr)) === null || _a === void 0 ? void 0 : _a.some(function (_a) {
960
965
  var path = _a.path, specKey = _a.specKey;
961
- return !deepEqual(get($$state.initStateValues, path), f(props, $state, getIndexes(path, $$state.specsByKey[specKey])));
966
+ return !deepEqual(get($$state.initStateValues, path), f(props, $state, $ctx !== null && $ctx !== void 0 ? $ctx : {}, getIndexes(path, $$state.specsByKey[specKey])));
962
967
  })) {
963
968
  $$state.registrationsQueue.push({ pathStr: pathStr, f: f });
964
969
  }
@@ -971,13 +976,13 @@ function useDollarState(specs, props) {
971
976
  var path = _a.path, specKey = _a.specKey;
972
977
  var spec = $$state.specsByKey[specKey];
973
978
  if (spec.initFunc) {
974
- var newInit = spec.initFunc(props, $state, getIndexes(path, spec));
979
+ var newInit = spec.initFunc(props, $state, $ctx !== null && $ctx !== void 0 ? $ctx : {}, getIndexes(path, spec));
975
980
  if (!deepEqual(newInit, get($$state.initStateValues, path))) {
976
981
  resetSpecs.push({ path: path, spec: spec });
977
982
  }
978
983
  }
979
984
  });
980
- React__default.useLayoutEffect(function () {
985
+ useIsomorphicLayoutEffect(function () {
981
986
  resetSpecs.forEach(function (_a) {
982
987
  var _b, _c;
983
988
  var path = _a.path, spec = _a.spec;
@@ -987,7 +992,7 @@ function useDollarState(specs, props) {
987
992
  }
988
993
  });
989
994
  }, [props, resetSpecs]);
990
- React__default.useLayoutEffect(function () {
995
+ useIsomorphicLayoutEffect(function () {
991
996
  $$state.registrationsQueue.forEach(function (_a) {
992
997
  var f = _a.f, pathStr = _a.pathStr;
993
998
  $$state.specsByKey[pathStr].initFunc = f;
@@ -1000,7 +1005,7 @@ function useDollarState(specs, props) {
1000
1005
  return $state;
1001
1006
  }
1002
1007
  // Simple version of $state useDollarState for read-only
1003
- function useCanvasDollarState(specs, props) {
1008
+ function useCanvasDollarState(specs, props, $ctx) {
1004
1009
  var e_2, _a;
1005
1010
  var $$state = proxy({
1006
1011
  stateValues: {},
@@ -1012,10 +1017,12 @@ function useCanvasDollarState(specs, props) {
1012
1017
  statesInstanceBySpec: new Map(),
1013
1018
  existingStates: new Map(),
1014
1019
  unsubscriptionsByState: {},
1015
- props: undefined,
1020
+ props: {},
1021
+ ctx: {},
1016
1022
  registrationsQueue: []
1017
1023
  });
1018
1024
  $$state.props = mkUntrackedValue(props);
1025
+ $$state.ctx = mkUntrackedValue($ctx);
1019
1026
  var $state = create$StateProxy($$state, function (path, spec) {
1020
1027
  return {
1021
1028
  get: function () {
@@ -1058,5 +1065,5 @@ function useCanvasDollarState(specs, props) {
1058
1065
  // Utilities used by generated code
1059
1066
  var classNames = classNames$1;
1060
1067
 
1061
- export { PlasmicIcon, PlasmicLink, PlasmicSlot, Stack, classNames, createPlasmicElementProxy, createUseScreenVariants, deriveRenderOpts, ensureGlobalVariants, generateStateOnChangeProp, generateStateValueProp, hasVariant, makeFragment, mergeVariantsWithStates, renderPlasmicSlot, set, useCanvasDollarState, useDollarState, useTrigger, wrapWithClassName };
1068
+ export { PlasmicIcon, PlasmicLink, PlasmicSlot, Stack, classNames, createPlasmicElementProxy, createUseScreenVariants, deriveRenderOpts, ensureGlobalVariants, generateStateOnChangeProp, generateStateValueProp, hasVariant, makeFragment, mergeVariantsWithStates, renderPlasmicSlot, set, useCanvasDollarState, useDollarState, useIsomorphicLayoutEffect, useTrigger, wrapWithClassName };
1062
1069
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/states/helpers.ts","../../src/states/valtio.tsx","../../src/index-common.tsx"],"sourcesContent":["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","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/valtio\";\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) {\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\" : \"__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 (!override || Object.keys(override).length === 0) {\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","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues 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 globalVariantValues;\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 React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n { ...pick(props, ...nextjsProps), legacyBehavior: true },\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\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 (!content || (Array.isArray(content) && content.length === 0)) {\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 = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\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}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (\n React.isValidElement(node) &&\n // Fragment and Trans don't render DOM elements\n (node.type === React.Fragment || node.type === Trans)\n ) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\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 * 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 * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\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 }) {\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 }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\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 get from \"dlv\";\nimport { $State } from \".\";\n\nexport function generateStateOnChangeProp(\n $state: $State,\n stateName: string,\n dataReps: number[]\n): (val: any, path: (string | number)[]) => void {\n return (val, path) => set($state, [stateName, ...dataReps, ...path], val);\n}\n\n/**\n * This function generate the state value prop for repeated states\n * Example:\n * - parent[][].counter[].count\n * We need to pass `parent[index1][index2].counter to the child component\n */\nexport function generateStateValueProp(\n $state: $State,\n path: (string | number)[] // [\"parent\", 0, 1, \"counter\"]\n) {\n return get($state, path);\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 if (i === l) {\n t[k] = val;\n t = t[k];\n } else {\n if (typeof (x = t[k]) === typeof keys) {\n t = t[k] = x;\n } else if (keys[i] * 0 !== 0 || !!~(\"\" + keys[i]).indexOf(\".\")) {\n t[k] = {};\n t = t[k];\n } else {\n t[k] = [];\n t = t[k];\n }\n }\n }\n}\n\nexport { get };\n","import get from \"dlv\";\nimport deepEqual from \"fast-deep-equal\";\nimport React from \"react\";\nimport { proxy as createValtioProxy, ref, useSnapshot } from \"valtio\";\nimport { subscribeKey } from \"valtio/utils\";\nimport { set } from \"./helpers\";\n\nconst mkUntrackedValue = (o: any) => (typeof o === \"object\" ? ref(o) : o);\n\ntype InitFunc<T> = (\n $props: Record<string, any>,\n $state: $State,\n indexes: number[]\n) => T;\ntype ObjectPath = (string | number)[];\n\nexport interface $State {\n [key: string]: any;\n registerInitFunc?: (path: string, f: InitFunc<any>) => any;\n}\n\ninterface Internal$StateSpec<T> extends $StateSpec<T> {\n isRepeated: boolean;\n pathObj: ObjectPath;\n}\n\ninterface Internal$StateInstance {\n path: ObjectPath; // [\"counter\", 0, \"count\"]\n specKey: string;\n}\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 isArray?: boolean;\n}\n\ninterface Internal$State {\n stateValues: Record<string, any>;\n initStateValues: Record<string, any>;\n unsubscriptionsByState: Record<string, (() => void)[]>;\n specsByKey: Record<string, Internal$StateSpec<any>>;\n statesInstanceBySpec: Map<string, Internal$StateInstance[]>;\n existingStates: Map<string, Internal$StateInstance>;\n registrationsQueue: { pathStr: string; f: InitFunc<any> }[];\n props: any;\n}\n\nconst transformPathStringToObj = (str: string) => {\n const splitStatePathPart = (state: string): string[] =>\n state.endsWith(\"[]\")\n ? [...splitStatePathPart(state.slice(0, -2)), \"[]\"]\n : [state];\n return str.split(\".\").flatMap(splitStatePathPart);\n};\n\nfunction 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\nfunction isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\nfunction saveNewState<T>(\n $$state: Internal$State,\n path: ObjectPath,\n spec: Internal$StateSpec<T>\n) {\n const key = JSON.stringify(path);\n $$state.existingStates.set(key, { path, specKey: spec.path });\n if (!$$state.statesInstanceBySpec.has(spec.path)) {\n $$state.statesInstanceBySpec.set(spec.path, []);\n }\n $$state.statesInstanceBySpec\n .get(spec.path)!\n .push({ path, specKey: spec.path });\n}\n\nfunction create$StateProxy(\n $$state: Internal$State,\n handlers: (\n path: ObjectPath,\n spec: Internal$StateSpec<any>\n ) => ProxyHandler<any>\n) {\n const getNextKeyToSpecMap = (currPath: ObjectPath) =>\n new Map(\n Object.entries(\n Object.values($$state.specsByKey)\n .filter((spec) =>\n shallowEqual(\n currPath.map((p) => (isNum(p) ? \"[]\" : p)),\n spec.pathObj.slice(0, currPath.length)\n )\n )\n .reduce((agg, spec) => {\n const nextKey = spec.pathObj[currPath.length];\n if (!(nextKey in agg)) {\n agg[nextKey] = [];\n }\n agg[nextKey].push(spec);\n return agg;\n }, {} as Record<string, Internal$StateSpec<any>[]>)\n )\n );\n const rec = (currPath: ObjectPath) => {\n const nextKeyToSpecs = getNextKeyToSpecMap(currPath);\n const getSpecForProperty = (property: string | number | symbol) => {\n return nextKeyToSpecs.has(\"[]\") && isNum(property)\n ? nextKeyToSpecs.get(\"[]\")?.[0]\n : typeof property === \"string\" && nextKeyToSpecs.has(property)\n ? nextKeyToSpecs.get(property)?.[0]\n : undefined;\n };\n const getNextPath = (property: string | number | symbol) => [\n ...currPath,\n isNum(property) ? +property : (property as string),\n ];\n\n return new Proxy(nextKeyToSpecs.has(\"[]\") ? ([] as any) : ({} as any), {\n deleteProperty(target, property) {\n const prefixPath = getNextPath(property);\n const specKeysToUpdate = new Set<string>();\n $$state.existingStates.forEach(({ path, specKey }) => {\n if (\n path.length >= prefixPath.length &&\n shallowEqual(path.slice(0, prefixPath.length), prefixPath)\n ) {\n deleteState($$state, path);\n specKeysToUpdate.add(specKey);\n }\n });\n specKeysToUpdate.forEach((specKey) => {\n const spec = $$state.specsByKey[specKey];\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(\n get($$state.stateValues, currPath),\n currPath\n );\n }\n });\n return Reflect.deleteProperty(target, property);\n },\n get(target, property, receiver) {\n const spec = getSpecForProperty(property);\n if (spec && typeof property !== \"symbol\") {\n const nextPath = getNextPath(property);\n if (spec.pathObj.length === currPath.length + 1) {\n // reached the end of the spec\n target[property] = handlers(nextPath, spec).get?.(\n target,\n property,\n receiver\n );\n } else if (!(property in target)) {\n target[property] = rec(nextPath);\n }\n }\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n const spec = getSpecForProperty(property);\n const nextPath = getNextPath(property);\n if (spec && typeof property !== \"symbol\") {\n if (spec.pathObj.length === currPath.length + 1) {\n // reached the end of the spec\n target[property] = handlers(nextPath, spec).set?.(\n target,\n property,\n value,\n receiver\n );\n return Reflect.set(target, property, value, receiver);\n } else if (typeof value === \"object\") {\n target[property] = rec(nextPath);\n for (const key of Object.keys(value)) {\n target[property][key] = value[key];\n }\n return true;\n }\n }\n if (property === \"registerInitFunc\" && currPath.length === 0) {\n return Reflect.set(target, property, value, receiver);\n }\n if (nextKeyToSpecs.has(\"[]\")) {\n set($$state.stateValues, nextPath, value);\n nextKeyToSpecs.get(\"[]\")?.forEach((spec) => {\n if (spec?.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, nextPath);\n }\n });\n return Reflect.set(target, property, value, receiver);\n }\n // invalid setting a value that doesn't make part of the spec\n return false;\n },\n });\n };\n\n return rec([]);\n}\n\nconst deleteState = ($$state: Internal$State, path: ObjectPath) => {\n const key = JSON.stringify(path);\n $$state.unsubscriptionsByState[key]?.forEach((f: any) => f());\n delete $$state.unsubscriptionsByState[key];\n $$state.existingStates.delete(key);\n\n // delete get($$state.stateValues, path.slice(-1))[path.slice(-1)[0]];\n // delete get($$state.initStateValues, path.slice(-1))[path.slice(-1)[0]];\n};\n\nconst getIndexes = (path: ObjectPath, spec: Internal$StateSpec<any>) => {\n const indexes = [];\n if (path.length !== spec.pathObj.length) {\n throw new Error(\n \"Unexpected error: state path and spec path have different lengths\"\n );\n }\n for (let i = 0; i < spec.pathObj.length; i++) {\n if (spec.pathObj[i] === \"[]\") {\n indexes.push(path[i] as number);\n }\n }\n return indexes;\n};\n\nfunction initializeStateValue(\n $$state: Internal$State,\n initialStatePath: ObjectPath,\n initialSpec: Internal$StateSpec<any>\n) {\n const initialStateKey = JSON.stringify(initialStatePath);\n const stateAccess: Set<{\n path: ObjectPath;\n spec: Internal$StateSpec<any>;\n }> = new Set();\n const $state = create$StateProxy($$state, (path, spec) => ({\n get() {\n const key = JSON.stringify(path);\n stateAccess.add({ path, spec });\n if (spec.valueProp) {\n return !spec.isRepeated\n ? $$state.props[spec.valueProp]\n : get($$state.props[spec.valueProp], path.slice(1));\n }\n if ($$state.existingStates.has(key)) {\n // is already initialized\n return get($$state.stateValues, path);\n } else if (spec.initFunc) {\n initializeStateValue($$state, path, spec);\n }\n return get($$state.stateValues, path);\n },\n set() {\n throw new Error(`Cannot update state values during initialization`);\n },\n }));\n\n $$state.unsubscriptionsByState[initialStateKey]?.forEach((f: any) => f());\n $$state.unsubscriptionsByState[initialStateKey] = [];\n stateAccess.forEach(({ path, spec }) => {\n const unsubscribe = subscribeKey(\n get($$state.stateValues, path.slice(-1)),\n path.slice(-1)[0],\n () =>\n set(\n $$state.stateValues,\n initialStatePath,\n mkUntrackedValue(\n initialSpec.initFunc!($$state.props, $state, getIndexes(path, spec))\n )\n )\n );\n $$state.unsubscriptionsByState[initialStateKey].push(unsubscribe);\n });\n\n const initialValue = initialSpec.initFunc!(\n $$state.props,\n $state,\n getIndexes(initialStatePath, initialSpec)\n );\n saveStateInitialValue($$state, initialStatePath, initialSpec, initialValue);\n return initialValue;\n}\n\nfunction saveStateInitialValue(\n $$state: Internal$State,\n path: ObjectPath,\n spec: Internal$StateSpec<any>,\n initialValue: any\n) {\n // array states are a special case.Wwe listen for changes in the array and in the array cells.\n // for example: $state.people.push(...), $state.people.splice(...), $state.people[0] = ...\n // that's why we need to track the array object\n if (spec.isArray && Array.isArray(initialValue)) {\n const array = initialValue.map((val) => mkUntrackedValue(val));\n set($$state.stateValues, path, array);\n // we need to make the array untracked for initStateValues\n // so we can distinguish between stateValue and initStateValue.\n // otherwise they would reference the same array.\n set($$state.initStateValues, path, mkUntrackedValue(array));\n } else {\n const untrackedValue = mkUntrackedValue(initialValue);\n set($$state.stateValues, path, untrackedValue);\n set($$state.initStateValues, path, untrackedValue);\n }\n}\n\nexport function useDollarState(\n specs: $StateSpec<any>[],\n props: Record<string, any>\n) {\n const $$state = React.useRef(\n createValtioProxy<Internal$State>({\n stateValues: {},\n initStateValues: {},\n specsByKey: Object.fromEntries(\n specs.map((spec) => [\n spec.path,\n {\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path\n .split(\".\")\n .some((part) => part.endsWith(\"[]\")),\n },\n ])\n ),\n statesInstanceBySpec: new Map<string, Internal$StateInstance[]>(),\n existingStates: new Map<string, Internal$StateInstance>(),\n unsubscriptionsByState: {},\n props: undefined,\n registrationsQueue: [],\n })\n ).current;\n $$state.props = mkUntrackedValue(props);\n\n const $state = React.useRef(\n Object.assign(\n create$StateProxy($$state, (path, spec) => {\n const key = JSON.stringify(path);\n if (!$$state.existingStates.has(key)) {\n saveNewState($$state, path, spec);\n const initialValue = !spec.initFunc\n ? spec.initVal ?? undefined\n : initializeStateValue($$state, path, spec);\n saveStateInitialValue($$state, path, spec, initialValue);\n }\n return {\n get() {\n if (spec.valueProp) {\n const value = !spec.isRepeated\n ? $$state.props[spec.valueProp]\n : get($$state.props[spec.valueProp], path.slice(1));\n return value;\n } else {\n return get($$state.stateValues, path);\n }\n },\n set(_t, _p, value) {\n set($$state.stateValues, path, mkUntrackedValue(value));\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, path);\n }\n return true;\n },\n };\n }),\n {\n registerInitFunc: function <T>(pathStr: string, f: InitFunc<T>) {\n if (\n $$state.statesInstanceBySpec\n .get(pathStr)\n ?.some(\n ({ path, specKey }) =>\n !deepEqual(\n get($$state.initStateValues, path),\n f(\n props,\n $state,\n getIndexes(path, $$state.specsByKey[specKey])\n )\n )\n )\n ) {\n $$state.registrationsQueue.push({ pathStr, f });\n }\n },\n }\n )\n ).current;\n\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: { path: ObjectPath; spec: Internal$StateSpec<any> }[] = [];\n $$state.existingStates.forEach(({ path, specKey }) => {\n const spec = $$state.specsByKey[specKey];\n if (spec.initFunc) {\n const newInit = spec.initFunc(props, $state, getIndexes(path, spec));\n if (!deepEqual(newInit, get($$state.initStateValues, path))) {\n resetSpecs.push({ path, spec });\n }\n }\n });\n React.useLayoutEffect(() => {\n resetSpecs.forEach(({ path, spec }) => {\n const newInit = initializeStateValue($$state, path, spec);\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(newInit, path);\n }\n });\n }, [props, resetSpecs]);\n React.useLayoutEffect(() => {\n $$state.registrationsQueue.forEach(({ f, pathStr }) => {\n $$state.specsByKey[pathStr].initFunc = f;\n });\n $$state.registrationsQueue = [];\n }, [$$state.registrationsQueue]);\n\n // Re-render if any value changed in one of these objects\n useSnapshot($$state.stateValues, { sync: true });\n useSnapshot($$state.specsByKey, { sync: true });\n\n return $state;\n}\n\nexport default useDollarState;\n\n// Simple version of $state useDollarState for read-only\nexport function useCanvasDollarState(\n specs: $StateSpec<any>[],\n props: Record<string, any>\n) {\n const $$state = createValtioProxy<Internal$State>({\n stateValues: {},\n initStateValues: {},\n specsByKey: Object.fromEntries(\n specs.map((spec) => [\n spec.path,\n {\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n },\n ])\n ),\n statesInstanceBySpec: new Map<string, Internal$StateInstance[]>(),\n existingStates: new Map<string, Internal$StateInstance>(),\n unsubscriptionsByState: {},\n props: undefined,\n registrationsQueue: [],\n });\n $$state.props = mkUntrackedValue(props);\n\n const $state = create$StateProxy($$state, (path, spec) => {\n return {\n get() {\n return get($$state.stateValues, path);\n },\n set(_t, _p, value) {\n set($$state.stateValues, path, mkUntrackedValue(value));\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, path);\n }\n return true;\n },\n };\n });\n for (const spec of specs) {\n const path = transformPathStringToObj(spec.path);\n const init = spec.valueProp\n ? $$state.props[spec.valueProp]\n : spec.initVal\n ? spec.initVal\n : spec.initFunc\n ? initializeStateValue($$state, path, $$state.specsByKey[spec.path])\n : undefined;\n set($state, path, init);\n }\n return $state;\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n mergeVariantsWithStates,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\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 { createUseScreenVariants } from \"./render/screen-variants\";\nexport {\n PlasmicDataSourceContextProvider,\n PlasmicRootProvider,\n useCurrentUser,\n useIsSSR,\n} from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { genTranslatableString, Trans } from \"./render/translation\";\nexport { useTrigger } from \"./render/triggers\";\nexport * from \"./states/helpers\";\nexport {\n $State,\n default as useDollarState,\n useCanvasDollarState,\n} from \"./states/valtio\";\nexport const classNames = _classNames;\n"],"names":["React","ReactDOM","useAriaFocusRing","createValtioProxy","_classNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/states/helpers.ts","../../src/states/valtio.tsx","../../src/index-common.tsx"],"sourcesContent":["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","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/valtio\";\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) {\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\" : \"__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 (!override || Object.keys(override).length === 0) {\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","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues 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 globalVariantValues;\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 React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n { ...pick(props, ...nextjsProps), legacyBehavior: true },\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\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 (!content || (Array.isArray(content) && content.length === 0)) {\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 = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\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}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (\n React.isValidElement(node) &&\n // Fragment and Trans don't render DOM elements\n (node.type === React.Fragment || node.type === Trans)\n ) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\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 * 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 * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\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 }) {\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 }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\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 get from \"dlv\";\nimport { useEffect, useLayoutEffect } from \"react\";\nimport { $State } from \".\";\n\nexport function generateStateOnChangeProp(\n $state: $State,\n stateName: string,\n dataReps: number[]\n): (val: any, path: (string | number)[]) => void {\n return (val, path) => set($state, [stateName, ...dataReps, ...path], val);\n}\n\n/**\n * This function generate the state value prop for repeated states\n * Example:\n * - parent[][].counter[].count\n * We need to pass `parent[index1][index2].counter to the child component\n */\nexport function generateStateValueProp(\n $state: $State,\n path: (string | number)[] // [\"parent\", 0, 1, \"counter\"]\n) {\n return get($state, path);\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 if (i === l) {\n t[k] = val;\n t = t[k];\n } else {\n if (typeof (x = t[k]) === typeof keys) {\n t = t[k] = x;\n } else if (keys[i] * 0 !== 0 || !!~(\"\" + keys[i]).indexOf(\".\")) {\n t[k] = {};\n t = t[k];\n } else {\n t[k] = [];\n t = t[k];\n }\n }\n }\n}\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport { get };\n","import get from \"dlv\";\nimport deepEqual from \"fast-deep-equal\";\nimport React from \"react\";\nimport { proxy as createValtioProxy, ref, useSnapshot } from \"valtio\";\nimport { subscribeKey } from \"valtio/utils\";\nimport { set, useIsomorphicLayoutEffect } from \"./helpers\";\n\nconst mkUntrackedValue = (o: any) =>\n o != null && typeof o === \"object\" ? ref(o) : o;\n\ntype InitFunc<T> = (\n $props: Record<string, any>,\n $state: $State,\n $ctx: Record<string, any>,\n indexes: number[]\n) => T;\ntype ObjectPath = (string | number)[];\n\nexport interface $State {\n [key: string]: any;\n registerInitFunc?: (path: string, f: InitFunc<any>) => any;\n}\n\ninterface Internal$StateSpec<T> extends $StateSpec<T> {\n isRepeated: boolean;\n pathObj: ObjectPath;\n}\n\ninterface Internal$StateInstance {\n path: ObjectPath; // [\"counter\", 0, \"count\"]\n specKey: string;\n}\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 isArray?: boolean;\n}\n\ninterface Internal$State {\n stateValues: Record<string, any>;\n initStateValues: Record<string, any>;\n unsubscriptionsByState: Record<string, (() => void)[]>;\n specsByKey: Record<string, Internal$StateSpec<any>>;\n statesInstanceBySpec: Map<string, Internal$StateInstance[]>;\n existingStates: Map<string, Internal$StateInstance>;\n registrationsQueue: { pathStr: string; f: InitFunc<any> }[];\n props: Record<string, any>;\n ctx: Record<string, any>;\n}\n\nconst transformPathStringToObj = (str: string) => {\n const splitStatePathPart = (state: string): string[] =>\n state.endsWith(\"[]\")\n ? [...splitStatePathPart(state.slice(0, -2)), \"[]\"]\n : [state];\n return str.split(\".\").flatMap(splitStatePathPart);\n};\n\nfunction 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\nfunction isNum(value: string | number | symbol): value is number {\n return typeof value === \"symbol\" ? false : !isNaN(+value);\n}\n\nfunction saveNewState<T>(\n $$state: Internal$State,\n path: ObjectPath,\n spec: Internal$StateSpec<T>\n) {\n const key = JSON.stringify(path);\n $$state.existingStates.set(key, { path, specKey: spec.path });\n if (!$$state.statesInstanceBySpec.has(spec.path)) {\n $$state.statesInstanceBySpec.set(spec.path, []);\n }\n $$state.statesInstanceBySpec\n .get(spec.path)!\n .push({ path, specKey: spec.path });\n}\n\nfunction create$StateProxy(\n $$state: Internal$State,\n handlers: (\n path: ObjectPath,\n spec: Internal$StateSpec<any>\n ) => ProxyHandler<any>\n) {\n const getNextKeyToSpecMap = (currPath: ObjectPath) =>\n new Map(\n Object.entries(\n Object.values($$state.specsByKey)\n .filter((spec) =>\n shallowEqual(\n currPath.map((p) => (isNum(p) ? \"[]\" : p)),\n spec.pathObj.slice(0, currPath.length)\n )\n )\n .reduce((agg, spec) => {\n const nextKey = spec.pathObj[currPath.length];\n if (!(nextKey in agg)) {\n agg[nextKey] = [];\n }\n agg[nextKey].push(spec);\n return agg;\n }, {} as Record<string, Internal$StateSpec<any>[]>)\n )\n );\n const rec = (currPath: ObjectPath) => {\n const nextKeyToSpecs = getNextKeyToSpecMap(currPath);\n const getSpecForProperty = (property: string | number | symbol) => {\n return nextKeyToSpecs.has(\"[]\") && isNum(property)\n ? nextKeyToSpecs.get(\"[]\")?.[0]\n : typeof property === \"string\" && nextKeyToSpecs.has(property)\n ? nextKeyToSpecs.get(property)?.[0]\n : undefined;\n };\n const getNextPath = (property: string | number | symbol) => [\n ...currPath,\n isNum(property) ? +property : (property as string),\n ];\n\n return new Proxy(nextKeyToSpecs.has(\"[]\") ? ([] as any) : ({} as any), {\n deleteProperty(target, property) {\n const prefixPath = getNextPath(property);\n const specKeysToUpdate = new Set<string>();\n $$state.existingStates.forEach(({ path, specKey }) => {\n if (\n path.length >= prefixPath.length &&\n shallowEqual(path.slice(0, prefixPath.length), prefixPath)\n ) {\n deleteState($$state, path);\n specKeysToUpdate.add(specKey);\n }\n });\n specKeysToUpdate.forEach((specKey) => {\n const spec = $$state.specsByKey[specKey];\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(\n get($$state.stateValues, currPath),\n currPath\n );\n }\n });\n return Reflect.deleteProperty(target, property);\n },\n get(target, property, receiver) {\n const spec = getSpecForProperty(property);\n if (spec && typeof property !== \"symbol\") {\n const nextPath = getNextPath(property);\n if (spec.pathObj.length === currPath.length + 1) {\n // reached the end of the spec\n target[property] = handlers(nextPath, spec).get?.(\n target,\n property,\n receiver\n );\n } else if (!(property in target)) {\n target[property] = rec(nextPath);\n }\n }\n return Reflect.get(target, property, receiver);\n },\n set(target, property, value, receiver) {\n const spec = getSpecForProperty(property);\n const nextPath = getNextPath(property);\n if (spec && typeof property !== \"symbol\") {\n if (spec.pathObj.length === currPath.length + 1) {\n // reached the end of the spec\n target[property] = handlers(nextPath, spec).set?.(\n target,\n property,\n value,\n receiver\n );\n return Reflect.set(target, property, value, receiver);\n } else if (typeof value === \"object\") {\n target[property] = rec(nextPath);\n for (const key of Object.keys(value)) {\n target[property][key] = value[key];\n }\n return true;\n }\n }\n if (property === \"registerInitFunc\" && currPath.length === 0) {\n return Reflect.set(target, property, value, receiver);\n }\n if (nextKeyToSpecs.has(\"[]\")) {\n set($$state.stateValues, nextPath, value);\n nextKeyToSpecs.get(\"[]\")?.forEach((spec) => {\n if (spec?.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, nextPath);\n }\n });\n return Reflect.set(target, property, value, receiver);\n }\n // invalid setting a value that doesn't make part of the spec\n return false;\n },\n });\n };\n\n return rec([]);\n}\n\nconst deleteState = ($$state: Internal$State, path: ObjectPath) => {\n const key = JSON.stringify(path);\n $$state.unsubscriptionsByState[key]?.forEach((f: any) => f());\n delete $$state.unsubscriptionsByState[key];\n $$state.existingStates.delete(key);\n\n // delete get($$state.stateValues, path.slice(-1))[path.slice(-1)[0]];\n // delete get($$state.initStateValues, path.slice(-1))[path.slice(-1)[0]];\n};\n\nconst getIndexes = (path: ObjectPath, spec: Internal$StateSpec<any>) => {\n const indexes = [];\n if (path.length !== spec.pathObj.length) {\n throw new Error(\n \"Unexpected error: state path and spec path have different lengths\"\n );\n }\n for (let i = 0; i < spec.pathObj.length; i++) {\n if (spec.pathObj[i] === \"[]\") {\n indexes.push(path[i] as number);\n }\n }\n return indexes;\n};\n\nfunction initializeStateValue(\n $$state: Internal$State,\n initialStatePath: ObjectPath,\n initialSpec: Internal$StateSpec<any>\n) {\n const initialStateKey = JSON.stringify(initialStatePath);\n const stateAccess: Set<{\n path: ObjectPath;\n spec: Internal$StateSpec<any>;\n }> = new Set();\n const $state = create$StateProxy($$state, (path, spec) => ({\n get() {\n const key = JSON.stringify(path);\n stateAccess.add({ path, spec });\n if (spec.valueProp) {\n return !spec.isRepeated\n ? $$state.props[spec.valueProp]\n : get($$state.props[spec.valueProp], path.slice(1));\n }\n if ($$state.existingStates.has(key)) {\n // is already initialized\n return get($$state.stateValues, path);\n } else if (spec.initFunc) {\n initializeStateValue($$state, path, spec);\n }\n return get($$state.stateValues, path);\n },\n set() {\n throw new Error(`Cannot update state values during initialization`);\n },\n }));\n\n $$state.unsubscriptionsByState[initialStateKey]?.forEach((f: any) => f());\n $$state.unsubscriptionsByState[initialStateKey] = [];\n stateAccess.forEach(({ path, spec }) => {\n const unsubscribe = subscribeKey(\n get($$state.stateValues, path.slice(-1)),\n path.slice(-1)[0],\n () =>\n set(\n $$state.stateValues,\n initialStatePath,\n mkUntrackedValue(\n initialSpec.initFunc!(\n $$state.props,\n $state,\n $$state.ctx,\n getIndexes(path, spec)\n )\n )\n )\n );\n $$state.unsubscriptionsByState[initialStateKey].push(unsubscribe);\n });\n\n const initialValue = initialSpec.initFunc!(\n $$state.props,\n $state,\n $$state.ctx,\n getIndexes(initialStatePath, initialSpec)\n );\n saveStateInitialValue($$state, initialStatePath, initialSpec, initialValue);\n return initialValue;\n}\n\nfunction saveStateInitialValue(\n $$state: Internal$State,\n path: ObjectPath,\n spec: Internal$StateSpec<any>,\n initialValue: any\n) {\n // array states are a special case.Wwe listen for changes in the array and in the array cells.\n // for example: $state.people.push(...), $state.people.splice(...), $state.people[0] = ...\n // that's why we need to track the array object\n if (spec.isArray && Array.isArray(initialValue)) {\n const array = initialValue.map((val) => mkUntrackedValue(val));\n set($$state.stateValues, path, array);\n // we need to make the array untracked for initStateValues\n // so we can distinguish between stateValue and initStateValue.\n // otherwise they would reference the same array.\n set($$state.initStateValues, path, mkUntrackedValue(array));\n } else {\n const untrackedValue = mkUntrackedValue(initialValue);\n set($$state.stateValues, path, untrackedValue);\n set($$state.initStateValues, path, untrackedValue);\n }\n}\n\nexport function useDollarState(\n specs: $StateSpec<any>[],\n props: Record<string, any>,\n $ctx?: Record<string, any>\n) {\n const $$state = React.useRef(\n createValtioProxy<Internal$State>({\n stateValues: {},\n initStateValues: {},\n specsByKey: Object.fromEntries(\n specs.map((spec) => [\n spec.path,\n {\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path\n .split(\".\")\n .some((part) => part.endsWith(\"[]\")),\n },\n ])\n ),\n statesInstanceBySpec: new Map<string, Internal$StateInstance[]>(),\n existingStates: new Map<string, Internal$StateInstance>(),\n unsubscriptionsByState: {},\n props: {},\n ctx: {},\n registrationsQueue: [],\n })\n ).current;\n $$state.props = mkUntrackedValue(props);\n $$state.ctx = mkUntrackedValue($ctx ?? {});\n\n const $state = React.useRef(\n Object.assign(\n create$StateProxy($$state, (path, spec) => {\n const key = JSON.stringify(path);\n if (!$$state.existingStates.has(key)) {\n saveNewState($$state, path, spec);\n const initialValue = !spec.initFunc\n ? spec.initVal ?? undefined\n : initializeStateValue($$state, path, spec);\n saveStateInitialValue($$state, path, spec, initialValue);\n }\n return {\n get() {\n if (spec.valueProp) {\n const value = !spec.isRepeated\n ? $$state.props[spec.valueProp]\n : get($$state.props[spec.valueProp], path.slice(1));\n return value;\n } else {\n return get($$state.stateValues, path);\n }\n },\n set(_t, _p, value) {\n set($$state.stateValues, path, mkUntrackedValue(value));\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, path);\n }\n return true;\n },\n };\n }),\n {\n registerInitFunc: function <T>(pathStr: string, f: InitFunc<T>) {\n if (\n $$state.statesInstanceBySpec\n .get(pathStr)\n ?.some(\n ({ path, specKey }) =>\n !deepEqual(\n get($$state.initStateValues, path),\n f(\n props,\n $state,\n $ctx ?? {},\n getIndexes(path, $$state.specsByKey[specKey])\n )\n )\n )\n ) {\n $$state.registrationsQueue.push({ pathStr, f });\n }\n },\n }\n )\n ).current;\n\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: { path: ObjectPath; spec: Internal$StateSpec<any> }[] = [];\n $$state.existingStates.forEach(({ path, specKey }) => {\n const spec = $$state.specsByKey[specKey];\n if (spec.initFunc) {\n const newInit = spec.initFunc(\n props,\n $state,\n $ctx ?? {},\n getIndexes(path, spec)\n );\n if (!deepEqual(newInit, get($$state.initStateValues, path))) {\n resetSpecs.push({ path, spec });\n }\n }\n });\n useIsomorphicLayoutEffect(() => {\n resetSpecs.forEach(({ path, spec }) => {\n const newInit = initializeStateValue($$state, path, spec);\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(newInit, path);\n }\n });\n }, [props, resetSpecs]);\n useIsomorphicLayoutEffect(() => {\n $$state.registrationsQueue.forEach(({ f, pathStr }) => {\n $$state.specsByKey[pathStr].initFunc = f;\n });\n $$state.registrationsQueue = [];\n }, [$$state.registrationsQueue]);\n\n // Re-render if any value changed in one of these objects\n useSnapshot($$state.stateValues, { sync: true });\n useSnapshot($$state.specsByKey, { sync: true });\n\n return $state;\n}\n\nexport default useDollarState;\n\n// Simple version of $state useDollarState for read-only\nexport function useCanvasDollarState(\n specs: $StateSpec<any>[],\n props: Record<string, any>,\n $ctx?: Record<string, any>\n) {\n const $$state = createValtioProxy<Internal$State>({\n stateValues: {},\n initStateValues: {},\n specsByKey: Object.fromEntries(\n specs.map((spec) => [\n spec.path,\n {\n ...spec,\n pathObj: transformPathStringToObj(spec.path),\n isRepeated: spec.path.split(\".\").some((part) => part.endsWith(\"[]\")),\n },\n ])\n ),\n statesInstanceBySpec: new Map<string, Internal$StateInstance[]>(),\n existingStates: new Map<string, Internal$StateInstance>(),\n unsubscriptionsByState: {},\n props: {},\n ctx: {},\n registrationsQueue: [],\n });\n $$state.props = mkUntrackedValue(props);\n $$state.ctx = mkUntrackedValue($ctx);\n const $state = create$StateProxy($$state, (path, spec) => {\n return {\n get() {\n return get($$state.stateValues, path);\n },\n set(_t, _p, value) {\n set($$state.stateValues, path, mkUntrackedValue(value));\n if (spec.onChangeProp) {\n $$state.props[spec.onChangeProp]?.(value, path);\n }\n return true;\n },\n };\n });\n for (const spec of specs) {\n const path = transformPathStringToObj(spec.path);\n const init = spec.valueProp\n ? $$state.props[spec.valueProp]\n : spec.initVal\n ? spec.initVal\n : spec.initFunc\n ? initializeStateValue($$state, path, $$state.specsByKey[spec.path])\n : undefined;\n set($state, path, init);\n }\n return $state;\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n mergeVariantsWithStates,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\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 { createUseScreenVariants } from \"./render/screen-variants\";\nexport {\n PlasmicDataSourceContextProvider,\n PlasmicRootProvider,\n useCurrentUser,\n useIsSSR,\n} from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { genTranslatableString, Trans } from \"./render/translation\";\nexport { useTrigger } from \"./render/triggers\";\nexport * from \"./states/helpers\";\nexport {\n $State,\n default as useDollarState,\n useCanvasDollarState,\n} from \"./states/valtio\";\nexport const classNames = _classNames;\n"],"names":["React","ReactDOM","useIsomorphicLayoutEffect","useAriaFocusRing","createValtioProxy","_classNames"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import get from "dlv";
2
+ import { useLayoutEffect } from "react";
2
3
  import { $State } from ".";
3
4
  export declare function generateStateOnChangeProp($state: $State, stateName: string, dataReps: number[]): (val: any, path: (string | number)[]) => void;
4
5
  /**
@@ -13,4 +14,5 @@ export declare function generateStateValueProp($state: $State, path: (string | n
13
14
  * Changes: fixed setting a deep value to a proxy object
14
15
  */
15
16
  export declare function set(obj: any, keys: any, val: any): void;
17
+ export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
16
18
  export { get };