@plasmicapp/host 1.0.36 → 1.0.39

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.
@@ -0,0 +1,41 @@
1
+ import "@plasmicapp/preamble";
2
+ import * as React from "react";
3
+ declare global {
4
+ interface Window {
5
+ __PlasmicHostVersion: string;
6
+ }
7
+ }
8
+ export declare function setPlasmicRootNode(node: React.ReactElement | null): void;
9
+ /**
10
+ * React context to detect whether the component is rendered on Plasmic editor.
11
+ * If not, return false.
12
+ * If so, return an object with more information about the component
13
+ */
14
+ export declare const PlasmicCanvasContext: React.Context<boolean | {
15
+ componentName: string | null;
16
+ }>;
17
+ export declare const usePlasmicCanvasContext: () => boolean | {
18
+ componentName: string | null;
19
+ };
20
+ interface PlasmicCanvasHostProps {
21
+ /**
22
+ * Webpack hmr uses EventSource to listen to hot reloads, but that
23
+ * resultsin a persistent connection from each window. In Plasmic
24
+ * Studio, if a project is configured to use app-hosting with a
25
+ * nextjs or gatsby server running in dev mode, each artboard will
26
+ * be holding a persistent connection to the dev server.
27
+ * Because browsers have a limit to how many connections can
28
+ * be held at a time by domain, this means after X artboards, new
29
+ * artboards will freeze and not load.
30
+ *
31
+ * By default, <PlasmicCanvasHost /> will globally mutate
32
+ * window.EventSource to avoid using EventSource for HMR, which you
33
+ * typically don't need for your custom host page. If you do still
34
+ * want to retain HRM, then youc an pass enableWebpackHmr={true}.
35
+ */
36
+ enableWebpackHmr?: boolean;
37
+ }
38
+ export declare const PlasmicCanvasHost: React.FunctionComponent<PlasmicCanvasHostProps>;
39
+ declare type RenderErrorListener = (err: Error) => void;
40
+ export declare function registerRenderErrorListener(listener: RenderErrorListener): () => void;
41
+ export {};
@@ -0,0 +1,7 @@
1
+ export { PlasmicCanvasContext, PlasmicCanvasHost, usePlasmicCanvasContext, } from "./canvas-host";
2
+ export * from "./data";
3
+ export { PlasmicElement } from "./element-types";
4
+ export { registerFetcher as unstable_registerFetcher } from "./fetcher";
5
+ export { ComponentMeta, ComponentRegistration, ComponentTemplates, default as registerComponent, PrimitiveType, PropType, } from "./registerComponent";
6
+ export { default as registerGlobalContext, GlobalContextMeta, GlobalContextRegistration, PropType as GlobalContextPropType, } from "./registerGlobalContext";
7
+ export { default as repeatedElement } from "./repeatedElement";
package/dist/fetcher.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PrimitiveType } from "./index";
1
+ import { PrimitiveType } from "./registerComponent";
2
2
  export declare type Fetcher = (...args: any[]) => Promise<any>;
