@plasmicapp/host 1.0.151 → 1.0.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/data.d.ts +2 -2
  2. package/dist/global-actions.d.ts +1 -1
  3. package/dist/host.esm.js +20 -18
  4. package/dist/host.esm.js.map +1 -1
  5. package/dist/index.cjs.js +40 -46
  6. package/dist/index.cjs.js.map +1 -1
  7. package/dist/link.d.ts +1 -1
  8. package/dist/prop-types.d.ts +1 -0
  9. package/dist/registerComponent.d.ts +2 -4
  10. package/dist/type-utils.d.ts +6 -0
  11. package/dist/version.d.ts +1 -1
  12. package/package.json +16 -16
  13. package/registerComponent/dist/data.d.ts +2 -2
  14. package/registerComponent/dist/global-actions.d.ts +1 -1
  15. package/registerComponent/dist/index.cjs.js +3 -1
  16. package/registerComponent/dist/index.cjs.js.map +1 -1
  17. package/registerComponent/dist/index.esm.js +2 -0
  18. package/registerComponent/dist/index.esm.js.map +1 -1
  19. package/registerComponent/dist/link.d.ts +1 -1
  20. package/registerComponent/dist/prop-types.d.ts +1 -0
  21. package/registerComponent/dist/registerComponent.d.ts +2 -4
  22. package/registerComponent/dist/type-utils.d.ts +6 -0
  23. package/registerComponent/dist/version.d.ts +1 -1
  24. package/registerGlobalContext/dist/data.d.ts +2 -2
  25. package/registerGlobalContext/dist/global-actions.d.ts +1 -1
  26. package/registerGlobalContext/dist/index.cjs.js +1 -1
  27. package/registerGlobalContext/dist/index.cjs.js.map +1 -1
  28. package/registerGlobalContext/dist/index.esm.js.map +1 -1
  29. package/registerGlobalContext/dist/link.d.ts +1 -1
  30. package/registerGlobalContext/dist/prop-types.d.ts +1 -0
  31. package/registerGlobalContext/dist/registerComponent.d.ts +2 -4
  32. package/registerGlobalContext/dist/type-utils.d.ts +6 -0
  33. package/registerGlobalContext/dist/version.d.ts +1 -1
  34. package/registerToken/dist/data.d.ts +2 -2
  35. package/registerToken/dist/global-actions.d.ts +1 -1
  36. package/registerToken/dist/index.cjs.js +1 -1
  37. package/registerToken/dist/index.cjs.js.map +1 -1
  38. package/registerToken/dist/index.esm.js.map +1 -1
  39. package/registerToken/dist/link.d.ts +1 -1
  40. package/registerToken/dist/prop-types.d.ts +1 -0
  41. package/registerToken/dist/registerComponent.d.ts +2 -4
  42. package/registerToken/dist/type-utils.d.ts +6 -0
  43. package/registerToken/dist/version.d.ts +1 -1
  44. package/registerTrait/dist/data.d.ts +2 -2
  45. package/registerTrait/dist/global-actions.d.ts +1 -1
  46. package/registerTrait/dist/index.cjs.js +1 -1
  47. package/registerTrait/dist/index.cjs.js.map +1 -1
  48. package/registerTrait/dist/index.esm.js.map +1 -1
  49. package/registerTrait/dist/link.d.ts +1 -1
  50. package/registerTrait/dist/prop-types.d.ts +1 -0
  51. package/registerTrait/dist/registerComponent.d.ts +2 -4
  52. package/registerTrait/dist/type-utils.d.ts +6 -0
  53. package/registerTrait/dist/version.d.ts +1 -1
package/dist/data.d.ts CHANGED
@@ -31,13 +31,13 @@ export interface DataProviderProps {
31
31
  label?: string;
32
32
  children?: ReactNode;
33
33
  }
34
- export declare function DataProvider({ name, data, hidden, label, children, }: DataProviderProps): JSX.Element;
34
+ export declare function DataProvider({ name, data, hidden, label, children, }: DataProviderProps): React.JSX.Element;
35
35
  export interface PageParamsProviderProps {
36
36
  params?: Record<string, string | string[] | undefined>;
37
37
  query?: Record<string, string | string[] | undefined>;
38
38
  children?: ReactNode;
39
39
  }
40
- export declare function PageParamsProvider({ children, params, query, }: PageParamsProviderProps): JSX.Element;
40
+ export declare function PageParamsProvider({ children, params, query, }: PageParamsProviderProps): React.JSX.Element;
41
41
  export declare function DataCtxReader({ children, }: {
42
42
  children: ($ctx: DataDict | undefined) => ReactNode;
43
43
  }): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
@@ -5,5 +5,5 @@ export declare function GlobalActionsProvider(props: {
5
5
  contextName: string;
6
6
  children?: React.ReactNode;
7
7
  actions: GlobalActionDict;
8
- }): JSX.Element;
8
+ }): React.JSX.Element;
9
9
  export declare function useGlobalActions(): GlobalActionDict;
package/dist/host.esm.js CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import React__default, { useState, useCallback, createContext, useContext, isValidElement, cloneElement } from 'react';
5
5
  import * as ReactDOM from 'react-dom';
6
6
 
7
- /*! *****************************************************************************
7
+ /******************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
9
9
 
10
10
  Permission to use, copy, modify, and/or distribute this software for any
@@ -371,6 +371,8 @@ function useGlobalActions() {
371
371
  }
372
372
 
373
373
  var root$5 = globalThis;
374
+ // A compile-time error will occur if a new field is added to the StateHelper
375
+ // interface but not included in the keys array of state helper.
374
376
  var stateHelpersKeys = [
375
377
  "initFunc",
376
378
  "onChangeArgsToValue",
@@ -463,35 +465,35 @@ function PlasmicLinkProvider(props) {
463
465
 
464
466
  var hostModule = /*#__PURE__*/Object.freeze({
465
467
  __proto__: null,
468
+ DataContext: DataContext,
469
+ DataCtxReader: DataCtxReader,
470
+ DataProvider: DataProvider,
471
+ GlobalActionsContext: GlobalActionsContext,
472
+ GlobalActionsProvider: GlobalActionsProvider,
473
+ PageParamsProvider: PageParamsProvider,
466
474
  PlasmicCanvasContext: PlasmicCanvasContext,
467
475
  PlasmicCanvasHost: PlasmicCanvasHost,
468
- usePlasmicCanvasContext: usePlasmicCanvasContext,
469
- unstable_registerFetcher: registerFetcher,
476
+ PlasmicLinkProvider: PlasmicLinkProvider,
477
+ applySelector: applySelector,
478
+ mkMetaName: mkMetaName,
479
+ mkMetaValue: mkMetaValue,
470
480
  registerComponent: registerComponent,
471
- stateHelpersKeys: stateHelpersKeys,
472
481
  registerGlobalContext: registerGlobalContext,
473
482
  registerToken: registerToken,
474
483
  registerTrait: registerTrait,
475
484
  repeatedElement: repeatedElement,
476
- DataContext: DataContext,
477
- mkMetaName: mkMetaName,
478
- mkMetaValue: mkMetaValue,
479
- applySelector: applySelector,
480
- useSelector: useSelector,
481
- useSelectors: useSelectors,
485
+ stateHelpersKeys: stateHelpersKeys,
486
+ unstable_registerFetcher: registerFetcher,
482
487
  useDataEnv: useDataEnv,
483
- DataProvider: DataProvider,
484
- PageParamsProvider: PageParamsProvider,
485
- DataCtxReader: DataCtxReader,
486
- GlobalActionsContext: GlobalActionsContext,
487
- GlobalActionsProvider: GlobalActionsProvider,
488
488
  useGlobalActions: useGlobalActions,
489
- usePlasmicLinkMaybe: usePlasmicLinkMaybe,
489
+ usePlasmicCanvasContext: usePlasmicCanvasContext,
490
490
  usePlasmicLink: usePlasmicLink,
491
- PlasmicLinkProvider: PlasmicLinkProvider
491
+ usePlasmicLinkMaybe: usePlasmicLinkMaybe,
492
+ useSelector: useSelector,
493
+ useSelectors: useSelectors
492
494
  });
493
495
 
494
- var hostVersion = "1.0.151";
496
+ var hostVersion = "1.0.153";
495
497
 
496
498
  var root = globalThis;
