@chaibuilder/sdk 2.0.0-beta.110 → 2.0.0-beta.113
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/{CodeEditor-Bv7cAp6l.js → CodeEditor-C-jeR5bt.js} +1 -1
- package/dist/{CodeEditor-ol63c03C.cjs → CodeEditor-SZJ1H4vl.cjs} +1 -1
- package/dist/{Topbar-lIu26u9Y.cjs → Topbar-DSfx67NF.cjs} +1 -1
- package/dist/{Topbar-DutZ_viX.js → Topbar-DZ2jHLv7.js} +1 -1
- package/dist/core.cjs +5 -5
- package/dist/core.js +748 -698
- package/dist/render.cjs +2 -2
- package/dist/render.js +103 -102
- package/dist/tooltip-1Uu2avkZ.cjs +1 -0
- package/dist/{tooltip-CuxBhGWF.js → tooltip-PKiP886L.js} +250 -366
- package/dist/ui.cjs +1 -1
- package/dist/ui.js +293 -192
- package/dist/web-blocks.cjs +2 -2
- package/dist/web-blocks.js +159 -138
- package/package.json +3 -3
- package/dist/tooltip-DHlrjqh8.cjs +0 -1
package/dist/core.js
CHANGED
|
@@ -4,7 +4,7 @@ var V = (o, n, r) => K(o, typeof n != "symbol" ? n + "" : n, r);
|
|
|
4
4
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import React__default, { createContext, useReducer, useEffect, useDebugValue, useCallback, useContext, useMemo, Component, Children, useState, useRef, Suspense, createElement, memo, lazy } from "react";
|
|
7
|
-
import { S as Skeleton, B as Button,
|
|
7
|
+
import { S as Skeleton, B as Button, a6 as Label, H as Dialog, I as DialogTrigger, J as DialogContent, a7 as Popover, ak as Tooltip, al as TooltipTrigger, a8 as PopoverTrigger, am as TooltipContent, a9 as PopoverContent, v as Command, x as CommandInput, y as CommandList, z as CommandEmpty, D as CommandGroup, E as CommandItem, K as DialogHeader, M as DialogTitle, n as Badge, O as DropdownMenu, P as DropdownMenuTrigger, Q as DropdownMenuContent, V as DropdownMenuLabel, W as DropdownMenuSeparator, T as DropdownMenuCheckboxItem, a2 as HoverCard, a3 as HoverCardTrigger, a4 as HoverCardContent, aj as Textarea, a5 as Input$1, ao as TooltipPortal, a as AccordionItem, b as AccordionTrigger, d as AccordionContent, aa as ScrollArea, Y as DropdownMenuGroup, R as DropdownMenuItem, X as DropdownMenuShortcut, A as Accordion, C as Card, q as CardHeader, t as CardDescription, u as CardContent, r as CardFooter, af as Tabs, ag as TabsList, ah as TabsTrigger, ai as TabsContent, e as AlertDialog, f as AlertDialogTrigger, g as AlertDialogContent, h as AlertDialogHeader, j as AlertDialogTitle, k as AlertDialogDescription, i as AlertDialogFooter, m as AlertDialogCancel, l as AlertDialogAction, ae as Switch, ac as Separator, an as TooltipProvider, ad as Toaster } from "./tooltip-PKiP886L.js";
|
|
8
8
|
import { atom as atom$1, useAtom as useAtom$1, useAtomValue as useAtomValue$1, getDefaultStore as getDefaultStore$1, useSetAtom as useSetAtom$1, Provider } from "jotai";
|
|
9
9
|
import { find, filter, flatten, map, omit, isString, has, isObject, memoize, get, compact, isEmpty, noop, includes, without, each, first, keys, range, values, flattenDeep, set, startsWith, forEach, unset, chunk, cloneDeep, pick, isNull, throttle, isFunction as isFunction$1, reverse, startCase, debounce, capitalize, split, findIndex, take, toUpper, toLower, nth, isNumber, parseInt as parseInt$1, isNaN as isNaN$1, findLast, intersection, groupBy, uniq, flatMapDeep, some, reject, sortBy, round } from "lodash-es";
|
|
10
10
|
import { Provider as Provider$1 } from "react-wrap-balancer";
|
|
@@ -22,7 +22,7 @@ import { e as getDefaultExportFromCjs, d as defaultThemeOptions, g as getChaiThe
|
|
|
22
22
|
import TreeModel from "tree-model";
|
|
23
23
|
import { useHotkeys } from "react-hotkeys-hook";
|
|
24
24
|
import { toast } from "sonner";
|
|
25
|
-
import { PlusIcon as PlusIcon$1, ChevronRight, DatabaseIcon, ChevronLeft, Bold, Italic, Underline as Underline$1, Strikethrough, List, ListOrdered, AlignLeft, AlignCenter, AlignRight, Link as Link$1, Unlink, Maximize2, X, Plus, PlusCircle, ChevronDown, Loader, SparklesIcon, EyeOff, Eye, SmileIcon, ShuffleIcon, DatabaseZapIcon, Edit2, Paintbrush, Layers } from "lucide-react";
|
|
25
|
+
import { PlusIcon as PlusIcon$1, ChevronRight, DatabaseIcon, ChevronLeft, Bold, Italic, Underline as Underline$1, Strikethrough, List, ListOrdered, AlignLeft, AlignCenter, AlignRight, Link as Link$1, Unlink, Maximize2, X, Plus, PlusCircle, ChevronDown, Loader, SparklesIcon, Globe, PencilIcon, EyeOff, Eye, SmileIcon, ShuffleIcon, DatabaseZapIcon, Edit2, Paintbrush, Layers } from "lucide-react";
|
|
26
26
|
import { useEditor, EditorContent } from "@tiptap/react";
|
|
27
27
|
import StarterKit from "@tiptap/starter-kit";
|
|
28
28
|
import typography from "@tailwindcss/typography";
|
|
@@ -101,97 +101,97 @@ const isSelfAtom = (o, n) => o.unstable_is ? o.unstable_is(n) : n === o, hasInit
|
|
|
101
101
|
var x;
|
|
102
102
|
return (x = m.onMount) == null ? void 0 : x.call(m, h);
|
|
103
103
|
}, ...f) => {
|
|
104
|
-
const m = f[0] || ((
|
|
105
|
-
let L = o.get(
|
|
106
|
-
return L || (L = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 }, o.set(
|
|
104
|
+
const m = f[0] || ((C) => {
|
|
105
|
+
let L = o.get(C);
|
|
106
|
+
return L || (L = { d: /* @__PURE__ */ new Map(), p: /* @__PURE__ */ new Set(), n: 0 }, o.set(C, L), u == null || u(C, S)), L;
|
|
107
107
|
}), h = f[1] || (() => {
|
|
108
|
-
let
|
|
108
|
+
let C, L;
|
|
109
109
|
const v = (k) => {
|
|
110
110
|
try {
|
|
111
111
|
k();
|
|
112
|
-
} catch (
|
|
113
|
-
|
|
112
|
+
} catch (A) {
|
|
113
|
+
C || (C = !0, L = A);
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
116
|
do {
|
|
117
117
|
c.f && v(c.f);
|
|
118
|
-
const k = /* @__PURE__ */ new Set(),
|
|
118
|
+
const k = /* @__PURE__ */ new Set(), A = k.add.bind(k);
|
|
119
119
|
a.forEach((T) => {
|
|
120
120
|
var I;
|
|
121
|
-
return (I = n.get(T)) == null ? void 0 : I.l.forEach(
|
|
122
|
-
}), a.clear(), i.forEach(
|
|
121
|
+
return (I = n.get(T)) == null ? void 0 : I.l.forEach(A);
|
|
122
|
+
}), a.clear(), i.forEach(A), i.clear(), l.forEach(A), l.clear(), k.forEach(v), a.size && x();
|
|
123
123
|
} while (a.size || i.size || l.size);
|
|
124
|
-
if (
|
|
124
|
+
if (C)
|
|
125
125
|
throw L;
|
|
126
126
|
}), x = f[2] || (() => {
|
|
127
|
-
const
|
|
127
|
+
const C = [], L = /* @__PURE__ */ new WeakSet(), v = /* @__PURE__ */ new WeakSet(), k = Array.from(a);
|
|
128
128
|
for (; k.length; ) {
|
|
129
|
-
const
|
|
130
|
-
if (v.has(
|
|
129
|
+
const A = k[k.length - 1], T = m(A);
|
|
130
|
+
if (v.has(A)) {
|
|
131
131
|
k.pop();
|
|
132
132
|
continue;
|
|
133
133
|
}
|
|
134
|
-
if (L.has(
|
|
135
|
-
r.get(
|
|
134
|
+
if (L.has(A)) {
|
|
135
|
+
r.get(A) === T.n && C.push([A, T]), v.add(A), k.pop();
|
|
136
136
|
continue;
|
|
137
137
|
}
|
|
138
|
-
L.add(
|
|
139
|
-
for (const I of getMountedOrPendingDependents(
|
|
138
|
+
L.add(A);
|
|
139
|
+
for (const I of getMountedOrPendingDependents(A, T, n))
|
|
140
140
|
L.has(I) || k.push(I);
|
|
141
141
|
}
|
|
142
|
-
for (let
|
|
143
|
-
const [T, I] =
|
|
144
|
-
let
|
|
142
|
+
for (let A = C.length - 1; A >= 0; --A) {
|
|
143
|
+
const [T, I] = C[A];
|
|
144
|
+
let P = !1;
|
|
145
145
|
for (const N of I.d.keys())
|
|
146
146
|
if (N !== T && a.has(N)) {
|
|
147
|
-
|
|
147
|
+
P = !0;
|
|
148
148
|
break;
|
|
149
149
|
}
|
|
150
|
-
|
|
150
|
+
P && (y(T), E(T)), r.delete(T);
|
|
151
151
|
}
|
|
152
|
-
}),
|
|
152
|
+
}), y = f[3] || ((C) => {
|
|
153
153
|
var L, v;
|
|
154
|
-
const k = m(
|
|
155
|
-
if (isAtomStateInitialized(k) && (n.has(
|
|
156
|
-
([
|
|
154
|
+
const k = m(C);
|
|
155
|
+
if (isAtomStateInitialized(k) && (n.has(C) && r.get(C) !== k.n || Array.from(k.d).every(
|
|
156
|
+
([R, O]) => (
|
|
157
157
|
// Recursively, read the atom state of the dependency, and
|
|
158
158
|
// check if the atom epoch number is unchanged
|
|
159
|
-
|
|
159
|
+
y(R).n === O
|
|
160
160
|
)
|
|
161
161
|
)))
|
|
162
162
|
return k;
|
|
163
163
|
k.d.clear();
|
|
164
|
-
let
|
|
164
|
+
let A = !0;
|
|
165
165
|
const T = () => {
|
|
166
|
-
n.has(
|
|
167
|
-
}, I = (
|
|
166
|
+
n.has(C) && (E(C), x(), h());
|
|
167
|
+
}, I = (R) => {
|
|
168
168
|
var O;
|
|
169
|
-
if (isSelfAtom(
|
|
170
|
-
const H = m(
|
|
169
|
+
if (isSelfAtom(C, R)) {
|
|
170
|
+
const H = m(R);
|
|
171
171
|
if (!isAtomStateInitialized(H))
|
|
172
|
-
if (hasInitialValue(
|
|
173
|
-
setAtomStateValueOrPromise(
|
|
172
|
+
if (hasInitialValue(R))
|
|
173
|
+
setAtomStateValueOrPromise(R, R.init, m);
|
|
174
174
|
else
|
|
175
175
|
throw new Error("no atom init");
|
|
176
176
|
return returnAtomValue(H);
|
|
177
177
|
}
|
|
178
|
-
const $ =
|
|
178
|
+
const $ = y(R);
|
|
179
179
|
try {
|
|
180
180
|
return returnAtomValue($);
|
|
181
181
|
} finally {
|
|
182
|
-
k.d.set(
|
|
182
|
+
k.d.set(R, $.n), isPendingPromise(k.v) && addPendingPromiseToDependency(C, k.v, $), (O = n.get(R)) == null || O.t.add(C), A || T();
|
|
183
183
|
}
|
|
184
184
|
};
|
|
185
|
-
let
|
|
185
|
+
let P, N;
|
|
186
186
|
const D = {
|
|
187
187
|
get signal() {
|
|
188
|
-
return
|
|
188
|
+
return P || (P = new AbortController()), P.signal;
|
|
189
189
|
},
|
|
190
190
|
get setSelf() {
|
|
191
|
-
return !N && isActuallyWritableAtom(
|
|
192
|
-
if (!
|
|
191
|
+
return !N && isActuallyWritableAtom(C) && (N = (...R) => {
|
|
192
|
+
if (!A)
|
|
193
193
|
try {
|
|
194
|
-
return B(
|
|
194
|
+
return B(C, ...R);
|
|
195
195
|
} finally {
|
|
196
196
|
x(), h();
|
|
197
197
|
}
|
|
@@ -199,36 +199,36 @@ const isSelfAtom = (o, n) => o.unstable_is ? o.unstable_is(n) : n === o, hasInit
|
|
|
199
199
|
}
|
|
200
200
|
}, M = k.n;
|
|
201
201
|
try {
|
|
202
|
-
const
|
|
203
|
-
return setAtomStateValueOrPromise(
|
|
202
|
+
const R = d(C, I, D);
|
|
203
|
+
return setAtomStateValueOrPromise(C, R, m), isPromiseLike$2(R) && ((L = R.onCancel) == null || L.call(R, () => P == null ? void 0 : P.abort()), R.then(
|
|
204
204
|
T,
|
|
205
205
|
T
|
|
206
206
|
)), k;
|
|
207
|
-
} catch (
|
|
208
|
-
return delete k.v, k.e =
|
|
207
|
+
} catch (R) {
|
|
208
|
+
return delete k.v, k.e = R, ++k.n, k;
|
|
209
209
|
} finally {
|
|
210
|
-
|
|
210
|
+
A = !1, M !== k.n && r.get(C) === M && (r.set(C, k.n), a.add(C), (v = c.c) == null || v.call(c, C));
|
|
211
211
|
}
|
|
212
|
-
}),
|
|
213
|
-
const L = [
|
|
212
|
+
}), b = f[4] || ((C) => {
|
|
213
|
+
const L = [C];
|
|
214
214
|
for (; L.length; ) {
|
|
215
215
|
const v = L.pop(), k = m(v);
|
|
216
|
-
for (const
|
|
217
|
-
const T = m(
|
|
218
|
-
r.set(
|
|
216
|
+
for (const A of getMountedOrPendingDependents(v, k, n)) {
|
|
217
|
+
const T = m(A);
|
|
218
|
+
r.set(A, T.n), L.push(A);
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
|
-
}), B = f[5] || ((
|
|
221
|
+
}), B = f[5] || ((C, ...L) => {
|
|
222
222
|
let v = !0;
|
|
223
|
-
const k = (T) => returnAtomValue(
|
|
224
|
-
var
|
|
223
|
+
const k = (T) => returnAtomValue(y(T)), A = (T, ...I) => {
|
|
224
|
+
var P;
|
|
225
225
|
const N = m(T);
|
|
226
226
|
try {
|
|
227
|
-
if (isSelfAtom(
|
|
227
|
+
if (isSelfAtom(C, T)) {
|
|
228
228
|
if (!hasInitialValue(T))
|
|
229
229
|
throw new Error("atom not writable");
|
|
230
230
|
const D = N.n, M = I[0];
|
|
231
|
-
setAtomStateValueOrPromise(T, M, m),
|
|
231
|
+
setAtomStateValueOrPromise(T, M, m), E(T), D !== N.n && (a.add(T), (P = c.c) == null || P.call(c, T), b(T));
|
|
232
232
|
return;
|
|
233
233
|
} else
|
|
234
234
|
return B(T, ...I);
|
|
@@ -237,54 +237,54 @@ const isSelfAtom = (o, n) => o.unstable_is ? o.unstable_is(n) : n === o, hasInit
|
|
|
237
237
|
}
|
|
238
238
|
};
|
|
239
239
|
try {
|
|
240
|
-
return p(
|
|
240
|
+
return p(C, k, A, ...L);
|
|
241
241
|
} finally {
|
|
242
242
|
v = !1;
|
|
243
243
|
}
|
|
244
|
-
}),
|
|
244
|
+
}), E = f[6] || ((C) => {
|
|
245
245
|
var L;
|
|
246
|
-
const v = m(
|
|
246
|
+
const v = m(C), k = n.get(C);
|
|
247
247
|
if (k && !isPendingPromise(v.v)) {
|
|
248
|
-
for (const [
|
|
249
|
-
if (!k.d.has(
|
|
250
|
-
const I = m(
|
|
251
|
-
|
|
248
|
+
for (const [A, T] of v.d)
|
|
249
|
+
if (!k.d.has(A)) {
|
|
250
|
+
const I = m(A);
|
|
251
|
+
w(A).t.add(C), k.d.add(A), T !== I.n && (a.add(A), (L = c.c) == null || L.call(c, A), b(A));
|
|
252
252
|
}
|
|
253
|
-
for (const
|
|
254
|
-
if (!v.d.has(
|
|
255
|
-
k.d.delete(
|
|
256
|
-
const T =
|
|
257
|
-
T == null || T.t.delete(
|
|
253
|
+
for (const A of k.d || [])
|
|
254
|
+
if (!v.d.has(A)) {
|
|
255
|
+
k.d.delete(A);
|
|
256
|
+
const T = _(A);
|
|
257
|
+
T == null || T.t.delete(C);
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
-
}),
|
|
260
|
+
}), w = f[7] || ((C) => {
|
|
261
261
|
var L;
|
|
262
|
-
const v = m(
|
|
263
|
-
let k = n.get(
|
|
262
|
+
const v = m(C);
|
|
263
|
+
let k = n.get(C);
|
|
264
264
|
if (!k) {
|
|
265
|
-
|
|
266
|
-
for (const
|
|
267
|
-
|
|
265
|
+
y(C);
|
|
266
|
+
for (const A of v.d.keys())
|
|
267
|
+
w(A).t.add(C);
|
|
268
268
|
if (k = {
|
|
269
269
|
l: /* @__PURE__ */ new Set(),
|
|
270
270
|
d: new Set(v.d.keys()),
|
|
271
271
|
t: /* @__PURE__ */ new Set()
|
|
272
|
-
}, n.set(
|
|
273
|
-
const
|
|
272
|
+
}, n.set(C, k), (L = c.m) == null || L.call(c, C), isActuallyWritableAtom(C)) {
|
|
273
|
+
const A = () => {
|
|
274
274
|
let T = !0;
|
|
275
|
-
const I = (...
|
|
275
|
+
const I = (...P) => {
|
|
276
276
|
try {
|
|
277
|
-
return B(
|
|
277
|
+
return B(C, ...P);
|
|
278
278
|
} finally {
|
|
279
279
|
T || (x(), h());
|
|
280
280
|
}
|
|
281
281
|
};
|
|
282
282
|
try {
|
|
283
|
-
const
|
|
284
|
-
|
|
283
|
+
const P = g(C, I);
|
|
284
|
+
P && (k.u = () => {
|
|
285
285
|
T = !0;
|
|
286
286
|
try {
|
|
287
|
-
|
|
287
|
+
P();
|
|
288
288
|
} finally {
|
|
289
289
|
T = !1;
|
|
290
290
|
}
|
|
@@ -293,27 +293,27 @@ const isSelfAtom = (o, n) => o.unstable_is ? o.unstable_is(n) : n === o, hasInit
|
|
|
293
293
|
T = !1;
|
|
294
294
|
}
|
|
295
295
|
};
|
|
296
|
-
l.add(
|
|
296
|
+
l.add(A);
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
return k;
|
|
300
|
-
}),
|
|
300
|
+
}), _ = f[8] || ((C) => {
|
|
301
301
|
var L;
|
|
302
|
-
const v = m(
|
|
303
|
-
let k = n.get(
|
|
304
|
-
if (k && !k.l.size && !Array.from(k.t).some((
|
|
302
|
+
const v = m(C);
|
|
303
|
+
let k = n.get(C);
|
|
304
|
+
if (k && !k.l.size && !Array.from(k.t).some((A) => {
|
|
305
305
|
var T;
|
|
306
|
-
return (T = n.get(
|
|
306
|
+
return (T = n.get(A)) == null ? void 0 : T.d.has(C);
|
|
307
307
|
})) {
|
|
308
|
-
k.u && i.add(k.u), k = void 0, n.delete(
|
|
309
|
-
for (const
|
|
310
|
-
const T =
|
|
311
|
-
T == null || T.t.delete(
|
|
308
|
+
k.u && i.add(k.u), k = void 0, n.delete(C), (L = c.u) == null || L.call(c, C);
|
|
309
|
+
for (const A of v.d.keys()) {
|
|
310
|
+
const T = _(A);
|
|
311
|
+
T == null || T.t.delete(C);
|
|
312
312
|
}
|
|
313
313
|
return;
|
|
314
314
|
}
|
|
315
315
|
return k;
|
|
316
|
-
}),
|
|
316
|
+
}), j = [
|
|
317
317
|
// store state
|
|
318
318
|
o,
|
|
319
319
|
n,
|
|
@@ -331,29 +331,29 @@ const isSelfAtom = (o, n) => o.unstable_is ? o.unstable_is(n) : n === o, hasInit
|
|
|
331
331
|
m,
|
|
332
332
|
h,
|
|
333
333
|
x,
|
|
334
|
-
b,
|
|
335
334
|
y,
|
|
335
|
+
b,
|
|
336
336
|
B,
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
],
|
|
341
|
-
get: (
|
|
342
|
-
set: (
|
|
337
|
+
E,
|
|
338
|
+
w,
|
|
339
|
+
_
|
|
340
|
+
], S = {
|
|
341
|
+
get: (C) => returnAtomValue(y(C)),
|
|
342
|
+
set: (C, ...L) => {
|
|
343
343
|
try {
|
|
344
|
-
return B(
|
|
344
|
+
return B(C, ...L);
|
|
345
345
|
} finally {
|
|
346
346
|
x(), h();
|
|
347
347
|
}
|
|
348
348
|
},
|
|
349
|
-
sub: (
|
|
350
|
-
const k = C
|
|
349
|
+
sub: (C, L) => {
|
|
350
|
+
const k = w(C).l;
|
|
351
351
|
return k.add(L), h(), () => {
|
|
352
|
-
k.delete(L),
|
|
352
|
+
k.delete(L), _(C), h();
|
|
353
353
|
};
|
|
354
354
|
}
|
|
355
355
|
};
|
|
356
|
-
return Object.defineProperty(
|
|
356
|
+
return Object.defineProperty(S, BUILDING_BLOCKS, { value: j }), S;
|
|
357
357
|
}, INTERNAL_buildStoreRev1 = buildStore;
|
|
358
358
|
let keyCount = 0;
|
|
359
359
|
function atom(o, n) {
|
|
@@ -392,32 +392,32 @@ function splitAtom(o, n) {
|
|
|
392
392
|
return c.forEach((m, h) => {
|
|
393
393
|
const x = h;
|
|
394
394
|
f[h] = x;
|
|
395
|
-
const
|
|
396
|
-
if (
|
|
397
|
-
g[h] =
|
|
395
|
+
const y = u && u.atomList[u.keyList.indexOf(x)];
|
|
396
|
+
if (y) {
|
|
397
|
+
g[h] = y;
|
|
398
398
|
return;
|
|
399
399
|
}
|
|
400
|
-
const
|
|
401
|
-
const
|
|
402
|
-
if (
|
|
403
|
-
const
|
|
404
|
-
if (
|
|
405
|
-
return
|
|
400
|
+
const b = (E) => {
|
|
401
|
+
const w = E(l), _ = E(o), S = a(_, w == null ? void 0 : w.arr).keyList.indexOf(x);
|
|
402
|
+
if (S < 0 || S >= _.length) {
|
|
403
|
+
const C = c[a(c).keyList.indexOf(x)];
|
|
404
|
+
if (C)
|
|
405
|
+
return C;
|
|
406
406
|
throw new Error("splitAtom: index out of bounds for read");
|
|
407
407
|
}
|
|
408
|
-
return S
|
|
409
|
-
}, B = (
|
|
410
|
-
const
|
|
411
|
-
if (L < 0 || L >=
|
|
408
|
+
return _[S];
|
|
409
|
+
}, B = (E, w, _) => {
|
|
410
|
+
const j = E(l), S = E(o), L = a(S, j == null ? void 0 : j.arr).keyList.indexOf(x);
|
|
411
|
+
if (L < 0 || L >= S.length)
|
|
412
412
|
throw new Error("splitAtom: index out of bounds for write");
|
|
413
|
-
const v = isFunction(
|
|
414
|
-
Object.is(
|
|
415
|
-
...
|
|
413
|
+
const v = isFunction(_) ? _(S[L]) : _;
|
|
414
|
+
Object.is(S[L], v) || w(o, [
|
|
415
|
+
...S.slice(0, L),
|
|
416
416
|
v,
|
|
417
|
-
...
|
|
417
|
+
...S.slice(L + 1)
|
|
418
418
|
]);
|
|
419
419
|
};
|
|
420
|
-
g[h] = isWritable(o) ? atom(
|
|
420
|
+
g[h] = isWritable(o) ? atom(b, B) : atom(b);
|
|
421
421
|
}), u && u.keyList.length === f.length && u.keyList.every((m, h) => m === f[h]) ? p = u : p = { arr: c, atomList: g, keyList: f }, r.set(c, p), p;
|
|
422
422
|
}, l = atom((c) => {
|
|
423
423
|
const d = c(l), p = c(o);
|
|
@@ -1158,8 +1158,8 @@ const useSelectedBlocksDisplayChild = () => ({
|
|
|
1158
1158
|
m && "content" in m && (r = r.map((h) => {
|
|
1159
1159
|
if (h._id === u) {
|
|
1160
1160
|
const x = { ...h, content: f.content };
|
|
1161
|
-
return Object.keys(f).forEach((
|
|
1162
|
-
|
|
1161
|
+
return Object.keys(f).forEach((y) => {
|
|
1162
|
+
y.startsWith("content-") && (x[y] = f[y]);
|
|
1163
1163
|
}), x;
|
|
1164
1164
|
}
|
|
1165
1165
|
return h;
|
|
@@ -1238,8 +1238,8 @@ function insertBlocksAtPosition(o, n, r, a) {
|
|
|
1238
1238
|
}), l.unshift(m), i = i.map((h) => {
|
|
1239
1239
|
if (h._id === r) {
|
|
1240
1240
|
const x = { ...h, content: "" };
|
|
1241
|
-
return Object.keys(x).forEach((
|
|
1242
|
-
|
|
1241
|
+
return Object.keys(x).forEach((y) => {
|
|
1242
|
+
y.startsWith("content-") && (x[y] = "");
|
|
1243
1243
|
}), x;
|
|
1244
1244
|
}
|
|
1245
1245
|
return h;
|
|
@@ -1388,50 +1388,50 @@ const useBlocksStoreManager = () => {
|
|
|
1388
1388
|
updateBlocksProps: c
|
|
1389
1389
|
} = useBlocksStoreManager();
|
|
1390
1390
|
return {
|
|
1391
|
-
moveBlocks: (x,
|
|
1392
|
-
const B = map(x, (
|
|
1393
|
-
const
|
|
1394
|
-
return { _id:
|
|
1395
|
-
}),
|
|
1396
|
-
|
|
1397
|
-
undo: () => each(B, ({ _id:
|
|
1398
|
-
i([
|
|
1391
|
+
moveBlocks: (x, y, b) => {
|
|
1392
|
+
const B = map(x, (w) => {
|
|
1393
|
+
const j = n.find((L) => L._id === w)._parent || null, C = n.filter((L) => j ? L._parent === j : !L._parent).map((L) => L._id).indexOf(w);
|
|
1394
|
+
return { _id: w, oldParent: j, oldPosition: C };
|
|
1395
|
+
}), E = B.find(({ _id: w }) => w === x[0]);
|
|
1396
|
+
E && E.oldParent === y && E.oldPosition === b || (i(x, y, b), o({
|
|
1397
|
+
undo: () => each(B, ({ _id: w, oldParent: _, oldPosition: j }) => {
|
|
1398
|
+
i([w], _, j);
|
|
1399
1399
|
}),
|
|
1400
|
-
redo: () => i(x,
|
|
1400
|
+
redo: () => i(x, y, b)
|
|
1401
1401
|
}));
|
|
1402
1402
|
},
|
|
1403
|
-
addBlocks: (x,
|
|
1404
|
-
a(x,
|
|
1403
|
+
addBlocks: (x, y, b) => {
|
|
1404
|
+
a(x, y, b), o({
|
|
1405
1405
|
undo: () => l(map(x, "_id")),
|
|
1406
|
-
redo: () => a(x,
|
|
1406
|
+
redo: () => a(x, y, b)
|
|
1407
1407
|
});
|
|
1408
1408
|
},
|
|
1409
1409
|
removeBlocks: (x) => {
|
|
1410
|
-
var
|
|
1411
|
-
const
|
|
1410
|
+
var E;
|
|
1411
|
+
const y = (E = first(x)) == null ? void 0 : E._parent, B = n.filter((w) => y ? w._parent === y : !w._parent).indexOf(first(x));
|
|
1412
1412
|
l(map(x, "_id")), o({
|
|
1413
|
-
undo: () => a(x,
|
|
1413
|
+
undo: () => a(x, y, B),
|
|
1414
1414
|
redo: () => l(map(x, "_id"))
|
|
1415
1415
|
});
|
|
1416
1416
|
},
|
|
1417
|
-
updateBlocks: (x,
|
|
1417
|
+
updateBlocks: (x, y, b) => {
|
|
1418
1418
|
let B = [];
|
|
1419
|
-
if (
|
|
1420
|
-
B = map(x, (
|
|
1419
|
+
if (b)
|
|
1420
|
+
B = map(x, (E) => ({ _id: E, ...b }));
|
|
1421
1421
|
else {
|
|
1422
|
-
const
|
|
1423
|
-
B = map(x, (
|
|
1424
|
-
const
|
|
1425
|
-
return each(
|
|
1422
|
+
const E = keys(y);
|
|
1423
|
+
B = map(x, (w) => {
|
|
1424
|
+
const _ = n.find((S) => S._id === w), j = { _id: w };
|
|
1425
|
+
return each(E, (S) => j[S] = _[S]), j;
|
|
1426
1426
|
});
|
|
1427
1427
|
}
|
|
1428
|
-
c(map(x, (
|
|
1428
|
+
c(map(x, (E) => ({ _id: E, ...y }))), o({
|
|
1429
1429
|
undo: () => c(B),
|
|
1430
|
-
redo: () => c(map(x, (
|
|
1430
|
+
redo: () => c(map(x, (E) => ({ _id: E, ...y })))
|
|
1431
1431
|
});
|
|
1432
1432
|
},
|
|
1433
|
-
updateBlocksRuntime: (x,
|
|
1434
|
-
c(map(x, (
|
|
1433
|
+
updateBlocksRuntime: (x, y) => {
|
|
1434
|
+
c(map(x, (b) => ({ _id: b, ...y })));
|
|
1435
1435
|
},
|
|
1436
1436
|
setNewBlocks: (x) => {
|
|
1437
1437
|
r(x), o({
|
|
@@ -1440,12 +1440,12 @@ const useBlocksStoreManager = () => {
|
|
|
1440
1440
|
});
|
|
1441
1441
|
},
|
|
1442
1442
|
updateMultipleBlocksProps: (x) => {
|
|
1443
|
-
let
|
|
1444
|
-
|
|
1445
|
-
const B = keys(
|
|
1446
|
-
return each(B, (
|
|
1443
|
+
let y = [];
|
|
1444
|
+
y = map(x, (b) => {
|
|
1445
|
+
const B = keys(b), E = n.find((_) => _._id === b._id), w = {};
|
|
1446
|
+
return each(B, (_) => w[_] = E[_]), w;
|
|
1447
1447
|
}), c(x), o({
|
|
1448
|
-
undo: () => c(
|
|
1448
|
+
undo: () => c(y),
|
|
1449
1449
|
redo: () => c(x)
|
|
1450
1450
|
});
|
|
1451
1451
|
}
|
|
@@ -1486,9 +1486,9 @@ const useAddBlock = () => {
|
|
|
1486
1486
|
for (let h = 0; h < i.length; h++) {
|
|
1487
1487
|
const { _id: x } = i[h];
|
|
1488
1488
|
i[h]._id = generateUUID();
|
|
1489
|
-
const
|
|
1490
|
-
for (let
|
|
1491
|
-
b
|
|
1489
|
+
const y = filter(i, { _parent: x });
|
|
1490
|
+
for (let b = 0; b < y.length; b++)
|
|
1491
|
+
y[b]._parent = i[h]._id;
|
|
1492
1492
|
}
|
|
1493
1493
|
const p = first(i);
|
|
1494
1494
|
let u, g;
|
|
@@ -1499,8 +1499,8 @@ const useAddBlock = () => {
|
|
|
1499
1499
|
return { addCoreBlock: useCallback(
|
|
1500
1500
|
(i, c, d) => {
|
|
1501
1501
|
if (has(i, "blocks")) {
|
|
1502
|
-
const
|
|
1503
|
-
return a(
|
|
1502
|
+
const y = i.blocks;
|
|
1503
|
+
return a(y, c, d);
|
|
1504
1504
|
}
|
|
1505
1505
|
const p = generateUUID(), u = getDefaultBlockProps(i.type), g = {
|
|
1506
1506
|
_type: i.type,
|
|
@@ -2957,42 +2957,42 @@ const getBlockWithChildren = (o, n) => {
|
|
|
2957
2957
|
})
|
|
2958
2958
|
), addLangToPrompt = (o, n, r) => !n || r !== "content" ? o : `${o}. Generate content in ${get(LANGUAGES, n, n)} language.`, askAiProcessingAtom = atom$1(!1), useAskAi = () => {
|
|
2959
2959
|
const [o, n] = useAtom$1(askAiProcessingAtom), [r, a] = useState(null), l = useBuilderProp("askAiCallBack", null), i = useStreamMultipleBlocksProps(), c = useUpdateMultipleBlocksProps(), [d] = useBlocksStore(), { selectedLang: p, fallbackLang: u } = useLanguages(), g = p.length ? p : u, f = (m, h) => {
|
|
2960
|
-
const x = cloneDeep(h.find((
|
|
2961
|
-
for (const
|
|
2962
|
-
const
|
|
2963
|
-
if (typeof
|
|
2964
|
-
const { baseClasses: B, classes:
|
|
2965
|
-
x[
|
|
2960
|
+
const x = cloneDeep(h.find((y) => y._id === m));
|
|
2961
|
+
for (const y in x) {
|
|
2962
|
+
const b = x[y];
|
|
2963
|
+
if (typeof b == "string" && startsWith(b, STYLES_KEY)) {
|
|
2964
|
+
const { baseClasses: B, classes: E } = getSplitChaiClasses(b);
|
|
2965
|
+
x[y] = compact(flattenDeep([B, E])).join(" ");
|
|
2966
2966
|
} else
|
|
2967
|
-
|
|
2967
|
+
y !== "_id" && delete x[y];
|
|
2968
2968
|
}
|
|
2969
2969
|
return x;
|
|
2970
2970
|
};
|
|
2971
2971
|
return {
|
|
2972
2972
|
askAi: useCallback(
|
|
2973
|
-
async (m, h, x,
|
|
2973
|
+
async (m, h, x, y) => {
|
|
2974
2974
|
if (l) {
|
|
2975
2975
|
n(!0), a(null);
|
|
2976
2976
|
try {
|
|
2977
|
-
const
|
|
2978
|
-
if (
|
|
2979
|
-
a(
|
|
2977
|
+
const b = p === u ? "" : p, B = m === "content" ? pickOnlyAIProps(cloneDeep(getBlockWithChildren(h, d)), p) : [f(h, d)], E = await l(m, addLangToPrompt(x, g, m), B, b), { blocks: w, error: _ } = E;
|
|
2978
|
+
if (_) {
|
|
2979
|
+
a(_);
|
|
2980
2980
|
return;
|
|
2981
2981
|
}
|
|
2982
2982
|
if (m === "styles") {
|
|
2983
|
-
const
|
|
2984
|
-
for (const
|
|
2985
|
-
|
|
2986
|
-
return
|
|
2983
|
+
const j = w.map((S) => {
|
|
2984
|
+
for (const C in S)
|
|
2985
|
+
C !== "_id" && (S[C] = `${STYLES_KEY},${S[C]}`);
|
|
2986
|
+
return S;
|
|
2987
2987
|
});
|
|
2988
|
-
c(
|
|
2988
|
+
c(j);
|
|
2989
2989
|
} else
|
|
2990
|
-
i(
|
|
2991
|
-
|
|
2992
|
-
} catch (
|
|
2993
|
-
a(
|
|
2990
|
+
i(w);
|
|
2991
|
+
y && y(E);
|
|
2992
|
+
} catch (b) {
|
|
2993
|
+
a(b);
|
|
2994
2994
|
} finally {
|
|
2995
|
-
n(!1),
|
|
2995
|
+
n(!1), y && y();
|
|
2996
2996
|
}
|
|
2997
2997
|
}
|
|
2998
2998
|
},
|
|
@@ -3576,26 +3576,26 @@ const useDnd = () => {
|
|
|
3576
3576
|
m.preventDefault(), m.stopPropagation(), throttledDragOver(m);
|
|
3577
3577
|
},
|
|
3578
3578
|
onDrop: (m) => {
|
|
3579
|
-
var
|
|
3580
|
-
const h = dropTarget,
|
|
3581
|
-
dropIndex = calculateDropIndex(
|
|
3582
|
-
const
|
|
3583
|
-
if ((
|
|
3579
|
+
var _;
|
|
3580
|
+
const h = dropTarget, y = getOrientation(h) === "vertical" ? m.clientY + ((_ = iframeDocument == null ? void 0 : iframeDocument.defaultView) == null ? void 0 : _.scrollY) : m.clientX;
|
|
3581
|
+
dropIndex = calculateDropIndex(y, possiblePositions);
|
|
3582
|
+
const b = d, B = h.getAttribute("data-block-id"), E = dropTarget.getAttribute("data-dnd-dragged") !== "yes";
|
|
3583
|
+
if ((b == null ? void 0 : b._id) === B || !E) {
|
|
3584
3584
|
f();
|
|
3585
3585
|
return;
|
|
3586
3586
|
}
|
|
3587
|
-
if (!has(
|
|
3588
|
-
a(
|
|
3587
|
+
if (!has(b, "_id")) {
|
|
3588
|
+
a(b, B === "canvas" ? null : B, dropIndex), setTimeout(f, 300);
|
|
3589
3589
|
return;
|
|
3590
3590
|
}
|
|
3591
|
-
let
|
|
3592
|
-
|
|
3591
|
+
let w = h.getAttribute("data-block-id");
|
|
3592
|
+
w === null && (w = m.target.parentElement.getAttribute("data-block-id")), c([b._id], w === "canvas" ? null : w, dropIndex), f(), setTimeout(removePlaceholder, 300);
|
|
3593
3593
|
},
|
|
3594
3594
|
onDragEnter: (m) => {
|
|
3595
3595
|
const h = m, x = h.target;
|
|
3596
3596
|
dropTarget = x;
|
|
3597
|
-
const
|
|
3598
|
-
u(
|
|
3597
|
+
const y = x.getAttribute("data-block-id"), b = x.getAttribute("data-dnd-dragged") !== "yes";
|
|
3598
|
+
u(y), h.stopPropagation(), h.preventDefault(), possiblePositions = [], b && calculatePossiblePositions(x), r(!0), l(""), i([]);
|
|
3599
3599
|
},
|
|
3600
3600
|
onDragLeave: (m) => {
|
|
3601
3601
|
m.target.getAttribute("data-block-id") === "canvas" && (u(null), r(!1), removePlaceholder(), possiblePositions = []);
|
|
@@ -3673,8 +3673,8 @@ const useHandleCanvasDblClick = (o, n) => {
|
|
|
3673
3673
|
if (h) {
|
|
3674
3674
|
const x = h.getAttribute("data-style-prop");
|
|
3675
3675
|
if (x) {
|
|
3676
|
-
const
|
|
3677
|
-
l([{ id:
|
|
3676
|
+
const y = h.getAttribute("data-style-id"), b = h.getAttribute("data-block-parent");
|
|
3677
|
+
l([{ id: y, prop: x, blockId: b }]);
|
|
3678
3678
|
}
|
|
3679
3679
|
}
|
|
3680
3680
|
}, 100);
|
|
@@ -3726,22 +3726,22 @@ const useHandleCanvasDblClick = (o, n) => {
|
|
|
3726
3726
|
forms,
|
|
3727
3727
|
aspectRatio,
|
|
3728
3728
|
containerQueries,
|
|
3729
|
-
plugin(function({ addBase:
|
|
3730
|
-
|
|
3729
|
+
plugin(function({ addBase: y, theme: b }) {
|
|
3730
|
+
y({
|
|
3731
3731
|
"h1,h2,h3,h4,h5,h6": {
|
|
3732
|
-
fontFamily:
|
|
3732
|
+
fontFamily: b("fontFamily.heading")
|
|
3733
3733
|
},
|
|
3734
3734
|
body: {
|
|
3735
|
-
fontFamily:
|
|
3736
|
-
color:
|
|
3737
|
-
backgroundColor:
|
|
3735
|
+
fontFamily: b("fontFamily.body"),
|
|
3736
|
+
color: b("colors.foreground"),
|
|
3737
|
+
backgroundColor: b("colors.background")
|
|
3738
3738
|
}
|
|
3739
3739
|
});
|
|
3740
3740
|
})
|
|
3741
3741
|
]
|
|
3742
3742
|
});
|
|
3743
3743
|
}, [o, n, p]), useEffect(() => {
|
|
3744
|
-
g && (g.textContent = `${map(r, (
|
|
3744
|
+
g && (g.textContent = `${map(r, (y) => `[data-block-id="${y}"]`).join(",")}{
|
|
3745
3745
|
outline: 1px solid ${r.length === 1 ? "#42a1fc !important" : "orange !important"}; outline-offset: -1px;
|
|
3746
3746
|
}`);
|
|
3747
3747
|
}, [r, g]), useEffect(() => {
|
|
@@ -3749,7 +3749,7 @@ const useHandleCanvasDblClick = (o, n) => {
|
|
|
3749
3749
|
}, [i, m]), useEffect(() => {
|
|
3750
3750
|
u && (u.textContent = '[data-highlighted="true"]{ outline: 1px solid #42a1fc !important; outline-offset: -1px;}');
|
|
3751
3751
|
}, [u]), useEffect(() => {
|
|
3752
|
-
f && (f.textContent = `${map(l, ({ id:
|
|
3752
|
+
f && (f.textContent = `${map(l, ({ id: y }) => `[data-style-id="${y}"]`).join(",")}{
|
|
3753
3753
|
outline: 1px solid orange !important; outline-offset: -1px;
|
|
3754
3754
|
}`);
|
|
3755
3755
|
}, [l, f]), useEffect(() => {
|
|
@@ -3844,7 +3844,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
3844
3844
|
), m = useMemo(() => getBlockTagAttributes(r), [r, getBlockTagAttributes]), h = useMemo(
|
|
3845
3845
|
() => c(r._id, getBlockRuntimeProps(r._type)),
|
|
3846
3846
|
[r._id, r._type, c, getBlockRuntimeProps]
|
|
3847
|
-
), x = useMemo(() => !has(a, "dataProvider") || !isFunction$1(a.dataProvider) ? {} : a.dataProvider(r, l), [r, l, a]),
|
|
3847
|
+
), x = useMemo(() => !has(a, "dataProvider") || !isFunction$1(a.dataProvider) ? {} : a.dataProvider(r, l), [r, l, a]), y = useMemo(
|
|
3848
3848
|
() => ({
|
|
3849
3849
|
blockProps: {
|
|
3850
3850
|
"data-block-id": r._id,
|
|
@@ -3868,7 +3868,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
3868
3868
|
x
|
|
3869
3869
|
]
|
|
3870
3870
|
);
|
|
3871
|
-
return isNull(g) || p.includes(r._id) ? null : /* @__PURE__ */ jsx(Suspense, { children: createElement(g, { ...
|
|
3871
|
+
return isNull(g) || p.includes(r._id) ? null : /* @__PURE__ */ jsx(Suspense, { children: createElement(g, { ...y, children: n }) });
|
|
3872
3872
|
}, PartialBlocksRenderer = ({ partialBlockId: o }) => {
|
|
3873
3873
|
const { getPartailBlocks: n } = usePartailBlocksStore(), r = useMemo(() => n(o), [n, o]), a = useMemo(() => splitAtom(atom$1(r)), [r]);
|
|
3874
3874
|
return isEmpty(r) ? null : /* @__PURE__ */ jsx(BlocksRenderer, { splitAtoms: a, blocks: r });
|
|
@@ -3918,43 +3918,43 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
3918
3918
|
c();
|
|
3919
3919
|
}, [n, o, r, c]), l;
|
|
3920
3920
|
}, getElementByStyleId = (o, n) => o.querySelector(`[data-style-id="${n}"]`), StaticCanvas = () => {
|
|
3921
|
-
const [o] = useAtom$1(networkModeAtom), [n] = useCanvasDisplayWidth(), [, r] = useSelectedBlockIds(), a = useSelectedBlock(), [, l] = useHighlightBlockId(), i = useRef(null), c = useRef(null), [d, p] = useState({ width: 0, height: 0 }), u = useCanvasScale(d), [g, f] = useState([]), [, m] = useState([]), [, h] = useAtom$1(canvasIframeAtom), [x,
|
|
3922
|
-
p((
|
|
3921
|
+
const [o] = useAtom$1(networkModeAtom), [n] = useCanvasDisplayWidth(), [, r] = useSelectedBlockIds(), a = useSelectedBlock(), [, l] = useHighlightBlockId(), i = useRef(null), c = useRef(null), [d, p] = useState({ width: 0, height: 0 }), u = useCanvasScale(d), [g, f] = useState([]), [, m] = useState([]), [, h] = useAtom$1(canvasIframeAtom), [x, y] = useSelectedStylingBlocks(), b = useBuilderProp("loading", !1), B = useBuilderProp("htmlDir", "ltr"), E = (j) => {
|
|
3922
|
+
p((S) => ({ ...S, width: j }));
|
|
3923
3923
|
};
|
|
3924
3924
|
useEffect(() => {
|
|
3925
3925
|
if (!c.current) return;
|
|
3926
|
-
const { clientWidth:
|
|
3927
|
-
p({ width:
|
|
3926
|
+
const { clientWidth: j, clientHeight: S } = c.current;
|
|
3927
|
+
p({ width: j, height: S });
|
|
3928
3928
|
}, [c, n]);
|
|
3929
|
-
const
|
|
3930
|
-
const { top:
|
|
3931
|
-
return
|
|
3929
|
+
const w = (j, S = 0) => {
|
|
3930
|
+
const { top: C } = j.getBoundingClientRect();
|
|
3931
|
+
return C + S >= 0 && C - S <= window.innerHeight;
|
|
3932
3932
|
};
|
|
3933
3933
|
useEffect(() => {
|
|
3934
|
-
var
|
|
3934
|
+
var j, S;
|
|
3935
3935
|
if (a && a.type !== "Multiple" && i.current) {
|
|
3936
|
-
const
|
|
3937
|
-
|
|
3936
|
+
const C = getElementByDataBlockId(i.current.contentDocument, a._id);
|
|
3937
|
+
C && (w(C) || (S = (j = i.current) == null ? void 0 : j.contentWindow) == null || S.scrollTo({ top: C.offsetTop, behavior: "smooth" }), f([C]));
|
|
3938
3938
|
}
|
|
3939
3939
|
}, [a]), useEffect(() => {
|
|
3940
3940
|
if (!isEmpty(x) && i.current) {
|
|
3941
|
-
const
|
|
3941
|
+
const j = getElementByStyleId(
|
|
3942
3942
|
i.current.contentDocument,
|
|
3943
3943
|
first(x).id
|
|
3944
3944
|
);
|
|
3945
|
-
m(
|
|
3945
|
+
m(j ? [j] : [null]);
|
|
3946
3946
|
} else
|
|
3947
3947
|
m([null]);
|
|
3948
3948
|
}, [x]);
|
|
3949
|
-
const
|
|
3950
|
-
let
|
|
3951
|
-
return
|
|
3949
|
+
const _ = useMemo(() => {
|
|
3950
|
+
let j = IframeInitialContent;
|
|
3951
|
+
return j = j.replace("__HTML_DIR__", B), o === "offline" && (j = j.replace("https://chaibuilder.com/offline/tailwind.cdn.js", "/offline/tailwind.cdn.js")), j;
|
|
3952
3952
|
}, [o, B]);
|
|
3953
|
-
return /* @__PURE__ */ jsx(ResizableCanvasWrapper, { onMount:
|
|
3953
|
+
return /* @__PURE__ */ jsx(ResizableCanvasWrapper, { onMount: E, onResize: E, children: /* @__PURE__ */ jsx(
|
|
3954
3954
|
"div",
|
|
3955
3955
|
{
|
|
3956
3956
|
onClick: () => {
|
|
3957
|
-
r([]),
|
|
3957
|
+
r([]), y([]);
|
|
3958
3958
|
},
|
|
3959
3959
|
onMouseLeave: () => setTimeout(() => l(""), 300),
|
|
3960
3960
|
className: "relative mx-auto h-full w-full overflow-hidden",
|
|
@@ -3967,7 +3967,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
3967
3967
|
id: "canvas-iframe",
|
|
3968
3968
|
style: { ...u, ...isEmpty(u) ? { width: `${n}px` } : {} },
|
|
3969
3969
|
className: "relative mx-auto box-content h-full w-full max-w-full shadow-lg transition-all duration-300 ease-linear",
|
|
3970
|
-
initialContent:
|
|
3970
|
+
initialContent: _,
|
|
3971
3971
|
children: [
|
|
3972
3972
|
/* @__PURE__ */ jsx(KeyboardHandler, {}),
|
|
3973
3973
|
/* @__PURE__ */ jsx(
|
|
@@ -3979,7 +3979,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
3979
3979
|
),
|
|
3980
3980
|
/* @__PURE__ */ jsx(HeadTags, {}),
|
|
3981
3981
|
/* @__PURE__ */ jsx(Provider$1, { children: /* @__PURE__ */ jsxs(Canvas, { children: [
|
|
3982
|
-
|
|
3982
|
+
b ? /* @__PURE__ */ jsx("div", { className: "h-full p-4", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-full" }) }) : /* @__PURE__ */ jsx(StaticBlocksRenderer, {}),
|
|
3983
3983
|
/* @__PURE__ */ jsx(AddBlockAtBottom, {}),
|
|
3984
3984
|
/* @__PURE__ */ jsx("br", {}),
|
|
3985
3985
|
/* @__PURE__ */ jsx("br", {}),
|
|
@@ -4029,7 +4029,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
4029
4029
|
l !== o.length - 1 && /* @__PURE__ */ jsx(ChevronRight, { className: "rtl:rotate-180", size: 16 })
|
|
4030
4030
|
] }, l))
|
|
4031
4031
|
] }) });
|
|
4032
|
-
}, CodeEditor$1 = React__default.lazy(() => import("./CodeEditor-
|
|
4032
|
+
}, CodeEditor$1 = React__default.lazy(() => import("./CodeEditor-C-jeR5bt.js")), CanvasArea = () => {
|
|
4033
4033
|
const [o] = useCodeEditor(), n = useBuilderProp("onError", noop);
|
|
4034
4034
|
return /* @__PURE__ */ jsx("div", { className: "flex h-full max-h-full w-full flex-1 flex-col", children: /* @__PURE__ */ jsxs("div", { className: "relative flex h-full max-h-full flex-col overflow-hidden bg-gray-100/40 px-2", children: [
|
|
4035
4035
|
/* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Skeleton, { className: "h-full" }), children: /* @__PURE__ */ jsx(ErrorBoundary, { fallback: /* @__PURE__ */ jsx(FallbackError, {}), onError: n, children: /* @__PURE__ */ jsx(StaticCanvas, {}) }) }),
|
|
@@ -4140,62 +4140,62 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
4140
4140
|
}
|
|
4141
4141
|
);
|
|
4142
4142
|
}, ThemeConfigPanel = React.memo(({ className: o = "" }) => {
|
|
4143
|
-
const [n] = useDarkMode(), [r, a] = React.useState(""), l = useBuilderProp("themePresets", []), i = useBuilderProp("themePanelComponent", null), [c, d] = useTheme(), p = useThemeOptions(), { t: u } = useTranslation(), g = (
|
|
4144
|
-
a(
|
|
4143
|
+
const [n] = useDarkMode(), [r, a] = React.useState(""), l = useBuilderProp("themePresets", []), i = useBuilderProp("themePanelComponent", null), [c, d] = useTheme(), p = useThemeOptions(), { t: u } = useTranslation(), g = (b) => {
|
|
4144
|
+
a(b);
|
|
4145
4145
|
}, f = () => {
|
|
4146
|
-
const
|
|
4147
|
-
if (
|
|
4148
|
-
const B = Object.values(
|
|
4146
|
+
const b = l.find((B) => Object.keys(B)[0] === r);
|
|
4147
|
+
if (b) {
|
|
4148
|
+
const B = Object.values(b)[0];
|
|
4149
4149
|
B && typeof B == "object" && "fontFamily" in B && "borderRadius" in B && "colors" in B ? d(B) : console.error("Invalid preset structure:", B);
|
|
4150
4150
|
} else
|
|
4151
4151
|
console.error("Preset not found:", r);
|
|
4152
4152
|
}, m = useDebouncedCallback(
|
|
4153
|
-
(
|
|
4153
|
+
(b, B) => {
|
|
4154
4154
|
d(() => ({
|
|
4155
4155
|
...c,
|
|
4156
4156
|
fontFamily: {
|
|
4157
4157
|
...c.fontFamily,
|
|
4158
|
-
[
|
|
4158
|
+
[b.replace(/font-/g, "")]: B
|
|
4159
4159
|
}
|
|
4160
4160
|
}));
|
|
4161
4161
|
},
|
|
4162
4162
|
[c],
|
|
4163
4163
|
200
|
|
4164
4164
|
), h = useDebouncedCallback(
|
|
4165
|
-
(
|
|
4165
|
+
(b) => {
|
|
4166
4166
|
d(() => ({
|
|
4167
4167
|
...c,
|
|
4168
|
-
borderRadius: `${
|
|
4168
|
+
borderRadius: `${b}px`
|
|
4169
4169
|
}));
|
|
4170
4170
|
},
|
|
4171
4171
|
[c],
|
|
4172
4172
|
200
|
|
4173
4173
|
), x = useDebouncedCallback(
|
|
4174
|
-
(
|
|
4174
|
+
(b, B) => {
|
|
4175
4175
|
d(() => {
|
|
4176
|
-
const
|
|
4177
|
-
return n ? set(
|
|
4176
|
+
const E = get(c, `colors.${b}`);
|
|
4177
|
+
return n ? set(E, 1, B) : set(E, 0, B), {
|
|
4178
4178
|
...c,
|
|
4179
4179
|
colors: {
|
|
4180
4180
|
...c.colors,
|
|
4181
|
-
[
|
|
4181
|
+
[b]: E
|
|
4182
4182
|
}
|
|
4183
4183
|
};
|
|
4184
4184
|
});
|
|
4185
4185
|
},
|
|
4186
4186
|
[c],
|
|
4187
4187
|
200
|
|
4188
|
-
),
|
|
4189
|
-
const
|
|
4188
|
+
), y = (b) => /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1", children: Object.entries(b.items).map(([B]) => {
|
|
4189
|
+
const E = get(c, `colors.${B}.${n ? 1 : 0}`);
|
|
4190
4190
|
return /* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-center gap-x-2", children: [
|
|
4191
4191
|
/* @__PURE__ */ jsx(
|
|
4192
4192
|
ColorPickerInput,
|
|
4193
4193
|
{
|
|
4194
|
-
value:
|
|
4195
|
-
onChange: (
|
|
4194
|
+
value: E,
|
|
4195
|
+
onChange: (w) => x(B, w)
|
|
4196
4196
|
}
|
|
4197
4197
|
),
|
|
4198
|
-
/* @__PURE__ */ jsx(Label, { className: "text-xs font-normal leading-tight text-slate-600", children: B.split(/(?=[A-Z])/).join(" ").replace(/-/g, " ").split(" ").map((
|
|
4198
|
+
/* @__PURE__ */ jsx(Label, { className: "text-xs font-normal leading-tight text-slate-600", children: B.split(/(?=[A-Z])/).join(" ").replace(/-/g, " ").split(" ").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ") + (!B.toLowerCase().includes("foreground") && !B.toLowerCase().includes("border") && !B.toLowerCase().includes("input") && !B.toLowerCase().includes("ring") && !B.toLowerCase().includes("background") ? " Background" : "") })
|
|
4199
4199
|
] }, B);
|
|
4200
4200
|
}) });
|
|
4201
4201
|
return /* @__PURE__ */ jsxs("div", { className: "relative w-full", children: [
|
|
@@ -4207,11 +4207,11 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
4207
4207
|
"select",
|
|
4208
4208
|
{
|
|
4209
4209
|
value: r,
|
|
4210
|
-
onChange: (
|
|
4210
|
+
onChange: (b) => g(b.target.value),
|
|
4211
4211
|
className: "w-full space-y-0.5 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
4212
4212
|
children: [
|
|
4213
4213
|
/* @__PURE__ */ jsx("option", { value: "", children: "Select preset" }),
|
|
4214
|
-
Array.isArray(l) && l.map((
|
|
4214
|
+
Array.isArray(l) && l.map((b) => /* @__PURE__ */ jsx("option", { value: Object.keys(b)[0], children: capitalize(Object.keys(b)[0]) }, Object.keys(b)[0]))
|
|
4215
4215
|
]
|
|
4216
4216
|
}
|
|
4217
4217
|
)
|
|
@@ -4228,14 +4228,14 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
4228
4228
|
) })
|
|
4229
4229
|
] }),
|
|
4230
4230
|
/* @__PURE__ */ jsxs("div", { className: cn$1("space-y-2", o), children: [
|
|
4231
|
-
(p == null ? void 0 : p.fontFamily) && /* @__PURE__ */ jsx("div", { className: "grid gap-4", children: Object.entries(p.fontFamily).map(([
|
|
4231
|
+
(p == null ? void 0 : p.fontFamily) && /* @__PURE__ */ jsx("div", { className: "grid gap-4", children: Object.entries(p.fontFamily).map(([b, B]) => /* @__PURE__ */ jsx(
|
|
4232
4232
|
FontSelector,
|
|
4233
4233
|
{
|
|
4234
|
-
label:
|
|
4235
|
-
value: c.fontFamily[
|
|
4236
|
-
onChange: (
|
|
4234
|
+
label: b,
|
|
4235
|
+
value: c.fontFamily[b.replace(/font-/g, "")] || B[Object.keys(B)[0]],
|
|
4236
|
+
onChange: (E) => m(b, E)
|
|
4237
4237
|
},
|
|
4238
|
-
|
|
4238
|
+
b
|
|
4239
4239
|
)) }),
|
|
4240
4240
|
(p == null ? void 0 : p.borderRadius) && /* @__PURE__ */ jsxs("div", { className: "space-y-0.5 py-3", children: [
|
|
4241
4241
|
/* @__PURE__ */ jsx(Label, { className: "text-sm text-slate-800", children: u("Border Radius") }),
|
|
@@ -4246,7 +4246,7 @@ const getBlockRuntimeProps = memoize((o) => {
|
|
|
4246
4246
|
] }),
|
|
4247
4247
|
(p == null ? void 0 : p.colors) && /* @__PURE__ */ jsxs("div", { className: "mt-4 space-y-0.5", children: [
|
|
4248
4248
|
/* @__PURE__ */ jsx(Label, { className: "text-sm text-slate-800", children: u("Colors") }),
|
|
4249
|
-
/* @__PURE__ */ jsx("div", { className: "w-full space-y-4 pt-2", children: p.colors.map((
|
|
4249
|
+
/* @__PURE__ */ jsx("div", { className: "w-full space-y-4 pt-2", children: p.colors.map((b) => y(b)) }, n ? "dark" : "light")
|
|
4250
4250
|
] })
|
|
4251
4251
|
] }),
|
|
4252
4252
|
/* @__PURE__ */ jsx("br", {}),
|
|
@@ -4389,14 +4389,14 @@ function NestedPathSelector({ data: o, onSelect: n, dataType: r = "value" }) {
|
|
|
4389
4389
|
}, [a, o]);
|
|
4390
4390
|
const u = (h) => Array.isArray(h) ? "array" : typeof h == "object" && h !== null ? "object" : "value", g = React.useCallback(
|
|
4391
4391
|
(h) => {
|
|
4392
|
-
const x = (
|
|
4393
|
-
h.type === "object" ? (c((
|
|
4392
|
+
const x = (y) => r === "value" ? y === "value" || y === "object" : r === "array" ? y === "array" : y === r;
|
|
4393
|
+
h.type === "object" ? (c((y) => [...y, h.key]), p(h.value)) : x(h.type) && (n([...i, h.key].join(".")), l(!1));
|
|
4394
4394
|
},
|
|
4395
4395
|
[i, n, r]
|
|
4396
4396
|
), f = React.useCallback(() => {
|
|
4397
4397
|
if (i.length > 0) {
|
|
4398
4398
|
const h = i.slice(0, -1);
|
|
4399
|
-
c(h), p(h.reduce((x,
|
|
4399
|
+
c(h), p(h.reduce((x, y) => x[y], o));
|
|
4400
4400
|
}
|
|
4401
4401
|
}, [i, o]), m = React.useMemo(() => Object.entries(d).map(([h, x]) => ({
|
|
4402
4402
|
key: h,
|
|
@@ -4671,11 +4671,11 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4671
4671
|
if (h !== x)
|
|
4672
4672
|
u.chain().deleteSelection().insertContent(m).run();
|
|
4673
4673
|
else {
|
|
4674
|
-
const { state:
|
|
4675
|
-
let
|
|
4676
|
-
B > 0 &&
|
|
4677
|
-
let
|
|
4678
|
-
|
|
4674
|
+
const { state: b } = u, B = b.selection.from, E = b.doc.textBetween(Math.max(0, B - 1), B), w = b.doc.textBetween(B, Math.min(B + 1, b.doc.content.size));
|
|
4675
|
+
let _ = "";
|
|
4676
|
+
B > 0 && E !== " " && !/[.,!?;:]/.test(E) && (_ = " ");
|
|
4677
|
+
let j = "";
|
|
4678
|
+
w && w !== " " && !/[.,!?;:]/.test(w) && (j = " "), u.chain().insertContent(_ + m + j).run();
|
|
4679
4679
|
}
|
|
4680
4680
|
};
|
|
4681
4681
|
return /* @__PURE__ */ jsx(Dialog, { open: o, onOpenChange: (f) => !f && n(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "max-h-[90vh] overflow-y-auto sm:max-w-[800px]", children: [
|
|
@@ -4757,16 +4757,16 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4757
4757
|
onChange: r
|
|
4758
4758
|
}) => {
|
|
4759
4759
|
var L;
|
|
4760
|
-
const { t: a } = useTranslation(), l = useBuilderProp("searchPageTypeItems", (v, k) => []), [i, c] = useState(!1), [d, p] = useState(!1), [u, g] = useState("page"), [f, m] = useState(""), [h, x] = useState([]), [
|
|
4760
|
+
const { t: a } = useTranslation(), l = useBuilderProp("searchPageTypeItems", (v, k) => []), [i, c] = useState(!1), [d, p] = useState(!1), [u, g] = useState("page"), [f, m] = useState(""), [h, x] = useState([]), [y, b] = useState(-1), B = useRef(null), E = (L = n == null ? void 0 : n.find((v) => v.key === u)) == null ? void 0 : L.name;
|
|
4761
4761
|
useEffect(() => {
|
|
4762
|
-
if (m(""), x([]),
|
|
4762
|
+
if (m(""), x([]), b(-1), p(!1), !o || i || !startsWith(o, "pageType:")) return;
|
|
4763
4763
|
const v = split(o, ":"), k = get(v, 1, "page") || "page";
|
|
4764
4764
|
g(k), (async () => {
|
|
4765
|
-
const
|
|
4766
|
-
|
|
4765
|
+
const A = await l(k, [get(v, 2, "page")]);
|
|
4766
|
+
A && Array.isArray(A) && m(get(A, [0, "name"], ""));
|
|
4767
4767
|
})();
|
|
4768
4768
|
}, [o]);
|
|
4769
|
-
const
|
|
4769
|
+
const w = useDebouncedCallback(
|
|
4770
4770
|
async (v) => {
|
|
4771
4771
|
if (isEmpty(v))
|
|
4772
4772
|
x([]);
|
|
@@ -4774,40 +4774,40 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4774
4774
|
const k = await l(u, v);
|
|
4775
4775
|
x(k);
|
|
4776
4776
|
}
|
|
4777
|
-
c(!1),
|
|
4777
|
+
c(!1), b(-1);
|
|
4778
4778
|
},
|
|
4779
4779
|
[u],
|
|
4780
4780
|
300
|
|
4781
|
-
),
|
|
4781
|
+
), _ = (v) => {
|
|
4782
4782
|
const k = ["pageType", u, v.id];
|
|
4783
|
-
k[1] && (r(k.join(":")), m(v.name), p(!1), x([]),
|
|
4784
|
-
},
|
|
4783
|
+
k[1] && (r(k.join(":")), m(v.name), p(!1), x([]), b(-1));
|
|
4784
|
+
}, j = (v) => {
|
|
4785
4785
|
switch (v.key) {
|
|
4786
4786
|
case "ArrowDown":
|
|
4787
|
-
v.preventDefault(),
|
|
4787
|
+
v.preventDefault(), b((k) => k < h.length - 1 ? k + 1 : k);
|
|
4788
4788
|
break;
|
|
4789
4789
|
case "ArrowUp":
|
|
4790
|
-
v.preventDefault(),
|
|
4790
|
+
v.preventDefault(), b((k) => k > 0 ? k - 1 : k);
|
|
4791
4791
|
break;
|
|
4792
4792
|
case "Enter":
|
|
4793
4793
|
if (v.preventDefault(), h.length === 0) return;
|
|
4794
|
-
|
|
4794
|
+
y >= 0 && _(h[y]);
|
|
4795
4795
|
break;
|
|
4796
4796
|
case "Escape":
|
|
4797
|
-
v.preventDefault(),
|
|
4797
|
+
v.preventDefault(), S();
|
|
4798
4798
|
break;
|
|
4799
4799
|
}
|
|
4800
4800
|
};
|
|
4801
4801
|
useEffect(() => {
|
|
4802
|
-
if (
|
|
4803
|
-
const v = B.current.children[
|
|
4802
|
+
if (y >= 0 && B.current) {
|
|
4803
|
+
const v = B.current.children[y];
|
|
4804
4804
|
v == null || v.scrollIntoView({ block: "nearest" });
|
|
4805
4805
|
}
|
|
4806
|
-
}, [
|
|
4807
|
-
const
|
|
4808
|
-
m(""), x([]),
|
|
4809
|
-
},
|
|
4810
|
-
m(v), p(!isEmpty(v)), c(!0),
|
|
4806
|
+
}, [y]);
|
|
4807
|
+
const S = () => {
|
|
4808
|
+
m(""), x([]), b(-1), p(!1), r("");
|
|
4809
|
+
}, C = (v) => {
|
|
4810
|
+
m(v), p(!isEmpty(v)), c(!0), w(v);
|
|
4811
4811
|
};
|
|
4812
4812
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
4813
4813
|
/* @__PURE__ */ jsx("select", { name: "pageType", value: u, onChange: (v) => g(v.target.value), children: map(n, (v) => /* @__PURE__ */ jsx("option", { value: v.key, children: v.name }, v.key)) }),
|
|
@@ -4817,13 +4817,13 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4817
4817
|
{
|
|
4818
4818
|
type: "text",
|
|
4819
4819
|
value: f,
|
|
4820
|
-
onChange: (v) =>
|
|
4821
|
-
onKeyDown:
|
|
4822
|
-
placeholder: a(`Search ${
|
|
4820
|
+
onChange: (v) => C(v.target.value),
|
|
4821
|
+
onKeyDown: j,
|
|
4822
|
+
placeholder: a(`Search ${E ?? ""}`),
|
|
4823
4823
|
className: "w-full rounded-md border border-gray-300 p-2 pr-16"
|
|
4824
4824
|
}
|
|
4825
4825
|
),
|
|
4826
|
-
/* @__PURE__ */ jsx("div", { className: "absolute bottom-2 right-2 top-3 flex items-center gap-1.5", children: f && /* @__PURE__ */ jsx("button", { onClick:
|
|
4826
|
+
/* @__PURE__ */ jsx("div", { className: "absolute bottom-2 right-2 top-3 flex items-center gap-1.5", children: f && /* @__PURE__ */ jsx("button", { onClick: S, className: "text-gray-400 hover:text-gray-600", title: a("Clear search"), children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }) }) })
|
|
4827
4827
|
] }),
|
|
4828
4828
|
(i || !isEmpty(h) || d && isEmpty(h)) && /* @__PURE__ */ jsx("div", { className: "absolute z-40 mt-2 max-h-40 w-full max-w-[250px] overflow-y-auto rounded-md border border-border bg-background shadow-lg", children: i ? /* @__PURE__ */ jsxs("div", { className: "space-y-1 p-2", children: [
|
|
4829
4829
|
/* @__PURE__ */ jsx("div", { className: "h-6 w-full animate-pulse rounded bg-gray-200" }),
|
|
@@ -4836,8 +4836,8 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4836
4836
|
] }) : /* @__PURE__ */ jsx("ul", { ref: B, children: map(h == null ? void 0 : h.slice(0, 20), (v, k) => /* @__PURE__ */ jsxs(
|
|
4837
4837
|
"li",
|
|
4838
4838
|
{
|
|
4839
|
-
onClick: () =>
|
|
4840
|
-
className: `cursor-pointer p-2 text-xs ${o != null && o.includes(v.id) ? "bg-blue-200" : k ===
|
|
4839
|
+
onClick: () => _(v),
|
|
4840
|
+
className: `cursor-pointer p-2 text-xs ${o != null && o.includes(v.id) ? "bg-blue-200" : k === y ? "bg-gray-100" : "hover:bg-gray-100"}`,
|
|
4841
4841
|
children: [
|
|
4842
4842
|
v.name,
|
|
4843
4843
|
" ",
|
|
@@ -4933,23 +4933,23 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
4933
4933
|
const f = () => {
|
|
4934
4934
|
const x = findIndex(u, { _id: g });
|
|
4935
4935
|
if (x > -1) {
|
|
4936
|
-
const
|
|
4937
|
-
if (!
|
|
4938
|
-
n({ ...o, currentSlide:
|
|
4936
|
+
const y = (x + 1) % u.length, b = get(u, [y, "_id"]);
|
|
4937
|
+
if (!b) return;
|
|
4938
|
+
n({ ...o, currentSlide: b }), c([b]);
|
|
4939
4939
|
}
|
|
4940
4940
|
}, m = () => {
|
|
4941
4941
|
const x = findIndex(u, { _id: g });
|
|
4942
4942
|
if (x > -1) {
|
|
4943
|
-
const
|
|
4944
|
-
if (!
|
|
4945
|
-
n({ ...o, currentSlide:
|
|
4943
|
+
const y = (x - 1 + u.length) % u.length, b = get(u, [y, "_id"]);
|
|
4944
|
+
if (!b) return;
|
|
4945
|
+
n({ ...o, currentSlide: b }), c([b]);
|
|
4946
4946
|
}
|
|
4947
4947
|
}, h = () => {
|
|
4948
4948
|
const x = i(
|
|
4949
4949
|
{ styles: "#styles:,h-full w-full min-w-full", type: "Slide" },
|
|
4950
4950
|
p == null ? void 0 : p._id
|
|
4951
|
-
),
|
|
4952
|
-
|
|
4951
|
+
), y = x == null ? void 0 : x._id;
|
|
4952
|
+
y && (n({ ...o, currentSlide: y }), c([y]));
|
|
4953
4953
|
};
|
|
4954
4954
|
return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 px-2", children: [
|
|
4955
4955
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 pb-2 text-[12px]", children: [
|
|
@@ -5028,8 +5028,8 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
5028
5028
|
className: "text-xs",
|
|
5029
5029
|
pattern: "[0-9]*",
|
|
5030
5030
|
onChange: (x) => {
|
|
5031
|
-
let
|
|
5032
|
-
|
|
5031
|
+
let y = x.target.value;
|
|
5032
|
+
y.length && (y = y.replace("-", "")), n({ ...o, autoplayInterval: y });
|
|
5033
5033
|
}
|
|
5034
5034
|
}
|
|
5035
5035
|
)
|
|
@@ -5068,41 +5068,41 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
5068
5068
|
formData: g,
|
|
5069
5069
|
onChange: f
|
|
5070
5070
|
}) => {
|
|
5071
|
-
const { selectedLang: m, fallbackLang: h, languages: x } = useLanguages(),
|
|
5071
|
+
const { selectedLang: m, fallbackLang: h, languages: x } = useLanguages(), y = isEmpty(x) ? "" : isEmpty(m) ? h : m, b = get(LANGUAGES, y, y), B = usePageExternalData(), E = useSelectedBlock(), w = useRegisteredChaiBlocks(), _ = get(w, [E == null ? void 0 : E._type, "i18nProps"], []) || [], [j, S] = useState(null), C = useCallback(
|
|
5072
5072
|
(k) => {
|
|
5073
|
-
const
|
|
5074
|
-
let
|
|
5073
|
+
const A = (N) => /[.,!?;:]/.test(N), T = (N, D, M) => {
|
|
5074
|
+
let R = "", O = "";
|
|
5075
5075
|
const $ = D > 0 ? N[D - 1] : "", H = D < N.length ? N[D] : "";
|
|
5076
|
-
return D > 0 && ($ === "." || !
|
|
5077
|
-
text:
|
|
5078
|
-
prefixLength:
|
|
5076
|
+
return D > 0 && ($ === "." || !A($) && $ !== " ") && (R = " "), D < N.length && !A(H) && H !== " " && (O = " "), {
|
|
5077
|
+
text: R + M + O,
|
|
5078
|
+
prefixLength: R.length,
|
|
5079
5079
|
suffixLength: O.length
|
|
5080
5080
|
};
|
|
5081
5081
|
}, I = document.getElementById(o);
|
|
5082
5082
|
if (!I) return;
|
|
5083
|
-
const
|
|
5084
|
-
if (
|
|
5085
|
-
const N =
|
|
5083
|
+
const P = document.getElementById(`chai-rte-${o}`) || document.getElementById(`chai-rte-modal-${o}`);
|
|
5084
|
+
if (P && (P.querySelector(".ProseMirror") || P.__chaiRTE)) {
|
|
5085
|
+
const N = P.__chaiRTE;
|
|
5086
5086
|
if (N) {
|
|
5087
5087
|
const D = `{{${k}}}`;
|
|
5088
5088
|
N.commands.focus();
|
|
5089
|
-
const { from: M, to:
|
|
5090
|
-
if (M !==
|
|
5089
|
+
const { from: M, to: R } = N.state.selection;
|
|
5090
|
+
if (M !== R)
|
|
5091
5091
|
N.chain().deleteSelection().insertContent(D).run();
|
|
5092
5092
|
else {
|
|
5093
5093
|
const { state: $ } = N, H = $.selection.from, F = $.doc.textBetween(Math.max(0, H - 1), H), U = $.doc.textBetween(H, Math.min(H + 1, $.doc.content.size));
|
|
5094
5094
|
let z = "";
|
|
5095
|
-
H > 0 && F !== " " && !
|
|
5095
|
+
H > 0 && F !== " " && !A(F) && (z = " ");
|
|
5096
5096
|
let W = "";
|
|
5097
|
-
U && U !== " " && !
|
|
5097
|
+
U && U !== " " && !A(U) && (W = " "), N.chain().insertContent(z + D + W).run();
|
|
5098
5098
|
}
|
|
5099
5099
|
setTimeout(() => f(N.getHTML(), {}, o), 100);
|
|
5100
5100
|
return;
|
|
5101
5101
|
}
|
|
5102
5102
|
} else {
|
|
5103
|
-
const N = I, D = N.selectionStart || 0, M = N.value || "",
|
|
5104
|
-
if (
|
|
5105
|
-
const U = `{{${k}}}`, { text: z } = T(M, D, U), W = M.slice(0, D) + z + M.slice(
|
|
5103
|
+
const N = I, D = N.selectionStart || 0, M = N.value || "", R = N.selectionEnd || D;
|
|
5104
|
+
if (R > D) {
|
|
5105
|
+
const U = `{{${k}}}`, { text: z } = T(M, D, U), W = M.slice(0, D) + z + M.slice(R);
|
|
5106
5106
|
f(W, {}, o);
|
|
5107
5107
|
return;
|
|
5108
5108
|
}
|
|
@@ -5110,20 +5110,20 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
5110
5110
|
f(F, {}, o);
|
|
5111
5111
|
}
|
|
5112
5112
|
},
|
|
5113
|
-
[o, f, g,
|
|
5113
|
+
[o, f, g, E == null ? void 0 : E._id]
|
|
5114
5114
|
);
|
|
5115
5115
|
if (d)
|
|
5116
5116
|
return null;
|
|
5117
5117
|
if (u.type === "boolean") return /* @__PURE__ */ jsx("div", { className: n, children: a });
|
|
5118
|
-
const v =
|
|
5118
|
+
const v = _ == null ? void 0 : _.includes(o.replace("root.", ""));
|
|
5119
5119
|
if (u.type === "array") {
|
|
5120
|
-
const k =
|
|
5120
|
+
const k = j === o;
|
|
5121
5121
|
return /* @__PURE__ */ jsxs("div", { className: `${n} relative`, children: [
|
|
5122
5122
|
u.title && /* @__PURE__ */ jsxs(
|
|
5123
5123
|
"label",
|
|
5124
5124
|
{
|
|
5125
5125
|
htmlFor: o,
|
|
5126
|
-
onClick: () =>
|
|
5126
|
+
onClick: () => S(k ? null : o),
|
|
5127
5127
|
className: "flex cursor-pointer items-center gap-x-1 py-1 leading-tight duration-200 hover:bg-slate-100",
|
|
5128
5128
|
children: [
|
|
5129
5129
|
k ? /* @__PURE__ */ jsx(ChevronDown, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "h-3 w-3" }),
|
|
@@ -5149,11 +5149,11 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
5149
5149
|
" ",
|
|
5150
5150
|
v && /* @__PURE__ */ jsxs("small", { className: "text-[9px] text-zinc-400", children: [
|
|
5151
5151
|
" ",
|
|
5152
|
-
|
|
5152
|
+
b
|
|
5153
5153
|
] }),
|
|
5154
5154
|
p && u.type !== "object" ? " *" : null
|
|
5155
5155
|
] }),
|
|
5156
|
-
u.type === "string" && !u.enum && !u.oneOf && B && /* @__PURE__ */ jsx(NestedPathSelector, { data: B, onSelect:
|
|
5156
|
+
u.type === "string" && !u.enum && !u.oneOf && B && /* @__PURE__ */ jsx(NestedPathSelector, { data: B, onSelect: C, dataType: "value" })
|
|
5157
5157
|
] }),
|
|
5158
5158
|
c,
|
|
5159
5159
|
a,
|
|
@@ -5252,35 +5252,35 @@ const MenuBar = ({ editor: o, onExpand: n }) => {
|
|
|
5252
5252
|
}), a;
|
|
5253
5253
|
};
|
|
5254
5254
|
function BlockSettings() {
|
|
5255
|
-
const { selectedLang: o } = useLanguages(), n = useSelectedBlock(), r = useUpdateBlocksPropsRealtime(), a = useUpdateBlocksProps(), l = getRegisteredChaiBlock(n == null ? void 0 : n._type), i = formDataWithSelectedLang(n, o, l), [c, d] = useState(i), [p, u] = useState(!1), g = useWrapperBlock(), f = getRegisteredChaiBlock(g == null ? void 0 : g._type), m = formDataWithSelectedLang(g, o, f), h = ({ formData:
|
|
5256
|
-
|
|
5255
|
+
const { selectedLang: o } = useLanguages(), n = useSelectedBlock(), r = useUpdateBlocksPropsRealtime(), a = useUpdateBlocksProps(), l = getRegisteredChaiBlock(n == null ? void 0 : n._type), i = formDataWithSelectedLang(n, o, l), [c, d] = useState(i), [p, u] = useState(!1), g = useWrapperBlock(), f = getRegisteredChaiBlock(g == null ? void 0 : g._type), m = formDataWithSelectedLang(g, o, f), h = ({ formData: j }, S, C) => {
|
|
5256
|
+
S && (c == null ? void 0 : c._id) === n._id && a([n._id], { [S]: get(j, S) }, C);
|
|
5257
5257
|
}, x = useCallback(
|
|
5258
|
-
debounce(({ formData:
|
|
5259
|
-
h({ formData:
|
|
5258
|
+
debounce(({ formData: j }, S, C) => {
|
|
5259
|
+
h({ formData: j }, S, C), d(j);
|
|
5260
5260
|
}, 1500),
|
|
5261
5261
|
[n == null ? void 0 : n._id, o]
|
|
5262
|
-
),
|
|
5263
|
-
|
|
5264
|
-
},
|
|
5265
|
-
|
|
5262
|
+
), y = ({ formData: j }, S) => {
|
|
5263
|
+
S && (r([n._id], { [S]: get(j, S) }), x({ formData: j }, S, { [S]: get(c, S) }));
|
|
5264
|
+
}, b = ({ formData: j }, S) => {
|
|
5265
|
+
S && (r([g._id], { [S]: get(j, S) }), x({ formData: j }, S, { [S]: get(c, S) }));
|
|
5266
5266
|
};
|
|
5267
5267
|
keys(get(i, "_bindings", {}));
|
|
5268
|
-
const { schema: B, uiSchema:
|
|
5269
|
-
const
|
|
5270
|
-
if (
|
|
5271
|
-
return getBlockFormSchemas(
|
|
5272
|
-
}, [n]), { wrapperSchema:
|
|
5268
|
+
const { schema: B, uiSchema: E } = useMemo(() => {
|
|
5269
|
+
const j = n == null ? void 0 : n._type;
|
|
5270
|
+
if (j)
|
|
5271
|
+
return getBlockFormSchemas(j);
|
|
5272
|
+
}, [n]), { wrapperSchema: w, wrapperUiSchema: _ } = useMemo(() => {
|
|
5273
5273
|
if (!g || !(g != null && g._type))
|
|
5274
5274
|
return { wrapperSchema: {}, wrapperUiSchema: {} };
|
|
5275
|
-
const
|
|
5276
|
-
return { wrapperSchema:
|
|
5275
|
+
const j = g == null ? void 0 : g._type, { schema: S = {}, uiSchema: C = {} } = getBlockFormSchemas(j);
|
|
5276
|
+
return { wrapperSchema: S, wrapperUiSchema: C };
|
|
5277
5277
|
}, [g]);
|
|
5278
5278
|
return /* @__PURE__ */ jsxs("div", { className: "no-scrollbar overflow-x-hidden px-px", children: [
|
|
5279
5279
|
!isEmpty(g) && /* @__PURE__ */ jsxs("div", { className: "mb-4 rounded border bg-zinc-100 px-1", children: [
|
|
5280
5280
|
/* @__PURE__ */ jsxs(
|
|
5281
5281
|
"div",
|
|
5282
5282
|
{
|
|
5283
|
-
onClick: () => u((
|
|
5283
|
+
onClick: () => u((j) => !j),
|
|
5284
5284
|
className: "flex cursor-pointer items-center gap-x-1 py-2 text-xs font-medium leading-tight hover:bg-slate-100",
|
|
5285
5285
|
children: [
|
|
5286
5286
|
p ? /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 stroke-[3] text-slate-400" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 stroke-[3] text-slate-400" }),
|
|
@@ -5299,10 +5299,10 @@ function BlockSettings() {
|
|
|
5299
5299
|
JSONForm,
|
|
5300
5300
|
{
|
|
5301
5301
|
blockId: g == null ? void 0 : g._id,
|
|
5302
|
-
onChange:
|
|
5302
|
+
onChange: b,
|
|
5303
5303
|
formData: m,
|
|
5304
|
-
schema:
|
|
5305
|
-
uiSchema:
|
|
5304
|
+
schema: w,
|
|
5305
|
+
uiSchema: _
|
|
5306
5306
|
}
|
|
5307
5307
|
) })
|
|
5308
5308
|
] }),
|
|
@@ -5310,10 +5310,10 @@ function BlockSettings() {
|
|
|
5310
5310
|
JSONForm,
|
|
5311
5311
|
{
|
|
5312
5312
|
blockId: n == null ? void 0 : n._id,
|
|
5313
|
-
onChange:
|
|
5313
|
+
onChange: y,
|
|
5314
5314
|
formData: i,
|
|
5315
5315
|
schema: B,
|
|
5316
|
-
uiSchema:
|
|
5316
|
+
uiSchema: E
|
|
5317
5317
|
}
|
|
5318
5318
|
),
|
|
5319
5319
|
(n == null ? void 0 : n._type) === "GlobalBlock" ? /* @__PURE__ */ jsx(GlobalBlockSettings, {}) : null
|
|
@@ -5418,33 +5418,33 @@ const TabletIcon = ({ landscape: o = !1 }) => /* @__PURE__ */ jsx(
|
|
|
5418
5418
|
canvas: n = !1,
|
|
5419
5419
|
tooltip: r = !0
|
|
5420
5420
|
}) => {
|
|
5421
|
-
const [a, , l] = useScreenSizeWidth(), [i, c] = useCanvasDisplayWidth(), [d, p] = useSelectedBreakpoints(), u = d, g = p, { t: f } = useTranslation(), m = useBuilderProp("breakpoints", WEB_BREAKPOINTS), h = (
|
|
5422
|
-
u.includes(
|
|
5423
|
-
}, x = (
|
|
5424
|
-
n || l(
|
|
5425
|
-
},
|
|
5426
|
-
return m.length < 4 ? /* @__PURE__ */ jsx("div", { className: "flex items-center rounded-md", children: map(m, (
|
|
5421
|
+
const [a, , l] = useScreenSizeWidth(), [i, c] = useCanvasDisplayWidth(), [d, p] = useSelectedBreakpoints(), u = d, g = p, { t: f } = useTranslation(), m = useBuilderProp("breakpoints", WEB_BREAKPOINTS), h = (b) => {
|
|
5422
|
+
u.includes(b) ? u.length > 2 && g(u.filter((B) => B !== b)) : g((B) => [...B, b]);
|
|
5423
|
+
}, x = (b) => {
|
|
5424
|
+
n || l(b), c(b);
|
|
5425
|
+
}, y = getBreakpointValue(n ? i : a).toLowerCase();
|
|
5426
|
+
return m.length < 4 ? /* @__PURE__ */ jsx("div", { className: "flex items-center rounded-md", children: map(m, (b) => /* @__PURE__ */ createElement(
|
|
5427
5427
|
BreakpointCard,
|
|
5428
5428
|
{
|
|
5429
5429
|
canvas: n,
|
|
5430
|
-
...
|
|
5430
|
+
...b,
|
|
5431
5431
|
onClick: x,
|
|
5432
|
-
key:
|
|
5433
|
-
currentBreakpoint:
|
|
5432
|
+
key: b.breakpoint,
|
|
5433
|
+
currentBreakpoint: y
|
|
5434
5434
|
}
|
|
5435
5435
|
)) }) : /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between rounded-md", children: [
|
|
5436
5436
|
/* @__PURE__ */ jsx("div", { className: "flex items-center", children: map(
|
|
5437
|
-
m.filter((
|
|
5438
|
-
(
|
|
5437
|
+
m.filter((b) => includes(u, toUpper(b.breakpoint))),
|
|
5438
|
+
(b) => /* @__PURE__ */ createElement(
|
|
5439
5439
|
BreakpointCard,
|
|
5440
5440
|
{
|
|
5441
5441
|
canvas: n,
|
|
5442
5442
|
openDelay: o,
|
|
5443
5443
|
tooltip: r,
|
|
5444
|
-
...
|
|
5444
|
+
...b,
|
|
5445
5445
|
onClick: x,
|
|
5446
|
-
key:
|
|
5447
|
-
currentBreakpoint:
|
|
5446
|
+
key: b.breakpoint,
|
|
5447
|
+
currentBreakpoint: y
|
|
5448
5448
|
}
|
|
5449
5449
|
)
|
|
5450
5450
|
) }),
|
|
@@ -5453,15 +5453,15 @@ const TabletIcon = ({ landscape: o = !1 }) => /* @__PURE__ */ jsx(
|
|
|
5453
5453
|
/* @__PURE__ */ jsxs(DropdownMenuContent, { className: "w-56 border-border text-xs", children: [
|
|
5454
5454
|
/* @__PURE__ */ jsx(DropdownMenuLabel, { children: f("Screen sizes") }),
|
|
5455
5455
|
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
5456
|
-
map(m, (
|
|
5456
|
+
map(m, (b) => /* @__PURE__ */ jsx(
|
|
5457
5457
|
DropdownMenuCheckboxItem,
|
|
5458
5458
|
{
|
|
5459
|
-
disabled:
|
|
5460
|
-
onCheckedChange: () => h(toUpper(
|
|
5461
|
-
checked: includes(u, toUpper(
|
|
5462
|
-
children: f(
|
|
5459
|
+
disabled: b.breakpoint === "xs",
|
|
5460
|
+
onCheckedChange: () => h(toUpper(b.breakpoint)),
|
|
5461
|
+
checked: includes(u, toUpper(b.breakpoint)),
|
|
5462
|
+
children: f(b.title)
|
|
5463
5463
|
},
|
|
5464
|
-
|
|
5464
|
+
b.breakpoint
|
|
5465
5465
|
))
|
|
5466
5466
|
] })
|
|
5467
5467
|
] })
|
|
@@ -5611,24 +5611,24 @@ const AskAIStyles = ({ blockId: o }) => {
|
|
|
5611
5611
|
};
|
|
5612
5612
|
function ManualClasses() {
|
|
5613
5613
|
var T;
|
|
5614
|
-
const o = useRef(null), [n, r] = useState(""), [a, l] = useState(-1), i = useFuseSearch(), { t: c } = useTranslation(), [d] = useSelectedStylingBlocks(), p = useSelectedBlock(), u = useAddClassesToBlocks(), g = useRemoveClassesFromBlocks(), [f] = useSelectedBlockIds(), m = useBuilderProp("askAiCallBack", null), [h, x] = useState(""),
|
|
5614
|
+
const o = useRef(null), [n, r] = useState(""), [a, l] = useState(-1), i = useFuseSearch(), { t: c } = useTranslation(), [d] = useSelectedStylingBlocks(), p = useSelectedBlock(), u = useAddClassesToBlocks(), g = useRemoveClassesFromBlocks(), [f] = useSelectedBlockIds(), m = useBuilderProp("askAiCallBack", null), [h, x] = useState(""), y = (T = first(d)) == null ? void 0 : T.prop, { classes: b } = getSplitChaiClasses(get(p, y, "")), B = b.split(" ").filter((I) => !isEmpty(I)), E = () => {
|
|
5615
5615
|
const I = h.trim().toLowerCase().replace(/ +(?= )/g, "").split(" ");
|
|
5616
5616
|
u(f, I, !0), x("");
|
|
5617
|
-
}, [
|
|
5618
|
-
const
|
|
5617
|
+
}, [w, _] = useState([]), j = ({ value: I }) => {
|
|
5618
|
+
const P = I.trim().toLowerCase(), N = P.match(/.+:/g);
|
|
5619
5619
|
let D = [];
|
|
5620
5620
|
if (N && N.length > 0) {
|
|
5621
|
-
const [M] = N,
|
|
5622
|
-
D = i.search(
|
|
5621
|
+
const [M] = N, R = P.replace(M, "");
|
|
5622
|
+
D = i.search(R).map(($) => ({
|
|
5623
5623
|
...$,
|
|
5624
5624
|
item: { ...$.item, name: M + $.item.name }
|
|
5625
5625
|
}));
|
|
5626
5626
|
} else
|
|
5627
|
-
D = i.search(
|
|
5628
|
-
return
|
|
5629
|
-
},
|
|
5630
|
-
|
|
5631
|
-
},
|
|
5627
|
+
D = i.search(P);
|
|
5628
|
+
return _(map(D, "item"));
|
|
5629
|
+
}, S = () => {
|
|
5630
|
+
_([]);
|
|
5631
|
+
}, C = (I) => I.name, L = (I) => /* @__PURE__ */ jsx("div", { className: "rounded-md p-1", children: I.name }), v = useMemo(
|
|
5632
5632
|
() => ({
|
|
5633
5633
|
ref: o,
|
|
5634
5634
|
autoComplete: "off",
|
|
@@ -5638,17 +5638,17 @@ function ManualClasses() {
|
|
|
5638
5638
|
placeholder: c("Enter classes separated by space"),
|
|
5639
5639
|
value: h,
|
|
5640
5640
|
onKeyDown: (I) => {
|
|
5641
|
-
I.key === "Enter" && h.trim() !== "" &&
|
|
5641
|
+
I.key === "Enter" && h.trim() !== "" && E();
|
|
5642
5642
|
},
|
|
5643
|
-
onChange: (I, { newValue:
|
|
5643
|
+
onChange: (I, { newValue: P }) => x(P),
|
|
5644
5644
|
className: "w-full rounded-md text-xs px-2 hover:outline-0 bg-background border-border py-1"
|
|
5645
5645
|
}),
|
|
5646
5646
|
[h, c, o]
|
|
5647
5647
|
), k = (I) => {
|
|
5648
5648
|
debugger;
|
|
5649
|
-
const
|
|
5650
|
-
g(f, [I]), u(f,
|
|
5651
|
-
},
|
|
5649
|
+
const P = n.trim().toLowerCase().replace(/ +(?= )/g, "").split(" ");
|
|
5650
|
+
g(f, [I]), u(f, P, !0), r(""), l(-1);
|
|
5651
|
+
}, A = () => {
|
|
5652
5652
|
if (navigator.clipboard === void 0) {
|
|
5653
5653
|
toast.error(c("Clipboard not supported"));
|
|
5654
5654
|
return;
|
|
@@ -5660,7 +5660,7 @@ function ManualClasses() {
|
|
|
5660
5660
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 text-muted-foreground", children: [
|
|
5661
5661
|
/* @__PURE__ */ jsx("span", { children: c("Classes") }),
|
|
5662
5662
|
/* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
5663
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: !0, children: /* @__PURE__ */ jsx(CopyIcon, { onClick:
|
|
5663
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: !0, children: /* @__PURE__ */ jsx(CopyIcon, { onClick: A, className: "cursor-pointer" }) }),
|
|
5664
5664
|
/* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsx("p", { children: c("Copy classes to clipboard") }) })
|
|
5665
5665
|
] })
|
|
5666
5666
|
] }),
|
|
@@ -5676,10 +5676,10 @@ function ManualClasses() {
|
|
|
5676
5676
|
/* @__PURE__ */ jsx("div", { className: "relative flex w-full items-center gap-x-3", children: /* @__PURE__ */ jsx(
|
|
5677
5677
|
Autosuggest,
|
|
5678
5678
|
{
|
|
5679
|
-
suggestions:
|
|
5680
|
-
onSuggestionsFetchRequested:
|
|
5681
|
-
onSuggestionsClearRequested:
|
|
5682
|
-
getSuggestionValue:
|
|
5679
|
+
suggestions: w,
|
|
5680
|
+
onSuggestionsFetchRequested: j,
|
|
5681
|
+
onSuggestionsClearRequested: S,
|
|
5682
|
+
getSuggestionValue: C,
|
|
5683
5683
|
renderSuggestion: L,
|
|
5684
5684
|
inputProps: v,
|
|
5685
5685
|
containerProps: {
|
|
@@ -5697,7 +5697,7 @@ function ManualClasses() {
|
|
|
5697
5697
|
{
|
|
5698
5698
|
variant: "outline",
|
|
5699
5699
|
className: "h-6 border-border",
|
|
5700
|
-
onClick:
|
|
5700
|
+
onClick: E,
|
|
5701
5701
|
disabled: h.trim() === "",
|
|
5702
5702
|
size: "sm",
|
|
5703
5703
|
children: /* @__PURE__ */ jsx(PlusIcon, {})
|
|
@@ -5705,7 +5705,7 @@ function ManualClasses() {
|
|
|
5705
5705
|
)
|
|
5706
5706
|
] }),
|
|
5707
5707
|
/* @__PURE__ */ jsx("div", { className: "flex w-full flex-wrap gap-2 overflow-x-hidden", children: B.map(
|
|
5708
|
-
(I,
|
|
5708
|
+
(I, P) => a === P ? /* @__PURE__ */ jsx(
|
|
5709
5709
|
"input",
|
|
5710
5710
|
{
|
|
5711
5711
|
ref: o,
|
|
@@ -6077,8 +6077,8 @@ const COLOR_PROP = {
|
|
|
6077
6077
|
}, ColorChoice = ({ property: o, onChange: n }) => {
|
|
6078
6078
|
const r = useCurrentClassByProperty(o), a = useMemo(() => get(r, "cls", ""), [r]), { canChange: l } = useContext(StyleContext), [i, c] = useState([]), [d, p] = useState({ color: "", shade: "" }), u = a.split("-"), g = get(u, "1", ""), f = get(u, "2", ""), m = useCallback(
|
|
6079
6079
|
// eslint-disable-next-line no-shadow
|
|
6080
|
-
(
|
|
6081
|
-
["current", "inherit", "transparent", "black", "white"].includes(
|
|
6080
|
+
(y) => {
|
|
6081
|
+
["current", "inherit", "transparent", "black", "white"].includes(y) ? (c([]), p({ color: y })) : (c(["50", "100", "200", "300", "400", "500", "600", "700", "800", "900"]), p((b) => ({ ...b, color: y, shade: b.shade ? b.shade : "500" })));
|
|
6082
6082
|
},
|
|
6083
6083
|
[c, p]
|
|
6084
6084
|
);
|
|
@@ -6089,8 +6089,8 @@ const COLOR_PROP = {
|
|
|
6089
6089
|
}, [g]);
|
|
6090
6090
|
const h = useCallback(
|
|
6091
6091
|
// eslint-disable-next-line no-shadow
|
|
6092
|
-
(
|
|
6093
|
-
p({ color: g, shade:
|
|
6092
|
+
(y) => {
|
|
6093
|
+
p({ color: g, shade: y });
|
|
6094
6094
|
},
|
|
6095
6095
|
[g]
|
|
6096
6096
|
);
|
|
@@ -6099,8 +6099,8 @@ const COLOR_PROP = {
|
|
|
6099
6099
|
}, [r]);
|
|
6100
6100
|
const { match: x } = useTailwindClassList();
|
|
6101
6101
|
return useEffect(() => {
|
|
6102
|
-
const
|
|
6103
|
-
x(o,
|
|
6102
|
+
const b = `${get(COLOR_PROP, o, "")}-${d.color}${d.shade ? `-${d.shade}` : ""}`;
|
|
6103
|
+
x(o, b) && n(b, o);
|
|
6104
6104
|
}, [x, d, n, o]), /* @__PURE__ */ jsxs("div", { className: "flex flex-row divide-x divide-solid divide-border rounded-lg border border-transparent text-xs", children: [
|
|
6105
6105
|
/* @__PURE__ */ jsx("div", { className: "grow text-center", children: /* @__PURE__ */ jsx(
|
|
6106
6106
|
DropDown,
|
|
@@ -6338,7 +6338,7 @@ const COLOR_PROP = {
|
|
|
6338
6338
|
},
|
|
6339
6339
|
a
|
|
6340
6340
|
)) }), THROTTLE_TIME = 50, AdvanceChoices = (o) => {
|
|
6341
|
-
const [n, r] = useState(!1), [a, l] = useState(""), { currentClass: i, onChange: c, classPrefix: d, cssProperty: p, units: u, negative: g } = o, [f, m] = useState(p != null && p.toLowerCase().includes("width") ? "%" : u[0]), [h, x] = useState(!1), [
|
|
6341
|
+
const [n, r] = useState(!1), [a, l] = useState(""), { currentClass: i, onChange: c, classPrefix: d, cssProperty: p, units: u, negative: g } = o, [f, m] = useState(p != null && p.toLowerCase().includes("width") ? "%" : u[0]), [h, x] = useState(!1), [y, b] = useState(""), [B, E] = useState(!1), [w, _] = useState(!1);
|
|
6342
6342
|
useEffect(() => {
|
|
6343
6343
|
const { value: v, unit: k } = getClassValueAndUnit(i);
|
|
6344
6344
|
if (k === "") {
|
|
@@ -6347,24 +6347,24 @@ const COLOR_PROP = {
|
|
|
6347
6347
|
}
|
|
6348
6348
|
m(k), l(k === "class" || isEmpty(v) ? "" : v);
|
|
6349
6349
|
}, [i, p, u]);
|
|
6350
|
-
const
|
|
6350
|
+
const j = useThrottledCallback((v) => c(v), [c], THROTTLE_TIME), S = useThrottledCallback((v) => c(v, !1), [c], THROTTLE_TIME), C = useCallback(
|
|
6351
6351
|
(v = !1) => {
|
|
6352
6352
|
const k = getUserInputValues(`${a}`, u);
|
|
6353
6353
|
if (get(k, "error", !1)) {
|
|
6354
6354
|
x(!0);
|
|
6355
6355
|
return;
|
|
6356
6356
|
}
|
|
6357
|
-
const
|
|
6358
|
-
if (
|
|
6359
|
-
|
|
6357
|
+
const A = get(k, "unit") !== "" ? get(k, "unit") : f;
|
|
6358
|
+
if (A === "auto" || A === "none") {
|
|
6359
|
+
j(`${d}${A}`);
|
|
6360
6360
|
return;
|
|
6361
6361
|
}
|
|
6362
6362
|
if (get(k, "value") === "")
|
|
6363
6363
|
return;
|
|
6364
|
-
const I = `${get(k, "value", "").startsWith("-") ? "-" : ""}${d}[${get(k, "value", "").replace("-", "")}${
|
|
6365
|
-
v ?
|
|
6364
|
+
const I = `${get(k, "value", "").startsWith("-") ? "-" : ""}${d}[${get(k, "value", "").replace("-", "")}${A === "-" ? "" : A}]`;
|
|
6365
|
+
v ? S(I) : j(I);
|
|
6366
6366
|
},
|
|
6367
|
-
[
|
|
6367
|
+
[j, S, a, f, d, u]
|
|
6368
6368
|
), L = useCallback(
|
|
6369
6369
|
(v) => {
|
|
6370
6370
|
const k = getUserInputValues(`${a}`, u);
|
|
@@ -6373,15 +6373,15 @@ const COLOR_PROP = {
|
|
|
6373
6373
|
return;
|
|
6374
6374
|
}
|
|
6375
6375
|
if (v === "auto" || v === "none") {
|
|
6376
|
-
|
|
6376
|
+
j(`${d}${v}`);
|
|
6377
6377
|
return;
|
|
6378
6378
|
}
|
|
6379
6379
|
if (get(k, "value") === "")
|
|
6380
6380
|
return;
|
|
6381
|
-
const
|
|
6382
|
-
|
|
6381
|
+
const A = get(k, "unit") !== "" ? get(k, "unit") : v, I = `${get(k, "value", "").startsWith("-") ? "-" : ""}${d}[${get(k, "value", "").replace("-", "")}${A === "-" ? "" : A}]`;
|
|
6382
|
+
j(I);
|
|
6383
6383
|
},
|
|
6384
|
-
[
|
|
6384
|
+
[j, a, d, u]
|
|
6385
6385
|
);
|
|
6386
6386
|
return /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-start", children: f === "class" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6387
6387
|
/* @__PURE__ */ jsx(
|
|
@@ -6403,22 +6403,22 @@ const COLOR_PROP = {
|
|
|
6403
6403
|
{
|
|
6404
6404
|
readOnly: f === "class",
|
|
6405
6405
|
onKeyPress: (v) => {
|
|
6406
|
-
v.key === "Enter" &&
|
|
6406
|
+
v.key === "Enter" && C();
|
|
6407
6407
|
},
|
|
6408
6408
|
onKeyDown: (v) => {
|
|
6409
6409
|
if (v.keyCode !== 38 && v.keyCode !== 40)
|
|
6410
6410
|
return;
|
|
6411
|
-
v.preventDefault(),
|
|
6411
|
+
v.preventDefault(), _(!0);
|
|
6412
6412
|
const k = parseInt$1(v.target.value);
|
|
6413
|
-
let
|
|
6414
|
-
v.keyCode === 38 && (
|
|
6415
|
-
const T = `${
|
|
6416
|
-
|
|
6413
|
+
let A = isNaN$1(k) ? 0 : k;
|
|
6414
|
+
v.keyCode === 38 && (A += 1), v.keyCode === 40 && (A -= 1);
|
|
6415
|
+
const T = `${A}`, P = `${T.startsWith("-") ? "-" : ""}${d}[${T.replace("-", "")}${f === "-" ? "" : f}]`;
|
|
6416
|
+
S(P);
|
|
6417
6417
|
},
|
|
6418
6418
|
onKeyUp: (v) => {
|
|
6419
|
-
|
|
6419
|
+
w && (v.preventDefault(), _(!1));
|
|
6420
6420
|
},
|
|
6421
|
-
onBlur: () =>
|
|
6421
|
+
onBlur: () => C(),
|
|
6422
6422
|
onChange: (v) => {
|
|
6423
6423
|
x(!1), l(v.target.value);
|
|
6424
6424
|
},
|
|
@@ -6426,7 +6426,7 @@ const COLOR_PROP = {
|
|
|
6426
6426
|
var k;
|
|
6427
6427
|
(k = v == null ? void 0 : v.target) == null || k.select(), r(!1);
|
|
6428
6428
|
},
|
|
6429
|
-
value: B ?
|
|
6429
|
+
value: B ? y : a,
|
|
6430
6430
|
className: "h-6 w-14 rounded rounded-r-none border border-transparent bg-background pl-2 text-sm focus-visible:outline-0".concat(
|
|
6431
6431
|
" ",
|
|
6432
6432
|
h ? "border-red-500 text-red-500" : "border-foreground/20"
|
|
@@ -6461,19 +6461,19 @@ const COLOR_PROP = {
|
|
|
6461
6461
|
["none", "auto"].indexOf(f) !== -1 || B ? null : /* @__PURE__ */ jsx(
|
|
6462
6462
|
DragStyleButton,
|
|
6463
6463
|
{
|
|
6464
|
-
onDragStart: () =>
|
|
6464
|
+
onDragStart: () => E(!0),
|
|
6465
6465
|
onDragEnd: (v) => {
|
|
6466
|
-
if (
|
|
6466
|
+
if (b(() => ""), E(!1), isEmpty(v))
|
|
6467
6467
|
return;
|
|
6468
6468
|
const k = `${v}`, T = `${k.startsWith("-") ? "-" : ""}${d}[${k.replace("-", "")}${f === "-" ? "" : f}]`;
|
|
6469
|
-
|
|
6469
|
+
j(T);
|
|
6470
6470
|
},
|
|
6471
6471
|
onDrag: (v) => {
|
|
6472
6472
|
if (isEmpty(v))
|
|
6473
6473
|
return;
|
|
6474
|
-
|
|
6474
|
+
b(v);
|
|
6475
6475
|
const k = `${v}`, T = `${k.startsWith("-") ? "-" : ""}${d}[${k.replace("-", "")}${f === "-" ? "" : f}]`;
|
|
6476
|
-
|
|
6476
|
+
S(T);
|
|
6477
6477
|
},
|
|
6478
6478
|
currentValue: a,
|
|
6479
6479
|
unit: f,
|
|
@@ -6570,35 +6570,35 @@ const COLOR_PROP = {
|
|
|
6570
6570
|
"2xl": "1536px"
|
|
6571
6571
|
}, getBreakpoint = (o) => `${o.toUpperCase()} ${BREAKPOINTS[o] ? `(${BREAKPOINTS[o]} & up)` : ""}`, BlockStyle = (o) => {
|
|
6572
6572
|
const { t: n } = useTranslation(), { type: r = "icons", label: a, property: l, onEmitChange: i = () => {
|
|
6573
|
-
}, units: c, negative: d = !1 } = o, [p] = useDarkMode(), [u] = useStylingState(), [, g] = useScreenSizeWidth(), f = useCurrentClassByProperty(l), m = useAddClassesToBlocks(), h = useRemoveClassesFromBlocks(), [x] = useSelectedBlockIds(),
|
|
6574
|
-
(
|
|
6575
|
-
const L = { dark: p, mq: g, mod: u, cls:
|
|
6573
|
+
}, units: c, negative: d = !1 } = o, [p] = useDarkMode(), [u] = useStylingState(), [, g] = useScreenSizeWidth(), f = useCurrentClassByProperty(l), m = useAddClassesToBlocks(), h = useRemoveClassesFromBlocks(), [x] = useSelectedBlockIds(), y = useMemo(() => get(f, "fullCls", ""), [f]), b = useCallback(
|
|
6574
|
+
(S, C = !0) => {
|
|
6575
|
+
const L = { dark: p, mq: g, mod: u, cls: S, property: l, fullCls: "" };
|
|
6576
6576
|
(p || u !== "") && (L.mq = "xs");
|
|
6577
6577
|
const v = generateFullClsName(L);
|
|
6578
|
-
m(x, [v],
|
|
6578
|
+
m(x, [v], C);
|
|
6579
6579
|
},
|
|
6580
6580
|
[x, p, g, u, l, m]
|
|
6581
6581
|
), B = useCallback(() => {
|
|
6582
|
-
h(x, [
|
|
6583
|
-
}, [x,
|
|
6582
|
+
h(x, [y], !0);
|
|
6583
|
+
}, [x, y, h]), E = useMemo(() => canChangeClass(f, g), [f, g]);
|
|
6584
6584
|
useEffect(() => {
|
|
6585
|
-
i(
|
|
6586
|
-
}, [
|
|
6587
|
-
const [, ,
|
|
6588
|
-
(
|
|
6589
|
-
|
|
6585
|
+
i(E, f);
|
|
6586
|
+
}, [E, i, f]);
|
|
6587
|
+
const [, , w] = useScreenSizeWidth(), _ = useCallback(
|
|
6588
|
+
(S) => {
|
|
6589
|
+
w({
|
|
6590
6590
|
xs: 400,
|
|
6591
6591
|
sm: 640,
|
|
6592
6592
|
md: 800,
|
|
6593
6593
|
lg: 1024,
|
|
6594
6594
|
xl: 1420,
|
|
6595
6595
|
"2xl": 1920
|
|
6596
|
-
}[
|
|
6596
|
+
}[S]);
|
|
6597
6597
|
},
|
|
6598
|
-
[
|
|
6599
|
-
),
|
|
6600
|
-
return /* @__PURE__ */ jsx(BlockStyleProvider, { canChange:
|
|
6601
|
-
/* @__PURE__ */ jsx("div", { className: "relative w-[70px] truncate text-xs text-foreground", children: /* @__PURE__ */ jsx("span", { className: `text-[11px] ${f && !
|
|
6598
|
+
[w]
|
|
6599
|
+
), j = get(f, "dark", null) === p && get(f, "mod", null) === u && get(f, "mq", null) === g;
|
|
6600
|
+
return /* @__PURE__ */ jsx(BlockStyleProvider, { canChange: E, canReset: f && j, children: /* @__PURE__ */ jsxs("div", { className: "group flex flex-row items-center py-2 first:pt-0 last:pb-0", children: [
|
|
6601
|
+
/* @__PURE__ */ jsx("div", { className: "relative w-[70px] truncate text-xs text-foreground", children: /* @__PURE__ */ jsx("span", { className: `text-[11px] ${f && !j ? "text-foreground" : ""}`, children: n(a) }) }),
|
|
6602
6602
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center", children: [
|
|
6603
6603
|
/* @__PURE__ */ jsxs("div", { className: "w-[150px]", children: [
|
|
6604
6604
|
r === "arbitrary" ? /* @__PURE__ */ jsx(
|
|
@@ -6607,17 +6607,17 @@ const COLOR_PROP = {
|
|
|
6607
6607
|
currentClass: get(f, "cls", ""),
|
|
6608
6608
|
classPrefix: get(CLASS_PREFIXES, l, ""),
|
|
6609
6609
|
units: c || [],
|
|
6610
|
-
onChange:
|
|
6610
|
+
onChange: b,
|
|
6611
6611
|
negative: d,
|
|
6612
6612
|
cssProperty: l
|
|
6613
6613
|
}
|
|
6614
6614
|
) : null,
|
|
6615
|
-
r === "icons" && /* @__PURE__ */ jsx(IconChoices, { property: l, onChange:
|
|
6616
|
-
r === "range" && /* @__PURE__ */ jsx(RangeChoices, { property: l, onChange:
|
|
6617
|
-
r === "color" && /* @__PURE__ */ jsx(ColorChoice, { property: l, onChange:
|
|
6618
|
-
r === "dropdown" && /* @__PURE__ */ jsx(DropDownChoices, { label: a, property: l, onChange:
|
|
6615
|
+
r === "icons" && /* @__PURE__ */ jsx(IconChoices, { property: l, onChange: b }),
|
|
6616
|
+
r === "range" && /* @__PURE__ */ jsx(RangeChoices, { property: l, onChange: b }),
|
|
6617
|
+
r === "color" && /* @__PURE__ */ jsx(ColorChoice, { property: l, onChange: b }),
|
|
6618
|
+
r === "dropdown" && /* @__PURE__ */ jsx(DropDownChoices, { label: a, property: l, onChange: b })
|
|
6619
6619
|
] }),
|
|
6620
|
-
/* @__PURE__ */ jsx("div", { className: `w-[30px] cursor-pointer ${
|
|
6620
|
+
/* @__PURE__ */ jsx("div", { className: `w-[30px] cursor-pointer ${y ? "visible" : "invisible"}`, children: j ? /* @__PURE__ */ jsx("button", { type: "button", onClick: () => B(), title: "Reset", className: "flex px-1.5 text-xs", children: /* @__PURE__ */ jsx(CrossCircledIcon, { className: "h-5 w-5 text-blue-500 hover:opacity-80" }) }) : E && f ? /* @__PURE__ */ jsxs(Tooltip, { delayDuration: 100, children: [
|
|
6621
6621
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: !0, children: /* @__PURE__ */ jsx(
|
|
6622
6622
|
"button",
|
|
6623
6623
|
{
|
|
@@ -6637,7 +6637,7 @@ const COLOR_PROP = {
|
|
|
6637
6637
|
"button",
|
|
6638
6638
|
{
|
|
6639
6639
|
type: "button",
|
|
6640
|
-
onClick: () =>
|
|
6640
|
+
onClick: () => _(get(f, "mq")),
|
|
6641
6641
|
className: "block w-full cursor-default text-right font-semibold text-blue-500",
|
|
6642
6642
|
children: [
|
|
6643
6643
|
"Switch to ",
|
|
@@ -6826,8 +6826,8 @@ function BlockStyling() {
|
|
|
6826
6826
|
m = isNaN(m) ? 0 : m;
|
|
6827
6827
|
let h = MAPPER[i.dragUnit];
|
|
6828
6828
|
(startsWith(f, "scale") || f === "opacity") && (h = 10);
|
|
6829
|
-
let
|
|
6830
|
-
g &&
|
|
6829
|
+
let y = (i.dragStartY - u.pageY) / h + m;
|
|
6830
|
+
g && y < 0 && (y = 0), f === "opacity" && y > 1 && (y = 1), i.onDrag(`${y}`), l(`${y}`);
|
|
6831
6831
|
},
|
|
6832
6832
|
[i],
|
|
6833
6833
|
50
|
|
@@ -6871,8 +6871,8 @@ const CoreBlock = ({
|
|
|
6871
6871
|
}) => {
|
|
6872
6872
|
const [, l] = useAtom$1(draggedBlockAtom), { type: i, icon: c, label: d } = o, { addCoreBlock: p, addPredefinedBlock: u } = useAddBlock(), [, g] = useSelectedBlockIds(), { clearHighlight: f } = useBlockHighlight(), m = () => {
|
|
6873
6873
|
if (console.log("addBlockToPage", o), has(o, "blocks")) {
|
|
6874
|
-
const
|
|
6875
|
-
u(syncBlocksWithDefaults(
|
|
6874
|
+
const y = isFunction$1(o.blocks) ? o.blocks() : o.blocks;
|
|
6875
|
+
u(syncBlocksWithDefaults(y), r || null, a);
|
|
6876
6876
|
} else
|
|
6877
6877
|
p(o, r || null, a);
|
|
6878
6878
|
pubsub.publish(CHAI_BUILDER_EVENTS.CLOSE_ADD_BLOCK);
|
|
@@ -6884,8 +6884,8 @@ const CoreBlock = ({
|
|
|
6884
6884
|
disabled: n,
|
|
6885
6885
|
onClick: m,
|
|
6886
6886
|
type: "button",
|
|
6887
|
-
onDragStart: (
|
|
6888
|
-
|
|
6887
|
+
onDragStart: (y) => {
|
|
6888
|
+
y.dataTransfer.setData("text/plain", JSON.stringify(omit(o, ["component", "icon"]))), y.dataTransfer.setDragImage(new Image(), 0, 0), l(omit(o, ["component", "icon"])), setTimeout(() => {
|
|
6889
6889
|
g([]), f();
|
|
6890
6890
|
}, 200);
|
|
6891
6891
|
},
|
|
@@ -7085,22 +7085,22 @@ const CoreBlock = ({
|
|
|
7085
7085
|
}
|
|
7086
7086
|
}
|
|
7087
7087
|
}, traverseNodes = (o, n = null) => flatMapDeep(o, (r) => {
|
|
7088
|
-
var f, m, h, x,
|
|
7088
|
+
var f, m, h, x, y, b, B, E;
|
|
7089
7089
|
if (r.type === "comment") return [];
|
|
7090
7090
|
console.log("node ===>", r);
|
|
7091
7091
|
let a = { _id: generateUUID() };
|
|
7092
7092
|
if (n && (a._parent = n.block._id), r.type === "text")
|
|
7093
7093
|
return isEmpty(get(r, "content", "")) ? [] : n && shouldAddText(n.node, n.block) ? (set(n, "block.content", get(r, "content", "")), []) : { ...a, _type: "Text", content: get(r, "content", "") };
|
|
7094
7094
|
const l = get(r, "attributes", []), i = l.find(
|
|
7095
|
-
(
|
|
7095
|
+
(w) => w.key === "data-chai-richtext" || w.key === "chai-richtext"
|
|
7096
7096
|
), c = l.find(
|
|
7097
|
-
(
|
|
7097
|
+
(w) => w.key === "data-chai-lightbox" || w.key === "chai-lightbox"
|
|
7098
7098
|
), d = l.find(
|
|
7099
|
-
(
|
|
7099
|
+
(w) => w.key === "data-chai-dropdown" || w.key === "chai-dropdown"
|
|
7100
7100
|
), p = l.find(
|
|
7101
|
-
(
|
|
7101
|
+
(w) => w.key === "data-chai-dropdown-button" || w.key === "chai-dropdown-button"
|
|
7102
7102
|
), u = l.find(
|
|
7103
|
-
(
|
|
7103
|
+
(w) => w.key === "data-chai-dropdown-content" || w.key === "chai-dropdown-content"
|
|
7104
7104
|
);
|
|
7105
7105
|
if (a = {
|
|
7106
7106
|
...a,
|
|
@@ -7108,13 +7108,13 @@ const CoreBlock = ({
|
|
|
7108
7108
|
...getAttrs(r),
|
|
7109
7109
|
...getStyles(r)
|
|
7110
7110
|
}, r.attributes) {
|
|
7111
|
-
const
|
|
7112
|
-
|
|
7111
|
+
const w = r.attributes.find((_) => includes(NAME_ATTRIBUTES, _.key));
|
|
7112
|
+
w && (a._name = w.value);
|
|
7113
7113
|
}
|
|
7114
7114
|
if (i)
|
|
7115
7115
|
return a.content = stringify(r.children), has(a, "styles_attrs.data-chai-richtext") && delete a.styles_attrs["data-chai-richtext"], has(a, "styles_attrs.chai-richtext") && delete a.styles_attrs["chai-richtext"], [a];
|
|
7116
7116
|
if (c) {
|
|
7117
|
-
const
|
|
7117
|
+
const w = [
|
|
7118
7118
|
"data-chai-lightbox",
|
|
7119
7119
|
"chai-lightbox",
|
|
7120
7120
|
"data-vbtype",
|
|
@@ -7126,44 +7126,44 @@ const CoreBlock = ({
|
|
|
7126
7126
|
];
|
|
7127
7127
|
a = {
|
|
7128
7128
|
...a,
|
|
7129
|
-
href: ((f = l.find((
|
|
7130
|
-
hrefType: ((m = l.find((
|
|
7131
|
-
autoplay: ((h = l.find((
|
|
7132
|
-
maxWidth: ((
|
|
7133
|
-
backdropColor: ((
|
|
7134
|
-
galleryName: ((B = l.find((
|
|
7135
|
-
}, forEach(
|
|
7136
|
-
has(a, `styles_attrs.${
|
|
7129
|
+
href: ((f = l.find((_) => _.key === "href")) == null ? void 0 : f.value) || "",
|
|
7130
|
+
hrefType: ((m = l.find((_) => _.key === "data-vbtype")) == null ? void 0 : m.value) || "video",
|
|
7131
|
+
autoplay: ((h = l.find((_) => _.key === "data-autoplay")) == null ? void 0 : h.value) === "true" ? "true" : "false",
|
|
7132
|
+
maxWidth: ((y = (x = l.find((_) => _.key === "data-maxwidth")) == null ? void 0 : x.value) == null ? void 0 : y.replace("px", "")) || "",
|
|
7133
|
+
backdropColor: ((b = l.find((_) => _.key === "data-overlay")) == null ? void 0 : b.value) || "",
|
|
7134
|
+
galleryName: ((B = l.find((_) => _.key === "data-gall")) == null ? void 0 : B.value) || ""
|
|
7135
|
+
}, forEach(w, (_) => {
|
|
7136
|
+
has(a, `styles_attrs.${_}`) && delete a.styles_attrs[_];
|
|
7137
7137
|
});
|
|
7138
7138
|
}
|
|
7139
7139
|
if (d && (delete a.styles_attrs, a.showDropdown = !1), u && delete a.styles_attrs, p) {
|
|
7140
7140
|
delete a.styles_attrs;
|
|
7141
|
-
const
|
|
7142
|
-
a.content = getTextContent(
|
|
7143
|
-
const
|
|
7141
|
+
const w = filter(r.children || [], (j) => (j == null ? void 0 : j.tagName) !== "span");
|
|
7142
|
+
a.content = getTextContent(w);
|
|
7143
|
+
const _ = find(
|
|
7144
7144
|
r.children || [],
|
|
7145
|
-
(
|
|
7145
|
+
(j) => (j == null ? void 0 : j.tagName) === "span" && some(j.children || [], (S) => (S == null ? void 0 : S.tagName) === "svg")
|
|
7146
7146
|
);
|
|
7147
|
-
if (
|
|
7148
|
-
const
|
|
7149
|
-
if (
|
|
7150
|
-
a.icon = stringify([
|
|
7151
|
-
const { height:
|
|
7152
|
-
a.iconHeight =
|
|
7147
|
+
if (_) {
|
|
7148
|
+
const j = find(_.children || [], (S) => (S == null ? void 0 : S.tagName) === "svg");
|
|
7149
|
+
if (j) {
|
|
7150
|
+
a.icon = stringify([j]);
|
|
7151
|
+
const { height: S, width: C } = getSvgDimensions(j, "16px", "16px");
|
|
7152
|
+
a.iconHeight = S, a.iconWidth = C;
|
|
7153
7153
|
}
|
|
7154
7154
|
}
|
|
7155
7155
|
return [a];
|
|
7156
7156
|
}
|
|
7157
7157
|
if (a._type === "Input") {
|
|
7158
|
-
const
|
|
7159
|
-
|
|
7158
|
+
const w = a.inputType || "text";
|
|
7159
|
+
w === "checkbox" ? set(a, "_type", "Checkbox") : w === "radio" && set(a, "_type", "Radio");
|
|
7160
7160
|
} else if (r.tagName === "video" || r.tagName === "iframe") {
|
|
7161
|
-
const
|
|
7162
|
-
return hasVideoEmbed(
|
|
7161
|
+
const w = stringify([r]);
|
|
7162
|
+
return hasVideoEmbed(w) && (set(a, "_type", "Video"), set(a, "url", getVideoURLFromHTML(w)), set(a, "styles", `${STYLES_KEY},`), set(a, "controls", { autoPlay: !1, muted: !0, loop: !1, controls: !1 })), a.content = w, [a];
|
|
7163
7163
|
} else if (r.tagName === "svg") {
|
|
7164
|
-
const
|
|
7165
|
-
return a.styles = `${STYLES_KEY}, ${cn$1(`w-${
|
|
7166
|
-
} else if (r.tagName == "option" && n && ((
|
|
7164
|
+
const w = find(r.attributes, { key: "height" }), _ = find(r.attributes, { key: "width" }), j = get(w, "value") ? `[${get(w, "value")}px]` : "24px", S = get(_, "value") ? `[${get(_, "value")}px]` : "24px", C = get(find(r.attributes, { key: "class" }), "value", "w-full h-full");
|
|
7165
|
+
return a.styles = `${STYLES_KEY}, ${cn$1(`w-${S} h-${j}`, C)}`.trim(), r.attributes = filter(r.attributes, (L) => !includes(["style", "width", "height", "class"], L.key)), a.icon = stringify([r]), [a];
|
|
7166
|
+
} else if (r.tagName == "option" && n && ((E = n.block) == null ? void 0 : E._type) === "Select")
|
|
7167
7167
|
return n.block.options.push({
|
|
7168
7168
|
label: getTextContent(r.children),
|
|
7169
7169
|
...getAttrs(r)
|
|
@@ -7236,18 +7236,20 @@ const CoreBlock = ({
|
|
|
7236
7236
|
error: c
|
|
7237
7237
|
}), g(!0);
|
|
7238
7238
|
else if (!l && Object.keys(a || {}).length > 0) {
|
|
7239
|
-
const m = Object.entries(a).map(([x,
|
|
7240
|
-
const
|
|
7239
|
+
const m = Object.entries(a).map(([x, y]) => {
|
|
7240
|
+
const b = y, B = b.type || "partial", E = formatReadableName(B);
|
|
7241
7241
|
return {
|
|
7242
7242
|
type: "PartialBlock",
|
|
7243
7243
|
// Set the type to PartialBlock
|
|
7244
|
-
label: formatReadableName(
|
|
7245
|
-
description:
|
|
7246
|
-
|
|
7244
|
+
label: formatReadableName(b.name || x),
|
|
7245
|
+
description: b.description || "",
|
|
7246
|
+
icon: Globe,
|
|
7247
|
+
group: E,
|
|
7247
7248
|
// Use formatted type as group
|
|
7248
7249
|
category: "partial",
|
|
7249
|
-
partialBlockId: x
|
|
7250
|
+
partialBlockId: x,
|
|
7250
7251
|
// Store the original ID as partialBlockId
|
|
7252
|
+
_name: b.name
|
|
7251
7253
|
};
|
|
7252
7254
|
}), h = uniq(map(m, "group"));
|
|
7253
7255
|
p({
|
|
@@ -7296,43 +7298,43 @@ const CoreBlock = ({
|
|
|
7296
7298
|
);
|
|
7297
7299
|
}, CORE_GROUPS = ["basic", "typography", "media", "layout", "form", "advanced", "other"], ChaiBuilderBlocks = ({ groups: o, blocks: n, parentId: r, position: a, gridCols: l = "grid-cols-4" }) => {
|
|
7298
7300
|
var v;
|
|
7299
|
-
const { t: i } = useTranslation(), [c] = useBlocksStore(), [d, p] = useState(""), u = useRef(null), [g] = useAtom$1(addBlockTabAtom), f = (v = find(c, (k) => k._id === r)) == null ? void 0 : v._type, [m, h] = useState("all"), [x,
|
|
7301
|
+
const { t: i } = useTranslation(), [c] = useBlocksStore(), [d, p] = useState(""), u = useRef(null), [g] = useAtom$1(addBlockTabAtom), f = (v = find(c, (k) => k._id === r)) == null ? void 0 : v._type, [m, h] = useState("all"), [x, y] = useState(null), b = useRef(null);
|
|
7300
7302
|
useEffect(() => {
|
|
7301
7303
|
const k = setTimeout(() => {
|
|
7302
|
-
var
|
|
7303
|
-
(
|
|
7304
|
+
var A;
|
|
7305
|
+
(A = u.current) == null || A.focus();
|
|
7304
7306
|
}, 0);
|
|
7305
7307
|
return () => clearTimeout(k);
|
|
7306
7308
|
}, [g]), useEffect(() => {
|
|
7307
|
-
d && (h("all"),
|
|
7308
|
-
}, [d]), useEffect(() => (
|
|
7309
|
+
d && (h("all"), y(null));
|
|
7310
|
+
}, [d]), useEffect(() => (b.current = debounce((k) => {
|
|
7309
7311
|
h(k);
|
|
7310
7312
|
}, 500), () => {
|
|
7311
|
-
|
|
7313
|
+
b.current && b.current.cancel();
|
|
7312
7314
|
}), []);
|
|
7313
7315
|
const B = useCallback((k) => {
|
|
7314
|
-
|
|
7315
|
-
}, []),
|
|
7316
|
-
|
|
7317
|
-
}, []),
|
|
7318
|
-
|
|
7319
|
-
}, []),
|
|
7316
|
+
y(k), b.current && b.current(k);
|
|
7317
|
+
}, []), E = useCallback(() => {
|
|
7318
|
+
y(null), b.current && b.current.cancel();
|
|
7319
|
+
}, []), w = useCallback((k) => {
|
|
7320
|
+
b.current && b.current.cancel(), h(k), y(null);
|
|
7321
|
+
}, []), _ = useMemo(
|
|
7320
7322
|
() => d ? values(n).filter(
|
|
7321
7323
|
(k) => {
|
|
7322
|
-
var
|
|
7323
|
-
return (((
|
|
7324
|
+
var A, T;
|
|
7325
|
+
return (((A = k.label) == null ? void 0 : A.toLowerCase()) + " " + ((T = k.type) == null ? void 0 : T.toLowerCase())).includes(d.toLowerCase());
|
|
7324
7326
|
}
|
|
7325
7327
|
) : n,
|
|
7326
7328
|
[n, d]
|
|
7327
|
-
),
|
|
7329
|
+
), j = useMemo(
|
|
7328
7330
|
() => d ? o.filter(
|
|
7329
|
-
(k) => reject(filter(values(
|
|
7331
|
+
(k) => reject(filter(values(_), { group: k }), { hidden: !0 }).length > 0
|
|
7330
7332
|
) : o.filter((k) => reject(filter(values(n), { group: k }), { hidden: !0 }).length > 0),
|
|
7331
|
-
[n,
|
|
7332
|
-
),
|
|
7333
|
-
() => sortBy(
|
|
7334
|
-
[
|
|
7335
|
-
),
|
|
7333
|
+
[n, _, o, d]
|
|
7334
|
+
), S = useMemo(
|
|
7335
|
+
() => sortBy(j, (k) => CORE_GROUPS.indexOf(k) === -1 ? 99 : CORE_GROUPS.indexOf(k)),
|
|
7336
|
+
[j]
|
|
7337
|
+
), C = useMemo(() => m === "all" ? _ : filter(values(_), { group: m }), [_, m]), L = useMemo(() => m === "all" ? S : [m], [S, m]);
|
|
7336
7338
|
return /* @__PURE__ */ jsxs("div", { className: "mx-auto flex h-full w-full max-w-3xl flex-col", children: [
|
|
7337
7339
|
/* @__PURE__ */ jsx("div", { className: "sticky top-0 z-10 bg-background/80 px-4 py-2 backdrop-blur-sm", children: /* @__PURE__ */ jsx(
|
|
7338
7340
|
Input$1,
|
|
@@ -7346,31 +7348,31 @@ const CoreBlock = ({
|
|
|
7346
7348
|
}
|
|
7347
7349
|
) }),
|
|
7348
7350
|
/* @__PURE__ */ jsxs("div", { className: "sticky top-10 flex h-[calc(100%-48px)] overflow-hidden", children: [
|
|
7349
|
-
|
|
7351
|
+
S.length > 0 && /* @__PURE__ */ jsx("div", { className: "w-1/4 min-w-[120px] border-r", children: /* @__PURE__ */ jsx(ScrollArea, { className: "h-full", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 p-2", children: [
|
|
7350
7352
|
/* @__PURE__ */ jsx(
|
|
7351
7353
|
"button",
|
|
7352
7354
|
{
|
|
7353
|
-
onClick: () =>
|
|
7355
|
+
onClick: () => w("all"),
|
|
7354
7356
|
onMouseEnter: () => B("all"),
|
|
7355
|
-
onMouseLeave:
|
|
7357
|
+
onMouseLeave: E,
|
|
7356
7358
|
className: `w-full rounded-md px-2 py-1.5 text-left text-sm font-medium ${m === "all" || x === "all" ? "bg-accent text-accent-foreground" : "hover:bg-accent/50 hover:text-accent-foreground"}`,
|
|
7357
7359
|
children: i("All")
|
|
7358
7360
|
},
|
|
7359
7361
|
"sidebar-all"
|
|
7360
7362
|
),
|
|
7361
|
-
|
|
7363
|
+
S.map((k) => /* @__PURE__ */ jsx(
|
|
7362
7364
|
"button",
|
|
7363
7365
|
{
|
|
7364
|
-
onClick: () =>
|
|
7366
|
+
onClick: () => w(k),
|
|
7365
7367
|
onMouseEnter: () => B(k),
|
|
7366
|
-
onMouseLeave:
|
|
7368
|
+
onMouseLeave: E,
|
|
7367
7369
|
className: `w-full rounded-md px-2 py-1.5 text-left text-sm ${m === k || x === k ? "bg-accent text-accent-foreground" : "hover:bg-accent/50 hover:text-accent-foreground"}`,
|
|
7368
7370
|
children: capitalize(i(k.toLowerCase()))
|
|
7369
7371
|
},
|
|
7370
7372
|
`sidebar-${k}`
|
|
7371
7373
|
))
|
|
7372
7374
|
] }) }) }),
|
|
7373
|
-
/* @__PURE__ */ jsx("div", { className: "h-full w-3/4 flex-1 overflow-hidden", children: /* @__PURE__ */ jsx(ScrollArea, { id: "add-blocks-scroll-area", className: "no-scrollbar mr-4 h-full", children:
|
|
7375
|
+
/* @__PURE__ */ jsx("div", { className: "h-full w-3/4 flex-1 overflow-hidden", children: /* @__PURE__ */ jsx(ScrollArea, { id: "add-blocks-scroll-area", className: "no-scrollbar mr-4 h-full", children: j.length === 0 && d ? /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center justify-center p-8 text-center text-muted-foreground", children: /* @__PURE__ */ jsxs("p", { children: [
|
|
7374
7376
|
i("No blocks found matching"),
|
|
7375
7377
|
' "',
|
|
7376
7378
|
d,
|
|
@@ -7379,17 +7381,17 @@ const CoreBlock = ({
|
|
|
7379
7381
|
/* @__PURE__ */ jsx("h3", { className: "px-1 text-sm font-medium", children: capitalize(i(k.toLowerCase())) }),
|
|
7380
7382
|
/* @__PURE__ */ jsx("div", { className: "grid gap-2 " + l, children: React__default.Children.toArray(
|
|
7381
7383
|
reject(
|
|
7382
|
-
m === "all" ? filter(values(
|
|
7384
|
+
m === "all" ? filter(values(C), { group: k }) : values(C),
|
|
7383
7385
|
{ hidden: !0 }
|
|
7384
|
-
).map((
|
|
7386
|
+
).map((A) => /* @__PURE__ */ jsx(
|
|
7385
7387
|
CoreBlock,
|
|
7386
7388
|
{
|
|
7387
7389
|
parentId: r,
|
|
7388
7390
|
position: a,
|
|
7389
|
-
block:
|
|
7390
|
-
disabled: !canAcceptChildBlock(f,
|
|
7391
|
+
block: A,
|
|
7392
|
+
disabled: !canAcceptChildBlock(f, A.type) || !canBeNestedInside(f, A.type)
|
|
7391
7393
|
},
|
|
7392
|
-
|
|
7394
|
+
A.type
|
|
7393
7395
|
))
|
|
7394
7396
|
) })
|
|
7395
7397
|
] }, k)) }) }) })
|
|
@@ -7491,17 +7493,17 @@ const BlockCard = ({
|
|
|
7491
7493
|
position: a = -1
|
|
7492
7494
|
}) => {
|
|
7493
7495
|
const [l, i] = useState(!1), c = useBuilderProp("getUILibraryBlock", noop), { addCoreBlock: d, addPredefinedBlock: p } = useAddBlock(), [, u] = useSelectedBlockIds(), { clearHighlight: g } = useBlockHighlight(), f = get(o, "name", get(o, "label")), m = useFeature("dnd"), [, h] = useAtom$1(draggedBlockAtom), x = (B) => {
|
|
7494
|
-
const
|
|
7495
|
-
return B._type === "Box" &&
|
|
7496
|
-
},
|
|
7496
|
+
const E = has(B, "styles_attrs.data-page-section");
|
|
7497
|
+
return B._type === "Box" && E;
|
|
7498
|
+
}, y = useCallback(
|
|
7497
7499
|
async (B) => {
|
|
7498
7500
|
if (B.stopPropagation(), has(o, "component")) {
|
|
7499
7501
|
d(o, r, a), pubsub.publish(CHAI_BUILDER_EVENTS.CLOSE_ADD_BLOCK);
|
|
7500
7502
|
return;
|
|
7501
7503
|
}
|
|
7502
7504
|
i(!0);
|
|
7503
|
-
const
|
|
7504
|
-
isEmpty(
|
|
7505
|
+
const E = await c(n, o);
|
|
7506
|
+
isEmpty(E) || p(syncBlocksWithDefaults(E), r, a), pubsub.publish(CHAI_BUILDER_EVENTS.CLOSE_ADD_BLOCK);
|
|
7505
7507
|
},
|
|
7506
7508
|
[d, p, o, c, n, r, a]
|
|
7507
7509
|
);
|
|
@@ -7510,21 +7512,21 @@ const BlockCard = ({
|
|
|
7510
7512
|
"div",
|
|
7511
7513
|
{
|
|
7512
7514
|
onClick: l ? () => {
|
|
7513
|
-
} :
|
|
7515
|
+
} : y,
|
|
7514
7516
|
draggable: m ? "true" : "false",
|
|
7515
7517
|
onDragStart: async (B) => {
|
|
7516
|
-
const
|
|
7517
|
-
let
|
|
7518
|
-
if (x(first(
|
|
7519
|
-
const
|
|
7520
|
-
if (B.dataTransfer.setData("text/plain", JSON.stringify(
|
|
7521
|
-
const
|
|
7522
|
-
|
|
7523
|
-
B.dataTransfer.setDragImage(
|
|
7518
|
+
const E = await c(n, o);
|
|
7519
|
+
let w = r;
|
|
7520
|
+
if (x(first(E)) && (w = null), !isEmpty(E)) {
|
|
7521
|
+
const _ = { blocks: E, uiLibrary: !0, parent: w };
|
|
7522
|
+
if (B.dataTransfer.setData("text/plain", JSON.stringify(_)), o.preview) {
|
|
7523
|
+
const j = new Image();
|
|
7524
|
+
j.src = o.preview, j.onload = () => {
|
|
7525
|
+
B.dataTransfer.setDragImage(j, 0, 0);
|
|
7524
7526
|
};
|
|
7525
7527
|
} else
|
|
7526
7528
|
B.dataTransfer.setDragImage(new Image(), 0, 0);
|
|
7527
|
-
h(
|
|
7529
|
+
h(_), setTimeout(() => {
|
|
7528
7530
|
u([]), g(), pubsub.publish(CHAI_BUILDER_EVENTS.CLOSE_ADD_BLOCK);
|
|
7529
7531
|
}, 200);
|
|
7530
7532
|
}
|
|
@@ -7556,9 +7558,9 @@ const BlockCard = ({
|
|
|
7556
7558
|
})();
|
|
7557
7559
|
}, [o, l, i, c, r, a]), { data: l || [], isLoading: i === "loading" };
|
|
7558
7560
|
}, UILibrarySection = ({ parentId: o, position: n }) => {
|
|
7559
|
-
const [r, a] = useAtom$1(selectedLibraryAtom), l = useBuilderProp("uiLibraries", []), i = useRegisteredChaiBlocks(), c = values(i).filter((
|
|
7561
|
+
const [r, a] = useAtom$1(selectedLibraryAtom), l = useBuilderProp("uiLibraries", []), i = useRegisteredChaiBlocks(), c = values(i).filter((w) => w.category === "custom"), d = l.find((w) => w.uuid === r) || first(l), { data: p, isLoading: u } = useLibraryBlocks(d), g = groupBy([...p, ...c], "group"), [f, m] = useState("Hero"), h = get(g, f, []), x = useRef(null), { t: y } = useTranslation(), b = (w) => {
|
|
7560
7562
|
x.current && (clearTimeout(x.current), x.current = null), x.current = setTimeout(() => {
|
|
7561
|
-
x.current && m(
|
|
7563
|
+
x.current && m(w);
|
|
7562
7564
|
}, 300);
|
|
7563
7565
|
};
|
|
7564
7566
|
if (u)
|
|
@@ -7566,30 +7568,30 @@ const BlockCard = ({
|
|
|
7566
7568
|
/* @__PURE__ */ jsx(Skeleton, { className: "col-span-3 h-full" }),
|
|
7567
7569
|
/* @__PURE__ */ jsx(Skeleton, { className: "col-span-9 h-full" })
|
|
7568
7570
|
] });
|
|
7569
|
-
const B = filter(h, (
|
|
7571
|
+
const B = filter(h, (w, _) => _ % 2 === 0), E = filter(h, (w, _) => _ % 2 === 1);
|
|
7570
7572
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { className: "relative mt-2 flex h-full max-h-full overflow-hidden bg-background", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full pt-2", children: [
|
|
7571
7573
|
/* @__PURE__ */ jsxs("div", { className: "flex h-full max-h-full w-60 flex-col gap-1 px-1 pr-2", children: [
|
|
7572
7574
|
/* @__PURE__ */ jsx(UILibrariesSelect, { library: d == null ? void 0 : d.uuid, setLibrary: a, uiLibraries: l }),
|
|
7573
7575
|
/* @__PURE__ */ jsxs("div", { className: "mt-2 flex h-full max-h-full w-full flex-1 flex-col", children: [
|
|
7574
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-gray-500", children:
|
|
7576
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-gray-500", children: y("Groups") }),
|
|
7575
7577
|
/* @__PURE__ */ jsx("hr", { className: "mt-1 border-border" }),
|
|
7576
7578
|
/* @__PURE__ */ jsx("div", { className: "no-scrollbar mt-2 h-full max-h-full flex-1 overflow-y-auto pb-20", children: React__default.Children.toArray(
|
|
7577
|
-
map(g, (
|
|
7579
|
+
map(g, (w, _) => /* @__PURE__ */ jsxs(
|
|
7578
7580
|
"div",
|
|
7579
7581
|
{
|
|
7580
|
-
onMouseEnter: () =>
|
|
7582
|
+
onMouseEnter: () => b(_),
|
|
7581
7583
|
onMouseLeave: () => clearTimeout(x.current),
|
|
7582
|
-
onClick: () => m(
|
|
7584
|
+
onClick: () => m(_),
|
|
7583
7585
|
className: cn$1(
|
|
7584
7586
|
"flex w-full cursor-pointer items-center justify-between rounded-md p-2 text-sm text-foreground transition-all ease-in-out hover:bg-gray-200 dark:hover:bg-gray-800",
|
|
7585
|
-
|
|
7587
|
+
_ === f ? "bg-blue-500 text-white hover:bg-blue-600" : ""
|
|
7586
7588
|
),
|
|
7587
7589
|
children: [
|
|
7588
|
-
/* @__PURE__ */ jsx("span", { children: capitalize(
|
|
7590
|
+
/* @__PURE__ */ jsx("span", { children: capitalize(y(_.toLowerCase())) }),
|
|
7589
7591
|
/* @__PURE__ */ jsx(CaretRightIcon, { className: "ml-2 h-5 w-5" })
|
|
7590
7592
|
]
|
|
7591
7593
|
},
|
|
7592
|
-
|
|
7594
|
+
_
|
|
7593
7595
|
))
|
|
7594
7596
|
) })
|
|
7595
7597
|
] })
|
|
@@ -7602,10 +7604,10 @@ const BlockCard = ({
|
|
|
7602
7604
|
children: [
|
|
7603
7605
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 px-2", children: [
|
|
7604
7606
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1", children: React__default.Children.toArray(
|
|
7605
|
-
B.map((
|
|
7607
|
+
B.map((w) => /* @__PURE__ */ jsx(BlockCard, { parentId: o, position: n, block: w, library: d }))
|
|
7606
7608
|
) }),
|
|
7607
7609
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1", children: React__default.Children.toArray(
|
|
7608
|
-
|
|
7610
|
+
E.map((w) => /* @__PURE__ */ jsx(BlockCard, { parentId: o, position: n, block: w, library: d }))
|
|
7609
7611
|
) })
|
|
7610
7612
|
] }),
|
|
7611
7613
|
/* @__PURE__ */ jsx("br", {}),
|
|
@@ -7615,65 +7617,46 @@ const BlockCard = ({
|
|
|
7615
7617
|
}
|
|
7616
7618
|
)
|
|
7617
7619
|
] }) }) });
|
|
7618
|
-
}, UILibrariesPanel = ({ parentId: o, position: n }) => /* @__PURE__ */ jsx(UILibrarySection, { parentId: o, position: n })
|
|
7619
|
-
|
|
7620
|
-
|
|
7621
|
-
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
|
|
7627
|
-
|
|
7628
|
-
|
|
7629
|
-
};
|
|
7630
|
-
|
|
7631
|
-
|
|
7632
|
-
return
|
|
7633
|
-
}
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
-
[r]
|
|
7639
|
-
);
|
|
7640
|
-
return r ? /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Overlay, { isDragging: n, children: /* @__PURE__ */ jsx(
|
|
7641
|
-
"div",
|
|
7642
|
-
{
|
|
7643
|
-
className: "pointer-events-none absolute z-50 rounded border border-border bg-gray-100/80 font-semibold text-blue-600 shadow-md dark:border-gray-700 dark:bg-gray-800",
|
|
7644
|
-
style: i,
|
|
7645
|
-
children: /* @__PURE__ */ jsxs("button", { type: "button", className: "flex !cursor-grab items-center p-0.5", "aria-label": `Type: ${l == null ? void 0 : l._type}`, children: [
|
|
7646
|
-
/* @__PURE__ */ jsx("div", { className: "-mt-0.5 h-3 w-3", children: /* @__PURE__ */ jsx(TypeIcon, { type: l == null ? void 0 : l._type }) }),
|
|
7647
|
-
/* @__PURE__ */ jsx("div", { className: "ml-2 truncate text-[11px]", children: (l == null ? void 0 : l._name) || (l == null ? void 0 : l._type) })
|
|
7648
|
-
] })
|
|
7649
|
-
}
|
|
7650
|
-
) }) }) : /* @__PURE__ */ jsx("div", { className: "hidden" });
|
|
7651
|
-
}), PasteAtRootContextMenu = ({ parentContext: o, setParentContext: n }) => {
|
|
7620
|
+
}, UILibrariesPanel = ({ parentId: o, position: n }) => /* @__PURE__ */ jsx(UILibrarySection, { parentId: o, position: n });
|
|
7621
|
+
function BiCollapseVertical(o) {
|
|
7622
|
+
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "M12 7.59 7.05 2.64 5.64 4.05 12 10.41l6.36-6.36-1.41-1.41L12 7.59zM5.64 19.95l1.41 1.41L12 16.41l4.95 4.95 1.41-1.41L12 13.59l-6.36 6.36z" }, child: [] }] })(o);
|
|
7623
|
+
}
|
|
7624
|
+
function BiExpandVertical(o) {
|
|
7625
|
+
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "m12 19.24-4.95-4.95-1.41 1.42L12 22.07l6.36-6.36-1.41-1.42L12 19.24zM5.64 8.29l1.41 1.42L12 4.76l4.95 4.95 1.41-1.42L12 1.93 5.64 8.29z" }, child: [] }] })(o);
|
|
7626
|
+
}
|
|
7627
|
+
function BsLightningFill(o) {
|
|
7628
|
+
return GenIcon({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M5.52.359A.5.5 0 0 1 6 0h4a.5.5 0 0 1 .474.658L8.694 6H12.5a.5.5 0 0 1 .395.807l-7 9a.5.5 0 0 1-.873-.454L6.823 9.5H3.5a.5.5 0 0 1-.48-.641z" }, child: [] }] })(o);
|
|
7629
|
+
}
|
|
7630
|
+
function BsThreeDotsVertical(o) {
|
|
7631
|
+
return GenIcon({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0" }, child: [] }] })(o);
|
|
7632
|
+
}
|
|
7633
|
+
function TbEyeDown(o) {
|
|
7634
|
+
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" }, child: [] }, { tag: "path", attr: { d: "M12 18c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" }, child: [] }, { tag: "path", attr: { d: "M19 16v6" }, child: [] }, { tag: "path", attr: { d: "M22 19l-3 3l-3 -3" }, child: [] }] })(o);
|
|
7635
|
+
}
|
|
7636
|
+
function VscJson(o) {
|
|
7637
|
+
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 16 16", fill: "currentColor" }, child: [{ tag: "path", attr: { fillRule: "evenodd", clipRule: "evenodd", d: "M6 2.984V2h-.09c-.313 0-.616.062-.909.185a2.33 2.33 0 0 0-.775.53 2.23 2.23 0 0 0-.493.753v.001a3.542 3.542 0 0 0-.198.83v.002a6.08 6.08 0 0 0-.024.863c.012.29.018.58.018.869 0 .203-.04.393-.117.572v.001a1.504 1.504 0 0 1-.765.787 1.376 1.376 0 0 1-.558.115H2v.984h.09c.195 0 .38.04.556.121l.001.001c.178.078.329.184.455.318l.002.002c.13.13.233.285.307.465l.001.002c.078.18.117.368.117.566 0 .29-.006.58-.018.869-.012.296-.004.585.024.87v.001c.033.283.099.558.197.824v.001c.106.273.271.524.494.753.223.23.482.407.775.53.293.123.596.185.91.185H6v-.984h-.09c-.2 0-.387-.038-.563-.115a1.613 1.613 0 0 1-.457-.32 1.659 1.659 0 0 1-.309-.467c-.074-.18-.11-.37-.11-.573 0-.228.003-.453.011-.672.008-.228.008-.45 0-.665a4.639 4.639 0 0 0-.055-.64 2.682 2.682 0 0 0-.168-.609A2.284 2.284 0 0 0 3.522 8a2.284 2.284 0 0 0 .738-.955c.08-.192.135-.393.168-.602.033-.21.051-.423.055-.64.008-.22.008-.442 0-.666-.008-.224-.012-.45-.012-.678a1.47 1.47 0 0 1 .877-1.354 1.33 1.33 0 0 1 .563-.121H6zm4 10.032V14h.09c.313 0 .616-.062.909-.185.293-.123.552-.3.775-.53.223-.23.388-.48.493-.753v-.001c.1-.266.165-.543.198-.83v-.002c.028-.28.036-.567.024-.863-.012-.29-.018-.58-.018-.869 0-.203.04-.393.117-.572v-.001a1.502 1.502 0 0 1 .765-.787 1.38 1.38 0 0 1 .558-.115H14v-.984h-.09c-.196 0-.381-.04-.557-.121l-.001-.001a1.376 1.376 0 0 1-.455-.318l-.002-.002a1.415 1.415 0 0 1-.307-.465v-.002a1.405 1.405 0 0 1-.118-.566c0-.29.006-.58.018-.869a6.174 6.174 0 0 0-.024-.87v-.001a3.537 3.537 0 0 0-.197-.824v-.001a2.23 2.23 0 0 0-.494-.753 2.331 2.331 0 0 0-.775-.53 2.325 2.325 0 0 0-.91-.185H10v.984h.09c.2 0 .387.038.562.115.174.082.326.188.457.32.127.134.23.29.309.467.074.18.11.37.11.573 0 .228-.003.452-.011.672-.008.228-.008.45 0 .665.004.222.022.435.055.64.033.214.089.416.168.609a2.285 2.285 0 0 0 .738.955 2.285 2.285 0 0 0-.738.955 2.689 2.689 0 0 0-.168.602c-.033.21-.051.423-.055.64a9.15 9.15 0 0 0 0 .666c.008.224.012.45.012.678a1.471 1.471 0 0 1-.877 1.354 1.33 1.33 0 0 1-.563.121H10z" }, child: [] }] })(o);
|
|
7638
|
+
}
|
|
7639
|
+
const PasteAtRootContextMenu = ({ parentContext: o, setParentContext: n }) => {
|
|
7652
7640
|
const { t: r } = useTranslation(), { canPaste: a, pasteBlocks: l } = usePasteBlocks();
|
|
7653
7641
|
return useEffect(() => {
|
|
7654
7642
|
a("root") || n(null);
|
|
7655
|
-
}, [a("root")]), o
|
|
7656
|
-
"
|
|
7657
|
-
{
|
|
7658
|
-
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
]
|
|
7673
|
-
}
|
|
7674
|
-
)
|
|
7675
|
-
}
|
|
7676
|
-
);
|
|
7643
|
+
}, [a("root")]), !o || !a("root") ? null : /* @__PURE__ */ jsx("div", { style: { position: "absolute", top: o.y - 75, left: o.x - 56 }, children: /* @__PURE__ */ jsxs(DropdownMenu, { open: !0, onOpenChange: () => n(null), children: [
|
|
7644
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { className: "hidden" }),
|
|
7645
|
+
/* @__PURE__ */ jsx(DropdownMenuContent, { className: "w-28 p-1 text-xs", children: /* @__PURE__ */ jsxs(
|
|
7646
|
+
DropdownMenuItem,
|
|
7647
|
+
{
|
|
7648
|
+
className: "flex items-center gap-x-4 text-xs",
|
|
7649
|
+
onClick: () => {
|
|
7650
|
+
l("root"), n(null);
|
|
7651
|
+
},
|
|
7652
|
+
children: [
|
|
7653
|
+
/* @__PURE__ */ jsx(CardStackIcon, {}),
|
|
7654
|
+
" ",
|
|
7655
|
+
r("Paste")
|
|
7656
|
+
]
|
|
7657
|
+
}
|
|
7658
|
+
) })
|
|
7659
|
+
] }) });
|
|
7677
7660
|
}, CopyPasteBlocks = () => {
|
|
7678
7661
|
const [o] = useBlocksStore(), [n] = useSelectedBlockIds(), { pasteBlocks: r } = usePasteBlocks(), [, a] = useCopyBlockIds(), { t: l } = useTranslation(), i = useSelectedBlock(), c = useCallback(() => {
|
|
7679
7662
|
const d = n.map((p) => {
|
|
@@ -7687,7 +7670,7 @@ const BlockCard = ({
|
|
|
7687
7670
|
}, [n, o, a]);
|
|
7688
7671
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7689
7672
|
/* @__PURE__ */ jsxs(
|
|
7690
|
-
|
|
7673
|
+
DropdownMenuItem,
|
|
7691
7674
|
{
|
|
7692
7675
|
disabled: !canDuplicateBlock(i == null ? void 0 : i._type),
|
|
7693
7676
|
onClick: c,
|
|
@@ -7700,7 +7683,7 @@ const BlockCard = ({
|
|
|
7700
7683
|
}
|
|
7701
7684
|
),
|
|
7702
7685
|
/* @__PURE__ */ jsxs(
|
|
7703
|
-
|
|
7686
|
+
DropdownMenuItem,
|
|
7704
7687
|
{
|
|
7705
7688
|
className: "flex items-center gap-x-4 text-xs",
|
|
7706
7689
|
onClick: () => {
|
|
@@ -7716,7 +7699,7 @@ const BlockCard = ({
|
|
|
7716
7699
|
] });
|
|
7717
7700
|
}, CutBlocks = () => {
|
|
7718
7701
|
const [o] = useSelectedBlockIds(), [, n] = useCutBlockIds(), { t: r } = useTranslation();
|
|
7719
|
-
return /* @__PURE__ */ jsxs(
|
|
7702
|
+
return /* @__PURE__ */ jsxs(DropdownMenuItem, { className: "flex items-center gap-x-4 text-xs", onClick: () => n(o), children: [
|
|
7720
7703
|
/* @__PURE__ */ jsx(ScissorsIcon, {}),
|
|
7721
7704
|
" ",
|
|
7722
7705
|
r("Cut")
|
|
@@ -7724,7 +7707,7 @@ const BlockCard = ({
|
|
|
7724
7707
|
}, RemoveBlocks = () => {
|
|
7725
7708
|
const [o] = useSelectedBlockIds(), n = useRemoveBlocks(), r = useSelectedBlock(), { t: a } = useTranslation();
|
|
7726
7709
|
return /* @__PURE__ */ jsxs(
|
|
7727
|
-
|
|
7710
|
+
DropdownMenuItem,
|
|
7728
7711
|
{
|
|
7729
7712
|
disabled: !canDeleteBlock(r == null ? void 0 : r._type),
|
|
7730
7713
|
className: "flex items-center gap-x-4 text-xs",
|
|
@@ -7736,45 +7719,106 @@ const BlockCard = ({
|
|
|
7736
7719
|
]
|
|
7737
7720
|
}
|
|
7738
7721
|
);
|
|
7739
|
-
},
|
|
7740
|
-
const { t:
|
|
7741
|
-
|
|
7742
|
-
|
|
7743
|
-
|
|
7722
|
+
}, RenameBlock = ({ node: o }) => {
|
|
7723
|
+
const { t: n } = useTranslation();
|
|
7724
|
+
return console.log(o), /* @__PURE__ */ jsxs(
|
|
7725
|
+
DropdownMenuItem,
|
|
7726
|
+
{
|
|
7727
|
+
onClick: (r) => {
|
|
7728
|
+
r.stopPropagation(), console.log(o), o.edit(), o.deselect();
|
|
7729
|
+
},
|
|
7730
|
+
className: "flex items-center gap-x-4 text-xs",
|
|
7731
|
+
children: [
|
|
7732
|
+
/* @__PURE__ */ jsx(PencilIcon, { className: "h-4 w-4" }),
|
|
7733
|
+
" ",
|
|
7734
|
+
n("Rename")
|
|
7735
|
+
]
|
|
7736
|
+
}
|
|
7737
|
+
);
|
|
7738
|
+
}, BlockContextMenuContent = ({ node: o }) => {
|
|
7739
|
+
const { t: n } = useTranslation(), [r] = useSelectedBlockIds(), a = useDuplicateBlocks(), l = useSelectedBlock(), i = useCallback(() => {
|
|
7740
|
+
a(r);
|
|
7741
|
+
}, [r, a]);
|
|
7742
|
+
return /* @__PURE__ */ jsxs(DropdownMenuContent, { side: "bottom", className: "border-border text-xs", children: [
|
|
7744
7743
|
/* @__PURE__ */ jsxs(
|
|
7745
|
-
|
|
7744
|
+
DropdownMenuItem,
|
|
7746
7745
|
{
|
|
7747
|
-
disabled: !canAddChildBlock(
|
|
7746
|
+
disabled: !canAddChildBlock(l == null ? void 0 : l._type),
|
|
7748
7747
|
className: "flex items-center gap-x-4 text-xs",
|
|
7749
|
-
onClick: () => pubsub.publish(CHAI_BUILDER_EVENTS.OPEN_ADD_BLOCK,
|
|
7748
|
+
onClick: () => pubsub.publish(CHAI_BUILDER_EVENTS.OPEN_ADD_BLOCK, l),
|
|
7750
7749
|
children: [
|
|
7751
7750
|
/* @__PURE__ */ jsx(PlusIcon$1, { size: "14" }),
|
|
7752
7751
|
" ",
|
|
7753
|
-
|
|
7752
|
+
n("Add block")
|
|
7754
7753
|
]
|
|
7755
7754
|
}
|
|
7756
7755
|
),
|
|
7757
7756
|
/* @__PURE__ */ jsxs(
|
|
7758
|
-
|
|
7757
|
+
DropdownMenuItem,
|
|
7759
7758
|
{
|
|
7760
|
-
disabled: !canDuplicateBlock(
|
|
7759
|
+
disabled: !canDuplicateBlock(l == null ? void 0 : l._type),
|
|
7761
7760
|
className: "flex items-center gap-x-4 text-xs",
|
|
7762
|
-
onClick:
|
|
7761
|
+
onClick: i,
|
|
7763
7762
|
children: [
|
|
7764
7763
|
/* @__PURE__ */ jsx(CardStackPlusIcon, {}),
|
|
7765
7764
|
" ",
|
|
7766
|
-
|
|
7765
|
+
n("Duplicate")
|
|
7767
7766
|
]
|
|
7768
7767
|
}
|
|
7769
7768
|
),
|
|
7769
|
+
/* @__PURE__ */ jsx(RenameBlock, { node: o }),
|
|
7770
7770
|
/* @__PURE__ */ jsx(CutBlocks, {}),
|
|
7771
7771
|
/* @__PURE__ */ jsx(CopyPasteBlocks, {}),
|
|
7772
7772
|
/* @__PURE__ */ jsx(RemoveBlocks, {})
|
|
7773
7773
|
] });
|
|
7774
|
-
},
|
|
7775
|
-
|
|
7776
|
-
/* @__PURE__ */ jsx(
|
|
7777
|
-
|
|
7774
|
+
}, BlockMoreOptions = ({ children: o, id: n, node: r }) => {
|
|
7775
|
+
const [, a] = useSelectedBlockIds();
|
|
7776
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
|
|
7777
|
+
DropdownMenu,
|
|
7778
|
+
{
|
|
7779
|
+
onOpenChange: (l) => {
|
|
7780
|
+
l && a([n]);
|
|
7781
|
+
},
|
|
7782
|
+
children: [
|
|
7783
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { children: o }),
|
|
7784
|
+
/* @__PURE__ */ jsx(BlockContextMenuContent, { node: r })
|
|
7785
|
+
]
|
|
7786
|
+
}
|
|
7787
|
+
) });
|
|
7788
|
+
}, placeholderStyle = {
|
|
7789
|
+
display: "flex",
|
|
7790
|
+
alignItems: "center",
|
|
7791
|
+
zIndex: 1
|
|
7792
|
+
}, DefaultCursor = React__default.memo(function({ top: n, left: r }) {
|
|
7793
|
+
const a = {
|
|
7794
|
+
position: "absolute",
|
|
7795
|
+
pointerEvents: "none",
|
|
7796
|
+
top: n + "px",
|
|
7797
|
+
left: r + "px",
|
|
7798
|
+
right: 0
|
|
7799
|
+
};
|
|
7800
|
+
return /* @__PURE__ */ jsx("div", { style: { ...placeholderStyle, ...a }, children: /* @__PURE__ */ jsx("div", { className: "h-0.5 flex-1 rounded-[1px] bg-green-500" }) });
|
|
7801
|
+
}), Overlay = memo(function({ children: n, isDragging: r }) {
|
|
7802
|
+
return r ? /* @__PURE__ */ jsx("div", { className: "pointer-events-none fixed left-0 top-0 z-[100] h-full w-full", children: n }) : null;
|
|
7803
|
+
}), DefaultDragPreview = memo(({ id: o, isDragging: n, mouse: r }) => {
|
|
7804
|
+
const [a] = useBlocksStore(), l = useMemo(() => a.find((c) => c._id === o), [a, o]), i = useMemo(
|
|
7805
|
+
() => ({
|
|
7806
|
+
transform: `translate(${(r == null ? void 0 : r.x) - 10}px, ${(r == null ? void 0 : r.y) - 10}px)`
|
|
7807
|
+
}),
|
|
7808
|
+
[r]
|
|
7809
|
+
);
|
|
7810
|
+
return r ? /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Overlay, { isDragging: n, children: /* @__PURE__ */ jsx(
|
|
7811
|
+
"div",
|
|
7812
|
+
{
|
|
7813
|
+
className: "pointer-events-none absolute z-50 rounded border border-border bg-gray-100/80 font-semibold text-blue-600 shadow-md dark:border-gray-700 dark:bg-gray-800",
|
|
7814
|
+
style: i,
|
|
7815
|
+
children: /* @__PURE__ */ jsxs("button", { type: "button", className: "flex !cursor-grab items-center p-0.5", "aria-label": `Type: ${l == null ? void 0 : l._type}`, children: [
|
|
7816
|
+
/* @__PURE__ */ jsx("div", { className: "-mt-0.5 h-3 w-3", children: /* @__PURE__ */ jsx(TypeIcon, { type: l == null ? void 0 : l._type }) }),
|
|
7817
|
+
/* @__PURE__ */ jsx("div", { className: "ml-2 truncate text-[11px]", children: (l == null ? void 0 : l._name) || (l == null ? void 0 : l._type) })
|
|
7818
|
+
] })
|
|
7819
|
+
}
|
|
7820
|
+
) }) }) : /* @__PURE__ */ jsx("div", { className: "hidden" });
|
|
7821
|
+
}), defaultShortcuts = [
|
|
7778
7822
|
{ key: "ArrowDown", command: "selectNext" },
|
|
7779
7823
|
{ key: "ArrowUp", command: "selectPrev" },
|
|
7780
7824
|
{ key: "ArrowLeft", command: "selectParent", when: "isLeaf || isClosed" },
|
|
@@ -7808,59 +7852,43 @@ const selectParent = (o, n) => {
|
|
|
7808
7852
|
}, close = (o, n) => {
|
|
7809
7853
|
const r = o.selectedNodes[0];
|
|
7810
7854
|
r.isInternal && n && r.close();
|
|
7811
|
-
}
|
|
7812
|
-
|
|
7813
|
-
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 16 16", fill: "currentColor" }, child: [{ tag: "path", attr: { fillRule: "evenodd", clipRule: "evenodd", d: "M6 2.984V2h-.09c-.313 0-.616.062-.909.185a2.33 2.33 0 0 0-.775.53 2.23 2.23 0 0 0-.493.753v.001a3.542 3.542 0 0 0-.198.83v.002a6.08 6.08 0 0 0-.024.863c.012.29.018.58.018.869 0 .203-.04.393-.117.572v.001a1.504 1.504 0 0 1-.765.787 1.376 1.376 0 0 1-.558.115H2v.984h.09c.195 0 .38.04.556.121l.001.001c.178.078.329.184.455.318l.002.002c.13.13.233.285.307.465l.001.002c.078.18.117.368.117.566 0 .29-.006.58-.018.869-.012.296-.004.585.024.87v.001c.033.283.099.558.197.824v.001c.106.273.271.524.494.753.223.23.482.407.775.53.293.123.596.185.91.185H6v-.984h-.09c-.2 0-.387-.038-.563-.115a1.613 1.613 0 0 1-.457-.32 1.659 1.659 0 0 1-.309-.467c-.074-.18-.11-.37-.11-.573 0-.228.003-.453.011-.672.008-.228.008-.45 0-.665a4.639 4.639 0 0 0-.055-.64 2.682 2.682 0 0 0-.168-.609A2.284 2.284 0 0 0 3.522 8a2.284 2.284 0 0 0 .738-.955c.08-.192.135-.393.168-.602.033-.21.051-.423.055-.64.008-.22.008-.442 0-.666-.008-.224-.012-.45-.012-.678a1.47 1.47 0 0 1 .877-1.354 1.33 1.33 0 0 1 .563-.121H6zm4 10.032V14h.09c.313 0 .616-.062.909-.185.293-.123.552-.3.775-.53.223-.23.388-.48.493-.753v-.001c.1-.266.165-.543.198-.83v-.002c.028-.28.036-.567.024-.863-.012-.29-.018-.58-.018-.869 0-.203.04-.393.117-.572v-.001a1.502 1.502 0 0 1 .765-.787 1.38 1.38 0 0 1 .558-.115H14v-.984h-.09c-.196 0-.381-.04-.557-.121l-.001-.001a1.376 1.376 0 0 1-.455-.318l-.002-.002a1.415 1.415 0 0 1-.307-.465v-.002a1.405 1.405 0 0 1-.118-.566c0-.29.006-.58.018-.869a6.174 6.174 0 0 0-.024-.87v-.001a3.537 3.537 0 0 0-.197-.824v-.001a2.23 2.23 0 0 0-.494-.753 2.331 2.331 0 0 0-.775-.53 2.325 2.325 0 0 0-.91-.185H10v.984h.09c.2 0 .387.038.562.115.174.082.326.188.457.32.127.134.23.29.309.467.074.18.11.37.11.573 0 .228-.003.452-.011.672-.008.228-.008.45 0 .665.004.222.022.435.055.64.033.214.089.416.168.609a2.285 2.285 0 0 0 .738.955 2.285 2.285 0 0 0-.738.955 2.689 2.689 0 0 0-.168.602c-.033.21-.051.423-.055.64a9.15 9.15 0 0 0 0 .666c.008.224.012.45.012.678a1.471 1.471 0 0 1-.877 1.354 1.33 1.33 0 0 1-.563.121H10z" }, child: [] }] })(o);
|
|
7814
|
-
}
|
|
7815
|
-
function BsLightningFill(o) {
|
|
7816
|
-
return GenIcon({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M5.52.359A.5.5 0 0 1 6 0h4a.5.5 0 0 1 .474.658L8.694 6H12.5a.5.5 0 0 1 .395.807l-7 9a.5.5 0 0 1-.873-.454L6.823 9.5H3.5a.5.5 0 0 1-.48-.641z" }, child: [] }] })(o);
|
|
7817
|
-
}
|
|
7818
|
-
function TbEyeDown(o) {
|
|
7819
|
-
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" }, child: [] }, { tag: "path", attr: { d: "M12 18c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" }, child: [] }, { tag: "path", attr: { d: "M19 16v6" }, child: [] }, { tag: "path", attr: { d: "M22 19l-3 3l-3 -3" }, child: [] }] })(o);
|
|
7820
|
-
}
|
|
7821
|
-
function BiCollapseVertical(o) {
|
|
7822
|
-
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "M12 7.59 7.05 2.64 5.64 4.05 12 10.41l6.36-6.36-1.41-1.41L12 7.59zM5.64 19.95l1.41 1.41L12 16.41l4.95 4.95 1.41-1.41L12 13.59l-6.36 6.36z" }, child: [] }] })(o);
|
|
7823
|
-
}
|
|
7824
|
-
function BiExpandVertical(o) {
|
|
7825
|
-
return GenIcon({ tag: "svg", attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "m12 19.24-4.95-4.95-1.41 1.42L12 22.07l6.36-6.36-1.41-1.42L12 19.24zM5.64 8.29l1.41 1.42L12 4.76l4.95 4.95 1.41-1.42L12 1.93 5.64 8.29z" }, child: [] }] })(o);
|
|
7826
|
-
}
|
|
7827
|
-
const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, dragHandle: r }) => {
|
|
7828
|
-
var R;
|
|
7855
|
+
}, currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, dragHandle: r }) => {
|
|
7856
|
+
var P;
|
|
7829
7857
|
const a = useBuilderProp("outlineMenuItems", []), { t: l } = useTranslation(), [i, , c] = useHiddenBlockIds(), [d] = useAtom$1(canvasIframeAtom);
|
|
7830
7858
|
let p = null;
|
|
7831
|
-
const u = o.children.length > 0, { highlightBlock: g, clearHighlight: f } = useBlockHighlight(), { id: m, data: h, isSelected: x, willReceiveDrop:
|
|
7859
|
+
const u = o.children.length > 0, { highlightBlock: g, clearHighlight: f } = useBlockHighlight(), { id: m, data: h, isSelected: x, willReceiveDrop: y, isDragging: b, isEditing: B, handleClick: E } = o, w = (N) => {
|
|
7832
7860
|
N.stopPropagation(), !i.includes(m) && o.toggle();
|
|
7833
|
-
},
|
|
7861
|
+
}, _ = (N) => {
|
|
7834
7862
|
N.isInternal && (p = N.isOpen, N.isOpen && N.close());
|
|
7835
|
-
},
|
|
7863
|
+
}, j = (N) => {
|
|
7836
7864
|
N.isInternal && p !== null && (p ? N.open() : N.close(), p = null);
|
|
7837
|
-
}, [
|
|
7865
|
+
}, [S, C] = useAtom$1(currentAddSelection), L = () => {
|
|
7838
7866
|
var N;
|
|
7839
|
-
v(), o.parent.isSelected ||
|
|
7867
|
+
v(), o.parent.isSelected || C((N = o == null ? void 0 : o.parent) == null ? void 0 : N.id);
|
|
7840
7868
|
}, v = () => {
|
|
7841
|
-
|
|
7869
|
+
C(null);
|
|
7842
7870
|
}, k = (N) => {
|
|
7843
|
-
v(), N.stopPropagation(), !o.isOpen && !i.includes(m) && o.toggle(),
|
|
7871
|
+
v(), N.stopPropagation(), !o.isOpen && !i.includes(m) && o.toggle(), E(N);
|
|
7844
7872
|
};
|
|
7845
7873
|
useEffect(() => {
|
|
7846
7874
|
const N = setTimeout(() => {
|
|
7847
|
-
|
|
7875
|
+
y && !o.isOpen && !b && !i.includes(m) && o.toggle();
|
|
7848
7876
|
}, 500);
|
|
7849
7877
|
return () => clearTimeout(N);
|
|
7850
|
-
}, [
|
|
7851
|
-
const
|
|
7878
|
+
}, [y, o, b]);
|
|
7879
|
+
const A = useMemo(() => {
|
|
7852
7880
|
const N = Object.keys(h), D = [];
|
|
7853
7881
|
for (let M = 0; M < N.length; M++)
|
|
7854
7882
|
if (N[M].endsWith("_attrs")) {
|
|
7855
|
-
const
|
|
7883
|
+
const R = h[N[M]], O = Object.keys(R).join("|");
|
|
7856
7884
|
O.match(/x-data/) && D.push("data"), O.match(/x-on/) && D.push("event"), O.match(/x-show|x-if/) && D.push("show");
|
|
7857
7885
|
}
|
|
7858
7886
|
return D;
|
|
7859
7887
|
}, [h]), T = (N, D) => {
|
|
7860
|
-
const M = d.contentDocument || d.contentWindow.document,
|
|
7861
|
-
|
|
7862
|
-
const O =
|
|
7863
|
-
O.top >= $.top && O.left >= $.left && O.bottom <= $.bottom && O.right <= $.right || (M.documentElement.scrollTop =
|
|
7888
|
+
const M = d.contentDocument || d.contentWindow.document, R = M.querySelector(`[data-block-id=${N}]`);
|
|
7889
|
+
R && R.setAttribute("data-drop", D);
|
|
7890
|
+
const O = R.getBoundingClientRect(), $ = d.getBoundingClientRect();
|
|
7891
|
+
O.top >= $.top && O.left >= $.left && O.bottom <= $.bottom && O.right <= $.right || (M.documentElement.scrollTop = R.offsetTop - $.top);
|
|
7864
7892
|
}, I = (N) => {
|
|
7865
7893
|
v();
|
|
7866
7894
|
const D = get(o, "parent.id");
|
|
@@ -7881,7 +7909,7 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7881
7909
|
}
|
|
7882
7910
|
),
|
|
7883
7911
|
/* @__PURE__ */ jsx("br", {})
|
|
7884
|
-
] }) : /* @__PURE__ */ jsx(
|
|
7912
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs(
|
|
7885
7913
|
"div",
|
|
7886
7914
|
{
|
|
7887
7915
|
onMouseEnter: () => g(m),
|
|
@@ -7890,8 +7918,8 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7890
7918
|
style: n,
|
|
7891
7919
|
"data-node-id": m,
|
|
7892
7920
|
ref: i.includes(m) ? null : r,
|
|
7893
|
-
onDragStart: () =>
|
|
7894
|
-
onDragEnd: () =>
|
|
7921
|
+
onDragStart: () => _(o),
|
|
7922
|
+
onDragEnd: () => j(o),
|
|
7895
7923
|
onDragOver: (N) => {
|
|
7896
7924
|
N.preventDefault(), T(m, "yes");
|
|
7897
7925
|
},
|
|
@@ -7902,7 +7930,7 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7902
7930
|
N.preventDefault(), T(m, "no");
|
|
7903
7931
|
},
|
|
7904
7932
|
children: [
|
|
7905
|
-
(o == null ? void 0 : o.rowIndex) > 0 && (o.parent.isOpen && canAddChildBlock(get(o, "parent.data._type")) || ((
|
|
7933
|
+
(o == null ? void 0 : o.rowIndex) > 0 && (o.parent.isOpen && canAddChildBlock(get(o, "parent.data._type")) || ((P = o == null ? void 0 : o.parent) == null ? void 0 : P.id) === "__REACT_ARBORIST_INTERNAL_ROOT__") && /* @__PURE__ */ jsx("div", { className: "group relative ml-5 h-full w-full cursor-pointer", children: /* @__PURE__ */ jsx(
|
|
7906
7934
|
"div",
|
|
7907
7935
|
{
|
|
7908
7936
|
onClick: (N) => {
|
|
@@ -7920,9 +7948,9 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7920
7948
|
className: cn$1(
|
|
7921
7949
|
"group flex w-full cursor-pointer items-center justify-between space-x-px !rounded p-1 text-foreground/80 outline-none",
|
|
7922
7950
|
x ? "bg-blue-500 text-white" : "hover:bg-slate-200 dark:hover:bg-gray-800",
|
|
7923
|
-
|
|
7924
|
-
(o == null ? void 0 : o.id) ===
|
|
7925
|
-
|
|
7951
|
+
y && canAcceptChildBlock(h._type, "Icon") ? "bg-green-200" : "",
|
|
7952
|
+
(o == null ? void 0 : o.id) === S ? "bg-purple-100" : "",
|
|
7953
|
+
b && "opacity-20",
|
|
7926
7954
|
i.includes(m) ? "opacity-50" : ""
|
|
7927
7955
|
),
|
|
7928
7956
|
children: [
|
|
@@ -7931,12 +7959,7 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7931
7959
|
"div",
|
|
7932
7960
|
{
|
|
7933
7961
|
className: `flex h-4 w-4 rotate-0 transform cursor-pointer items-center justify-center transition-transform duration-100 ${o.isOpen ? "rotate-90" : ""}`,
|
|
7934
|
-
children: u && /* @__PURE__ */ jsx("button", { onClick:
|
|
7935
|
-
ChevronRight,
|
|
7936
|
-
{
|
|
7937
|
-
className: `h-3 w-3 stroke-[3] ${x ? "text-slate-200" : "text-slate-400"}`
|
|
7938
|
-
}
|
|
7939
|
-
) })
|
|
7962
|
+
children: u && /* @__PURE__ */ jsx("button", { onClick: w, type: "button", children: /* @__PURE__ */ jsx(ChevronRight, { className: `h-3 w-3 stroke-[3] ${x ? "text-slate-200" : "text-slate-400"}` }) })
|
|
7940
7963
|
}
|
|
7941
7964
|
),
|
|
7942
7965
|
/* @__PURE__ */ jsxs("div", { className: "leading-1 flex items-center", children: [
|
|
@@ -7950,9 +7973,9 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7950
7973
|
},
|
|
7951
7974
|
children: [
|
|
7952
7975
|
/* @__PURE__ */ jsx("span", { children: (h == null ? void 0 : h._name) || (h == null ? void 0 : h._type.split("/").pop()) }),
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7976
|
+
A.includes("data") && /* @__PURE__ */ jsx(VscJson, { className: "h-3 w-3 text-orange-600" }),
|
|
7977
|
+
A.includes("event") && /* @__PURE__ */ jsx(BsLightningFill, { className: "h-3 w-3 text-yellow-500" }),
|
|
7978
|
+
A.includes("show") && /* @__PURE__ */ jsx(TbEyeDown, { className: "h-3 w-3 text-orange-600" })
|
|
7956
7979
|
]
|
|
7957
7980
|
}
|
|
7958
7981
|
)
|
|
@@ -7995,14 +8018,15 @@ const currentAddSelection = atom$1(null), Node = memo(({ node: o, style: n, drag
|
|
|
7995
8018
|
}
|
|
7996
8019
|
),
|
|
7997
8020
|
/* @__PURE__ */ jsx(TooltipContent, { className: "isolate z-[9999]", side: "left", children: l("Hide block") })
|
|
7998
|
-
] })
|
|
8021
|
+
] }),
|
|
8022
|
+
/* @__PURE__ */ jsx(BlockMoreOptions, { node: o, id: m, children: /* @__PURE__ */ jsx(BsThreeDotsVertical, { size: "15" }) })
|
|
7999
8023
|
] })
|
|
8000
8024
|
]
|
|
8001
8025
|
}
|
|
8002
8026
|
)
|
|
8003
8027
|
]
|
|
8004
8028
|
}
|
|
8005
|
-
) })
|
|
8029
|
+
) });
|
|
8006
8030
|
}), Input = ({ node: o }) => {
|
|
8007
8031
|
var n, r;
|
|
8008
8032
|
return /* @__PURE__ */ jsx(
|
|
@@ -8653,8 +8677,8 @@ const AIUserPrompt = ({ blockId: o }) => {
|
|
|
8653
8677
|
(x = f.current) == null || x.focus();
|
|
8654
8678
|
}, []);
|
|
8655
8679
|
const h = (x) => {
|
|
8656
|
-
const { usage:
|
|
8657
|
-
!l &&
|
|
8680
|
+
const { usage: y } = x || {};
|
|
8681
|
+
!l && y && g(y), m.current = setTimeout(() => g(void 0), 1e4), l || c("");
|
|
8658
8682
|
};
|
|
8659
8683
|
return /* @__PURE__ */ jsxs("div", { className: "", children: [
|
|
8660
8684
|
/* @__PURE__ */ jsxs(
|
|
@@ -8960,8 +8984,11 @@ const AiAssistant = () => {
|
|
|
8960
8984
|
/* @__PURE__ */ jsx(AiAssistant, {})
|
|
8961
8985
|
] })
|
|
8962
8986
|
] });
|
|
8963
|
-
}, AttrsEditor = React__default.memo(function o({
|
|
8964
|
-
|
|
8987
|
+
}, AttrsEditor = React__default.memo(function o({
|
|
8988
|
+
preloadedAttributes: n = [],
|
|
8989
|
+
onAttributesChange: r
|
|
8990
|
+
}) {
|
|
8991
|
+
const [a, l] = useState([]), [i, c] = useState(""), [d, p] = useState(""), [u, g] = useState(null), [f, m] = useState(""), h = useRef(null), x = useRef(null), y = usePageExternalData();
|
|
8965
8992
|
useEffect(() => {
|
|
8966
8993
|
l(n);
|
|
8967
8994
|
}, [n]);
|
|
@@ -8974,12 +9001,12 @@ const AiAssistant = () => {
|
|
|
8974
9001
|
const S = [...a, { key: i, value: d }];
|
|
8975
9002
|
r(S), l(a), c(""), p(""), m("");
|
|
8976
9003
|
}
|
|
8977
|
-
}, y = (S) => {
|
|
8978
|
-
const A = a.filter((_, w) => w !== S);
|
|
8979
|
-
r(A), l(A);
|
|
8980
9004
|
}, B = (S) => {
|
|
9005
|
+
const C = a.filter((L, v) => v !== S);
|
|
9006
|
+
r(C), l(C);
|
|
9007
|
+
}, E = (S) => {
|
|
8981
9008
|
g(S), c(a[S].key), p(a[S].value);
|
|
8982
|
-
},
|
|
9009
|
+
}, w = () => {
|
|
8983
9010
|
if (i.startsWith("@")) {
|
|
8984
9011
|
m("Attribute keys cannot start with '@'");
|
|
8985
9012
|
return;
|
|
@@ -8988,13 +9015,35 @@ const AiAssistant = () => {
|
|
|
8988
9015
|
const S = [...a];
|
|
8989
9016
|
S[u] = { key: i, value: d }, r(S), l(S), g(null), c(""), p(""), m("");
|
|
8990
9017
|
}
|
|
8991
|
-
}
|
|
9018
|
+
}, _ = (S) => {
|
|
9019
|
+
S.key === "Enter" && !S.shiftKey && (S.preventDefault(), u !== null ? w() : b());
|
|
9020
|
+
}, j = useCallback((S) => {
|
|
9021
|
+
const C = (k) => /[.,!?;:]/.test(k), L = (k, A, T) => {
|
|
9022
|
+
let I = "", P = "";
|
|
9023
|
+
const N = A > 0 ? k[A - 1] : "", D = A < k.length ? k[A] : "";
|
|
9024
|
+
return A > 0 && (N === "." || !C(N) && N !== " ") && (I = " "), A < k.length && !C(D) && D !== " " && (P = " "), {
|
|
9025
|
+
text: I + T + P,
|
|
9026
|
+
prefixLength: I.length,
|
|
9027
|
+
suffixLength: P.length
|
|
9028
|
+
};
|
|
9029
|
+
}, v = x.current;
|
|
9030
|
+
if (v) {
|
|
9031
|
+
const k = v.selectionStart || 0, A = v.value || "", T = v.selectionEnd || k;
|
|
9032
|
+
if (T > k) {
|
|
9033
|
+
const M = `{{${S}}}`, { text: R } = L(A, k, M), O = A.slice(0, k) + R + A.slice(T);
|
|
9034
|
+
p(O);
|
|
9035
|
+
return;
|
|
9036
|
+
}
|
|
9037
|
+
const P = `{{${S}}}`, { text: N } = L(A, k, P), D = A.slice(0, k) + N + A.slice(k);
|
|
9038
|
+
p(D);
|
|
9039
|
+
}
|
|
9040
|
+
}, []);
|
|
8992
9041
|
return /* @__PURE__ */ jsxs("div", { className: "flex max-h-full flex-1 flex-col", children: [
|
|
8993
9042
|
/* @__PURE__ */ jsxs(
|
|
8994
9043
|
"form",
|
|
8995
9044
|
{
|
|
8996
9045
|
onSubmit: (S) => {
|
|
8997
|
-
S.preventDefault(), u !== null ?
|
|
9046
|
+
S.preventDefault(), u !== null ? w() : b();
|
|
8998
9047
|
},
|
|
8999
9048
|
className: "space-y-3",
|
|
9000
9049
|
children: [
|
|
@@ -9017,7 +9066,10 @@ const AiAssistant = () => {
|
|
|
9017
9066
|
)
|
|
9018
9067
|
] }),
|
|
9019
9068
|
/* @__PURE__ */ jsxs("div", { className: "w-full", children: [
|
|
9020
|
-
/* @__PURE__ */
|
|
9069
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
9070
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "attrValue", className: "text-[11px] font-normal text-slate-600", children: "Value" }),
|
|
9071
|
+
!isEmpty(y) && /* @__PURE__ */ jsx(NestedPathSelector, { data: y, onSelect: j })
|
|
9072
|
+
] }),
|
|
9021
9073
|
/* @__PURE__ */ jsx(
|
|
9022
9074
|
Textarea,
|
|
9023
9075
|
{
|
|
@@ -9029,9 +9081,7 @@ const AiAssistant = () => {
|
|
|
9029
9081
|
ref: x,
|
|
9030
9082
|
value: d,
|
|
9031
9083
|
onChange: (S) => p(S.target.value),
|
|
9032
|
-
onKeyDown:
|
|
9033
|
-
S.key === "Enter" && !S.shiftKey && (S.preventDefault(), u !== null ? j() : b());
|
|
9034
|
-
},
|
|
9084
|
+
onKeyDown: _,
|
|
9035
9085
|
placeholder: "Enter Value",
|
|
9036
9086
|
className: "text-xs font-normal leading-tight placeholder:text-slate-400"
|
|
9037
9087
|
}
|
|
@@ -9043,16 +9093,16 @@ const AiAssistant = () => {
|
|
|
9043
9093
|
]
|
|
9044
9094
|
}
|
|
9045
9095
|
),
|
|
9046
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-1 py-4", children: a.map((S,
|
|
9096
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-1 py-4", children: a.map((S, C) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between rounded border p-2 text-sm", children: [
|
|
9047
9097
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col text-xs leading-tight", children: [
|
|
9048
9098
|
/* @__PURE__ */ jsx("span", { className: "truncate text-[12px] font-light text-muted-foreground", children: S.key }),
|
|
9049
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
9099
|
+
/* @__PURE__ */ jsx("span", { className: "max-w-[200px] text-wrap font-normal", children: S.value.toString() })
|
|
9050
9100
|
] }),
|
|
9051
9101
|
/* @__PURE__ */ jsxs("div", { className: "flex-shrink-0 text-slate-400", children: [
|
|
9052
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", onClick: () =>
|
|
9053
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", onClick: () =>
|
|
9102
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", onClick: () => E(C), children: /* @__PURE__ */ jsx(Edit2, { className: "h-3 w-3" }) }),
|
|
9103
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", onClick: () => B(C), children: /* @__PURE__ */ jsx(X, { className: "h-3 w-3" }) })
|
|
9054
9104
|
] })
|
|
9055
|
-
] },
|
|
9105
|
+
] }, C)) })
|
|
9056
9106
|
] });
|
|
9057
9107
|
}), BlockAttributesEditor = React.memo(() => {
|
|
9058
9108
|
const o = useSelectedBlock(), [n, r] = useState([]), [a] = useSelectedStylingBlocks(), l = useUpdateBlocksProps(), i = `${get(a, "0.prop")}_attrs`;
|
|
@@ -9230,7 +9280,7 @@ const ChooseLayout = ({ open: o, close: n }) => {
|
|
|
9230
9280
|
)
|
|
9231
9281
|
] }) })
|
|
9232
9282
|
] }) });
|
|
9233
|
-
}, TopBar = lazy(() => import("./Topbar-
|
|
9283
|
+
}, TopBar = lazy(() => import("./Topbar-DZ2jHLv7.js"));
|
|
9234
9284
|
function useSidebarMenuItems() {
|
|
9235
9285
|
return useMemo(() => compact([
|
|
9236
9286
|
{
|
|
@@ -9261,21 +9311,21 @@ const RootLayout = () => {
|
|
|
9261
9311
|
/* @__PURE__ */ jsx("div", { className: "h-14 w-screen shrink-0 border-b border-border", children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(TopBar, {}) }) }),
|
|
9262
9312
|
/* @__PURE__ */ jsxs("main", { className: "relative flex h-[calc(100vh-56px)] max-w-full flex-1 flex-row", children: [
|
|
9263
9313
|
/* @__PURE__ */ jsxs("div", { className: "flex w-12 flex-col items-center justify-between border-r border-border py-2", children: [
|
|
9264
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col", children: m.map((x,
|
|
9314
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col", children: m.map((x, y) => /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
9265
9315
|
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: !0, children: /* @__PURE__ */ jsx(
|
|
9266
9316
|
Button,
|
|
9267
9317
|
{
|
|
9268
|
-
variant: o ===
|
|
9318
|
+
variant: o === y ? "default" : "ghost",
|
|
9269
9319
|
className: "mb-2 rounded-lg p-2 transition-colors",
|
|
9270
|
-
onClick: () => u(
|
|
9320
|
+
onClick: () => u(y),
|
|
9271
9321
|
children: get(x, "icon", null)
|
|
9272
9322
|
},
|
|
9273
|
-
|
|
9323
|
+
y
|
|
9274
9324
|
) }),
|
|
9275
9325
|
/* @__PURE__ */ jsx(TooltipContent, { side: "right", children: /* @__PURE__ */ jsx("p", { children: f(x.label) }) })
|
|
9276
|
-
] }, "button" +
|
|
9326
|
+
] }, "button" + y)) }),
|
|
9277
9327
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col space-y-1" }),
|
|
9278
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col", children: d == null ? void 0 : d.map((x,
|
|
9328
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col", children: d == null ? void 0 : d.map((x, y) => /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("div", {}), children: React__default.createElement(x, {}) }, `sidebar-component-${y}`)) })
|
|
9279
9329
|
] }),
|
|
9280
9330
|
/* @__PURE__ */ jsx(
|
|
9281
9331
|
motion.div,
|