@chaibuilder/sdk 1.2.8 → 1.2.10
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/{AddBlocks-tMxKPoen.js → AddBlocks-GiMnBMeQ.js} +28 -29
- package/dist/AddBlocks-SzURo9Bj.cjs +1 -0
- package/dist/{BrandingOptions-QJJ1y5ez.js → BrandingOptions-10jJO8mG.js} +3 -4
- package/dist/BrandingOptions-yK-54R-c.cjs +1 -0
- package/dist/CanvasArea-6O8dMPug.cjs +60 -0
- package/dist/{CanvasArea-EfZgx-gN.js → CanvasArea-jgBDM5Qd.js} +459 -474
- package/dist/CurrentPage-1y62Ne77.cjs +1 -0
- package/dist/{CurrentPage-ulHTz4MD.js → CurrentPage-lakeZviD.js} +4 -5
- package/dist/{Layers-rehZkz78.js → Layers-R7TfREUd.js} +115 -148
- package/dist/Layers-Z4nmm9xK.cjs +1 -0
- package/dist/{PagesPanel-acGVGJf-.js → PagesPanel-4mqxCFHq.js} +4 -5
- package/dist/PagesPanel-ouHdxyOH.cjs +1 -0
- package/dist/{ProjectPanel-aLFJq49M.js → ProjectPanel-Wy2nw-1w.js} +11 -12
- package/dist/ProjectPanel-hHolYZjt.cjs +1 -0
- package/dist/Settings-EYOw02iE.cjs +1 -0
- package/dist/{Settings-v-txwlII.js → Settings-_K28Ontt.js} +536 -565
- package/dist/{SidePanels-Vdc-J5wK.js → SidePanels-6slnxdSj.js} +45 -41
- package/dist/SidePanels-U-_O1QN8.cjs +1 -0
- package/dist/{Topbar-j4t4AgCq.js → Topbar-bwt6HjlL.js} +4 -5
- package/dist/Topbar-dQEoY2P8.cjs +1 -0
- package/dist/{UnsplashImages-41Y3q5_Q.js → UnsplashImages-V29UE-57.js} +16 -17
- package/dist/UnsplashImages-pGgaUPQy.cjs +1 -0
- package/dist/UploadImages-7oLycdSh.cjs +1 -0
- package/dist/{UploadImages-xBg-kbKv.js → UploadImages-E0mi_qn8.js} +3 -4
- package/dist/{add-page-modal-6DlGzdA4.js → add-page-modal-FJEAqfD3.js} +9 -10
- package/dist/add-page-modal-In6XI-vZ.cjs +1 -0
- package/dist/{confirm-alert-i4pM3mOt.js → confirm-alert-5hfE116f.js} +3 -4
- package/dist/{confirm-alert-U7-NcG7G.cjs → confirm-alert-Vwd3OzL9.cjs} +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +12 -8
- package/dist/core.js +46 -46
- package/dist/delete-page-modal-tl7FLK9J.cjs +1 -0
- package/dist/{delete-page-modal-T_rlQfNd.js → delete-page-modal-wH0yLiQI.js} +17 -18
- package/dist/{form-VbouZlAW.cjs → form-1j01gADS.cjs} +1 -1
- package/dist/{form-OVmsLOrc.js → form-UVHCD9N3.js} +18 -18
- package/dist/index-7ogwGh39.cjs +1 -0
- package/dist/index-B4sL0YTN.js +3124 -0
- package/dist/{index-EGUphg4R.js → index-c2VLKuhY.js} +4886 -4884
- package/dist/{index-jw8RxsTv.cjs → index-xbQL0wpz.cjs} +25 -25
- package/dist/page-viewer-SfQUe0SI.cjs +1 -0
- package/dist/{page-viewer-EoYYnA56.js → page-viewer-TcK0I240.js} +6 -7
- package/dist/{project-general-setting-DC_nADG-.js → project-general-setting-4ruKl033.js} +5 -6
- package/dist/project-general-setting-t7E2Y_w9.cjs +1 -0
- package/dist/{project-seo-setting-Snn2nZgS.cjs → project-seo-setting-4b_BJZDF.cjs} +1 -1
- package/dist/{project-seo-setting-wxAGEkd_.js → project-seo-setting-d1EZlacB.js} +7 -8
- package/dist/single-page-detail-KuXd9Mur.cjs +1 -0
- package/dist/{single-page-detail-xtNZ9YxX.js → single-page-detail-PihQi-dP.js} +6 -7
- package/dist/studio.cjs +1 -1
- package/dist/studio.js +3 -4
- package/dist/style.css +1 -1
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +110 -111
- package/dist/{useAddBlockByDrop-inkD7Lck.cjs → useAddBlockByDrop-nLzs79He.cjs} +1 -1
- package/dist/{useAddBlockByDrop-_nwI4W3q.js → useAddBlockByDrop-rcDR-z9_.js} +1 -1
- package/dist/web-blocks.cjs +1 -9
- package/dist/web-blocks.js +460 -455
- package/package.json +1 -1
- package/dist/AddBlocks-x2LkOHSj.cjs +0 -1
- package/dist/BrandingOptions-EzT9UYd6.cjs +0 -1
- package/dist/CanvasArea-rIDwPHl5.cjs +0 -60
- package/dist/CurrentPage-QNFPD078.cjs +0 -1
- package/dist/Layers-v-7k3W2I.cjs +0 -1
- package/dist/MarkAsGlobalBlock-BjP-Rqlf.js +0 -88
- package/dist/MarkAsGlobalBlock-X5dNmZcb.cjs +0 -1
- package/dist/PagesPanel-x5ms_LOD.cjs +0 -1
- package/dist/ProjectPanel-5BHQ5ANP.cjs +0 -1
- package/dist/Settings-iOjfw5NQ.cjs +0 -1
- package/dist/SidePanels-t0g9ZQFT.cjs +0 -1
- package/dist/Topbar-V8xCetWF.cjs +0 -1
- package/dist/UnsplashImages-DbHky6cj.cjs +0 -1
- package/dist/UploadImages-DnQ95_NW.cjs +0 -1
- package/dist/add-page-modal-0YAI9dXr.cjs +0 -1
- package/dist/delete-page-modal-qXpi_2xR.cjs +0 -1
- package/dist/index-H6vIwGfD.cjs +0 -1
- package/dist/index-niHREMmR.js +0 -2938
- package/dist/page-viewer-Ou8vDXGV.cjs +0 -1
- package/dist/project-general-setting-92q4oEYv.cjs +0 -1
- package/dist/single-page-detail-QmmhR_h2.cjs +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-WbnYoNE9.js";
|
|
2
|
-
import
|
|
3
|
-
import { has as D, first as u, omit as
|
|
4
|
-
import { useAtom as
|
|
2
|
+
import k, { createElement as U, useState as b, useCallback as W, useMemo as J, useEffect as K, Suspense as Q } from "react";
|
|
3
|
+
import { has as D, first as u, omit as X, isEmpty as j, filter as v, values as y, groupBy as N, mergeWith as Y, isArray as I, keys as Z, get as $, map as A, includes as _, find as H, uniq as ee, reject as F } from "lodash-es";
|
|
4
|
+
import { useAtom as B } from "jotai";
|
|
5
5
|
import { useTranslation as G } from "react-i18next";
|
|
6
|
-
import {
|
|
6
|
+
import { L as S, j as w, _ as se, ax as P, aE as re, aF as te, aG as oe, i as z, a9 as M, as as le, at as ae, au as ie, av as ne, aw as E, bp as ce, bq as de, br as me, bs as pe, aI as ue, bt as xe, bu as he, B as fe, bv as ge, bw as be, bx as je, s as ve, ay as ye, az as ke, aA as C, bo as Be, bh as we, bi as Te, bj as Ce, bk as Ne, S as Ae } from "./index-B4sL0YTN.js";
|
|
7
7
|
import { BoxIcon as _e } from "@radix-ui/react-icons";
|
|
8
8
|
import { syncBlocksWithDefaults as q, useChaiBlocks as V } from "@chaibuilder/runtime";
|
|
9
|
-
import { useFeature as
|
|
10
|
-
import { Loader as
|
|
11
|
-
import { useDrag as
|
|
9
|
+
import { useFeature as Se } from "flagged";
|
|
10
|
+
import { Loader as Pe } from "lucide-react";
|
|
11
|
+
import { useDrag as Le, DragPreviewImage as Ie } from "react-dnd";
|
|
12
12
|
import { g as He } from "./html-to-json-57841sEK.js";
|
|
13
13
|
import "./_commonjsHelpers-UyOWmZb0.js";
|
|
14
14
|
import "@radix-ui/react-toggle";
|
|
@@ -41,13 +41,12 @@ import "react-quill";
|
|
|
41
41
|
import "flat-to-nested";
|
|
42
42
|
import "./Functions-7jnEwJyw.js";
|
|
43
43
|
import "redux-undo";
|
|
44
|
-
import "lodash";
|
|
45
44
|
import "@react-hookz/web";
|
|
46
45
|
import "himalaya";
|
|
47
46
|
const Fe = ({ block: s }) => {
|
|
48
|
-
const { type: r, icon: t, label: l } = s, { addCoreBlock: d, addPredefinedBlock: n } =
|
|
47
|
+
const { type: r, icon: t, label: l } = s, { addCoreBlock: d, addPredefinedBlock: n } = S(), [m, o] = w(), [, x] = se(), [, p] = B(P), i = () => {
|
|
49
48
|
D(s, "blocks") ? n(q(s.blocks), u(m)) : d(s, u(m)), p("layers");
|
|
50
|
-
}, a =
|
|
49
|
+
}, a = Se("dnd");
|
|
51
50
|
return /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsxs(re, { children: [
|
|
52
51
|
/* @__PURE__ */ e.jsx(te, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
|
|
53
52
|
"button",
|
|
@@ -55,7 +54,7 @@ const Fe = ({ block: s }) => {
|
|
|
55
54
|
onClick: i,
|
|
56
55
|
type: "button",
|
|
57
56
|
onDragStart: (f) => {
|
|
58
|
-
f.dataTransfer.setData("text/plain", JSON.stringify(
|
|
57
|
+
f.dataTransfer.setData("text/plain", JSON.stringify(X(s, ["component", "icon"]))), setTimeout(() => {
|
|
59
58
|
o([]), x(null), p("layers");
|
|
60
59
|
}, 200);
|
|
61
60
|
},
|
|
@@ -71,7 +70,7 @@ const Fe = ({ block: s }) => {
|
|
|
71
70
|
] }) });
|
|
72
71
|
}, Ee = ({ block: s, closePopover: r }) => {
|
|
73
72
|
var a;
|
|
74
|
-
const [t, l] = b(!1), d = z("getExternalPredefinedBlock"), { addCoreBlock: n, addPredefinedBlock: m } =
|
|
73
|
+
const [t, l] = b(!1), d = z("getExternalPredefinedBlock"), { addCoreBlock: n, addPredefinedBlock: m } = S(), [o] = w(), [, x, p] = Le(
|
|
75
74
|
() => ({
|
|
76
75
|
type: "CHAI_BLOCK",
|
|
77
76
|
item: s
|
|
@@ -91,7 +90,7 @@ const Fe = ({ block: s }) => {
|
|
|
91
90
|
);
|
|
92
91
|
return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
93
92
|
/* @__PURE__ */ e.jsx(
|
|
94
|
-
|
|
93
|
+
Ie,
|
|
95
94
|
{
|
|
96
95
|
connect: p,
|
|
97
96
|
src: "https://placehold.co/100x30/000000/FFF?text=" + ((a = s.name || s.label) == null ? void 0 : a.replace(" ", "+"))
|
|
@@ -106,7 +105,7 @@ const Fe = ({ block: s }) => {
|
|
|
106
105
|
className: "relative cursor-pointer overflow-hidden rounded-md border border-transparent duration-200 hover:scale-x-105 hover:border-foreground/20 hover:shadow-2xl",
|
|
107
106
|
children: [
|
|
108
107
|
t && /* @__PURE__ */ e.jsxs("div", { className: "absolute flex h-full w-full items-center justify-center bg-black bg-opacity-70", children: [
|
|
109
|
-
/* @__PURE__ */ e.jsx(
|
|
108
|
+
/* @__PURE__ */ e.jsx(Pe, { className: "animate-spin", size: 15, color: "white" }),
|
|
110
109
|
" ",
|
|
111
110
|
/* @__PURE__ */ e.jsx("span", { className: "pl-2 text-sm text-white", children: "Adding..." })
|
|
112
111
|
] }),
|
|
@@ -123,26 +122,26 @@ const Fe = ({ block: s }) => {
|
|
|
123
122
|
)
|
|
124
123
|
] });
|
|
125
124
|
}, Re = () => {
|
|
126
|
-
const { data: s } = M(), r = V(), t = v(y(r), { category: "custom" }), l = N(t, "group"), d = N(s, "group"), n = J(() =>
|
|
127
|
-
if (
|
|
125
|
+
const { data: s } = M(), r = V(), t = v(y(r), { category: "custom" }), l = N(t, "group"), d = N(s, "group"), n = J(() => Y(l, d, (i, a) => {
|
|
126
|
+
if (I(i) && I(a))
|
|
128
127
|
return [...i, ...a];
|
|
129
|
-
}), [l, d]), [m, o] = b(u(
|
|
128
|
+
}), [l, d]), [m, o] = b(u(Z(n)) || ""), [, x] = B(P), p = $(n, m, []);
|
|
130
129
|
return /* @__PURE__ */ e.jsxs("div", { className: "relative flex flex-col h-full max-h-full overflow-hidden py-2", children: [
|
|
131
130
|
/* @__PURE__ */ e.jsx("div", { className: "p-3 sticky top-0 flex w-full items-center", children: /* @__PURE__ */ e.jsxs(le, { value: m, onValueChange: (i) => o(i), children: [
|
|
132
131
|
/* @__PURE__ */ e.jsx(ae, { className: "w-full", children: /* @__PURE__ */ e.jsx(ie, { placeholder: "Select a provider" }) }),
|
|
133
132
|
/* @__PURE__ */ e.jsxs(ne, { children: [
|
|
134
133
|
/* @__PURE__ */ e.jsx(E, { value: "", children: "Choose" }),
|
|
135
|
-
|
|
134
|
+
k.Children.toArray(
|
|
136
135
|
A(n, (i, a) => /* @__PURE__ */ e.jsx(E, { value: a, children: a }, a))
|
|
137
136
|
)
|
|
138
137
|
] })
|
|
139
138
|
] }) }),
|
|
140
|
-
/* @__PURE__ */ e.jsx("div", { className: "h-full w-full space-y-2 overflow-y-auto px-2", children:
|
|
139
|
+
/* @__PURE__ */ e.jsx("div", { className: "h-full w-full space-y-2 overflow-y-auto px-2", children: k.Children.toArray(
|
|
141
140
|
p.map((i) => /* @__PURE__ */ e.jsx(Ee, { block: i, closePopover: () => x("layers") }))
|
|
142
141
|
) })
|
|
143
142
|
] });
|
|
144
143
|
}, De = () => {
|
|
145
|
-
const { t: s } = G(), [r, t] = b(""), { addPredefinedBlock: l } =
|
|
144
|
+
const { t: s } = G(), [r, t] = b(""), { addPredefinedBlock: l } = S(), [d] = w(), [, n] = B(P), m = () => {
|
|
146
145
|
const o = He(r);
|
|
147
146
|
l([...o], u(d) || null), t(""), n("layers");
|
|
148
147
|
};
|
|
@@ -174,15 +173,15 @@ const Fe = ({ block: s }) => {
|
|
|
174
173
|
return !_(R, r);
|
|
175
174
|
const t = s._type;
|
|
176
175
|
return t === "List" ? r === "ListItem" : t === "Table" ? r === "TableHead" || r === "TableBody" : t === "TableHead" || t === "TableBody" ? r === "TableRow" : t === "TableRow" ? r === "TableCell" : t === "Row" ? r === "Column" : t === "Heading" || t === "Text" ? r === "RawText" : !_(R, r);
|
|
177
|
-
},
|
|
178
|
-
const { t: s } = G(), [r, t] = b("core"), [l, d] = b("basic"), n = V(), [, m] =
|
|
176
|
+
}, Ps = () => {
|
|
177
|
+
const { t: s } = G(), [r, t] = b("core"), [l, d] = b("basic"), n = V(), [, m] = B(je), o = z("importHTMLSupport", !0), [x] = w(), [p] = ve(), i = H(p, { _id: u(x) }), { data: a, isLoading: f } = M(), h = N(
|
|
179
178
|
v(n, (c) => Ge(i, c.type)),
|
|
180
179
|
"category"
|
|
181
180
|
), g = ee(A(h.core, "group"));
|
|
182
181
|
K(() => {
|
|
183
182
|
!_(g, l) && !j(g) && !j(l) && d(u(g));
|
|
184
183
|
}, [g, l]);
|
|
185
|
-
const O = (c) => d((T) => T === c ? "" : c),
|
|
184
|
+
const O = (c) => d((T) => T === c ? "" : c), L = !f && !j(a) || H(y(n), { category: "custom" }) !== void 0;
|
|
186
185
|
return /* @__PURE__ */ e.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
|
|
187
186
|
/* @__PURE__ */ e.jsxs("div", { className: "mb-2 flex flex-col justify-between rounded-md bg-background/30 p-1", children: [
|
|
188
187
|
/* @__PURE__ */ e.jsx("h1", { className: "flex flex-col items-baseline px-1 text-xl font-semibold xl:flex-col", children: s("add_block") }),
|
|
@@ -196,30 +195,30 @@ const Fe = ({ block: s }) => {
|
|
|
196
195
|
},
|
|
197
196
|
value: r,
|
|
198
197
|
className: "h-max",
|
|
199
|
-
children: /* @__PURE__ */ e.jsxs(
|
|
198
|
+
children: /* @__PURE__ */ e.jsxs(ke, { className: "grid w-full " + (L && o ? "grid-cols-3" : "grid-cols-2"), children: [
|
|
200
199
|
/* @__PURE__ */ e.jsx(C, { value: "core", children: s("core") }),
|
|
201
|
-
|
|
200
|
+
L ? /* @__PURE__ */ e.jsx(C, { value: "ui-blocks", children: s("custom_blocks") }) : null,
|
|
202
201
|
o ? /* @__PURE__ */ e.jsx(C, { value: "html", children: s("import") }) : null
|
|
203
202
|
] })
|
|
204
203
|
}
|
|
205
204
|
),
|
|
206
|
-
r === "core" && /* @__PURE__ */ e.jsx(
|
|
205
|
+
r === "core" && /* @__PURE__ */ e.jsx(Be, { className: "-mx-1.5 h-full", children: /* @__PURE__ */ e.jsx(we, { type: "single", value: l, className: "w-full px-3", children: k.Children.toArray(
|
|
207
206
|
A(
|
|
208
207
|
g,
|
|
209
208
|
(c) => F(v(y(h.core), { group: c }), {
|
|
210
209
|
hidden: !0
|
|
211
210
|
}).length ? /* @__PURE__ */ e.jsxs(Te, { value: c, className: "border-border", children: [
|
|
212
211
|
/* @__PURE__ */ e.jsx(Ce, { onClick: () => O(c), className: "py-2 capitalize", children: c }),
|
|
213
|
-
/* @__PURE__ */ e.jsx(Ne, { children: /* @__PURE__ */ e.jsx("div", { className: "grid grid-cols-3 gap-2", children:
|
|
212
|
+
/* @__PURE__ */ e.jsx(Ne, { children: /* @__PURE__ */ e.jsx("div", { className: "grid grid-cols-3 gap-2", children: k.Children.toArray(
|
|
214
213
|
F(v(y(h.core), { group: c }), { hidden: !0 }).map((T) => /* @__PURE__ */ e.jsx(Fe, { block: T }))
|
|
215
214
|
) }) })
|
|
216
215
|
] }) : null
|
|
217
216
|
)
|
|
218
217
|
) }) }),
|
|
219
|
-
r === "ui-blocks" && /* @__PURE__ */ e.jsx(
|
|
218
|
+
r === "ui-blocks" && /* @__PURE__ */ e.jsx(Q, { fallback: /* @__PURE__ */ e.jsx(Ae, { className: "h-32 w-full" }), children: /* @__PURE__ */ e.jsx(Re, {}) }),
|
|
220
219
|
r === "html" && o ? /* @__PURE__ */ e.jsx(De, {}) : null
|
|
221
220
|
] });
|
|
222
221
|
};
|
|
223
222
|
export {
|
|
224
|
-
|
|
223
|
+
Ps as default
|
|
225
224
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-Z_BpKhVy.cjs"),a=require("react"),t=require("lodash-es"),R=require("jotai"),q=require("react-i18next"),s=require("./index-7ogwGh39.cjs"),C=require("@radix-ui/react-icons"),b=require("@chaibuilder/runtime"),w=require("flagged"),N=require("lucide-react"),B=require("react-dnd"),A=require("./html-to-json-2PeOCVey.cjs");require("./_commonjsHelpers-wDK0ZLPo.cjs");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-PTxFk6qT.cjs");require("./MODIFIERS-2FeVfZQ9.cjs");require("clsx");require("tailwind-merge");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("react-quill");require("flat-to-nested");require("./Functions-N3yhPYKY.cjs");require("redux-undo");require("@react-hookz/web");require("himalaya");const S=({block:r})=>{const{type:o,icon:i,label:n}=r,{addCoreBlock:m,addPredefinedBlock:d}=s.useAddBlock(),[p,l]=s.useSelectedBlockIds(),[,h]=s.useHighlightBlockId(),[,j]=R.useAtom(s.activePanelAtom),u=()=>{t.has(r,"blocks")?d(b.syncBlocksWithDefaults(r.blocks),t.first(p)):m(r,t.first(p)),j("layers")},c=w.useFeature("dnd");return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsxs(s.Tooltip,{children:[e.jsxRuntimeExports.jsx(s.TooltipTrigger,{asChild:!0,children:e.jsxRuntimeExports.jsxs("button",{onClick:u,type:"button",onDragStart:g=>{g.dataTransfer.setData("text/plain",JSON.stringify(t.omit(r,["component","icon"]))),setTimeout(()=>{l([]),h(null),j("layers")},200)},draggable:c?"true":"false",className:"space-y-2 rounded-lg border border-border p-3 text-center hover:bg-slate-300/50 "+(c?"cursor-grab":"cursor-pointer"),children:[a.createElement(i||C.BoxIcon,{className:"w-4 h-4 mx-auto"}),e.jsxRuntimeExports.jsx("p",{className:"truncate text-xs",children:n||o})]})}),e.jsxRuntimeExports.jsx(s.TooltipContent,{children:e.jsxRuntimeExports.jsx("p",{children:n||o})})]})})},I=({block:r,closePopover:o})=>{var c;const[i,n]=a.useState(!1),m=s.useBuilderProp("getExternalPredefinedBlock"),{addCoreBlock:d,addPredefinedBlock:p}=s.useAddBlock(),[l]=s.useSelectedBlockIds(),[,h,j]=B.useDrag(()=>({type:"CHAI_BLOCK",item:r}),[r]),u=a.useCallback(async g=>{if(g.stopPropagation(),t.has(r,"component")){d(r,t.first(l)),o();return}n(!0);const f=await m(r);t.isEmpty(f)||p(b.syncBlocksWithDefaults(f),t.first(l)),o()},[r]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(B.DragPreviewImage,{connect:j,src:"https://placehold.co/100x30/000000/FFF?text="+((c=r.name||r.label)==null?void 0:c.replace(" ","+"))}),e.jsxRuntimeExports.jsxs("div",{ref:h,onClick:i?()=>{}:u,className:"relative cursor-pointer overflow-hidden rounded-md border border-transparent duration-200 hover:scale-x-105 hover:border-foreground/20 hover:shadow-2xl",children:[i&&e.jsxRuntimeExports.jsxs("div",{className:"absolute flex h-full w-full items-center justify-center bg-black bg-opacity-70",children:[e.jsxRuntimeExports.jsx(N.Loader,{className:"animate-spin",size:15,color:"white"})," ",e.jsxRuntimeExports.jsx("span",{className:"pl-2 text-sm text-white",children:"Adding..."})]}),r.preview?e.jsxRuntimeExports.jsx("img",{src:r.preview,className:"min-h-[50px] w-full rounded-md border border-gray-300",alt:r.label}):e.jsxRuntimeExports.jsx("div",{className:"flex h-20 items-center justify-center rounded-md border border-border border-gray-300 bg-gray-200",children:e.jsxRuntimeExports.jsx("p",{className:"max-w-xs text-center text-sm text-gray-700",children:r.label})})]})]})},P=()=>{const{data:r}=s.useUILibraryBlocks(),o=b.useChaiBlocks(),i=t.filter(t.values(o),{category:"custom"}),n=t.groupBy(i,"group"),m=t.groupBy(r,"group"),d=a.useMemo(()=>t.mergeWith(n,m,(u,c)=>{if(t.isArray(u)&&t.isArray(c))return[...u,...c]}),[n,m]),[p,l]=a.useState(t.first(t.keys(d))||""),[,h]=R.useAtom(s.activePanelAtom),j=t.get(d,p,[]);return e.jsxRuntimeExports.jsxs("div",{className:"relative flex flex-col h-full max-h-full overflow-hidden py-2",children:[e.jsxRuntimeExports.jsx("div",{className:"p-3 sticky top-0 flex w-full items-center",children:e.jsxRuntimeExports.jsxs(s.Select,{value:p,onValueChange:u=>l(u),children:[e.jsxRuntimeExports.jsx(s.SelectTrigger,{className:"w-full",children:e.jsxRuntimeExports.jsx(s.SelectValue,{placeholder:"Select a provider"})}),e.jsxRuntimeExports.jsxs(s.SelectContent,{children:[e.jsxRuntimeExports.jsx(s.SelectItem,{value:"",children:"Choose"}),a.Children.toArray(t.map(d,(u,c)=>e.jsxRuntimeExports.jsx(s.SelectItem,{value:c,children:c},c)))]})]})}),e.jsxRuntimeExports.jsx("div",{className:"h-full w-full space-y-2 overflow-y-auto px-2",children:a.Children.toArray(j.map(u=>e.jsxRuntimeExports.jsx(I,{block:u,closePopover:()=>h("layers")})))})]})},_=()=>{const{t:r}=q.useTranslation(),[o,i]=a.useState(""),{addPredefinedBlock:n}=s.useAddBlock(),[m]=s.useSelectedBlockIds(),[,d]=R.useAtom(s.activePanelAtom),p=()=>{const l=A.getBlocksFromHTML(o);n([...l],t.first(m)||null),i(""),d("layers")};return e.jsxRuntimeExports.jsxs(s.Card,{className:"border-border/0 p-0 shadow-none",children:[e.jsxRuntimeExports.jsx(s.CardHeader,{className:"p-3",children:e.jsxRuntimeExports.jsx(s.CardDescription,{children:r("html_snippet_description")})}),e.jsxRuntimeExports.jsx(s.CardContent,{className:"space-y-2 px-3 py-0",children:e.jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[e.jsxRuntimeExports.jsx(s.Label,{htmlFor:"current",className:"text-sm",children:r("tailwind_html_snippet")}),e.jsxRuntimeExports.jsx(s.Textarea,{autoFocus:!0,tabIndex:1,ref:l=>l&&l.focus(),onChange:l=>i(l.target.value),rows:12,value:o,placeholder:r("enter_code_snippet"),className:"resize-none bg-gray-100 overflow-x-auto whitespace-pre text-xs font-mono font-normal"})]})}),e.jsxRuntimeExports.jsxs(s.CardFooter,{className:"flex flex-col justify-end p-3",children:[e.jsxRuntimeExports.jsx(s.Button,{disabled:o.trim()==="",onClick:()=>p(),size:"sm",className:"w-full",children:r("import_html")}),e.jsxRuntimeExports.jsx(s.Alert,{variant:"default",className:"mt-2 p-1 border-none text-gray-400",children:e.jsxRuntimeExports.jsx(s.AlertTitle,{className:"text-xs font-normal leading-4",children:r("note_imported_html")})})]})]})},k=["ListItem","TableHead","TableBody","TableRow","TableCell","Column"],L=(r,o)=>{if(!r)return!t.includes(k,o);const i=r._type;return i==="List"?o==="ListItem":i==="Table"?o==="TableHead"||o==="TableBody":i==="TableHead"||i==="TableBody"?o==="TableRow":i==="TableRow"?o==="TableCell":i==="Row"?o==="Column":i==="Heading"||i==="Text"?o==="RawText":!t.includes(k,o)},H=()=>{const{t:r}=q.useTranslation(),[o,i]=a.useState("core"),[n,m]=a.useState("basic"),d=b.useChaiBlocks(),[,p]=R.useAtom(s.showPredefinedBlockCategoryAtom),l=s.useBuilderProp("importHTMLSupport",!0),[h]=s.useSelectedBlockIds(),[j]=s.useBlocksStore(),u=t.find(j,{_id:t.first(h)}),{data:c,isLoading:g}=s.useUILibraryBlocks(),f=t.groupBy(t.filter(d,x=>L(u,x.type)),"category"),E=t.uniq(t.map(f.core,"group"));a.useEffect(()=>{!t.includes(E,n)&&!t.isEmpty(E)&&!t.isEmpty(n)&&m(t.first(E))},[E,n]);const T=x=>m(y=>y===x?"":x),v=!g&&!t.isEmpty(c)||t.find(t.values(d),{category:"custom"})!==void 0;return e.jsxRuntimeExports.jsxs("div",{className:"flex h-full flex-col overflow-hidden",children:[e.jsxRuntimeExports.jsxs("div",{className:"mb-2 flex flex-col justify-between rounded-md bg-background/30 p-1",children:[e.jsxRuntimeExports.jsx("h1",{className:"flex flex-col items-baseline px-1 text-xl font-semibold xl:flex-col",children:r("add_block")}),e.jsxRuntimeExports.jsx("span",{className:"p-0 text-xs font-light leading-3 opacity-80 xl:pl-1",children:r(o==="html"?"enter_paste_tailwind_html":"click_to_add_block")})]}),e.jsxRuntimeExports.jsx(s.Tabs,{onValueChange:x=>{p(""),i(x)},value:o,className:"h-max",children:e.jsxRuntimeExports.jsxs(s.TabsList,{className:"grid w-full "+(v&&l?"grid-cols-3":"grid-cols-2"),children:[e.jsxRuntimeExports.jsx(s.TabsTrigger,{value:"core",children:r("core")}),v?e.jsxRuntimeExports.jsx(s.TabsTrigger,{value:"ui-blocks",children:r("custom_blocks")}):null,l?e.jsxRuntimeExports.jsx(s.TabsTrigger,{value:"html",children:r("import")}):null]})}),o==="core"&&e.jsxRuntimeExports.jsx(s.ScrollArea,{className:"-mx-1.5 h-full",children:e.jsxRuntimeExports.jsx(s.Accordion,{type:"single",value:n,className:"w-full px-3",children:a.Children.toArray(t.map(E,x=>t.reject(t.filter(t.values(f.core),{group:x}),{hidden:!0}).length?e.jsxRuntimeExports.jsxs(s.AccordionItem,{value:x,className:"border-border",children:[e.jsxRuntimeExports.jsx(s.AccordionTrigger,{onClick:()=>T(x),className:"py-2 capitalize",children:x}),e.jsxRuntimeExports.jsx(s.AccordionContent,{children:e.jsxRuntimeExports.jsx("div",{className:"grid grid-cols-3 gap-2",children:a.Children.toArray(t.reject(t.filter(t.values(f.core),{group:x}),{hidden:!0}).map(y=>e.jsxRuntimeExports.jsx(S,{block:y})))})})]}):null))})}),o==="ui-blocks"&&e.jsxRuntimeExports.jsx(a.Suspense,{fallback:e.jsxRuntimeExports.jsx(s.Skeleton,{className:"h-32 w-full"}),children:e.jsxRuntimeExports.jsx(P,{})}),o==="html"&&l?e.jsxRuntimeExports.jsx(_,{}):null]})};exports.default=H;
|
|
@@ -2,7 +2,7 @@ import { j as t } from "./jsx-runtime-WbnYoNE9.js";
|
|
|
2
2
|
import * as c from "react";
|
|
3
3
|
import N from "@rjsf/validator-ajv8";
|
|
4
4
|
import j from "@rjsf/core";
|
|
5
|
-
import { i as k,
|
|
5
|
+
import { i as k, t as D, bC as P } from "./index-B4sL0YTN.js";
|
|
6
6
|
import { f, c as R, y as a } from "./controls-XPXGHKht.js";
|
|
7
7
|
import { debounce as w, isEqual as L } from "lodash-es";
|
|
8
8
|
import "./_commonjsHelpers-UyOWmZb0.js";
|
|
@@ -39,7 +39,6 @@ import "flat-to-nested";
|
|
|
39
39
|
import "./Functions-7jnEwJyw.js";
|
|
40
40
|
import "redux-undo";
|
|
41
41
|
import "@chaibuilder/runtime";
|
|
42
|
-
import "lodash";
|
|
43
42
|
import "@react-hookz/web";
|
|
44
43
|
import "react-i18next";
|
|
45
44
|
const F = ({ value: u, onChange: e, id: p, onBlur: d }) => {
|
|
@@ -104,7 +103,7 @@ const F = ({ value: u, onChange: e, id: p, onBlur: d }) => {
|
|
|
104
103
|
{ title: "Lustria", value: "Lustria" },
|
|
105
104
|
{ title: "Ovo", value: "Ovo" },
|
|
106
105
|
{ title: "Suranna", value: "Suranna" }
|
|
107
|
-
],
|
|
106
|
+
], St = () => {
|
|
108
107
|
const u = k("onSaveBrandingOptions", async () => {
|
|
109
108
|
}), [e, p] = D(), [d] = P(), i = c.useRef(e);
|
|
110
109
|
c.useEffect(() => () => {
|
|
@@ -190,5 +189,5 @@ const F = ({ value: u, onChange: e, id: p, onBlur: d }) => {
|
|
|
190
189
|
] });
|
|
191
190
|
};
|
|
192
191
|
export {
|
|
193
|
-
|
|
192
|
+
St as default
|
|
194
193
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./jsx-runtime-Z_BpKhVy.cjs"),B=require("react"),R=require("@rjsf/validator-ajv8"),E=require("@rjsf/core"),p=require("./index-7ogwGh39.cjs"),r=require("./controls-Dy1qa8Dc.cjs"),m=require("lodash-es");require("./_commonjsHelpers-wDK0ZLPo.cjs");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-PTxFk6qT.cjs");require("./MODIFIERS-2FeVfZQ9.cjs");require("clsx");require("tailwind-merge");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-icons");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("react-quill");require("jotai");require("flat-to-nested");require("./Functions-N3yhPYKY.cjs");require("redux-undo");require("@chaibuilder/runtime");require("@react-hookz/web");require("react-i18next");function N(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const l=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,l.get?l:{enumerable:!0,get:()=>t[i]})}}return e.default=t,Object.freeze(e)}const x=N(B),k=({value:t,onChange:e,id:i,onBlur:l})=>{const n=m.debounce(e,200),v=u=>n(u.target.value);return a.jsxRuntimeExports.jsx("div",{className:"mt-1.5 flex items-center gap-x-3",children:a.jsxRuntimeExports.jsx("div",{className:"flex w-3/5 flex-col",children:a.jsxRuntimeExports.jsx("input",{type:"color",className:"text-xs p-0",value:t,onBlur:({target:{value:u}})=>l(i,u),onChange:v})})})},f=[{title:"Roboto",value:"Roboto"},{title:"Open Sans",value:"Open Sans"},{title:"Montserrat",value:"Montserrat"},{title:"Lato",value:"Lato"},{title:"Poppins",value:"Poppins"},{title:"Oswald",value:"Oswald"},{title:"Raleway",value:"Raleway"},{title:"Ubuntu",value:"Ubuntu"},{title:"Nunito",value:"Nunito"},{title:"Merriweather",value:"Merriweather"},{title:"Nunito Sans",value:"Nunito Sans"},{title:"Playfair Display",value:"Playfair Display"},{title:"Rubik",value:"Rubik"},{title:"Inter",value:"Inter"},{title:"Lora",value:"Lora"},{title:"Kanit",value:"Kanit"},{title:"Fira Sans",value:"Fira Sans"},{title:"Hind",value:"Hind"},{title:"Quicksand",value:"Quicksand"},{title:"Mulish",value:"Mulish"},{title:"Barlow",value:"Barlow"},{title:"Inconsolata",value:"Inconsolata"},{title:"Titillium Web",value:"Titillium Web"},{title:"Heebo",value:"Heebo"},{title:"IBM Plex Sans",value:"IBM Plex Sans"},{title:"DM Sans",value:"DM Sans"},{title:"Nanum Gothic",value:"Nanum Gothic"},{title:"Karla",value:"Karla"},{title:"Arimo",value:"Arimo"},{title:"Cabin",value:"Cabin"},{title:"Oxygen",value:"Oxygen"},{title:"Overpass",value:"Overpass"},{title:"Assistant",value:"Assistant"},{title:"Tajawal",value:"Tajawal"},{title:"Play",value:"Play"},{title:"Exo",value:"Exo"},{title:"Cinzel",value:"Cinzel"},{title:"Faustina",value:"Faustina"},{title:"Philosopher",value:"Philosopher"},{title:"Gelasio",value:"Gelasio"},{title:"Sofia Sans Condensed",value:"Sofia Sans Condensed"},{title:"Noto Sans Devanagari",value:"Noto Sans Devanagari"},{title:"Actor",value:"Actor"},{title:"Epilogue",value:"Epilogue"},{title:"Glegoo",value:"Glegoo"},{title:"Overlock",value:"Overlock"},{title:"Lustria",value:"Lustria"},{title:"Ovo",value:"Ovo"},{title:"Suranna",value:"Suranna"}],P=()=>{const t=p.useBuilderProp("onSaveBrandingOptions",async()=>{}),[e,i]=p.useBrandingOptions(),[l]=p.useBlocksContainer(),n=x.useRef(e);x.useEffect(()=>()=>{m.isEqual(e,n.current)||t(n.current)},[]);const v=({formData:o},d)=>{d&&(i(o),n.current=o)},{bodyFont:u,headingFont:y,primaryColor:q,bodyTextDarkColor:b,bodyTextLightColor:h,bodyBgDarkColor:S,secondaryColor:C,bodyBgLightColor:O,roundedCorners:j}=e;let s={headingFont:r.f({title:"Heading font",default:y,options:f}),bodyFont:r.f({title:"Body font",default:u,options:f}),roundedCorners:r.c({title:"Rounded Corner",default:parseInt(j||5,10)}),primaryColor:r.y({title:"Primary",default:q}),secondaryColor:r.y({title:"Secondary",default:C})};l||(s={...s,bodyBgLightColor:r.y({title:"Body Background (Light)",default:O}),bodyBgDarkColor:r.y({title:"Body Background (Dark)",default:S}),bodyTextLightColor:r.y({title:"Body Text (Light)",default:b}),bodyTextDarkColor:r.y({title:"Body Text (Dark)",default:h})});const c={type:"object",properties:{}},g={};return Object.keys(s).forEach(o=>{const d=s[o];return c.properties||(c.properties={}),c.properties[o]=d.schema,g[o]=d.uiSchema,!0}),a.jsxRuntimeExports.jsxs("div",{className:"flex h-full select-none flex-col",children:[a.jsxRuntimeExports.jsx("div",{className:"rounded-md bg-background/30 p-1",children:a.jsxRuntimeExports.jsx("h1",{className:"px-1 font-semibold",children:"Branding Options"})}),a.jsxRuntimeExports.jsx("div",{className:"-mx-2",children:a.jsxRuntimeExports.jsx(E,{widgets:{color:k},idSeparator:".",autoComplete:"off",omitExtraData:!0,liveOmit:!0,liveValidate:!0,uiSchema:g,schema:c,formData:e,validator:R,onChange:v})})]})};exports.default=P;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";var Ue=Object.defineProperty;var $e=(e,t,n)=>t in e?Ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var z=(e,t,n)=>($e(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./jsx-runtime-Z_BpKhVy.cjs"),m=require("react"),p=require("lodash-es"),P=require("@radix-ui/react-icons"),o=require("./index-7ogwGh39.cjs"),ne=require("react-i18next"),L=require("jotai"),ge=require("react-dom"),ze=require("./_commonjsHelpers-wDK0ZLPo.cjs"),G=require("./index-xbQL0wpz.cjs"),Ye=require("react-quill"),Ke=require("./useAddBlockByDrop-nLzs79He.cjs"),Te=require("flagged"),Je=require("@floating-ui/dom"),me=require("@floating-ui/react-dom"),Ve=require("@react-hookz/web"),Ze=require("@bobthered/tailwindcss-palette-generator"),Qe=require("react-wrap-balancer"),Ge=require("tailwind-merge"),ee=require("./MODIFIERS-2FeVfZQ9.cjs"),Xe=require("@chaibuilder/runtime");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-PTxFk6qT.cjs");require("clsx");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("flat-to-nested");require("./Functions-N3yhPYKY.cjs");require("redux-undo");require("i18next");require("react-textarea-autosize");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("sonner");require("./html-to-json-2PeOCVey.cjs");require("himalaya");require("lucide-react");require("./web-blocks.cjs");require("./controls-Dy1qa8Dc.cjs");const et=()=>{const{hasUndo:e,hasRedo:t,undo:n,redo:i}=o.useUndoManager();return s.jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[s.jsxRuntimeExports.jsx(o.Button,{disabled:!e(),size:"sm",onClick:n,className:"rounded-full",variant:"ghost",children:s.jsxRuntimeExports.jsx(P.ResetIcon,{})}),s.jsxRuntimeExports.jsx(o.Button,{disabled:!t(),onClick:i,size:"sm",className:"rounded-full",variant:"ghost",children:s.jsxRuntimeExports.jsx(P.ResetIcon,{className:"rotate-180 scale-y-[-1] transform"})})]})};function tt(){const[e,t]=o.useDarkMode(),{t:n}=ne.useTranslation();return s.jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[s.jsxRuntimeExports.jsx(o.Label,{htmlFor:"dark-mode-switch",children:n("dark_mode")}),s.jsxRuntimeExports.jsxs(o.Switch,{id:"dark-mode-switch",checked:e,onCheckedChange:()=>{t(!e)},className:`${e?"bg-violet-600":"bg-violet-300"}
|
|
2
|
+
relative ml-2 inline-flex h-[20px] w-[40px] shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75`,children:[s.jsxRuntimeExports.jsx("span",{className:"sr-only",children:n("use_setting")}),s.jsxRuntimeExports.jsx("span",{"aria-hidden":"true",className:`${e?"translate-x-5":"translate-x-0"}
|
|
3
|
+
pointer-events-none -mt-px inline-block h-[18px] w-[20px] transform rounded-full bg-white shadow-lg ring-0 transition duration-200 ease-in-out`})]})]})}const ye=({landscape:e=!1})=>s.jsxRuntimeExports.jsxs("svg",{className:e?"rotate-90":"",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 13 13",xmlSpace:"preserve",width:13,height:13,children:[s.jsxRuntimeExports.jsx("g",{strokeWidth:0}),s.jsxRuntimeExports.jsx("g",{strokeLinecap:"round",strokeLinejoin:"round"}),s.jsxRuntimeExports.jsx("path",{d:"M10.65 0H2.349a.851.851 0 0 0-.851.852v11.299c0 .47.382.852.851.852h8.3a.851.851 0 0 0 .851-.852V.852A.851.851 0 0 0 10.65 0zM6.599 12.466a.367.367 0 1 1 0-.735.367.367 0 0 1 0 .735zm3.9-1.267H2.5V1h8.001v10.199z",style:{fill:"#000"}})]}),nt=[{title:"mobile_xs_title",content:"mobile_xs_content",breakpoint:"xs",icon:s.jsxRuntimeExports.jsx(P.MobileIcon,{}),width:400},{title:"mobile_sm_title",content:"mobile_sm_content",breakpoint:"sm",icon:s.jsxRuntimeExports.jsx(P.MobileIcon,{className:"rotate-90"}),width:640},{title:"tablet_md_title",content:"tablet_md_content",breakpoint:"md",icon:s.jsxRuntimeExports.jsx(ye,{}),width:800},{title:"tablet_lg_title",content:"tablet_lg_content",breakpoint:"lg",icon:s.jsxRuntimeExports.jsx(ye,{landscape:!0}),width:1024},{title:"desktop_xl_title",content:"desktop_xl_content",breakpoint:"xl",icon:s.jsxRuntimeExports.jsx(P.LaptopIcon,{}),width:1420},{title:"large_desktop_2xl_title",content:"large_desktop_2xl_content",breakpoint:"2xl",icon:s.jsxRuntimeExports.jsx(P.DesktopIcon,{}),width:1920}],ve=({title:e,content:t,currentBreakpoint:n,breakpoint:i,width:a,icon:c,onClick:u})=>{const{t:r}=ne.useTranslation();return s.jsxRuntimeExports.jsxs(o.HoverCard,{children:[s.jsxRuntimeExports.jsx(o.HoverCardTrigger,{asChild:!0,children:s.jsxRuntimeExports.jsx(o.Button,{onClick:()=>u(a),size:"sm",variant:i===n?"secondary":"ghost",children:c})}),s.jsxRuntimeExports.jsx(o.HoverCardContent,{className:"w-52 border-border",children:s.jsxRuntimeExports.jsx("div",{className:"flex justify-between space-x-4",children:s.jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[s.jsxRuntimeExports.jsx("h4",{className:"text-sm font-semibold",children:r(e)}),s.jsxRuntimeExports.jsx("p",{className:"text-xs",children:r(t)})]})})})]})},st=()=>{const[,e,t]=o.useCanvasWidth(),[n,i]=o.useSelectedBreakpoints(),{t:a}=ne.useTranslation(),c=o.useBuilderProp("breakpoints",nt),u=r=>{n.includes(r)?n.length>2&&i(n.filter(d=>d!==r)):i(d=>[...d,r])};return c.length<4?s.jsxRuntimeExports.jsx("div",{className:"flex items-center rounded-md",children:p.map(c,r=>m.createElement(ve,{...r,onClick:t,key:r.breakpoint,currentBreakpoint:e}))}):s.jsxRuntimeExports.jsxs("div",{className:"flex items-center rounded-md",children:[p.map(c.filter(r=>p.includes(n,p.toUpper(r.breakpoint))),r=>m.createElement(ve,{...r,onClick:t,key:r.breakpoint,currentBreakpoint:e})),s.jsxRuntimeExports.jsxs(o.DropdownMenu,{children:[s.jsxRuntimeExports.jsx(o.DropdownMenuTrigger,{asChild:!0,children:s.jsxRuntimeExports.jsx("span",{className:"cursor-pointer px-2.5 hover:opacity-80",children:s.jsxRuntimeExports.jsx(P.DotsVerticalIcon,{className:"scale-90 transform"})})}),s.jsxRuntimeExports.jsxs(o.DropdownMenuContent,{className:"w-56 border-border text-xs",children:[s.jsxRuntimeExports.jsx(o.DropdownMenuLabel,{children:a("Breakpoints")}),s.jsxRuntimeExports.jsx(o.DropdownMenuSeparator,{}),p.map(c,r=>s.jsxRuntimeExports.jsx(o.DropdownMenuCheckboxItem,{disabled:r.breakpoint==="xs",onCheckedChange:()=>u(p.toUpper(r.breakpoint)),checked:p.includes(n,p.toUpper(r.breakpoint)),children:a(r.title)},r.breakpoint))]})]})]})},rt=()=>{const{t:e}=ne.useTranslation(),{setNewBlocks:t}=o.useBlocksStoreUndoableActions(),[,n]=o.useSelectedBlockIds(),[,i]=o.useSelectedStylingBlocks(),a=m.useCallback(()=>{t([]),n([]),i([])},[t]);return s.jsxRuntimeExports.jsx("div",{className:"flex items-center",children:s.jsxRuntimeExports.jsxs(o.AlertDialog,{children:[s.jsxRuntimeExports.jsx(o.AlertDialogTrigger,{asChild:!0,children:s.jsxRuntimeExports.jsxs(o.Button,{size:"sm",variant:"ghost",className:"flex items-center gap-x-1",children:[s.jsxRuntimeExports.jsx(P.EraserIcon,{})," ",e("clear")]})}),s.jsxRuntimeExports.jsxs(o.AlertDialogContent,{className:"border-border",children:[s.jsxRuntimeExports.jsxs(o.AlertDialogHeader,{children:[s.jsxRuntimeExports.jsx(o.AlertDialogTitle,{children:e("clear_canvas_title")}),s.jsxRuntimeExports.jsx(o.AlertDialogDescription,{children:e("clear_canvas_description")})]}),s.jsxRuntimeExports.jsxs(o.AlertDialogFooter,{children:[s.jsxRuntimeExports.jsx(o.AlertDialogCancel,{children:e("cancel")}),s.jsxRuntimeExports.jsx(o.AlertDialogAction,{onClick:a,children:e("yes")})]})]})]})})},ot=()=>{const e=o.useFeatureSupport("darkMode",!1),[t]=o.useCanvasZoom();return s.jsxRuntimeExports.jsxs("div",{className:"flex h-10 items-center justify-between border-b bg-background/70 px-2",children:[s.jsxRuntimeExports.jsxs("div",{className:"flex h-full space-x-2",children:[e?s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsx(tt,{}),s.jsxRuntimeExports.jsx(o.Separator,{orientation:"vertical"})]}):null,s.jsxRuntimeExports.jsx(st,{}),s.jsxRuntimeExports.jsx(o.Separator,{orientation:"vertical"}),s.jsxRuntimeExports.jsxs("div",{className:"flex w-12 items-center justify-center gap-x-1 space-x-0 font-medium",children:[s.jsxRuntimeExports.jsx(P.ZoomInIcon,{className:"h-3.5 w-3.5 flex-shrink-0"})," ",s.jsxRuntimeExports.jsxs("div",{className:"text-xs leading-3",children:[p.round(t,0),"%"]})]}),s.jsxRuntimeExports.jsx(o.Separator,{orientation:"vertical"}),s.jsxRuntimeExports.jsx(et,{})]}),s.jsxRuntimeExports.jsxs("div",{className:"flex h-full items-center space-x-2",children:[s.jsxRuntimeExports.jsx(o.Separator,{orientation:"vertical"}),s.jsxRuntimeExports.jsx(rt,{})]})]})},it=`<!doctype html>
|
|
4
|
+
<html class="scroll-smooth h-full overflow-y-auto">
|
|
5
|
+
<head>
|
|
6
|
+
<meta charset="UTF-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
<script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio,line-clamp,container-queries"><\/script>
|
|
9
|
+
<style>
|
|
10
|
+
html { height: 100%; overflow:auto; }
|
|
11
|
+
body { height: 100%; }
|
|
12
|
+
.air-highlight{ outline: 1px solid #42a1fc !important; outline-offset: -1px;}
|
|
13
|
+
.air-highlight-multi{ outline: 1px solid #29e503 !important; outline-offset: -1px;}
|
|
14
|
+
body{ -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none;
|
|
15
|
+
-moz-user-select: none;-ms-user-select: none; user-select: none; }
|
|
16
|
+
html{
|
|
17
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
18
|
+
scrollbar-width: none; /* Firefox */
|
|
19
|
+
}
|
|
20
|
+
/** IMPORTANT: Make fields content editable in SAFARI */
|
|
21
|
+
[contenteditable] {-webkit-user-select: text;user-select: text;}
|
|
22
|
+
|
|
23
|
+
html::-webkit-scrollbar { width: 0 !important }
|
|
24
|
+
.aspect-auto{aspect-ratio: auto;}
|
|
25
|
+
.aspect-square{aspect-ratio: 1/1;}
|
|
26
|
+
.aspect-video{aspect-ratio: 16/9;}
|
|
27
|
+
.dragging [data-dnd="leaf"] { pointer-events: none; } .dragging [data-dnd="leaf"] * { pointer-events: none; }
|
|
28
|
+
.dragging [data-dnd="ignore"], .dragging [data-dnd="ignore"] * { pointer-events: none; }
|
|
29
|
+
a{ pointer-events: none !important; }
|
|
30
|
+
[contenteditable="true"], [contenteditable="true"] * { cursor: text !important; }
|
|
31
|
+
[contenteditable="true"] {
|
|
32
|
+
outline: none;
|
|
33
|
+
box-shadow: 0 0 0px 4px rgba(36, 150, 255, 0.2);
|
|
34
|
+
-webkit-user-select: text;
|
|
35
|
+
-moz-user-select: text;
|
|
36
|
+
user-select: text;
|
|
37
|
+
}
|
|
38
|
+
.frame-root .frame-content { height: 100%; }
|
|
39
|
+
</style>
|
|
40
|
+
<style id="hidden-blocks"></style>
|
|
41
|
+
<style id="selected-block"></style>
|
|
42
|
+
<style id="selected-styling-block"></style>
|
|
43
|
+
<style id="highlighted-block"></style>
|
|
44
|
+
<style id="dragged-block"></style>
|
|
45
|
+
|
|
46
|
+
</head>
|
|
47
|
+
<body class="font-body antialiased h-full">
|
|
48
|
+
<div class="frame-root h-full"></div>
|
|
49
|
+
<script src="https://cdn.jsdelivr.net/npm/quill@2.0.0/dist/quill.js"><\/script>
|
|
50
|
+
</body>
|
|
51
|
+
</html>`,at=e=>{const[t]=o.useCanvasWidth(),[,n]=o.useCanvasZoom(),[i,a]=m.useState({}),c=m.useCallback(()=>{const{width:u,height:r}=e;if(u<t){const d=parseFloat((u/t).toFixed(2).toString());let x={};const h=r*d;r&&(x={height:100+(r-h)/h*100+"%"}),a({position:"relative",top:0,transform:`scale(${d})`,transformOrigin:"top left",...x,maxWidth:"none"}),n(d*100)}else a({}),n(100)},[t,e,n]);return m.useEffect(()=>{c()},[t,e,n,c]),i};var te={exports:{}};/*
|
|
52
|
+
object-assign
|
|
53
|
+
(c) Sindre Sorhus
|
|
54
|
+
@license MIT
|
|
55
|
+
*/var re,je;function lt(){if(je)return re;je=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function i(c){if(c==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(c)}function a(){try{if(!Object.assign)return!1;var c=new String("abc");if(c[5]="de",Object.getOwnPropertyNames(c)[0]==="5")return!1;for(var u={},r=0;r<10;r++)u["_"+String.fromCharCode(r)]=r;var d=Object.getOwnPropertyNames(u).map(function(h){return u[h]});if(d.join("")!=="0123456789")return!1;var x={};return"abcdefghijklmnopqrst".split("").forEach(function(h){x[h]=h}),Object.keys(Object.assign({},x)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return re=a()?Object.assign:function(c,u){for(var r,d=i(c),x,h=1;h<arguments.length;h++){r=Object(arguments[h]);for(var g in r)t.call(r,g)&&(d[g]=r[g]);if(e){x=e(r);for(var b=0;b<x.length;b++)n.call(r,x[b])&&(d[x[b]]=r[x[b]])}}return d},re}var oe,be;function fe(){if(be)return oe;be=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return oe=e,oe}var ie,Ee;function Ce(){return Ee||(Ee=1,ie=Function.call.bind(Object.prototype.hasOwnProperty)),ie}var ae,ke;function ct(){if(ke)return ae;ke=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=fe(),n={},i=Ce();e=function(c){var u="Warning: "+c;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}}}function a(c,u,r,d,x){if(process.env.NODE_ENV!=="production"){for(var h in c)if(i(c,h)){var g;try{if(typeof c[h]!="function"){var b=Error((d||"React class")+": "+r+" type `"+h+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof c[h]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw b.name="Invariant Violation",b}g=c[h](u,h,d,r,null,t)}catch(O){g=O}if(g&&!(g instanceof Error)&&e((d||"React class")+": type specification of "+r+" `"+h+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof g+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),g instanceof Error&&!(g.message in n)){n[g.message]=!0;var D=x?x():"";e("Failed "+r+" type: "+g.message+(D??""))}}}}return a.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(n={})},ae=a,ae}var le,Re;function dt(){if(Re)return le;Re=1;var e=G.reactIsExports,t=lt(),n=fe(),i=Ce(),a=ct(),c=function(){};process.env.NODE_ENV!=="production"&&(c=function(r){var d="Warning: "+r;typeof console<"u"&&console.error(d);try{throw new Error(d)}catch{}});function u(){return null}return le=function(r,d){var x=typeof Symbol=="function"&&Symbol.iterator,h="@@iterator";function g(l){var f=l&&(x&&l[x]||l[h]);if(typeof f=="function")return f}var b="<<anonymous>>",D={array:B("array"),bigint:B("bigint"),bool:B("boolean"),func:B("function"),number:B("number"),object:B("object"),string:B("string"),symbol:B("symbol"),any:W(),arrayOf:Y,element:K(),elementType:N(),instanceOf:A,node:Me(),objectOf:H,oneOf:F,oneOfType:Pe,shape:Le,exact:Ne};function O(l,f){return l===f?l!==0||1/l===1/f:l!==l&&f!==f}function v(l,f){this.message=l,this.data=f&&typeof f=="object"?f:{},this.stack=""}v.prototype=Error.prototype;function y(l){if(process.env.NODE_ENV!=="production")var f={},w=0;function k(S,E,R,T,I,C,M){if(T=T||b,C=C||R,M!==n){if(d){var _=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw _.name="Invariant Violation",_}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var J=T+":"+R;!f[J]&&w<3&&(c("You are manually calling a React.PropTypes validation function for the `"+C+"` prop on `"+T+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),f[J]=!0,w++)}}return E[R]==null?S?E[R]===null?new v("The "+I+" `"+C+"` is marked as required "+("in `"+T+"`, but its value is `null`.")):new v("The "+I+" `"+C+"` is marked as required in "+("`"+T+"`, but its value is `undefined`.")):null:l(E,R,T,I,C)}var j=k.bind(null,!1);return j.isRequired=k.bind(null,!0),j}function B(l){function f(w,k,j,S,E,R){var T=w[k],I=U(T);if(I!==l){var C=V(T);return new v("Invalid "+S+" `"+E+"` of type "+("`"+C+"` supplied to `"+j+"`, expected ")+("`"+l+"`."),{expectedType:l})}return null}return y(f)}function W(){return y(u)}function Y(l){function f(w,k,j,S,E){if(typeof l!="function")return new v("Property `"+E+"` of component `"+j+"` has invalid PropType notation inside arrayOf.");var R=w[k];if(!Array.isArray(R)){var T=U(R);return new v("Invalid "+S+" `"+E+"` of type "+("`"+T+"` supplied to `"+j+"`, expected an array."))}for(var I=0;I<R.length;I++){var C=l(R,I,j,S,E+"["+I+"]",n);if(C instanceof Error)return C}return null}return y(f)}function K(){function l(f,w,k,j,S){var E=f[w];if(!r(E)){var R=U(E);return new v("Invalid "+j+" `"+S+"` of type "+("`"+R+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return y(l)}function N(){function l(f,w,k,j,S){var E=f[w];if(!e.isValidElementType(E)){var R=U(E);return new v("Invalid "+j+" `"+S+"` of type "+("`"+R+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return y(l)}function A(l){function f(w,k,j,S,E){if(!(w[k]instanceof l)){var R=l.name||b,T=We(w[k]);return new v("Invalid "+S+" `"+E+"` of type "+("`"+T+"` supplied to `"+j+"`, expected ")+("instance of `"+R+"`."))}return null}return y(f)}function F(l){if(!Array.isArray(l))return process.env.NODE_ENV!=="production"&&(arguments.length>1?c("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):c("Invalid argument supplied to oneOf, expected an array.")),u;function f(w,k,j,S,E){for(var R=w[k],T=0;T<l.length;T++)if(O(R,l[T]))return null;var I=JSON.stringify(l,function(M,_){var J=V(_);return J==="symbol"?String(_):_});return new v("Invalid "+S+" `"+E+"` of value `"+String(R)+"` "+("supplied to `"+j+"`, expected one of "+I+"."))}return y(f)}function H(l){function f(w,k,j,S,E){if(typeof l!="function")return new v("Property `"+E+"` of component `"+j+"` has invalid PropType notation inside objectOf.");var R=w[k],T=U(R);if(T!=="object")return new v("Invalid "+S+" `"+E+"` of type "+("`"+T+"` supplied to `"+j+"`, expected an object."));for(var I in R)if(i(R,I)){var C=l(R,I,j,S,E+"."+I,n);if(C instanceof Error)return C}return null}return y(f)}function Pe(l){if(!Array.isArray(l))return process.env.NODE_ENV!=="production"&&c("Invalid argument supplied to oneOfType, expected an instance of array."),u;for(var f=0;f<l.length;f++){var w=l[f];if(typeof w!="function")return c("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+He(w)+" at index "+f+"."),u}function k(j,S,E,R,T){for(var I=[],C=0;C<l.length;C++){var M=l[C],_=M(j,S,E,R,T,n);if(_==null)return null;_.data&&i(_.data,"expectedType")&&I.push(_.data.expectedType)}var J=I.length>0?", expected one of type ["+I.join(", ")+"]":"";return new v("Invalid "+R+" `"+T+"` supplied to "+("`"+E+"`"+J+"."))}return y(k)}function Me(){function l(f,w,k,j,S){return X(f[w])?null:new v("Invalid "+j+" `"+S+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return y(l)}function he(l,f,w,k,j){return new v((l||"React class")+": "+f+" type `"+w+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+j+"`.")}function Le(l){function f(w,k,j,S,E){var R=w[k],T=U(R);if(T!=="object")return new v("Invalid "+S+" `"+E+"` of type `"+T+"` "+("supplied to `"+j+"`, expected `object`."));for(var I in l){var C=l[I];if(typeof C!="function")return he(j,S,E,I,V(C));var M=C(R,I,j,S,E+"."+I,n);if(M)return M}return null}return y(f)}function Ne(l){function f(w,k,j,S,E){var R=w[k],T=U(R);if(T!=="object")return new v("Invalid "+S+" `"+E+"` of type `"+T+"` "+("supplied to `"+j+"`, expected `object`."));var I=t({},w[k],l);for(var C in I){var M=l[C];if(i(l,C)&&typeof M!="function")return he(j,S,E,C,V(M));if(!M)return new v("Invalid "+S+" `"+E+"` key `"+C+"` supplied to `"+j+"`.\nBad object: "+JSON.stringify(w[k],null," ")+`
|
|
56
|
+
Valid keys: `+JSON.stringify(Object.keys(l),null," "));var _=M(R,C,j,S,E+"."+C,n);if(_)return _}return null}return y(f)}function X(l){switch(typeof l){case"number":case"string":case"undefined":return!0;case"boolean":return!l;case"object":if(Array.isArray(l))return l.every(X);if(l===null||r(l))return!0;var f=g(l);if(f){var w=f.call(l),k;if(f!==l.entries){for(;!(k=w.next()).done;)if(!X(k.value))return!1}else for(;!(k=w.next()).done;){var j=k.value;if(j&&!X(j[1]))return!1}}else return!1;return!0;default:return!1}}function Fe(l,f){return l==="symbol"?!0:f?f["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&f instanceof Symbol:!1}function U(l){var f=typeof l;return Array.isArray(l)?"array":l instanceof RegExp?"object":Fe(f,l)?"symbol":f}function V(l){if(typeof l>"u"||l===null)return""+l;var f=U(l);if(f==="object"){if(l instanceof Date)return"date";if(l instanceof RegExp)return"regexp"}return f}function He(l){var f=V(l);switch(f){case"array":case"object":return"an "+f;case"boolean":case"date":case"regexp":return"a "+f;default:return f}}function We(l){return!l.constructor||!l.constructor.name?b:l.constructor.name}return D.checkPropTypes=a,D.resetWarningCache=a.resetWarningCache,D.PropTypes=D,D},le}var ce,we;function ut(){if(we)return ce;we=1;var e=fe();function t(){}function n(){}return n.resetWarningCache=t,ce=function(){function i(u,r,d,x,h,g){if(g!==e){var b=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw b.name="Invariant Violation",b}}i.isRequired=i;function a(){return i}var c={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:a,element:i,elementType:i,instanceOf:a,node:i,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:n,resetWarningCache:t};return c.PropTypes=c,c},ce}var Wt=te.exports;if(process.env.NODE_ENV!=="production"){var pt=G.reactIsExports,ft=!0;te.exports=dt()(pt.isElement,ft)}else te.exports=ut()();var xt=te.exports;const q=ze.getDefaultExportFromCjs(xt);let Ie,Be;typeof document<"u"&&(Ie=document);typeof window<"u"&&(Be=window);const De=m.createContext({document:Ie,window:Be}),se=()=>m.useContext(De),{Provider:ht,Consumer:Ut}=De;class Ae extends m.Component{componentDidMount(){this.props.contentDidMount()}componentDidUpdate(){this.props.contentDidUpdate()}render(){return m.Children.only(this.props.children)}}z(Ae,"propTypes",{children:q.element.isRequired,contentDidMount:q.func.isRequired,contentDidUpdate:q.func.isRequired});class ue extends m.Component{constructor(n,i){super(n,i);z(this,"setRef",n=>{this.nodeRef.current=n;const{forwardedRef:i}=this.props;typeof i=="function"?i(n):i&&(i.current=n)});z(this,"handleLoad",()=>{clearInterval(this.loadCheck),this.state.iframeLoaded||this.setState({iframeLoaded:!0})});z(this,"loadCheck",()=>setInterval(()=>{this.handleLoad()},500));this._isMounted=!1,this.nodeRef=m.createRef(),this.state={iframeLoaded:!1}}componentDidMount(){this._isMounted=!0,this.getDoc()&&this.nodeRef.current.contentWindow.addEventListener("DOMContentLoaded",this.handleLoad)}componentWillUnmount(){this._isMounted=!1,this.nodeRef.current.removeEventListener("DOMContentLoaded",this.handleLoad)}getDoc(){return this.nodeRef.current?this.nodeRef.current.contentDocument:null}getMountTarget(){const n=this.getDoc();return this.props.mountTarget?n.querySelector(this.props.mountTarget):n.body.children[0]}renderFrameContents(){if(!this._isMounted)return null;const n=this.getDoc();if(!n)return null;const i=this.props.contentDidMount,a=this.props.contentDidUpdate,c=n.defaultView||n.parentView,u=s.jsxRuntimeExports.jsx(Ae,{contentDidMount:i,contentDidUpdate:a,children:s.jsxRuntimeExports.jsx(ht,{value:{document:n,window:c},children:s.jsxRuntimeExports.jsx("div",{className:"frame-content",children:this.props.children})})}),r=this.getMountTarget();return[ge.createPortal(this.props.head,this.getDoc().head),ge.createPortal(u,r)]}render(){const n={...this.props,srcDoc:this.props.initialContent,children:void 0};return delete n.head,delete n.initialContent,delete n.mountTarget,delete n.contentDidMount,delete n.contentDidUpdate,delete n.forwardedRef,s.jsxRuntimeExports.jsx("iframe",{...n,ref:this.setRef,onLoad:this.handleLoad,children:this.state.iframeLoaded&&this.renderFrameContents()})}}z(ue,"propTypes",{style:q.object,head:q.node,initialContent:q.string,mountTarget:q.string,contentDidMount:q.func,contentDidUpdate:q.func,children:q.oneOfType([q.element,q.arrayOf(q.element)])}),z(ue,"defaultProps",{style:{},head:null,children:void 0,mountTarget:void 0,contentDidMount:()=>{},contentDidUpdate:()=>{},initialContent:'<!DOCTYPE html><html><head></head><body><div class="frame-root"></div></body></html>'});const gt=m.forwardRef((e,t)=>s.jsxRuntimeExports.jsx(ue,{...e,forwardedRef:t}));let $=null,Q=[],Z=null,_e=null;function mt(e){const t=window.getComputedStyle(e),n=parseInt(t.paddingLeft,10),i=parseInt(t.paddingTop,10),a=parseInt(t.paddingRight,10),c=parseInt(t.paddingBottom,10);return{paddingLeft:n,paddingTop:i,paddingRight:a,paddingBottom:c}}const Se=(e,t,n)=>{if(!$)return;const i=e.getBoundingClientRect(),a=$==null?void 0:$.getElementById("placeholder"),{paddingLeft:c,paddingTop:u,paddingRight:r,paddingBottom:d}=mt(e);a.style.width=t==="vertical"?i.width-c-r+"px":"2px",a.style.height=t==="vertical"?"2px":i.height-u-d+"px",a.style.display="block";const x=Q.reduce((h,g)=>Math.abs(g-n)<Math.abs(h-n)?g:h);_e=Q.indexOf(x),t==="vertical"?(a.style.top=e.offsetTop+x+"px",a.style.left=e.offsetLeft+c+"px"):(a.style.top=e.offsetTop+u+"px",a.style.left=e.offsetLeft+x+"px")},yt=e=>{const t=Oe(e),n=window.getComputedStyle(e),i=t==="horizontal",a=parseInt(n.paddingLeft),c=parseInt(n.paddingTop);let u=i?a:c;Q=[u],Array.from(e.children).forEach(r=>{const d=window.getComputedStyle(r),x=parseInt(i?d.marginLeft+d.marginRight:d.marginTop+d.marginBottom),h=i?r.offsetWidth:r.offsetHeight;Q.push(u+h+x),u+=h+x})};function Oe(e){const t=window.getComputedStyle(e).display,n=window.getComputedStyle(e).flexDirection;if(t==="flex")return n==="column"||n==="column-reverse"?"vertical":"horizontal";if(t==="grid"){const i=window.getComputedStyle(e).gridTemplateRows,a=window.getComputedStyle(e).gridTemplateColumns;if(i.includes("auto"))return"vertical";if(a.includes("auto"))return"horizontal"}return t==="block"?"vertical":"horizontal"}const vt=p.throttle(e=>{const t=e.target,n=Oe(t);if(n==="vertical"){const i=e.clientY-t.offsetTop;Se(t,n,i)}else{const i=e.clientX-t.offsetLeft;Se(t,n,i)}},200),jt=e=>{e.preventDefault(),e.stopPropagation(),vt(e)};function de(){const e=$==null?void 0:$.getElementById("placeholder");e.style.display="none"}const bt=()=>{const{document:e}=se(),[t,n]=L.useAtom(o.draggingFlagAtom),i=Ke.useAddBlockByDrop(),a=Te.useFeature("dnd"),[,c]=o.useHighlightBlockId(),[,u]=o.useSelectedBlockIds();return $=e,{isDragging:t,"data-dnd":"branch",onDragOver:a?jt:p.noop,onDrop:a?r=>{Z==null||Z.classList.remove("outline","outline-green-300","outline-2","-outline-offset-2");const d=JSON.parse(r.dataTransfer.getData("text/plain"));let x=r.target.getAttribute("data-block-id");x===null&&(x=r.target.parentElement.getAttribute("data-block-id")),i({block:d,dropTargetId:x||null,relativeIndex:_e}),n(!1),de(),setTimeout(()=>{de()},300)}:p.noop,onDragEnter:a?r=>{const d=r;Z=d.target,d.stopPropagation(),d.preventDefault(),Q=[];const x=d.target;yt(x),x.classList.add("outline","outline-green-300","outline-2","-outline-offset-2"),n(!0),c(""),u([])}:p.noop,onDragLeave:a?r=>{const d=r;Z=null,d.stopPropagation(),d.preventDefault(),d.target.classList.remove("outline","outline-green-300","outline-2","-outline-offset-2")}:p.noop,onMouseOut:a?()=>{n(!1),de()}:p.noop}};function xe(e){return e.getAttribute("data-block-id")?e:e.closest("[data-block-id]")}function Et(e){e.container.innerHTML="",e.container.parentNode.removeChild(e.container);var t=document.querySelector(".ql-toolbar");t&&t.parentNode.removeChild(t),e=null}const kt=()=>{const e=["Heading","Paragraph","Text","Link","Span","Button"],t=o.useUpdateBlocksProps(),[,n]=o.useHighlightBlockId(),[i,a]=L.useAtom(o.inlineEditingActiveAtom);return c=>{var g;if(i)return;const u=xe(c.target),r=u.getAttribute("data-block-type");if(!r||!e.includes(r))return;const d=u.cloneNode(!0);u.style.display="none",Array.from(d.attributes).forEach(b=>{b.name!=="class"&&d.removeAttribute(b.name)}),r==="Text"&&(d.style.display="inline-block"),u.parentNode.insertBefore(d,u.nextSibling);const x=new Ye.Quill(d,{placeholder:"Type here..."});function h(){const b=x.getText(0,x.getLength());t([u.getAttribute("data-block-id")],{content:b}),u.removeAttribute("style"),d.removeEventListener("blur",h,!0),Et(x),a(""),n("")}d.addEventListener("blur",h,!0),x.focus(),(g=d.querySelector(".ql-clipboard"))==null||g.remove(),a(u.getAttribute("data-block-id"))}},Rt=()=>{const[,e]=o.useSelectedStylingBlocks(),[,t]=o.useSelectedBlockIds(),[n]=L.useAtom(o.inlineEditingActiveAtom);return i=>{if(n)return;i.stopPropagation();const a=xe(i.target);if(a!=null&&a.getAttribute("data-block-parent")){const c=a.getAttribute("data-style-prop"),u=a.getAttribute("data-style-id"),r=a.getAttribute("data-block-parent");e([{id:u,prop:c,blockId:r}]),t([r])}else a!=null&&a.getAttribute("data-block-id")&&t([a.getAttribute("data-block-id")])}},wt=p.throttle((e,t)=>{const n=xe(e.target);n!=null&&n.getAttribute("data-style-id")&&t(n.getAttribute("data-style-id"))},100),St=()=>{const[,e]=o.useHighlightBlockId(),[t]=L.useAtom(o.inlineEditingActiveAtom);return n=>{t||wt(n,e)}},Tt=({children:e})=>{const{document:t}=se(),[n]=o.useSelectedBlockIds(),[i,a]=o.useSelectedStylingBlocks();m.useEffect(()=>{setTimeout(()=>{if(!p.isEmpty(i))return;const x=qe(t,p.first(n));if(x){const h=x.getAttribute("data-style-prop");if(h){const g=x.getAttribute("data-style-id"),b=x.getAttribute("data-block-parent");a([{id:g,prop:h,blockId:b}])}}},100)},[t,n,a,i]);const c=kt(),u=Rt(),r=St(),d=bt();return s.jsxRuntimeExports.jsx("div",{"data-block-id":"container",id:"canvas",onClick:u,onDoubleClick:c,onMouseMove:r,...p.omit(d,"isDragging"),className:"relative mb-5 h-full max-w-full "+(d.isDragging?"dragging":""),children:e})},qe=(e,t)=>e.querySelector(`[data-block-id="${t}"]`),Ct=()=>{const{window:e}=se(),[t,n]=o.useSelectedBlockIds(),[i]=o.useBlocksStore(),[,a]=o.useSelectedStylingBlocks(),{undo:c,redo:u}=o.useUndoManager(),r=o.useDuplicateBlocks(),[,d]=o.usePreviewMode(),x=o.useRemoveBlocks(),{savePage:h}=o.useSavePage(),[g]=L.useAtom(o.inlineEditingActiveAtom),[,b]=L.useAtom(o.editLayerNameAtom),D=v=>{v.key==="Enter"&&(v.preventDefault(),t.length===1&&b(p.first(t)))},O=v=>{const y=i.find(B=>B._id===v);return y?y._parent:null};return m.useEffect(()=>{const v=y=>{if(y.key==="Escape"){n([]),a([]);return}if(D(y),!g&&(y.key==="Delete"||y.key==="Backspace")&&(y.preventDefault(),x(t)),y.ctrlKey||y.metaKey){if(y.key==="ArrowUp"){y.preventDefault();const B=t.length>0?O(t[0]):null;B&&n([B])}if(["z","y","d","x","c","p","s","v"].includes(y.key)){if(g&&["x","z","v"].includes(y.key))return!0;y.preventDefault()}y.key==="s"&&(y.stopPropagation(),y.preventDefault(),h()),y.key==="z"&&c(),y.key==="y"&&u(),y.key==="d"&&r(t)}};return e.removeEventListener("keydown",v),e.addEventListener("keydown",v),()=>{e.removeEventListener("keydown",v)}},[t,n,c,x,d,u,r,g,h,e]),null},It=({block:e,label:t})=>{const[,n]=o.useSelectedBlockIds(),[,i]=o.useHighlightBlockId(),[,a]=L.useAtom(o.draggedBlockIdAtom),c=Te.useFeature("dnd");return s.jsxRuntimeExports.jsxs("div",{className:"mr-10 flex cursor-grab items-center space-x-1 px-1",draggable:c?"true":"false",onDragStart:u=>{u.dataTransfer.setData("text/plain",JSON.stringify(p.pick(e,["_id","_type"]))),a(e._id),setTimeout(()=>{n([]),i(null)},200)},children:[s.jsxRuntimeExports.jsx(P.DragHandleDots2Icon,{}),t]})},Bt=({selectedBlockElement:e,block:t})=>{const n=o.useRemoveBlocks(),i=o.useDuplicateBlocks(),[,a]=o.useSelectedBlockIds(),[,c]=o.useSelectedStylingBlocks(),[u]=L.useAtom(o.inlineEditingActiveAtom),{floatingStyles:r,refs:d,update:x}=me.useFloating({placement:"top-start",middleware:[me.shift(),Je.flip()],elements:{reference:e}});Ve.useResizeObserver(e,()=>x(),e!==null);const h=p.get(t,"_parent",null),g=p.isEmpty(p.get(t,"_name",""))?p.get(t,"_type",""):p.get(t,"_name","");return!e||!t||u?null:s.jsxRuntimeExports.jsxs("div",{role:"button",tabIndex:0,ref:d.setFloating,style:r,onClick:b=>{b.stopPropagation(),b.preventDefault()},onKeyDown:b=>b.stopPropagation(),className:"z-[99999] flex h-6 items-center bg-blue-500 py-2 text-xs text-white",children:[s.jsxRuntimeExports.jsx(It,{label:g,block:t}),s.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 px-1 ",children:[h&&s.jsxRuntimeExports.jsx(P.ArrowUpIcon,{className:"hover:scale-105 ",onClick:()=>{c([]),a([h])}}),o.canDuplicateBlock(p.get(t,"_type",""))?s.jsxRuntimeExports.jsx(P.CopyIcon,{className:"hover:scale-105 ",onClick:()=>i([t==null?void 0:t._id])}):null,o.canDeleteBlock(p.get(t,"_type",""))?s.jsxRuntimeExports.jsx(P.TrashIcon,{className:"hover:scale-105 ",onClick:()=>n([t==null?void 0:t._id])}):null]})]})},Dt=({model:e})=>{const[t]=o.useBrandingOptions(),[n]=o.useSelectedBlockIds(),[i]=o.useDarkMode(),[a]=o.useHighlightBlockId(),[c]=o.useSelectedStylingBlocks(),[u]=L.useAtom(o.draggedBlockIdAtom),{document:r,window:d}=se(),[x]=m.useState(r==null?void 0:r.getElementById("highlighted-block")),[h]=m.useState(r==null?void 0:r.getElementById("selected-block")),[g]=m.useState(r==null?void 0:r.getElementById("selected-styling-block")),[b]=m.useState(r==null?void 0:r.getElementById("dragged-block"));m.useEffect(()=>{i?r==null||r.documentElement.classList.add("dark"):r==null||r.documentElement.classList.remove("dark")},[i,r]);const D=p.get(t,"headingFont","DM Sans"),O=p.get(t,"bodyFont","DM Sans");return m.useEffect(()=>{const v=p.get(t,"primaryColor","#000"),y=p.get(t,"secondaryColor","#FFF"),B=Ze.tailwindcssPaletteGenerator({colors:[v,y],names:["primary","secondary"]});B.primary.DEFAULT=v,B.secondary.DEFAULT=y;const W=p.get(t,"roundedCorners","0");!d||!d.tailwind||(d.tailwind.config={darkMode:"class",theme:{fontFamily:{heading:[D],body:[O]},extend:{borderRadius:{global:`${W||"0"}px`},colors:B}},plugins:[d.tailwind.plugin.withOptions(({prefix:Y="ui"}={})=>({addVariant:K})=>{for(const N of["open","checked","selected","active","disabled"])K(`${Y}-${N}`,[`&[data-headlessui-state~="${N}"]`,`:where([data-headlessui-state~="${N}"]) &`]),K(`${Y}-not-${N}`,[`&[data-headlessui-state]:not([data-headlessui-state~="${N}"])`,`:where([data-headlessui-state]:not([data-headlessui-state~="${N}"])) &:not([data-headlessui-state])`])})]})},[t,d,D,O]),m.useEffect(()=>{h&&(h.textContent=`${p.map(n,v=>`[data-block-id="${v}"]`).join(",")}{
|
|
57
|
+
outline: 1px solid ${n.length===1?"#42a1fc":"orange"} !important; outline-offset: -1px;
|
|
58
|
+
}`)},[n,h]),m.useEffect(()=>{if(!u){b.textContent="";return}b.textContent=`[data-block-id="${u}"]{ pointer-events: none !important; opacity: 0.2 !important}`},[u]),m.useEffect(()=>{x&&(x.textContent=a?`[data-style-id="${a}"]{ outline: 1px solid #42a1fc !important; outline-offset: -1px;}`:"")},[a,n,x]),m.useEffect(()=>{g&&(g.textContent=`${p.map(c,({id:v})=>`[data-style-id="${v}"]`).join(",")}{
|
|
59
|
+
outline: 1px solid #42a1fc !important; outline-offset: -1px;
|
|
60
|
+
}`)},[c,g]),m.useEffect(()=>{const v=p.get(t,"bodyTextLightColor","#64748b"),y=p.get(t,"bodyTextDarkColor","#94a3b8"),B=p.get(t,"bodyBgLightColor","#FFFFFF"),W=p.get(t,"bodyBgDarkColor","#0f172a");r.body.className=`font-body antialiased text-[${v}] bg-[${B}] dark:text-[${y}] dark:bg-[${W}]`},[t,r,e]),e==="page"?s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[D&&s.jsxRuntimeExports.jsx("link",{id:"heading-font",rel:"stylesheet",type:"text/css",href:`https://fonts.googleapis.com/css2?family=${D.replace(/ /g,"+")}:wght@300;400;500;600;700;800;900&display=swap`,media:"all"}),O&&D!==O&&s.jsxRuntimeExports.jsx("link",{id:"body-font",rel:"stylesheet",type:"text/css",href:`https://fonts.googleapis.com/css2?family=${O.replace(/ /g,"+")}:wght@300;400;500;600;700;800;900&display=swap`,media:"all"}),D&&s.jsxRuntimeExports.jsx("style",{children:`h1,h2,h3,h4,h5,h6{font-family: "${D}",ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";}`})]}):null},At=e=>{const t={};return Object.keys(e).forEach(n=>{p.isString(e[n])&&e[n].startsWith(ee.SLOT_KEY)&&(t[n]=e[n].replace(ee.SLOT_KEY,"").split(","))}),t},_t=p.memoize(e=>{const t=e.replace(ee.STYLES_KEY,"").split(",");return Ge.twMerge(t[0],t[1])});function Ot(e,t){return p.get(e,`${t}_attrs`,{})}function qt(e){const t={};return Object.keys(e).forEach(n=>{if(p.isString(e[n])&&e[n].startsWith(ee.STYLES_KEY)){const i=_t(e[n]);t[n]={className:i,"data-style-prop":n,"data-block-parent":e._id,"data-style-id":`${n}-${e._id}`,...Ot(e,n)}}}),t}function Pt(e,t){const n=p.get(e,"_bindings",{});return p.isEmpty(n)?{...e}:(p.each(n,(i,a)=>{p.isString(i)&&p.get(t,i,null)&&(e[a]=p.get(t,i,null))}),e)}function pe({blocks:e}){const[t]=o.useBlocksStore(),n=m.useCallback(c=>qt(c),[]),[i]=G.useChaiExternalData(),[a]=L.useAtom(o.inlineEditingActiveAtom);return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:m.Children.toArray(e.map((c,u)=>{if(a===c._id)return null;const r=At(c),d={};p.isEmpty(r)||Object.keys(r).forEach(b=>{d[b]=m.Children.toArray(r[b].map(D=>s.jsxRuntimeExports.jsx(pe,{blocks:[p.find(t,{_id:D})]})))});const x=p.filter(t,{_parent:c._id});d.children=x.length?s.jsxRuntimeExports.jsx(pe,{blocks:x}):null;const h=Xe.getBlockComponent(c._type),g=p.get(h,"builderComponent",p.get(h,"component",null));return p.isNull(g)?s.jsxRuntimeExports.jsx("noscript",{children:`<!-- ${c==null?void 0:c._type} not registered -->`}):s.jsxRuntimeExports.jsx(m.Suspense,{children:m.createElement(g,{blockProps:{"data-block-id":c._id,"data-block-type":c._type,"data-dnd":p.has(h,"canAcceptBlock")?"branch":"leaf"},inBuilder:!0,index:u,...Pt(c,i),...n(c),...d})})}))})}const Mt=()=>{const[e]=o.useBlocksStore(),t=p.isEmpty(e)?null:s.jsxRuntimeExports.jsx(G.BlocksExternalDataProvider,{children:s.jsxRuntimeExports.jsx(pe,{blocks:p.filter(e,n=>p.isEmpty(n._parent))})});return s.jsxRuntimeExports.jsx(Qe.Provider,{children:t})},Lt=(e,t)=>e.querySelector(`[data-style-id="${t}"]`),Nt=()=>{const[e]=L.useAtom(o.networkModeAtom),[t]=o.usePreviewMode(),[n]=o.useCanvasWidth(),[,i]=o.useSelectedBlockIds(),a=o.useSelectedBlock(),[,c]=o.useHighlightBlockId(),u=m.useRef(null),r=m.useRef(null),[d,x]=m.useState({width:0,height:0}),h=at(d),[g,b]=m.useState(0),[D,O]=m.useState([]),[,v]=m.useState([]),[,y]=L.useAtom(o.canvasIframeAtom),[B,W]=o.useSelectedStylingBlocks(),Y=o.useBuilderProp("loadingCanvas",!1);m.useEffect(()=>{const{clientWidth:A,clientHeight:F}=r.current;x({width:A,height:F}),g===0&&b(A)},[r,n,g]);const K=(A,F=0)=>{const{top:H}=A.getBoundingClientRect();return H+F>=0&&H-F<=window.innerHeight};m.useEffect(()=>{var A,F;if(a&&a.type!=="Multiple"&&u.current){const H=qe(u.current.contentDocument,a._id);H&&(K(H)||(F=(A=u.current)==null?void 0:A.contentWindow)==null||F.scrollTo({top:H.offsetTop,behavior:"smooth"}),O([H]))}},[a]),m.useEffect(()=>{if(!p.isEmpty(B)&&u.current){const A=Lt(u.current.contentDocument,p.first(B).id);v(A?[A]:[null])}else v([null])},[B]);const N=m.useMemo(()=>{let A=it;return e==="offline"&&(A=A.replace("https://old.chaibuilder.com/offline/tailwind.cdn.js","/offline/tailwind.cdn.js"),A=A.replace("https://unpkg.com/aos@next/dist/aos.css","/offline/aos.css"),A=A.replace("https://unpkg.com/aos@next/dist/aos.js","/offline/aos.js")),A},[e]);return s.jsxRuntimeExports.jsx("div",{onClick:()=>{i([]),W([])},onMouseLeave:()=>setTimeout(()=>c(""),300),className:"relative mx-auto overflow-hidden h-full w-full",style:g>0&&!p.isEmpty(h)?{width:t?"100%":g}:{},ref:r,children:s.jsxRuntimeExports.jsxs(gt,{contentDidMount:()=>y(u.current),ref:u,id:"canvas-iframe",style:{width:`${n}px`,...h},className:"relative mx-auto box-content h-full max-w-full shadow-lg transition-all duration-300 ease-linear",initialContent:N,children:[s.jsxRuntimeExports.jsx(Ct,{}),s.jsxRuntimeExports.jsx(Bt,{block:a,selectedBlockElement:p.first(D)}),s.jsxRuntimeExports.jsx(Dt,{model:"page"}),s.jsxRuntimeExports.jsx(Tt,{children:Y?s.jsxRuntimeExports.jsx("div",{className:"h-full p-4",children:s.jsxRuntimeExports.jsx(o.Skeleton,{className:"h-full"})}):s.jsxRuntimeExports.jsx(Mt,{})}),s.jsxRuntimeExports.jsx("br",{}),s.jsxRuntimeExports.jsx("div",{id:"placeholder",className:"absolute bg-green-500 z-[99999] max-w-full transition-transform"})]})})},Ft=()=>s.jsxRuntimeExports.jsxs("div",{className:"flex h-full w-full flex-col",children:[s.jsxRuntimeExports.jsx(ot,{}),s.jsxRuntimeExports.jsx("div",{className:"relative h-full overflow-hidden bg-slate-800/90 bg-[linear-gradient(to_right,#222_0.5px,transparent_0.5px),linear-gradient(to_bottom,#222_0.5px,transparent_0.5px)] bg-[size:12px_12px] px-2",children:s.jsxRuntimeExports.jsx(m.Suspense,{fallback:s.jsxRuntimeExports.jsx(o.Skeleton,{className:"h-full"}),children:s.jsxRuntimeExports.jsx(G.ErrorBoundary,{children:s.jsxRuntimeExports.jsx(Nt,{})})})})]});exports.default=Ft;
|