@jsg-developer/vue-pack 0.0.4 → 0.0.5

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.
Files changed (112) hide show
  1. package/dist/ArrayObject-Cb0A6NL-.cjs +1 -0
  2. package/dist/ArrayObject-G-w4_LdV.js +4 -0
  3. package/dist/ColorPicker-BOU6KGlX.cjs +1 -0
  4. package/dist/ColorPicker-_HBqDi2i.js +4 -0
  5. package/dist/ComboboxComponent-BKzDSOlW.cjs +1 -0
  6. package/dist/ComboboxComponent-dHzbOpla.js +4 -0
  7. package/dist/CurrencyInput-BkEubeqv.js +4 -0
  8. package/dist/CurrencyInput-BoLzCKBI.cjs +1 -0
  9. package/dist/DEPENDENCY-LICENSES.txt +1 -96
  10. package/dist/DateInput-BOmJIkVs.js +4 -0
  11. package/dist/DateInput-CkwXQGkB.cjs +1 -0
  12. package/dist/DateTimeInput-COgGqch6.cjs +1 -0
  13. package/dist/DateTimeInput-Cy3evqKy.js +4 -0
  14. package/dist/DateTimeInput.vue_vue_type_script_setup_true_lang-PkNDbgK0.cjs +2 -0
  15. package/dist/DateTimeInput.vue_vue_type_script_setup_true_lang-T42eSMbp.js +142 -0
  16. package/dist/EmailInput-BFMPoqlz.js +4 -0
  17. package/dist/EmailInput-BH6wvnu5.cjs +1 -0
  18. package/dist/FileArrayInput-Cf_9Mrc6.js +5 -0
  19. package/dist/FileArrayInput-Crgama_k.cjs +1 -0
  20. package/dist/FileArrayInput.vue_vue_type_script_setup_true_lang-ChT-nLrY.js +198 -0
  21. package/dist/FileArrayInput.vue_vue_type_script_setup_true_lang-IBxome2w.cjs +2 -0
  22. package/dist/FileInput-Cv5K7drD.js +4 -0
  23. package/dist/FileInput-E05E9FcK.cjs +1 -0
  24. package/dist/GroupRenderer-BNf5s8mD.cjs +1 -0
  25. package/dist/GroupRenderer-CIgOBN5K.js +4 -0
  26. package/dist/ImageArrayInput-8Qgrvcbb.cjs +1 -0
  27. package/dist/ImageArrayInput-BPCMsKu1.js +5 -0
  28. package/dist/ImageArrayInput.vue_vue_type_script_setup_true_lang-BcE8UQhP.cjs +2 -0
  29. package/dist/ImageArrayInput.vue_vue_type_script_setup_true_lang-D7NOHKcL.js +322 -0
  30. package/dist/ImageInput-B4APQoOO.js +4 -0
  31. package/dist/ImageInput-Mj7_sYYX.cjs +1 -0
  32. package/dist/NumberInput-ClvWuXot.cjs +1 -0
  33. package/dist/NumberInput-Czd4poVa.js +4 -0
  34. package/dist/ObjectInput-CjB0V2zR.js +4 -0
  35. package/dist/ObjectInput-DjSJwhGr.cjs +1 -0
  36. package/dist/PasswordInput-DRh06StM.js +4 -0
  37. package/dist/PasswordInput-DTfrmgOD.cjs +1 -0
  38. package/dist/RateInput-BtyyMCbk.cjs +1 -0
  39. package/dist/RateInput-D5fJbQZN.js +4 -0
  40. package/dist/TabelData-BYu-G2SR.cjs +1 -0
  41. package/dist/TabelData-Dh93tqPE.js +2437 -0
  42. package/dist/TagInput-BzVaBoUE.cjs +1 -0
  43. package/dist/TagInput-CCAXe9xT.js +4 -0
  44. package/dist/TelInput-CbIiq52O.js +4 -0
  45. package/dist/TelInput-mPzO-Dus.cjs +1 -0
  46. package/dist/TextAreaInput-CfYiwJ4X.js +4 -0
  47. package/dist/TextAreaInput-Cs1aCwDH.cjs +1 -0
  48. package/dist/TextAreaQuill-DnN9J7_3.cjs +1 -0
  49. package/dist/TextAreaQuill-qInAEeeB.js +600 -0
  50. package/dist/TextInput-BlJmRFwH.cjs +1 -0
  51. package/dist/TextInput-DK78fqLR.js +4 -0
  52. package/dist/TimeInput-BrjXbwHE.cjs +1 -0
  53. package/dist/TimeInput-fS0dhh7j.js +4 -0
  54. package/dist/ToggleInput-CCNu8DT9.cjs +1 -0
  55. package/dist/ToggleInput-Dz5NPH5L.js +4 -0
  56. package/dist/UrlInput-BVJivcaK.js +4 -0
  57. package/dist/UrlInput-BbVaLK_E.cjs +1 -0
  58. package/dist/init.cjs.js +1 -1
  59. package/dist/init.es.js +1 -1
  60. package/dist/jsgd-vue-pack.cjs.js +1 -1
  61. package/dist/jsgd-vue-pack.es.js +1640 -310
  62. package/dist/plugin/vue.cjs.js +1 -1
  63. package/dist/plugin/vue.es.js +48 -41
  64. package/dist/resize-B2mDlzAG.cjs +12 -0
  65. package/dist/resize-DgY2sl-h.js +5942 -0
  66. package/dist/types/components/Form/composables/useFormModal.d.ts +9 -0
  67. package/dist/types/components/Tabel/TabelData.vue.d.ts +5 -4
  68. package/dist/types/components/Tabel/composables/useTableLogic.d.ts +0 -1
  69. package/dist/types/components/UI/Feedback/WarningForm.vue.d.ts +1 -1
  70. package/dist/types/components/UI/Inputs/CurrencyInput.vue.d.ts +13 -0
  71. package/dist/types/components/UI/Inputs/FileInput.vue.d.ts +2 -2
  72. package/dist/types/components/UI/Inputs/ImageInput.vue.d.ts +2 -2
  73. package/dist/types/components/UI/Inputs/RateInput.vue.d.ts +9 -0
  74. package/dist/types/components/UI/Inputs/TelInput.vue.d.ts +13 -0
  75. package/dist/types/components/UI/Inputs/TextAreaQuill.vue.d.ts +3 -3
  76. package/dist/types/components/UI/Inputs/components/QuillAltModal.vue.d.ts +12 -0
  77. package/dist/types/components/UI/Inputs/components/QuillEmbedModal.vue.d.ts +23 -0
  78. package/dist/types/components/UI/Inputs/composables/index.d.ts +1 -0
  79. package/dist/types/components/UI/Inputs/composables/useCurrencyInput.d.ts +11 -0
  80. package/dist/types/components/UI/Inputs/index.d.ts +3 -0
  81. package/dist/types/configs/types/field.types.d.ts +50 -4
  82. package/dist/types/configs/types/globalText.types.d.ts +2 -1
  83. package/dist/types/configs/types/props.types.d.ts +53 -2
  84. package/dist/types/configs/types/schema.types.d.ts +3 -2
  85. package/dist/types/configs/types/table-data.types.d.ts +3 -11
  86. package/dist/types/lib/demoData.d.ts +313 -0
  87. package/dist/types/lib/index.d.ts +1 -0
  88. package/dist/types/schemas/CQ.d.ts +2 -0
  89. package/dist/types/schemas/TestSchema.d.ts +2 -1
  90. package/dist/types/schemas/categories.d.ts +2 -0
  91. package/dist/types/schemas/colors.d.ts +2 -0
  92. package/dist/types/schemas/expenditure.d.ts +2 -0
  93. package/dist/types/schemas/income.d.ts +9 -0
  94. package/dist/types/schemas/index.d.ts +16 -1
  95. package/dist/types/schemas/model.d.ts +2 -0
  96. package/dist/types/schemas/news.d.ts +2 -0
  97. package/dist/types/schemas/order.d.ts +2 -0
  98. package/dist/types/schemas/page.d.ts +2 -0
  99. package/dist/types/schemas/promo.d.ts +2 -0
  100. package/dist/types/schemas/qna.d.ts +2 -0
  101. package/dist/types/schemas/rate.d.ts +2 -0
  102. package/dist/types/schemas/service.d.ts +2 -0
  103. package/dist/types/schemas/subTools.d.ts +2 -0
  104. package/dist/types/schemas/tools.d.ts +2 -0
  105. package/dist/types/untils/regex.d.ts +1 -0
  106. package/dist/types/validate/validate.d.ts +2 -2
  107. package/dist/vue-pack.css +1 -1
  108. package/package.json +11 -4
  109. package/dist/TabelData-CbLGhrj4.js +0 -2266
  110. package/dist/TabelData-DG4yH_Qq.cjs +0 -1
  111. package/dist/quill.snow-BmRPvQLR.cjs +0 -15
  112. package/dist/quill.snow-mC12o3kU.js +0 -6400