497
499
  if (root.__Sub == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"host.esm.js","sources":["../../../node_modules/tslib/tslib.es6.js","../src/lang-utils.ts","../src/useForceUpdate.ts","../src/canvas-host.tsx","../src/common.ts","../src/data.tsx","../src/fetcher.ts","../src/global-actions.tsx","../src/registerComponent.ts","../src/registerGlobalContext.ts","../src/registerToken.ts","../src/registerTrait.ts","../src/repeatedElement.ts","../src/link.tsx","../src/version.ts","../src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","function isString(x: any): x is string {\n return typeof x === \"string\";\n}\n\ntype StringGen = string | (() => string);\n\nexport function ensure<T>(x: T | null | undefined, msg: StringGen = \"\"): T {\n if (x === null || x === undefined) {\n debugger;\n msg = (isString(msg) ? msg : msg()) || \"\";\n throw new Error(\n `Value must not be undefined or null${msg ? `- ${msg}` : \"\"}`\n );\n } else {\n return x;\n }\n}\n","import { useCallback, useState } from \"react\";\n\nexport default function useForceUpdate() {\n const [, setTick] = useState(0);\n const update = useCallback(() => {\n setTick((tick) => tick + 1);\n }, []);\n return update;\n}\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { ensure } from \"./lang-utils\";\nimport useForceUpdate from \"./useForceUpdate\";\n\ndeclare global {\n interface Window {\n __PlasmicHostVersion: string;\n }\n}\n\nif ((globalThis as any).__PlasmicHostVersion == null) {\n (globalThis as any).__PlasmicHostVersion = \"3\";\n}\n\nconst rootChangeListeners: (() => void)[] = [];\nclass PlasmicRootNodeWrapper {\n constructor(private value: null | React.ReactElement) {}\n set = (val: null | React.ReactElement) => {\n this.value = val;\n rootChangeListeners.forEach((f) => f());\n };\n get = () => this.value;\n}\n\nconst plasmicRootNode = new PlasmicRootNodeWrapper(null);\n\nfunction getHashParams() {\n return new URLSearchParams(location.hash.replace(/^#/, \"?\"));\n}\n\nfunction getPlasmicOrigin() {\n const params = getHashParams();\n return ensure(\n params.get(\"origin\"),\n \"Missing information from Plasmic window.\"\n );\n}\n\nfunction getStudioHash() {\n const hashParams = getHashParams();\n if (hashParams.has(\"studioHash\")) {\n return hashParams.get(\"studioHash\");\n }\n const urlParams = new URL(location.href).searchParams;\n return urlParams.get(\"studio-hash\");\n}\n\nfunction renderStudioIntoIframe() {\n const script = document.createElement(\"script\");\n const plasmicOrigin = getPlasmicOrigin();\n const hash = getStudioHash();\n script.src = `${plasmicOrigin}/static/js/studio${\n hash ? `.${hash}.js` : `.js`\n }`;\n document.body.appendChild(script);\n}\n\nlet renderCount = 0;\nexport function setPlasmicRootNode(node: React.ReactElement | null) {\n // Keep track of renderCount, which we use as key to ErrorBoundary, so\n // we can reset the error on each render\n renderCount++;\n plasmicRootNode.set(node);\n}\n\nexport interface PlasmicCanvasContextValue {\n componentName: string | null;\n globalVariants: Record<string, string>;\n interactive?: boolean;\n}\n\n/**\n * React context to detect whether the component is rendered on Plasmic editor.\n * If not, return false.\n * If so, return an object with more information about the component\n */\nexport const PlasmicCanvasContext = React.createContext<\n PlasmicCanvasContextValue | false\n>(false);\nexport const usePlasmicCanvasContext = () =>\n React.useContext(PlasmicCanvasContext);\n\nfunction _PlasmicCanvasHost() {\n // If window.parent is null, then this is a window whose containing iframe\n // has been detached from the DOM (for the top window, window.parent === window).\n // In that case, we shouldn't do anything. If window.parent is null, by the way,\n // location.hash will also be null.\n const isFrameAttached = !!window.parent;\n const isCanvas = !!location.hash?.match(/\\bcanvas=true\\b/);\n const isLive = !!location.hash?.match(/\\blive=true\\b/) || !isFrameAttached;\n const shouldRenderStudio =\n isFrameAttached &&\n !document.querySelector(\"#plasmic-studio-tag\") &&\n !isCanvas &&\n !isLive;\n const forceUpdate = useForceUpdate();\n React.useLayoutEffect(() => {\n rootChangeListeners.push(forceUpdate);\n return () => {\n const index = rootChangeListeners.indexOf(forceUpdate);\n if (index >= 0) {\n rootChangeListeners.splice(index, 1);\n }\n };\n }, [forceUpdate]);\n React.useEffect(() => {\n if (shouldRenderStudio && isFrameAttached && window.parent !== window) {\n renderStudioIntoIframe();\n }\n }, [shouldRenderStudio, isFrameAttached]);\n React.useEffect(() => {\n if (!shouldRenderStudio && !document.querySelector(\"#getlibs\") && isLive) {\n const scriptElt = document.createElement(\"script\");\n scriptElt.id = \"getlibs\";\n scriptElt.src = getPlasmicOrigin() + \"/static/js/getlibs.js\";\n scriptElt.async = false;\n scriptElt.onload = () => {\n (window as any).__GetlibsReadyResolver?.();\n };\n document.head.append(scriptElt);\n }\n }, [shouldRenderStudio]);\n\n const [canvasContextValue, setCanvasContextValue] = React.useState(() =>\n deriveCanvasContextValue()\n );\n\n React.useEffect(() => {\n if (isCanvas) {\n const listener = () => {\n setCanvasContextValue(deriveCanvasContextValue());\n };\n window.addEventListener(\"hashchange\", listener);\n return () => window.removeEventListener(\"hashchange\", listener);\n }\n return undefined;\n }, [isCanvas]);\n if (!isFrameAttached) {\n return null;\n }\n if (isCanvas || isLive) {\n let appDiv = document.querySelector(\"#plasmic-app.__wab_user-body\");\n if (!appDiv) {\n appDiv = document.createElement(\"div\");\n appDiv.id = \"plasmic-app\";\n appDiv.classList.add(\"__wab_user-body\");\n document.body.appendChild(appDiv);\n }\n return ReactDOM.createPortal(\n <ErrorBoundary key={`${renderCount}`}>\n <PlasmicCanvasContext.Provider value={canvasContextValue}>\n {plasmicRootNode.get()}\n </PlasmicCanvasContext.Provider>\n </ErrorBoundary>,\n appDiv,\n \"plasmic-app\"\n );\n }\n if (shouldRenderStudio && window.parent === window) {\n return (\n <iframe\n src={`https://docs.plasmic.app/app-content/app-host-ready#appHostUrl=${encodeURIComponent(\n location.href\n )}`}\n style={{\n width: \"100vw\",\n height: \"100vh\",\n border: \"none\",\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 99999999,\n }}\n ></iframe>\n );\n }\n return null;\n}\n\ninterface PlasmicCanvasHostProps {\n /**\n * Webpack hmr uses EventSource to\tlisten to hot reloads, but that\n * resultsin a persistent\tconnection from\teach window. In Plasmic\n * Studio, if a project is configured to use app-hosting with a\n * nextjs or gatsby server running in dev mode, each artboard will\n * be holding a persistent connection to the dev server.\n * Because browsers\thave a limit to\thow many connections can\n * be held\tat a time by domain, this means\tafter X\tartboards, new\n * artboards will freeze and not load.\n *\n * By default, <PlasmicCanvasHost /> will globally mutate\n * window.EventSource to avoid using EventSource for HMR, which you\n * typically don't need for your custom host page. If you do still\n * want to retain HRM, then youc an pass enableWebpackHmr={true}.\n */\n enableWebpackHmr?: boolean;\n}\n\nexport const PlasmicCanvasHost: React.FunctionComponent<\n PlasmicCanvasHostProps\n> = (props) => {\n const { enableWebpackHmr } = props;\n const [node, setNode] = React.useState<React.ReactElement<any, any> | null>(\n null\n );\n React.useEffect(() => {\n setNode(<_PlasmicCanvasHost />);\n }, []);\n return (\n <>\n {!enableWebpackHmr && <DisableWebpackHmr />}\n {node}\n </>\n );\n};\n\ntype RenderErrorListener = (err: Error) => void;\nconst renderErrorListeners: RenderErrorListener[] = [];\nexport function registerRenderErrorListener(listener: RenderErrorListener) {\n renderErrorListeners.push(listener);\n return () => {\n const index = renderErrorListeners.indexOf(listener);\n if (index >= 0) {\n renderErrorListeners.splice(index, 1);\n }\n };\n}\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n}\n\ninterface ErrorBoundaryState {\n error?: Error;\n}\n\nclass ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {};\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error) {\n renderErrorListeners.forEach((listener) => listener(error));\n }\n\n render() {\n if (this.state.error) {\n return <div>Error: {`${this.state.error.message}`}</div>;\n } else {\n return <>{this.props.children}</>;\n }\n }\n}\n\nfunction DisableWebpackHmr() {\n if (process.env.NODE_ENV === \"production\") {\n return null;\n }\n return (\n <script\n type=\"text/javascript\"\n dangerouslySetInnerHTML={{\n __html: `\n if (typeof window !== \"undefined\") {\n const RealEventSource = window.EventSource;\n window.EventSource = function(url, config) {\n if (/[^a-zA-Z]hmr($|[^a-zA-Z])/.test(url)) {\n console.warn(\"Plasmic: disabled EventSource request for\", url);\n return {\n onerror() {}, onmessage() {}, onopen() {}, close() {}\n };\n } else {\n return new RealEventSource(url, config);\n }\n }\n }\n `,\n }}\n ></script>\n );\n}\n\nfunction deriveCanvasContextValue(): PlasmicCanvasContextValue | false {\n const hash = window.location.hash;\n if (hash && hash.length > 0) {\n // create URLsearchParams skipping the initial # character\n const params = new URLSearchParams(hash.substring(1));\n if (params.get(\"canvas\") === \"true\") {\n const globalVariants = params.get(\"globalVariants\");\n return {\n componentName: params.get(\"componentName\") ?? null,\n globalVariants: globalVariants ? JSON.parse(globalVariants) : {},\n interactive: params.get(\"interactive\") === \"true\",\n };\n }\n }\n return false;\n}\n","export const tuple = <T extends any[]>(...args: T): T => args;\n","import React, {\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { tuple } from \"./common\";\n\nexport type DataDict = Record<string, any>;\n\nexport const DataContext = createContext<DataDict | undefined>(undefined);\n\nexport type DataMeta = {\n hidden?: boolean;\n label?: string;\n};\n\nexport function mkMetaName(name: string) {\n return `__plasmic_meta_${name}`;\n}\n\nexport function mkMetaValue(meta: Partial<DataMeta>): DataMeta {\n return meta;\n}\n\nexport function applySelector(\n rawData: DataDict | undefined,\n selector: string | undefined\n): any {\n if (!selector) {\n return undefined;\n }\n let curData = rawData;\n for (const key of selector.split(\".\")) {\n curData = curData?.[key];\n }\n return curData;\n}\n\nexport type SelectorDict = Record<string, string | undefined>;\n\nexport function useSelector(selector: string | undefined): any {\n const rawData = useDataEnv();\n return applySelector(rawData, selector);\n}\n\nexport function useSelectors(selectors: SelectorDict = {}): any {\n const rawData = useDataEnv();\n return Object.fromEntries(\n Object.entries(selectors)\n .filter(([key, selector]) => !!key && !!selector)\n .map(([key, selector]) => tuple(key, applySelector(rawData, selector)))\n );\n}\n\nexport function useDataEnv() {\n return useContext(DataContext);\n}\n\nexport interface DataProviderProps {\n /**\n * Key to set in data context.\n */\n name?: string;\n /**\n * Value to set for `name` in data context.\n */\n data?: any;\n /**\n * If true, hide this entry in studio (data binding).\n */\n hidden?: boolean;\n /**\n * Label to be shown in the studio data picker for easier navigation (data binding).\n */\n label?: string;\n children?: ReactNode;\n}\n\nexport function DataProvider({\n name,\n data,\n hidden,\n label,\n children,\n}: DataProviderProps) {\n const existingEnv = useDataEnv() ?? {};\n if (!name) {\n return <>{children}</>;\n } else {\n return (\n <DataContext.Provider\n value={{\n ...existingEnv,\n [name]: data,\n [mkMetaName(name)]: mkMetaValue({ hidden, label }),\n }}\n >\n {children}\n </DataContext.Provider>\n );\n }\n}\n\nexport interface PageParamsProviderProps {\n params?: Record<string, string | string[] | undefined>;\n query?: Record<string, string | string[] | undefined>;\n children?: ReactNode;\n}\n\nexport function PageParamsProvider({\n children,\n params = {},\n query = {},\n}: PageParamsProviderProps) {\n const $ctx = useDataEnv() || {};\n return (\n <DataProvider\n name={\"params\"}\n data={{ ...$ctx.params, ...params }}\n label={\"Page URL path params\"}\n >\n <DataProvider\n name={\"query\"}\n data={{ ...$ctx.query, ...query }}\n label={\"Page URL query params\"}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n\nexport function DataCtxReader({\n children,\n}: {\n children: ($ctx: DataDict | undefined) => ReactNode;\n}) {\n const $ctx = useDataEnv();\n return children($ctx) as ReactElement | null;\n}\n","import { PrimitiveType } from \"./prop-types\";\n\nconst root = globalThis as any;\n\nexport type Fetcher = (...args: any[]) => Promise<any>;\n\nexport interface FetcherMeta {\n /**\n * Any unique identifying string for this fetcher.\n */\n name: string;\n /**\n * The Studio-user-friendly display name.\n */\n displayName?: string;\n /**\n * The symbol to import from the importPath.\n */\n importName?: string;\n args: { name: string; type: PrimitiveType }[];\n returns: PrimitiveType;\n /**\n * Either the path to the fetcher relative to `rootDir` or the npm\n * package name\n */\n importPath: string;\n /**\n * Whether it's a default export or named export\n */\n isDefaultExport?: boolean;\n}\n\nexport interface FetcherRegistration {\n fetcher: Fetcher;\n meta: FetcherMeta;\n}\n\ndeclare global {\n interface Window {\n __PlasmicFetcherRegistry: FetcherRegistration[];\n }\n}\n\nroot.__PlasmicFetcherRegistry = [];\n\nexport function registerFetcher(fetcher: Fetcher, meta: FetcherMeta) {\n root.__PlasmicFetcherRegistry.push({ fetcher, meta });\n}\n","import React from \"react\";\n\nexport type GlobalActionDict = Record<string, Function>;\n\nexport const GlobalActionsContext = React.createContext<\n GlobalActionDict | undefined\n>(undefined);\n\nexport function GlobalActionsProvider(props: {\n contextName: string;\n children?: React.ReactNode;\n actions: GlobalActionDict;\n}) {\n const { contextName, children, actions } = props;\n const namespacedActions = React.useMemo(\n () =>\n Object.fromEntries(\n Object.entries(actions).map(([key, val]) => [\n `${contextName}.${key}`,\n val,\n ])\n ),\n [contextName, actions]\n );\n return (\n <GlobalActionsContext.Provider value={namespacedActions}>\n {children}\n </GlobalActionsContext.Provider>\n );\n}\n\nexport function useGlobalActions() {\n return React.useContext(GlobalActionsContext) ?? {};\n}\n","import {\n CodeComponentElement,\n CSSProperties,\n PlasmicElement,\n} from \"./element-types\";\nimport {\n ContextDependentConfig,\n InferDataType,\n ModalProps,\n PropType,\n RestrictPropType,\n} from \"./prop-types\";\nexport type {\n CanvasComponentProps,\n ControlExtras,\n ControlContext,\n ContextDependentConfig,\n PropType,\n} from \"./prop-types\";\n\nconst root = globalThis as any;\n\nexport interface ActionProps<P> {\n componentProps: P;\n /**\n * `contextData` can be `null` if the prop controls are rendering before\n * the component instance itself (it will re-render once the component\n * calls `setControlContextData`)\n */\n contextData: InferDataType<P> | null;\n studioOps: {\n showModal: (\n modalProps: Omit<ModalProps, \"onClose\"> & { onClose?: () => void }\n ) => void;\n refreshQueryData: () => void;\n appendToSlot: (element: PlasmicElement, slotName: string) => void;\n removeFromSlotAt: (pos: number, slotName: string) => void;\n updateProps: (newValues: any) => void;\n };\n /**\n * The document that the component will be rendered into; instead of using\n * `document` directly (for, say, `document.querySelector()` etc.), you\n * should use this instead.\n */\n studioDocument: typeof document;\n}\n\nexport type Action<P> =\n | {\n type: \"button-action\";\n label: string;\n onClick: (props: ActionProps<P>) => void;\n hidden?: ContextDependentConfig<P, boolean>;\n }\n | {\n type: \"custom-action\";\n control: React.ComponentType<ActionProps<P>>;\n hidden?: ContextDependentConfig<P, boolean>;\n };\n\ntype DistributedKeyOf<T> = T extends any ? keyof T : never;\n\ninterface ComponentTemplate<P>\n extends Omit<CodeComponentElement<P>, \"type\" | \"name\"> {\n /**\n * A preview picture for the template.\n */\n previewImg?: string;\n}\n\nexport interface ComponentTemplates<P> {\n [name: string]: ComponentTemplate<P>;\n}\n\nexport type StateSpec = {\n onChangeProp: string;\n} & (\n | {\n type: \"readonly\";\n variableType: \"text\";\n initVal?: string;\n }\n | {\n type: \"readonly\";\n variableType: \"number\";\n initVal?: number;\n }\n | {\n type: \"readonly\";\n variableType: \"boolean\";\n initVal?: boolean;\n }\n | {\n type: \"readonly\";\n variableType: \"array\";\n initVal?: any[];\n }\n | {\n type: \"readonly\";\n variableType: \"object\";\n initVal?: object;\n }\n | {\n type: \"writable\";\n variableType: \"text\" | \"number\" | \"boolean\" | \"array\" | \"object\";\n valueProp: string;\n }\n);\n\nexport interface StateHelpers<P, T> {\n initFunc?: ($props: P) => T;\n onChangeArgsToValue?: (...args: any) => T;\n onMutate?: (stateValue: T, $ref: any) => void;\n}\n\n// A compile-time error will occur if a new field is added to the StateHelper \n// interface but not included in the keys array of state helper.\ntype TupleUnion<U extends string, R extends string[] = []> = {\n [S in U]: Exclude<U, S> extends never\n ? [...R, S]\n : TupleUnion<Exclude<U, S>, [...R, S]>;\n}[U] &\n string[];\n\nexport const stateHelpersKeys: TupleUnion<keyof StateHelpers<any, any>> = [\n \"initFunc\",\n \"onChangeArgsToValue\",\n \"onMutate\",\n];\n\nexport type ComponentHelpers<P> = {\n states: Record<string, StateHelpers<P, any>>;\n};\n\nexport type ExternalComponentHelpers<P> = {\n helpers: ComponentHelpers<P>;\n importPath: string;\n} & (\n | {\n importName: string;\n }\n | {\n isDefaultExport: true;\n }\n);\n\nexport type StyleSection =\n | \"visibility\"\n | \"typography\"\n | \"sizing\"\n | \"spacing\"\n | \"background\"\n | \"transform\"\n | \"transitions\"\n | \"layout\"\n | \"overflow\"\n | \"border\"\n | \"shadows\"\n | \"effects\";\n\nexport interface CodeComponentMeta<P> {\n /**\n * Any unique string name used to identify that component. Each component\n * should be registered with a different `meta.name`, even if they have the\n * same name in the code.\n */\n name: string;\n /**\n * The name to be displayed for the component in Studio. Optional: if not\n * specified, `meta.name` is used.\n */\n displayName?: string;\n /**\n * The description of the component to be shown in Studio.\n */\n description?: string;\n /**\n * The javascript name to be used when generating code. Optional: if not\n * provided, `meta.name` is used.\n */\n importName?: string;\n /**\n * An object describing the component properties to be used in Studio.\n * For each `prop`, there should be an entry `meta.props[prop]` describing\n * its type.\n */\n props: { [prop in DistributedKeyOf<P>]?: RestrictPropType<P[prop], P> } & {\n [prop: string]: PropType<P>;\n };\n /**\n * An object describing the component states to be used in Studio.\n */\n states?: Record<string, StateSpec>;\n /**\n * An object describing the components helpers to be used in Studio.\n * 1. states helpers: Each state can receive an \"initFunc\" prop to initialize\n * the implicit state in Studio, and an \"onChangeArgsToValue\" prop to\n * transform the event handler arguments into a value\n */\n componentHelpers?: ExternalComponentHelpers<P>;\n /**\n * An array describing the component actions to be used in Studio.\n */\n actions?: Action<P>[];\n /**\n * Whether style sections should be shown in Studio. For styles to work, the\n * component must accept a `className` prop. If unset, defaults to all styles.\n * Set to `false` if this component cannot be styled (for example, if it doesn't\n * render any DOM elements).\n */\n styleSections?: StyleSection[] | boolean;\n /**\n * Whether the element can be repeated in Studio. If unset, defaults to true.\n */\n isRepeatable?: boolean;\n /**\n * The path to be used when importing the component in the generated code.\n * It can be the name of the package that contains the component, or the path\n * to the file in the project (relative to the root directory).\n */\n importPath: string;\n /**\n * Whether the component is the default export from that path. Optional: if\n * not specified, it's considered `false`.\n */\n isDefaultExport?: boolean;\n /**\n * The prop that expects the CSS classes with styles to be applied to the\n * component. Optional: if not specified, Plasmic will expect it to be\n * `className`. Notice that if the component does not accept CSS classes, the\n * component will not be able to receive styles from the Studio.\n */\n classNameProp?: string;\n /**\n * The prop that receives and forwards a React `ref`. Plasmic only uses `ref`\n * to interact with components, so it's not used in the generated code.\n * Optional: If not provided, the usual `ref` is used.\n */\n refProp?: string;\n /**\n * Default styles to start with when instantiating the component in Plasmic.\n */\n defaultStyles?: CSSProperties;\n /**\n * Component templates to start with on Plasmic.\n */\n templates?: ComponentTemplates<P>;\n /**\n * Registered name of parent component, used for grouping related components.\n */\n parentComponentName?: string;\n /**\n * Whether the component can be used as an attachment to an element.\n */\n isAttachment?: boolean;\n /**\n * Whether the component provides data to its slots using DataProvider.\n */\n providesData?: boolean;\n\n /**\n * If specified, then Figma components with the specified names will be mapped\n * to this component when you paste Figma content into Plasmic\n */\n figmaMappings?: {\n figmaComponentName: string;\n }[];\n\n /**\n * If true, when an instance of this component is added, the element\n * will always be named by the name of this component.\n */\n alwaysAutoName?: boolean;\n\n /**\n * If true, then won't be listed in the insert menu for content creators.\n */\n hideFromContentCreators?: boolean;\n\n refActions?: Record<string, RefActionRegistration<P>>;\n}\n\nexport type CodeComponentMode =\n | \"advanced\"\n | \"simplified\"\n | \"database-schema-driven\";\n\n/**\n * @deprecated use CodeComponentMeta instead\n */\nexport type ComponentMeta<P> = CodeComponentMeta<P>;\n\nexport interface FunctionParam<P> {\n name: string;\n displayName?: string;\n type: PropType<P>;\n}\n\nexport interface RefActionRegistration<P> {\n displayName?: string;\n description?: string;\n argTypes: FunctionParam<P>[];\n}\n\nexport interface ComponentRegistration {\n component: React.ComponentType<any>;\n meta: CodeComponentMeta<any>;\n}\n\ndeclare global {\n interface Window {\n __PlasmicComponentRegistry: ComponentRegistration[];\n }\n}\n\nif (root.__PlasmicComponentRegistry == null) {\n root.__PlasmicComponentRegistry = [];\n}\n\nexport default function registerComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n // Check for duplicates\n if (\n root.__PlasmicComponentRegistry.some(\n (r: ComponentRegistration) =>\n r.component === component && r.meta.name === meta.name\n )\n ) {\n return;\n }\n root.__PlasmicComponentRegistry.push({ component, meta });\n}\n","import {\n BooleanType,\n ChoiceType,\n CustomType,\n JSONLikeType,\n NumberType,\n StringType,\n DataSourceType,\n} from \"./prop-types\";\nimport { FunctionParam } from \"./registerComponent\";\n\nconst root = globalThis as any;\n\n// Using just a subset of types from prop-types\nexport type PropType<P> =\n | StringType<P>\n | BooleanType<P>\n | NumberType<P>\n | JSONLikeType<P>\n | ChoiceType<P>\n | CustomType<P>\n | DataSourceType<P>;\n\ntype RestrictPropType<T, P> = T extends string\n ? StringType<P> | ChoiceType<P> | JSONLikeType<P> | CustomType<P>\n : T extends boolean\n ? BooleanType<P> | JSONLikeType<P> | CustomType<P>\n : T extends number\n ? NumberType<P> | JSONLikeType<P> | CustomType<P>\n : PropType<P>;\n\ntype DistributedKeyOf<T> = T extends any ? keyof T : never;\n\nexport interface GlobalContextMeta<P> {\n /**\n * Any unique string name used to identify that context. Each context\n * should be registered with a different `meta.name`, even if they have the\n * same name in the code.\n */\n name: string;\n /**\n * The name to be displayed for the context in Studio. Optional: if not\n * specified, `meta.name` is used.\n */\n displayName?: string;\n /**\n * The description of the context to be shown in Studio.\n */\n description?: string;\n /**\n * The javascript name to be used when generating code. Optional: if not\n * provided, `meta.name` is used.\n */\n importName?: string;\n /**\n * An object describing the context properties to be used in Studio.\n * For each `prop`, there should be an entry `meta.props[prop]` describing\n * its type.\n */\n props: { [prop in DistributedKeyOf<P>]?: RestrictPropType<P[prop], P> } & {\n [prop: string]: PropType<P>;\n };\n /**\n * The path to be used when importing the context in the generated code.\n * It can be the name of the package that contains the context, or the path\n * to the file in the project (relative to the root directory).\n */\n importPath: string;\n /**\n * Whether the context is the default export from that path. Optional: if\n * not specified, it's considered `false`.\n */\n isDefaultExport?: boolean;\n /**\n * The prop that receives and forwards a React `ref`. Plasmic only uses `ref`\n * to interact with components, so it's not used in the generated code.\n * Optional: If not provided, the usual `ref` is used.\n */\n refProp?: string;\n /**\n * Whether the global context provides data to its children using DataProvider.\n */\n providesData?: boolean;\n\n unstable__globalActions?: Record<string, GlobalActionRegistration<P>>;\n}\n\nexport interface GlobalContextRegistration {\n component: React.ComponentType<any>;\n meta: GlobalContextMeta<any>;\n}\n\nexport interface GlobalActionRegistration<P> {\n displayName?: string;\n description?: string;\n parameters: FunctionParam<P>[];\n}\n\ndeclare global {\n interface Window {\n __PlasmicContextRegistry: GlobalContextRegistration[];\n }\n}\n\nif (root.__PlasmicContextRegistry == null) {\n root.__PlasmicContextRegistry = [];\n}\n\nexport default function registerGlobalContext<\n T extends React.ComponentType<any>\n>(component: T, meta: GlobalContextMeta<React.ComponentProps<T>>) {\n // Check for duplicates\n if (\n root.__PlasmicContextRegistry.some(\n (r: GlobalContextRegistration) =>\n r.component === component && r.meta.name === meta.name\n )\n ) {\n return;\n }\n root.__PlasmicContextRegistry.push({ component, meta });\n}\n","export type TokenType =\n | \"color\"\n | \"spacing\"\n | \"font-family\"\n | \"font-size\"\n | \"line-height\"\n | \"opacity\";\n\nexport interface TokenRegistration {\n name: string;\n displayName: string;\n value: string;\n type: TokenType;\n}\n\ndeclare global {\n interface Window {\n __PlasmicTokenRegistry: TokenRegistration[];\n }\n}\n\nconst root = globalThis as any;\n\nif (root.__PlasmicTokenRegistry == null) {\n root.__PlasmicTokenRegistry = [];\n}\n\nexport default function registerToken(token: TokenRegistration) {\n root.__PlasmicTokenRegistry.push(token);\n}\n","const root = globalThis as any;\n\nexport interface BasicTrait {\n label?: string;\n type: \"text\" | \"number\" | \"boolean\";\n}\n\nexport interface ChoiceTrait {\n label?: string;\n type: \"choice\";\n options: string[];\n}\n\nexport type TraitMeta = BasicTrait | ChoiceTrait;\n\nexport interface TraitRegistration {\n trait: string;\n meta: TraitMeta;\n}\n\ndeclare global {\n interface Window {\n __PlasmicTraitRegistry: TraitRegistration[];\n }\n}\n\nif (root.__PlasmicTraitRegistry == null) {\n root.__PlasmicTraitRegistry = [];\n}\n\nexport default function registerTrait(trait: string, meta: TraitMeta) {\n root.__PlasmicTraitRegistry.push({\n trait,\n meta,\n });\n}\n","import { cloneElement, isValidElement } from \"react\";\n\n/**\n * Allows elements to be repeated in Plasmic Studio.\n * @param index The index of the copy (starting at 0).\n * @param elt the React element to be repeated (or an array of such).\n */\nexport default function repeatedElement<T>(index: number, elt: T): T;\n/**\n * Allows elements to be repeated in Plasmic Studio.\n * @param isPrimary should be true for at most one instance of the element, and\n * indicates which copy of the element will be highlighted when the element is\n * selected in Studio.\n * @param elt the React element to be repeated (or an array of such).\n */\nexport default function repeatedElement<T>(isPrimary: boolean, elt: T): T;\nexport default function repeatedElement<T>(index: boolean | number, elt: T): T {\n return repeatedElementFn(index as any, elt);\n}\n\nlet repeatedElementFn: typeof repeatedElement = (\n index: boolean | number,\n elt: any\n) => {\n if (Array.isArray(elt)) {\n return elt.map((v) => repeatedElementFn(index as any, v)) as any;\n }\n if (elt && isValidElement(elt) && typeof elt !== \"string\") {\n return cloneElement(elt) as any;\n }\n return elt;\n};\n\nconst root = globalThis as any;\nexport const setRepeatedElementFn: (fn: typeof repeatedElement) => void =\n root?.__Sub?.setRepeatedElementFn ??\n function (fn: typeof repeatedElement) {\n repeatedElementFn = fn;\n };\n","import React from \"react\";\n\nconst PlasmicLinkContext = React.createContext<\n React.ComponentType<any> | undefined\n>(undefined);\n\nexport function usePlasmicLinkMaybe():\n | React.ComponentType<React.ComponentProps<\"a\">>\n | undefined {\n return React.useContext(PlasmicLinkContext);\n}\n\nconst AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\n});\n\nexport function usePlasmicLink(): React.ComponentType<\n React.ComponentProps<\"a\">\n> {\n const Link = React.useContext(PlasmicLinkContext);\n if (Link) {\n return Link;\n } else {\n return AnchorLink as React.ComponentType<React.ComponentProps<\"a\">>;\n }\n}\n\nexport function PlasmicLinkProvider(props: {\n Link: React.ComponentType<any> | undefined;\n children?: React.ReactNode;\n}) {\n const { Link, children } = props;\n return (\n <PlasmicLinkContext.Provider value={Link}>\n {children}\n </PlasmicLinkContext.Provider>\n );\n}\n","export const hostVersion = \"1.0.151\";\n","import * as PlasmicQuery from \"@plasmicapp/query\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { registerRenderErrorListener, setPlasmicRootNode } from \"./canvas-host\";\nimport * as hostModule from \"./exports\";\nimport { setRepeatedElementFn } from \"./repeatedElement\";\n// version.ts is automatically generated by `yarn build` and not committed.\nimport { hostVersion } from \"./version\";\n\n// All exports must come from \"./exports\"\nexport * from \"./exports\";\n\nconst root = globalThis as any;\n\nif (root.__Sub == null) {\n // Creating a side effect here by logging, so that vite won't\n // ignore this block for whatever reason. Hiding this for now\n // as users are complaining; will have to check if this has\n // been fixed with vite.\n // console.log(\"Plasmic: Setting up app host dependencies\");\n root.__Sub = {\n React,\n ReactDOM,\n PlasmicQuery,\n hostModule,\n hostVersion,\n hostUtils: {\n setPlasmicRootNode,\n registerRenderErrorListener,\n setRepeatedElementFn,\n },\n\n // For backwards compatibility:\n setPlasmicRootNode,\n registerRenderErrorListener,\n setRepeatedElementFn,\n ...hostModule,\n };\n}\n"],"names":["React","root"],"mappings":"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"}
