@pexelize/react-editor 1.0.4 → 2.0.0

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/index.esm.js CHANGED
@@ -1,318 +1,158 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef, useRef, useState, useEffect, useImperativeHandle } from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useRef, useEffect, useState, useCallback, useImperativeHandle } from 'react';
3
3
 
4
- // ============================================================================
5
- // SDK CDN Configuration
6
- // ============================================================================
7
- /**
8
- * Use Cloudflare CDN for SDK.
9
- * You can use https://sdk.pexelize.com/latest/pexelize-sdk.min.js directly.
10
- * No need to add a trailing slash or extra path—just use as shown.
11
- */
12
- const SDK_CDN_URL = 'https://sdk.pexelize.com/latest/pexelize-sdk.min.js';
13
- // Global SDK reference (loaded from CDN)
4
+ const SDK_CDN_URL = "https://sdk.pexelize.com/latest/pexelize-sdk.min.js";
14
5
  let sdkLoadPromise = null;
15
- /**
16
- * Load SDK from CDN (singleton pattern - loads only once)
17
- */
18
- function loadSDKFromCDN(url) {
19
- if (sdkLoadPromise && window.pexelize) {
6
+ function loadSDK() {
7
+ if (sdkLoadPromise)
20
8
  return sdkLoadPromise;
21
- }
22
- // Check if already loaded
23
- if (window.pexelize) {
24
- return Promise.resolve();
9
+ if (typeof window !== "undefined" && window.pexelize) {
10
+ return Promise.resolve(window.pexelize);
25
11
  }
26
12
  sdkLoadPromise = new Promise((resolve, reject) => {
27
- const script = document.createElement('script');
28
- script.src = url;
13
+ const script = document.createElement("script");
14
+ script.src = SDK_CDN_URL;
29
15
  script.async = true;
30
16
  script.onload = () => {
31
17
  if (window.pexelize) {
32
- console.log('[Pexelize React] SDK loaded from CDN');
33
- resolve();
18
+ resolve(window.pexelize);
34
19
  }
35
20
  else {
36
- reject(new Error('SDK loaded but pexelize global not found'));
21
+ sdkLoadPromise = null;
22
+ reject(new Error("Failed to load Pexelize SDK"));
37
23
  }
38
24
  };
39
25
  script.onerror = () => {
40
26
  sdkLoadPromise = null;
41
- reject(new Error(`Failed to load Pexelize SDK from ${url}`));
27
+ reject(new Error("Failed to load Pexelize SDK"));
42
28
  };
43
29
  document.head.appendChild(script);
44
30
  });
45
31
  return sdkLoadPromise;
46
32
  }
47
- /**
48
- * Get SDK instance from global
49
- */
50
- function getSDK() {
51
- return window.pexelize;
52
- }
53
- // ============================================================================
54
- // Component
55
- // ============================================================================
56
- /**
57
- * PexelizeEditor React Component
58
- *
59
- * @example
60
- * ```tsx
61
- * import { PexelizeEditor, PexelizeEditorRef } from '@pexelize/react-editor';
62
- *
63
- * function MyEditor() {
64
- * const editorRef = useRef<PexelizeEditorRef>(null);
65
- *
66
- * const handleSave = () => {
67
- * editorRef.current?.saveDesign((design) => {
68
- * console.log('Design:', design);
69
- * });
70
- * };
71
- *
72
- * return (
73
- * <div>
74
- * <button onClick={handleSave}>Save</button>
75
- * <PexelizeEditor
76
- * ref={editorRef}
77
- * editorMode="email"
78
- * onReady={() => console.log('Ready!')}
79
- * onChange={({ design }) => console.log('Changed:', design)}
80
- * />
81
- * </div>
82
- * );
83
- * }
84
- * ```
85
- */
86
33
  const PexelizeEditor = forwardRef((props, ref) => {
87
- const { design, mergeTags, displayConditions, className, style, height = '600px', displayMode, editorMode, onReady, onLoad, onChange, onContentModified, onSelect, onDeselect, onImage, onLinkClick, onSave, ...config } = props;
34
+ const { editorId, apiKey, templateId, design, editorMode, contentType, ai, height, options = {}, className, style, minHeight = "600px", onReady, onLoad, onChange, onError, } = props;
88
35
  const containerRef = useRef(null);
89
- const sdkRef = useRef(null);
36
+ const editorInstanceRef = useRef(null);
90
37
  const containerId = useRef(`pexelize-editor-${Math.random().toString(36).substr(2, 9)}`);
91
- const [isEditorReady, setIsEditorReady] = useState(false);
92
- const [sdkLoaded, setSdkLoaded] = useState(false);
93
- const [error, setError] = useState(null);
94
- // Load SDK from CDN
38
+ const eventUnsubscribersRef = useRef([]);
39
+ const onReadyRef = useRef(onReady);
40
+ const onLoadRef = useRef(onLoad);
41
+ const onChangeRef = useRef(onChange);
42
+ const onErrorRef = useRef(onError);
95
43
  useEffect(() => {
96
- // Use prop if provided, else default
97
- const url = props.sdkUrl || SDK_CDN_URL;
98
- loadSDKFromCDN(url)
99
- .then(() => setSdkLoaded(true))
100
- .catch((err) => setError(err.message));
101
- }, [props.sdkUrl]);
102
- // Initialize SDK once loaded
44
+ onReadyRef.current = onReady;
45
+ }, [onReady]);
103
46
  useEffect(() => {
104
- if (!sdkLoaded || !containerRef.current)
105
- return;
106
- const pexelize = getSDK();
107
- if (!pexelize) {
108
- setError('Pexelize SDK not found after loading');
109
- return;
47
+ onLoadRef.current = onLoad;
48
+ }, [onLoad]);
49
+ useEffect(() => {
50
+ onChangeRef.current = onChange;
51
+ }, [onChange]);
52
+ useEffect(() => {
53
+ onErrorRef.current = onError;
54
+ }, [onError]);
55
+ const [isEditorReady, setIsEditorReady] = useState(false);
56
+ const handleReady = useCallback(() => {
57
+ setIsEditorReady(true);
58
+ if (editorInstanceRef.current) {
59
+ onReadyRef.current?.(editorInstanceRef.current);
110
60
  }
111
- // Store SDK reference
112
- sdkRef.current = pexelize;
113
- // Initialize
114
- pexelize.init({
115
- id: containerId.current,
116
- editorMode: editorMode || displayMode || 'email',
117
- ...config,
118
- });
119
- // Clean up on unmount
120
- return () => {
121
- pexelize.destroy();
122
- sdkRef.current = null;
123
- setIsEditorReady(false);
124
- };
125
- }, [sdkLoaded]);
126
- // Handle ready event
61
+ }, []);
127
62
  useEffect(() => {
128
- const sdk = sdkRef.current;
129
- if (!sdk)
63
+ if (!containerRef.current)
130
64
  return;
131
- const handleReady = () => {
132
- setIsEditorReady(true);
133
- // Set merge tags if provided
134
- if (mergeTags) {
135
- sdk.setMergeTags(mergeTags);
136
- }
137
- // Set display conditions if provided
138
- if (displayConditions) {
139
- sdk.setDisplayConditions(displayConditions);
65
+ let mounted = true;
66
+ const initEditor = async () => {
67
+ try {
68
+ const pexelize = await loadSDK();
69
+ if (!mounted)
70
+ return;
71
+ const editorConfig = contentType === "module"
72
+ ? { ...options.editor, contentType, minRows: 1, maxRows: 1 }
73
+ : options.editor;
74
+ const config = {
75
+ containerId: containerId.current,
76
+ editorId,
77
+ apiKey,
78
+ ...options,
79
+ ...(templateId !== undefined && { templateId }),
80
+ ...(design !== undefined && { design }),
81
+ ...(editorMode !== undefined && { editorMode }),
82
+ ...(ai !== undefined && { ai }),
83
+ ...(editorConfig && { editor: editorConfig }),
84
+ };
85
+ pexelize.init(config);
86
+ editorInstanceRef.current = pexelize;
87
+ const unsubscribeReady = pexelize.addEventListener("editor:ready", handleReady);
88
+ eventUnsubscribersRef.current.push(unsubscribeReady);
89
+ const unsubscribeLoad = pexelize.addEventListener("design:loaded", () => onLoadRef.current?.());
90
+ eventUnsubscribersRef.current.push(unsubscribeLoad);
91
+ const unsubscribeChange = pexelize.addEventListener("design:updated", (data) => onChangeRef.current?.(data));
92
+ eventUnsubscribersRef.current.push(unsubscribeChange);
140
93
  }
141
- // Load initial design if provided
142
- if (design) {
143
- sdk.loadDesign(design);
94
+ catch (err) {
95
+ if (!mounted)
96
+ return;
97
+ const error = err instanceof Error ? err : new Error(String(err));
98
+ onErrorRef.current?.(error);
144
99
  }
145
- // Call onReady callback
146
- onReady?.();
147
100
  };
148
- const unsubscribe = sdk.addEventListener('editor:ready', handleReady);
149
- return unsubscribe;
150
- }, [sdkLoaded, design, mergeTags, displayConditions, onReady]);
151
- // Handle design loaded event
152
- useEffect(() => {
153
- const sdk = sdkRef.current;
154
- if (!sdk || !onLoad)
155
- return;
156
- const unsubscribe = sdk.addEventListener('design:loaded', onLoad);
157
- return unsubscribe;
158
- }, [sdkLoaded, onLoad]);
159
- // Handle design updated event
160
- useEffect(() => {
161
- const sdk = sdkRef.current;
162
- if (!sdk || !onChange)
163
- return;
164
- const unsubscribe = sdk.addEventListener('design:updated', onChange);
165
- return unsubscribe;
166
- }, [sdkLoaded, onChange]);
167
- // Handle content modified event
168
- useEffect(() => {
169
- const sdk = sdkRef.current;
170
- if (!sdk || !onContentModified)
171
- return;
172
- const unsubscribe = sdk.addEventListener('content:modified', onContentModified);
173
- return unsubscribe;
174
- }, [sdkLoaded, onContentModified]);
175
- // Handle element selected event
176
- useEffect(() => {
177
- const sdk = sdkRef.current;
178
- if (!sdk || !onSelect)
179
- return;
180
- const unsubscribe = sdk.addEventListener('element:selected', onSelect);
181
- return unsubscribe;
182
- }, [sdkLoaded, onSelect]);
183
- // Handle element deselected event
184
- useEffect(() => {
185
- const sdk = sdkRef.current;
186
- if (!sdk || !onDeselect)
187
- return;
188
- const unsubscribe = sdk.addEventListener('element:deselected', onDeselect);
189
- return unsubscribe;
190
- }, [sdkLoaded, onDeselect]);
191
- // Register callbacks
192
- useEffect(() => {
193
- const sdk = sdkRef.current;
194
- if (!sdk)
195
- return;
196
- if (onImage) {
197
- sdk.registerCallback('image', onImage);
198
- }
199
- if (onLinkClick) {
200
- sdk.registerCallback('linkClick', onLinkClick);
201
- }
202
- if (onSave) {
203
- sdk.registerCallback('save', onSave);
204
- }
101
+ initEditor();
205
102
  return () => {
206
- if (sdk.unregisterCallback) {
207
- sdk.unregisterCallback('image');
208
- sdk.unregisterCallback('linkClick');
209
- sdk.unregisterCallback('save');
103
+ mounted = false;
104
+ eventUnsubscribersRef.current.forEach((unsub) => {
105
+ try {
106
+ unsub();
107
+ }
108
+ catch {
109
+ // ignore
110
+ }
111
+ });
112
+ eventUnsubscribersRef.current = [];
113
+ try {
114
+ editorInstanceRef.current?.destroy();
210
115
  }
116
+ catch {
117
+ // ignore
118
+ }
119
+ editorInstanceRef.current = null;
120
+ setIsEditorReady(false);
211
121
  };
212
- }, [sdkLoaded, onImage, onLinkClick, onSave]);
213
- // Expose SDK methods via ref
122
+ }, [editorId, apiKey, handleReady]);
214
123
  useImperativeHandle(ref, () => ({
215
- loadDesign: (design) => sdkRef.current?.loadDesign(design),
216
- loadBlank: () => sdkRef.current?.loadBlank(),
217
- saveDesign: (callback) => sdkRef.current?.saveDesign(callback),
218
- getDesign: () => sdkRef.current?.getDesign(),
219
- exportHtml: (callback) => sdkRef.current?.exportHtml(callback),
220
- exportHtmlAsync: () => sdkRef.current?.exportHtmlAsync(),
221
- save: () => sdkRef.current?.save(),
222
- undo: () => sdkRef.current?.undo(),
223
- redo: () => sdkRef.current?.redo(),
224
- getState: () => sdkRef.current?.getState(),
124
+ editor: editorInstanceRef.current,
225
125
  isReady: () => isEditorReady,
226
- getSdk: () => sdkRef.current,
227
- }), [isEditorReady, sdkLoaded]);
228
- // Compute styles
126
+ }), [isEditorReady]);
127
+ const effectiveHeight = height ?? minHeight;
229
128
  const containerStyle = {
230
- width: '100%',
231
- height: typeof height === 'number' ? `${height}px` : height,
129
+ width: "100%",
130
+ height: typeof effectiveHeight === "number"
131
+ ? `${effectiveHeight}px`
132
+ : effectiveHeight,
232
133
  ...style,
233
134
  };