3
3
  export interface FetcherMeta {
4
4
  /**
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
- require('@plasmicapp/preamble');
8
7
  var React = require('react');
9
8
  var React__default = _interopDefault(React);
10
9
  var ReactDOM = require('react-dom');
10
+ require('@plasmicapp/preamble');
11
11
 
12
12
  function _extends() {
13
13
  _extends = Object.assign || function (target) {
@@ -81,15 +81,6 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
81
81
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
82
82
  }
83
83
 
84
- var root = globalThis;
85
- root.__PlasmicFetcherRegistry = [];
86
- function registerFetcher(fetcher, meta) {
87
- root.__PlasmicFetcherRegistry.push({
88
- fetcher: fetcher,
89
- meta: meta
90
- });
91
- }
92
-
93
84
  function isString(x) {
94
85
  return typeof x === "string";
95
86
  }
@@ -108,71 +99,6 @@ function ensure(x, msg) {
108
99
  }
109
100
  }
110
101
 
111
- var root$1 = globalThis;
112
-
113
- if (root$1.__PlasmicComponentRegistry == null) {
114
- root$1.__PlasmicComponentRegistry = [];
115
- }
116
-
117
- function registerComponent(component, meta) {
118
- root$1.__PlasmicComponentRegistry.push({
119
- component: component,
120
- meta: meta
121
- });
122
- }
123
-
124
- var root$2 = globalThis;
125
-
126
- if (root$2.__PlasmicContextRegistry == null) {
127
- root$2.__PlasmicContextRegistry = [];
128
- }
129
-
130
- function registerGlobalContext(component, meta) {
131
- root$2.__PlasmicContextRegistry.push({
132
- component: component,
133
- meta: meta
134
- });
135
- }
136
-
137
- var _root$__Sub$setRepeat, _root$__Sub;
138
- /**
139
- * Allows a component from Plasmic Studio to be repeated.
140
- * `isPrimary` should be true for at most one instance of the component, and
141
- * indicates which copy of the element will be highlighted when the element is
142
- * selected in Studio.
143
- * If `isPrimary` is `false`, and `elt` is a React element (or an array of such),
144
- * it'll be cloned (using React.cloneElement) and ajusted if it's a component
145
- * from Plasmic Studio. Otherwise, if `elt` is not a React element, the original
146
- * value is returned.
147
- */
148
-
149
- function repeatedElement(isPrimary, elt) {
150
- return repeatedElementFn(isPrimary, elt);
151
- }
152
-
153
- var repeatedElementFn = function repeatedElementFn(isPrimary, elt) {
154
- if (isPrimary) {
155
- return elt;
156
- }
157
-
158
- if (Array.isArray(elt)) {
159
- return elt.map(function (v) {
160
- return repeatedElement(isPrimary, v);
161
- });
162
- }
163
-
164
- if (elt && React.isValidElement(elt) && typeof elt !== "string") {
165
- return React.cloneElement(elt);
166
- }
167
-
168
- return elt;
169
- };
170
-
171
- var root$3 = globalThis;
172
- var setRepeatedElementFn = (_root$__Sub$setRepeat = root$3 == null ? void 0 : (_root$__Sub = root$3.__Sub) == null ? void 0 : _root$__Sub.setRepeatedElementFn) != null ? _root$__Sub$setRepeat : function (fn) {
173
- repeatedElementFn = fn;
174
- };
175
-
176
102
  function useForceUpdate() {
177
103
  var _useState = React.useState(0),
178
104
  setTick = _useState[1];
@@ -185,82 +111,10 @@ function useForceUpdate() {
185
111
  return update;
186
112
  }
187
113
 
188
- var tuple = function tuple() {
189
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
190
- args[_key] = arguments[_key];
191
- }
192
-
193
- return args;
194
- };
195
-
196
- var DataContext = /*#__PURE__*/React.createContext(undefined);
197
- function applySelector(rawData, selector) {
198
- if (!selector) {
199
- return undefined;
200
- }
201
-
202
- var curData = rawData;
203
-
204
- for (var _iterator = _createForOfIteratorHelperLoose(selector.split(".")), _step; !(_step = _iterator()).done;) {
205
- var _curData;
206
-
207
- var key = _step.value;
208
- curData = (_curData = curData) == null ? void 0 : _curData[key];
209
- }
210
-
211
- return curData;
212
- }
213
- function useSelector(selector) {
214
- var rawData = useDataEnv();
215
- return applySelector(rawData, selector);
216
- }
217
- function useSelectors(selectors) {
218
- if (selectors === void 0) {
219
- selectors = {};
220
- }
221
-
222
- var rawData = useDataEnv();
223
- return Object.fromEntries(Object.entries(selectors).filter(function (_ref) {
224
- var key = _ref[0],
225
- selector = _ref[1];
226
- return !!key && !!selector;
227
- }).map(function (_ref2) {
228
- var key = _ref2[0],
229
- selector = _ref2[1];
230
- return tuple(key, applySelector(rawData, selector));
231
- }));
232
- }
233
- function useDataEnv() {
234
- return React.useContext(DataContext);
235
- }
236
- function DataProvider(_ref3) {
237
- var _useDataEnv;
238
-
239
- var name = _ref3.name,
240
- data = _ref3.data,
241
- children = _ref3.children;
242
- var existingEnv = (_useDataEnv = useDataEnv()) != null ? _useDataEnv : {};
243
-
244
- if (!name) {
245
- return React__default.createElement(React__default.Fragment, null, children);
246
- } else {
247
- var _extends2;
248
-
249
- return React__default.createElement(DataContext.Provider, {
250
- value: _extends({}, existingEnv, (_extends2 = {}, _extends2[name] = data, _extends2))
251
- }, children);
252
- }
253
- }
254
- function DataCtxReader(_ref4) {
255
- var children = _ref4.children;
256
- var $ctx = useDataEnv();
257
- return children($ctx);
258
- }
259
-
260
- var root$4 = globalThis;
114
+ var root = globalThis;
261
115
 
262
- if (root$4.__PlasmicHostVersion == null) {
263
- root$4.__PlasmicHostVersion = "2";
116
+ if (root.__PlasmicHostVersion == null) {
117
+ root.__PlasmicHostVersion = "2";
264
118
  }
265
119
 
266
120
  var rootChangeListeners = [];
@@ -297,7 +151,6 @@ function renderStudioIntoIframe() {
297
151
  }
298
152
 
299
153
  var renderCount = 0;
300
-
301
154
  function setPlasmicRootNode(node) {
302
155
  // Keep track of renderCount, which we use as key to ErrorBoundary, so
303
156
  // we can reset the error on each render
@@ -310,7 +163,6 @@ function setPlasmicRootNode(node) {
310
163
  * If so, return an object with more information about the component
311
164
  */
312
165
 
313
-
314
166
  var PlasmicCanvasContext = /*#__PURE__*/React.createContext(false);
315
167
  var usePlasmicCanvasContext = function usePlasmicCanvasContext() {
316
168
  return React.useContext(PlasmicCanvasContext);
@@ -413,32 +265,7 @@ var PlasmicCanvasHost = function PlasmicCanvasHost(props) {
413
265
  }, []);
414
266
  return React.createElement(React.Fragment, null, !enableWebpackHmr && React.createElement(DisableWebpackHmr, null), node);
415
267
  };
416
-
417
- if (root$4.__Sub == null) {
418
- // Creating a side effect here by logging, so that vite won't
419
- // ignore this block for whatever reason
420
- console.log("Plasmic: Setting up app host dependencies");
421
- root$4.__Sub = {
422
- React: React,
423
- ReactDOM: ReactDOM,
424
- // Must include all the dependencies used by canvas rendering,
425
- // and canvas-package (all hostless packages) from host
426
- setPlasmicRootNode: setPlasmicRootNode,
427
- registerRenderErrorListener: registerRenderErrorListener,
428
- repeatedElement: repeatedElement,
429
- setRepeatedElementFn: setRepeatedElementFn,
430
- PlasmicCanvasContext: PlasmicCanvasContext,
431
- DataProvider: DataProvider,
432
- useDataEnv: useDataEnv,
433
- useSelector: useSelector,
434
- useSelectors: useSelectors,
435
- applySelector: applySelector,
436
- DataCtxReader: DataCtxReader
437
- };
438
- }
439
-
440
268
  var renderErrorListeners = [];
441
-
442
269
  function registerRenderErrorListener(listener) {
443
270
  renderErrorListeners.push(listener);
444
271
  return function () {
@@ -496,6 +323,194 @@ function DisableWebpackHmr() {
496
323
  });
497
324
  }
498
325
 
326
+ var tuple = function tuple() {
327
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
328
+ args[_key] = arguments[_key];
329
+ }
330
+
331
+ return args;
332
+ };
333
+
334
+ var DataContext = /*#__PURE__*/React.createContext(undefined);
335
+ function applySelector(rawData, selector) {
336
+ if (!selector) {
337
+ return undefined;
338
+ }
339
+
340
+ var curData = rawData;
341
+
342
+ for (var _iterator = _createForOfIteratorHelperLoose(selector.split(".")), _step; !(_step = _iterator()).done;) {
343
+ var _curData;
344
+
345
+ var key = _step.value;
346
+ curData = (_curData = curData) == null ? void 0 : _curData[key];
347
+ }
348
+
349
+ return curData;
350
+ }
351
+ function useSelector(selector) {
352
+ var rawData = useDataEnv();
353
+ return applySelector(rawData, selector);
354
+ }
355
+ function useSelectors(selectors) {
356
+ if (selectors === void 0) {
357
+ selectors = {};
358
+ }
359
+
360
+ var rawData = useDataEnv();
361
+ return Object.fromEntries(Object.entries(selectors).filter(function (_ref) {
362
+ var key = _ref[0],
363
+ selector = _ref[1];
364
+ return !!key && !!selector;
365
+ }).map(function (_ref2) {
366
+ var key = _ref2[0],
367
+ selector = _ref2[1];
368
+ return tuple(key, applySelector(rawData, selector));
369
+ }));
370
+ }
371
+ function useDataEnv() {
372
+ return React.useContext(DataContext);
373
+ }
374
+ function DataProvider(_ref3) {
375
+ var _useDataEnv;
376
+
377
+ var name = _ref3.name,
378
+ data = _ref3.data,
379
+ children = _ref3.children;
380
+ var existingEnv = (_useDataEnv = useDataEnv()) != null ? _useDataEnv : {};
381
+
382
+ if (!name) {
383
+ return React__default.createElement(React__default.Fragment, null, children);
384
+ } else {
385
+ var _extends2;
386
+
387
+ return React__default.createElement(DataContext.Provider, {
388
+ value: _extends({}, existingEnv, (_extends2 = {}, _extends2[name] = data, _extends2))
389
+ }, children);
390
+ }
391
+ }
392
+ function DataCtxReader(_ref4) {
393
+ var children = _ref4.children;
394
+ var $ctx = useDataEnv();
395
+ return children($ctx);
396
+ }
397
+
398
+ var root$1 = globalThis;
399
+ root$1.__PlasmicFetcherRegistry = [];
400
+ function registerFetcher(fetcher, meta) {
401
+ root$1.__PlasmicFetcherRegistry.push({
402
+ fetcher: fetcher,
403
+ meta: meta
404
+ });
405
+ }
406
+
407
+ var root$2 = globalThis;
408
+
409
+ if (root$2.__PlasmicComponentRegistry == null) {
410
+ root$2.__PlasmicComponentRegistry = [];
411
+ }
412
+
413
+ function registerComponent(component, meta) {
414
+ root$2.__PlasmicComponentRegistry.push({
415
+ component: component,
416
+ meta: meta
417
+ });
418
+ }
419
+
420
+ var root$3 = globalThis;
421
+
422
+ if (root$3.__PlasmicContextRegistry == null) {
423
+ root$3.__PlasmicContextRegistry = [];
424
+ }
425
+
426
+ function registerGlobalContext(component, meta) {
427
+ root$3.__PlasmicContextRegistry.push({
428
+ component: component,
429
+ meta: meta
430
+ });
431
+ }
432
+
433
+ var _root$__Sub$setRepeat, _root$__Sub;
434
+ /**
435
+ * Allows a component from Plasmic Studio to be repeated.
436
+ * `isPrimary` should be true for at most one instance of the component, and
437
+ * indicates which copy of the element will be highlighted when the element is
438
+ * selected in Studio.
439
+ * If `isPrimary` is `false`, and `elt` is a React element (or an array of such),
440
+ * it'll be cloned (using React.cloneElement) and ajusted if it's a component
441
+ * from Plasmic Studio. Otherwise, if `elt` is not a React element, the original
442
+ * value is returned.
443
+ */
444
+
445
+ function repeatedElement(isPrimary, elt) {
446
+ return repeatedElementFn(isPrimary, elt);
447
+ }
448
+
449
+ var repeatedElementFn = function repeatedElementFn(isPrimary, elt) {
450
+ if (isPrimary) {
451
+ return elt;
452
+ }
453
+
454
+ if (Array.isArray(elt)) {
455
+ return elt.map(function (v) {
456
+ return repeatedElement(isPrimary, v);
457
+ });
458
+ }
459
+
460
+ if (elt && React.isValidElement(elt) && typeof elt !== "string") {
461
+ return React.cloneElement(elt);
462
+ }
463
+
464
+ return elt;
465
+ };
466
+
467
+ var root$4 = globalThis;
468
+ var setRepeatedElementFn = (_root$__Sub$setRepeat = root$4 == null ? void 0 : (_root$__Sub = root$4.__Sub) == null ? void 0 : _root$__Sub.setRepeatedElementFn) != null ? _root$__Sub$setRepeat : function (fn) {
469
+ repeatedElementFn = fn;
470
+ };
471
+
472
+
473
+
474
+ var hostModule = {
475
+ __proto__: null,
476
+ PlasmicCanvasContext: PlasmicCanvasContext,
477
+ PlasmicCanvasHost: PlasmicCanvasHost,
478
+ usePlasmicCanvasContext: usePlasmicCanvasContext,
479
+ unstable_registerFetcher: registerFetcher,
480
+ registerComponent: registerComponent,
481
+ registerGlobalContext: registerGlobalContext,
482
+ repeatedElement: repeatedElement,
483
+ DataContext: DataContext,
484
+ applySelector: applySelector,
485
+ useSelector: useSelector,
486
+ useSelectors: useSelectors,
487
+ useDataEnv: useDataEnv,
488
+ DataProvider: DataProvider,
489
+ DataCtxReader: DataCtxReader
490
+ };
491
+
492
+ var root$5 = globalThis;
493
+
494
+ if (root$5.__Sub == null) {
495
+ // Creating a side effect here by logging, so that vite won't
496
+ // ignore this block for whatever reason
497
+ console.log("Plasmic: Setting up app host dependencies");
498
+ root$5.__Sub = /*#__PURE__*/_extends({
499
+ React: React,
500
+ ReactDOM: ReactDOM,
501
+ hostModule: hostModule,
502
+ hostUtils: {
503
+ setPlasmicRootNode: setPlasmicRootNode,
504
+ registerRenderErrorListener: registerRenderErrorListener,
505
+ setRepeatedElementFn: setRepeatedElementFn
506
+ },
507
+ // For backwards compatibility:
508
+ setPlasmicRootNode: setPlasmicRootNode,
509
+ registerRenderErrorListener: registerRenderErrorListener,
510
+ setRepeatedElementFn: setRepeatedElementFn
511
+ }, hostModule);
512
+ }
513
+
499
514
  exports.DataContext = DataContext;
500
515
  exports.DataCtxReader = DataCtxReader;
501
516
  exports.DataProvider = DataProvider;