1
+ {"version":3,"file":"host.esm.js","sources":["../src/lang-utils.ts","../src/useForceUpdate.ts","../src/canvas-host.tsx","../src/common.ts","../src/data.tsx","../src/fetcher.ts","../src/global-actions.tsx","../src/registerComponent.ts","../src/registerGlobalContext.ts","../src/registerToken.ts","../src/registerTrait.ts","../src/repeatedElement.ts","../src/link.tsx","../src/version.ts","../src/index.ts"],"sourcesContent":["function isString(x: any): x is string {\n return typeof x === \"string\";\n}\n\ntype StringGen = string | (() => string);\n\nexport function ensure<T>(x: T | null | undefined, msg: StringGen = \"\"): T {\n if (x === null || x === undefined) {\n debugger;\n msg = (isString(msg) ? msg : msg()) || \"\";\n throw new Error(\n `Value must not be undefined or null${msg ? `- ${msg}` : \"\"}`\n );\n } else {\n return x;\n }\n}\n","import { useCallback, useState } from \"react\";\n\nexport default function useForceUpdate() {\n const [, setTick] = useState(0);\n const update = useCallback(() => {\n setTick((tick) => tick + 1);\n }, []);\n return update;\n}\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { ensure } from \"./lang-utils\";\nimport useForceUpdate from \"./useForceUpdate\";\n\ndeclare global {\n interface Window {\n __PlasmicHostVersion: string;\n }\n}\n\nif ((globalThis as any).__PlasmicHostVersion == null) {\n (globalThis as any).__PlasmicHostVersion = \"3\";\n}\n\nconst rootChangeListeners: (() => void)[] = [];\nclass PlasmicRootNodeWrapper {\n constructor(private value: null | React.ReactElement) {}\n set = (val: null | React.ReactElement) => {\n this.value = val;\n rootChangeListeners.forEach((f) => f());\n };\n get = () => this.value;\n}\n\nconst plasmicRootNode = new PlasmicRootNodeWrapper(null);\n\nfunction getHashParams() {\n return new URLSearchParams(location.hash.replace(/^#/, \"?\"));\n}\n\nfunction getPlasmicOrigin() {\n const params = getHashParams();\n return ensure(\n params.get(\"origin\"),\n \"Missing information from Plasmic window.\"\n );\n}\n\nfunction getStudioHash() {\n const hashParams = getHashParams();\n if (hashParams.has(\"studioHash\")) {\n return hashParams.get(\"studioHash\");\n }\n const urlParams = new URL(location.href).searchParams;\n return urlParams.get(\"studio-hash\");\n}\n\nfunction renderStudioIntoIframe() {\n const script = document.createElement(\"script\");\n const plasmicOrigin = getPlasmicOrigin();\n const hash = getStudioHash();\n script.src = `${plasmicOrigin}/static/js/studio${\n hash ? `.${hash}.js` : `.js`\n }`;\n document.body.appendChild(script);\n}\n\nlet renderCount = 0;\nexport function setPlasmicRootNode(node: React.ReactElement | null) {\n // Keep track of renderCount, which we use as key to ErrorBoundary, so\n // we can reset the error on each render\n renderCount++;\n plasmicRootNode.set(node);\n}\n\nexport interface PlasmicCanvasContextValue {\n componentName: string | null;\n globalVariants: Record<string, string>;\n interactive?: boolean;\n}\n\n/**\n * React context to detect whether the component is rendered on Plasmic editor.\n * If not, return false.\n * If so, return an object with more information about the component\n */\nexport const PlasmicCanvasContext = React.createContext<\n PlasmicCanvasContextValue | false\n>(false);\nexport const usePlasmicCanvasContext = () =>\n React.useContext(PlasmicCanvasContext);\n\nfunction _PlasmicCanvasHost() {\n // If window.parent is null, then this is a window whose containing iframe\n // has been detached from the DOM (for the top window, window.parent === window).\n // In that case, we shouldn't do anything. If window.parent is null, by the way,\n // location.hash will also be null.\n const isFrameAttached = !!window.parent;\n const isCanvas = !!location.hash?.match(/\\bcanvas=true\\b/);\n const isLive = !!location.hash?.match(/\\blive=true\\b/) || !isFrameAttached;\n const shouldRenderStudio =\n isFrameAttached &&\n !document.querySelector(\"#plasmic-studio-tag\") &&\n !isCanvas &&\n !isLive;\n const forceUpdate = useForceUpdate();\n React.useLayoutEffect(() => {\n rootChangeListeners.push(forceUpdate);\n return () => {\n const index = rootChangeListeners.indexOf(forceUpdate);\n if (index >= 0) {\n rootChangeListeners.splice(index, 1);\n }\n };\n }, [forceUpdate]);\n React.useEffect(() => {\n if (shouldRenderStudio && isFrameAttached && window.parent !== window) {\n renderStudioIntoIframe();\n }\n }, [shouldRenderStudio, isFrameAttached]);\n React.useEffect(() => {\n if (!shouldRenderStudio && !document.querySelector(\"#getlibs\") && isLive) {\n const scriptElt = document.createElement(\"script\");\n scriptElt.id = \"getlibs\";\n scriptElt.src = getPlasmicOrigin() + \"/static/js/getlibs.js\";\n scriptElt.async = false;\n scriptElt.onload = () => {\n (window as any).__GetlibsReadyResolver?.();\n };\n document.head.append(scriptElt);\n }\n }, [shouldRenderStudio]);\n\n const [canvasContextValue, setCanvasContextValue] = React.useState(() =>\n deriveCanvasContextValue()\n );\n\n React.useEffect(() => {\n if (isCanvas) {\n const listener = () => {\n setCanvasContextValue(deriveCanvasContextValue());\n };\n window.addEventListener(\"hashchange\", listener);\n return () => window.removeEventListener(\"hashchange\", listener);\n }\n return undefined;\n }, [isCanvas]);\n if (!isFrameAttached) {\n return null;\n }\n if (isCanvas || isLive) {\n let appDiv = document.querySelector(\"#plasmic-app.__wab_user-body\");\n if (!appDiv) {\n appDiv = document.createElement(\"div\");\n appDiv.id = \"plasmic-app\";\n appDiv.classList.add(\"__wab_user-body\");\n document.body.appendChild(appDiv);\n }\n return ReactDOM.createPortal(\n <ErrorBoundary key={`${renderCount}`}>\n <PlasmicCanvasContext.Provider value={canvasContextValue}>\n {plasmicRootNode.get()}\n </PlasmicCanvasContext.Provider>\n </ErrorBoundary>,\n appDiv,\n \"plasmic-app\"\n );\n }\n if (shouldRenderStudio && window.parent === window) {\n return (\n <iframe\n src={`https://docs.plasmic.app/app-content/app-host-ready#appHostUrl=${encodeURIComponent(\n location.href\n )}`}\n style={{\n width: \"100vw\",\n height: \"100vh\",\n border: \"none\",\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 99999999,\n }}\n ></iframe>\n );\n }\n return null;\n}\n\ninterface PlasmicCanvasHostProps {\n /**\n * Webpack hmr uses EventSource to\tlisten to hot reloads, but that\n * resultsin a persistent\tconnection from\teach window. In Plasmic\n * Studio, if a project is configured to use app-hosting with a\n * nextjs or gatsby server running in dev mode, each artboard will\n * be holding a persistent connection to the dev server.\n * Because browsers\thave a limit to\thow many connections can\n * be held\tat a time by domain, this means\tafter X\tartboards, new\n * artboards will freeze and not load.\n *\n * By default, <PlasmicCanvasHost /> will globally mutate\n * window.EventSource to avoid using EventSource for HMR, which you\n * typically don't need for your custom host page. If you do still\n * want to retain HRM, then youc an pass enableWebpackHmr={true}.\n */\n enableWebpackHmr?: boolean;\n}\n\nexport const PlasmicCanvasHost: React.FunctionComponent<\n PlasmicCanvasHostProps\n> = (props) => {\n const { enableWebpackHmr } = props;\n const [node, setNode] = React.useState<React.ReactElement<any, any> | null>(\n null\n );\n React.useEffect(() => {\n setNode(<_PlasmicCanvasHost />);\n }, []);\n return (\n <>\n {!enableWebpackHmr && <DisableWebpackHmr />}\n {node}\n </>\n );\n};\n\ntype RenderErrorListener = (err: Error) => void;\nconst renderErrorListeners: RenderErrorListener[] = [];\nexport function registerRenderErrorListener(listener: RenderErrorListener) {\n renderErrorListeners.push(listener);\n return () => {\n const index = renderErrorListeners.indexOf(listener);\n if (index >= 0) {\n renderErrorListeners.splice(index, 1);\n }\n };\n}\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n}\n\ninterface ErrorBoundaryState {\n error?: Error;\n}\n\nclass ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {};\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error) {\n renderErrorListeners.forEach((listener) => listener(error));\n }\n\n render() {\n if (this.state.error) {\n return <div>Error: {`${this.state.error.message}`}</div>;\n } else {\n return <>{this.props.children}</>;\n }\n }\n}\n\nfunction DisableWebpackHmr() {\n if (process.env.NODE_ENV === \"production\") {\n return null;\n }\n return (\n <script\n type=\"text/javascript\"\n dangerouslySetInnerHTML={{\n __html: `\n if (typeof window !== \"undefined\") {\n const RealEventSource = window.EventSource;\n window.EventSource = function(url, config) {\n if (/[^a-zA-Z]hmr($|[^a-zA-Z])/.test(url)) {\n console.warn(\"Plasmic: disabled EventSource request for\", url);\n return {\n onerror() {}, onmessage() {}, onopen() {}, close() {}\n };\n } else {\n return new RealEventSource(url, config);\n }\n }\n }\n `,\n }}\n ></script>\n );\n}\n\nfunction deriveCanvasContextValue(): PlasmicCanvasContextValue | false {\n const hash = window.location.hash;\n if (hash && hash.length > 0) {\n // create URLsearchParams skipping the initial # character\n const params = new URLSearchParams(hash.substring(1));\n if (params.get(\"canvas\") === \"true\") {\n const globalVariants = params.get(\"globalVariants\");\n return {\n componentName: params.get(\"componentName\") ?? null,\n globalVariants: globalVariants ? JSON.parse(globalVariants) : {},\n interactive: params.get(\"interactive\") === \"true\",\n };\n }\n }\n return false;\n}\n","export const tuple = <T extends any[]>(...args: T): T => args;\n","import React, {\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { tuple } from \"./common\";\n\nexport type DataDict = Record<string, any>;\n\nexport const DataContext = createContext<DataDict | undefined>(undefined);\n\nexport type DataMeta = {\n hidden?: boolean;\n label?: string;\n};\n\nexport function mkMetaName(name: string) {\n return `__plasmic_meta_${name}`;\n}\n\nexport function mkMetaValue(meta: Partial<DataMeta>): DataMeta {\n return meta;\n}\n\nexport function applySelector(\n rawData: DataDict | undefined,\n selector: string | undefined\n): any {\n if (!selector) {\n return undefined;\n }\n let curData = rawData;\n for (const key of selector.split(\".\")) {\n curData = curData?.[key];\n }\n return curData;\n}\n\nexport type SelectorDict = Record<string, string | undefined>;\n\nexport function useSelector(selector: string | undefined): any {\n const rawData = useDataEnv();\n return applySelector(rawData, selector);\n}\n\nexport function useSelectors(selectors: SelectorDict = {}): any {\n const rawData = useDataEnv();\n return Object.fromEntries(\n Object.entries(selectors)\n .filter(([key, selector]) => !!key && !!selector)\n .map(([key, selector]) => tuple(key, applySelector(rawData, selector)))\n );\n}\n\nexport function useDataEnv() {\n return useContext(DataContext);\n}\n\nexport interface DataProviderProps {\n /**\n * Key to set in data context.\n */\n name?: string;\n /**\n * Value to set for `name` in data context.\n */\n data?: any;\n /**\n * If true, hide this entry in studio (data binding).\n */\n hidden?: boolean;\n /**\n * Label to be shown in the studio data picker for easier navigation (data binding).\n */\n label?: string;\n children?: ReactNode;\n}\n\nexport function DataProvider({\n name,\n data,\n hidden,\n label,\n children,\n}: DataProviderProps) {\n const existingEnv = useDataEnv() ?? {};\n if (!name) {\n return <>{children}</>;\n } else {\n return (\n <DataContext.Provider\n value={{\n ...existingEnv,\n [name]: data,\n [mkMetaName(name)]: mkMetaValue({ hidden, label }),\n }}\n >\n {children}\n </DataContext.Provider>\n );\n }\n}\n\nexport interface PageParamsProviderProps {\n params?: Record<string, string | string[] | undefined>;\n query?: Record<string, string | string[] | undefined>;\n children?: ReactNode;\n}\n\nexport function PageParamsProvider({\n children,\n params = {},\n query = {},\n}: PageParamsProviderProps) {\n const $ctx = useDataEnv() || {};\n return (\n <DataProvider\n name={\"params\"}\n data={{ ...$ctx.params, ...params }}\n label={\"Page URL path params\"}\n >\n <DataProvider\n name={\"query\"}\n data={{ ...$ctx.query, ...query }}\n label={\"Page URL query params\"}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n\nexport function DataCtxReader({\n children,\n}: {\n children: ($ctx: DataDict | undefined) => ReactNode;\n}) {\n const $ctx = useDataEnv();\n return children($ctx) as ReactElement | null;\n}\n","import { PrimitiveType } from \"./prop-types\";\n\nconst root = globalThis as any;\n\nexport type Fetcher = (...args: any[]) => Promise<any>;\n\nexport interface FetcherMeta {\n /**\n * Any unique identifying string for this fetcher.\n */\n name: string;\n /**\n * The Studio-user-friendly display name.\n */\n displayName?: string;\n /**\n * The symbol to import from the importPath.\n */\n importName?: string;\n args: { name: string; type: PrimitiveType }[];\n returns: PrimitiveType;\n /**\n * Either the path to the fetcher relative to `rootDir` or the npm\n * package name\n */\n importPath: string;\n /**\n * Whether it's a default export or named export\n */\n isDefaultExport?: boolean;\n}\n\nexport interface FetcherRegistration {\n fetcher: Fetcher;\n meta: FetcherMeta;\n}\n\ndeclare global {\n interface Window {\n __PlasmicFetcherRegistry: FetcherRegistration[];\n }\n}\n\nroot.__PlasmicFetcherRegistry = [];\n\nexport function registerFetcher(fetcher: Fetcher, meta: FetcherMeta) {\n root.__PlasmicFetcherRegistry.push({ fetcher, meta });\n}\n","import React from \"react\";\n\nexport type GlobalActionDict = Record<string, Function>;\n\nexport const GlobalActionsContext = React.createContext<\n GlobalActionDict | undefined\n>(undefined);\n\nexport function GlobalActionsProvider(props: {\n contextName: string;\n children?: React.ReactNode;\n actions: GlobalActionDict;\n}) {\n const { contextName, children, actions } = props;\n const namespacedActions = React.useMemo(\n () =>\n Object.fromEntries(\n Object.entries(actions).map(([key, val]) => [\n `${contextName}.${key}`,\n val,\n ])\n ),\n [contextName, actions]\n );\n return (\n <GlobalActionsContext.Provider value={namespacedActions}>\n {children}\n </GlobalActionsContext.Provider>\n );\n}\n\nexport function useGlobalActions() {\n return React.useContext(GlobalActionsContext) ?? {};\n}\n","import {\n CodeComponentElement,\n CSSProperties,\n PlasmicElement,\n} from \"./element-types\";\nimport {\n ContextDependentConfig,\n InferDataType,\n ModalProps,\n PropType,\n RestrictPropType,\n} from \"./prop-types\";\nimport { TupleUnion } from \"./type-utils\";\nexport type * from \"./prop-types\";\n\nconst root = globalThis as any;\n\nexport interface ActionProps<P> {\n componentProps: P;\n /**\n * `contextData` can be `null` if the prop controls are rendering before\n * the component instance itself (it will re-render once the component\n * calls `setControlContextData`)\n */\n contextData: InferDataType<P> | null;\n studioOps: {\n showModal: (\n modalProps: Omit<ModalProps, \"onClose\"> & { onClose?: () => void }\n ) => void;\n refreshQueryData: () => void;\n appendToSlot: (element: PlasmicElement, slotName: string) => void;\n removeFromSlotAt: (pos: number, slotName: string) => void;\n updateProps: (newValues: any) => void;\n };\n /**\n * The document that the component will be rendered into; instead of using\n * `document` directly (for, say, `document.querySelector()` etc.), you\n * should use this instead.\n */\n studioDocument: typeof document;\n}\n\nexport type Action<P> =\n | {\n type: \"button-action\";\n label: string;\n onClick: (props: ActionProps<P>) => void;\n hidden?: ContextDependentConfig<P, boolean>;\n }\n | {\n type: \"custom-action\";\n control: React.ComponentType<ActionProps<P>>;\n hidden?: ContextDependentConfig<P, boolean>;\n };\n\ntype DistributedKeyOf<T> = T extends any ? keyof T : never;\n\ninterface ComponentTemplate<P>\n extends Omit<CodeComponentElement<P>, \"type\" | \"name\"> {\n /**\n * A preview picture for the template.\n */\n previewImg?: string;\n}\n\nexport interface ComponentTemplates<P> {\n [name: string]: ComponentTemplate<P>;\n}\n\nexport type StateSpec = {\n onChangeProp: string;\n} & (\n | {\n type: \"readonly\";\n variableType: \"text\";\n initVal?: string;\n }\n | {\n type: \"readonly\";\n variableType: \"number\";\n initVal?: number;\n }\n | {\n type: \"readonly\";\n variableType: \"boolean\";\n initVal?: boolean;\n }\n | {\n type: \"readonly\";\n variableType: \"array\";\n initVal?: any[];\n }\n | {\n type: \"readonly\";\n variableType: \"object\";\n initVal?: object;\n }\n | {\n type: \"writable\";\n variableType: \"text\" | \"number\" | \"boolean\" | \"array\" | \"object\";\n valueProp: string;\n }\n);\n\nexport interface StateHelpers<P, T> {\n initFunc?: ($props: P) => T;\n onChangeArgsToValue?: (...args: any) => T;\n onMutate?: (stateValue: T, $ref: any) => void;\n}\n\n// A compile-time error will occur if a new field is added to the StateHelper\n// interface but not included in the keys array of state helper.\nexport const stateHelpersKeys: TupleUnion<keyof StateHelpers<any, any>> = [\n \"initFunc\",\n \"onChangeArgsToValue\",\n \"onMutate\",\n];\n\nexport type ComponentHelpers<P> = {\n states: Record<string, StateHelpers<P, any>>;\n};\n\nexport type ExternalComponentHelpers<P> = {\n helpers: ComponentHelpers<P>;\n importPath: string;\n} & (\n | {\n importName: string;\n }\n | {\n isDefaultExport: true;\n }\n);\n\nexport type StyleSection =\n | \"visibility\"\n | \"typography\"\n | \"sizing\"\n | \"spacing\"\n | \"background\"\n | \"transform\"\n | \"transitions\"\n | \"layout\"\n | \"overflow\"\n | \"border\"\n | \"shadows\"\n | \"effects\";\n\nexport interface CodeComponentMeta<P> {\n /**\n * Any unique string name used to identify that component. Each component\n * should be registered with a different `meta.name`, even if they have the\n * same name in the code.\n */\n name: string;\n /**\n * The name to be displayed for the component in Studio. Optional: if not\n * specified, `meta.name` is used.\n */\n displayName?: string;\n /**\n * The description of the component to be shown in Studio.\n */\n description?: string;\n /**\n * The javascript name to be used when generating code. Optional: if not\n * provided, `meta.name` is used.\n */\n importName?: string;\n /**\n * An object describing the component properties to be used in Studio.\n * For each `prop`, there should be an entry `meta.props[prop]` describing\n * its type.\n */\n props: { [prop in DistributedKeyOf<P>]?: RestrictPropType<P[prop], P> } & {\n [prop: string]: PropType<P>;\n };\n /**\n * An object describing the component states to be used in Studio.\n */\n states?: Record<string, StateSpec>;\n /**\n * An object describing the components helpers to be used in Studio.\n * 1. states helpers: Each state can receive an \"initFunc\" prop to initialize\n * the implicit state in Studio, and an \"onChangeArgsToValue\" prop to\n * transform the event handler arguments into a value\n */\n componentHelpers?: ExternalComponentHelpers<P>;\n /**\n * An array describing the component actions to be used in Studio.\n */\n actions?: Action<P>[];\n /**\n * Whether style sections should be shown in Studio. For styles to work, the\n * component must accept a `className` prop. If unset, defaults to all styles.\n * Set to `false` if this component cannot be styled (for example, if it doesn't\n * render any DOM elements).\n */\n styleSections?: StyleSection[] | boolean;\n /**\n * Whether the element can be repeated in Studio. If unset, defaults to true.\n */\n isRepeatable?: boolean;\n /**\n * The path to be used when importing the component in the generated code.\n * It can be the name of the package that contains the component, or the path\n * to the file in the project (relative to the root directory).\n */\n importPath: string;\n /**\n * Whether the component is the default export from that path. Optional: if\n * not specified, it's considered `false`.\n */\n isDefaultExport?: boolean;\n /**\n * The prop that expects the CSS classes with styles to be applied to the\n * component. Optional: if not specified, Plasmic will expect it to be\n * `className`. Notice that if the component does not accept CSS classes, the\n * component will not be able to receive styles from the Studio.\n */\n classNameProp?: string;\n /**\n * The prop that receives and forwards a React `ref`. Plasmic only uses `ref`\n * to interact with components, so it's not used in the generated code.\n * Optional: If not provided, the usual `ref` is used.\n */\n refProp?: string;\n /**\n * Default styles to start with when instantiating the component in Plasmic.\n */\n defaultStyles?: CSSProperties;\n /**\n * Component templates to start with on Plasmic.\n */\n templates?: ComponentTemplates<P>;\n /**\n * Registered name of parent component, used for grouping related components.\n */\n parentComponentName?: string;\n /**\n * Whether the component can be used as an attachment to an element.\n */\n isAttachment?: boolean;\n /**\n * Whether the component provides data to its slots using DataProvider.\n */\n providesData?: boolean;\n\n /**\n * If specified, then Figma components with the specified names will be mapped\n * to this component when you paste Figma content into Plasmic\n */\n figmaMappings?: {\n figmaComponentName: string;\n }[];\n\n /**\n * If true, when an instance of this component is added, the element\n * will always be named by the name of this component.\n */\n alwaysAutoName?: boolean;\n\n /**\n * If true, then won't be listed in the insert menu for content creators.\n */\n hideFromContentCreators?: boolean;\n\n refActions?: Record<string, RefActionRegistration<P>>;\n}\n\nexport type CodeComponentMode =\n | \"advanced\"\n | \"simplified\"\n | \"database-schema-driven\";\n\n/**\n * @deprecated use CodeComponentMeta instead\n */\nexport type ComponentMeta<P> = CodeComponentMeta<P>;\n\nexport interface FunctionParam<P> {\n name: string;\n displayName?: string;\n type: PropType<P>;\n}\n\nexport interface RefActionRegistration<P> {\n displayName?: string;\n description?: string;\n argTypes: FunctionParam<P>[];\n}\n\nexport interface ComponentRegistration {\n component: React.ComponentType<any>;\n meta: CodeComponentMeta<any>;\n}\n\ndeclare global {\n interface Window {\n __PlasmicComponentRegistry: ComponentRegistration[];\n }\n}\n\nif (root.__PlasmicComponentRegistry == null) {\n root.__PlasmicComponentRegistry = [];\n}\n\nexport default function registerComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n // Check for duplicates\n if (\n root.__PlasmicComponentRegistry.some(\n (r: ComponentRegistration) =>\n r.component === component && r.meta.name === meta.name\n )\n ) {\n return;\n }\n root.__PlasmicComponentRegistry.push({ component, meta });\n}\n","import {\n BooleanType,\n ChoiceType,\n CustomType,\n JSONLikeType,\n NumberType,\n StringType,\n DataSourceType,\n} from \"./prop-types\";\nimport { FunctionParam } from \"./registerComponent\";\n\nconst root = globalThis as any;\n\n// Using just a subset of types from prop-types\nexport type PropType<P> =\n | StringType<P>\n | BooleanType<P>\n | NumberType<P>\n | JSONLikeType<P>\n | ChoiceType<P>\n | CustomType<P>\n | DataSourceType<P>;\n\ntype RestrictPropType<T, P> = T extends string\n ? StringType<P> | ChoiceType<P> | JSONLikeType<P> | CustomType<P>\n : T extends boolean\n ? BooleanType<P> | JSONLikeType<P> | CustomType<P>\n : T extends number\n ? NumberType<P> | JSONLikeType<P> | CustomType<P>\n : PropType<P>;\n\ntype DistributedKeyOf<T> = T extends any ? keyof T : never;\n\nexport interface GlobalContextMeta<P> {\n /**\n * Any unique string name used to identify that context. Each context\n * should be registered with a different `meta.name`, even if they have the\n * same name in the code.\n */\n name: string;\n /**\n * The name to be displayed for the context in Studio. Optional: if not\n * specified, `meta.name` is used.\n */\n displayName?: string;\n /**\n * The description of the context to be shown in Studio.\n */\n description?: string;\n /**\n * The javascript name to be used when generating code. Optional: if not\n * provided, `meta.name` is used.\n */\n importName?: string;\n /**\n * An object describing the context properties to be used in Studio.\n * For each `prop`, there should be an entry `meta.props[prop]` describing\n * its type.\n */\n props: { [prop in DistributedKeyOf<P>]?: RestrictPropType<P[prop], P> } & {\n [prop: string]: PropType<P>;\n };\n /**\n * The path to be used when importing the context in the generated code.\n * It can be the name of the package that contains the context, or the path\n * to the file in the project (relative to the root directory).\n */\n importPath: string;\n /**\n * Whether the context is the default export from that path. Optional: if\n * not specified, it's considered `false`.\n */\n isDefaultExport?: boolean;\n /**\n * The prop that receives and forwards a React `ref`. Plasmic only uses `ref`\n * to interact with components, so it's not used in the generated code.\n * Optional: If not provided, the usual `ref` is used.\n */\n refProp?: string;\n /**\n * Whether the global context provides data to its children using DataProvider.\n */\n providesData?: boolean;\n\n unstable__globalActions?: Record<string, GlobalActionRegistration<P>>;\n}\n\nexport interface GlobalContextRegistration {\n component: React.ComponentType<any>;\n meta: GlobalContextMeta<any>;\n}\n\nexport interface GlobalActionRegistration<P> {\n displayName?: string;\n description?: string;\n parameters: FunctionParam<P>[];\n}\n\ndeclare global {\n interface Window {\n __PlasmicContextRegistry: GlobalContextRegistration[];\n }\n}\n\nif (root.__PlasmicContextRegistry == null) {\n root.__PlasmicContextRegistry = [];\n}\n\nexport default function registerGlobalContext<\n T extends React.ComponentType<any>\n>(component: T, meta: GlobalContextMeta<React.ComponentProps<T>>) {\n // Check for duplicates\n if (\n root.__PlasmicContextRegistry.some(\n (r: GlobalContextRegistration) =>\n r.component === component && r.meta.name === meta.name\n )\n ) {\n return;\n }\n root.__PlasmicContextRegistry.push({ component, meta });\n}\n","export type TokenType =\n | \"color\"\n | \"spacing\"\n | \"font-family\"\n | \"font-size\"\n | \"line-height\"\n | \"opacity\";\n\nexport interface TokenRegistration {\n name: string;\n displayName: string;\n value: string;\n type: TokenType;\n}\n\ndeclare global {\n interface Window {\n __PlasmicTokenRegistry: TokenRegistration[];\n }\n}\n\nconst root = globalThis as any;\n\nif (root.__PlasmicTokenRegistry == null) {\n root.__PlasmicTokenRegistry = [];\n}\n\nexport default function registerToken(token: TokenRegistration) {\n root.__PlasmicTokenRegistry.push(token);\n}\n","const root = globalThis as any;\n\nexport interface BasicTrait {\n label?: string;\n type: \"text\" | \"number\" | \"boolean\";\n}\n\nexport interface ChoiceTrait {\n label?: string;\n type: \"choice\";\n options: string[];\n}\n\nexport type TraitMeta = BasicTrait | ChoiceTrait;\n\nexport interface TraitRegistration {\n trait: string;\n meta: TraitMeta;\n}\n\ndeclare global {\n interface Window {\n __PlasmicTraitRegistry: TraitRegistration[];\n }\n}\n\nif (root.__PlasmicTraitRegistry == null) {\n root.__PlasmicTraitRegistry = [];\n}\n\nexport default function registerTrait(trait: string, meta: TraitMeta) {\n root.__PlasmicTraitRegistry.push({\n trait,\n meta,\n });\n}\n","import { cloneElement, isValidElement } from \"react\";\n\n/**\n * Allows elements to be repeated in Plasmic Studio.\n * @param index The index of the copy (starting at 0).\n * @param elt the React element to be repeated (or an array of such).\n */\nexport default function repeatedElement<T>(index: number, elt: T): T;\n/**\n * Allows elements to be repeated in Plasmic Studio.\n * @param isPrimary should be true for at most one instance of the element, and\n * indicates which copy of the element will be highlighted when the element is\n * selected in Studio.\n * @param elt the React element to be repeated (or an array of such).\n */\nexport default function repeatedElement<T>(isPrimary: boolean, elt: T): T;\nexport default function repeatedElement<T>(index: boolean | number, elt: T): T {\n return repeatedElementFn(index as any, elt);\n}\n\nlet repeatedElementFn: typeof repeatedElement = (\n index: boolean | number,\n elt: any\n) => {\n if (Array.isArray(elt)) {\n return elt.map((v) => repeatedElementFn(index as any, v)) as any;\n }\n if (elt && isValidElement(elt) && typeof elt !== \"string\") {\n return cloneElement(elt) as any;\n }\n return elt;\n};\n\nconst root = globalThis as any;\nexport const setRepeatedElementFn: (fn: typeof repeatedElement) => void =\n root?.__Sub?.setRepeatedElementFn ??\n function (fn: typeof repeatedElement) {\n repeatedElementFn = fn;\n };\n","import React from \"react\";\n\nconst PlasmicLinkContext = React.createContext<\n React.ComponentType<any> | undefined\n>(undefined);\n\nexport function usePlasmicLinkMaybe():\n | React.ComponentType<React.ComponentProps<\"a\">>\n | undefined {\n return React.useContext(PlasmicLinkContext);\n}\n\nconst AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\n});\n\nexport function usePlasmicLink(): React.ComponentType<\n React.ComponentProps<\"a\">\n> {\n const Link = React.useContext(PlasmicLinkContext);\n if (Link) {\n return Link;\n } else {\n return AnchorLink as React.ComponentType<React.ComponentProps<\"a\">>;\n }\n}\n\nexport function PlasmicLinkProvider(props: {\n Link: React.ComponentType<any> | undefined;\n children?: React.ReactNode;\n}) {\n const { Link, children } = props;\n return (\n <PlasmicLinkContext.Provider value={Link}>\n {children}\n </PlasmicLinkContext.Provider>\n );\n}\n","export const hostVersion = \"1.0.153\";\n","import * as PlasmicQuery from \"@plasmicapp/query\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { registerRenderErrorListener, setPlasmicRootNode } from \"./canvas-host\";\nimport * as hostModule from \"./exports\";\nimport { setRepeatedElementFn } from \"./repeatedElement\";\n// version.ts is automatically generated by `yarn build` and not committed.\nimport { hostVersion } from \"./version\";\n\n// All exports must come from \"./exports\"\nexport * from \"./exports\";\n\nconst root = globalThis as any;\n\nif (root.__Sub == null) {\n // Creating a side effect here by logging, so that vite won't\n // ignore this block for whatever reason. Hiding this for now\n // as users are complaining; will have to check if this has\n // been fixed with vite.\n // console.log(\"Plasmic: Setting up app host dependencies\");\n root.__Sub = {\n React,\n ReactDOM,\n PlasmicQuery,\n hostModule,\n hostVersion,\n hostUtils: {\n setPlasmicRootNode,\n registerRenderErrorListener,\n setRepeatedElementFn,\n },\n\n // For backwards compatibility:\n setPlasmicRootNode,\n registerRenderErrorListener,\n setRepeatedElementFn,\n ...hostModule,\n };\n}\n"],"names":["React","root"],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1,16 +1,11 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
4
  var PlasmicQuery = require('@plasmicapp/query');
7
5
  var React = require('react');
8
6
  var ReactDOM = require('react-dom');
9
7
 
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule) return e;
8
+ function _interopNamespaceDefault(e) {
14
9
  var n = Object.create(null);
15
10
  if (e) {
16
11
  Object.keys(e).forEach(function (k) {
@@ -18,23 +13,20 @@ function _interopNamespace(e) {
18
13
  var d = Object.getOwnPropertyDescriptor(e, k);
19
14
  Object.defineProperty(n, k, d.get ? d : {
20
15
  enumerable: true,
21
- get: function () {
22
- return e[k];
23
- }
16
+ get: function () { return e[k]; }
24
17
  });
25
18
  }
26
19
  });
27
20
  }
28
- n['default'] = e;
21
+ n.default = e;
29
22
  return Object.freeze(n);
30
23
  }