234
- // Show error state
235
- if (error) {
236
- return (jsx("div", { style: { ...containerStyle, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: '#fee', color: '#c00' }, children: jsxs("div", { style: { textAlign: 'center' }, children: [jsx("div", { style: { fontSize: '24px', marginBottom: '8px' }, children: "\u26A0\uFE0F" }), jsx("div", { children: "Failed to load Pexelize Editor" }), jsx("div", { style: { fontSize: '12px', marginTop: '4px' }, children: error })] }) }));
237
- }
238
- // Show loading state
239
- if (!sdkLoaded) {
240
- return (jsx("div", { style: { ...containerStyle, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: '#f5f5f5' }, children: jsxs("div", { style: { textAlign: 'center' }, children: [jsx("div", { style: { fontSize: '24px', marginBottom: '8px' }, children: "\u23F3" }), jsx("div", { children: "Loading Pexelize Editor..." })] }) }));
241
- }
242
- return (jsx("div", { id: containerId.current, ref: containerRef, className: className, style: containerStyle }));
135
+ return (jsx("div", { className: className, style: containerStyle, children: jsx("div", { id: containerId.current, ref: containerRef, style: { width: "100%", height: "100%" } }) }));
243
136
  });
244
- PexelizeEditor.displayName = 'PexelizeEditor';
245
- /**
246
- * Hook to use the Pexelize SDK directly
247
- *
248
- * @example
249
- * ```tsx
250
- * function MyComponent() {
251
- * const { sdk, isReady, error } = usePexelizeSDK({
252
- * containerId: 'my-editor',
253
- * editorMode: 'email',
254
- * });
255
- *
256
- * const handleExport = () => {
257
- * if (isReady && sdk) {
258
- * sdk.exportHtml((data) => console.log(data.html));
259
- * }
260
- * };
261
- *
262
- * return (
263
- * <div>
264
- * <div id="my-editor" style={{ height: '600px' }} />
265
- * <button onClick={handleExport} disabled={!isReady}>Export</button>
266
- * </div>
267
- * );
268
- * }
269
- * ```
270
- */
271
- function usePexelizeSDK(config) {
272
- const sdkRef = useRef(null);
137
+ PexelizeEditor.displayName = "PexelizeEditor";
138
+ function usePexelizeEditor() {
139
+ const ref = useRef(null);
273
140
  const [isReady, setIsReady] = useState(false);
274
- const [sdkLoaded, setSdkLoaded] = useState(false);
275
- const [error, setError] = useState(null);
276
- // Load SDK from CDN
277
141
  useEffect(() => {
278
- loadSDKFromCDN()
279
- .then(() => setSdkLoaded(true))
280
- .catch((err) => setError(err.message));
281
- }, []);
282
- // Initialize SDK
283
- useEffect(() => {
284
- if (!sdkLoaded)
285
- return;
286
- const pexelize = getSDK();
287
- if (!pexelize) {
288
- setError('Pexelize SDK not found');
289
- return;
290
- }
291
- sdkRef.current = pexelize;
292
- pexelize.init({
293
- id: config.containerId,
294
- editorMode: config.editorMode || config.displayMode || 'email',
295
- ...config,
296
- });
297
- const unsubscribe = pexelize.addEventListener('editor:ready', () => {
298
- setIsReady(true);
299
- });
300
- return () => {
301
- unsubscribe();
302
- pexelize.destroy();
303
- sdkRef.current = null;
304
- setIsReady(false);
142
+ const checkReady = () => {
143
+ const ready = ref.current?.isReady() ?? false;
144
+ setIsReady(ready);
305
145
  };
306
- }, [sdkLoaded, config.containerId]);
146
+ checkReady();
147
+ const interval = setInterval(checkReady, 100);
148
+ return () => clearInterval(interval);
149
+ }, []);
307
150
  return {
308
- sdk: sdkRef.current,
151
+ ref,
152
+ editor: ref.current?.editor ?? null,
309
153
  isReady,
310
- isLoading: !sdkLoaded && !error,
311
- error,
312
154
  };
313
155
  }
