@plasmicpkgs/plasmic-basic-components 0.0.7 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Data.d.ts CHANGED
@@ -1,19 +1,26 @@
1
- import { ComponentMeta } from "@plasmicapp/host";
1
+ import { ComponentMeta, SelectorDict, useSelectors as _useSelectors, useSelector as _useSelector, DataProvider as _DataProvider, DataProviderProps, applySelector as _applySelector, useDataEnv as _useDataEnv } from "@plasmicapp/host";
2
2
  import registerComponent from "@plasmicapp/host/registerComponent";
3
3
  import React, { ComponentProps, ReactNode } from "react";
4
- export declare type DataDict = Record<string, any>;
5
- export declare const DataContext: React.Context<Record<string, any> | undefined>;
6
- export declare function applySelector(rawData: DataDict | undefined, selector: string | undefined): any;
7
- export declare type SelectorDict = Record<string, string | undefined>;
8
- export declare function useSelector(selector: string | undefined): any;
9
- export declare function useSelectors(selectors?: SelectorDict): any;
10
- export declare function useDataEnv(): Record<string, any> | undefined;
11
- export interface DataProviderProps {
12
- name?: string;
13
- data?: any;
14
- children?: ReactNode;
15
- }
16
- export declare function DataProvider({ name, data, children }: DataProviderProps): JSX.Element;
4
+ /**
5
+ * @deprecated This should be imported from @plasmicapp/host instead.
6
+ */
7
+ export declare const applySelector: typeof _applySelector;
8
+ /**
9
+ * @deprecated This should be imported from @plasmicapp/host instead.
10
+ */
11
+ export declare const useSelector: typeof _useSelector;
12
+ /**
13
+ * @deprecated This should be imported from @plasmicapp/host instead.
14
+ */
15
+ export declare const useSelectors: typeof _useSelectors;
16
+ /**
17
+ * @deprecated This should be imported from @plasmicapp/host instead.
18
+ */
19
+ export declare const useDataEnv: typeof _useDataEnv;
20
+ /**
21
+ * @deprecated This should be imported from @plasmicapp/host instead.
22
+ */
23
+ export declare const DataProvider: typeof _DataProvider;
17
24
  export interface CommonDynamicProps {
18
25
  className?: string;
19
26
  tag?: string;
package/dist/Embed.d.ts CHANGED
@@ -1,9 +1,11 @@
1
+ /// <reference types="react" />
1
2
  import registerComponent, { ComponentMeta } from "@plasmicapp/host/registerComponent";
2
3
  export interface EmbedProps {
3
4
  className?: string;
4
5
  code: string;
5
6
  hideInEditor?: boolean;
6
7
  }
8
+ export default function Embed({ className, code, hideInEditor, }: EmbedProps): JSX.Element;
7
9
  export declare const embedMeta: ComponentMeta<EmbedProps>;
8
10
  export declare function registerEmbed(loader?: {
9
11
  registerComponent: typeof registerComponent;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import registerComponent, { ComponentMeta } from "@plasmicapp/host/registerComponent";
3
+ export interface EmbedCssProps {
4
+ css: string;
5
+ }
6
+ export default function EmbedCss({ css }: EmbedCssProps): JSX.Element;
7
+ export declare const embedCssMeta: ComponentMeta<EmbedCssProps>;
8
+ export declare function registerEmbedCss(loader?: {
9
+ registerComponent: typeof registerComponent;
10
+ }, customEmbedCssMeta?: ComponentMeta<EmbedCssProps>): void;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  export * from "./Data";
2
+ export * from "./Embed";
3
+ export { default as Embed } from "./Embed";
2
4
  export * from "./Iframe";
3
5
  export { default as Iframe } from "./Iframe";
4
6
  export * from "./ScrollRevealer";
5
7
  export { default as ScrollRevealer } from "./ScrollRevealer";
6
8
  export * from "./Video";
7
9
  export { default as Video } from "./Video";
10
+ export * from "./EmbedCss";
11
+ export { default as EmbedCss } from "./EmbedCss";
@@ -42,130 +42,67 @@ function _objectWithoutPropertiesLoose(source, excluded) {
42
42
  return target;
43
43
  }
44
44
 
45
- function _unsupportedIterableToArray(o, minLen) {
46
- if (!o) return;
47
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
48
- var n = Object.prototype.toString.call(o).slice(8, -1);
49
- if (n === "Object" && o.constructor) n = o.constructor.name;
50
- if (n === "Map" || n === "Set") return Array.from(o);
51
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
52
- }
53
-
54
- function _arrayLikeToArray(arr, len) {
55
- if (len == null || len > arr.length) len = arr.length;
56
-
57
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
58
-
59
- return arr2;
60
- }
61
-
62
- function _createForOfIteratorHelperLoose(o, allowArrayLike) {
63
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
64
- if (it) return (it = it.call(o)).next.bind(it);
65
-
66
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
67
- if (it) o = it;
68
- var i = 0;
69
- return function () {
70
- if (i >= o.length) return {
71
- done: true
72
- };
73
- return {
74
- done: false,
75
- value: o[i++]
76
- };
77
- };
78
- }
79
-
80
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
81
- }
82
-
83
- var tuple = function tuple() {
84
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
85
- args[_key] = arguments[_key];
86
- }
87
-
88
- return args;
89
- };
90
-
91
- var DataContext = /*#__PURE__*/React.createContext(undefined);
92
45
  var thisModule = "@plasmicpkgs/plasmic-basic-components";
93
- function applySelector(rawData, selector) {
94
- if (!selector) {
95
- return undefined;
96
- }
97
-
98
- var curData = rawData;
46
+ /**
47
+ * @deprecated This should be imported from @plasmicapp/host instead.
48
+ */
99
49
 
100
- for (var _iterator = _createForOfIteratorHelperLoose(selector.split(".")), _step; !(_step = _iterator()).done;) {
101
- var _curData;
50
+ var applySelector = function applySelector() {
51
+ console.warn("DEPRECATED: Import applySelector from @plasmicapp/host instead.");
52
+ return host.applySelector.apply(void 0, arguments);
53
+ };
54
+ /**
55
+ * @deprecated This should be imported from @plasmicapp/host instead.
56
+ */
102
57
 
103
- var key = _step.value;
104
- curData = (_curData = curData) == null ? void 0 : _curData[key];
105
- }
58
+ var useSelector = function useSelector() {
59
+ console.warn("DEPRECATED: Import useSelector from @plasmicapp/host instead.");
60
+ return host.useSelector.apply(void 0, arguments);
61
+ };
62
+ /**
63
+ * @deprecated This should be imported from @plasmicapp/host instead.
64
+ */
106
65
 
107
- return curData;
108
- }
109
- function useSelector(selector) {
110
- var rawData = useDataEnv();
111
- return applySelector(rawData, selector);
112
- }
113
- function useSelectors(selectors) {
114
- if (selectors === void 0) {
115
- selectors = {};
116
- }
66
+ var useSelectors = function useSelectors() {
67
+ console.warn("DEPRECATED: Import useSelectors from @plasmicapp/host instead.");
68
+ return host.useSelectors.apply(void 0, arguments);
69
+ };
70
+ /**
71
+ * @deprecated This should be imported from @plasmicapp/host instead.
72
+ */
117
73
 
118
- var rawData = useDataEnv();
119
- return Object.fromEntries(Object.entries(selectors).filter(function (_ref) {
120
- var key = _ref[0],
121
- selector = _ref[1];
122
- return !!key && !!selector;
123
- }).map(function (_ref2) {
124
- var key = _ref2[0],
125
- selector = _ref2[1];
126
- return tuple(key, applySelector(rawData, selector));
127
- }));
128
- }
129
- function useDataEnv() {
130
- return React.useContext(DataContext);
131
- }
132
- function DataProvider(_ref3) {
133
- var _useDataEnv;
74
+ var useDataEnv = function useDataEnv() {
75
+ console.warn("DEPRECATED: Import useDataEnv from @plasmicapp/host instead.");
76
+ return host.useDataEnv.apply(void 0, arguments);
77
+ };
78
+ /**
79
+ * @deprecated This should be imported from @plasmicapp/host instead.
80
+ */
134
81
 
135
- var name = _ref3.name,
136
- data = _ref3.data,
137
- children = _ref3.children;
138
- var existingEnv = (_useDataEnv = useDataEnv()) != null ? _useDataEnv : {};
82
+ var DataProvider = function DataProvider() {
83
+ console.warn("DEPRECATED: Import DataProvider from @plasmicapp/host instead.");
84
+ return host.DataProvider.apply(void 0, arguments);
85
+ };
86
+ function DynamicElement(_ref) {
87
+ var _ref$tag = _ref.tag,
88
+ tag = _ref$tag === void 0 ? "div" : _ref$tag,
89
+ className = _ref.className,
90
+ children = _ref.children,
91
+ propSelectors = _ref.propSelectors,
92
+ props = _objectWithoutPropertiesLoose(_ref, ["tag", "className", "children", "propSelectors"]);
139
93
 
140
- if (!name) {
141
- return React__default.createElement(React__default.Fragment, null, children);
142
- } else {
143
- var _extends2;
94
+ var computed = host.useSelectors(propSelectors);
144
95
 
145
- return React__default.createElement(DataContext.Provider, {
146
- value: _extends({}, existingEnv, (_extends2 = {}, _extends2[name] = data, _extends2))
147
- }, children);
148
- }
149
- }
150
- function DynamicElement(_ref4) {
151
- var _ref4$tag = _ref4.tag,
152
- tag = _ref4$tag === void 0 ? "div" : _ref4$tag,
153
- className = _ref4.className,
154
- children = _ref4.children,
155
- propSelectors = _ref4.propSelectors,
156
- props = _objectWithoutPropertiesLoose(_ref4, ["tag", "className", "children", "propSelectors"]);
157
-
158
- var computed = useSelectors(propSelectors);
159
96
  return React.createElement(tag, _extends({
160
97
  children: children
161
98
  }, props, computed, {
162
99
  className: className + " " + computed.className
163
100
  }));
164
101
  }
165
- function DynamicText(_ref5) {
166
- var selector = _ref5.selector,
167
- propSelectors = _ref5.propSelectors,
168
- props = _objectWithoutPropertiesLoose(_ref5, ["selector", "propSelectors"]);
102
+ function DynamicText(_ref2) {
103
+ var selector = _ref2.selector,
104
+ propSelectors = _ref2.propSelectors,
105
+ props = _objectWithoutPropertiesLoose(_ref2, ["selector", "propSelectors"]);
169
106
 
170
107
  return React__default.createElement(DynamicElement, Object.assign({}, props, {
171
108
  propSelectors: _extends({}, propSelectors, {
@@ -173,10 +110,10 @@ function DynamicText(_ref5) {
173
110
  })
174
111
  }), "(DynamicText requires a selector)");
175
112
  }
176
- function DynamicImage(_ref6) {
177
- var selector = _ref6.selector,
178
- propSelectors = _ref6.propSelectors,
179
- props = _objectWithoutPropertiesLoose(_ref6, ["selector", "propSelectors"]);
113
+ function DynamicImage(_ref3) {
114
+ var selector = _ref3.selector,
115
+ propSelectors = _ref3.propSelectors,
116
+ props = _objectWithoutPropertiesLoose(_ref3, ["selector", "propSelectors"]);
180
117
 
181
118
  return React__default.createElement(DynamicElement, Object.assign({
182
119
  tag: "img",
@@ -192,21 +129,21 @@ function DynamicImage(_ref6) {
192
129
  src: "https://studio.plasmic.app/static/img/placeholder.png"
193
130
  }));
194
131
  }
195
- function DynamicRepeater(_ref7) {
196
- var _ref8;
197
-
198
- var children = _ref7.children,
199
- loopItemName = _ref7.loopItemName,
200
- keySelector = _ref7.keySelector,
201
- selector = _ref7.selector,
202
- data = _ref7.data;
132
+ function DynamicRepeater(_ref4) {
133
+ var _ref5;
134
+
135
+ var children = _ref4.children,
136
+ loopItemName = _ref4.loopItemName,
137
+ keySelector = _ref4.keySelector,
138
+ selector = _ref4.selector,
139
+ data = _ref4.data;
203
140
  // Defaults to an array of three items.
204
- var finalData = (_ref8 = data != null ? data : useSelector(selector)) != null ? _ref8 : [1, 2, 3];
141
+ var finalData = (_ref5 = data != null ? data : host.useSelector(selector)) != null ? _ref5 : [1, 2, 3];
205
142
  return React__default.createElement(React__default.Fragment, null, finalData == null ? void 0 : finalData.map == null ? void 0 : finalData.map(function (item, index) {
206
- var _applySelector;
143
+ var _applySelector2;
207
144
 
208
- return React__default.createElement(DataProvider, {
209
- key: (_applySelector = applySelector(item, keySelector)) != null ? _applySelector : index,
145
+ return React__default.createElement(host.DataProvider, {
146
+ key: (_applySelector2 = host.applySelector(item, keySelector)) != null ? _applySelector2 : index,
210
147
  name: loopItemName,
211
148
  data: item
212
149
  }, host.repeatedElement(index === 0, children));
@@ -282,9 +219,9 @@ var dataProviderMeta = {
282
219
  };
283
220
  function registerDataProvider(loader, customDataProviderMeta) {
284
221
  if (loader) {
285
- loader.registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
222
+ loader.registerComponent(host.DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
286
223
  } else {
287
- registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
224
+ registerComponent(host.DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
288
225
  }
289
226
  }
290
227
  var dynamicPropsWithoutTag = {
@@ -359,6 +296,75 @@ function registerDynamicImage(loader, customDynamicImageMeta) {
359
296
  }
360
297
  }
361
298
 
299
+ function ensure(x) {
300
+ if (x === null || x === undefined) {
301
+ debugger;
302
+ throw new Error("Value must not be undefined or null");
303
+ } else {
304
+ return x;
305
+ }
306
+ }
307
+
308
+ function Embed(_ref) {
309
+ var className = _ref.className,
310
+ code = _ref.code,
311
+ _ref$hideInEditor = _ref.hideInEditor,
312
+ hideInEditor = _ref$hideInEditor === void 0 ? false : _ref$hideInEditor;
313
+ var rootElt = React.useRef(null);
314
+ React.useEffect(function () {
315
+ if (hideInEditor) {
316
+ return;
317
+ }
318
+
319
+ Array.from(ensure(rootElt.current).querySelectorAll("script")).forEach(function (oldScript) {
320
+ var newScript = document.createElement("script");
321
+ Array.from(oldScript.attributes).forEach(function (attr) {
322
+ return newScript.setAttribute(attr.name, attr.value);
323
+ });
324
+ newScript.appendChild(document.createTextNode(oldScript.innerHTML));
325
+ ensure(oldScript.parentNode).replaceChild(newScript, oldScript);
326
+ });
327
+ }, [code, hideInEditor]);
328
+ var effectiveCode = hideInEditor ? "" : code;
329
+ return React__default.createElement("div", {
330
+ ref: rootElt,
331
+ className: className,
332
+ dangerouslySetInnerHTML: {
333
+ __html: effectiveCode
334
+ }
335
+ });
336
+ }
337
+ var embedMeta = {
338
+ name: "hostless-embed",
339
+ displayName: "Embed HTML",
340
+ importName: "Embed",
341
+ importPath: "@plasmicpkgs/plasmic-basic-components",
342
+ props: {
343
+ code: {
344
+ type: "code",
345
+ lang: "html",
346
+ defaultValueHint: "<!-- HTML snippet -->",
347
+ description: "The HTML code to be embedded"
348
+ },
349
+ hideInEditor: {
350
+ type: "boolean",
351
+ displayName: "Hide in editor",
352
+ description: "Disable running the code while editing in Plasmic Studio (may require reload)",
353
+ editOnly: true
354
+ }
355
+ },
356
+ defaultStyles: {
357
+ maxWidth: "100%"
358
+ }
359
+ };
360
+ function registerEmbed(loader, customEmbedMeta) {
361
+ if (loader) {
362
+ loader.registerComponent(Embed, customEmbedMeta != null ? customEmbedMeta : embedMeta);
363
+ } else {
364
+ registerComponent(Embed, customEmbedMeta != null ? customEmbedMeta : embedMeta);
365
+ }
366
+ }
367
+
362
368
  function Iframe(_ref) {
363
369
  var preview = _ref.preview,
364
370
  src = _ref.src,
@@ -587,12 +593,43 @@ function registerVideo(loader, customVideoMeta) {
587
593
  }
588
594
  }
589
595
 
590
- exports.DataContext = DataContext;
596
+ function EmbedCss(_ref) {
597
+ var css = _ref.css;
598
+ return React__default.createElement("style", {
599
+ dangerouslySetInnerHTML: {
600
+ __html: css
601
+ }
602
+ });
603
+ }
604
+ var embedCssMeta = {
605
+ name: "hostless-embed-css",
606
+ displayName: "Embed Css",
607
+ importName: "EmbedCss",
608
+ importPath: "@plasmicpkgs/plasmic-basic-components",
609
+ props: {
610
+ css: {
611
+ type: "code",
612
+ lang: "css",
613
+ defaultValueHint: "/* CSS snippet */",
614
+ description: "CSS rules to be inserted"
615
+ }
616
+ }
617
+ };
618
+ function registerEmbedCss(loader, customEmbedCssMeta) {
619
+ if (loader) {
620
+ loader.registerComponent(EmbedCss, customEmbedCssMeta != null ? customEmbedCssMeta : embedCssMeta);
621
+ } else {
622
+ registerComponent(EmbedCss, customEmbedCssMeta != null ? customEmbedCssMeta : embedCssMeta);
623
+ }
624
+ }
625
+
591
626
  exports.DataProvider = DataProvider;
592
627
  exports.DynamicElement = DynamicElement;
593
628
  exports.DynamicImage = DynamicImage;
594
629
  exports.DynamicRepeater = DynamicRepeater;
595
630
  exports.DynamicText = DynamicText;
631
+ exports.Embed = Embed;
632
+ exports.EmbedCss = EmbedCss;
596
633
  exports.Iframe = Iframe;
597
634
  exports.ScrollRevealer = ScrollRevealer;
598
635
  exports.Video = Video;
@@ -603,12 +640,16 @@ exports.dynamicImageMeta = dynamicImageMeta;
603
640
  exports.dynamicRepeaterMeta = dynamicRepeaterMeta;
604
641
  exports.dynamicRepeaterProps = dynamicRepeaterProps;
605
642
  exports.dynamicTextMeta = dynamicTextMeta;
643
+ exports.embedCssMeta = embedCssMeta;
644
+ exports.embedMeta = embedMeta;
606
645
  exports.iframeMeta = iframeMeta;
607
646
  exports.registerDataProvider = registerDataProvider;
608
647
  exports.registerDynamicElement = registerDynamicElement;
609
648
  exports.registerDynamicImage = registerDynamicImage;
610
649
  exports.registerDynamicRepeater = registerDynamicRepeater;
611
650
  exports.registerDynamicText = registerDynamicText;
651
+ exports.registerEmbed = registerEmbed;
652
+ exports.registerEmbedCss = registerEmbedCss;
612
653
  exports.registerIframe = registerIframe;
613
654
  exports.registerScrollRevealer = registerScrollRevealer;
614
655
  exports.registerVideo = registerVideo;
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-basic-components.cjs.development.js","sources":["../src/common.ts","../src/Data.tsx","../src/Iframe.tsx","../src/ScrollRevealer.tsx","../src/Video.tsx"],"sourcesContent":["export const tuple = <T extends any[]>(...args: T): T => args;\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n","import { ComponentMeta, repeatedElement } from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, {\n ComponentProps,\n createContext,\n createElement,\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\nconst thisModule = \"@plasmicpkgs/plasmic-basic-components\";\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 name?: string;\n data?: any;\n children?: ReactNode;\n}\n\nexport function DataProvider({ name, data, children }: DataProviderProps) {\n const existingEnv = useDataEnv() ?? {};\n if (!name) {\n return <>{children}</>;\n } else {\n return (\n <DataContext.Provider value={{ ...existingEnv, [name]: data }}>\n {children}\n </DataContext.Provider>\n );\n }\n}\n\nexport interface CommonDynamicProps {\n className?: string;\n tag?: string;\n propSelectors?: SelectorDict;\n}\n\nexport function DynamicElement<\n Tag extends keyof JSX.IntrinsicElements = \"div\"\n>({\n tag = \"div\",\n className,\n children,\n propSelectors,\n ...props\n}: CommonDynamicProps & ComponentProps<Tag>) {\n const computed = useSelectors(propSelectors);\n return createElement(tag, {\n children,\n ...props,\n ...computed,\n className: className + \" \" + computed.className,\n });\n}\n\nexport interface DynamicTextProps extends CommonDynamicProps {\n selector?: string;\n}\n\nexport function DynamicText({\n selector,\n propSelectors,\n ...props\n}: DynamicTextProps) {\n return (\n <DynamicElement\n {...props}\n propSelectors={{ ...propSelectors, children: selector }}\n >\n {/*This is the default text*/}\n (DynamicText requires a selector)\n </DynamicElement>\n );\n}\n\nexport interface DynamicImageProps\n extends CommonDynamicProps,\n ComponentProps<\"img\"> {\n selector?: string;\n}\n\nexport function DynamicImage({\n selector,\n propSelectors,\n ...props\n}: DynamicImageProps) {\n return (\n <DynamicElement<\"img\">\n tag={\"img\"}\n loading={\"lazy\"}\n style={{\n objectFit: \"cover\",\n }}\n {...props}\n propSelectors={{ ...propSelectors, src: selector }}\n // Default image placeholder\n src=\"https://studio.plasmic.app/static/img/placeholder.png\"\n />\n );\n}\n\nexport interface DynamicRepeaterProps {\n children?: ReactNode;\n loopItemName?: string;\n keySelector?: string;\n selector?: string;\n data?: any;\n}\n\nexport function DynamicRepeater({\n children,\n loopItemName,\n keySelector,\n selector,\n data,\n}: DynamicRepeaterProps) {\n // Defaults to an array of three items.\n const finalData = data ?? useSelector(selector) ?? [1, 2, 3];\n return (\n <>\n {finalData?.map?.((item: any, index: number) => (\n <DataProvider\n key={applySelector(item, keySelector) ?? index}\n name={loopItemName}\n data={item}\n >\n {repeatedElement(index === 0, children)}\n </DataProvider>\n ))}\n </>\n );\n}\n\nexport const dynamicRepeaterProps = {\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the array of data to loop over, such as: someVariable.0.someField\",\n },\n loopItemName: {\n type: \"string\",\n defaultValue: \"item\",\n description:\n \"The name of the variable to use to store the current item in the loop\",\n },\n children: \"slot\",\n} as const;\n\nexport const dynamicRepeaterMeta: ComponentMeta<DynamicRepeaterProps> = {\n name: \"hostless-dynamic-repeater\",\n displayName: \"Dynamic Repeater\",\n importName: \"DynamicRepeater\",\n importPath: thisModule,\n props: dynamicRepeaterProps,\n};\n\nexport function registerDynamicRepeater(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicRepeaterMeta?: ComponentMeta<DynamicRepeaterProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicRepeater,\n customDynamicRepeaterMeta ?? dynamicRepeaterMeta\n );\n } else {\n registerComponent(\n DynamicRepeater,\n customDynamicRepeaterMeta ?? dynamicRepeaterMeta\n );\n }\n}\n\nexport const dataProviderMeta: ComponentMeta<DataProviderProps> = {\n name: \"hostless-data-provider\",\n displayName: \"Data Provider\",\n importName: \"DataProvider\",\n importPath: thisModule,\n // description: \"Makes some specified data available to the subtree in a context\",\n props: {\n name: {\n type: \"string\",\n defaultValue: \"celebrities\",\n description: \"The name of the variable to store the data in\",\n },\n data: {\n type: \"object\",\n defaultValue: [\n {\n name: \"Fill Murray\",\n birthYear: 1950,\n profilePicture: [\"https://www.fillmurray.com/200/300\"],\n },\n {\n name: \"Place Cage\",\n birthYear: 1950,\n profilePicture: [\"https://www.placecage.com/200/300\"],\n },\n ],\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"hostless-dynamic-text\",\n props: {\n selector: \"celebrities.0.name\",\n },\n },\n {\n type: \"component\",\n name: \"hostless-dynamic-image\",\n props: {\n selector: \"celebrities.0.profilePicture\",\n },\n },\n ],\n },\n },\n};\n\nexport function registerDataProvider(\n loader?: { registerComponent: typeof registerComponent },\n customDataProviderMeta?: ComponentMeta<DataProviderProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataProvider,\n customDataProviderMeta ?? dataProviderMeta\n );\n } else {\n registerComponent(DataProvider, customDataProviderMeta ?? dataProviderMeta);\n }\n}\n\nconst dynamicPropsWithoutTag = {\n propSelectors: {\n type: \"object\",\n defaultValueHint: {},\n description:\n \"An object whose keys are prop names and values are selector expressions. Use this to set any prop to a dynamic value.\",\n },\n} as const;\n\nconst dynamicProps = {\n ...dynamicPropsWithoutTag,\n tag: {\n type: \"string\",\n defaultValueHint: \"div\",\n description: \"The HTML tag to use\",\n },\n} as const;\n\n// TODO Eventually we'll want to expose all the base HTML properties, but in the nicer way that we do within the studio.\n\nexport const dynamicElementMeta: ComponentMeta<CommonDynamicProps> = {\n name: \"hostless-dynamic-element\",\n displayName: \"Dynamic Element\",\n importName: \"DynamicElement\",\n importPath: thisModule,\n props: { ...dynamicProps, children: \"slot\" },\n};\n\nexport function registerDynamicElement(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicElementMeta?: ComponentMeta<CommonDynamicProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicElement,\n customDynamicElementMeta ?? dynamicElementMeta\n );\n } else {\n registerComponent(\n DynamicElement,\n customDynamicElementMeta ?? dynamicElementMeta\n );\n }\n}\n\nexport const dynamicTextMeta: ComponentMeta<DynamicTextProps> = {\n name: \"hostless-dynamic-text\",\n importName: \"DynamicText\",\n displayName: \"Dynamic Text\",\n importPath: thisModule,\n props: {\n ...dynamicProps,\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the text, such as: someVariable.0.someField\",\n },\n },\n};\n\nexport function registerDynamicText(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicTextMeta?: ComponentMeta<DynamicTextProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicText,\n customDynamicTextMeta ?? dynamicTextMeta\n );\n } else {\n registerComponent(DynamicText, customDynamicTextMeta ?? dynamicTextMeta);\n }\n}\n\nexport const dynamicImageMeta: ComponentMeta<DynamicImageProps> = {\n name: \"hostless-dynamic-image\",\n displayName: \"Dynamic Image\",\n importName: \"DynamicImage\",\n importPath: thisModule,\n props: {\n ...dynamicPropsWithoutTag,\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the image source URL, such as: someVariable.0.someField\",\n },\n },\n};\n\nexport function registerDynamicImage(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicImageMeta?: ComponentMeta<DynamicImageProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicImage,\n customDynamicImageMeta ?? dynamicImageMeta\n );\n } else {\n registerComponent(DynamicImage, customDynamicImageMeta ?? dynamicImageMeta);\n }\n}\n","import { ComponentMeta, PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useContext } from \"react\";\n\nexport interface IframeProps {\n src: string;\n preview?: boolean;\n className?: string;\n}\n\nexport default function Iframe({ preview, src, className }: IframeProps) {\n const isEditing = useContext(PlasmicCanvasContext);\n if (isEditing && !preview) {\n return (\n <div className={className}>\n <div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: \"#eee\",\n color: \"#888\",\n fontSize: \"36px\",\n fontFamily: \"sans-serif\",\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n }}\n >\n Iframe placeholder\n </div>\n </div>\n );\n }\n return <iframe src={src} className={className} />;\n}\n\nexport const iframeMeta: ComponentMeta<IframeProps> = {\n name: \"hostless-iframe\",\n displayName: \"Iframe\",\n importName: \"Iframe\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n src: {\n type: \"string\",\n defaultValue: \"https://www.example.com\",\n },\n preview: {\n type: \"boolean\",\n description: \"Load the iframe while editing in Plasmic Studio\",\n },\n },\n defaultStyles: {\n width: \"300px\",\n height: \"150px\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerIframe(\n loader?: { registerComponent: typeof registerComponent },\n customIframeMeta?: ComponentMeta<IframeProps>\n) {\n if (loader) {\n loader.registerComponent(Iframe, customIframeMeta ?? iframeMeta);\n } else {\n registerComponent(Iframe, customIframeMeta ?? iframeMeta);\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React, {\n ReactNode,\n RefObject,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nexport function useDirectionalIntersection({\n ref,\n scrollDownThreshold = 0.5,\n scrollUpThreshold = 0,\n}: {\n ref: RefObject<HTMLElement>;\n scrollDownThreshold?: number;\n scrollUpThreshold?: number;\n}) {\n const [revealed, setRevealed] = useState(false);\n useEffect(() => {\n if (ref.current && typeof IntersectionObserver === \"function\") {\n const handler = (entries: IntersectionObserverEntry[]) => {\n if (entries[0].intersectionRatio >= scrollDownThreshold) {\n setRevealed(true);\n } else if (entries[0].intersectionRatio <= scrollUpThreshold) {\n setRevealed(false);\n }\n };\n\n const observer = new IntersectionObserver(handler, {\n root: null,\n rootMargin: \"0%\",\n threshold: [scrollUpThreshold, scrollDownThreshold],\n });\n observer.observe(ref.current);\n\n return () => {\n setRevealed(false);\n observer.disconnect();\n };\n }\n return () => {};\n }, [ref.current, scrollDownThreshold, scrollUpThreshold]);\n return revealed;\n}\n\nexport interface ScrollRevealerProps {\n children?: ReactNode;\n className?: string;\n scrollUpThreshold?: number;\n scrollDownThreshold?: number;\n}\n\n/**\n * Unlike react-awesome-reveal, ScrollRevealer:\n *\n * - has configurable thresholds\n * - triggers arbitrary render/unrender animations\n *\n * TODO: Merge this inta a general Reveal component, perhaps forking react-awesome-reveal, so that we don't have two different reveal components for users.\n */\nexport default function ScrollRevealer({\n children,\n className,\n scrollDownThreshold = 0.5,\n scrollUpThreshold = 0,\n}: ScrollRevealerProps) {\n const intersectionRef = useRef<HTMLDivElement>(null);\n const revealed = useDirectionalIntersection({\n ref: intersectionRef,\n scrollUpThreshold,\n scrollDownThreshold,\n });\n return (\n <div className={className} ref={intersectionRef}>\n {revealed ? children : null}\n </div>\n );\n}\n\nexport const scrollRevealerMeta: ComponentMeta<ScrollRevealerProps> = {\n name: \"hostless-scroll-revealer\",\n importName: \"ScrollRevealer\",\n displayName: \"Scroll Revealer\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n children: \"slot\",\n scrollDownThreshold: {\n type: \"number\",\n displayName: \"Scroll down threshold\",\n defaultValueHint: 0.5,\n description:\n \"How much of the element (as a fraction) must you scroll into view for it to appear (defaults to 0.5)\",\n },\n scrollUpThreshold: {\n type: \"number\",\n displayName: \"Scroll up threshold\",\n defaultValueHint: 0,\n description:\n \"While scrolling up, how much of the element (as a fraction) can still be scrolled in view before it disappears (defaults to 0, meaning you must scroll up until it's completely out of view)\",\n },\n },\n defaultStyles: {\n width: \"stretch\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerScrollRevealer(\n loader?: { registerComponent: typeof registerComponent },\n customScrollRevealerMeta?: ComponentMeta<ScrollRevealerProps>\n) {\n if (loader) {\n loader.registerComponent(\n ScrollRevealer,\n customScrollRevealerMeta ?? scrollRevealerMeta\n );\n } else {\n registerComponent(\n ScrollRevealer,\n customScrollRevealerMeta ?? scrollRevealerMeta\n );\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nexport type VideoProps = Pick<\n React.ComponentProps<\"video\">,\n | \"autoPlay\"\n | \"controls\"\n | \"loop\"\n | \"muted\"\n | \"playsInline\"\n | \"poster\"\n | \"preload\"\n | \"src\"\n>;\n\nconst Video = React.forwardRef<HTMLVideoElement, VideoProps>(\n (props: VideoProps, ref) => {\n return <video ref={ref} {...props} />;\n }\n);\n\nexport default Video;\n\nexport const videoMeta: ComponentMeta<VideoProps> = {\n name: \"hostless-html-video\",\n importName: \"Video\",\n displayName: \"HTML Video\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n src: {\n type: \"string\",\n defaultValue:\n \"https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm\",\n displayName: \"Source URL\",\n description: \"URL to a video file.\",\n },\n autoPlay: {\n type: \"boolean\",\n displayName: \"Auto Play\",\n description:\n \"Whether the video show automatically start playing when the player loads\",\n },\n controls: {\n type: \"boolean\",\n displayName: \"Show Controls\",\n description: \"Whether the video player controls should be displayed\",\n },\n playsInline: {\n type: \"boolean\",\n displayName: \"Plays inline\",\n description:\n \"Usually on mobile, when tilted landscape, videos can play fullscreen. Turn this on to prevent that.\",\n },\n loop: {\n type: \"boolean\",\n displayName: \"Loop\",\n description: \"Whether the video should be played again after it finishes\",\n },\n muted: {\n type: \"boolean\",\n displayName: \"Muted\",\n description: \"Whether audio should be muted\",\n },\n poster: {\n type: \"imageUrl\",\n displayName: \"Poster (placeholder) image\",\n description: \"Image to show while video is downloading\",\n },\n preload: {\n type: \"choice\",\n options: [\"none\", \"metadata\", \"auto\"],\n displayName: \"Preload\",\n description:\n \"Whether to preload nothing, metadata only, or the full video\",\n },\n },\n defaultStyles: {\n height: \"hug\",\n width: \"640px\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerVideo(\n loader?: { registerComponent: typeof registerComponent },\n customVideoMeta?: ComponentMeta<VideoProps>\n) {\n if (loader) {\n loader.registerComponent(Video, customVideoMeta ?? videoMeta);\n } else {\n registerComponent(Video, customVideoMeta ?? videoMeta);\n }\n}\n"],"names":["tuple","args","DataContext","createContext","undefined","thisModule","applySelector","rawData","selector","curData","split","key","useSelector","useDataEnv","useSelectors","selectors","Object","fromEntries","entries","filter","map","useContext","DataProvider","name","data","children","existingEnv","React","Provider","value","DynamicElement","tag","className","propSelectors","props","computed","createElement","DynamicText","DynamicImage","loading","style","objectFit","src","DynamicRepeater","loopItemName","keySelector","finalData","item","index","repeatedElement","dynamicRepeaterProps","type","description","defaultValue","dynamicRepeaterMeta","displayName","importName","importPath","registerDynamicRepeater","loader","customDynamicRepeaterMeta","registerComponent","dataProviderMeta","birthYear","profilePicture","registerDataProvider","customDataProviderMeta","dynamicPropsWithoutTag","defaultValueHint","dynamicProps","dynamicElementMeta","registerDynamicElement","customDynamicElementMeta","dynamicTextMeta","registerDynamicText","customDynamicTextMeta","dynamicImageMeta","registerDynamicImage","customDynamicImageMeta","Iframe","preview","isEditing","PlasmicCanvasContext","position","top","left","right","bottom","background","color","fontSize","fontFamily","fontWeight","display","alignItems","justifyContent","overflow","iframeMeta","defaultStyles","width","height","maxWidth","registerIframe","customIframeMeta","useDirectionalIntersection","ref","scrollDownThreshold","scrollUpThreshold","useState","revealed","setRevealed","useEffect","current","IntersectionObserver","handler","intersectionRatio","observer","root","rootMargin","threshold","observe","disconnect","ScrollRevealer","intersectionRef","useRef","scrollRevealerMeta","registerScrollRevealer","customScrollRevealerMeta","Video","forwardRef","videoMeta","autoPlay","controls","playsInline","loop","muted","poster","preload","options","registerVideo","customVideoMeta"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-basic-components.cjs.development.js","sources":["../src/Data.tsx","../src/common.ts","../src/Embed.tsx","../src/Iframe.tsx","../src/ScrollRevealer.tsx","../src/Video.tsx","../src/EmbedCss.tsx"],"sourcesContent":["import {\n ComponentMeta,\n repeatedElement,\n SelectorDict,\n useSelectors as _useSelectors,\n useSelector as _useSelector,\n DataProvider as _DataProvider,\n DataProviderProps,\n applySelector as _applySelector,\n useDataEnv as _useDataEnv,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { ComponentProps, createElement, ReactNode } from \"react\";\n\nconst thisModule = \"@plasmicpkgs/plasmic-basic-components\";\n\n/**\n * @deprecated This should be imported from @plasmicapp/host instead.\n */\nexport const applySelector: typeof _applySelector = function(...args) {\n console.warn(\n \"DEPRECATED: Import applySelector from @plasmicapp/host instead.\"\n );\n return _applySelector(...args);\n};\n\n/**\n * @deprecated This should be imported from @plasmicapp/host instead.\n */\nexport const useSelector: typeof _useSelector = function(...args) {\n console.warn(\"DEPRECATED: Import useSelector from @plasmicapp/host instead.\");\n return _useSelector(...args);\n};\n\n/**\n * @deprecated This should be imported from @plasmicapp/host instead.\n */\nexport const useSelectors: typeof _useSelectors = function(...args) {\n console.warn(\n \"DEPRECATED: Import useSelectors from @plasmicapp/host instead.\"\n );\n return _useSelectors(...args);\n};\n\n/**\n * @deprecated This should be imported from @plasmicapp/host instead.\n */\nexport const useDataEnv: typeof _useDataEnv = function(...args) {\n console.warn(\"DEPRECATED: Import useDataEnv from @plasmicapp/host instead.\");\n return _useDataEnv(...args);\n};\n\n/**\n * @deprecated This should be imported from @plasmicapp/host instead.\n */\nexport const DataProvider: typeof _DataProvider = function(...args) {\n console.warn(\n \"DEPRECATED: Import DataProvider from @plasmicapp/host instead.\"\n );\n return _DataProvider(...args);\n};\n\nexport interface CommonDynamicProps {\n className?: string;\n tag?: string;\n propSelectors?: SelectorDict;\n}\n\nexport function DynamicElement<\n Tag extends keyof JSX.IntrinsicElements = \"div\"\n>({\n tag = \"div\",\n className,\n children,\n propSelectors,\n ...props\n}: CommonDynamicProps & ComponentProps<Tag>) {\n const computed = _useSelectors(propSelectors);\n return createElement(tag, {\n children,\n ...props,\n ...computed,\n className: className + \" \" + computed.className,\n });\n}\n\nexport interface DynamicTextProps extends CommonDynamicProps {\n selector?: string;\n}\n\nexport function DynamicText({\n selector,\n propSelectors,\n ...props\n}: DynamicTextProps) {\n return (\n <DynamicElement\n {...props}\n propSelectors={{ ...propSelectors, children: selector }}\n >\n {/*This is the default text*/}\n (DynamicText requires a selector)\n </DynamicElement>\n );\n}\n\nexport interface DynamicImageProps\n extends CommonDynamicProps,\n ComponentProps<\"img\"> {\n selector?: string;\n}\n\nexport function DynamicImage({\n selector,\n propSelectors,\n ...props\n}: DynamicImageProps) {\n return (\n <DynamicElement<\"img\">\n tag={\"img\"}\n loading={\"lazy\"}\n style={{\n objectFit: \"cover\",\n }}\n {...props}\n propSelectors={{ ...propSelectors, src: selector }}\n // Default image placeholder\n src=\"https://studio.plasmic.app/static/img/placeholder.png\"\n />\n );\n}\n\nexport interface DynamicRepeaterProps {\n children?: ReactNode;\n loopItemName?: string;\n keySelector?: string;\n selector?: string;\n data?: any;\n}\n\nexport function DynamicRepeater({\n children,\n loopItemName,\n keySelector,\n selector,\n data,\n}: DynamicRepeaterProps) {\n // Defaults to an array of three items.\n const finalData = data ?? _useSelector(selector) ?? [1, 2, 3];\n return (\n <>\n {finalData?.map?.((item: any, index: number) => (\n <_DataProvider\n key={_applySelector(item, keySelector) ?? index}\n name={loopItemName}\n data={item}\n >\n {repeatedElement(index === 0, children)}\n </_DataProvider>\n ))}\n </>\n );\n}\n\nexport const dynamicRepeaterProps = {\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the array of data to loop over, such as: someVariable.0.someField\",\n },\n loopItemName: {\n type: \"string\",\n defaultValue: \"item\",\n description:\n \"The name of the variable to use to store the current item in the loop\",\n },\n children: \"slot\",\n} as const;\n\nexport const dynamicRepeaterMeta: ComponentMeta<DynamicRepeaterProps> = {\n name: \"hostless-dynamic-repeater\",\n displayName: \"Dynamic Repeater\",\n importName: \"DynamicRepeater\",\n importPath: thisModule,\n props: dynamicRepeaterProps,\n};\n\nexport function registerDynamicRepeater(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicRepeaterMeta?: ComponentMeta<DynamicRepeaterProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicRepeater,\n customDynamicRepeaterMeta ?? dynamicRepeaterMeta\n );\n } else {\n registerComponent(\n DynamicRepeater,\n customDynamicRepeaterMeta ?? dynamicRepeaterMeta\n );\n }\n}\n\nexport const dataProviderMeta: ComponentMeta<DataProviderProps> = {\n name: \"hostless-data-provider\",\n displayName: \"Data Provider\",\n importName: \"DataProvider\",\n importPath: thisModule,\n // description: \"Makes some specified data available to the subtree in a context\",\n props: {\n name: {\n type: \"string\",\n defaultValue: \"celebrities\",\n description: \"The name of the variable to store the data in\",\n },\n data: {\n type: \"object\",\n defaultValue: [\n {\n name: \"Fill Murray\",\n birthYear: 1950,\n profilePicture: [\"https://www.fillmurray.com/200/300\"],\n },\n {\n name: \"Place Cage\",\n birthYear: 1950,\n profilePicture: [\"https://www.placecage.com/200/300\"],\n },\n ],\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"hostless-dynamic-text\",\n props: {\n selector: \"celebrities.0.name\",\n },\n },\n {\n type: \"component\",\n name: \"hostless-dynamic-image\",\n props: {\n selector: \"celebrities.0.profilePicture\",\n },\n },\n ],\n },\n },\n};\n\nexport function registerDataProvider(\n loader?: { registerComponent: typeof registerComponent },\n customDataProviderMeta?: ComponentMeta<DataProviderProps>\n) {\n if (loader) {\n loader.registerComponent(\n _DataProvider,\n customDataProviderMeta ?? dataProviderMeta\n );\n } else {\n registerComponent(\n _DataProvider,\n customDataProviderMeta ?? dataProviderMeta\n );\n }\n}\n\nconst dynamicPropsWithoutTag = {\n propSelectors: {\n type: \"object\",\n defaultValueHint: {},\n description:\n \"An object whose keys are prop names and values are selector expressions. Use this to set any prop to a dynamic value.\",\n },\n} as const;\n\nconst dynamicProps = {\n ...dynamicPropsWithoutTag,\n tag: {\n type: \"string\",\n defaultValueHint: \"div\",\n description: \"The HTML tag to use\",\n },\n} as const;\n\n// TODO Eventually we'll want to expose all the base HTML properties, but in the nicer way that we do within the studio.\n\nexport const dynamicElementMeta: ComponentMeta<CommonDynamicProps> = {\n name: \"hostless-dynamic-element\",\n displayName: \"Dynamic Element\",\n importName: \"DynamicElement\",\n importPath: thisModule,\n props: { ...dynamicProps, children: \"slot\" },\n};\n\nexport function registerDynamicElement(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicElementMeta?: ComponentMeta<CommonDynamicProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicElement,\n customDynamicElementMeta ?? dynamicElementMeta\n );\n } else {\n registerComponent(\n DynamicElement,\n customDynamicElementMeta ?? dynamicElementMeta\n );\n }\n}\n\nexport const dynamicTextMeta: ComponentMeta<DynamicTextProps> = {\n name: \"hostless-dynamic-text\",\n importName: \"DynamicText\",\n displayName: \"Dynamic Text\",\n importPath: thisModule,\n props: {\n ...dynamicProps,\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the text, such as: someVariable.0.someField\",\n },\n },\n};\n\nexport function registerDynamicText(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicTextMeta?: ComponentMeta<DynamicTextProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicText,\n customDynamicTextMeta ?? dynamicTextMeta\n );\n } else {\n registerComponent(DynamicText, customDynamicTextMeta ?? dynamicTextMeta);\n }\n}\n\nexport const dynamicImageMeta: ComponentMeta<DynamicImageProps> = {\n name: \"hostless-dynamic-image\",\n displayName: \"Dynamic Image\",\n importName: \"DynamicImage\",\n importPath: thisModule,\n props: {\n ...dynamicPropsWithoutTag,\n selector: {\n type: \"string\",\n description:\n \"The selector expression to use to get the image source URL, such as: someVariable.0.someField\",\n },\n },\n};\n\nexport function registerDynamicImage(\n loader?: { registerComponent: typeof registerComponent },\n customDynamicImageMeta?: ComponentMeta<DynamicImageProps>\n) {\n if (loader) {\n loader.registerComponent(\n DynamicImage,\n customDynamicImageMeta ?? dynamicImageMeta\n );\n } else {\n registerComponent(DynamicImage, customDynamicImageMeta ?? dynamicImageMeta);\n }\n}\n","export const tuple = <T extends any[]>(...args: T): T => args;\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect, useRef } from \"react\";\nimport { ensure } from \"./common\";\n\nexport interface EmbedProps {\n className?: string;\n code: string;\n hideInEditor?: boolean;\n}\n\nexport default function Embed({\n className,\n code,\n hideInEditor = false,\n}: EmbedProps) {\n const rootElt = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (hideInEditor) {\n return;\n }\n Array.from(ensure(rootElt.current).querySelectorAll(\"script\")).forEach(\n (oldScript) => {\n const newScript = document.createElement(\"script\");\n Array.from(oldScript.attributes).forEach((attr) =>\n newScript.setAttribute(attr.name, attr.value)\n );\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n ensure(oldScript.parentNode).replaceChild(newScript, oldScript);\n }\n );\n }, [code, hideInEditor]);\n const effectiveCode = hideInEditor ? \"\" : code;\n return (\n <div\n ref={rootElt}\n className={className}\n dangerouslySetInnerHTML={{ __html: effectiveCode }}\n />\n );\n}\n\nexport const embedMeta: ComponentMeta<EmbedProps> = {\n name: \"hostless-embed\",\n displayName: \"Embed HTML\",\n importName: \"Embed\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n code: {\n type: \"code\",\n lang: \"html\",\n defaultValueHint: \"<!-- HTML snippet -->\",\n description: \"The HTML code to be embedded\",\n },\n hideInEditor: {\n type: \"boolean\",\n displayName: \"Hide in editor\",\n description:\n \"Disable running the code while editing in Plasmic Studio (may require reload)\",\n editOnly: true,\n },\n },\n defaultStyles: {\n maxWidth: \"100%\",\n },\n};\n\nexport function registerEmbed(\n loader?: { registerComponent: typeof registerComponent },\n customEmbedMeta?: ComponentMeta<EmbedProps>\n) {\n if (loader) {\n loader.registerComponent(Embed, customEmbedMeta ?? embedMeta);\n } else {\n registerComponent(Embed, customEmbedMeta ?? embedMeta);\n }\n}\n","import { ComponentMeta, PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useContext } from \"react\";\n\nexport interface IframeProps {\n src: string;\n preview?: boolean;\n className?: string;\n}\n\nexport default function Iframe({ preview, src, className }: IframeProps) {\n const isEditing = useContext(PlasmicCanvasContext);\n if (isEditing && !preview) {\n return (\n <div className={className}>\n <div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: \"#eee\",\n color: \"#888\",\n fontSize: \"36px\",\n fontFamily: \"sans-serif\",\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n }}\n >\n Iframe placeholder\n </div>\n </div>\n );\n }\n return <iframe src={src} className={className} />;\n}\n\nexport const iframeMeta: ComponentMeta<IframeProps> = {\n name: \"hostless-iframe\",\n displayName: \"Iframe\",\n importName: \"Iframe\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n src: {\n type: \"string\",\n defaultValue: \"https://www.example.com\",\n },\n preview: {\n type: \"boolean\",\n description: \"Load the iframe while editing in Plasmic Studio\",\n },\n },\n defaultStyles: {\n width: \"300px\",\n height: \"150px\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerIframe(\n loader?: { registerComponent: typeof registerComponent },\n customIframeMeta?: ComponentMeta<IframeProps>\n) {\n if (loader) {\n loader.registerComponent(Iframe, customIframeMeta ?? iframeMeta);\n } else {\n registerComponent(Iframe, customIframeMeta ?? iframeMeta);\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React, {\n ReactNode,\n RefObject,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nexport function useDirectionalIntersection({\n ref,\n scrollDownThreshold = 0.5,\n scrollUpThreshold = 0,\n}: {\n ref: RefObject<HTMLElement>;\n scrollDownThreshold?: number;\n scrollUpThreshold?: number;\n}) {\n const [revealed, setRevealed] = useState(false);\n useEffect(() => {\n if (ref.current && typeof IntersectionObserver === \"function\") {\n const handler = (entries: IntersectionObserverEntry[]) => {\n if (entries[0].intersectionRatio >= scrollDownThreshold) {\n setRevealed(true);\n } else if (entries[0].intersectionRatio <= scrollUpThreshold) {\n setRevealed(false);\n }\n };\n\n const observer = new IntersectionObserver(handler, {\n root: null,\n rootMargin: \"0%\",\n threshold: [scrollUpThreshold, scrollDownThreshold],\n });\n observer.observe(ref.current);\n\n return () => {\n setRevealed(false);\n observer.disconnect();\n };\n }\n return () => {};\n }, [ref.current, scrollDownThreshold, scrollUpThreshold]);\n return revealed;\n}\n\nexport interface ScrollRevealerProps {\n children?: ReactNode;\n className?: string;\n scrollUpThreshold?: number;\n scrollDownThreshold?: number;\n}\n\n/**\n * Unlike react-awesome-reveal, ScrollRevealer:\n *\n * - has configurable thresholds\n * - triggers arbitrary render/unrender animations\n *\n * TODO: Merge this inta a general Reveal component, perhaps forking react-awesome-reveal, so that we don't have two different reveal components for users.\n */\nexport default function ScrollRevealer({\n children,\n className,\n scrollDownThreshold = 0.5,\n scrollUpThreshold = 0,\n}: ScrollRevealerProps) {\n const intersectionRef = useRef<HTMLDivElement>(null);\n const revealed = useDirectionalIntersection({\n ref: intersectionRef,\n scrollUpThreshold,\n scrollDownThreshold,\n });\n return (\n <div className={className} ref={intersectionRef}>\n {revealed ? children : null}\n </div>\n );\n}\n\nexport const scrollRevealerMeta: ComponentMeta<ScrollRevealerProps> = {\n name: \"hostless-scroll-revealer\",\n importName: \"ScrollRevealer\",\n displayName: \"Scroll Revealer\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n children: \"slot\",\n scrollDownThreshold: {\n type: \"number\",\n displayName: \"Scroll down threshold\",\n defaultValueHint: 0.5,\n description:\n \"How much of the element (as a fraction) must you scroll into view for it to appear (defaults to 0.5)\",\n },\n scrollUpThreshold: {\n type: \"number\",\n displayName: \"Scroll up threshold\",\n defaultValueHint: 0,\n description:\n \"While scrolling up, how much of the element (as a fraction) can still be scrolled in view before it disappears (defaults to 0, meaning you must scroll up until it's completely out of view)\",\n },\n },\n defaultStyles: {\n width: \"stretch\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerScrollRevealer(\n loader?: { registerComponent: typeof registerComponent },\n customScrollRevealerMeta?: ComponentMeta<ScrollRevealerProps>\n) {\n if (loader) {\n loader.registerComponent(\n ScrollRevealer,\n customScrollRevealerMeta ?? scrollRevealerMeta\n );\n } else {\n registerComponent(\n ScrollRevealer,\n customScrollRevealerMeta ?? scrollRevealerMeta\n );\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nexport type VideoProps = Pick<\n React.ComponentProps<\"video\">,\n | \"autoPlay\"\n | \"controls\"\n | \"loop\"\n | \"muted\"\n | \"playsInline\"\n | \"poster\"\n | \"preload\"\n | \"src\"\n>;\n\nconst Video = React.forwardRef<HTMLVideoElement, VideoProps>(\n (props: VideoProps, ref) => {\n return <video ref={ref} {...props} />;\n }\n);\n\nexport default Video;\n\nexport const videoMeta: ComponentMeta<VideoProps> = {\n name: \"hostless-html-video\",\n importName: \"Video\",\n displayName: \"HTML Video\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n src: {\n type: \"string\",\n defaultValue:\n \"https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm\",\n displayName: \"Source URL\",\n description: \"URL to a video file.\",\n },\n autoPlay: {\n type: \"boolean\",\n displayName: \"Auto Play\",\n description:\n \"Whether the video show automatically start playing when the player loads\",\n },\n controls: {\n type: \"boolean\",\n displayName: \"Show Controls\",\n description: \"Whether the video player controls should be displayed\",\n },\n playsInline: {\n type: \"boolean\",\n displayName: \"Plays inline\",\n description:\n \"Usually on mobile, when tilted landscape, videos can play fullscreen. Turn this on to prevent that.\",\n },\n loop: {\n type: \"boolean\",\n displayName: \"Loop\",\n description: \"Whether the video should be played again after it finishes\",\n },\n muted: {\n type: \"boolean\",\n displayName: \"Muted\",\n description: \"Whether audio should be muted\",\n },\n poster: {\n type: \"imageUrl\",\n displayName: \"Poster (placeholder) image\",\n description: \"Image to show while video is downloading\",\n },\n preload: {\n type: \"choice\",\n options: [\"none\", \"metadata\", \"auto\"],\n displayName: \"Preload\",\n description:\n \"Whether to preload nothing, metadata only, or the full video\",\n },\n },\n defaultStyles: {\n height: \"hug\",\n width: \"640px\",\n maxWidth: \"100%\",\n },\n};\n\nexport function registerVideo(\n loader?: { registerComponent: typeof registerComponent },\n customVideoMeta?: ComponentMeta<VideoProps>\n) {\n if (loader) {\n loader.registerComponent(Video, customVideoMeta ?? videoMeta);\n } else {\n registerComponent(Video, customVideoMeta ?? videoMeta);\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nexport interface EmbedCssProps {\n css: string;\n}\n\nexport default function EmbedCss({\n css\n}: EmbedCssProps) {\n return (\n <style\n dangerouslySetInnerHTML={{ __html: css }}\n />\n );\n}\n\nexport const embedCssMeta: ComponentMeta<EmbedCssProps> = { \n name: \"hostless-embed-css\",\n displayName: \"Embed Css\",\n importName: \"EmbedCss\",\n importPath: \"@plasmicpkgs/plasmic-basic-components\",\n props: {\n css: {\n type: \"code\",\n lang: \"css\",\n defaultValueHint: \"/* CSS snippet */\",\n description: \"CSS rules to be inserted\",\n },\n },\n};\n\nexport function registerEmbedCss(\n loader?: { registerComponent: typeof registerComponent },\n customEmbedCssMeta?: ComponentMeta<EmbedCssProps>\n) {\n if (loader) {\n loader.registerComponent(EmbedCss, customEmbedCssMeta ?? embedCssMeta);\n } else {\n registerComponent(EmbedCss, customEmbedCssMeta ?? embedCssMeta);\n }\n}\n"],"names":["thisModule","applySelector","console","warn","_applySelector","useSelector","_useSelector","useSelectors","_useSelectors","useDataEnv","_useDataEnv","DataProvider","_DataProvider","DynamicElement","tag","className","children","propSelectors","props","computed","createElement","DynamicText","selector","React","DynamicImage","loading","style","objectFit","src","DynamicRepeater","loopItemName","keySelector","data","finalData","map","item","index","key","name","repeatedElement","dynamicRepeaterProps","type","description","defaultValue","dynamicRepeaterMeta","displayName","importName","importPath","registerDynamicRepeater","loader","customDynamicRepeaterMeta","registerComponent","dataProviderMeta","birthYear","profilePicture","registerDataProvider","customDataProviderMeta","dynamicPropsWithoutTag","defaultValueHint","dynamicProps","dynamicElementMeta","registerDynamicElement","customDynamicElementMeta","dynamicTextMeta","registerDynamicText","customDynamicTextMeta","dynamicImageMeta","registerDynamicImage","customDynamicImageMeta","ensure","x","undefined","Error","Embed","code","hideInEditor","rootElt","useRef","useEffect","Array","from","current","querySelectorAll","forEach","oldScript","newScript","document","attributes","attr","setAttribute","value","appendChild","createTextNode","innerHTML","parentNode","replaceChild","effectiveCode","ref","dangerouslySetInnerHTML","__html","embedMeta","lang","editOnly","defaultStyles","maxWidth","registerEmbed","customEmbedMeta","Iframe","preview","isEditing","useContext","PlasmicCanvasContext","position","top","left","right","bottom","background","color","fontSize","fontFamily","fontWeight","display","alignItems","justifyContent","overflow","iframeMeta","width","height","registerIframe","customIframeMeta","useDirectionalIntersection","scrollDownThreshold","scrollUpThreshold","useState","revealed","setRevealed","IntersectionObserver","handler","entries","intersectionRatio","observer","root","rootMargin","threshold","observe","disconnect","ScrollRevealer","intersectionRef","scrollRevealerMeta","registerScrollRevealer","customScrollRevealerMeta","Video","forwardRef","videoMeta","autoPlay","controls","playsInline","loop","muted","poster","preload","options","registerVideo","customVideoMeta","EmbedCss","css","embedCssMeta","registerEmbedCss","customEmbedCssMeta"],"mappings":"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"}