31
24
 
32
- var PlasmicQuery__namespace = /*#__PURE__*/_interopNamespace(PlasmicQuery);
33
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
35
- var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
25
+ var PlasmicQuery__namespace = /*#__PURE__*/_interopNamespaceDefault(PlasmicQuery);
26
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
27
+ var ReactDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(ReactDOM);
36
28
 
37
- /*! *****************************************************************************
29
+ /******************************************************************************
38
30
  Copyright (c) Microsoft Corporation.
39
31
 
40
32
  Permission to use, copy, modify, and/or distribute this software for any
@@ -357,17 +349,17 @@ function DataProvider(_a) {
357
349
  var name = _a.name, data = _a.data, hidden = _a.hidden, label = _a.label, children = _a.children;
358
350
  var existingEnv = (_c = useDataEnv()) !== null && _c !== void 0 ? _c : {};
359
351
  if (!name) {
360
- return React__default['default'].createElement(React__default['default'].Fragment, null, children);
352
+ return React.createElement(React.Fragment, null, children);
361
353
  }
362
354
  else {
363
- return (React__default['default'].createElement(DataContext.Provider, { value: __assign(__assign({}, existingEnv), (_b = {}, _b[name] = data, _b[mkMetaName(name)] = mkMetaValue({ hidden: hidden, label: label }), _b)) }, children));
355
+ return (React.createElement(DataContext.Provider, { value: __assign(__assign({}, existingEnv), (_b = {}, _b[name] = data, _b[mkMetaName(name)] = mkMetaValue({ hidden: hidden, label: label }), _b)) }, children));
364
356
  }
365
357
  }
366
358
  function PageParamsProvider(_a) {
367
359
  var children = _a.children, _b = _a.params, params = _b === void 0 ? {} : _b, _c = _a.query, query = _c === void 0 ? {} : _c;
368
360
  var $ctx = useDataEnv() || {};
369
- return (React__default['default'].createElement(DataProvider, { name: "params", data: __assign(__assign({}, $ctx.params), params), label: "Page URL path params" },
370
- React__default['default'].createElement(DataProvider, { name: "query", data: __assign(__assign({}, $ctx.query), query), label: "Page URL query params" }, children)));
361
+ return (React.createElement(DataProvider, { name: "params", data: __assign(__assign({}, $ctx.params), params), label: "Page URL path params" },
362
+ React.createElement(DataProvider, { name: "query", data: __assign(__assign({}, $ctx.query), query), label: "Page URL query params" }, children)));
371
363
  }
372
364
  function DataCtxReader(_a) {
373
365
  var children = _a.children;
@@ -381,10 +373,10 @@ function registerFetcher(fetcher, meta) {
381
373
  root$6.__PlasmicFetcherRegistry.push({ fetcher: fetcher, meta: meta });
382
374
  }
383
375
 
384
- var GlobalActionsContext = React__default['default'].createContext(undefined);
376
+ var GlobalActionsContext = React.createContext(undefined);
385
377
  function GlobalActionsProvider(props) {
386
378
  var contextName = props.contextName, children = props.children, actions = props.actions;
387
- var namespacedActions = React__default['default'].useMemo(function () {
379
+ var namespacedActions = React.useMemo(function () {
388
380
  return Object.fromEntries(Object.entries(actions).map(function (_a) {
389
381
  var key = _a[0], val = _a[1];
390
382
  return [
@@ -393,14 +385,16 @@ function GlobalActionsProvider(props) {
393
385
  ];
394
386
  }));
395
387
  }, [contextName, actions]);
396
- return (React__default['default'].createElement(GlobalActionsContext.Provider, { value: namespacedActions }, children));
388
+ return (React.createElement(GlobalActionsContext.Provider, { value: namespacedActions }, children));
397
389
  }
398
390
  function useGlobalActions() {
399
391
  var _a;
400
- return (_a = React__default['default'].useContext(GlobalActionsContext)) !== null && _a !== void 0 ? _a : {};
392
+ return (_a = React.useContext(GlobalActionsContext)) !== null && _a !== void 0 ? _a : {};
401
393
  }
402
394
 
403
395
  var root$5 = globalThis;
396
+ // A compile-time error will occur if a new field is added to the StateHelper
397
+ // interface but not included in the keys array of state helper.
404
398
  var stateHelpersKeys = [
405
399
  "initFunc",
406
400
  "onChangeArgsToValue",
@@ -470,15 +464,15 @@ var setRepeatedElementFn = (_b = (_a = root$1 === null || root$1 === void 0 ? vo
470
464
  repeatedElementFn = fn;
471
465
  };
472
466
 
473
- var PlasmicLinkContext = React__default['default'].createContext(undefined);
467
+ var PlasmicLinkContext = React.createContext(undefined);
474
468
  function usePlasmicLinkMaybe() {
475
- return React__default['default'].useContext(PlasmicLinkContext);
469
+ return React.useContext(PlasmicLinkContext);
476
470
  }
477
- var AnchorLink = React__default['default'].forwardRef(function AnchorLink(props, ref) {
478
- return React__default['default'].createElement("a", __assign({}, props, { ref: ref }));
471
+ var AnchorLink = React.forwardRef(function AnchorLink(props, ref) {
472
+ return React.createElement("a", __assign({}, props, { ref: ref }));
479
473
  });
480
474
  function usePlasmicLink() {
481
- var Link = React__default['default'].useContext(PlasmicLinkContext);
475
+ var Link = React.useContext(PlasmicLinkContext);
482
476
  if (Link) {
483
477
  return Link;
484
478
  }
@@ -488,40 +482,40 @@ function usePlasmicLink() {
488
482
  }
489
483
  function PlasmicLinkProvider(props) {
490
484
  var Link = props.Link, children = props.children;
491
- return (React__default['default'].createElement(PlasmicLinkContext.Provider, { value: Link }, children));
485
+ return (React.createElement(PlasmicLinkContext.Provider, { value: Link }, children));
492
486
  }
493
487
 
494
488
  var hostModule = /*#__PURE__*/Object.freeze({
495
489
  __proto__: null,
490
+ DataContext: DataContext,
491
+ DataCtxReader: DataCtxReader,
492
+ DataProvider: DataProvider,
493
+ GlobalActionsContext: GlobalActionsContext,
494
+ GlobalActionsProvider: GlobalActionsProvider,
495
+ PageParamsProvider: PageParamsProvider,
496
496
  PlasmicCanvasContext: PlasmicCanvasContext,
497
497
  PlasmicCanvasHost: PlasmicCanvasHost,
498
- usePlasmicCanvasContext: usePlasmicCanvasContext,
499
- unstable_registerFetcher: registerFetcher,
498
+ PlasmicLinkProvider: PlasmicLinkProvider,
499
+ applySelector: applySelector,
500
+ mkMetaName: mkMetaName,
501
+ mkMetaValue: mkMetaValue,
500
502
  registerComponent: registerComponent,
501
- stateHelpersKeys: stateHelpersKeys,
502
503
  registerGlobalContext: registerGlobalContext,
503
504
  registerToken: registerToken,
504
505
  registerTrait: registerTrait,
505
506
  repeatedElement: repeatedElement,
506
- DataContext: DataContext,
507
- mkMetaName: mkMetaName,
508
- mkMetaValue: mkMetaValue,
509
- applySelector: applySelector,
510
- useSelector: useSelector,
511
- useSelectors: useSelectors,
507
+ stateHelpersKeys: stateHelpersKeys,
508
+ unstable_registerFetcher: registerFetcher,
512
509
  useDataEnv: useDataEnv,
513
- DataProvider: DataProvider,
514
- PageParamsProvider: PageParamsProvider,
515
- DataCtxReader: DataCtxReader,
516
- GlobalActionsContext: GlobalActionsContext,
517
- GlobalActionsProvider: GlobalActionsProvider,
518
510
  useGlobalActions: useGlobalActions,
519
- usePlasmicLinkMaybe: usePlasmicLinkMaybe,
511
+ usePlasmicCanvasContext: usePlasmicCanvasContext,
520
512
  usePlasmicLink: usePlasmicLink,
521
- PlasmicLinkProvider: PlasmicLinkProvider
513
+ usePlasmicLinkMaybe: usePlasmicLinkMaybe,
514
+ useSelector: useSelector,
515
+ useSelectors: useSelectors
522
516
  });
523
517
 
524
- var hostVersion = "1.0.151";
518
+ var hostVersion = "1.0.153";
525
519
 
526
520
  var root = globalThis;
527
521
  if (root.__Sub == null) {