314
- // Export SDK CDN URL for reference
315
- const PEXELIZE_SDK_CDN = SDK_CDN_URL;
316
156
 
317
- export { PEXELIZE_SDK_CDN, PexelizeEditor, PexelizeEditor as default, usePexelizeSDK };
157
+ export { PexelizeEditor, PexelizeEditor as default, usePexelizeEditor };
318
158
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;AAeA;AACA;AACA;AAEA;;;;AAIG;AACH,MAAM,WAAW,GAAG,qDAAqD;AAEzE;AACA,IAAI,cAAc,GAAyB,IAAI;AAE/C;;AAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAA;AACjC,IAAA,IAAI,cAAc,IAAK,MAAc,CAAC,QAAQ,EAAE;AAC9C,QAAA,OAAO,cAAc;IACvB;;AAGA,IAAA,IAAK,MAAc,CAAC,QAAQ,EAAE;AAC5B,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;IAC1B;IAEA,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG;AAChB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI;AAEnB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,YAAA,IAAK,MAAc,CAAC,QAAQ,EAAE;AAC5B,gBAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;AACnD,gBAAA,OAAO,EAAE;YACX;iBAAO;AACL,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC/D;AACF,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,OAAO,GAAG,MAAK;YACpB,cAAc,GAAG,IAAI;YACrB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAA,CAAE,CAAC,CAAC;AAC9D,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACnC,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,cAAc;AACvB;AAEA;;AAEG;AACH,SAAS,MAAM,GAAA;IACb,OAAQ,MAAc,CAAC,QAAQ;AACjC;AA4LA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,cAAc,GAAG,UAAU,CACtC,CAAC,KAAK,EAAE,GAAG,KAAI;AACb,IAAA,MAAM,EACJ,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,MAAM,GAAG,OAAO,EAChB,WAAW,EACX,UAAU,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,MAAM,EACN,GAAG,MAAM,EACV,GAAG,KAAK;AAET,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAM,IAAI,CAAC;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,CAAC;IACxF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACzD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;;IAGvD,SAAS,CAAC,MAAK;;AAEb,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW;QACvC,cAAc,CAAC,GAAG;aACf,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC;AAC7B,aAAA,KAAK,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;IAGlB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE;AAEzC,QAAA,MAAM,QAAQ,GAAG,MAAM,EAAE;QACzB,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,CAAC,sCAAsC,CAAC;YAChD;QACF;;AAGA,QAAA,MAAM,CAAC,OAAO,GAAG,QAAQ;;QAGzB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,WAAW,CAAC,OAAO;AACvB,YAAA,UAAU,EAAE,UAAU,IAAI,WAAW,IAAI,OAAO;AAChD,YAAA,GAAG,MAAM;AACV,SAAA,CAAC;;AAGF,QAAA,OAAO,MAAK;YACV,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,GAAG,IAAI;YACrB,gBAAgB,CAAC,KAAK,CAAC;AACzB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;;IAGf,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG;YAAE;QAEV,MAAM,WAAW,GAAG,MAAK;YACvB,gBAAgB,CAAC,IAAI,CAAC;;YAGtB,IAAI,SAAS,EAAE;AACb,gBAAA,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;YAC7B;;YAGA,IAAI,iBAAiB,EAAE;AACrB,gBAAA,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;YAC7C;;YAGA,IAAI,MAAM,EAAE;AACV,gBAAA,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YACxB;;YAGA,OAAO,IAAI;AACb,QAAA,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC;AACrE,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;;IAG9D,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE;QAErB,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC;AACjE,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;;IAGvB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;YAAE;QAEvB,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AACpE,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;IAGzB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB;YAAE;QAEhC,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;AAC/E,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;;IAGlC,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;YAAE;QAEvB,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACtE,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;IAGzB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU;YAAE;QAEzB,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAU,CAAC;AAC1E,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;;IAG3B,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG;YAAE;QAEV,IAAI,OAAO,EAAE;AACX,YAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;QACxC;QACA,IAAI,WAAW,EAAE;AACf,YAAA,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;QAChD;QACA,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;QACtC;AAEA,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,GAAG,CAAC,kBAAkB,EAAE;AAC1B,gBAAA,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAC/B,gBAAA,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACnC,gBAAA,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAChC;AACF,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;;AAG7C,IAAA,mBAAmB,CACjB,GAAG,EACH,OAAO;AACL,QAAA,UAAU,EAAE,CAAC,MAAkB,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC;QACtE,SAAS,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5C,QAAA,UAAU,EAAE,CAAC,QAAsC,KACjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;QACtC,SAAS,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5C,QAAA,UAAU,EAAE,CAAC,QAAwC,KACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;QACtC,eAAe,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE;QACxD,IAAI,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;QAClC,IAAI,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;QAClC,IAAI,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;QAClC,QAAQ,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;AAC1C,QAAA,OAAO,EAAE,MAAM,aAAa;AAC5B,QAAA,MAAM,EAAE,MAAM,MAAM,CAAC,OAAO;AAC7B,KAAA,CAAC,EACF,CAAC,aAAa,EAAE,SAAS,CAAC,CAC3B;;AAGD,IAAA,MAAM,cAAc,GAAwB;AAC1C,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,GAAG,MAAM;AAC3D,QAAA,GAAG,KAAK;KACT;;IAGD,IAAI,KAAK,EAAE;AACT,QAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YACxIC,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACjCD,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,cAAA,EAAA,CAAU,EAC/DA,0DAAyC,EACzCA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAG,KAAK,EAAA,CAAO,CAAA,EAAA,CAC7D,EAAA,CACF;IAEV;;IAGA,IAAI,CAAC,SAAS,EAAE;QACd,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,EAAA,QAAA,EAC5HC,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACjCD,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,QAAA,EAAA,CAAS,EAC9DA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,CAAqC,CAAA,EAAA,CACjC,EAAA,CACF;IAEV;IAEA,QACEA,aACE,EAAE,EAAE,WAAW,CAAC,OAAO,EACvB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,EAAA,CACrB;AAEN,CAAC;AAGH,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAa7C;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACG,SAAU,cAAc,CAAC,MAA4B,EAAA;AACzD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAM,IAAI,CAAC;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;;IAGvD,SAAS,CAAC,MAAK;AACb,QAAA,cAAc;aACX,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC;AAC7B,aAAA,KAAK,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,SAAS;YAAE;AAEhB,QAAA,MAAM,QAAQ,GAAG,MAAM,EAAE;QACzB,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,CAAC,wBAAwB,CAAC;YAClC;QACF;AAEA,QAAA,MAAM,CAAC,OAAO,GAAG,QAAQ;QAEzB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,MAAM,CAAC,WAAW;YACtB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO;AAC9D,YAAA,GAAG,MAAM;AACV,SAAA,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAK;YACjE,UAAU,CAAC,IAAI,CAAC;AAClB,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,MAAK;AACV,YAAA,WAAW,EAAE;YACb,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,GAAG,IAAI;YACrB,UAAU,CAAC,KAAK,CAAC;AACnB,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,OAAO;QACnB,OAAO;AACP,QAAA,SAAS,EAAE,CAAC,SAAS,IAAI,CAAC,KAAK;QAC/B,KAAK;KACN;AACH;AAQA;AACO,MAAM,gBAAgB,GAAG;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}