@@ -0,0 +1,600 @@
1
+ import { defineComponent as Q, ref as r, computed as M, watch as V, createBlock as D, openBlock as i, Transition as B, withCtx as C, createElementBlock as c, createCommentVNode as f, withModifiers as O, createVNode as P, createElementVNode as e, toDisplayString as I, normalizeClass as A, withDirectives as _, vModelText as R, withKeys as G, inject as ee, onMounted as te, onUnmounted as se, Teleport as le, createTextVNode as F, unref as de, Fragment as ae, renderList as oe } from "vue";
2
+ import N from "dompurify";
3
+ import { ab as H, U as ne, z as re, a9 as E, a as ie } from "./resize-DgY2sl-h.js";
4
+ import "lodash.isequal";
5
+ import "zod";
6
+ const ge = { class: "jsgd-w-full jsgd-max-w-md jsgd-bg-white jsgd-rounded-xl jsgd-shadow-2xl jsgd-overflow-hidden dark:jsgd-bg-slate-800" }, ue = { class: "jsgd-p-5 jsgd-border-b jsgd-border-slate-200 dark:jsgd-border-slate-700" }, je = { class: "jsgd-text-lg jsgd-font-bold jsgd-text-slate-900 dark:jsgd-text-slate-100" }, ce = { class: "jsgd-p-5 jsgd-flex jsgd-flex-col jsgd-gap-5" }, me = {
7
+ key: 0,
8
+ class: "jsgd-flex jsgd-w-full jsgd-p-1 jsgd-bg-slate-100 jsgd-rounded-lg dark:jsgd-bg-slate-700"
9
+ }, be = { key: 1 }, ve = {
10
+ key: 2,
11
+ class: "jsgd-box-border"
12
+ }, pe = ["placeholder"], xe = { key: 3 }, fe = ["accept"], he = {
13
+ key: 0,
14
+ class: "jsgd-mt-4"
15
+ }, ke = ["src"], we = { key: 4 }, ye = { class: "jsgd-p-4 jsgd-bg-slate-50 jsgd-flex jsgd-justify-end jsgd-gap-3 dark:jsgd-bg-slate-900/50" }, qe = ["disabled"], Ue = { key: 0 }, Te = { key: 1 }, Le = /* @__PURE__ */ Q({
16
+ __name: "QuillEmbedModal",
17
+ props: {
18
+ show: { type: Boolean },
19
+ mode: {},
20
+ uploadUrl: {},
21
+ initialValue: {},
22
+ initialText: {}
23
+ },
24
+ emits: ["close", "submit"],
25
+ setup(g, { emit: S }) {
26
+ const s = g, h = S, l = r(""), m = r(""), b = r(null), k = r(""), v = r(null), p = r(!1), u = r("url"), w = M(() => !!s.uploadUrl), z = M(() => {
27
+ switch (s.mode) {
28
+ case "image":
29
+ return "Insert Image";
30
+ case "video":
31
+ return "Embed Video";
32
+ case "link":
33
+ return "Insert Link";
34
+ default:
35
+ return "Insert Media";
36
+ }
37
+ }), j = M(() => s.mode === "video" ? "e.g., YouTube, Vimeo URL" : "https://...");
38
+ V(
39
+ () => s.show,
40
+ (x) => {
41
+ x && (u.value = w.value ? "upload" : "url", l.value = s.initialValue || "", k.value = s.initialText || "", m.value = "", b.value = null, v.value = null, p.value = !1);
42
+ }
43
+ );
44
+ function U() {
45
+ h("close");
46
+ }
47
+ function T(x) {
48
+ const d = x.target;
49
+ if (d.files && d.files[0] && (b.value = d.files[0], s.mode === "image")) {
50
+ const n = new FileReader();
51
+ n.onload = (L) => {
52
+ v.value = L.target?.result;
53
+ }, n.readAsDataURL(b.value);
54
+ }
55
+ }
56
+ async function $() {
57
+ p.value = !0;
58
+ try {
59
+ if (u.value === "upload" && w.value) {
60
+ if (!b.value) {
61
+ alert("Please select a file to upload.");
62
+ return;
63
+ }
64
+ if (!s.uploadUrl) {
65
+ alert("Upload API URL is not configured.");
66
+ return;
67
+ }
68
+ const x = new FormData();
69
+ x.append("file", b.value);
70
+ const d = await fetch(s.uploadUrl, { method: "POST", body: x });
71
+ if (!d.ok) throw new Error("Upload failed");
72
+ const n = await d.json(), L = n.url || n.secure_url || n.path || n.data?.url || n.data?.path || n.data?.secure_url;
73
+ if (!L) throw new Error("URL not found in upload response");
74
+ h("submit", { url: L, alt: m.value, text: k.value });
75
+ } else {
76
+ if (!l.value) {
77
+ alert("Please enter a URL.");
78
+ return;
79
+ }
80
+ h("submit", { url: l.value, alt: m.value, text: k.value });
81
+ }
82
+ } catch (x) {
83
+ console.error(x), alert(x.message || "An error occurred.");
84
+ } finally {
85
+ p.value = !1;
86
+ }
87
+ }
88
+ return (x, d) => (i(), D(B, {
89
+ name: "jsgd-modal-overlay",
90
+ appear: ""
91
+ }, {
92
+ default: C(() => [
93
+ g.show ? (i(), c("div", {
94
+ key: 0,
95
+ class: "jsgd-fixed jsgd-inset-0 jsgd-z-[10000000] jsgd-flex jsgd-items-center jsgd-justify-center jsgd-p-4 jsgd-bg-black/60 jsgd-backdrop-blur-sm",
96
+ onClick: O(U, ["self"])
97
+ }, [
98
+ P(B, {
99
+ name: "jsgd-modal-container",
100
+ appear: ""
101
+ }, {
102
+ default: C(() => [
103
+ e("div", ge, [
104
+ e("div", ue, [
105
+ e("h3", je, I(z.value), 1)
106
+ ]),
107
+ e("div", ce, [
108
+ w.value && g.mode !== "link" ? (i(), c("div", me, [
109
+ e("button", {
110
+ onClick: d[0] || (d[0] = (n) => u.value = "upload"),
111
+ class: A([
112
+ "jsgd-flex-1 jsgd-py-1.5 jsgd-px-3 jsgd-text-sm jsgd-font-semibold jsgd-rounded-md jsgd-transition-colors jsgd-duration-200",
113
+ u.value === "upload" ? "jsgd-bg-white jsgd-text-blue-600 jsgd-shadow-sm dark:jsgd-bg-slate-600 dark:jsgd-text-white" : "jsgd-bg-transparent jsgd-text-slate-500 hover:jsgd-text-slate-700 dark:jsgd-text-slate-400 dark:hover:jsgd-text-slate-200"
114
+ ])
115
+ }, " Upload ", 2),
116
+ e("button", {
117
+ onClick: d[1] || (d[1] = (n) => u.value = "url"),
118
+ class: A([
119
+ "jsgd-flex-1 jsgd-py-1.5 jsgd-px-3 jsgd-text-sm jsgd-font-semibold jsgd-rounded-md jsgd-transition-colors jsgd-duration-200",
120
+ u.value === "url" ? "jsgd-bg-white jsgd-text-blue-600 jsgd-shadow-sm dark:jsgd-bg-slate-600 dark:jsgd-text-white" : "jsgd-bg-transparent jsgd-text-slate-500 hover:jsgd-text-slate-700 dark:jsgd-text-slate-400 dark:hover:jsgd-text-slate-200"
121
+ ])
122
+ }, " From URL ", 2)
123
+ ])) : f("", !0),
124
+ g.mode === "link" ? (i(), c("div", be, [
125
+ d[5] || (d[5] = e("label", { class: "jsgd-block jsgd-text-sm jsgd-font-medium jsgd-mb-1 dark:jsgd-text-slate-300" }, "Text to display", -1)),
126
+ _(e("input", {
127
+ "onUpdate:modelValue": d[2] || (d[2] = (n) => k.value = n),
128
+ type: "text",
129
+ placeholder: "If empty, URL will be shown",
130
+ class: "jsgd-w-full jsgd-py-2 jsgd-px-3 jsgd-rounded-md jsgd-border jsgd-border-slate-300 dark:jsgd-bg-slate-700 dark:jsgd-border-slate-600 dark:jsgd-text-white"
131
+ }, null, 512), [
132
+ [R, k.value]
133
+ ])
134
+ ])) : f("", !0),
135
+ u.value === "url" || g.mode === "link" ? (i(), c("div", ve, [
136
+ d[6] || (d[6] = e("label", { class: "jsgd-block jsgd-text-sm jsgd-font-medium jsgd-mb-1 dark:jsgd-text-slate-300" }, "URL", -1)),
137
+ _(e("input", {
138
+ "onUpdate:modelValue": d[3] || (d[3] = (n) => l.value = n),
139
+ type: "text",
140
+ placeholder: j.value,
141
+ class: "jsgd-w-full jsgd-py-2 jsgd-px-3 jsgd-rounded-md jsgd-border jsgd-border-slate-300 dark:jsgd-bg-slate-700 dark:jsgd-border-slate-600 dark:jsgd-text-white",
142
+ onKeydown: G($, ["enter"])
143
+ }, null, 40, pe), [
144
+ [R, l.value]
145
+ ])
146
+ ])) : f("", !0),
147
+ u.value === "upload" && w.value ? (i(), c("div", xe, [
148
+ d[7] || (d[7] = e("label", { class: "jsgd-block jsgd-text-sm jsgd-font-medium jsgd-mb-1 dark:jsgd-text-slate-300" }, "Upload File", -1)),
149
+ e("input", {
150
+ type: "file",
151
+ accept: g.mode === "image" ? "image/*" : "video/*",
152
+ onChange: T,
153
+ class: "jsgd-w-full jsgd-text-sm jsgd-text-slate-500 file:jsgd-mr-4 file:jsgd-py-2 file:jsgd-px-4 file:jsgd-rounded-full file:jsgd-border-0 file:jsgd-text-sm file:jsgd-font-semibold file:jsgd-bg-blue-50 file:jsgd-text-blue-700 hover:file:jsgd-bg-blue-100 dark:file:jsgd-bg-blue-900/50 dark:file:jsgd-text-blue-300 dark:hover:file:jsgd-bg-blue-900"
154
+ }, null, 40, fe),
155
+ v.value ? (i(), c("div", he, [
156
+ e("img", {
157
+ src: v.value,
158
+ class: "jsgd-max-w-full jsgd-max-h-40 jsgd-rounded-md",
159
+ alt: "Upload Preview"
160
+ }, null, 8, ke)
161
+ ])) : f("", !0)
162
+ ])) : f("", !0),
163
+ g.mode === "image" ? (i(), c("div", we, [
164
+ d[8] || (d[8] = e("label", { class: "jsgd-block jsgd-text-sm jsgd-font-medium jsgd-mb-1 dark:jsgd-text-slate-300" }, "Alt Text (Optional)", -1)),
165
+ _(e("input", {
166
+ "onUpdate:modelValue": d[4] || (d[4] = (n) => m.value = n),
167
+ type: "text",
168
+ placeholder: "Describe the image for accessibility",
169
+ class: "jsgd-w-full jsgd-py-2 jsgd-px-3 jsgd-rounded-md jsgd-border jsgd-border-slate-300 dark:jsgd-bg-slate-700 dark:jsgd-border-slate-600 dark:jsgd-text-white"
170
+ }, null, 512), [
171
+ [R, m.value]
172
+ ])
173
+ ])) : f("", !0)
174
+ ]),
175
+ e("div", ye, [
176
+ e("button", {
177
+ onClick: U,
178
+ class: "jsgd-px-4 jsgd-py-2 jsgd-rounded-md jsgd-text-sm jsgd-font-medium jsgd-bg-white jsgd-border jsgd-border-slate-300 hover:jsgd-bg-slate-50 dark:jsgd-bg-slate-700 dark:jsgd-text-slate-200 dark:jsgd-border-slate-600 dark:hover:jsgd-bg-slate-600"
179
+ }, " Cancel "),
180
+ e("button", {
181
+ onClick: $,
182
+ class: "jsgd-px-4 jsgd-py-2 jsgd-rounded-md jsgd-text-sm jsgd-font-medium jsgd-text-white jsgd-bg-blue-600 hover:jsgd-bg-blue-700 dark:jsgd-bg-blue-500 dark:hover:jsgd-bg-blue-600",
183
+ disabled: p.value
184
+ }, [
185
+ p.value ? (i(), c("span", Ue, "Inserting...")) : (i(), c("span", Te, "Insert"))
186
+ ], 8, qe)
187
+ ])
188
+ ])
189
+ ]),
190
+ _: 1
191
+ })
192
+ ])) : f("", !0)
193
+ ]),
194
+ _: 1
195
+ }));
196
+ }
197
+ }), Me = /* @__PURE__ */ H(Le, [["__scopeId", "data-v-e9ba68c4"]]), Se = { class: "jsgd-w-full jsgd-max-w-sm jsgd-bg-white jsgd-rounded-xl jsgd-shadow-2xl jsgd-overflow-hidden dark:jsgd-bg-slate-800" }, $e = { class: "jsgd-p-5 jsgd-flex jsgd-flex-col jsgd-gap-4" }, Ie = /* @__PURE__ */ Q({
198
+ __name: "QuillAltModal",
199
+ props: {
200
+ show: { type: Boolean },
201
+ initialValue: {}
202
+ },
203
+ emits: ["close", "submit"],
204
+ setup(g, { emit: S }) {
205
+ const s = g, h = S, l = r("");
206
+ V(
207
+ () => s.show,
208
+ (k) => {
209
+ k && (l.value = s.initialValue || "");
210
+ }
211
+ );
212
+ function m() {
213
+ h("close");
214
+ }
215
+ function b() {
216
+ h("submit", l.value);
217
+ }
218
+ return (k, v) => (i(), D(B, {
219
+ name: "jsgd-modal-overlay",
220
+ appear: ""
221
+ }, {
222
+ default: C(() => [
223
+ g.show ? (i(), c("div", {
224
+ key: 0,
225
+ class: "jsgd-fixed jsgd-inset-0 jsgd-z-[10001] jsgd-flex jsgd-items-center jsgd-justify-center jsgd-p-4 jsgd-bg-black/60 jsgd-backdrop-blur-sm",
226
+ onClick: O(m, ["self"])
227
+ }, [
228
+ P(B, {
229
+ name: "jsgd-modal-container",
230
+ appear: ""
231
+ }, {
232
+ default: C(() => [
233
+ e("div", Se, [
234
+ v[3] || (v[3] = e("div", { class: "jsgd-p-5 jsgd-border-b jsgd-border-slate-200 dark:jsgd-border-slate-700" }, [
235
+ e("h3", { class: "jsgd-text-lg jsgd-font-bold jsgd-text-slate-900 dark:jsgd-text-slate-100" }, " Edit Image Alt Text ")
236
+ ], -1)),
237
+ e("div", $e, [
238
+ e("div", null, [
239
+ v[1] || (v[1] = e("label", { class: "jsgd-block jsgd-text-sm jsgd-font-medium jsgd-mb-1 dark:jsgd-text-slate-300" }, "Alt Text", -1)),
240
+ _(e("input", {
241
+ "onUpdate:modelValue": v[0] || (v[0] = (p) => l.value = p),
242
+ type: "text",
243
+ placeholder: "Describe the image for accessibility",
244
+ class: "jsgd-w-full jsgd-py-2 jsgd-px-3 jsgd-rounded-md jsgd-border jsgd-border-slate-300 dark:jsgd-bg-slate-700 dark:jsgd-border-slate-600 dark:jsgd-text-white",
245
+ onKeydown: G(b, ["enter"])
246
+ }, null, 544), [
247
+ [R, l.value]
248
+ ]),
249
+ v[2] || (v[2] = e("p", { class: "jsgd-text-xs jsgd-text-slate-500 jsgd-mt-2 dark:jsgd-text-slate-400" }, " Good alt text is descriptive and helps screen readers understand the image content. ", -1))
250
+ ])
251
+ ]),
252
+ e("div", { class: "jsgd-p-4 jsgd-bg-slate-50 jsgd-flex jsgd-justify-end jsgd-gap-3 dark:jsgd-bg-slate-900/50" }, [
253
+ e("button", {
254
+ onClick: m,
255
+ class: "jsgd-px-4 jsgd-py-2 jsgd-rounded-md jsgd-text-sm jsgd-font-medium jsgd-bg-white jsgd-border jsgd-border-slate-300 hover:jsgd-bg-slate-50 dark:jsgd-bg-slate-700 dark:jsgd-text-slate-200 dark:jsgd-border-slate-600 dark:hover:jsgd-bg-slate-600"
256
+ }, " Cancel "),
257
+ e("button", {
258
+ onClick: b,
259
+ class: "jsgd-px-4 jsgd-py-2 jsgd-rounded-md jsgd-text-sm jsgd-font-medium jsgd-text-white jsgd-bg-blue-600 hover:jsgd-bg-blue-700 dark:jsgd-bg-blue-500 dark:hover:jsgd-bg-blue-600"
260
+ }, " Save ")
261
+ ])
262
+ ])
263
+ ]),
264
+ _: 1
265
+ })
266
+ ])) : f("", !0)
267
+ ]),
268
+ _: 1
269
+ }));
270
+ }
271
+ }), Ve = /* @__PURE__ */ H(Ie, [["__scopeId", "data-v-4b0d2e4a"]]), Ae = { class: "editor-header" }, Ce = ["for"], ze = ["id"], Ee = { class: "ql-formats" }, _e = {
272
+ key: 0,
273
+ viewBox: "0 0 18 18",
274
+ width: "18",
275
+ height: "18"
276
+ }, Re = {
277
+ key: 1,
278
+ viewBox: "0 0 18 18",
279
+ width: "18",
280
+ height: "18"
281
+ }, De = { class: "editor-relative-container" }, Be = {
282
+ key: 0,
283
+ class: "upload-overlay"
284
+ }, Pe = ["id"], Fe = {
285
+ key: 1,
286
+ class: "error-message"
287
+ }, Qe = /* @__PURE__ */ Q({
288
+ __name: "TextAreaQuill",
289
+ props: {
290
+ id: { default: () => ne() },
291
+ label: {},
292
+ placeholder: {},
293
+ modelValue: {},
294
+ error: {},
295
+ disabled: { type: Boolean },
296
+ lang: {},
297
+ validate: {},
298
+ apiUploadImage: {},
299
+ apiUploadVideo: {}
300
+ },
301
+ emits: ["update:modelValue", "push:error", "remove:error"],
302
+ setup(g, { emit: S }) {
303
+ const s = g, h = S;
304
+ let l = null;
305
+ const m = r(!1), b = r([]), k = r(!1), v = r(""), p = r(!1), u = r("link"), w = r(""), z = r("");
306
+ let j = null;
307
+ const U = r(!1), T = r(null), $ = r(""), x = ee("TableComponents", {
308
+ labels: r(re[s.lang ?? "en"])
309
+ }), d = M(
310
+ () => s.placeholder ?? x.labels.value.placeholder?.quillEditor ?? "Write content here..."
311
+ ), n = M(() => {
312
+ const a = [];
313
+ return s.validate?.minLength && a.push(E("textMinLength", { min: String(s.validate.minLength) }, s.lang)), s.validate?.maxLength && a.push(E("textMaxLength", { max: String(s.validate.maxLength) }, s.lang)), a.join(", ");
314
+ }), L = () => {
315
+ m.value = !m.value;
316
+ };
317
+ V(m, (a) => {
318
+ document.body.style.overflow = a ? "hidden" : "";
319
+ }), V(
320
+ () => ({
321
+ val: s.modelValue,
322
+ disabled: s.disabled,
323
+ validate: s.validate
324
+ }),
325
+ ({ val: a, disabled: t, validate: o }) => {
326
+ if (t) {
327
+ b.value = [], h("remove:error", s.id);
328
+ return;
329
+ }
330
+ const y = String(a ?? "").replace(/<[^>]*>?/gm, "").trim(), q = [];
331
+ o && (o.minLength && y.length < o.minLength && y.length !== 0 && q.push(
332
+ E("textMinLength", { min: String(o.minLength) }, s.lang ?? "en")
333
+ ), o.maxLength && y.length > o.maxLength && q.push(
334
+ E("textMaxLength", { max: String(o.maxLength) }, s.lang ?? "en")
335
+ )), b.value = q, q.length ? h("push:error", q, s.id) : h("remove:error", s.id);
336
+ },
337
+ { deep: !0, immediate: !0 }
338
+ );
339
+ const K = M(() => {
340
+ if (u.value === "image") return s.apiUploadImage;
341
+ if (u.value === "video") return s.apiUploadVideo;
342
+ }), W = () => {
343
+ u.value = "image", w.value = "", p.value = !0;
344
+ }, Y = () => {
345
+ u.value = "video", w.value = "", p.value = !0;
346
+ }, J = (a) => {
347
+ j = l?.getSelection(), j || (j = { index: l?.getSelection(!0)?.index || 0, length: 0 });
348
+ const t = l?.getText(j.index, j.length) || "";
349
+ z.value = t, w.value = typeof a == "string" ? a : "", u.value = "link", p.value = !0;
350
+ }, X = (a) => {
351
+ if (l) {
352
+ if (p.value = !1, u.value === "link") {
353
+ if (!j) return;
354
+ const t = a.text || a.url;
355
+ l.setSelection(j.index, j.length, "silent"), j.length > 0 && l.deleteText(j.index, j.length, "user"), l.insertText(j.index, t, "link", a.url, "user"), l.setSelection(j.index + t.length, 0, "user");
356
+ } else if (u.value === "image") {
357
+ const t = l.getSelection(!0), o = a.alt?.replace(/"/g, "&quot;") || "", y = `<img src="${a.url}" alt="${o}" />`;
358
+ l.clipboard.dangerouslyPasteHTML(t.index, y, "user"), l.setSelection(t.index + 1, 0);
359
+ } else if (u.value === "video") {
360
+ const t = l.getSelection(!0);
361
+ l.insertEmbed(t.index, "video", a.url, "user"), l.setSelection(t.index + 1, 0);
362
+ }
363
+ j = null;
364
+ }
365
+ }, Z = (a) => {
366
+ T.value && T.value.setAttribute("alt", a), U.value = !1, T.value = null;
367
+ };
368
+ return te(async () => {
369
+ if (typeof window > "u") return;
370
+ const a = document.getElementById(`editor-container-${s.id}`);
371
+ if (!a) return;
372
+ const { default: t } = await import("quill");
373
+ try {
374
+ const { default: o } = await import("quill-resize-module");
375
+ t.register("modules/resize", o);
376
+ } catch (o) {
377
+ console.warn("Resize module error", o);
378
+ }
379
+ l = new t(a, {
380
+ theme: "snow",
381
+ readOnly: s.disabled ?? !1,
382
+ placeholder: d.value,
383
+ modules: {
384
+ toolbar: {
385
+ container: `#toolbar-container-${s.id}`,
386
+ handlers: { image: W, video: Y, link: J }
387
+ },
388
+ resize: {
389
+ locale: {},
390
+ embedTags: ["IMG", "VIDEO", "IFRAME"],
391
+ tools: [
392
+ "left",
393
+ "center",
394
+ "right",
395
+ "full",
396
+ {
397
+ text: "Alt",
398
+ attrs: { title: "Set image alt", class: "btn-alt" },
399
+ verify: (o) => o && o.tagName === "IMG",
400
+ handler: (o, y, q) => {
401
+ T.value = q, $.value = q.getAttribute("alt") || "", U.value = !0;
402
+ }
403
+ }
404
+ ]
405
+ }
406
+ }
407
+ }), l.root.setAttribute("spellcheck", "true"), l.root.setAttribute("lang", s.lang === "id" ? "id" : "en"), s.modelValue && (l.root.innerHTML = N.sanitize(s.modelValue)), l.on("text-change", () => {
408
+ const o = l.root.innerHTML;
409
+ h("update:modelValue", N.sanitize(o), s.id);
410
+ });
411
+ }), V(
412
+ () => s.disabled,
413
+ (a) => l?.enable(!a)
414
+ ), se(() => {
415
+ document.body.style.overflow = "";
416
+ }), (a, t) => (i(), D(le, {
417
+ to: "body",
418
+ disabled: !m.value
419
+ }, [
420
+ e("div", {
421
+ class: A(["rich-text-editor-wrapper", { "editor-maximized": m.value }])
422
+ }, [
423
+ e("div", Ae, [
424
+ e("label", {
425
+ for: g.id,
426
+ class: A(["jsgd-inline-flex jsgd-items-center jsgd-gap-2 jsgd-text-sm jsgd-font-medium jsgd-mb-2 jsgd-text-slate-900 jsgd-transition-colors jsgd-duration-200 dark:jsgd-text-slate-100", { "jsgd-text-red-500 dark:jsgd-text-red-400": b.value }])
427
+ }, [
428
+ F(I(g.label) + " ", 1),
429
+ n.value ? (i(), D(de(ie), {
430
+ key: 0,
431
+ text: n.value,
432
+ as: "strong"
433
+ }, {
434
+ default: C(() => [...t[2] || (t[2] = [
435
+ F(" ❓", -1)
436
+ ])]),
437
+ _: 1
438
+ }, 8, ["text"])) : f("", !0)
439
+ ], 10, Ce)
440
+ ]),
441
+ e("div", {
442
+ id: `toolbar-container-${g.id}`,
443
+ class: "quill-toolbar"
444
+ }, [
445
+ t[5] || (t[5] = e("span", { class: "ql-formats" }, [
446
+ e("select", { class: "ql-font" }),
447
+ e("select", { class: "ql-size" })
448
+ ], -1)),
449
+ t[6] || (t[6] = e("span", { class: "ql-formats" }, [
450
+ e("button", { class: "ql-bold" }),
451
+ e("button", { class: "ql-italic" }),
452
+ e("button", { class: "ql-underline" }),
453
+ e("button", { class: "ql-strike" })
454
+ ], -1)),
455
+ t[7] || (t[7] = e("span", { class: "ql-formats" }, [
456
+ e("select", { class: "ql-color" }),
457
+ e("select", { class: "ql-background" })
458
+ ], -1)),
459
+ t[8] || (t[8] = e("span", { class: "ql-formats" }, [
460
+ e("button", {
461
+ class: "ql-header",
462
+ value: "1"
463
+ }),
464
+ e("button", {
465
+ class: "ql-header",
466
+ value: "2"
467
+ }),
468
+ e("button", { class: "ql-blockquote" }),
469
+ e("button", { class: "ql-code-block" })
470
+ ], -1)),
471
+ t[9] || (t[9] = e("span", { class: "ql-formats" }, [
472
+ e("button", {
473
+ class: "ql-list",
474
+ value: "ordered"
475
+ }),
476
+ e("button", {
477
+ class: "ql-list",
478
+ value: "bullet"
479
+ }),
480
+ e("button", {
481
+ class: "ql-indent",
482
+ value: "-1"
483
+ }),
484
+ e("button", {
485
+ class: "ql-indent",
486
+ value: "+1"
487
+ })
488
+ ], -1)),
489
+ t[10] || (t[10] = e("span", { class: "ql-formats" }, [
490
+ e("button", {
491
+ class: "ql-direction",
492
+ value: "rtl"
493
+ }),
494
+ e("select", { class: "ql-align" })
495
+ ], -1)),
496
+ t[11] || (t[11] = e("span", { class: "ql-formats" }, [
497
+ e("button", { class: "ql-link" }),
498
+ e("button", { class: "ql-image" }),
499
+ F(),
500
+ e("button", { class: "ql-video" })
501
+ ], -1)),
502
+ e("span", Ee, [
503
+ e("button", {
504
+ onClick: L,
505
+ class: "maximize-button",
506
+ type: "button"
507
+ }, [
508
+ m.value ? (i(), c("svg", Re, [...t[4] || (t[4] = [
509
+ e("rect", {
510
+ class: "ql-stroke",
511
+ x: "5",
512
+ y: "5",
513
+ width: "8",
514
+ height: "8"
515
+ }, null, -1),
516
+ e("polyline", {
517
+ class: "ql-stroke",
518
+ points: "15 3 10 8"
519
+ }, null, -1),
520
+ e("polyline", {
521
+ class: "ql-stroke",
522
+ points: "3 15 8 10"
523
+ }, null, -1)
524
+ ])])) : (i(), c("svg", _e, [...t[3] || (t[3] = [
525
+ e("rect", {
526
+ class: "ql-stroke",
527
+ x: "3",
528
+ y: "3",
529
+ width: "12",
530
+ height: "12"
531
+ }, null, -1),
532
+ e("rect", {
533
+ class: "ql-stroke",
534
+ x: "10",
535
+ y: "10",
536
+ width: "1",
537
+ height: "1"
538
+ }, null, -1),
539
+ e("rect", {
540
+ class: "ql-stroke",
541
+ x: "7",
542
+ y: "10",
543
+ width: "1",
544
+ height: "1"
545
+ }, null, -1),
546
+ e("rect", {
547
+ class: "ql-stroke",
548
+ x: "10",
549
+ y: "7",
550
+ width: "1",
551
+ height: "1"
552
+ }, null, -1),
553
+ e("rect", {
554
+ class: "ql-stroke",
555
+ x: "7",
556
+ y: "7",
557
+ width: "1",
558
+ height: "1"
559
+ }, null, -1)
560
+ ])]))
561
+ ])
562
+ ])
563
+ ], 8, ze),
564
+ e("div", De, [
565
+ k.value ? (i(), c("div", Be, [
566
+ t[12] || (t[12] = e("div", { class: "spinner" }, null, -1)),
567
+ e("p", null, "Uploading " + I(v.value) + "...", 1)
568
+ ])) : f("", !0),
569
+ e("div", {
570
+ id: `editor-container-${g.id}`,
571
+ class: A(["quill-editor-container", { "has-error": g.error }])
572
+ }, null, 10, Pe)
573
+ ]),
574
+ b.value.length !== 0 ? (i(!0), c(ae, { key: 0 }, oe(b.value, (o, y) => (i(), c("p", {
575
+ key: y,
576
+ class: "error-message"
577
+ }, I(o), 1))), 128)) : f("", !0),
578
+ typeof s.error == "string" && b.value.length === 0 ? (i(), c("p", Fe, I(g.error), 1)) : f("", !0),
579
+ P(Me, {
580
+ show: p.value,
581
+ mode: u.value,
582
+ "upload-url": K.value,
583
+ "initial-value": w.value,
584
+ "initial-text": z.value,
585
+ onClose: t[0] || (t[0] = (o) => p.value = !1),
586
+ onSubmit: X
587
+ }, null, 8, ["show", "mode", "upload-url", "initial-value", "initial-text"]),
588
+ P(Ve, {
589
+ show: U.value,
590
+ "initial-value": $.value,
591
+ onClose: t[1] || (t[1] = (o) => U.value = !1),
592
+ onSubmit: Z
593
+ }, null, 8, ["show", "initial-value"])
594
+ ], 2)
595
+ ], 8, ["disabled"]));
596
+ }
597
+ }), We = /* @__PURE__ */ H(Qe, [["__scopeId", "data-v-ca7c0d4f"]]);
598
+ export {
599
+ We as default
600
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./resize-B2mDlzAG.cjs");exports.default=e._sfc_main$18;
@@ -0,0 +1,4 @@
1
+ import { r } from "./resize-DgY2sl-h.js";
2
+ export {
3
+ r as default
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./resize-B2mDlzAG.cjs");exports.default=e._sfc_main$19;
@@ -0,0 +1,4 @@
1
+ import { t } from "./resize-DgY2sl-h.js";
2
+ export {
3
+ t as default
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./resize-B2mDlzAG.cjs");exports.default=e._sfc_main$20;
@@ -0,0 +1,4 @@
1
+ import { v as f } from "./resize-DgY2sl-h.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import { w as f } from "./resize-DgY2sl-h.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./resize-B2mDlzAG.cjs");exports.default=e._sfc_main$21;
package/dist/init.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";const d=require("./quill.snow-BmRPvQLR.cjs");function a(e){e?.indexedDB&&d.configureIndexedDB({dbName:e.indexedDB.dbName,dbVersion:e.indexedDB.dbVersion,storeSingle:e.indexedDB.storeSingle,storeArray:e.indexedDB.storeArray}),e?.i18n&&(e.i18n.languages?.forEach(({lang:r,config:i})=>{d.registerLanguage(r,i)}),e.i18n.override?.errorRequired?.forEach(({lang:r,template:i})=>{d.registerErrorMessageRequired(r,i)}),e.i18n.override?.inputMessages?.forEach(({field:r,lang:i,template:n})=>{d.registerInputMessages(r,i,n)}))}module.exports=a;
1
+ "use strict";const d=require("./resize-B2mDlzAG.cjs");function a(e){e?.indexedDB&&d.configureIndexedDB({dbName:e.indexedDB.dbName,dbVersion:e.indexedDB.dbVersion,storeSingle:e.indexedDB.storeSingle,storeArray:e.indexedDB.storeArray}),e?.i18n&&(e.i18n.languages?.forEach(({lang:r,config:i})=>{d.registerLanguage(r,i)}),e.i18n.override?.errorRequired?.forEach(({lang:r,template:i})=>{d.registerErrorMessageRequired(r,i)}),e.i18n.override?.inputMessages?.forEach(({field:r,lang:i,template:n})=>{d.registerInputMessages(r,i,n)}))}module.exports=a;
package/dist/init.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D as d, y as n, z as s, A as t } from "./quill.snow-mC12o3kU.js";
1
+ import { G as d, A as n, B as s, C as t } from "./resize-DgY2sl-h.js";
2
2
  function u(e) {
3
3
  e?.indexedDB && d({
4
4
  dbName: e.indexedDB.dbName,