sveltekit-ui 1.1.16 → 1.1.18
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/Alert/index.svelte +88 -0
- package/dist/Components/Alert/index.svelte.js +101 -0
- package/dist/Components/Audio/index.svelte +193 -0
- package/dist/Components/Audio/index.svelte.js +463 -0
- package/dist/Components/AuthCodeInput/index.svelte +85 -0
- package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
- package/dist/Components/Button/index.svelte +721 -0
- package/dist/Components/Button/index.svelte.js +375 -0
- package/dist/Components/Checkbox/index.svelte +411 -0
- package/dist/Components/Checkbox/index.svelte.js +178 -0
- package/dist/Components/Code/index.svelte +23 -0
- package/dist/Components/Code/index.svelte.js +33 -0
- package/dist/Components/EmailAddress/index.svelte +22 -0
- package/dist/Components/EmailAddress/index.svelte.js +45 -0
- package/dist/Components/Eye/index.svelte +57 -0
- package/dist/Components/Icon/index.svelte +412 -0
- package/dist/Components/Icon/index.svelte.js +116 -0
- package/dist/Components/InfoBox/index.svelte +89 -0
- package/dist/Components/Json/index.svelte +60 -0
- package/dist/Components/Json/index.svelte.js +594 -0
- package/dist/Components/Link/index.svelte +47 -0
- package/dist/Components/Link/index.svelte.js +136 -0
- package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
- package/dist/Components/Location/index.svelte +79 -0
- package/dist/Components/Location/index.svelte.js +288 -0
- package/dist/Components/PhoneNumber/index.svelte +22 -0
- package/dist/Components/PhoneNumber/index.svelte.js +41 -0
- package/dist/Components/Qr/index.svelte +85 -0
- package/dist/Components/Qr/index.svelte.js +301 -0
- package/dist/Components/QrInput/index.svelte +47 -0
- package/dist/Components/QrInput/index.svelte.js +218 -0
- package/dist/Components/Slider/index.svelte +239 -0
- package/dist/Components/Slider/index.svelte.js +469 -0
- package/dist/Components/SuccessCheck/index.svelte +56 -0
- package/dist/Components/TableAdvanced/index.svelte +275 -0
- package/dist/Components/TableAdvanced/index.svelte.js +1565 -0
- package/dist/Components/TextInput/index.svelte +223 -0
- package/dist/Components/TextInput/index.svelte.js +447 -0
- package/dist/Components/Time/index.svelte +7 -0
- package/dist/Components/Time/index.svelte.js +38 -0
- package/dist/Components/VideoTBD/index.svelte +100 -0
- package/dist/Components/XPost/index.svelte +52 -0
- package/dist/Components/XPost/index.svelte.js +64 -0
- package/package.json +1 -1
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { create_button_manager } from "../Button/index.svelte.js"
|
|
2
|
+
import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
|
|
3
|
+
import { copy_to_clipboard, create_unique_id, deep_copy, set_closurable, color_to_css } from "../../client/index.js"
|
|
4
|
+
import QRCodeStyling from "qr-code-styling"
|
|
5
|
+
|
|
6
|
+
export function create_qr_manager(config) {
|
|
7
|
+
const id = create_unique_id(null, 20)
|
|
8
|
+
let margin = $state(null)
|
|
9
|
+
let size = $state(null)
|
|
10
|
+
let display_size = $state(200)
|
|
11
|
+
let image_size = $state(null)
|
|
12
|
+
let type_number = $state(null)
|
|
13
|
+
let error_correction_level = $state(null)
|
|
14
|
+
let color = $state(null)
|
|
15
|
+
let corner_color = $state(null)
|
|
16
|
+
let background_color = $state(null)
|
|
17
|
+
let border_radius = $state(null)
|
|
18
|
+
let border_width = $state(null)
|
|
19
|
+
let border_color = $state(null)
|
|
20
|
+
let data = $state(null)
|
|
21
|
+
let image = $state(null)
|
|
22
|
+
let extension = $state(null)
|
|
23
|
+
let quality = $state(null)
|
|
24
|
+
let copy_button_manager = $state(null)
|
|
25
|
+
let download_button_manager = $state(null)
|
|
26
|
+
let extention_dropdown_manager = $state(null)
|
|
27
|
+
let qr__styling = $state(null)
|
|
28
|
+
let is_loaded = $state(false)
|
|
29
|
+
let error_message = $state(null)
|
|
30
|
+
|
|
31
|
+
let is_show_copy = $derived(set_closurable(config?.is_show_copy, false))
|
|
32
|
+
let is_show_download = $derived(set_closurable(config?.is_show_download, false))
|
|
33
|
+
|
|
34
|
+
let scale = $derived(display_size && size ? display_size / size : 0.25)
|
|
35
|
+
|
|
36
|
+
function get_options() {
|
|
37
|
+
// convert "var(--primary-t)" to css the works for qr_ download like oklch(0.67 0.26 203)
|
|
38
|
+
const color_css = get_css_variable_value(color)
|
|
39
|
+
const corner_color_css = get_css_variable_value(corner_color)
|
|
40
|
+
const background_color_css = get_css_variable_value(background_color)
|
|
41
|
+
return {
|
|
42
|
+
width: size || 500,
|
|
43
|
+
height: size || 500,
|
|
44
|
+
margin: margin || 0,
|
|
45
|
+
type: "svg", // svg,canvas
|
|
46
|
+
data: data ?? null,
|
|
47
|
+
image: image ?? null,
|
|
48
|
+
qrOptions: {
|
|
49
|
+
typeNumber: type_number, // 0-40
|
|
50
|
+
// mode: null, // 'Numeric' 'Alphanumeric' 'Byte' 'Kanji'
|
|
51
|
+
errorCorrectionLevel: error_correction_level || "Q", // 'L' 'M' 'Q' 'H'
|
|
52
|
+
},
|
|
53
|
+
dotsOptions: {
|
|
54
|
+
type: "rounded", // 'rounded' 'dots' 'classy' 'classy-rounded' 'square' 'extra-rounded'
|
|
55
|
+
color: color_css,
|
|
56
|
+
// gradient: {
|
|
57
|
+
// type: "radial", // 'linear' 'radial'
|
|
58
|
+
// rotation: 0,
|
|
59
|
+
// colorStops: [
|
|
60
|
+
// { offset: 0, color: "green" },
|
|
61
|
+
// { offset: 1, color: "yellow" },
|
|
62
|
+
// ],
|
|
63
|
+
// },
|
|
64
|
+
},
|
|
65
|
+
cornersSquareOptions: {
|
|
66
|
+
type: "extra-rounded", // 'dot' 'square' 'extra-rounded'
|
|
67
|
+
color: corner_color_css,
|
|
68
|
+
// gradient: {
|
|
69
|
+
// type: "linear", // 'linear' 'radial'
|
|
70
|
+
// rotation: 0.5,
|
|
71
|
+
// colorStops: [
|
|
72
|
+
// { offset: 0, color: corner_color_css },
|
|
73
|
+
// { offset: 1, color: corner_color_css },
|
|
74
|
+
// ],
|
|
75
|
+
// },
|
|
76
|
+
},
|
|
77
|
+
// cornersDotOptionsHelper: {
|
|
78
|
+
// type: "square", // 'dot' 'square'
|
|
79
|
+
// color: "green",
|
|
80
|
+
// gradient: {
|
|
81
|
+
// type: "linear", // 'linear' 'radial'
|
|
82
|
+
// rotation: 0,
|
|
83
|
+
// colorStops: [
|
|
84
|
+
// { offset: 0, color: "green" },
|
|
85
|
+
// { offset: 1, color: "yellow" },
|
|
86
|
+
// ],
|
|
87
|
+
// },
|
|
88
|
+
// },
|
|
89
|
+
backgroundOptions: {
|
|
90
|
+
color: background_color_css,
|
|
91
|
+
// gradient: {
|
|
92
|
+
// type: "radial",
|
|
93
|
+
// rotation: 0.5,
|
|
94
|
+
// colorStops: [
|
|
95
|
+
// { offset: 0, color: "white" },
|
|
96
|
+
// { offset: 1, color: "red" },
|
|
97
|
+
// ],
|
|
98
|
+
// },
|
|
99
|
+
},
|
|
100
|
+
imageOptions: {
|
|
101
|
+
// hideBackgroundDots: true,
|
|
102
|
+
imageSize: image_size,
|
|
103
|
+
crossOrigin: "anonymous",
|
|
104
|
+
margin: 5,
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function get_css_variable_value(input) {
|
|
110
|
+
const element = document.createElement("div")
|
|
111
|
+
document.body.appendChild(element)
|
|
112
|
+
element.style.color = input
|
|
113
|
+
const style = getComputedStyle(element)
|
|
114
|
+
const value = style.color
|
|
115
|
+
document.body.removeChild(element)
|
|
116
|
+
return value
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async function on_mount() {
|
|
120
|
+
try {
|
|
121
|
+
error_message = null
|
|
122
|
+
const options = get_options()
|
|
123
|
+
qr__styling = new QRCodeStyling(deep_copy(options))
|
|
124
|
+
let qr_el = document?.querySelector(`#qr_${id}`)
|
|
125
|
+
qr__styling.append(qr_el)
|
|
126
|
+
qr__styling.update()
|
|
127
|
+
is_loaded = true
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.error("QR Code generation error:", error)
|
|
130
|
+
error_message = "An error occurred."
|
|
131
|
+
if (error && error.startsWith("code length overflow")) {
|
|
132
|
+
error_message +=
|
|
133
|
+
" You may need to decrease the amount of data in the QR code, decrease the repetition of that data (error_correction_level), or decrease the detail of the data (type_number)."
|
|
134
|
+
}
|
|
135
|
+
is_loaded = true
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function set_options(input) {
|
|
140
|
+
margin = input?.margin ?? 10
|
|
141
|
+
size = input?.size ?? 800
|
|
142
|
+
display_size = input?.display_size ?? 200
|
|
143
|
+
image_size = input?.image_size ?? 0.5
|
|
144
|
+
type_number = input?.type_number ?? 0
|
|
145
|
+
error_correction_level = input?.error_correction_level ?? "Q"
|
|
146
|
+
color = color_to_css(input?.color ?? "var(--primary-t)")
|
|
147
|
+
corner_color = color_to_css(input?.corner_color ?? "color-mix(in oklab, var(--primary-t), var(--bg) 20%)")
|
|
148
|
+
background_color = color_to_css(input?.background_color ?? "#ffffff00")
|
|
149
|
+
border_color = color_to_css(input?.border_color ?? "var(--shadow7-t)")
|
|
150
|
+
border_radius = input?.border_radius ?? (size + 2 * margin) / 100
|
|
151
|
+
border_width = input?.border_width ?? 1
|
|
152
|
+
data = input?.data ?? null
|
|
153
|
+
image =
|
|
154
|
+
input?.image && input?.image.startsWith("<svg")
|
|
155
|
+
? `data:image/svg+xml;utf8,${encodeURIComponent(input?.image)}`
|
|
156
|
+
: input?.image ?? null
|
|
157
|
+
extension = input?.extension ?? "svg"
|
|
158
|
+
quality = input?.quality ?? 0.8
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function update(input = null) {
|
|
162
|
+
if (input) {
|
|
163
|
+
set_options(input)
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
error_message = null
|
|
167
|
+
const options = get_options()
|
|
168
|
+
qr__styling.update(deep_copy(options))
|
|
169
|
+
} catch (error) {
|
|
170
|
+
error_message = "QR Code update error:" + error
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function download() {
|
|
175
|
+
const options = get_options()
|
|
176
|
+
qr__styling.download({ name: "Qr", extension, ...options }, quality) // Options with extension and name of file (not required),
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// async function get_raw_data() {
|
|
180
|
+
// const raw_data = await qr__styling.getRawData(extension)
|
|
181
|
+
// console.log("raw_data", raw_data)
|
|
182
|
+
// }
|
|
183
|
+
|
|
184
|
+
// async function to_data_url() {
|
|
185
|
+
// const data_url = await qr__styling.toDataUrl(extension, quality) // 'png' 'jpeg' 'webp'
|
|
186
|
+
// console.log("data_url", data_url)
|
|
187
|
+
// }
|
|
188
|
+
|
|
189
|
+
function init(input) {
|
|
190
|
+
set_options(input)
|
|
191
|
+
copy_button_manager = create_button_manager({
|
|
192
|
+
type: "outlined",
|
|
193
|
+
is_uniform: true,
|
|
194
|
+
is_success_animation: true,
|
|
195
|
+
support_icon: "clipboard",
|
|
196
|
+
on_click: () => copy_to_clipboard(data),
|
|
197
|
+
})
|
|
198
|
+
download_button_manager = create_button_manager({
|
|
199
|
+
type: "outlined",
|
|
200
|
+
is_uniform: true,
|
|
201
|
+
is_success_animation: true,
|
|
202
|
+
support_icon: "download",
|
|
203
|
+
on_click: () => download(),
|
|
204
|
+
})
|
|
205
|
+
extention_dropdown_manager = create_dropdown_manager({
|
|
206
|
+
val: extension,
|
|
207
|
+
options: [
|
|
208
|
+
{ key: "svg", name: "svg" },
|
|
209
|
+
{ key: "png", name: "png" },
|
|
210
|
+
{ key: "webp", name: "webp" },
|
|
211
|
+
],
|
|
212
|
+
target_height: 130,
|
|
213
|
+
on_item_click: (input) => {
|
|
214
|
+
extension = input?.key
|
|
215
|
+
extention_dropdown_manager.set_val(input?.key)
|
|
216
|
+
},
|
|
217
|
+
})
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
init(config)
|
|
221
|
+
|
|
222
|
+
return {
|
|
223
|
+
id,
|
|
224
|
+
get margin() {
|
|
225
|
+
return margin
|
|
226
|
+
},
|
|
227
|
+
get size() {
|
|
228
|
+
return size
|
|
229
|
+
},
|
|
230
|
+
get image_size() {
|
|
231
|
+
return image_size
|
|
232
|
+
},
|
|
233
|
+
get type_number() {
|
|
234
|
+
return type_number
|
|
235
|
+
},
|
|
236
|
+
get error_correction_level() {
|
|
237
|
+
return error_correction_level
|
|
238
|
+
},
|
|
239
|
+
get color() {
|
|
240
|
+
return color
|
|
241
|
+
},
|
|
242
|
+
get corner_color() {
|
|
243
|
+
return corner_color
|
|
244
|
+
},
|
|
245
|
+
get background_color() {
|
|
246
|
+
return background_color
|
|
247
|
+
},
|
|
248
|
+
get border_radius() {
|
|
249
|
+
return border_radius
|
|
250
|
+
},
|
|
251
|
+
get border_width() {
|
|
252
|
+
return border_width
|
|
253
|
+
},
|
|
254
|
+
get border_color() {
|
|
255
|
+
return border_color
|
|
256
|
+
},
|
|
257
|
+
get data() {
|
|
258
|
+
return data
|
|
259
|
+
},
|
|
260
|
+
get image() {
|
|
261
|
+
return image
|
|
262
|
+
},
|
|
263
|
+
get extension() {
|
|
264
|
+
return extension
|
|
265
|
+
},
|
|
266
|
+
get name() {
|
|
267
|
+
return name
|
|
268
|
+
},
|
|
269
|
+
get quality() {
|
|
270
|
+
return quality
|
|
271
|
+
},
|
|
272
|
+
get is_show_copy() {
|
|
273
|
+
return is_show_copy
|
|
274
|
+
},
|
|
275
|
+
get is_show_download() {
|
|
276
|
+
return is_show_download
|
|
277
|
+
},
|
|
278
|
+
get copy_button_manager() {
|
|
279
|
+
return copy_button_manager
|
|
280
|
+
},
|
|
281
|
+
get download_button_manager() {
|
|
282
|
+
return download_button_manager
|
|
283
|
+
},
|
|
284
|
+
get extention_dropdown_manager() {
|
|
285
|
+
return extention_dropdown_manager
|
|
286
|
+
},
|
|
287
|
+
get is_loaded() {
|
|
288
|
+
return is_loaded
|
|
289
|
+
},
|
|
290
|
+
get error_message() {
|
|
291
|
+
return error_message
|
|
292
|
+
},
|
|
293
|
+
get scale() {
|
|
294
|
+
return scale
|
|
295
|
+
},
|
|
296
|
+
init,
|
|
297
|
+
on_mount,
|
|
298
|
+
download,
|
|
299
|
+
update,
|
|
300
|
+
}
|
|
301
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Popover from "../Popover/index.svelte"
|
|
3
|
+
import Button from "../Button/index.svelte"
|
|
4
|
+
import Checkbox from "../Checkbox/index.svelte"
|
|
5
|
+
import Slider from "../Slider/index.svelte"
|
|
6
|
+
import TextInput from "../TextInput/index.svelte"
|
|
7
|
+
import ColorInput from "../ColorInput/index.svelte"
|
|
8
|
+
import Dropdown from "../Dropdown/index.svelte"
|
|
9
|
+
import Qr from "../Qr/index.svelte"
|
|
10
|
+
|
|
11
|
+
let { manager } = $props()
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr)); gap: 1rem;">
|
|
15
|
+
<div>
|
|
16
|
+
<Slider manager={manager?.margin_slider_manager} />
|
|
17
|
+
<Slider manager={manager?.size_slider_manager} />
|
|
18
|
+
<Slider manager={manager?.image_size_slider_manager} />
|
|
19
|
+
<h3 class="label" style="margin: 0;">Type Number</h3>
|
|
20
|
+
<p style="font-size: 1.2rem;">The amount of squares used. 0 is auto.</p>
|
|
21
|
+
<Slider manager={manager?.type_number_slider_manager} />
|
|
22
|
+
<Slider manager={manager?.border_radius_slider_manager} />
|
|
23
|
+
<Slider manager={manager?.border_width_slider_manager} />
|
|
24
|
+
<h3 class="label" style="margin: 0;">Error Correction Level</h3>
|
|
25
|
+
<p style="font-size: 1.2rem;">Amount of data repetition in case part of Qr is not visable.</p>
|
|
26
|
+
<Dropdown manager={manager?.error_correction_level_dropdown_manager} />
|
|
27
|
+
<h3 class="label" style="margin: 0;">Color</h3>
|
|
28
|
+
<ColorInput manager={manager?.color_manager} />
|
|
29
|
+
<h3 class="label" style="margin: 0;">Corner Color</h3>
|
|
30
|
+
<ColorInput manager={manager?.corner_color_manager} />
|
|
31
|
+
<h3 class="label" style="margin: 0;">Background Color</h3>
|
|
32
|
+
<ColorInput manager={manager?.background_color_manager} />
|
|
33
|
+
<h3 class="label" style="margin: 0;">Border Color</h3>
|
|
34
|
+
<ColorInput manager={manager?.border_color_manager} />
|
|
35
|
+
<Checkbox manager={manager?.is_show_copy_checkbox_manager} />
|
|
36
|
+
<Checkbox manager={manager?.is_show_download_checkbox_manager} />
|
|
37
|
+
<TextInput manager={manager?.data_text_input_manager} />
|
|
38
|
+
<TextInput manager={manager?.image_text_input_manager} />
|
|
39
|
+
</div>
|
|
40
|
+
<div style="border: 1px solid var(--shadow4-t); border-radius: 1rem; padding: 1rem;">
|
|
41
|
+
<h2>Result</h2>
|
|
42
|
+
<Button manager={manager?.set_changes_button_manager} />
|
|
43
|
+
<div>
|
|
44
|
+
<Qr manager={manager?.qr_manager} />
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { create_color_input_manager } from "../ColorInput/index.svelte.js"
|
|
2
|
+
import { create_slider_manager } from "../Slider/index.svelte.js"
|
|
3
|
+
import { create_checkbox_manager } from "../Checkbox/index.svelte.js"
|
|
4
|
+
import { create_text_input_manager } from "../TextInput/index.svelte.js"
|
|
5
|
+
import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
|
|
6
|
+
import { create_button_manager } from "../Button/index.svelte.js"
|
|
7
|
+
import { create_qr_manager } from "../Qr/index.svelte.js"
|
|
8
|
+
|
|
9
|
+
export function create_qr_input_manager(config) {
|
|
10
|
+
let margin_slider_manager = $state(null)
|
|
11
|
+
let size_slider_manager = $state(null)
|
|
12
|
+
let image_size_slider_manager = $state(null)
|
|
13
|
+
let type_number_slider_manager = $state(null)
|
|
14
|
+
let border_radius_slider_manager = $state(null)
|
|
15
|
+
let border_width_slider_manager = $state(null)
|
|
16
|
+
let error_correction_level_dropdown_manager = $state(null)
|
|
17
|
+
let color_manager = $state(null)
|
|
18
|
+
let corner_color_manager = $state(null)
|
|
19
|
+
let background_color_manager = $state(null)
|
|
20
|
+
let border_color_manager = $state(null)
|
|
21
|
+
let data_text_input_manager = $state(null)
|
|
22
|
+
let image_text_input_manager = $state(null)
|
|
23
|
+
let is_show_copy_checkbox_manager = $state(null)
|
|
24
|
+
let is_show_download_checkbox_manager = $state(null)
|
|
25
|
+
let set_changes_button_manager = $state(null)
|
|
26
|
+
let qr_manager = $state(null)
|
|
27
|
+
|
|
28
|
+
let val = $derived({
|
|
29
|
+
margin: margin_slider_manager?.val,
|
|
30
|
+
size: size_slider_manager?.val,
|
|
31
|
+
image_size: image_size_slider_manager?.val,
|
|
32
|
+
type_number: type_number_slider_manager?.val,
|
|
33
|
+
border_radius: border_radius_slider_manager?.val,
|
|
34
|
+
border_width: border_width_slider_manager?.val,
|
|
35
|
+
error_correction_level: error_correction_level_dropdown_manager?.val,
|
|
36
|
+
color: color_manager?.val,
|
|
37
|
+
corner_color: corner_color_manager?.val,
|
|
38
|
+
background_color: background_color_manager?.val,
|
|
39
|
+
border_color: border_color_manager?.val,
|
|
40
|
+
is_show_copy: is_show_copy_checkbox_manager?.val,
|
|
41
|
+
is_show_download: is_show_download_checkbox_manager?.val,
|
|
42
|
+
data: data_text_input_manager?.val,
|
|
43
|
+
image: image_text_input_manager?.val,
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
function set_changes() {
|
|
47
|
+
qr_manager.update({ ...val, display_size: 280 })
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function init(config) {
|
|
51
|
+
margin_slider_manager = create_slider_manager({
|
|
52
|
+
label: "Margin",
|
|
53
|
+
min: 0,
|
|
54
|
+
max: 100,
|
|
55
|
+
step: 1,
|
|
56
|
+
val: config?.val?.margin ?? 40,
|
|
57
|
+
})
|
|
58
|
+
size_slider_manager = create_slider_manager({
|
|
59
|
+
label: "Size",
|
|
60
|
+
min: 100,
|
|
61
|
+
max: 2000,
|
|
62
|
+
step: 1,
|
|
63
|
+
val: config?.val?.size ?? 1000,
|
|
64
|
+
})
|
|
65
|
+
image_size_slider_manager = create_slider_manager({
|
|
66
|
+
label: "Image Size",
|
|
67
|
+
min: 0,
|
|
68
|
+
max: 1,
|
|
69
|
+
step: 0.05,
|
|
70
|
+
val: config?.val?.image_size ?? 0.5,
|
|
71
|
+
})
|
|
72
|
+
type_number_slider_manager = create_slider_manager({
|
|
73
|
+
min: 0,
|
|
74
|
+
max: 40,
|
|
75
|
+
step: 1,
|
|
76
|
+
val: config?.val?.type_number ?? 0,
|
|
77
|
+
})
|
|
78
|
+
border_radius_slider_manager = create_slider_manager({
|
|
79
|
+
label: "Border Radius",
|
|
80
|
+
min: 0,
|
|
81
|
+
max: 50,
|
|
82
|
+
step: 1,
|
|
83
|
+
val: config?.val?.border_radius ?? 10,
|
|
84
|
+
})
|
|
85
|
+
border_width_slider_manager = create_slider_manager({
|
|
86
|
+
label: "Border Width",
|
|
87
|
+
min: 0,
|
|
88
|
+
max: 10,
|
|
89
|
+
step: 1,
|
|
90
|
+
val: config?.val?.border_width ?? 5,
|
|
91
|
+
})
|
|
92
|
+
error_correction_level_dropdown_manager = create_dropdown_manager({
|
|
93
|
+
is_button_compressed: true,
|
|
94
|
+
options: [
|
|
95
|
+
{ key: "L", name: "L" },
|
|
96
|
+
{ key: "M", name: "M" },
|
|
97
|
+
{ key: "Q", name: "Q" },
|
|
98
|
+
{ key: "H", name: "H" },
|
|
99
|
+
],
|
|
100
|
+
val: config?.val?.error_correction_level ?? "Q",
|
|
101
|
+
})
|
|
102
|
+
color_manager = create_color_input_manager({
|
|
103
|
+
is_show_opacity: false,
|
|
104
|
+
is_dark_theme_invert: false,
|
|
105
|
+
l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
|
|
106
|
+
val: config?.val?.color ?? null,
|
|
107
|
+
})
|
|
108
|
+
corner_color_manager = create_color_input_manager({
|
|
109
|
+
is_show_opacity: false,
|
|
110
|
+
is_dark_theme_invert: false,
|
|
111
|
+
l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
|
|
112
|
+
val: config?.val?.corner_color ?? null,
|
|
113
|
+
})
|
|
114
|
+
background_color_manager = create_color_input_manager({
|
|
115
|
+
is_show_opacity: true,
|
|
116
|
+
is_dark_theme_invert: false,
|
|
117
|
+
l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
|
|
118
|
+
val: config?.val?.background_color ?? null,
|
|
119
|
+
})
|
|
120
|
+
border_color_manager = create_color_input_manager({
|
|
121
|
+
is_show_opacity: false,
|
|
122
|
+
is_dark_theme_invert: false,
|
|
123
|
+
l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
|
|
124
|
+
val: config?.val?.border_color ?? null,
|
|
125
|
+
})
|
|
126
|
+
is_show_copy_checkbox_manager = create_checkbox_manager({
|
|
127
|
+
type: "toggle",
|
|
128
|
+
label: "Is Show Copy",
|
|
129
|
+
val: config?.val?.is_show_copy ?? true,
|
|
130
|
+
})
|
|
131
|
+
is_show_download_checkbox_manager = create_checkbox_manager({
|
|
132
|
+
type: "toggle",
|
|
133
|
+
label: "Is Show Download",
|
|
134
|
+
val: config?.val?.is_show_download ?? true,
|
|
135
|
+
})
|
|
136
|
+
data_text_input_manager = create_text_input_manager({
|
|
137
|
+
label: "Data",
|
|
138
|
+
val: config?.val?.data ?? "https://www.sveltekit-ui.com",
|
|
139
|
+
})
|
|
140
|
+
image_text_input_manager = create_text_input_manager({
|
|
141
|
+
type: "text",
|
|
142
|
+
label: "Image Url / SVG",
|
|
143
|
+
val:
|
|
144
|
+
config?.val?.image ??
|
|
145
|
+
`<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 512 512">
|
|
146
|
+
<path id="part-2" fill="#1c82ff" fill-rule="nonzero" d="M400.3 328.6c0 22-5.6 41.7-17 59.2a113 113 0 0 1-49.6 41.2 186 186 0 0 1-77.6 14.8c-35.8 0-65.4-6.7-88.7-20.3-16.5-9.7-30-22.7-40.3-39a88.6 88.6 0 0 1-15.4-47.5c0-8.9 3-16.5 9.3-22.9 6.1-6.4 14-9.5 23.6-9.5a28 28 0 0 1 19.7 7.4c5.4 5 10 12.3 13.8 22 4.6 11.6 9.6 21.3 15 29 5.3 7.8 12.9 14.2 22.6 19.3q14.7 7.5 38.4 7.5c21.8 0 39.6-5 53.2-15.2a45.8 45.8 0 0 0 20.4-38c0-12.1-3.6-22-11-29.4a71 71 0 0 0-28.5-17.3 490 490 0 0 0-46.7-12.6c-26.1-6.1-48-13.2-65.5-21.4a106 106 0 0 1-42-33.5 86.8 86.8 0 0 1-15.4-52.6c0-20 5.4-37.8 16.4-53.3a103 103 0 0 1 47.3-35.8c20.6-8.4 45-12.5 72.8-12.5 22.3 0 41.6 2.7 57.9 8.3a122 122 0 0 1 40.5 22 92 92 0 0 1 23.5 28.9c5 10 7.5 19.9 7.5 29.5 0 8.7-3.1 16.6-9.3 23.6s-14 10.6-23.2 10.6q-12.6 0-19.2-6.3a85 85 0 0 1-14.2-20.7 94 94 0 0 0-23.8-32.1c-9.3-7.7-24.1-11.5-44.6-11.5-19 0-34.3 4.1-46 12.5-11.6 8.3-17.5 18.3-17.5 30 0 7.3 2 13.6 6 19a50 50 0 0 0 16.3 13.5c7 3.8 14 6.8 21.1 9 7.1 2.1 18.8 5.2 35.2 9.4 20.5 4.8 39 10 55.6 15.8a169 169 0 0 1 42.4 21.1 86.6 86.6 0 0 1 27.3 31.3c6.5 12.7 9.7 28.2 9.7 46.5"/>
|
|
147
|
+
</svg>`,
|
|
148
|
+
})
|
|
149
|
+
qr_manager = create_qr_manager({ ...val, display_size: 280 })
|
|
150
|
+
set_changes_button_manager = create_button_manager({
|
|
151
|
+
c: 1,
|
|
152
|
+
l: 0,
|
|
153
|
+
mb: 2,
|
|
154
|
+
text: "Set Changes",
|
|
155
|
+
is_compressed: true,
|
|
156
|
+
on_click: () => set_changes(),
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
init(config)
|
|
161
|
+
|
|
162
|
+
return {
|
|
163
|
+
get val() {
|
|
164
|
+
return val
|
|
165
|
+
},
|
|
166
|
+
get margin_slider_manager() {
|
|
167
|
+
return margin_slider_manager
|
|
168
|
+
},
|
|
169
|
+
get size_slider_manager() {
|
|
170
|
+
return size_slider_manager
|
|
171
|
+
},
|
|
172
|
+
get image_size_slider_manager() {
|
|
173
|
+
return image_size_slider_manager
|
|
174
|
+
},
|
|
175
|
+
get type_number_slider_manager() {
|
|
176
|
+
return type_number_slider_manager
|
|
177
|
+
},
|
|
178
|
+
get border_radius_slider_manager() {
|
|
179
|
+
return border_radius_slider_manager
|
|
180
|
+
},
|
|
181
|
+
get border_width_slider_manager() {
|
|
182
|
+
return border_width_slider_manager
|
|
183
|
+
},
|
|
184
|
+
get error_correction_level_dropdown_manager() {
|
|
185
|
+
return error_correction_level_dropdown_manager
|
|
186
|
+
},
|
|
187
|
+
get color_manager() {
|
|
188
|
+
return color_manager
|
|
189
|
+
},
|
|
190
|
+
get corner_color_manager() {
|
|
191
|
+
return corner_color_manager
|
|
192
|
+
},
|
|
193
|
+
get background_color_manager() {
|
|
194
|
+
return background_color_manager
|
|
195
|
+
},
|
|
196
|
+
get border_color_manager() {
|
|
197
|
+
return border_color_manager
|
|
198
|
+
},
|
|
199
|
+
get data_text_input_manager() {
|
|
200
|
+
return data_text_input_manager
|
|
201
|
+
},
|
|
202
|
+
get image_text_input_manager() {
|
|
203
|
+
return image_text_input_manager
|
|
204
|
+
},
|
|
205
|
+
get is_show_copy_checkbox_manager() {
|
|
206
|
+
return is_show_copy_checkbox_manager
|
|
207
|
+
},
|
|
208
|
+
get is_show_download_checkbox_manager() {
|
|
209
|
+
return is_show_download_checkbox_manager
|
|
210
|
+
},
|
|
211
|
+
get set_changes_button_manager() {
|
|
212
|
+
return set_changes_button_manager
|
|
213
|
+
},
|
|
214
|
+
get qr_manager() {
|
|
215
|
+
return qr_manager
|
|
216
|
+
},
|
|
217
|
+
}
|
|
218
|
+
}
|