@plasmicpkgs/plasmic-basic-components 0.0.10 → 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 +21 -14
- package/dist/plasmic-basic-components.cjs.development.js +74 -137
- package/dist/plasmic-basic-components.cjs.development.js.map +1 -1
- package/dist/plasmic-basic-components.cjs.production.min.js +1 -1
- package/dist/plasmic-basic-components.cjs.production.min.js.map +1 -1
- package/dist/plasmic-basic-components.esm.js +77 -139
- package/dist/plasmic-basic-components.esm.js.map +1 -1
- package/package.json +3 -3
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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;
|
|
@@ -42,138 +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
|
-
function ensure(x) {
|
|
91
|
-
if (x === null || x === undefined) {
|
|
92
|
-
debugger;
|
|
93
|
-
throw new Error("Value must not be undefined or null");
|
|
94
|
-
} else {
|
|
95
|
-
return x;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
var DataContext = /*#__PURE__*/React.createContext(undefined);
|
|
100
45
|
var thisModule = "@plasmicpkgs/plasmic-basic-components";
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
var curData = rawData;
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
48
|
+
*/
|
|
107
49
|
|
|
108
|
-
|
|
109
|
-
|
|
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
|
+
*/
|
|
110
57
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
+
*/
|
|
114
65
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (selectors === void 0) {
|
|
123
|
-
selectors = {};
|
|
124
|
-
}
|
|
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
|
+
*/
|
|
125
73
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
selector = _ref2[1];
|
|
134
|
-
return tuple(key, applySelector(rawData, selector));
|
|
135
|
-
}));
|
|
136
|
-
}
|
|
137
|
-
function useDataEnv() {
|
|
138
|
-
return React.useContext(DataContext);
|
|
139
|
-
}
|
|
140
|
-
function DataProvider(_ref3) {
|
|
141
|
-
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
|
+
*/
|
|
142
81
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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"]);
|
|
147
93
|
|
|
148
|
-
|
|
149
|
-
return React__default.createElement(React__default.Fragment, null, children);
|
|
150
|
-
} else {
|
|
151
|
-
var _extends2;
|
|
94
|
+
var computed = host.useSelectors(propSelectors);
|
|
152
95
|
|
|
153
|
-
return React__default.createElement(DataContext.Provider, {
|
|
154
|
-
value: _extends({}, existingEnv, (_extends2 = {}, _extends2[name] = data, _extends2))
|
|
155
|
-
}, children);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function DynamicElement(_ref4) {
|
|
159
|
-
var _ref4$tag = _ref4.tag,
|
|
160
|
-
tag = _ref4$tag === void 0 ? "div" : _ref4$tag,
|
|
161
|
-
className = _ref4.className,
|
|
162
|
-
children = _ref4.children,
|
|
163
|
-
propSelectors = _ref4.propSelectors,
|
|
164
|
-
props = _objectWithoutPropertiesLoose(_ref4, ["tag", "className", "children", "propSelectors"]);
|
|
165
|
-
|
|
166
|
-
var computed = useSelectors(propSelectors);
|
|
167
96
|
return React.createElement(tag, _extends({
|
|
168
97
|
children: children
|
|
169
98
|
}, props, computed, {
|
|
170
99
|
className: className + " " + computed.className
|
|
171
100
|
}));
|
|
172
101
|
}
|
|
173
|
-
function DynamicText(
|
|
174
|
-
var selector =
|
|
175
|
-
propSelectors =
|
|
176
|
-
props = _objectWithoutPropertiesLoose(
|
|
102
|
+
function DynamicText(_ref2) {
|
|
103
|
+
var selector = _ref2.selector,
|
|
104
|
+
propSelectors = _ref2.propSelectors,
|
|
105
|
+
props = _objectWithoutPropertiesLoose(_ref2, ["selector", "propSelectors"]);
|
|
177
106
|
|
|
178
107
|
return React__default.createElement(DynamicElement, Object.assign({}, props, {
|
|
179
108
|
propSelectors: _extends({}, propSelectors, {
|
|
@@ -181,10 +110,10 @@ function DynamicText(_ref5) {
|
|
|
181
110
|
})
|
|
182
111
|
}), "(DynamicText requires a selector)");
|
|
183
112
|
}
|
|
184
|
-
function DynamicImage(
|
|
185
|
-
var selector =
|
|
186
|
-
propSelectors =
|
|
187
|
-
props = _objectWithoutPropertiesLoose(
|
|
113
|
+
function DynamicImage(_ref3) {
|
|
114
|
+
var selector = _ref3.selector,
|
|
115
|
+
propSelectors = _ref3.propSelectors,
|
|
116
|
+
props = _objectWithoutPropertiesLoose(_ref3, ["selector", "propSelectors"]);
|
|
188
117
|
|
|
189
118
|
return React__default.createElement(DynamicElement, Object.assign({
|
|
190
119
|
tag: "img",
|
|
@@ -200,21 +129,21 @@ function DynamicImage(_ref6) {
|
|
|
200
129
|
src: "https://studio.plasmic.app/static/img/placeholder.png"
|
|
201
130
|
}));
|
|
202
131
|
}
|
|
203
|
-
function DynamicRepeater(
|
|
204
|
-
var
|
|
205
|
-
|
|
206
|
-
var children =
|
|
207
|
-
loopItemName =
|
|
208
|
-
keySelector =
|
|
209
|
-
selector =
|
|
210
|
-
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;
|
|
211
140
|
// Defaults to an array of three items.
|
|
212
|
-
var finalData = (
|
|
141
|
+
var finalData = (_ref5 = data != null ? data : host.useSelector(selector)) != null ? _ref5 : [1, 2, 3];
|
|
213
142
|
return React__default.createElement(React__default.Fragment, null, finalData == null ? void 0 : finalData.map == null ? void 0 : finalData.map(function (item, index) {
|
|
214
|
-
var
|
|
143
|
+
var _applySelector2;
|
|
215
144
|
|
|
216
|
-
return React__default.createElement(DataProvider, {
|
|
217
|
-
key: (
|
|
145
|
+
return React__default.createElement(host.DataProvider, {
|
|
146
|
+
key: (_applySelector2 = host.applySelector(item, keySelector)) != null ? _applySelector2 : index,
|
|
218
147
|
name: loopItemName,
|
|
219
148
|
data: item
|
|
220
149
|
}, host.repeatedElement(index === 0, children));
|
|
@@ -290,9 +219,9 @@ var dataProviderMeta = {
|
|
|
290
219
|
};
|
|
291
220
|
function registerDataProvider(loader, customDataProviderMeta) {
|
|
292
221
|
if (loader) {
|
|
293
|
-
loader.registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
222
|
+
loader.registerComponent(host.DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
294
223
|
} else {
|
|
295
|
-
registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
224
|
+
registerComponent(host.DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
296
225
|
}
|
|
297
226
|
}
|
|
298
227
|
var dynamicPropsWithoutTag = {
|
|
@@ -367,6 +296,15 @@ function registerDynamicImage(loader, customDynamicImageMeta) {
|
|
|
367
296
|
}
|
|
368
297
|
}
|
|
369
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
|
+
|
|
370
308
|
function Embed(_ref) {
|
|
371
309
|
var className = _ref.className,
|
|
372
310
|
code = _ref.code,
|
|
@@ -685,7 +623,6 @@ function registerEmbedCss(loader, customEmbedCssMeta) {
|
|
|
685
623
|
}
|
|
686
624
|
}
|
|
687
625
|
|
|
688
|
-
exports.DataContext = DataContext;
|
|
689
626
|
exports.DataProvider = DataProvider;
|
|
690
627
|
exports.DynamicElement = DynamicElement;
|
|
691
628
|
exports.DynamicImage = DynamicImage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-basic-components.cjs.development.js","sources":["../src/common.ts","../src/Data.tsx","../src/Embed.tsx","../src/Iframe.tsx","../src/ScrollRevealer.tsx","../src/Video.tsx","../src/EmbedCss.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 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":["tuple","args","ensure","x","undefined","Error","DataContext","createContext","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","Embed","code","hideInEditor","rootElt","useRef","useEffect","Array","from","current","querySelectorAll","forEach","oldScript","newScript","document","attributes","attr","setAttribute","appendChild","createTextNode","innerHTML","parentNode","replaceChild","effectiveCode","ref","dangerouslySetInnerHTML","__html","embedMeta","lang","editOnly","defaultStyles","maxWidth","registerEmbed","customEmbedMeta","Iframe","preview","isEditing","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","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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"}
|
|
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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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/host"),r=e(require("@plasmicapp/host/registerComponent")),o=require("react"),n=e(o);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)t.indexOf(r=a[o])>=0||(n[r]=e[r]);return n}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function l(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var c=o.createContext(void 0),p="@plasmicpkgs/plasmic-basic-components";function m(e,t){if(t){for(var r,o=e,n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return s(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,void 0):void 0}}(e))){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(t.split("."));!(r=n()).done;){var a;o=null==(a=o)?void 0:a[r.value]}return o}}function d(e){return m(h(),e)}function u(e){void 0===e&&(e={});var t=h();return Object.fromEntries(Object.entries(e).filter((function(e){return!!e[0]&&!!e[1]})).map((function(e){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t}(e[0],m(t,e[1]))})))}function h(){return o.useContext(c)}function f(e){var t,r,o=e.name,i=e.data,s=e.children,l=null!=(t=h())?t:{};return o?n.createElement(c.Provider,{value:a({},l,(r={},r[o]=i,r))},s):n.createElement(n.Fragment,null,s)}function y(e){var t=e.tag,r=void 0===t?"div":t,n=e.className,s=e.children,l=e.propSelectors,c=i(e,["tag","className","children","propSelectors"]),p=u(l);return o.createElement(r,a({children:s},c,p,{className:n+" "+p.className}))}function v(e){var t=e.selector,r=e.propSelectors,o=i(e,["selector","propSelectors"]);return n.createElement(y,Object.assign({},o,{propSelectors:a({},r,{children:t})}),"(DynamicText requires a selector)")}function g(e){var t=e.selector,r=e.propSelectors,o=i(e,["selector","propSelectors"]);return n.createElement(y,Object.assign({tag:"img",loading:"lazy",style:{objectFit:"cover"}},o,{propSelectors:a({},r,{src:t}),src:"https://studio.plasmic.app/static/img/placeholder.png"}))}function b(e){var r,o=e.children,a=e.loopItemName,i=e.keySelector,s=e.data,l=null!=(r=null!=s?s:d(e.selector))?r:[1,2,3];return n.createElement(n.Fragment,null,null==l||null==l.map?void 0:l.map((function(e,r){var s;return n.createElement(f,{key:null!=(s=m(e,i))?s:r,name:a,data:e},t.repeatedElement(0===r,o))})))}var x={selector:{type:"string",description:"The selector expression to use to get the array of data to loop over, such as: someVariable.0.someField"},loopItemName:{type:"string",defaultValue:"item",description:"The name of the variable to use to store the current item in the loop"},children:"slot"},w={name:"hostless-dynamic-repeater",displayName:"Dynamic Repeater",importName:"DynamicRepeater",importPath:p,props:x},N={name:"hostless-data-provider",displayName:"Data Provider",importName:"DataProvider",importPath:p,props:{name:{type:"string",defaultValue:"celebrities",description:"The name of the variable to store the data in"},data:{type:"object",defaultValue:[{name:"Fill Murray",birthYear:1950,profilePicture:["https://www.fillmurray.com/200/300"]},{name:"Place Cage",birthYear:1950,profilePicture:["https://www.placecage.com/200/300"]}]},children:{type:"slot",defaultValue:[{type:"component",name:"hostless-dynamic-text",props:{selector:"celebrities.0.name"}},{type:"component",name:"hostless-dynamic-image",props:{selector:"celebrities.0.profilePicture"}}]}}},S={propSelectors:{type:"object",defaultValueHint:{},description:"An object whose keys are prop names and values are selector expressions. Use this to set any prop to a dynamic value."}},E=a({},S,{tag:{type:"string",defaultValueHint:"div",description:"The HTML tag to use"}}),T={name:"hostless-dynamic-element",displayName:"Dynamic Element",importName:"DynamicElement",importPath:p,props:a({},E,{children:"slot"})},P={name:"hostless-dynamic-text",importName:"DynamicText",displayName:"Dynamic Text",importPath:p,props:a({},E,{selector:{type:"string",description:"The selector expression to use to get the text, such as: someVariable.0.someField"}})},C={name:"hostless-dynamic-image",displayName:"Dynamic Image",importName:"DynamicImage",importPath:p,props:a({},S,{selector:{type:"string",description:"The selector expression to use to get the image source URL, such as: someVariable.0.someField"}})};function D(e){var t=e.className,r=e.code,a=e.hideInEditor,i=void 0!==a&&a,s=o.useRef(null);return o.useEffect((function(){i||Array.from(l(s.current).querySelectorAll("script")).forEach((function(e){var t=document.createElement("script");Array.from(e.attributes).forEach((function(e){return t.setAttribute(e.name,e.value)})),t.appendChild(document.createTextNode(e.innerHTML)),l(e.parentNode).replaceChild(t,e)}))}),[r,i]),n.createElement("div",{ref:s,className:t,dangerouslySetInnerHTML:{__html:i?"":r}})}var I={name:"hostless-embed",displayName:"Embed HTML",importName:"Embed",importPath:"@plasmicpkgs/plasmic-basic-components",props:{code:{type:"code",lang:"html",defaultValueHint:"\x3c!-- HTML snippet --\x3e",description:"The HTML code to be embedded"},hideInEditor:{type:"boolean",displayName:"Hide in editor",description:"Disable running the code while editing in Plasmic Studio (may require reload)",editOnly:!0}},defaultStyles:{maxWidth:"100%"}};function M(e){var r=e.preview,a=e.src,i=e.className;return o.useContext(t.PlasmicCanvasContext)&&!r?n.createElement("div",{className:i},n.createElement("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,background:"#eee",color:"#888",fontSize:"36px",fontFamily:"sans-serif",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"}},"Iframe placeholder")):n.createElement("iframe",{src:a,className:i})}var V={name:"hostless-iframe",displayName:"Iframe",importName:"Iframe",importPath:"@plasmicpkgs/plasmic-basic-components",props:{src:{type:"string",defaultValue:"https://www.example.com"},preview:{type:"boolean",description:"Load the iframe while editing in Plasmic Studio"}},defaultStyles:{width:"300px",height:"150px",maxWidth:"100%"}};function R(e){var t=e.ref,r=e.scrollDownThreshold,n=void 0===r?.5:r,a=e.scrollUpThreshold,i=void 0===a?0:a,s=o.useState(!1),l=s[0],c=s[1];return o.useEffect((function(){if(t.current&&"function"==typeof IntersectionObserver){var e=new IntersectionObserver((function(e){e[0].intersectionRatio>=n?c(!0):e[0].intersectionRatio<=i&&c(!1)}),{root:null,rootMargin:"0%",threshold:[i,n]});return e.observe(t.current),function(){c(!1),e.disconnect()}}return function(){}}),[t.current,n,i]),l}function j(e){var t=e.children,r=e.className,a=e.scrollDownThreshold,i=void 0===a?.5:a,s=e.scrollUpThreshold,l=void 0===s?0:s,c=o.useRef(null),p=R({ref:c,scrollUpThreshold:l,scrollDownThreshold:i});return n.createElement("div",{className:r,ref:c},p?t:null)}var H={name:"hostless-scroll-revealer",importName:"ScrollRevealer",displayName:"Scroll Revealer",importPath:"@plasmicpkgs/plasmic-basic-components",props:{children:"slot",scrollDownThreshold:{type:"number",displayName:"Scroll down threshold",defaultValueHint:.5,description:"How much of the element (as a fraction) must you scroll into view for it to appear (defaults to 0.5)"},scrollUpThreshold:{type:"number",displayName:"Scroll up threshold",defaultValueHint:0,description:"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)"}},defaultStyles:{width:"stretch",maxWidth:"100%"}},O=n.forwardRef((function(e,t){return n.createElement("video",Object.assign({ref:t},e))})),A={name:"hostless-html-video",importName:"Video",displayName:"HTML Video",importPath:"@plasmicpkgs/plasmic-basic-components",props:{src:{type:"string",defaultValue:"https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm",displayName:"Source URL",description:"URL to a video file."},autoPlay:{type:"boolean",displayName:"Auto Play",description:"Whether the video show automatically start playing when the player loads"},controls:{type:"boolean",displayName:"Show Controls",description:"Whether the video player controls should be displayed"},playsInline:{type:"boolean",displayName:"Plays inline",description:"Usually on mobile, when tilted landscape, videos can play fullscreen. Turn this on to prevent that."},loop:{type:"boolean",displayName:"Loop",description:"Whether the video should be played again after it finishes"},muted:{type:"boolean",displayName:"Muted",description:"Whether audio should be muted"},poster:{type:"imageUrl",displayName:"Poster (placeholder) image",description:"Image to show while video is downloading"},preload:{type:"choice",options:["none","metadata","auto"],displayName:"Preload",description:"Whether to preload nothing, metadata only, or the full video"}},defaultStyles:{height:"hug",width:"640px",maxWidth:"100%"}};function L(e){return n.createElement("style",{dangerouslySetInnerHTML:{__html:e.css}})}var k={name:"hostless-embed-css",displayName:"Embed Css",importName:"EmbedCss",importPath:"@plasmicpkgs/plasmic-basic-components",props:{css:{type:"code",lang:"css",defaultValueHint:"/* CSS snippet */",description:"CSS rules to be inserted"}}};exports.DataContext=c,exports.DataProvider=f,exports.DynamicElement=y,exports.DynamicImage=g,exports.DynamicRepeater=b,exports.DynamicText=v,exports.Embed=D,exports.EmbedCss=L,exports.Iframe=M,exports.ScrollRevealer=j,exports.Video=O,exports.applySelector=m,exports.dataProviderMeta=N,exports.dynamicElementMeta=T,exports.dynamicImageMeta=C,exports.dynamicRepeaterMeta=w,exports.dynamicRepeaterProps=x,exports.dynamicTextMeta=P,exports.embedCssMeta=k,exports.embedMeta=I,exports.iframeMeta=V,exports.registerDataProvider=function(e,t){e?e.registerComponent(f,null!=t?t:N):r(f,null!=t?t:N)},exports.registerDynamicElement=function(e,t){e?e.registerComponent(y,null!=t?t:T):r(y,null!=t?t:T)},exports.registerDynamicImage=function(e,t){e?e.registerComponent(g,null!=t?t:C):r(g,null!=t?t:C)},exports.registerDynamicRepeater=function(e,t){e?e.registerComponent(b,null!=t?t:w):r(b,null!=t?t:w)},exports.registerDynamicText=function(e,t){e?e.registerComponent(v,null!=t?t:P):r(v,null!=t?t:P)},exports.registerEmbed=function(e,t){e?e.registerComponent(D,null!=t?t:I):r(D,null!=t?t:I)},exports.registerEmbedCss=function(e,t){e?e.registerComponent(L,null!=t?t:k):r(L,null!=t?t:k)},exports.registerIframe=function(e,t){e?e.registerComponent(M,null!=t?t:V):r(M,null!=t?t:V)},exports.registerScrollRevealer=function(e,t){e?e.registerComponent(j,null!=t?t:H):r(j,null!=t?t:H)},exports.registerVideo=function(e,t){e?e.registerComponent(O,null!=t?t:A):r(O,null!=t?t:A)},exports.scrollRevealerMeta=H,exports.useDataEnv=h,exports.useDirectionalIntersection=R,exports.useSelector=d,exports.useSelectors=u,exports.videoMeta=A;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/host"),r=e(require("@plasmicapp/host/registerComponent")),o=require("react"),a=e(o);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)t.indexOf(r=s[o])>=0||(a[r]=e[r]);return a}var i="@plasmicpkgs/plasmic-basic-components";function l(e){var r=e.tag,a=void 0===r?"div":r,i=e.className,l=e.children,p=e.propSelectors,c=n(e,["tag","className","children","propSelectors"]),m=t.useSelectors(p);return o.createElement(a,s({children:l},c,m,{className:i+" "+m.className}))}function p(e){var t=e.selector,r=e.propSelectors,o=n(e,["selector","propSelectors"]);return a.createElement(l,Object.assign({},o,{propSelectors:s({},r,{children:t})}),"(DynamicText requires a selector)")}function c(e){var t=e.selector,r=e.propSelectors,o=n(e,["selector","propSelectors"]);return a.createElement(l,Object.assign({tag:"img",loading:"lazy",style:{objectFit:"cover"}},o,{propSelectors:s({},r,{src:t}),src:"https://studio.plasmic.app/static/img/placeholder.png"}))}function m(e){var r,o=e.children,s=e.loopItemName,n=e.keySelector,i=e.data,l=null!=(r=null!=i?i:t.useSelector(e.selector))?r:[1,2,3];return a.createElement(a.Fragment,null,null==l||null==l.map?void 0:l.map((function(e,r){var i;return a.createElement(t.DataProvider,{key:null!=(i=t.applySelector(e,n))?i:r,name:s,data:e},t.repeatedElement(0===r,o))})))}var d={selector:{type:"string",description:"The selector expression to use to get the array of data to loop over, such as: someVariable.0.someField"},loopItemName:{type:"string",defaultValue:"item",description:"The name of the variable to use to store the current item in the loop"},children:"slot"},u={name:"hostless-dynamic-repeater",displayName:"Dynamic Repeater",importName:"DynamicRepeater",importPath:i,props:d},h={name:"hostless-data-provider",displayName:"Data Provider",importName:"DataProvider",importPath:i,props:{name:{type:"string",defaultValue:"celebrities",description:"The name of the variable to store the data in"},data:{type:"object",defaultValue:[{name:"Fill Murray",birthYear:1950,profilePicture:["https://www.fillmurray.com/200/300"]},{name:"Place Cage",birthYear:1950,profilePicture:["https://www.placecage.com/200/300"]}]},children:{type:"slot",defaultValue:[{type:"component",name:"hostless-dynamic-text",props:{selector:"celebrities.0.name"}},{type:"component",name:"hostless-dynamic-image",props:{selector:"celebrities.0.profilePicture"}}]}}},y={propSelectors:{type:"object",defaultValueHint:{},description:"An object whose keys are prop names and values are selector expressions. Use this to set any prop to a dynamic value."}},f=s({},y,{tag:{type:"string",defaultValueHint:"div",description:"The HTML tag to use"}}),v={name:"hostless-dynamic-element",displayName:"Dynamic Element",importName:"DynamicElement",importPath:i,props:s({},f,{children:"slot"})},g={name:"hostless-dynamic-text",importName:"DynamicText",displayName:"Dynamic Text",importPath:i,props:s({},f,{selector:{type:"string",description:"The selector expression to use to get the text, such as: someVariable.0.someField"}})},b={name:"hostless-dynamic-image",displayName:"Dynamic Image",importName:"DynamicImage",importPath:i,props:s({},y,{selector:{type:"string",description:"The selector expression to use to get the image source URL, such as: someVariable.0.someField"}})};function x(e){if(null==e)throw new Error("Value must not be undefined or null");return e}function E(e){var t=e.className,r=e.code,s=e.hideInEditor,n=void 0!==s&&s,i=o.useRef(null);return o.useEffect((function(){n||Array.from(x(i.current).querySelectorAll("script")).forEach((function(e){var t=document.createElement("script");Array.from(e.attributes).forEach((function(e){return t.setAttribute(e.name,e.value)})),t.appendChild(document.createTextNode(e.innerHTML)),x(e.parentNode).replaceChild(t,e)}))}),[r,n]),a.createElement("div",{ref:i,className:t,dangerouslySetInnerHTML:{__html:n?"":r}})}var w={name:"hostless-embed",displayName:"Embed HTML",importName:"Embed",importPath:"@plasmicpkgs/plasmic-basic-components",props:{code:{type:"code",lang:"html",defaultValueHint:"\x3c!-- HTML snippet --\x3e",description:"The HTML code to be embedded"},hideInEditor:{type:"boolean",displayName:"Hide in editor",description:"Disable running the code while editing in Plasmic Studio (may require reload)",editOnly:!0}},defaultStyles:{maxWidth:"100%"}};function N(e){var r=e.preview,s=e.src,n=e.className;return o.useContext(t.PlasmicCanvasContext)&&!r?a.createElement("div",{className:n},a.createElement("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,background:"#eee",color:"#888",fontSize:"36px",fontFamily:"sans-serif",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"}},"Iframe placeholder")):a.createElement("iframe",{src:s,className:n})}var D={name:"hostless-iframe",displayName:"Iframe",importName:"Iframe",importPath:"@plasmicpkgs/plasmic-basic-components",props:{src:{type:"string",defaultValue:"https://www.example.com"},preview:{type:"boolean",description:"Load the iframe while editing in Plasmic Studio"}},defaultStyles:{width:"300px",height:"150px",maxWidth:"100%"}};function S(e){var t=e.ref,r=e.scrollDownThreshold,a=void 0===r?.5:r,s=e.scrollUpThreshold,n=void 0===s?0:s,i=o.useState(!1),l=i[0],p=i[1];return o.useEffect((function(){if(t.current&&"function"==typeof IntersectionObserver){var e=new IntersectionObserver((function(e){e[0].intersectionRatio>=a?p(!0):e[0].intersectionRatio<=n&&p(!1)}),{root:null,rootMargin:"0%",threshold:[n,a]});return e.observe(t.current),function(){p(!1),e.disconnect()}}return function(){}}),[t.current,a,n]),l}function P(e){var t=e.children,r=e.className,s=e.scrollDownThreshold,n=void 0===s?.5:s,i=e.scrollUpThreshold,l=void 0===i?0:i,p=o.useRef(null),c=S({ref:p,scrollUpThreshold:l,scrollDownThreshold:n});return a.createElement("div",{className:r,ref:p},c?t:null)}var T={name:"hostless-scroll-revealer",importName:"ScrollRevealer",displayName:"Scroll Revealer",importPath:"@plasmicpkgs/plasmic-basic-components",props:{children:"slot",scrollDownThreshold:{type:"number",displayName:"Scroll down threshold",defaultValueHint:.5,description:"How much of the element (as a fraction) must you scroll into view for it to appear (defaults to 0.5)"},scrollUpThreshold:{type:"number",displayName:"Scroll up threshold",defaultValueHint:0,description:"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)"}},defaultStyles:{width:"stretch",maxWidth:"100%"}},C=a.forwardRef((function(e,t){return a.createElement("video",Object.assign({ref:t},e))})),I={name:"hostless-html-video",importName:"Video",displayName:"HTML Video",importPath:"@plasmicpkgs/plasmic-basic-components",props:{src:{type:"string",defaultValue:"https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm",displayName:"Source URL",description:"URL to a video file."},autoPlay:{type:"boolean",displayName:"Auto Play",description:"Whether the video show automatically start playing when the player loads"},controls:{type:"boolean",displayName:"Show Controls",description:"Whether the video player controls should be displayed"},playsInline:{type:"boolean",displayName:"Plays inline",description:"Usually on mobile, when tilted landscape, videos can play fullscreen. Turn this on to prevent that."},loop:{type:"boolean",displayName:"Loop",description:"Whether the video should be played again after it finishes"},muted:{type:"boolean",displayName:"Muted",description:"Whether audio should be muted"},poster:{type:"imageUrl",displayName:"Poster (placeholder) image",description:"Image to show while video is downloading"},preload:{type:"choice",options:["none","metadata","auto"],displayName:"Preload",description:"Whether to preload nothing, metadata only, or the full video"}},defaultStyles:{height:"hug",width:"640px",maxWidth:"100%"}};function R(e){return a.createElement("style",{dangerouslySetInnerHTML:{__html:e.css}})}var M={name:"hostless-embed-css",displayName:"Embed Css",importName:"EmbedCss",importPath:"@plasmicpkgs/plasmic-basic-components",props:{css:{type:"code",lang:"css",defaultValueHint:"/* CSS snippet */",description:"CSS rules to be inserted"}}};exports.DataProvider=function(){return console.warn("DEPRECATED: Import DataProvider from @plasmicapp/host instead."),t.DataProvider.apply(void 0,arguments)},exports.DynamicElement=l,exports.DynamicImage=c,exports.DynamicRepeater=m,exports.DynamicText=p,exports.Embed=E,exports.EmbedCss=R,exports.Iframe=N,exports.ScrollRevealer=P,exports.Video=C,exports.applySelector=function(){return console.warn("DEPRECATED: Import applySelector from @plasmicapp/host instead."),t.applySelector.apply(void 0,arguments)},exports.dataProviderMeta=h,exports.dynamicElementMeta=v,exports.dynamicImageMeta=b,exports.dynamicRepeaterMeta=u,exports.dynamicRepeaterProps=d,exports.dynamicTextMeta=g,exports.embedCssMeta=M,exports.embedMeta=w,exports.iframeMeta=D,exports.registerDataProvider=function(e,o){e?e.registerComponent(t.DataProvider,null!=o?o:h):r(t.DataProvider,null!=o?o:h)},exports.registerDynamicElement=function(e,t){e?e.registerComponent(l,null!=t?t:v):r(l,null!=t?t:v)},exports.registerDynamicImage=function(e,t){e?e.registerComponent(c,null!=t?t:b):r(c,null!=t?t:b)},exports.registerDynamicRepeater=function(e,t){e?e.registerComponent(m,null!=t?t:u):r(m,null!=t?t:u)},exports.registerDynamicText=function(e,t){e?e.registerComponent(p,null!=t?t:g):r(p,null!=t?t:g)},exports.registerEmbed=function(e,t){e?e.registerComponent(E,null!=t?t:w):r(E,null!=t?t:w)},exports.registerEmbedCss=function(e,t){e?e.registerComponent(R,null!=t?t:M):r(R,null!=t?t:M)},exports.registerIframe=function(e,t){e?e.registerComponent(N,null!=t?t:D):r(N,null!=t?t:D)},exports.registerScrollRevealer=function(e,t){e?e.registerComponent(P,null!=t?t:T):r(P,null!=t?t:T)},exports.registerVideo=function(e,t){e?e.registerComponent(C,null!=t?t:I):r(C,null!=t?t:I)},exports.scrollRevealerMeta=T,exports.useDataEnv=function(){return console.warn("DEPRECATED: Import useDataEnv from @plasmicapp/host instead."),t.useDataEnv.apply(void 0,arguments)},exports.useDirectionalIntersection=S,exports.useSelector=function(){return console.warn("DEPRECATED: Import useSelector from @plasmicapp/host instead."),t.useSelector.apply(void 0,arguments)},exports.useSelectors=function(){return console.warn("DEPRECATED: Import useSelectors from @plasmicapp/host instead."),t.useSelectors.apply(void 0,arguments)},exports.videoMeta=I;
|
|
2
2
|
//# sourceMappingURL=plasmic-basic-components.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-basic-components.cjs.production.min.js","sources":["../src/common.ts","../src/Data.tsx","../src/Embed.tsx","../src/Iframe.tsx","../src/ScrollRevealer.tsx","../src/Video.tsx","../src/EmbedCss.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 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":["ensure","x","Error","DataContext","createContext","undefined","thisModule","applySelector","rawData","selector","curData","split","_curData","useSelector","useDataEnv","useSelectors","selectors","Object","fromEntries","entries","filter","map","args","tuple","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","key","repeatedElement","dynamicRepeaterProps","type","description","defaultValue","dynamicRepeaterMeta","displayName","importName","importPath","dataProviderMeta","birthYear","profilePicture","dynamicPropsWithoutTag","defaultValueHint","dynamicProps","dynamicElementMeta","dynamicTextMeta","dynamicImageMeta","Embed","code","hideInEditor","rootElt","useRef","useEffect","Array","from","current","querySelectorAll","forEach","oldScript","newScript","document","attributes","attr","setAttribute","appendChild","createTextNode","innerHTML","parentNode","replaceChild","ref","dangerouslySetInnerHTML","__html","embedMeta","lang","editOnly","defaultStyles","maxWidth","Iframe","preview","PlasmicCanvasContext","position","top","left","right","bottom","background","color","fontSize","fontFamily","fontWeight","display","alignItems","justifyContent","overflow","iframeMeta","width","height","useDirectionalIntersection","scrollDownThreshold","scrollUpThreshold","useState","revealed","setRevealed","IntersectionObserver","observer","intersectionRatio","root","rootMargin","threshold","observe","disconnect","ScrollRevealer","intersectionRef","scrollRevealerMeta","Video","forwardRef","videoMeta","autoPlay","controls","playsInline","loop","muted","poster","preload","options","EmbedCss","css","embedCssMeta","loader","customDataProviderMeta","registerComponent","customDynamicElementMeta","customDynamicImageMeta","customDynamicRepeaterMeta","customDynamicTextMeta","customEmbedMeta","customEmbedCssMeta","customIframeMeta","customScrollRevealerMeta","customVideoMeta"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-basic-components.cjs.production.min.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","DynamicElement","tag","className","children","propSelectors","props","computed","_useSelectors","createElement","DynamicText","selector","React","DynamicImage","loading","style","objectFit","src","DynamicRepeater","loopItemName","keySelector","data","finalData","_useSelector","map","item","index","_DataProvider","key","_applySelector","name","repeatedElement","dynamicRepeaterProps","type","description","defaultValue","dynamicRepeaterMeta","displayName","importName","importPath","dataProviderMeta","birthYear","profilePicture","dynamicPropsWithoutTag","defaultValueHint","dynamicProps","dynamicElementMeta","dynamicTextMeta","dynamicImageMeta","ensure","x","Error","Embed","code","hideInEditor","rootElt","useRef","useEffect","Array","from","current","querySelectorAll","forEach","oldScript","newScript","document","attributes","attr","setAttribute","value","appendChild","createTextNode","innerHTML","parentNode","replaceChild","ref","dangerouslySetInnerHTML","__html","embedMeta","lang","editOnly","defaultStyles","maxWidth","Iframe","preview","useContext","PlasmicCanvasContext","position","top","left","right","bottom","background","color","fontSize","fontFamily","fontWeight","display","alignItems","justifyContent","overflow","iframeMeta","width","height","useDirectionalIntersection","scrollDownThreshold","scrollUpThreshold","useState","revealed","setRevealed","IntersectionObserver","observer","entries","intersectionRatio","root","rootMargin","threshold","observe","disconnect","ScrollRevealer","intersectionRef","scrollRevealerMeta","Video","forwardRef","videoMeta","autoPlay","controls","playsInline","loop","muted","poster","preload","options","EmbedCss","css","embedCssMeta","console","warn","loader","customDataProviderMeta","registerComponent","customDynamicElementMeta","customDynamicImageMeta","customDynamicRepeaterMeta","customDynamicTextMeta","customEmbedMeta","customEmbedCssMeta","customIframeMeta","customScrollRevealerMeta","customVideoMeta","_useDataEnv"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { repeatedElement, PlasmicCanvasContext } from '@plasmicapp/host';
|
|
1
|
+
import { applySelector as applySelector$1, useSelector as useSelector$1, useSelectors as useSelectors$1, useDataEnv as useDataEnv$1, DataProvider as DataProvider$1, repeatedElement, PlasmicCanvasContext } from '@plasmicapp/host';
|
|
2
2
|
import registerComponent from '@plasmicapp/host/registerComponent';
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { createElement, useRef, useEffect, useContext, useState } from 'react';
|
|
4
4
|
|
|
5
5
|
function _extends() {
|
|
6
6
|
_extends = Object.assign || function (target) {
|
|
@@ -35,138 +35,67 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
35
35
|
return target;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
39
|
-
if (!o) return;
|
|
40
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
41
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
42
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
43
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
|
44
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function _arrayLikeToArray(arr, len) {
|
|
48
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
49
|
-
|
|
50
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
51
|
-
|
|
52
|
-
return arr2;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
56
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
57
|
-
if (it) return (it = it.call(o)).next.bind(it);
|
|
58
|
-
|
|
59
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
60
|
-
if (it) o = it;
|
|
61
|
-
var i = 0;
|
|
62
|
-
return function () {
|
|
63
|
-
if (i >= o.length) return {
|
|
64
|
-
done: true
|
|
65
|
-
};
|
|
66
|
-
return {
|
|
67
|
-
done: false,
|
|
68
|
-
value: o[i++]
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
var tuple = function tuple() {
|
|
77
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
78
|
-
args[_key] = arguments[_key];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return args;
|
|
82
|
-
};
|
|
83
|
-
function ensure(x) {
|
|
84
|
-
if (x === null || x === undefined) {
|
|
85
|
-
debugger;
|
|
86
|
-
throw new Error("Value must not be undefined or null");
|
|
87
|
-
} else {
|
|
88
|
-
return x;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
var DataContext = /*#__PURE__*/createContext(undefined);
|
|
93
38
|
var thisModule = "@plasmicpkgs/plasmic-basic-components";
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
var curData = rawData;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
41
|
+
*/
|
|
100
42
|
|
|
101
|
-
|
|
102
|
-
|
|
43
|
+
var applySelector = function applySelector() {
|
|
44
|
+
console.warn("DEPRECATED: Import applySelector from @plasmicapp/host instead.");
|
|
45
|
+
return applySelector$1.apply(void 0, arguments);
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
49
|
+
*/
|
|
103
50
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
51
|
+
var useSelector = function useSelector() {
|
|
52
|
+
console.warn("DEPRECATED: Import useSelector from @plasmicapp/host instead.");
|
|
53
|
+
return useSelector$1.apply(void 0, arguments);
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
57
|
+
*/
|
|
107
58
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (selectors === void 0) {
|
|
116
|
-
selectors = {};
|
|
117
|
-
}
|
|
59
|
+
var useSelectors = function useSelectors() {
|
|
60
|
+
console.warn("DEPRECATED: Import useSelectors from @plasmicapp/host instead.");
|
|
61
|
+
return useSelectors$1.apply(void 0, arguments);
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
65
|
+
*/
|
|
118
66
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
selector = _ref2[1];
|
|
127
|
-
return tuple(key, applySelector(rawData, selector));
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
|
-
function useDataEnv() {
|
|
131
|
-
return useContext(DataContext);
|
|
132
|
-
}
|
|
133
|
-
function DataProvider(_ref3) {
|
|
134
|
-
var _useDataEnv;
|
|
67
|
+
var useDataEnv = function useDataEnv() {
|
|
68
|
+
console.warn("DEPRECATED: Import useDataEnv from @plasmicapp/host instead.");
|
|
69
|
+
return useDataEnv$1.apply(void 0, arguments);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* @deprecated This should be imported from @plasmicapp/host instead.
|
|
73
|
+
*/
|
|
135
74
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
75
|
+
var DataProvider = function DataProvider() {
|
|
76
|
+
console.warn("DEPRECATED: Import DataProvider from @plasmicapp/host instead.");
|
|
77
|
+
return DataProvider$1.apply(void 0, arguments);
|
|
78
|
+
};
|
|
79
|
+
function DynamicElement(_ref) {
|
|
80
|
+
var _ref$tag = _ref.tag,
|
|
81
|
+
tag = _ref$tag === void 0 ? "div" : _ref$tag,
|
|
82
|
+
className = _ref.className,
|
|
83
|
+
children = _ref.children,
|
|
84
|
+
propSelectors = _ref.propSelectors,
|
|
85
|
+
props = _objectWithoutPropertiesLoose(_ref, ["tag", "className", "children", "propSelectors"]);
|
|
140
86
|
|
|
141
|
-
|
|
142
|
-
return React.createElement(React.Fragment, null, children);
|
|
143
|
-
} else {
|
|
144
|
-
var _extends2;
|
|
87
|
+
var computed = useSelectors$1(propSelectors);
|
|
145
88
|
|
|
146
|
-
return React.createElement(DataContext.Provider, {
|
|
147
|
-
value: _extends({}, existingEnv, (_extends2 = {}, _extends2[name] = data, _extends2))
|
|
148
|
-
}, children);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
function DynamicElement(_ref4) {
|
|
152
|
-
var _ref4$tag = _ref4.tag,
|
|
153
|
-
tag = _ref4$tag === void 0 ? "div" : _ref4$tag,
|
|
154
|
-
className = _ref4.className,
|
|
155
|
-
children = _ref4.children,
|
|
156
|
-
propSelectors = _ref4.propSelectors,
|
|
157
|
-
props = _objectWithoutPropertiesLoose(_ref4, ["tag", "className", "children", "propSelectors"]);
|
|
158
|
-
|
|
159
|
-
var computed = useSelectors(propSelectors);
|
|
160
89
|
return createElement(tag, _extends({
|
|
161
90
|
children: children
|
|
162
91
|
}, props, computed, {
|
|
163
92
|
className: className + " " + computed.className
|
|
164
93
|
}));
|
|
165
94
|
}
|
|
166
|
-
function DynamicText(
|
|
167
|
-
var selector =
|
|
168
|
-
propSelectors =
|
|
169
|
-
props = _objectWithoutPropertiesLoose(
|
|
95
|
+
function DynamicText(_ref2) {
|
|
96
|
+
var selector = _ref2.selector,
|
|
97
|
+
propSelectors = _ref2.propSelectors,
|
|
98
|
+
props = _objectWithoutPropertiesLoose(_ref2, ["selector", "propSelectors"]);
|
|
170
99
|
|
|
171
100
|
return React.createElement(DynamicElement, Object.assign({}, props, {
|
|
172
101
|
propSelectors: _extends({}, propSelectors, {
|
|
@@ -174,10 +103,10 @@ function DynamicText(_ref5) {
|
|
|
174
103
|
})
|
|
175
104
|
}), "(DynamicText requires a selector)");
|
|
176
105
|
}
|
|
177
|
-
function DynamicImage(
|
|
178
|
-
var selector =
|
|
179
|
-
propSelectors =
|
|
180
|
-
props = _objectWithoutPropertiesLoose(
|
|
106
|
+
function DynamicImage(_ref3) {
|
|
107
|
+
var selector = _ref3.selector,
|
|
108
|
+
propSelectors = _ref3.propSelectors,
|
|
109
|
+
props = _objectWithoutPropertiesLoose(_ref3, ["selector", "propSelectors"]);
|
|
181
110
|
|
|
182
111
|
return React.createElement(DynamicElement, Object.assign({
|
|
183
112
|
tag: "img",
|
|
@@ -193,21 +122,21 @@ function DynamicImage(_ref6) {
|
|
|
193
122
|
src: "https://studio.plasmic.app/static/img/placeholder.png"
|
|
194
123
|
}));
|
|
195
124
|
}
|
|
196
|
-
function DynamicRepeater(
|
|
197
|
-
var
|
|
198
|
-
|
|
199
|
-
var children =
|
|
200
|
-
loopItemName =
|
|
201
|
-
keySelector =
|
|
202
|
-
selector =
|
|
203
|
-
data =
|
|
125
|
+
function DynamicRepeater(_ref4) {
|
|
126
|
+
var _ref5;
|
|
127
|
+
|
|
128
|
+
var children = _ref4.children,
|
|
129
|
+
loopItemName = _ref4.loopItemName,
|
|
130
|
+
keySelector = _ref4.keySelector,
|
|
131
|
+
selector = _ref4.selector,
|
|
132
|
+
data = _ref4.data;
|
|
204
133
|
// Defaults to an array of three items.
|
|
205
|
-
var finalData = (
|
|
134
|
+
var finalData = (_ref5 = data != null ? data : useSelector$1(selector)) != null ? _ref5 : [1, 2, 3];
|
|
206
135
|
return React.createElement(React.Fragment, null, finalData == null ? void 0 : finalData.map == null ? void 0 : finalData.map(function (item, index) {
|
|
207
|
-
var
|
|
136
|
+
var _applySelector2;
|
|
208
137
|
|
|
209
|
-
return React.createElement(DataProvider, {
|
|
210
|
-
key: (
|
|
138
|
+
return React.createElement(DataProvider$1, {
|
|
139
|
+
key: (_applySelector2 = applySelector$1(item, keySelector)) != null ? _applySelector2 : index,
|
|
211
140
|
name: loopItemName,
|
|
212
141
|
data: item
|
|
213
142
|
}, repeatedElement(index === 0, children));
|
|
@@ -283,9 +212,9 @@ var dataProviderMeta = {
|
|
|
283
212
|
};
|
|
284
213
|
function registerDataProvider(loader, customDataProviderMeta) {
|
|
285
214
|
if (loader) {
|
|
286
|
-
loader.registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
215
|
+
loader.registerComponent(DataProvider$1, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
287
216
|
} else {
|
|
288
|
-
registerComponent(DataProvider, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
217
|
+
registerComponent(DataProvider$1, customDataProviderMeta != null ? customDataProviderMeta : dataProviderMeta);
|
|
289
218
|
}
|
|
290
219
|
}
|
|
291
220
|
var dynamicPropsWithoutTag = {
|
|
@@ -360,6 +289,15 @@ function registerDynamicImage(loader, customDynamicImageMeta) {
|
|
|
360
289
|
}
|
|
361
290
|
}
|
|
362
291
|
|
|
292
|
+
function ensure(x) {
|
|
293
|
+
if (x === null || x === undefined) {
|
|
294
|
+
debugger;
|
|
295
|
+
throw new Error("Value must not be undefined or null");
|
|
296
|
+
} else {
|
|
297
|
+
return x;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
363
301
|
function Embed(_ref) {
|
|
364
302
|
var className = _ref.className,
|
|
365
303
|
code = _ref.code,
|
|
@@ -678,5 +616,5 @@ function registerEmbedCss(loader, customEmbedCssMeta) {
|
|
|
678
616
|
}
|
|
679
617
|
}
|
|
680
618
|
|
|
681
|
-
export {
|
|
619
|
+
export { DataProvider, DynamicElement, DynamicImage, DynamicRepeater, DynamicText, Embed, EmbedCss, Iframe, ScrollRevealer, Video, applySelector, dataProviderMeta, dynamicElementMeta, dynamicImageMeta, dynamicRepeaterMeta, dynamicRepeaterProps, dynamicTextMeta, embedCssMeta, embedMeta, iframeMeta, registerDataProvider, registerDynamicElement, registerDynamicImage, registerDynamicRepeater, registerDynamicText, registerEmbed, registerEmbedCss, registerIframe, registerScrollRevealer, registerVideo, scrollRevealerMeta, useDataEnv, useDirectionalIntersection, useSelector, useSelectors, videoMeta };
|
|
682
620
|
//# sourceMappingURL=plasmic-basic-components.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-basic-components.esm.js","sources":["../src/common.ts","../src/Data.tsx","../src/Embed.tsx","../src/Iframe.tsx","../src/ScrollRevealer.tsx","../src/Video.tsx","../src/EmbedCss.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 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":["tuple","args","ensure","x","undefined","Error","DataContext","createContext","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","Embed","code","hideInEditor","rootElt","useRef","useEffect","Array","from","current","querySelectorAll","forEach","oldScript","newScript","document","attributes","attr","setAttribute","appendChild","createTextNode","innerHTML","parentNode","replaceChild","effectiveCode","ref","dangerouslySetInnerHTML","__html","embedMeta","lang","editOnly","defaultStyles","maxWidth","registerEmbed","customEmbedMeta","Iframe","preview","isEditing","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","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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"}
|
|
1
|
+
{"version":3,"file":"plasmic-basic-components.esm.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,UAAU,GAAG,uCAAnB;AAEA;;;;IAGaC,aAAa,GAA0B,SAAvCA,aAAuC;AAClDC,EAAAA,OAAO,CAACC,IAAR,CACE,iEADF;AAGA,SAAOC,eAAc,MAAd,mBAAP;AACD;AAED;;;;IAGaC,WAAW,GAAwB,SAAnCA,WAAmC;AAC9CH,EAAAA,OAAO,CAACC,IAAR,CAAa,+DAAb;AACA,SAAOG,aAAY,MAAZ,mBAAP;AACD;AAED;;;;IAGaC,YAAY,GAAyB,SAArCA,YAAqC;AAChDL,EAAAA,OAAO,CAACC,IAAR,CACE,gEADF;AAGA,SAAOK,cAAa,MAAb,mBAAP;AACD;AAED;;;;IAGaC,UAAU,GAAuB,SAAjCA,UAAiC;AAC5CP,EAAAA,OAAO,CAACC,IAAR,CAAa,8DAAb;AACA,SAAOO,YAAW,MAAX,mBAAP;AACD;AAED;;;;IAGaC,YAAY,GAAyB,SAArCA,YAAqC;AAChDT,EAAAA,OAAO,CAACC,IAAR,CACE,gEADF;AAGA,SAAOS,cAAa,MAAb,mBAAP;AACD;SAQeC;sBAGdC;MAAAA,4BAAM;MACNC,iBAAAA;MACAC,gBAAAA;MACAC,qBAAAA;MACGC;;AAEH,MAAMC,QAAQ,GAAGX,cAAa,CAACS,aAAD,CAA9B;;AACA,SAAOG,aAAa,CAACN,GAAD;AAClBE,IAAAA,QAAQ,EAARA;AADkB,KAEfE,KAFe,EAGfC,QAHe;AAIlBJ,IAAAA,SAAS,EAAEA,SAAS,GAAG,GAAZ,GAAkBI,QAAQ,CAACJ;AAJpB,KAApB;AAMD;SAMeM;MACdC,iBAAAA;MACAL,sBAAAA;MACGC;;AAEH,SACEK,mBAAA,CAACV,cAAD,oBACMK;AACJD,IAAAA,aAAa,eAAOA,aAAP;AAAsBD,MAAAA,QAAQ,EAAEM;AAAhC;IAFf,qCAAA,CADF;AASD;SAQeE;MACdF,iBAAAA;MACAL,sBAAAA;MACGC;;AAEH,SACEK,mBAAA,CAACV,cAAD;AACEC,IAAAA,GAAG,EAAE;AACLW,IAAAA,OAAO,EAAE;AACTC,IAAAA,KAAK,EAAE;AACLC,MAAAA,SAAS,EAAE;AADN;KAGHT;AACJD,IAAAA,aAAa,eAAOA,aAAP;AAAsBW,MAAAA,GAAG,EAAEN;AAA3B;AACb;AACAM,IAAAA,GAAG,EAAC;IATN,CADF;AAaD;SAUeC;;;MACdb,iBAAAA;MACAc,qBAAAA;MACAC,oBAAAA;MACAT,iBAAAA;MACAU,aAAAA;AAEA;AACA,MAAMC,SAAS,YAAGD,IAAH,WAAGA,IAAH,GAAW1B,aAAY,CAACgB,QAAD,CAAvB,oBAAqC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAApD;AACA,SACEC,mBAAA,eAAA,MAAA,EACGU,SADH,oBACGA,SAAS,CAAEC,GADd,oBACGD,SAAS,CAAEC,GAAX,CAAiB,UAACC,IAAD,EAAYC,KAAZ;AAAA;;AAAA,WAChBb,mBAAA,CAACX,cAAD;AACEyB,MAAAA,GAAG,qBAAEjC,eAAc,CAAC+B,IAAD,EAAOJ,WAAP,CAAhB,8BAAuCK;AAC1CE,MAAAA,IAAI,EAAER;AACNE,MAAAA,IAAI,EAAEG;KAHR,EAKGI,eAAe,CAACH,KAAK,KAAK,CAAX,EAAcpB,QAAd,CALlB,CADgB;AAAA,GAAjB,CADH,CADF;AAaD;IAEYwB,oBAAoB,GAAG;AAClClB,EAAAA,QAAQ,EAAE;AACRmB,IAAAA,IAAI,EAAE,QADE;AAERC,IAAAA,WAAW,EACT;AAHM,GADwB;AAMlCZ,EAAAA,YAAY,EAAE;AACZW,IAAAA,IAAI,EAAE,QADM;AAEZE,IAAAA,YAAY,EAAE,MAFF;AAGZD,IAAAA,WAAW,EACT;AAJU,GANoB;AAYlC1B,EAAAA,QAAQ,EAAE;AAZwB;IAevB4B,mBAAmB,GAAwC;AACtEN,EAAAA,IAAI,EAAE,2BADgE;AAEtEO,EAAAA,WAAW,EAAE,kBAFyD;AAGtEC,EAAAA,UAAU,EAAE,iBAH0D;AAItEC,EAAAA,UAAU,EAAE/C,UAJ0D;AAKtEkB,EAAAA,KAAK,EAAEsB;AAL+D;SAQxDQ,wBACdC,QACAC;AAEA,MAAID,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACEtB,eADF,EAEEqB,yBAFF,WAEEA,yBAFF,GAE+BN,mBAF/B;AAID,GALD,MAKO;AACLO,IAAAA,iBAAiB,CACftB,eADe,EAEfqB,yBAFe,WAEfA,yBAFe,GAEcN,mBAFd,CAAjB;AAID;AACF;IAEYQ,gBAAgB,GAAqC;AAChEd,EAAAA,IAAI,EAAE,wBAD0D;AAEhEO,EAAAA,WAAW,EAAE,eAFmD;AAGhEC,EAAAA,UAAU,EAAE,cAHoD;AAIhEC,EAAAA,UAAU,EAAE/C,UAJoD;AAKhE;AACAkB,EAAAA,KAAK,EAAE;AACLoB,IAAAA,IAAI,EAAE;AACJG,MAAAA,IAAI,EAAE,QADF;AAEJE,MAAAA,YAAY,EAAE,aAFV;AAGJD,MAAAA,WAAW,EAAE;AAHT,KADD;AAMLV,IAAAA,IAAI,EAAE;AACJS,MAAAA,IAAI,EAAE,QADF;AAEJE,MAAAA,YAAY,EAAE,CACZ;AACEL,QAAAA,IAAI,EAAE,aADR;AAEEe,QAAAA,SAAS,EAAE,IAFb;AAGEC,QAAAA,cAAc,EAAE,CAAC,oCAAD;AAHlB,OADY,EAMZ;AACEhB,QAAAA,IAAI,EAAE,YADR;AAEEe,QAAAA,SAAS,EAAE,IAFb;AAGEC,QAAAA,cAAc,EAAE,CAAC,mCAAD;AAHlB,OANY;AAFV,KAND;AAqBLtC,IAAAA,QAAQ,EAAE;AACRyB,MAAAA,IAAI,EAAE,MADE;AAERE,MAAAA,YAAY,EAAE,CACZ;AACEF,QAAAA,IAAI,EAAE,WADR;AAEEH,QAAAA,IAAI,EAAE,uBAFR;AAGEpB,QAAAA,KAAK,EAAE;AACLI,UAAAA,QAAQ,EAAE;AADL;AAHT,OADY,EAQZ;AACEmB,QAAAA,IAAI,EAAE,WADR;AAEEH,QAAAA,IAAI,EAAE,wBAFR;AAGEpB,QAAAA,KAAK,EAAE;AACLI,UAAAA,QAAQ,EAAE;AADL;AAHT,OARY;AAFN;AArBL;AANyD;SAiDlDiC,qBACdN,QACAO;AAEA,MAAIP,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACEvC,cADF,EAEE4C,sBAFF,WAEEA,sBAFF,GAE4BJ,gBAF5B;AAID,GALD,MAKO;AACLD,IAAAA,iBAAiB,CACfvC,cADe,EAEf4C,sBAFe,WAEfA,sBAFe,GAEWJ,gBAFX,CAAjB;AAID;AACF;AAED,IAAMK,sBAAsB,GAAG;AAC7BxC,EAAAA,aAAa,EAAE;AACbwB,IAAAA,IAAI,EAAE,QADO;AAEbiB,IAAAA,gBAAgB,EAAE,EAFL;AAGbhB,IAAAA,WAAW,EACT;AAJW;AADc,CAA/B;;AASA,IAAMiB,YAAY,6BACbF,sBADa;AAEhB3C,EAAAA,GAAG,EAAE;AACH2B,IAAAA,IAAI,EAAE,QADH;AAEHiB,IAAAA,gBAAgB,EAAE,KAFf;AAGHhB,IAAAA,WAAW,EAAE;AAHV;AAFW,EAAlB;;;IAWakB,kBAAkB,GAAsC;AACnEtB,EAAAA,IAAI,EAAE,0BAD6D;AAEnEO,EAAAA,WAAW,EAAE,iBAFsD;AAGnEC,EAAAA,UAAU,EAAE,gBAHuD;AAInEC,EAAAA,UAAU,EAAE/C,UAJuD;AAKnEkB,EAAAA,KAAK,4BAAOyC,YAAP;AAAqB3C,IAAAA,QAAQ,EAAE;AAA/B;AAL8D;SAQrD6C,uBACdZ,QACAa;AAEA,MAAIb,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACEtC,cADF,EAEEiD,wBAFF,WAEEA,wBAFF,GAE8BF,kBAF9B;AAID,GALD,MAKO;AACLT,IAAAA,iBAAiB,CACftC,cADe,EAEfiD,wBAFe,WAEfA,wBAFe,GAEaF,kBAFb,CAAjB;AAID;AACF;IAEYG,eAAe,GAAoC;AAC9DzB,EAAAA,IAAI,EAAE,uBADwD;AAE9DQ,EAAAA,UAAU,EAAE,aAFkD;AAG9DD,EAAAA,WAAW,EAAE,cAHiD;AAI9DE,EAAAA,UAAU,EAAE/C,UAJkD;AAK9DkB,EAAAA,KAAK,4BACAyC,YADA;AAEHrC,IAAAA,QAAQ,EAAE;AACRmB,MAAAA,IAAI,EAAE,QADE;AAERC,MAAAA,WAAW,EACT;AAHM;AAFP;AALyD;SAehDsB,oBACdf,QACAgB;AAEA,MAAIhB,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACE9B,WADF,EAEE4C,qBAFF,WAEEA,qBAFF,GAE2BF,eAF3B;AAID,GALD,MAKO;AACLZ,IAAAA,iBAAiB,CAAC9B,WAAD,EAAc4C,qBAAd,WAAcA,qBAAd,GAAuCF,eAAvC,CAAjB;AACD;AACF;IAEYG,gBAAgB,GAAqC;AAChE5B,EAAAA,IAAI,EAAE,wBAD0D;AAEhEO,EAAAA,WAAW,EAAE,eAFmD;AAGhEC,EAAAA,UAAU,EAAE,cAHoD;AAIhEC,EAAAA,UAAU,EAAE/C,UAJoD;AAKhEkB,EAAAA,KAAK,4BACAuC,sBADA;AAEHnC,IAAAA,QAAQ,EAAE;AACRmB,MAAAA,IAAI,EAAE,QADE;AAERC,MAAAA,WAAW,EACT;AAHM;AAFP;AAL2D;SAelDyB,qBACdlB,QACAmB;AAEA,MAAInB,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACE3B,YADF,EAEE4C,sBAFF,WAEEA,sBAFF,GAE4BF,gBAF5B;AAID,GALD,MAKO;AACLf,IAAAA,iBAAiB,CAAC3B,YAAD,EAAe4C,sBAAf,WAAeA,sBAAf,GAAyCF,gBAAzC,CAAjB;AACD;AACF;;SCjXeG,OAAUC;AACxB,MAAIA,CAAC,KAAK,IAAN,IAAcA,CAAC,KAAKC,SAAxB,EAAmC;AACjC;AACA,UAAM,IAAIC,KAAJ,uCAAN;AACD,GAHD,MAGO;AACL,WAAOF,CAAP;AACD;AACF;;SCGuBG;MACtB1D,iBAAAA;MACA2D,YAAAA;+BACAC;MAAAA,8CAAe;AAEf,MAAMC,OAAO,GAAGC,MAAM,CAAiB,IAAjB,CAAtB;AACAC,EAAAA,SAAS,CAAC;AACR,QAAIH,YAAJ,EAAkB;AAChB;AACD;;AACDI,IAAAA,KAAK,CAACC,IAAN,CAAWX,MAAM,CAACO,OAAO,CAACK,OAAT,CAAN,CAAwBC,gBAAxB,CAAyC,QAAzC,CAAX,EAA+DC,OAA/D,CACE,UAACC,SAAD;AACE,UAAMC,SAAS,GAAGC,QAAQ,CAAClE,aAAT,CAAuB,QAAvB,CAAlB;AACA2D,MAAAA,KAAK,CAACC,IAAN,CAAWI,SAAS,CAACG,UAArB,EAAiCJ,OAAjC,CAAyC,UAACK,IAAD;AAAA,eACvCH,SAAS,CAACI,YAAV,CAAuBD,IAAI,CAAClD,IAA5B,EAAkCkD,IAAI,CAACE,KAAvC,CADuC;AAAA,OAAzC;AAGAL,MAAAA,SAAS,CAACM,WAAV,CAAsBL,QAAQ,CAACM,cAAT,CAAwBR,SAAS,CAACS,SAAlC,CAAtB;AACAxB,MAAAA,MAAM,CAACe,SAAS,CAACU,UAAX,CAAN,CAA6BC,YAA7B,CAA0CV,SAA1C,EAAqDD,SAArD;AACD,KARH;AAUD,GAdQ,EAcN,CAACV,IAAD,EAAOC,YAAP,CAdM,CAAT;AAeA,MAAMqB,aAAa,GAAGrB,YAAY,GAAG,EAAH,GAAQD,IAA1C;AACA,SACEnD,mBAAA,MAAA;AACE0E,IAAAA,GAAG,EAAErB;AACL7D,IAAAA,SAAS,EAAEA;AACXmF,IAAAA,uBAAuB,EAAE;AAAEC,MAAAA,MAAM,EAAEH;AAAV;GAH3B,CADF;AAOD;AAED,IAAaI,SAAS,GAA8B;AAClD9D,EAAAA,IAAI,EAAE,gBAD4C;AAElDO,EAAAA,WAAW,EAAE,YAFqC;AAGlDC,EAAAA,UAAU,EAAE,OAHsC;AAIlDC,EAAAA,UAAU,EAAE,uCAJsC;AAKlD7B,EAAAA,KAAK,EAAE;AACLwD,IAAAA,IAAI,EAAE;AACJjC,MAAAA,IAAI,EAAE,MADF;AAEJ4D,MAAAA,IAAI,EAAE,MAFF;AAGJ3C,MAAAA,gBAAgB,EAAE,uBAHd;AAIJhB,MAAAA,WAAW,EAAE;AAJT,KADD;AAOLiC,IAAAA,YAAY,EAAE;AACZlC,MAAAA,IAAI,EAAE,SADM;AAEZI,MAAAA,WAAW,EAAE,gBAFD;AAGZH,MAAAA,WAAW,EACT,+EAJU;AAKZ4D,MAAAA,QAAQ,EAAE;AALE;AAPT,GAL2C;AAoBlDC,EAAAA,aAAa,EAAE;AACbC,IAAAA,QAAQ,EAAE;AADG;AApBmC,CAA7C;AAyBP,SAAgBC,cACdxD,QACAyD;AAEA,MAAIzD,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CAAyBsB,KAAzB,EAAgCiC,eAAhC,WAAgCA,eAAhC,GAAmDN,SAAnD;AACD,GAFD,MAEO;AACLjD,IAAAA,iBAAiB,CAACsB,KAAD,EAAQiC,eAAR,WAAQA,eAAR,GAA2BN,SAA3B,CAAjB;AACD;AACF;;SCnEuBO;MAASC,eAAAA;MAAShF,WAAAA;MAAKb,iBAAAA;AAC7C,MAAM8F,SAAS,GAAGC,UAAU,CAACC,oBAAD,CAA5B;;AACA,MAAIF,SAAS,IAAI,CAACD,OAAlB,EAA2B;AACzB,WACErF,mBAAA,MAAA;AAAKR,MAAAA,SAAS,EAAEA;KAAhB,EACEQ,mBAAA,MAAA;AACEG,MAAAA,KAAK,EAAE;AACLsF,QAAAA,QAAQ,EAAE,UADL;AAELC,QAAAA,GAAG,EAAE,CAFA;AAGLC,QAAAA,IAAI,EAAE,CAHD;AAILC,QAAAA,KAAK,EAAE,CAJF;AAKLC,QAAAA,MAAM,EAAE,CALH;AAMLC,QAAAA,UAAU,EAAE,MANP;AAOLC,QAAAA,KAAK,EAAE,MAPF;AAQLC,QAAAA,QAAQ,EAAE,MARL;AASLC,QAAAA,UAAU,EAAE,YATP;AAULC,QAAAA,UAAU,EAAE,MAVP;AAWLC,QAAAA,OAAO,EAAE,MAXJ;AAYLC,QAAAA,UAAU,EAAE,QAZP;AAaLC,QAAAA,cAAc,EAAE,QAbX;AAcLC,QAAAA,QAAQ,EAAE;AAdL;KADT,sBAAA,CADF,CADF;AAwBD;;AACD,SAAOtG,mBAAA,SAAA;AAAQK,IAAAA,GAAG,EAAEA;AAAKb,IAAAA,SAAS,EAAEA;GAA7B,CAAP;AACD;AAED,IAAa+G,UAAU,GAA+B;AACpDxF,EAAAA,IAAI,EAAE,iBAD8C;AAEpDO,EAAAA,WAAW,EAAE,QAFuC;AAGpDC,EAAAA,UAAU,EAAE,QAHwC;AAIpDC,EAAAA,UAAU,EAAE,uCAJwC;AAKpD7B,EAAAA,KAAK,EAAE;AACLU,IAAAA,GAAG,EAAE;AACHa,MAAAA,IAAI,EAAE,QADH;AAEHE,MAAAA,YAAY,EAAE;AAFX,KADA;AAKLiE,IAAAA,OAAO,EAAE;AACPnE,MAAAA,IAAI,EAAE,SADC;AAEPC,MAAAA,WAAW,EAAE;AAFN;AALJ,GAL6C;AAepD6D,EAAAA,aAAa,EAAE;AACbwB,IAAAA,KAAK,EAAE,OADM;AAEbC,IAAAA,MAAM,EAAE,OAFK;AAGbxB,IAAAA,QAAQ,EAAE;AAHG;AAfqC,CAA/C;AAsBP,SAAgByB,eACdhF,QACAiF;AAEA,MAAIjF,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CAAyBwD,MAAzB,EAAiCuB,gBAAjC,WAAiCA,gBAAjC,GAAqDJ,UAArD;AACD,GAFD,MAEO;AACL3E,IAAAA,iBAAiB,CAACwD,MAAD,EAASuB,gBAAT,WAASA,gBAAT,GAA6BJ,UAA7B,CAAjB;AACD;AACF;;SC7DeK;MACdlC,WAAAA;mCACAmC;MAAAA,yDAAsB;mCACtBC;MAAAA,uDAAoB;;AAMpB,kBAAgCC,QAAQ,CAAC,KAAD,CAAxC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA1D,EAAAA,SAAS,CAAC;AACR,QAAImB,GAAG,CAAChB,OAAJ,IAAe,OAAOwD,oBAAP,KAAgC,UAAnD,EAA+D;AAC7D,UAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,OAAD;AACd,YAAIA,OAAO,CAAC,CAAD,CAAP,CAAWC,iBAAX,IAAgCR,mBAApC,EAAyD;AACvDI,UAAAA,WAAW,CAAC,IAAD,CAAX;AACD,SAFD,MAEO,IAAIG,OAAO,CAAC,CAAD,CAAP,CAAWC,iBAAX,IAAgCP,iBAApC,EAAuD;AAC5DG,UAAAA,WAAW,CAAC,KAAD,CAAX;AACD;AACF,OAND;;AAQA,UAAMK,QAAQ,GAAG,IAAIJ,oBAAJ,CAAyBC,OAAzB,EAAkC;AACjDI,QAAAA,IAAI,EAAE,IAD2C;AAEjDC,QAAAA,UAAU,EAAE,IAFqC;AAGjDC,QAAAA,SAAS,EAAE,CAACX,iBAAD,EAAoBD,mBAApB;AAHsC,OAAlC,CAAjB;AAKAS,MAAAA,QAAQ,CAACI,OAAT,CAAiBhD,GAAG,CAAChB,OAArB;AAEA,aAAO;AACLuD,QAAAA,WAAW,CAAC,KAAD,CAAX;AACAK,QAAAA,QAAQ,CAACK,UAAT;AACD,OAHD;AAID;;AACD,WAAO,cAAP;AACD,GAvBQ,EAuBN,CAACjD,GAAG,CAAChB,OAAL,EAAcmD,mBAAd,EAAmCC,iBAAnC,CAvBM,CAAT;AAwBA,SAAOE,QAAP;AACD;AASD;;;;;;;;;AAQA,SAAwBY;MACtBnI,iBAAAA;MACAD,kBAAAA;oCACAqH;MAAAA,yDAAsB;oCACtBC;MAAAA,uDAAoB;AAEpB,MAAMe,eAAe,GAAGvE,MAAM,CAAiB,IAAjB,CAA9B;AACA,MAAM0D,QAAQ,GAAGJ,0BAA0B,CAAC;AAC1ClC,IAAAA,GAAG,EAAEmD,eADqC;AAE1Cf,IAAAA,iBAAiB,EAAjBA,iBAF0C;AAG1CD,IAAAA,mBAAmB,EAAnBA;AAH0C,GAAD,CAA3C;AAKA,SACE7G,mBAAA,MAAA;AAAKR,IAAAA,SAAS,EAAEA;AAAWkF,IAAAA,GAAG,EAAEmD;GAAhC,EACGb,QAAQ,GAAGvH,QAAH,GAAc,IADzB,CADF;AAKD;AAED,IAAaqI,kBAAkB,GAAuC;AACpE/G,EAAAA,IAAI,EAAE,0BAD8D;AAEpEQ,EAAAA,UAAU,EAAE,gBAFwD;AAGpED,EAAAA,WAAW,EAAE,iBAHuD;AAIpEE,EAAAA,UAAU,EAAE,uCAJwD;AAKpE7B,EAAAA,KAAK,EAAE;AACLF,IAAAA,QAAQ,EAAE,MADL;AAELoH,IAAAA,mBAAmB,EAAE;AACnB3F,MAAAA,IAAI,EAAE,QADa;AAEnBI,MAAAA,WAAW,EAAE,uBAFM;AAGnBa,MAAAA,gBAAgB,EAAE,GAHC;AAInBhB,MAAAA,WAAW,EACT;AALiB,KAFhB;AASL2F,IAAAA,iBAAiB,EAAE;AACjB5F,MAAAA,IAAI,EAAE,QADW;AAEjBI,MAAAA,WAAW,EAAE,qBAFI;AAGjBa,MAAAA,gBAAgB,EAAE,CAHD;AAIjBhB,MAAAA,WAAW,EACT;AALe;AATd,GAL6D;AAsBpE6D,EAAAA,aAAa,EAAE;AACbwB,IAAAA,KAAK,EAAE,SADM;AAEbvB,IAAAA,QAAQ,EAAE;AAFG;AAtBqD,CAA/D;AA4BP,SAAgB8C,uBACdrG,QACAsG;AAEA,MAAItG,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CACEgG,cADF,EAEEI,wBAFF,WAEEA,wBAFF,GAE8BF,kBAF9B;AAID,GALD,MAKO;AACLlG,IAAAA,iBAAiB,CACfgG,cADe,EAEfI,wBAFe,WAEfA,wBAFe,GAEaF,kBAFb,CAAjB;AAID;AACF;;AC5GD,IAAMG,KAAK,gBAAGjI,KAAK,CAACkI,UAAN,CACZ,UAACvI,KAAD,EAAoB+E,GAApB;AACE,SAAO1E,mBAAA,QAAA;AAAO0E,IAAAA,GAAG,EAAEA;KAAS/E,MAArB,CAAP;AACD,CAHW,CAAd;AAMA,IAEawI,SAAS,GAA8B;AAClDpH,EAAAA,IAAI,EAAE,qBAD4C;AAElDQ,EAAAA,UAAU,EAAE,OAFsC;AAGlDD,EAAAA,WAAW,EAAE,YAHqC;AAIlDE,EAAAA,UAAU,EAAE,uCAJsC;AAKlD7B,EAAAA,KAAK,EAAE;AACLU,IAAAA,GAAG,EAAE;AACHa,MAAAA,IAAI,EAAE,QADH;AAEHE,MAAAA,YAAY,EACV,2EAHC;AAIHE,MAAAA,WAAW,EAAE,YAJV;AAKHH,MAAAA,WAAW,EAAE;AALV,KADA;AAQLiH,IAAAA,QAAQ,EAAE;AACRlH,MAAAA,IAAI,EAAE,SADE;AAERI,MAAAA,WAAW,EAAE,WAFL;AAGRH,MAAAA,WAAW,EACT;AAJM,KARL;AAcLkH,IAAAA,QAAQ,EAAE;AACRnH,MAAAA,IAAI,EAAE,SADE;AAERI,MAAAA,WAAW,EAAE,eAFL;AAGRH,MAAAA,WAAW,EAAE;AAHL,KAdL;AAmBLmH,IAAAA,WAAW,EAAE;AACXpH,MAAAA,IAAI,EAAE,SADK;AAEXI,MAAAA,WAAW,EAAE,cAFF;AAGXH,MAAAA,WAAW,EACT;AAJS,KAnBR;AAyBLoH,IAAAA,IAAI,EAAE;AACJrH,MAAAA,IAAI,EAAE,SADF;AAEJI,MAAAA,WAAW,EAAE,MAFT;AAGJH,MAAAA,WAAW,EAAE;AAHT,KAzBD;AA8BLqH,IAAAA,KAAK,EAAE;AACLtH,MAAAA,IAAI,EAAE,SADD;AAELI,MAAAA,WAAW,EAAE,OAFR;AAGLH,MAAAA,WAAW,EAAE;AAHR,KA9BF;AAmCLsH,IAAAA,MAAM,EAAE;AACNvH,MAAAA,IAAI,EAAE,UADA;AAENI,MAAAA,WAAW,EAAE,4BAFP;AAGNH,MAAAA,WAAW,EAAE;AAHP,KAnCH;AAwCLuH,IAAAA,OAAO,EAAE;AACPxH,MAAAA,IAAI,EAAE,QADC;AAEPyH,MAAAA,OAAO,EAAE,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAFF;AAGPrH,MAAAA,WAAW,EAAE,SAHN;AAIPH,MAAAA,WAAW,EACT;AALK;AAxCJ,GAL2C;AAqDlD6D,EAAAA,aAAa,EAAE;AACbyB,IAAAA,MAAM,EAAE,KADK;AAEbD,IAAAA,KAAK,EAAE,OAFM;AAGbvB,IAAAA,QAAQ,EAAE;AAHG;AArDmC,CAA7C;AA4DP,SAAgB2D,cACdlH,QACAmH;AAEA,MAAInH,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CAAyBqG,KAAzB,EAAgCY,eAAhC,WAAgCA,eAAhC,GAAmDV,SAAnD;AACD,GAFD,MAEO;AACLvG,IAAAA,iBAAiB,CAACqG,KAAD,EAAQY,eAAR,WAAQA,eAAR,GAA2BV,SAA3B,CAAjB;AACD;AACF;;SCrFuBW;MACtBC,WAAAA;AAEA,SACE/I,mBAAA,QAAA;AACE2E,IAAAA,uBAAuB,EAAE;AAAEC,MAAAA,MAAM,EAAEmE;AAAV;GAD3B,CADF;AAKD;AAED,IAAaC,YAAY,GAAiC;AACxDjI,EAAAA,IAAI,EAAE,oBADkD;AAExDO,EAAAA,WAAW,EAAE,WAF2C;AAGxDC,EAAAA,UAAU,EAAE,UAH4C;AAIxDC,EAAAA,UAAU,EAAE,uCAJ4C;AAKxD7B,EAAAA,KAAK,EAAE;AACLoJ,IAAAA,GAAG,EAAE;AACH7H,MAAAA,IAAI,EAAE,MADH;AAEH4D,MAAAA,IAAI,EAAE,KAFH;AAGH3C,MAAAA,gBAAgB,EAAE,mBAHf;AAIHhB,MAAAA,WAAW,EAAE;AAJV;AADA;AALiD,CAAnD;AAeP,SAAgB8H,iBACdvH,QACAwH;AAEA,MAAIxH,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACE,iBAAP,CAAyBkH,QAAzB,EAAmCI,kBAAnC,WAAmCA,kBAAnC,GAAyDF,YAAzD;AACD,GAFD,MAEO;AACLpH,IAAAA,iBAAiB,CAACkH,QAAD,EAAWI,kBAAX,WAAWA,kBAAX,GAAiCF,YAAjC,CAAjB;AACD;AACF;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/plasmic-basic-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "Plasmic registration call for the HTML5 video element",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"analyze": "size-limit --why"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@plasmicapp/host": "^1.0.
|
|
31
|
+
"@plasmicapp/host": "^1.0.7",
|
|
32
32
|
"@size-limit/preset-small-lib": "^4.11.0",
|
|
33
33
|
"@types/node": "^14.0.26",
|
|
34
34
|
"size-limit": "^4.11.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@plasmicapp/host": "^1.0.
|
|
41
|
+
"@plasmicapp/host": "^1.0.7",
|
|
42
42
|
"react": ">=16.8.0",
|
|
43
43
|
"react-dom": ">=16.8.0"
|
|
44
44
|
}
|