geoiq-frontend-ui-kit 2.0.2 → 2.0.4
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/components/organisms/image-editor/components/line-session-bar.d.ts +20 -0
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +9 -0
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/image-editor.types.d.ts +73 -0
- package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -1
- package/dist/components/ui/request-credits-view/component/request-credit-dialog.d.ts.map +1 -1
- package/dist/index.es100.js +147 -120
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +16 -11
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +7 -41
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +21 -10
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +7 -74
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +177 -30
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +45 -16
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +42 -20
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +22 -12
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +122 -98
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +1 -1
- package/dist/index.es110.js +33 -62
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +60 -52
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +10 -41
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +21 -11
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +42 -92
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +37 -16
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +12 -99
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +92 -13
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +13 -101
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +71 -20
- package/dist/index.es119.js.map +1 -1
- package/dist/index.es12.js +1 -1
- package/dist/index.es120.js +34 -25
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +20 -22
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +16 -45
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +11 -34
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +96 -61
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +57 -174
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +50 -17
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +2 -2
- package/dist/index.es128.js +2 -2
- package/dist/index.es129.js +1 -1
- package/dist/index.es130.js +1 -1
- package/dist/index.es131.js +2 -2
- package/dist/index.es132.js +35 -38
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +41 -7
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +88 -7
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +14 -34
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +269 -35
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +7 -2
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +23 -25
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +169 -15
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es140.js +82 -7
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +73 -21
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +3 -168
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +56 -82
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +119 -4
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +405 -56
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +25 -110
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +60 -314
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +29 -24
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +21 -64
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es150.js +36 -30
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +211 -24
- package/dist/index.es151.js.map +1 -1
- package/dist/index.es152.js +141 -35
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +141 -140
- package/dist/index.es153.js.map +1 -1
- package/dist/index.es154.js +45 -142
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +353 -45
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +14 -10
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +10 -42
- package/dist/index.es157.js.map +1 -1
- package/dist/index.es158.js +44 -5
- package/dist/index.es158.js.map +1 -1
- package/dist/index.es159.js +5 -11
- package/dist/index.es159.js.map +1 -1
- package/dist/index.es16.js +1 -1
- package/dist/index.es160.js +10 -10
- package/dist/index.es160.js.map +1 -1
- package/dist/index.es161.js +11 -2
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +2 -91
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +2 -213
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +23 -52
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +88 -33
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +52 -31
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +32 -29
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +26 -84
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +27 -111
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es170.js +97 -285
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +251 -30
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +63 -11
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +284 -82
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +29 -70
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +10 -114
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +23 -106
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +19 -82
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +63 -109
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +63 -117
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +112 -23
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +103 -18
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +86 -5
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +133 -0
- package/dist/index.es183.js.map +1 -0
- package/dist/index.es184.js +133 -0
- package/dist/index.es184.js.map +1 -0
- package/dist/index.es185.js +9 -0
- package/dist/index.es185.js.map +1 -0
- package/dist/index.es19.js +1 -1
- package/dist/index.es2.js +21 -21
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +3 -3
- package/dist/index.es22.js +1 -1
- package/dist/index.es25.js +1 -1
- package/dist/index.es27.js +1 -1
- package/dist/index.es28.js +2 -2
- package/dist/index.es30.js +1 -1
- package/dist/index.es32.js +1 -1
- package/dist/index.es33.js +1 -1
- package/dist/index.es45.js +48 -46
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +2 -2
- package/dist/index.es47.js +1 -1
- package/dist/index.es48.js +1 -1
- package/dist/index.es53.js +1 -1
- package/dist/index.es54.js +1 -1
- package/dist/index.es57.js +1 -1
- package/dist/index.es59.js +1 -1
- package/dist/index.es67.js +2 -2
- package/dist/index.es68.js +1 -1
- package/dist/index.es71.js +1 -1
- package/dist/index.es72.js +7 -7
- package/dist/index.es73.js +2 -2
- package/dist/index.es85.js +1 -1
- package/dist/index.es97.js +16 -11
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +89 -262
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +13 -87
- package/dist/index.es99.js.map +1 -1
- package/dist/styles.css +55 -0
- package/package.json +2 -1
package/dist/index.es170.js
CHANGED
|
@@ -1,289 +1,101 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
getRequestHeaders: E,
|
|
27
|
-
getCreateOptionExtraBody: d
|
|
28
|
-
} = L(), g = () => {
|
|
29
|
-
switch (e.type) {
|
|
30
|
-
case c.SINGLE_COMBOBOX:
|
|
31
|
-
return /* @__PURE__ */ t.createElement(
|
|
32
|
-
_,
|
|
33
|
-
{
|
|
34
|
-
options: e.options.map((a) => ({
|
|
35
|
-
id: a,
|
|
36
|
-
name: a
|
|
37
|
-
})),
|
|
38
|
-
value: o[e.id],
|
|
39
|
-
onChange: (a) => r(e.id, a),
|
|
40
|
-
placeholder: e.placeholder
|
|
41
|
-
}
|
|
42
|
-
);
|
|
43
|
-
case c.CREATABLE_MULTI_COMBOBOX: {
|
|
44
|
-
const a = o[e.id]?.split(",").filter(Boolean) ?? [];
|
|
45
|
-
return /* @__PURE__ */ t.createElement(
|
|
46
|
-
C,
|
|
47
|
-
{
|
|
48
|
-
fieldId: e.id,
|
|
49
|
-
optionsUrl: e.optionsUrl,
|
|
50
|
-
createOptionUrl: e.createOptionUrl,
|
|
51
|
-
optionsRequestBody: e.optionsRequestBody,
|
|
52
|
-
createOptionRequestBody: e.createOptionRequestBody,
|
|
53
|
-
createOptionValueKey: e.createOptionValueKey,
|
|
54
|
-
createOptionExtraBody: e.skipCreateOptionExtraBody ? void 0 : d,
|
|
55
|
-
requestHeaders: E,
|
|
56
|
-
urlTemplateData: o,
|
|
57
|
-
value: a,
|
|
58
|
-
onChange: (n) => r(e.id, n.length > 0 ? n.join(",") : void 0),
|
|
59
|
-
placeholder: e.placeholder,
|
|
60
|
-
minSelected: e.minSelected,
|
|
61
|
-
maxSelected: e.maxSelected
|
|
62
|
-
}
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
case c.MULTI_COMBOBOX:
|
|
66
|
-
return /* @__PURE__ */ t.createElement(
|
|
67
|
-
I,
|
|
68
|
-
{
|
|
69
|
-
options: e.options.map((a) => ({
|
|
70
|
-
label: a,
|
|
71
|
-
value: a
|
|
72
|
-
})),
|
|
73
|
-
selected: o[e.id]?.split(",") || [],
|
|
74
|
-
onChange: (a) => {
|
|
75
|
-
a.length === 0 ? r(e.id, void 0) : r(e.id, a.join(","));
|
|
76
|
-
},
|
|
77
|
-
placeholder: e.placeholder
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
case c.RADIO_GROUP:
|
|
81
|
-
return /* @__PURE__ */ t.createElement(
|
|
82
|
-
u,
|
|
83
|
-
{
|
|
84
|
-
value: o[e.id],
|
|
85
|
-
onValueChange: (a) => r(e.id, a)
|
|
86
|
-
},
|
|
87
|
-
e.options.map((a) => /* @__PURE__ */ t.createElement("div", { key: a, className: "flex items-center space-x-2" }, /* @__PURE__ */ t.createElement(p, { value: a, id: a }), /* @__PURE__ */ t.createElement(s, { variant: "body1", className: "text-light-4" }, a)))
|
|
88
|
-
);
|
|
89
|
-
case c.RADIO_GROUP_WITH_OPTIONAL_INPUT: {
|
|
90
|
-
const a = o[e.id];
|
|
91
|
-
return /* @__PURE__ */ t.createElement("div", null, /* @__PURE__ */ t.createElement(
|
|
92
|
-
u,
|
|
93
|
-
{
|
|
94
|
-
value: a?.radio_value,
|
|
95
|
-
onValueChange: (n) => r(e.id, {
|
|
96
|
-
...a,
|
|
97
|
-
radio_value: n,
|
|
98
|
-
input_value: ""
|
|
99
|
-
})
|
|
100
|
-
},
|
|
101
|
-
e.options.map((n) => /* @__PURE__ */ t.createElement("div", { key: n, className: "flex items-center space-x-2" }, /* @__PURE__ */ t.createElement(p, { value: n, id: n }), /* @__PURE__ */ t.createElement(s, { variant: "body1", className: "text-light-4" }, n)))
|
|
102
|
-
), e.inputTriggerOptionValue === a?.radio_value ? /* @__PURE__ */ t.createElement(
|
|
103
|
-
m,
|
|
104
|
-
{
|
|
105
|
-
id: e.id,
|
|
106
|
-
type: "text",
|
|
107
|
-
placeholder: e.inputFieldPlaceholder,
|
|
108
|
-
value: a?.input_value,
|
|
109
|
-
onChange: (n) => r(e.id, {
|
|
110
|
-
...a,
|
|
111
|
-
input_value: n.target.value
|
|
112
|
-
})
|
|
113
|
-
}
|
|
114
|
-
) : null);
|
|
115
|
-
}
|
|
116
|
-
case c.CHECKBOX_GROUP: {
|
|
117
|
-
const a = o[e.id];
|
|
118
|
-
return /* @__PURE__ */ t.createElement("div", { className: "flex flex-col gap-2" }, e.options.map((n) => /* @__PURE__ */ t.createElement("div", { key: n, className: "flex items-center space-x-2" }, /* @__PURE__ */ t.createElement(
|
|
119
|
-
v,
|
|
120
|
-
{
|
|
121
|
-
id: n,
|
|
122
|
-
checked: a?.split(",").includes(n),
|
|
123
|
-
onCheckedChange: (l) => {
|
|
124
|
-
l ? r(
|
|
125
|
-
e.id,
|
|
126
|
-
a ? `${a},${n}` : n
|
|
127
|
-
) : r(
|
|
128
|
-
e.id,
|
|
129
|
-
a?.split(",").filter((h) => h !== n).join(",")
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
), /* @__PURE__ */ t.createElement(s, { variant: "body1", className: "text-light-4" }, n))));
|
|
134
|
-
}
|
|
135
|
-
case c.DATE_PICKER: {
|
|
136
|
-
const a = o[e.id], n = a ? new Date(a * 1e3) : void 0;
|
|
137
|
-
return /* @__PURE__ */ t.createElement(
|
|
138
|
-
U,
|
|
139
|
-
{
|
|
140
|
-
variant: "single",
|
|
141
|
-
date: n,
|
|
142
|
-
onDateChange: (l) => {
|
|
143
|
-
l && r(e.id, Math.floor(l.valueOf() / 1e3));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
case c.LONG_TEXT:
|
|
149
|
-
return /* @__PURE__ */ t.createElement(
|
|
150
|
-
x,
|
|
151
|
-
{
|
|
152
|
-
id: e.id,
|
|
153
|
-
placeholder: e.placeholder,
|
|
154
|
-
value: o[e.id],
|
|
155
|
-
onChange: (a) => r(e.id, a.target.value)
|
|
156
|
-
}
|
|
157
|
-
);
|
|
158
|
-
case c.EMAIL:
|
|
159
|
-
return /* @__PURE__ */ t.createElement(
|
|
160
|
-
m,
|
|
161
|
-
{
|
|
162
|
-
type: "email",
|
|
163
|
-
id: e.id,
|
|
164
|
-
value: o[e.id],
|
|
165
|
-
onChange: (a) => r(e.id, a.target.value),
|
|
166
|
-
placeholder: e.placeholder,
|
|
167
|
-
prefix: /* @__PURE__ */ t.createElement(T, { className: "stroke-gray-400", size: 20 })
|
|
168
|
-
}
|
|
169
|
-
);
|
|
170
|
-
case c.SHORT_TEXT:
|
|
171
|
-
return /* @__PURE__ */ t.createElement(
|
|
172
|
-
m,
|
|
173
|
-
{
|
|
174
|
-
id: e.id,
|
|
175
|
-
type: "text",
|
|
176
|
-
placeholder: e.placeholder,
|
|
177
|
-
value: o[e.id],
|
|
178
|
-
onChange: (a) => r(e.id, a.target.value)
|
|
179
|
-
}
|
|
180
|
-
);
|
|
181
|
-
case c.MOBILE_NUMBER:
|
|
182
|
-
return /* @__PURE__ */ t.createElement(
|
|
183
|
-
m,
|
|
184
|
-
{
|
|
185
|
-
prefix: /* @__PURE__ */ t.createElement(O, { className: "stroke-gray-400", size: 20 }),
|
|
186
|
-
type: "tel",
|
|
187
|
-
id: e.id,
|
|
188
|
-
placeholder: e.placeholder,
|
|
189
|
-
value: o[e.id],
|
|
190
|
-
onChange: (a) => r(e.id, a.target.value)
|
|
191
|
-
}
|
|
192
|
-
);
|
|
193
|
-
case c.NUMBER:
|
|
194
|
-
return /* @__PURE__ */ t.createElement(
|
|
195
|
-
m,
|
|
196
|
-
{
|
|
197
|
-
type: "number",
|
|
198
|
-
inputMode: "decimal",
|
|
199
|
-
pattern: "^\\d*\\.?\\d*$",
|
|
200
|
-
id: e.id,
|
|
201
|
-
placeholder: e.placeholder,
|
|
202
|
-
value: o[e.id],
|
|
203
|
-
onChange: (a) => r(e.id, a.target.value)
|
|
204
|
-
}
|
|
205
|
-
);
|
|
206
|
-
case c.SINGLE_IMAGE_PICKER:
|
|
207
|
-
return /* @__PURE__ */ t.createElement(
|
|
208
|
-
y,
|
|
209
|
-
{
|
|
210
|
-
id: e.id,
|
|
211
|
-
onChange: (a) => r(e.id, a),
|
|
212
|
-
value: o[e.id]
|
|
213
|
-
}
|
|
214
|
-
);
|
|
215
|
-
case c.MULTI_IMAGE_PICKER:
|
|
216
|
-
return /* @__PURE__ */ t.createElement(
|
|
217
|
-
M,
|
|
218
|
-
{
|
|
219
|
-
id: e.id,
|
|
220
|
-
onChange: (a) => r(e.id, a),
|
|
221
|
-
value: o[e.id],
|
|
222
|
-
maxImages: e.max_items
|
|
223
|
-
}
|
|
224
|
-
);
|
|
225
|
-
case c.TAGGABLE_MULTI_IMAGE_PICKER:
|
|
226
|
-
return /* @__PURE__ */ t.createElement(
|
|
227
|
-
B,
|
|
228
|
-
{
|
|
229
|
-
id: e.id,
|
|
230
|
-
onChange: (a) => r(e.id, a),
|
|
231
|
-
value: o[e.id],
|
|
232
|
-
options: e.options,
|
|
233
|
-
maxImages: e.max_items
|
|
234
|
-
}
|
|
235
|
-
);
|
|
236
|
-
case c.SINGLE_VIDEO_PICKER:
|
|
237
|
-
return /* @__PURE__ */ t.createElement(
|
|
238
|
-
R,
|
|
239
|
-
{
|
|
240
|
-
id: e.id,
|
|
241
|
-
onChange: (a) => r(e.id, a),
|
|
242
|
-
value: o[e.id]
|
|
243
|
-
}
|
|
244
|
-
);
|
|
245
|
-
case c.MULTI_VIDEO_PICKER:
|
|
246
|
-
return /* @__PURE__ */ t.createElement(
|
|
247
|
-
P,
|
|
248
|
-
{
|
|
249
|
-
id: e.id,
|
|
250
|
-
onChange: (a) => r(e.id, a),
|
|
251
|
-
value: o[e.id],
|
|
252
|
-
maxVideos: e.max_items
|
|
253
|
-
}
|
|
254
|
-
);
|
|
255
|
-
case c.REPEATABLE_GROUP_FIELD:
|
|
256
|
-
return /* @__PURE__ */ t.createElement(N, { field: e });
|
|
257
|
-
case c.SINGLE_VIDEO_PICKER_WITH_INPUT:
|
|
258
|
-
return /* @__PURE__ */ t.createElement(
|
|
259
|
-
m,
|
|
260
|
-
{
|
|
261
|
-
id: e.id,
|
|
262
|
-
required: e.required,
|
|
263
|
-
type: "url",
|
|
264
|
-
placeholder: e.placeholder,
|
|
265
|
-
value: o[e.id],
|
|
266
|
-
onChange: (a) => r(e.id, a.target.value)
|
|
267
|
-
}
|
|
268
|
-
);
|
|
269
|
-
case c.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT:
|
|
270
|
-
return /* @__PURE__ */ t.createElement(
|
|
271
|
-
G,
|
|
272
|
-
{
|
|
273
|
-
id: e.id,
|
|
274
|
-
onChange: (a) => r(e.id, a),
|
|
275
|
-
value: o[e.id],
|
|
276
|
-
maxImages: e.max_items,
|
|
277
|
-
placeholder: e.placeholder
|
|
278
|
-
}
|
|
279
|
-
);
|
|
280
|
-
default:
|
|
281
|
-
return /* @__PURE__ */ t.createElement("div", null, "Unknown Field");
|
|
1
|
+
import e from "react";
|
|
2
|
+
import { Slider as n } from "./index.es30.js";
|
|
3
|
+
import { Switch as r } from "./index.es15.js";
|
|
4
|
+
import { SingleSelect as s } from "./index.es29.js";
|
|
5
|
+
import { SwatchGrid as o } from "./index.es38.js";
|
|
6
|
+
import { FONTS as i, SHAPES as h } from "./index.es143.js";
|
|
7
|
+
import { ShapeIcons as p } from "./index.es176.js";
|
|
8
|
+
import { ColorPicker as c } from "./index.es177.js";
|
|
9
|
+
import { useImageEditorPortalContainer as d } from "./index.es137.js";
|
|
10
|
+
const E = [
|
|
11
|
+
{ label: "Outline only", value: "stroke" },
|
|
12
|
+
{ label: "Solid fill", value: "fill" }
|
|
13
|
+
], x = ["line", "dashedLine"], u = [
|
|
14
|
+
{ label: "Marker", value: "round" },
|
|
15
|
+
{ label: "Highlighter", value: "highlight" }
|
|
16
|
+
];
|
|
17
|
+
function T({ ui: t, engine: a }) {
|
|
18
|
+
const m = d();
|
|
19
|
+
return /* @__PURE__ */ e.createElement("div", null, t.mode === "text" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Font"), /* @__PURE__ */ e.createElement(
|
|
20
|
+
s,
|
|
21
|
+
{
|
|
22
|
+
items: i,
|
|
23
|
+
value: t.textFont,
|
|
24
|
+
onValueChange: a.setTextFont,
|
|
25
|
+
container: m
|
|
282
26
|
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
|
|
27
|
+
), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Size"), /* @__PURE__ */ e.createElement(
|
|
28
|
+
n,
|
|
29
|
+
{
|
|
30
|
+
min: 16,
|
|
31
|
+
max: 200,
|
|
32
|
+
step: 1,
|
|
33
|
+
value: [t.textSize],
|
|
34
|
+
onValueChange: ([l]) => a.setTextSize(l)
|
|
35
|
+
}
|
|
36
|
+
)), t.mode === "shape" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Shape"), /* @__PURE__ */ e.createElement(
|
|
37
|
+
o,
|
|
38
|
+
{
|
|
39
|
+
columns: 3,
|
|
40
|
+
value: t.selectedShapeType,
|
|
41
|
+
onSelect: a.selectShapeType,
|
|
42
|
+
items: h.map((l) => ({
|
|
43
|
+
value: l.id,
|
|
44
|
+
label: l.name,
|
|
45
|
+
icon: p[l.id]
|
|
46
|
+
}))
|
|
47
|
+
}
|
|
48
|
+
), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Fill style"), /* @__PURE__ */ e.createElement(
|
|
49
|
+
s,
|
|
50
|
+
{
|
|
51
|
+
items: E,
|
|
52
|
+
value: t.shapeFill,
|
|
53
|
+
onValueChange: (l) => a.setShapeFill(l),
|
|
54
|
+
container: m
|
|
55
|
+
}
|
|
56
|
+
), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Thickness"), /* @__PURE__ */ e.createElement(
|
|
57
|
+
n,
|
|
58
|
+
{
|
|
59
|
+
min: 1,
|
|
60
|
+
max: 40,
|
|
61
|
+
step: 1,
|
|
62
|
+
value: [t.shapeWidth],
|
|
63
|
+
onValueChange: ([l]) => a.setShapeWidth(l)
|
|
64
|
+
}
|
|
65
|
+
), x.includes(t.selectedShapeType) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "my-3 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("span", { className: "block text-xs font-medium text-light-2" }, "Multi-point line"), /* @__PURE__ */ e.createElement("span", { className: "mt-0.5 block text-[11px] leading-snug text-light-4" }, "Chain corners into one continuous line")), /* @__PURE__ */ e.createElement(
|
|
66
|
+
r,
|
|
67
|
+
{
|
|
68
|
+
checked: t.multiPointMode,
|
|
69
|
+
onCheckedChange: a.setMultiPointMode
|
|
70
|
+
}
|
|
71
|
+
)), t.multiPointMode && /* @__PURE__ */ e.createElement("ul", { className: "mt-2 list-none space-y-1 rounded-md bg-light-3 px-2.5 py-2 text-[11px] leading-relaxed text-light-3" }, /* @__PURE__ */ e.createElement("li", null, "Click to place each corner"), /* @__PURE__ */ e.createElement("li", null, "Hold Shift to snap the angle"), /* @__PURE__ */ e.createElement("li", null, "Backspace undoes the last corner"), /* @__PURE__ */ e.createElement("li", null, "Double-click or Enter to finish"), /* @__PURE__ */ e.createElement("li", null, "Click the first point to close the shape"), /* @__PURE__ */ e.createElement("li", null, "Esc cancels")))), t.mode === "draw" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement("span", { className: "mb-1 block text-xs text-light-4" }, "Brush size"), /* @__PURE__ */ e.createElement(
|
|
72
|
+
n,
|
|
73
|
+
{
|
|
74
|
+
min: 1,
|
|
75
|
+
max: 60,
|
|
76
|
+
step: 1,
|
|
77
|
+
value: [t.brushSize],
|
|
78
|
+
onValueChange: ([l]) => a.setBrushSize(l)
|
|
79
|
+
}
|
|
80
|
+
), /* @__PURE__ */ e.createElement("span", { className: "mb-1 mt-2.5 block text-xs text-light-4" }, "Brush style"), /* @__PURE__ */ e.createElement(
|
|
81
|
+
s,
|
|
82
|
+
{
|
|
83
|
+
items: u,
|
|
84
|
+
value: t.brushStyle,
|
|
85
|
+
onValueChange: (l) => a.setBrushStyle(l),
|
|
86
|
+
container: m
|
|
87
|
+
}
|
|
88
|
+
)), t.mode === "sticker" && /* @__PURE__ */ e.createElement("div", { className: "mb-3.5" }, /* @__PURE__ */ e.createElement(
|
|
89
|
+
o,
|
|
90
|
+
{
|
|
91
|
+
columns: 3,
|
|
92
|
+
onSelect: a.addSticker,
|
|
93
|
+
emptyMessage: /* @__PURE__ */ e.createElement(e.Fragment, null, "No stickers configured — pass a ", /* @__PURE__ */ e.createElement("code", null, "stickers"), " prop with image URLs."),
|
|
94
|
+
items: t.stickers.map((l) => ({ value: l, thumbnail: l }))
|
|
95
|
+
}
|
|
96
|
+
)), t.mode === "text" && /* @__PURE__ */ e.createElement(c, { value: t.textColor, onChange: a.setTextColor }), t.mode === "shape" && /* @__PURE__ */ e.createElement(c, { value: t.shapeColor, onChange: a.setShapeColor }), t.mode === "draw" && /* @__PURE__ */ e.createElement(c, { value: t.drawColor, onChange: a.setDrawColor }));
|
|
97
|
+
}
|
|
286
98
|
export {
|
|
287
|
-
|
|
99
|
+
T as PanelInsert
|
|
288
100
|
};
|
|
289
101
|
//# sourceMappingURL=index.es170.js.map
|
package/dist/index.es170.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es170.js","sources":["../src/components/ui/form-renderer/components/form-fields/index.tsx"],"sourcesContent":["// components/FormField.tsx\nimport React from 'react'\nimport {\n AssetValue,\n FormField as FormFieldInterface,\n RadioGroupWithInputFieldValue,\n TaggableAssetValue,\n} from '../../form.types'\nimport { useFormValues } from '../../context/form-values'\nimport { Input } from '@/components/atoms/input'\nimport { Checkbox } from '@/components/atoms/checkbox'\nimport { RadioGroup } from '@/components/atoms/radio-group'\nimport { RadioGroupItem } from '@/components/atoms/radio-group'\nimport { MultiCombobox } from '@/components/molecules/multi-combobox'\nimport { SingleCombobox } from '@/components/molecules/single-combobox'\nimport { CreatableMultiCombobox } from '@/components/molecules/creatable-multi-combobox'\nimport { Textarea } from '@/components/atoms/textarea'\nimport { Typography } from '@/components/atoms/typography'\n\nimport { Mail, Phone } from 'lucide-react'\nimport { SingleImagePicker } from './components/single-image-picker'\nimport { SingleVideoPicker } from './components/single-video-picker'\nimport { MultiImagePicker } from './components/multi-image-picker'\nimport { MultiVideoPicker } from './components/multi-video-picker'\nimport { RepeatableGroup } from './components/repeatable-group'\nimport { TaggableMultiImagePicker } from './components/taggable-multi-image-picker'\nimport { FormFieldType } from '../../form.enums'\nimport { DatePicker } from '@/components/unstyled/date-picker'\nimport { TaggableImageUploadFieldWithInput } from './components/taggable-multi-image-picker-with-input'\n\ninterface FormFieldProps {\n field: FormFieldInterface\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({ field }) => {\n const {\n values,\n errors,\n setValue,\n getRequestHeaders,\n getCreateOptionExtraBody,\n } = useFormValues()\n\n const renderField = () => {\n switch (field.type) {\n case FormFieldType.SINGLE_COMBOBOX:\n return (\n <SingleCombobox\n options={field.options.map((option) => ({\n id: option,\n name: option,\n }))}\n value={values[field.id] as string}\n onChange={(data) => setValue(field.id, data)}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.CREATABLE_MULTI_COMBOBOX: {\n const selected =\n (values[field.id] as string)?.split(',').filter(Boolean) ?? []\n return (\n <CreatableMultiCombobox\n fieldId={field.id}\n optionsUrl={field.optionsUrl}\n createOptionUrl={field.createOptionUrl}\n optionsRequestBody={field.optionsRequestBody}\n createOptionRequestBody={field.createOptionRequestBody}\n createOptionValueKey={field.createOptionValueKey}\n createOptionExtraBody={\n field.skipCreateOptionExtraBody\n ? undefined\n : getCreateOptionExtraBody\n }\n requestHeaders={getRequestHeaders}\n urlTemplateData={values}\n value={selected}\n onChange={(data) =>\n setValue(field.id, data.length > 0 ? data.join(',') : undefined)\n }\n placeholder={field.placeholder}\n minSelected={field.minSelected}\n maxSelected={field.maxSelected}\n />\n )\n }\n\n case FormFieldType.MULTI_COMBOBOX:\n return (\n <MultiCombobox\n options={field.options.map((option) => ({\n label: option,\n value: option,\n }))}\n selected={(values[field.id] as string)?.split(',') || []}\n onChange={(data) => {\n if (data.length === 0) {\n setValue(field.id, undefined)\n } else {\n setValue(field.id, (data as string[]).join(','))\n }\n }}\n placeholder={field.placeholder}\n />\n )\n\n case FormFieldType.RADIO_GROUP:\n return (\n <RadioGroup\n value={values[field.id] as string}\n onValueChange={(data) => setValue(field.id, data)}\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n )\n\n case FormFieldType.RADIO_GROUP_WITH_OPTIONAL_INPUT: {\n const value = values[field.id] as RadioGroupWithInputFieldValue\n return (\n <div>\n <RadioGroup\n value={value?.radio_value}\n onValueChange={(data) =>\n setValue(field.id, {\n ...value,\n radio_value: data,\n input_value: '',\n })\n }\n >\n {field.options.map((option) => (\n <div key={option} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option} id={option} />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n ))}\n </RadioGroup>\n {field.inputTriggerOptionValue === value?.radio_value ? (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.inputFieldPlaceholder}\n value={value?.input_value}\n onChange={(e) =>\n setValue(field.id, {\n ...value,\n input_value: e.target.value,\n })\n }\n />\n ) : null}\n </div>\n )\n }\n\n case FormFieldType.CHECKBOX_GROUP: {\n const value = values[field.id] as string\n return (\n <div className=\"flex flex-col gap-2\">\n {field.options.map((option) => {\n return (\n <div key={option} className=\"flex items-center space-x-2\">\n <Checkbox\n id={option}\n checked={value?.split(',').includes(option)}\n onCheckedChange={(data) => {\n if (data) {\n setValue(\n field.id,\n value ? `${value},${option}` : option\n )\n } else {\n setValue(\n field.id,\n value\n ?.split(',')\n .filter((item) => item !== option)\n .join(',')\n )\n }\n }}\n />\n <Typography variant=\"body1\" className=\"text-light-4\">\n {option}\n </Typography>\n </div>\n )\n })}\n </div>\n )\n }\n\n case FormFieldType.DATE_PICKER: {\n const epochValue = values[field.id] as number | undefined\n const dateValue = epochValue ? new Date(epochValue * 1000) : undefined\n return (\n <DatePicker\n variant=\"single\"\n date={dateValue}\n onDateChange={(date) => {\n if (date) {\n setValue(field.id, Math.floor(date.valueOf() / 1000))\n }\n }}\n />\n )\n }\n\n case FormFieldType.LONG_TEXT:\n return (\n <Textarea\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n\n case FormFieldType.EMAIL:\n return (\n <Input\n type=\"email\"\n id={field.id}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n placeholder={field.placeholder}\n prefix={<Mail className=\"stroke-gray-400\" size={20} />}\n />\n )\n\n case FormFieldType.SHORT_TEXT:\n // Default string input\n return (\n <Input\n id={field.id}\n type=\"text\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.MOBILE_NUMBER:\n return (\n <Input\n prefix={<Phone className=\"stroke-gray-400\" size={20} />}\n type=\"tel\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.NUMBER:\n return (\n <Input\n // type=\"number\"\n type=\"number\"\n inputMode=\"decimal\"\n pattern=\"^\\d*\\.?\\d*$\"\n id={field.id}\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n case FormFieldType.SINGLE_IMAGE_PICKER:\n return (\n <SingleImagePicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_IMAGE_PICKER:\n return (\n <MultiImagePicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER:\n return (\n <TaggableMultiImagePicker\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n options={field.options}\n maxImages={field.max_items}\n />\n )\n\n case FormFieldType.SINGLE_VIDEO_PICKER:\n return (\n <SingleVideoPicker\n id={field.id}\n onChange={(data?: AssetValue) => setValue(field.id, data)}\n value={values[field.id] as AssetValue | undefined}\n />\n )\n\n case FormFieldType.MULTI_VIDEO_PICKER:\n return (\n <MultiVideoPicker\n id={field.id}\n onChange={(data?: AssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as AssetValue[] | undefined}\n maxVideos={field.max_items}\n />\n )\n\n case FormFieldType.REPEATABLE_GROUP_FIELD: {\n return <RepeatableGroup field={field} />\n }\n\n case FormFieldType.SINGLE_VIDEO_PICKER_WITH_INPUT: {\n return (\n <Input\n id={field.id}\n required={field.required}\n type=\"url\"\n placeholder={field.placeholder}\n value={values[field.id] as string}\n onChange={(e) => setValue(field.id, e.target.value)}\n />\n )\n }\n\n case FormFieldType.TAGGABLE_MULTI_IMAGE_PICKER_WITH_INPUT: {\n return (\n <TaggableImageUploadFieldWithInput\n id={field.id}\n onChange={(data?: TaggableAssetValue[]) => setValue(field.id, data)}\n value={values[field.id] as TaggableAssetValue[] | undefined}\n maxImages={field.max_items}\n placeholder={field.placeholder}\n />\n )\n }\n\n default:\n return <div>Unknown Field</div>\n }\n }\n\n return (\n <aside className=\"flex flex-col gap-1\">\n <Typography variant=\"body1\" className=\"text-light-2\">\n {field.name}\n {field.required && <span className=\"text-danger-1\">*</span>}\n </Typography>\n {renderField()}\n {errors[field.id] && (\n <div className=\"error-message\">{errors[field.id]}</div>\n )}\n </aside>\n )\n}\n"],"names":["FormField","field","values","errors","setValue","getRequestHeaders","getCreateOptionExtraBody","useFormValues","renderField","FormFieldType","React","SingleCombobox","option","data","selected","CreatableMultiCombobox","MultiCombobox","RadioGroup","RadioGroupItem","Typography","value","Input","e","Checkbox","item","epochValue","dateValue","DatePicker","date","Textarea","Mail","Phone","SingleImagePicker","MultiImagePicker","TaggableMultiImagePicker","SingleVideoPicker","MultiVideoPicker","RepeatableGroup","TaggableImageUploadFieldWithInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es170.js","sources":["../src/components/organisms/image-editor/components/panel-insert.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Slider } from '@/components/molecules/slider'\nimport { Switch } from '@/components/atoms/switch'\nimport { SingleSelect } from '@/components/molecules/single-select'\nimport { SwatchGrid } from '@/components/molecules/swatch-grid'\n\nimport { ImageEditorEngine, ImageEditorUiState } from '../image-editor.types'\nimport { FONTS, SHAPES } from '../picture-studio-engine'\nimport { ShapeIcons } from './shape-icons'\nimport { ColorPicker } from './color-picker'\nimport { useImageEditorPortalContainer } from './portal-context'\n\ninterface PanelInsertProps {\n ui: ImageEditorUiState\n engine: ImageEditorEngine\n}\n\nconst FILL_ITEMS = [\n { label: 'Outline only', value: 'stroke' },\n { label: 'Solid fill', value: 'fill' },\n]\nconst MULTI_POINT_SHAPES = ['line', 'dashedLine']\n\nconst BRUSH_STYLE_ITEMS = [\n { label: 'Marker', value: 'round' },\n { label: 'Highlighter', value: 'highlight' },\n]\n\nexport function PanelInsert({ ui, engine }: PanelInsertProps) {\n const container = useImageEditorPortalContainer()\n return (\n <div>\n {ui.mode === 'text' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Font</span>\n <SingleSelect\n items={FONTS}\n value={ui.textFont}\n onValueChange={engine.setTextFont}\n container={container}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">Size</span>\n <Slider\n min={16}\n max={200}\n step={1}\n value={[ui.textSize]}\n onValueChange={([v]) => engine.setTextSize(v)}\n />\n </div>\n )}\n\n {ui.mode === 'shape' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Shape</span>\n <SwatchGrid\n columns={3}\n value={ui.selectedShapeType}\n onSelect={engine.selectShapeType}\n items={SHAPES.map((s) => ({\n value: s.id,\n label: s.name,\n icon: ShapeIcons[s.id],\n }))}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Fill style\n </span>\n <SingleSelect\n items={FILL_ITEMS}\n value={ui.shapeFill}\n onValueChange={(v) => engine.setShapeFill(v as 'stroke' | 'fill')}\n container={container}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Thickness\n </span>\n <Slider\n min={1}\n max={40}\n step={1}\n value={[ui.shapeWidth]}\n onValueChange={([v]) => engine.setShapeWidth(v)}\n />\n\n {MULTI_POINT_SHAPES.includes(ui.selectedShapeType) && (\n <>\n <div className=\"my-3 h-px bg-neutral-1\" />\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <span className=\"block text-xs font-medium text-light-2\">\n Multi-point line\n </span>\n <span className=\"mt-0.5 block text-[11px] leading-snug text-light-4\">\n Chain corners into one continuous line\n </span>\n </div>\n <Switch\n checked={ui.multiPointMode}\n onCheckedChange={engine.setMultiPointMode}\n />\n </div>\n {ui.multiPointMode && (\n <ul className=\"mt-2 list-none space-y-1 rounded-md bg-light-3 px-2.5 py-2 text-[11px] leading-relaxed text-light-3\">\n <li>Click to place each corner</li>\n <li>Hold Shift to snap the angle</li>\n <li>Backspace undoes the last corner</li>\n <li>Double-click or Enter to finish</li>\n <li>Click the first point to close the shape</li>\n <li>Esc cancels</li>\n </ul>\n )}\n </>\n )}\n </div>\n )}\n\n {ui.mode === 'draw' && (\n <div className=\"mb-3.5\">\n <span className=\"mb-1 block text-xs text-light-4\">Brush size</span>\n <Slider\n min={1}\n max={60}\n step={1}\n value={[ui.brushSize]}\n onValueChange={([v]) => engine.setBrushSize(v)}\n />\n <span className=\"mb-1 mt-2.5 block text-xs text-light-4\">\n Brush style\n </span>\n <SingleSelect\n items={BRUSH_STYLE_ITEMS}\n value={ui.brushStyle}\n onValueChange={(v) =>\n engine.setBrushStyle(v as 'round' | 'highlight')\n }\n container={container}\n />\n </div>\n )}\n\n {ui.mode === 'sticker' && (\n <div className=\"mb-3.5\">\n <SwatchGrid\n columns={3}\n onSelect={engine.addSticker}\n emptyMessage={\n <>\n No stickers configured — pass a <code>stickers</code> prop with\n image URLs.\n </>\n }\n items={ui.stickers.map((src) => ({ value: src, thumbnail: src }))}\n />\n </div>\n )}\n\n {ui.mode === 'text' && (\n <ColorPicker value={ui.textColor} onChange={engine.setTextColor} />\n )}\n {ui.mode === 'shape' && (\n <ColorPicker value={ui.shapeColor} onChange={engine.setShapeColor} />\n )}\n {ui.mode === 'draw' && (\n <ColorPicker value={ui.drawColor} onChange={engine.setDrawColor} />\n )}\n </div>\n )\n}\n"],"names":["FILL_ITEMS","MULTI_POINT_SHAPES","BRUSH_STYLE_ITEMS","PanelInsert","ui","engine","container","useImageEditorPortalContainer","React","SingleSelect","FONTS","Slider","v","SwatchGrid","SHAPES","s","ShapeIcons","Switch","src","ColorPicker"],"mappings":"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"}
|