treege 3.0.0-beta.81 → 3.0.0-beta.83
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/{DefaultSubmitButton-Dg9GPvh-.js → DefaultSubmitButton-DpeL3OxC.js} +758 -702
- package/dist/{ThemeContext-BgTIhoK6.js → ThemeContext-BnPOFQC7.js} +82 -74
- package/dist/editor/features/TreegeEditor/inputs/TranslatableInput.d.ts +20 -0
- package/dist/{editor-h20-TVM8.js → editor-CbcW0OVV.js} +1340 -1430
- package/dist/editor.js +2 -2
- package/dist/main.js +6 -6
- package/dist/renderer/features/TreegeViewer/utils/viewerFields.d.ts +78 -0
- package/dist/renderer/features/TreegeViewer/web/TreegeViewer.d.ts +70 -0
- package/dist/renderer/index.d.ts +3 -0
- package/dist/renderer/utils/file.d.ts +15 -2
- package/dist/renderer-KRzuU6OD.js +411 -0
- package/dist/renderer-native.js +946 -946
- package/dist/renderer.js +5 -5
- package/dist/shared/utils/normalizeLabel.d.ts +2 -1
- package/dist/shared/utils/translations.d.ts +21 -1
- package/dist/useRenderNode-DQ5lvXuj.js +527 -0
- package/package.json +1 -1
- package/dist/renderer-DI6nF4St.js +0 -256
- package/dist/useRenderNode-B1sfwbia.js +0 -527
|
@@ -534,7 +534,10 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
534
534
|
invalidFormat: "Formato inválido",
|
|
535
535
|
required: "Este campo é obrigatório"
|
|
536
536
|
}
|
|
537
|
-
}, _ = (e, t = "en") => e
|
|
537
|
+
}, _ = (e, t = "en") => e && (e[t] || e.en || Object.values(e).find(Boolean)) || "", v = (e, t) => e?.[t] ?? "", y = (e, t, n) => ({
|
|
538
|
+
...e && typeof e == "object" ? e : {},
|
|
539
|
+
[t]: n
|
|
540
|
+
}), b = {
|
|
538
541
|
ar: u,
|
|
539
542
|
de: d,
|
|
540
543
|
en: f,
|
|
@@ -542,20 +545,20 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
542
545
|
fr: m,
|
|
543
546
|
it: h,
|
|
544
547
|
pt: g
|
|
545
|
-
},
|
|
548
|
+
}, x = (e, t = "") => Object.keys(e).reduce((n, r) => {
|
|
546
549
|
let i = e[r], a = t ? `${t}.${r}` : r;
|
|
547
|
-
return typeof i == "object" && i && !Array.isArray(i) ? Object.assign(n,
|
|
548
|
-
}, {}),
|
|
549
|
-
let t = r(() =>
|
|
550
|
+
return typeof i == "object" && i && !Array.isArray(i) ? Object.assign(n, x(i, a)) : n[a] = String(i), n;
|
|
551
|
+
}, {}), S = (e) => x(b[e] || b.en), C = (e) => {
|
|
552
|
+
let t = r(() => S(e), [e]);
|
|
550
553
|
return r(() => (n) => n ? typeof n == "object" ? _(n, e) : n in t ? t[n] : n : "", [e, t]);
|
|
551
554
|
}, ee = {
|
|
552
555
|
AND: "AND",
|
|
553
556
|
OR: "OR"
|
|
554
|
-
},
|
|
557
|
+
}, w = {
|
|
555
558
|
group: "group",
|
|
556
559
|
input: "input",
|
|
557
560
|
ui: "ui"
|
|
558
|
-
},
|
|
561
|
+
}, T = {
|
|
559
562
|
baseUrl: void 0,
|
|
560
563
|
flow: null,
|
|
561
564
|
formErrors: {},
|
|
@@ -566,17 +569,17 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
566
569
|
language: "",
|
|
567
570
|
optionsDisplayLimit: void 0,
|
|
568
571
|
setFieldValue: () => {}
|
|
569
|
-
},
|
|
572
|
+
}, E = e(null), te = ({ children: e, value: t }) => {
|
|
570
573
|
let n = r(() => ({
|
|
571
|
-
...
|
|
574
|
+
...T,
|
|
572
575
|
...t
|
|
573
576
|
}), [t]);
|
|
574
|
-
return /* @__PURE__ */ a(
|
|
577
|
+
return /* @__PURE__ */ a(E.Provider, {
|
|
575
578
|
value: n,
|
|
576
579
|
children: e
|
|
577
580
|
});
|
|
578
|
-
},
|
|
579
|
-
let e = t(
|
|
581
|
+
}, D = () => {
|
|
582
|
+
let e = t(E) ?? T, n = r(() => e.flow?.edges ?? [], [e.flow]);
|
|
580
583
|
return {
|
|
581
584
|
...e,
|
|
582
585
|
edges: n
|
|
@@ -590,14 +593,14 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
590
593
|
"br",
|
|
591
594
|
"p",
|
|
592
595
|
"span"
|
|
593
|
-
],
|
|
596
|
+
], re = ["class"], O = (e, t = {}) => {
|
|
594
597
|
if (e == null || e === "") return "";
|
|
595
598
|
let n = String(e), { plainTextOnly: r = !0, allowedTags: i, allowedAttributes: a } = t;
|
|
596
599
|
if (r) return o.sanitize(n, {
|
|
597
600
|
ALLOWED_ATTR: [],
|
|
598
601
|
ALLOWED_TAGS: []
|
|
599
602
|
});
|
|
600
|
-
let s = i ?? ne, c = a ??
|
|
603
|
+
let s = i ?? ne, c = a ?? re;
|
|
601
604
|
return o.sanitize(n, {
|
|
602
605
|
ALLOW_DATA_ATTR: !1,
|
|
603
606
|
ALLOW_UNKNOWN_PROTOCOLS: !1,
|
|
@@ -609,24 +612,24 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
609
612
|
RETURN_DOM: !1,
|
|
610
613
|
RETURN_DOM_FRAGMENT: !1
|
|
611
614
|
});
|
|
612
|
-
},
|
|
613
|
-
if (n >
|
|
615
|
+
}, k = 100, A = (e, t = {}, n = 0, r = /* @__PURE__ */ new WeakSet()) => {
|
|
616
|
+
if (n > k) return console.warn(`sanitizeHttpResponse: Maximum depth (${k}) exceeded.`), typeof e == "string" ? O(e, t) : "[Max Depth Exceeded]";
|
|
614
617
|
if (e == null) return e;
|
|
615
|
-
if (typeof e == "string") return
|
|
616
|
-
if (Array.isArray(e)) return e.map((e) =>
|
|
618
|
+
if (typeof e == "string") return O(e, t);
|
|
619
|
+
if (Array.isArray(e)) return e.map((e) => A(e, t, n + 1, r));
|
|
617
620
|
if (typeof e == "object") {
|
|
618
621
|
if (r.has(e)) return console.warn("sanitizeHttpResponse: Circular reference detected. Breaking cycle to prevent infinite recursion."), "[Circular Reference]";
|
|
619
622
|
r.add(e);
|
|
620
623
|
let i = {};
|
|
621
|
-
for (let [a, o] of Object.entries(e)) i[a] =
|
|
624
|
+
for (let [a, o] of Object.entries(e)) i[a] = A(o, t, n + 1, r);
|
|
622
625
|
return r.delete(e), i;
|
|
623
626
|
}
|
|
624
627
|
return e;
|
|
625
|
-
},
|
|
626
|
-
let t =
|
|
628
|
+
}, ie = (e) => {
|
|
629
|
+
let t = D(), n = C(e ?? t.language);
|
|
627
630
|
return r(() => (e) => {
|
|
628
631
|
let t = n(e);
|
|
629
|
-
return typeof e == "object" && e ?
|
|
632
|
+
return typeof e == "object" && e ? O(t) : t;
|
|
630
633
|
}, [n]);
|
|
631
634
|
}, j = (...e) => {
|
|
632
635
|
let t = /* @__PURE__ */ new Map();
|
|
@@ -638,12 +641,12 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
638
641
|
});
|
|
639
642
|
});
|
|
640
643
|
}), Object.fromEntries(Array.from(t.values(), ({ key: e, value: t }) => [e, t]));
|
|
641
|
-
},
|
|
644
|
+
}, ae = (e, t, n) => e && Object.fromEntries(Object.entries(e).map(([e, r]) => [e, N(r, t, n)])), M = (e, t) => {
|
|
642
645
|
let n = Object.entries(t ?? {}).filter(([e]) => e);
|
|
643
646
|
if (n.length === 0) return e;
|
|
644
647
|
let r = n.map(([e, t]) => `${encodeURIComponent(e)}=${encodeURIComponent(t ?? "")}`).join("&");
|
|
645
648
|
return r ? `${e}${e.includes("?") ? "&" : "?"}${r}` : e;
|
|
646
|
-
},
|
|
649
|
+
}, oe = (e, t) => !(t && e) || /^(https?:)?\/\//i.test(e) ? e : `${t.replace(/\/+$/, "")}/${e.replace(/^\/+/, "")}`, se = (e) => {
|
|
647
650
|
try {
|
|
648
651
|
return {
|
|
649
652
|
ok: !0,
|
|
@@ -652,14 +655,14 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
652
655
|
} catch {
|
|
653
656
|
return { ok: !1 };
|
|
654
657
|
}
|
|
655
|
-
},
|
|
658
|
+
}, ce = async (e) => {
|
|
656
659
|
try {
|
|
657
660
|
let { url: t, method: n = "GET", headers: r, queryParams: i, body: a, signal: o } = e;
|
|
658
661
|
if (!t || t.trim() === "") return {
|
|
659
662
|
error: "No URL provided",
|
|
660
663
|
success: !1
|
|
661
664
|
};
|
|
662
|
-
let s =
|
|
665
|
+
let s = M(t, i), c = j({ "Content-Type": "application/json" }, r), l = {
|
|
663
666
|
headers: Object.fromEntries(Object.entries(c).filter(([, e]) => e)),
|
|
664
667
|
method: n,
|
|
665
668
|
signal: o
|
|
@@ -688,13 +691,13 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
688
691
|
success: !1
|
|
689
692
|
};
|
|
690
693
|
}
|
|
691
|
-
},
|
|
694
|
+
}, N = (e, t, n = {}) => {
|
|
692
695
|
if (!e) return "";
|
|
693
696
|
let { encode: r = !1, json: i = !1 } = n;
|
|
694
697
|
return e.replace(/\{\{([\w-]+)}}/g, (e, n) => {
|
|
695
698
|
let a = t[n.trim()];
|
|
696
699
|
if (a == null) return i ? "null" : "";
|
|
697
|
-
let o = typeof a == "string" ?
|
|
700
|
+
let o = typeof a == "string" ? O(a) : a;
|
|
698
701
|
if (r) return encodeURIComponent(String(o));
|
|
699
702
|
if (i) {
|
|
700
703
|
if (typeof o == "string") return `"${o.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
|
|
@@ -703,14 +706,14 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
703
706
|
}
|
|
704
707
|
return String(o);
|
|
705
708
|
});
|
|
706
|
-
},
|
|
707
|
-
let r =
|
|
709
|
+
}, le = (e, t) => e ? e.replace(/\{\{response\.([\w.-]+)}}/g, (e, n) => {
|
|
710
|
+
let r = ue(t, n.trim());
|
|
708
711
|
return r == null ? "" : String(r);
|
|
709
|
-
}) : "",
|
|
712
|
+
}) : "", ue = (e, t) => {
|
|
710
713
|
if (!(!e || typeof e != "object")) return t.split(".").reduce((e, t) => {
|
|
711
714
|
if (!(typeof e != "object" || !e)) return e[t];
|
|
712
715
|
}, e);
|
|
713
|
-
},
|
|
716
|
+
}, P = (e, t) => t ? t.split(".").reduce((e, t) => {
|
|
714
717
|
if (e == null) return;
|
|
715
718
|
let n = t.match(/^(\w+)\[(\d+)]$/);
|
|
716
719
|
if (n) {
|
|
@@ -718,65 +721,65 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
718
721
|
return Array.isArray(i) ? i[Number.parseInt(r, 10)] : i;
|
|
719
722
|
}
|
|
720
723
|
return e[t];
|
|
721
|
-
}, e) : e,
|
|
722
|
-
let r =
|
|
724
|
+
}, e) : e, F = (e, t, n) => {
|
|
725
|
+
let r = P(e, t ?? "");
|
|
723
726
|
return Array.isArray(r) ? r.map((e) => {
|
|
724
|
-
let t =
|
|
727
|
+
let t = P(e, n.valueField), r = P(e, n.labelField);
|
|
725
728
|
if (t == null) return null;
|
|
726
729
|
let i = {
|
|
727
730
|
label: { en: String(r ?? t) },
|
|
728
731
|
value: String(t)
|
|
729
732
|
};
|
|
730
733
|
if (n.descriptionField) {
|
|
731
|
-
let t =
|
|
734
|
+
let t = P(e, n.descriptionField);
|
|
732
735
|
t != null && t !== "" && (i.description = { en: String(t) });
|
|
733
736
|
}
|
|
734
737
|
if (n.imageField) {
|
|
735
|
-
let t =
|
|
738
|
+
let t = P(e, n.imageField);
|
|
736
739
|
typeof t == "string" && t !== "" && (i.image = t);
|
|
737
740
|
}
|
|
738
741
|
return i;
|
|
739
742
|
}).filter((e) => e !== null) : [];
|
|
740
|
-
},
|
|
743
|
+
}, I = /^[\w-]+$/, L = /^\{\{([\w-]+)}}$/, R = /\{\{([\w-]+)}}/g, z = (e, t) => {
|
|
741
744
|
let n = { ...e };
|
|
742
745
|
for (let r of t) {
|
|
743
746
|
let t = r.data?.name?.trim();
|
|
744
|
-
t &&
|
|
747
|
+
t && I.test(t) && e[r.id] !== void 0 && n[t] === void 0 && (n[t] = e[r.id]);
|
|
745
748
|
}
|
|
746
749
|
return n;
|
|
747
|
-
},
|
|
750
|
+
}, B = (e, t) => e.replace(R, (e, n) => {
|
|
748
751
|
let r = t[n];
|
|
749
752
|
return r == null ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
|
|
750
|
-
}),
|
|
753
|
+
}), V = (e, t) => {
|
|
751
754
|
if (typeof e == "string") {
|
|
752
|
-
let n = e.match(
|
|
755
|
+
let n = e.match(L);
|
|
753
756
|
if (n) {
|
|
754
757
|
let e = t[n[1]];
|
|
755
758
|
return e === void 0 ? null : e;
|
|
756
759
|
}
|
|
757
|
-
return
|
|
760
|
+
return B(e, t);
|
|
758
761
|
}
|
|
759
|
-
if (Array.isArray(e)) return e.map((e) =>
|
|
762
|
+
if (Array.isArray(e)) return e.map((e) => V(e, t));
|
|
760
763
|
if (e && typeof e == "object") {
|
|
761
764
|
let n = {};
|
|
762
|
-
for (let [r, i] of Object.entries(e)) n[
|
|
765
|
+
for (let [r, i] of Object.entries(e)) n[B(r, t)] = V(i, t);
|
|
763
766
|
return n;
|
|
764
767
|
}
|
|
765
768
|
return e;
|
|
766
|
-
},
|
|
769
|
+
}, H = (e) => {
|
|
767
770
|
try {
|
|
768
771
|
return JSON.parse(e);
|
|
769
772
|
} catch {
|
|
770
773
|
return;
|
|
771
774
|
}
|
|
772
|
-
},
|
|
775
|
+
}, U = (e, t, n) => {
|
|
773
776
|
if (!e || e.trim() === "") return;
|
|
774
|
-
let r =
|
|
775
|
-
if (r !== void 0) return
|
|
776
|
-
},
|
|
777
|
-
let r =
|
|
777
|
+
let r = H(e);
|
|
778
|
+
if (r !== void 0) return V(r, z(t, n));
|
|
779
|
+
}, de = (e, t, n) => {
|
|
780
|
+
let r = U(e, t, n);
|
|
778
781
|
return r === void 0 ? void 0 : JSON.stringify(r);
|
|
779
|
-
},
|
|
782
|
+
}, W = (e) => e.trim() ? e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().split(" ").map((e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(" ") : e, fe = (e) => Object.fromEntries(Object.entries(e).map(([e, t]) => [e, typeof t == "string" ? W(t) : t])), G = (e) => new Promise((t, n) => {
|
|
780
783
|
let r = new FileReader();
|
|
781
784
|
r.onload = () => {
|
|
782
785
|
let n = r.result;
|
|
@@ -790,7 +793,7 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
790
793
|
}, r.onerror = () => {
|
|
791
794
|
n(/* @__PURE__ */ Error(`Failed to read file: ${e.name}`));
|
|
792
795
|
}, r.readAsDataURL(e);
|
|
793
|
-
}),
|
|
796
|
+
}), pe = (e) => {
|
|
794
797
|
let t = e.data.split(",")[1], n = atob(t), r = new ArrayBuffer(n.length), i = new Uint8Array(r);
|
|
795
798
|
for (let e = 0; e < n.length; e++) i[e] = n.charCodeAt(e);
|
|
796
799
|
let a = new Blob([r], { type: e.type });
|
|
@@ -798,24 +801,29 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
798
801
|
lastModified: e.lastModified,
|
|
799
802
|
type: e.type
|
|
800
803
|
});
|
|
801
|
-
},
|
|
804
|
+
}, me = (e) => Promise.all(e.map((e) => G(e))), K = (e) => {
|
|
805
|
+
try {
|
|
806
|
+
let { pathname: t } = new URL(e, "http://_"), n = t.split("/").filter(Boolean).pop();
|
|
807
|
+
return n ? decodeURIComponent(n) : e;
|
|
808
|
+
} catch {
|
|
809
|
+
return e;
|
|
810
|
+
}
|
|
811
|
+
}, he = (e) => !!e && !e.startsWith("data:") && !e.startsWith("blob:"), ge = (e) => (Array.isArray(e) ? e : e == null ? [] : [e]).flatMap((e) => typeof e == "string" ? e.trim() === "" ? [] : [{
|
|
812
|
+
data: e,
|
|
813
|
+
lastModified: 0,
|
|
814
|
+
name: K(e),
|
|
815
|
+
size: 0,
|
|
816
|
+
type: ""
|
|
817
|
+
}] : [e]), _e = (e) => e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`, ve = new Set([
|
|
802
818
|
"text",
|
|
803
819
|
"number",
|
|
804
820
|
"password",
|
|
805
821
|
"textarea",
|
|
806
822
|
"time"
|
|
807
|
-
]),
|
|
808
|
-
if (e.data.name) return e.data.name;
|
|
809
|
-
if (e.data.label) {
|
|
810
|
-
if (e.data.label.en) return e.data.label.en;
|
|
811
|
-
let t = Object.values(e.data.label).find(Boolean);
|
|
812
|
-
if (t) return t;
|
|
813
|
-
}
|
|
814
|
-
return e.id;
|
|
815
|
-
}, he = (e, t) => _(e.data.label, t) || e.data.name || e.id, ge = (e, t) => {
|
|
823
|
+
]), ye = (e) => e.filter(s), q = (e) => e.data.name ? e.data.name : _(e.data.label) || e.id, be = (e, t) => _(e.data.label, t) || e.data.name || e.id, xe = (e, t) => {
|
|
816
824
|
let n = e.type ?? "text";
|
|
817
|
-
return !e.placeholder
|
|
818
|
-
},
|
|
825
|
+
return !v(e.placeholder, t) && ve.has(n) ? S(t)["renderer.defaultInputs.newAnswer"] ?? "" : _(e.placeholder, t);
|
|
826
|
+
}, Se = (e) => e == null || typeof e == "string" && e.trim() === "" ? !0 : Array.isArray(e) && e.length === 0, Ce = (e, t) => e ? t[e] != null : !1, J = (e, t) => {
|
|
819
827
|
let { defaultValue: n } = e.data;
|
|
820
828
|
if (n) {
|
|
821
829
|
if (n.type === "static" && n.staticValue !== void 0) return n.staticValue;
|
|
@@ -824,24 +832,24 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
824
832
|
if (e !== void 0) return e;
|
|
825
833
|
}
|
|
826
834
|
}
|
|
827
|
-
},
|
|
835
|
+
}, we = (e, t) => {
|
|
828
836
|
let n = {};
|
|
829
837
|
return t.forEach((t) => {
|
|
830
838
|
if (e[t.id] !== void 0) {
|
|
831
839
|
n[t.id] = e[t.id];
|
|
832
840
|
return;
|
|
833
841
|
}
|
|
834
|
-
let r =
|
|
842
|
+
let r = q(t);
|
|
835
843
|
e[r] !== void 0 && (n[t.id] = e[r]);
|
|
836
844
|
}), t.forEach((e) => {
|
|
837
845
|
if (n[e.id] !== void 0) return;
|
|
838
|
-
let t =
|
|
846
|
+
let t = J(e, n);
|
|
839
847
|
t !== void 0 && (n[e.id] = t);
|
|
840
848
|
}), n;
|
|
841
|
-
},
|
|
849
|
+
}, Y = (e, t) => {
|
|
842
850
|
let n = {};
|
|
843
851
|
return t.forEach((t) => {
|
|
844
|
-
let r = t.id, i =
|
|
852
|
+
let r = t.id, i = q(t);
|
|
845
853
|
e[r] !== void 0 && (n[i] = e[r]);
|
|
846
854
|
}), n;
|
|
847
855
|
}, X = (e, t, n) => {
|
|
@@ -887,7 +895,7 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
887
895
|
} catch {
|
|
888
896
|
return !1;
|
|
889
897
|
}
|
|
890
|
-
},
|
|
898
|
+
}, Te = (e, t, n) => {
|
|
891
899
|
let r = {};
|
|
892
900
|
return e.forEach((e) => {
|
|
893
901
|
let { defaultValue: i } = e.data;
|
|
@@ -944,7 +952,7 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
944
952
|
colors: Q.light,
|
|
945
953
|
setTheme: () => null,
|
|
946
954
|
theme: "system"
|
|
947
|
-
}),
|
|
955
|
+
}), Ee = ({ children: e, defaultTheme: t = "system", storageKey: o = "treege-theme", theme: s, ...c }) => {
|
|
948
956
|
let [l, u] = i(() => s || typeof window < "u" && localStorage.getItem(o) || t), d = s ?? l, f = Q[d === "system" ? typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : d], p = r(() => ({
|
|
949
957
|
colors: f,
|
|
950
958
|
setTheme: (e) => {
|
|
@@ -976,10 +984,10 @@ var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.t
|
|
|
976
984
|
value: p,
|
|
977
985
|
children: e
|
|
978
986
|
});
|
|
979
|
-
},
|
|
987
|
+
}, De = () => {
|
|
980
988
|
let e = t($);
|
|
981
989
|
if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
|
|
982
990
|
return e;
|
|
983
991
|
};
|
|
984
992
|
//#endregion
|
|
985
|
-
export {
|
|
993
|
+
export { le as A, w as B, U as C, P as D, F as E, ie as F, _ as G, C as H, O as I, s as J, y as K, A as L, ae as M, oe as N, ce as O, se as P, te as R, fe as S, M as T, S as U, ee as V, v as W, c as Y, _e as _, Te as a, pe as b, Se as c, xe as d, q as f, me as g, G as h, we as i, N as j, j as k, J as l, K as m, De as n, Ce as o, be as p, l as q, X as r, Y as s, Ee as t, ye as u, he as v, de as w, W as x, ge as y, D as z };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { Input } from '../../../../shared/components/ui/input';
|
|
3
|
+
import { Translatable } from '../../../../shared/types/translate';
|
|
4
|
+
interface TranslatableInputProps extends Omit<ComponentProps<typeof Input>, "value" | "onChange"> {
|
|
5
|
+
/** Current translatable value (per-language object). */
|
|
6
|
+
value: Translatable | undefined;
|
|
7
|
+
/** Language entry being edited. */
|
|
8
|
+
language: string;
|
|
9
|
+
/** Receives the updated, always-object value (never a spread-corrupted string). */
|
|
10
|
+
onChange: (value: Translatable) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Text input bound to a single language entry of a translatable field. Reading
|
|
14
|
+
* and writing go through the translatable helpers, so a plain-string value is
|
|
15
|
+
* shown for any language and is safely coerced on edit instead of being spread
|
|
16
|
+
* into indexed character keys. Use this for every translatable field edited in
|
|
17
|
+
* the editor.
|
|
18
|
+
*/
|
|
19
|
+
declare const TranslatableInput: ({ value, language, onChange, ...props }: TranslatableInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export default TranslatableInput;
|