{
// p.compProp.inherit = !p.compProp.inherit;
// p.render();
// }}
// >
//
// {p.compProp.inherit ? <>Prop Inherited> : <>No Inheritance>}
//
//
// {!p.compProp.inherit ? (
//
// ) : (
//
// )}
//
//
// );
};
const $1fdd159866d5939e$var$SingleProp = ({ p: p, name: name, prop: prop, mprop: mprop, props: props })=>{
const local = (0, $4WfNn.useLocal)({
name: name
});
const type = prop.meta?.type || "text";
return /*#__PURE__*/ (0, $lAN3N.jsx)($1fdd159866d5939e$var$SinglePopover, {
name: name,
p: p,
prop: prop,
mprop: mprop,
local: local,
props: props,
children: /*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: cx("border-b bg-white cursor-pointer hover:bg-orange-50 flex flex-col items-stretch"),
children: /*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "flex justify-between items-stretch flex-wrap",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("input", {
className: "outline-none border-r p-1 w-[30px] text-center",
value: prop.idx,
onClick: (e)=>{
e.stopPropagation();
e.currentTarget.select();
},
onFocus: (e)=>{
e.stopPropagation();
e.currentTarget.select();
},
onChange: (e)=>{
prop.idx = parseInt(e.currentTarget.value) || 0;
local.render();
},
onBlur: (e)=>{
mprop.set("idx", parseInt(e.currentTarget.value));
}
}),
/*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "p-1 flex flex-1 border-r justify-between items-center",
onClick: ()=>{
$1fdd159866d5939e$var$popover.name = name;
local.render();
},
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
children: name
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "text-slate-500 text-xs",
children: {
option: "OPT",
text: "TXT",
"content-element": "JSX"
}[type]
})
]
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "flex p-1 hover:bg-red-500 hover:text-white items-center justify-center cursor-pointer",
onClick: (e)=>{
e.preventDefault();
e.stopPropagation();
if (confirm("Are you sure ?")) {
const parent = mprop.parent;
parent.forEach((m, idx)=>{
if (mprop === m) parent.delete(idx);
});
}
},
children: /*#__PURE__*/ (0, $lAN3N.jsx)($1fdd159866d5939e$var$Trash, {})
})
]
})
})
});
};
const $1fdd159866d5939e$var$SinglePopover = ({ p: p, name: name, prop: prop, mprop: mprop, children: children, local: local, props: props })=>{
const type = prop.meta?.type || "text";
const mmeta = mprop.get("meta");
const meta = prop.meta;
if (!mmeta || !meta) return null;
const args = {};
for (const [k, v] of Object.entries(props))try {
if (v.valueBuilt || v.value) {
const fn = new Function(`return ${v.valueBuilt || v.value}`);
args[k] = fn();
}
} catch (e) {}
const createEditScript = (mode)=>{
return ()=>{
p.script.active = true;
p.script.prop = {
mode: mode,
name: local.name
};
p.script.onClose = ()=>{
let i = 0;
p.compProp.edit = true;
$1fdd159866d5939e$var$popover.name = name;
p.render();
const ival = setInterval(()=>{
i++;
if (i > 10) clearInterval(ival);
p.compProp.edit = true;
$1fdd159866d5939e$var$popover.name = name;
p.render();
}, 50);
};
p.render();
};
};
return /*#__PURE__*/ (0, $lAN3N.jsx)((0, $bTIRf.Popover), {
children: children,
autoFocus: false,
backdrop: false,
placement: "left-start",
open: $1fdd159866d5939e$var$popover.name === name,
popoverClassName: "bg-white shadow-lg border border-slate-300",
onOpenChange: (open)=>{
if (!open) setTimeout(()=>{
$1fdd159866d5939e$var$popover.name = "";
local.render();
}, 100);
else {
$1fdd159866d5939e$var$popover.name = name;
local.render();
}
},
content: /*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: cx("flex text-sm flex-col items-stretch space-y-1 py-1 w-[300px]", css`
textarea {
max-height: 300px;
}
`),
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "px-2 py-1 flex space-x-1",
children: [
{
label: "TXT",
type: "text"
},
{
label: "OPT",
type: "option"
},
{
label: "JSX",
type: "content-element"
}
].map((e)=>{
return /*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: cx(type === e.type ? "bg-blue-500 text-white" : "hover:bg-blue-100", " px-2 cursor-pointer"),
onClick: ()=>{
mmeta.set("type", e.type);
},
children: e.label
}, e.type);
})
}),
/*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "border-t border-slate-300 px-2 pt-2 pb-1 flex flex-col items-stretch",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs text-slate-500",
children: "Name"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("input", {
spellCheck: false,
type: "text",
className: "p-1 outline-none border focus:border-blue-500",
value: local.name,
onChange: (e)=>{
local.name = e.currentTarget.value.toLowerCase().replace(/\W/gi, "_");
local.render();
},
onBlur: ()=>{
if (local.name !== name) {
const keys = Object.keys(mprop.parent?.toJSON());
if ([
...keys,
...$1fdd159866d5939e$var$keywords
].includes(local.name)) {
alert(`Cannot use "${local.name}" as name`);
local.name = name;
local.render();
return;
}
mprop.doc?.transact(()=>{
const parent = mprop.parent;
parent.set(local.name, parent.get(name)?.clone());
parent.delete(name);
});
$1fdd159866d5939e$var$popover.name = local.name;
local.render();
}
},
onKeyDown: (e)=>{
if (e.key === "Enter") e.currentTarget.blur();
}
})
]
}),
type === "content-element" && /*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "border-t border-slate-300 pl-2 pt-1 flex justify-between items-center",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs label self-stretch flex items-center",
children: "Visible"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "m-1 px-1 bg-white cursor-pointer hover:bg-blue-500 hover:text-white hover:border-blue-500 font-mono border border-slate-300 text-[11px]",
onClick: createEditScript("master-visible"),
children: "EDIT CODE"
})
]
}),
type !== "content-element" && /*#__PURE__*/ (0, $lAN3N.jsxs)((0, $lAN3N.Fragment), {
children: [
/*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: cx("border-t border-slate-300 pl-2 flex justify-between items-center", css`
margin-bottom: -0.25rem !important;
> .label {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
`),
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs label self-stretch flex items-center",
children: "Generator"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "m-1 px-1 bg-white cursor-pointer hover:bg-blue-500 hover:text-white hover:border-blue-500 font-mono border border-slate-300 text-[11px] flex ",
onClick: createEditScript("master-gen"),
children: "EDIT CODE"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: " border-l border-slate-300 mr-2 self-stretch"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs label self-stretch flex items-center",
children: "Visible"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "m-1 px-1 bg-white cursor-pointer hover:bg-blue-500 hover:text-white hover:border-blue-500 font-mono border border-slate-300 text-[11px]",
onClick: createEditScript("master-visible"),
children: "EDIT CODE"
})
]
}),
/*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "border-t border-slate-300 pl-2 pt-1 flex justify-between items-center",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs",
children: "VALUE"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "m-1 px-1 bg-white cursor-pointer hover:bg-blue-500 hover:text-white hover:border-blue-500 font-mono border border-slate-300 text-[11px]",
onClick: createEditScript("master-value"),
children: "EDIT CODE"
})
]
})
]
}),
type === "option" && /*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "border-t border-slate-300 pl-2 pt-1 flex justify-between items-center select-none",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs",
children: "MODE"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "flex pr-1",
children: [
"button",
"dropdown"
].map((e)=>/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
onClick: ()=>{
const meta = mprop.get("meta");
if (meta) meta.set("option_mode", e);
},
className: cx("m-1 px-1 capitalize text-center cursor-pointer font-mono border border-slate-300 text-[11px]", e === prop.meta?.option_mode || e === "button" && !prop.meta?.option_mode ? "bg-blue-500 text-white" : `hover:bg-blue-500 hover:text-white bg-white hover:border-blue-500`),
children: e
}, e))
})
]
}),
type === "option" && /*#__PURE__*/ (0, $lAN3N.jsxs)("div", {
className: "border-t border-slate-300 pl-2 pt-1 flex justify-between items-center",
children: [
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "uppercase text-xs",
children: "OPTIONS"
}),
/*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "m-1 px-1 bg-white cursor-pointer hover:bg-blue-500 hover:text-white hover:border-blue-500 font-mono border border-slate-300 text-[11px]",
onClick: createEditScript("master-option"),
children: "EDIT CODE"
})
]
})
]
})
});
};
const $1fdd159866d5939e$var$Trash = ()=>/*#__PURE__*/ (0, $lAN3N.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: 13,
height: 13,
fill: "none",
viewBox: "0 0 15 15",
children: /*#__PURE__*/ (0, $lAN3N.jsx)("path", {
fill: "currentColor",
fillRule: "evenodd",
d: "M5.5 1a.5.5 0 000 1h4a.5.5 0 000-1h-4zM3 3.5a.5.5 0 01.5-.5h8a.5.5 0 010 1H11v8a1 1 0 01-1 1H5a1 1 0 01-1-1V4h-.5a.5.5 0 01-.5-.5zM5 4h5v8H5V4z",
clipRule: "evenodd"
})
});
const $1fdd159866d5939e$var$keywords = [
"await",
"break",
"case",
"catch",
"class",
"const",
"continue",
"debugger",
"default",
"delete",
"do",
"else",
"enum",
"export",
"extends",
"false",
"finally",
"for",
"function",
"if",
"implements",
"import",
"in",
"instanceof",
"interface",
"let",
"new",
"null",
"package",
"private",
"protected",
"public",
"return",
"super",
"switch",
"static",
"this",
"throw",
"try",
"true",
"typeof",
"var",
"void",
"while",
"with",
"yield"
];
});
parcelRegister("bhjA3", function(module, exports) {
$parcel$export(module.exports, "SideBox", () => $60c778b4666a80eb$export$262f8351f69854f4);
var $lAN3N = parcelRequire("lAN3N");
const $60c778b4666a80eb$export$262f8351f69854f4 = ({ children: children })=>{
return /*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "flex flex-col pb-2 px-2 space-y-2",
children: children
});
};
});
parcelRegister("9ABAk", function(module, exports) {
$parcel$export(module.exports, "SideLabel", () => $9ef92df658de1c26$export$2bf247a0a1771b67);
var $lAN3N = parcelRequire("lAN3N");
const $9ef92df658de1c26$export$2bf247a0a1771b67 = ({ children: children, sep: sep })=>{
return /*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: cx(sep === "bottom" ? "border-b border-b-slate-300 bg-white mb-1" : "border-t border-t-slate-300"),
children: /*#__PURE__*/ (0, $lAN3N.jsx)("div", {
className: "text-[10px] select-none text-slate-400 pl-2 py-1",
children: children
})
});
};
});
})();
//# sourceMappingURL=Side.fa071797.js.map