sveltekit-ui 1.0.51 → 1.0.53

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 (30) hide show
  1. package/dist/Components/Content/index.svelte.js +1 -1
  2. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -1
  3. package/dist/Components/ContentInput/AttributesInput/index.svelte +8 -0
  4. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +7 -0
  5. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +1 -1
  6. package/dist/Components/ContentInput/index.svelte +26 -2
  7. package/dist/Components/ContentInput/index.svelte.js +31 -1
  8. package/dist/Components/Qr/index.svelte +5 -2
  9. package/dist/Components/Qr/index.svelte.js +30 -30
  10. package/dist/Components/QrInput/index.svelte +45 -0
  11. package/dist/Components/QrInput/index.svelte.js +212 -0
  12. package/dist/index.js +2 -0
  13. package/package.json +5 -5
  14. package/src/lib/Components/Content/index.svelte.js +1 -1
  15. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -1
  16. package/src/lib/Components/ContentInput/AttributesInput/index.svelte +8 -0
  17. package/src/lib/Components/ContentInput/AttributesInput/index.svelte.js +7 -0
  18. package/src/lib/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +1 -1
  19. package/src/lib/Components/ContentInput/index.svelte +26 -2
  20. package/src/lib/Components/ContentInput/index.svelte.js +31 -1
  21. package/src/lib/Components/Qr/index.svelte +5 -2
  22. package/src/lib/Components/Qr/index.svelte.js +30 -30
  23. package/src/lib/Components/QrInput/index.svelte +45 -0
  24. package/src/lib/Components/QrInput/index.svelte.js +212 -0
  25. package/src/lib/index.js +2 -0
  26. package/src/routes/+layout.svelte +1 -0
  27. package/src/routes/[component]/+page.svelte +3 -1
  28. package/src/routes/[component]/Showcase/ContentInput/index.svelte +892 -107
  29. package/src/routes/[component]/Showcase/QrInput/index.svelte +38 -0
  30. package/static/favicon.svg +0 -1
@@ -885,7 +885,7 @@ export function create_content_manager(config) {
885
885
  }
886
886
  function set_focused_selector_id(input) {
887
887
  if (typeof config?.set_focused_selector_id == "function") {
888
- config?.set_focused_selector_id(input)
888
+ config?.set_focused_selector_id(input, !!input)
889
889
  }
890
890
  }
891
891
 
@@ -4,7 +4,6 @@ import { create_checkbox_manager } from "../../../../Checkbox/index.svelte.js"
4
4
  import { create_text_input_manager } from "../../../../TextInput/index.svelte.js"
5
5
  import { create_dropdown_manager } from "../../../../Dropdown/index.svelte.js"
6
6
  import { create_defined_type_input_manager } from "../../DefinedTypeInput/index.svelte.js"
7
- import { deep_copy, set_closurable } from "../../../../../client/index.js"
8
7
 
9
8
  export function create_qr_config_manager(config) {
10
9
  let margin_slider_manager = $state(null)
@@ -27,6 +27,14 @@
27
27
 
28
28
  <Popover manager={manager?.popover_manager}>
29
29
  {#snippet content()}
30
+ <div
31
+ onpointerenter={() => manager?.set_focused_selector_id(manager?.selector_id, true)}
32
+ onpointercancel={() => manager?.set_focused_selector_id(null)}
33
+ onpointerleave={() => manager?.set_focused_selector_id(null)}
34
+ >
35
+ <p class="label">Element ID</p>
36
+ <p>{manager?.selector_id}</p>
37
+ </div>
30
38
  {#if manager?.content_type == "number"}
31
39
  <NumberConfig manager={manager?.attributes_manager} />
32
40
  {:else if manager?.content_type == "dropdown"}
@@ -48,6 +48,12 @@ export function create_attributes_input_manager(config) {
48
48
  { key: "space-evenly", name: "Space Evenly" },
49
49
  ]
50
50
 
51
+ function set_focused_selector_id(input) {
52
+ if (typeof config?.set_focused_selector_id == "function") {
53
+ config?.set_focused_selector_id(input)
54
+ }
55
+ }
56
+
51
57
  function init(config) {
52
58
  val_original = set_closurable(config?.val, null)
53
59
  content_type = config?.content_type
@@ -1423,5 +1429,6 @@ export function create_attributes_input_manager(config) {
1423
1429
  return finish_button_manager
1424
1430
  },
1425
1431
  init,
1432
+ set_focused_selector_id,
1426
1433
  }
1427
1434
  }
@@ -28,7 +28,7 @@
28
28
  onpointercancel={() => manager?.set_focused_selector_id(null)}
29
29
  onpointerleave={() => manager?.set_focused_selector_id(null)}
30
30
  >
31
- <div class="el_row">
31
+ <div class="el_row" id={`selector_id_${element_manager?.element?.selector_id}`}>
32
32
  {#if element_manager?.element}
33
33
  {#if manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id && element_manager?.element?.selector_id != manager?.dragging_selector_id && !manager?.dragged_over_element_child?.is_children}
34
34
  <div class="drop_area" style="left: 0; top: 0;">Move Before Element</div>
@@ -13,9 +13,13 @@
13
13
  <div class="container">
14
14
  <div class="panel_builder">
15
15
  {#if panel_header}
16
- {@render panel_header()}
16
+ <div class="panel_header">
17
+ {@render panel_header()}
18
+ </div>
17
19
  {/if}
18
- <ContentPanelBuilder {manager} />
20
+ <div class="panel_scroll" id={`panel_scroll_${manager?.id}`}>
21
+ <ContentPanelBuilder {manager} />
22
+ </div>
19
23
  </div>
20
24
  <div class="rich_editor">
21
25
  <Content manager={manager?.content_manager} overall_manager={manager?.content_overall_manager} />
@@ -44,12 +48,32 @@
44
48
  <style>
45
49
  .container {
46
50
  display: flex;
51
+ max-height: 100dvh;
52
+ min-height: 0;
47
53
  }
48
54
  .panel_builder {
49
55
  width: 35rem;
56
+ display: flex;
57
+ flex-direction: column;
58
+ min-height: 0;
59
+ border-right: 1px solid var(--shadow7-t);
60
+ }
61
+ .panel_header {
62
+ position: sticky;
63
+ top: 0;
64
+ z-index: 1;
65
+ background: var(--bg1, #fff);
66
+ }
67
+ .panel_scroll {
68
+ overflow: auto;
69
+ min-height: 0;
70
+ -webkit-overflow-scrolling: touch;
50
71
  }
51
72
  .rich_editor {
52
73
  flex: 1;
53
74
  padding: 0 0.5rem;
75
+ overflow: auto;
76
+ min-height: 0;
77
+ -webkit-overflow-scrolling: touch;
54
78
  }
55
79
  </style>
@@ -550,8 +550,37 @@ export function create_content_input_manager(config) {
550
550
  paste_astc_markdown_popover_manager.close()
551
551
  }
552
552
 
553
- function set_focused_selector_id(selector_id) {
553
+ function scroll_to_selector_id(selector_id) {
554
+ const container = document.getElementById(`panel_scroll_${id}`)
555
+ if (!container || !selector_id) return
556
+ const el = container.querySelector(`#selector_id_${selector_id}`)
557
+ if (!el) return
558
+ const el_rect = el.getBoundingClientRect()
559
+ const c_rect = container.getBoundingClientRect()
560
+ const is_visible = el_rect.top >= c_rect.top && el_rect.bottom <= c_rect.bottom
561
+ if (!is_visible) {
562
+ el.scrollIntoView({
563
+ behavior: "smooth",
564
+ block: "center",
565
+ inline: "nearest",
566
+ })
567
+ }
568
+ }
569
+
570
+ function pulse_focus(selector_id) {
571
+ const container = document.getElementById(`panel_scroll_${id}`)
572
+ const el = container?.querySelector(`#selector_id_${selector_id}`)
573
+ if (!el) return
574
+ el.classList.add("focus_pulse")
575
+ setTimeout(() => el.classList.remove("focus_pulse"), 1000)
576
+ }
577
+
578
+ function set_focused_selector_id(selector_id, is_scroll_to = false) {
554
579
  focused_selector_id = selector_id
580
+ if (selector_id && is_scroll_to) {
581
+ scroll_to_selector_id(selector_id)
582
+ pulse_focus(selector_id)
583
+ }
555
584
  }
556
585
 
557
586
  function add_sibling_el(selector_id, el_type_id, element_to_add = null) {
@@ -1053,6 +1082,7 @@ export function create_content_input_manager(config) {
1053
1082
  storage_default_folder_path: storage_default_folder_path,
1054
1083
  storage_path: storage_path,
1055
1084
  get_defined_options: get_defined_options,
1085
+ set_focused_selector_id: set_focused_selector_id,
1056
1086
  })
1057
1087
  set_selected_version(0)
1058
1088
  }
@@ -19,7 +19,7 @@
19
19
  <div style="display: flex; flex: 0;">
20
20
  <div
21
21
  class="qr_container"
22
- style="height: {manager?.size}px; background-color: {manager?.background_color}; border-radius: {manager?.border_radius}rem; border: {manager?.border_width}px solid {manager?.border_color};"
22
+ style="height: {manager?.size}px; background-color: {manager?.background_color}; border-radius: {manager?.border_radius}rem; box-shadow: 0 0 0 {manager?.border_width}px {manager?.border_color};"
23
23
  >
24
24
  <div style="grid-area: stack;" id={`qr_${manager?.id}`}></div>
25
25
  {#if !manager?.is_loaded}
@@ -31,7 +31,10 @@
31
31
  </div>
32
32
  {#if manager?.is_show_copy}
33
33
  <div style="display: flex; flex-wrap: wrap; gap: .5rem; max-width: 30rem;">
34
- <TextInput manager={manager?.text_manager} />
34
+ <span
35
+ style="margin: 0; padding: 0 1rem; display: grid; place-content: center; border-radius: 1rem; border: 1px solid var(--shadow4-t);"
36
+ >{manager?.data}</span
37
+ >
35
38
  <Button manager={manager?.copy_button_manager} />
36
39
  </div>
37
40
  {/if}
@@ -1,5 +1,4 @@
1
1
  import { create_button_manager } from "../Button/index.svelte.js"
2
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
3
2
  import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
4
3
  import { copy_to_clipboard, create_unique_id, deep_copy, set_closurable, color_to_css } from "../../client/index.js"
5
4
  import QRCodeStyling from "qr-code-styling"
@@ -22,10 +21,6 @@ export function create_qr_manager(config) {
22
21
  let extension = $state(null)
23
22
  let quality = $state(null)
24
23
 
25
- let is_show_copy = $derived(set_closurable(config?.is_show_copy, false))
26
- let is_show_download = $derived(set_closurable(config?.is_show_download, false))
27
-
28
- let text_manager = $state(null)
29
24
  let copy_button_manager = $state(null)
30
25
  let download_button_manager = $state(null)
31
26
  let extention_dropdown_input_manager = $state(null)
@@ -33,6 +28,9 @@ export function create_qr_manager(config) {
33
28
  let is_loaded = $state(false)
34
29
  let error_message = $state(null)
35
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
+
36
34
  function get_options() {
37
35
  // convert "var(--primary-t)" to css the works for qr_ download like oklch(0.67 0.26 203)
38
36
  const color_css = get_css_variable_value(color)
@@ -136,7 +134,31 @@ export function create_qr_manager(config) {
136
134
  }
137
135
  }
138
136
 
139
- function update() {
137
+ function set_options(input) {
138
+ margin = input?.margin ?? 10
139
+ size = input?.size ?? 200
140
+ image_size = input?.image_size ?? 0.5
141
+ type_number = input?.type_number ?? 0
142
+ error_correction_level = input?.error_correction_level ?? "Q"
143
+ color = color_to_css(input?.color ?? "var(--primary-t)")
144
+ corner_color = color_to_css(input?.corner_color ?? "color-mix(in oklab, var(--primary-t), var(--bg) 20%)")
145
+ background_color = color_to_css(input?.background_color ?? "var(--shadow1-t)")
146
+ border_color = color_to_css(input?.border_color ?? "var(--shadow7-t)")
147
+ border_radius = input?.border_radius ?? (size + 2 * margin) / 100
148
+ border_width = input?.border_width ?? 1
149
+ data = input?.data ?? null
150
+ image =
151
+ input?.image && input?.image.startsWith("<svg")
152
+ ? `data:image/svg+xml;utf8,${encodeURIComponent(input?.image)}`
153
+ : input?.image ?? null
154
+ extension = input?.extension ?? "svg"
155
+ quality = input?.quality ?? 0.8
156
+ }
157
+
158
+ function update(input = null) {
159
+ if (input) {
160
+ set_options(input)
161
+ }
140
162
  try {
141
163
  error_message = null
142
164
  const options = get_options()
@@ -161,27 +183,8 @@ export function create_qr_manager(config) {
161
183
  // console.log("data_url", data_url)
162
184
  // }
163
185
 
164
- function init(config) {
165
- config = deep_copy(config)
166
- margin = config?.margin ?? 10
167
- size = config?.size ?? 200
168
- image_size = config?.image_size ?? 0.5
169
- type_number = config?.type_number ?? 0
170
- error_correction_level = config?.error_correction_level ?? "Q"
171
- color = color_to_css(config?.color ?? "var(--primary-t)")
172
- corner_color = color_to_css(config?.corner_color ?? "color-mix(in oklab, var(--primary-t), var(--bg) 20%)")
173
- background_color = color_to_css(config?.background_color ?? "var(--shadow1-t)")
174
- border_color = color_to_css(config?.border_color ?? "var(--shadow7-t)")
175
- border_radius = config?.border_radius ?? (size + 2 * margin) / 100
176
- border_width = config?.border_width ?? 1
177
- data = config?.data ?? null
178
- image = config?.image ?? null
179
- extension = config?.extension ?? "svg"
180
- quality = config?.quality ?? 0.8
181
- text_manager = create_text_input_manager({
182
- val: data,
183
- on_change: (input) => (data = input),
184
- })
186
+ function init(input) {
187
+ set_options(input)
185
188
  copy_button_manager = create_button_manager({
186
189
  type: "outlined",
187
190
  is_uniform: true,
@@ -269,9 +272,6 @@ export function create_qr_manager(config) {
269
272
  get is_show_download() {
270
273
  return is_show_download
271
274
  },
272
- get text_manager() {
273
- return text_manager
274
- },
275
275
  get copy_button_manager() {
276
276
  return copy_button_manager
277
277
  },
@@ -0,0 +1,45 @@
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
+ <Qr manager={manager?.qr_manager} />
44
+ </div>
45
+ </div>
@@ -0,0 +1,212 @@
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)
48
+ }
49
+
50
+ function init(config) {
51
+ margin_slider_manager = create_slider_manager({
52
+ label: "Margin",
53
+ min: 0,
54
+ max: 20,
55
+ step: 1,
56
+ val: config?.val?.margin ?? 10,
57
+ })
58
+ size_slider_manager = create_slider_manager({
59
+ label: "Size",
60
+ min: 50,
61
+ max: 1000,
62
+ step: 1,
63
+ val: config?.val?.size ?? 200,
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: 5,
82
+ step: 0.5,
83
+ val: config?.val?.border_radius ?? 2,
84
+ })
85
+ border_width_slider_manager = create_slider_manager({
86
+ label: "Border Width",
87
+ min: 0,
88
+ max: 5,
89
+ step: 1,
90
+ val: config?.val?.border_width ?? 1,
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
+ l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
105
+ val: config?.val?.color ?? null,
106
+ })
107
+ corner_color_manager = create_color_input_manager({
108
+ is_show_opacity: false,
109
+ l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
110
+ val: config?.val?.corner_color ?? null,
111
+ })
112
+ background_color_manager = create_color_input_manager({
113
+ is_show_opacity: false,
114
+ l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
115
+ val: config?.val?.background_color ?? null,
116
+ })
117
+ border_color_manager = create_color_input_manager({
118
+ is_show_opacity: false,
119
+ l_options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
120
+ val: config?.val?.border_color ?? null,
121
+ })
122
+ is_show_copy_checkbox_manager = create_checkbox_manager({
123
+ type: "toggle",
124
+ label: "Is Show Copy",
125
+ val: config?.val?.is_show_copy ?? true,
126
+ })
127
+ is_show_download_checkbox_manager = create_checkbox_manager({
128
+ type: "toggle",
129
+ label: "Is Show Download",
130
+ val: config?.val?.is_show_download ?? true,
131
+ })
132
+ data_text_input_manager = create_text_input_manager({
133
+ label: "Data",
134
+ val: config?.val?.data ?? "https://www.sveltekit-ui.com",
135
+ })
136
+ image_text_input_manager = create_text_input_manager({
137
+ type: "text",
138
+ label: "Image Url / SVG",
139
+ val:
140
+ config?.val?.image_url ??
141
+ "https://firmcmccxfdethzdexal.supabase.co/storage/v1/object/public/site/test/icon.png",
142
+ })
143
+ qr_manager = create_qr_manager(val)
144
+ set_changes_button_manager = create_button_manager({
145
+ c: 1,
146
+ l: 0,
147
+ mb: 2,
148
+ text: "Set Changes",
149
+ is_compressed: true,
150
+ on_click: () => set_changes(),
151
+ })
152
+ }
153
+
154
+ init(config)
155
+
156
+ return {
157
+ get val() {
158
+ return val
159
+ },
160
+ get margin_slider_manager() {
161
+ return margin_slider_manager
162
+ },
163
+ get size_slider_manager() {
164
+ return size_slider_manager
165
+ },
166
+ get image_size_slider_manager() {
167
+ return image_size_slider_manager
168
+ },
169
+ get type_number_slider_manager() {
170
+ return type_number_slider_manager
171
+ },
172
+ get border_radius_slider_manager() {
173
+ return border_radius_slider_manager
174
+ },
175
+ get border_width_slider_manager() {
176
+ return border_width_slider_manager
177
+ },
178
+ get error_correction_level_dropdown_manager() {
179
+ return error_correction_level_dropdown_manager
180
+ },
181
+ get color_manager() {
182
+ return color_manager
183
+ },
184
+ get corner_color_manager() {
185
+ return corner_color_manager
186
+ },
187
+ get background_color_manager() {
188
+ return background_color_manager
189
+ },
190
+ get border_color_manager() {
191
+ return border_color_manager
192
+ },
193
+ get data_text_input_manager() {
194
+ return data_text_input_manager
195
+ },
196
+ get image_text_input_manager() {
197
+ return image_text_input_manager
198
+ },
199
+ get is_show_copy_checkbox_manager() {
200
+ return is_show_copy_checkbox_manager
201
+ },
202
+ get is_show_download_checkbox_manager() {
203
+ return is_show_download_checkbox_manager
204
+ },
205
+ get set_changes_button_manager() {
206
+ return set_changes_button_manager
207
+ },
208
+ get qr_manager() {
209
+ return qr_manager
210
+ },
211
+ }
212
+ }
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ export { default as Tag } from "./Components/Tag/index.svelte"
20
20
  export { create_tag_manager } from "./Components/Tag/index.svelte.js"
21
21
  export { default as Qr } from "./Components/Qr/index.svelte"
22
22
  export { create_qr_manager } from "./Components/Qr/index.svelte.js"
23
+ export { default as QrInput } from "./Components/QrInput/index.svelte"
24
+ export { create_qr_input_manager } from "./Components/QrInput/index.svelte.js"
23
25
  export { default as Json } from "./Components/Json/index.svelte"
24
26
  export { create_json_manager } from "./Components/Json/index.svelte.js"
25
27
  export { default as Image } from "./Components/Image/index.svelte"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sveltekit-ui",
3
- "version": "1.0.51",
3
+ "version": "1.0.53",
4
4
  "description": "A SvelteKit UI component library for building modern web applications",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,19 +19,19 @@
19
19
  "dependencies": {
20
20
  "context-filter-polyfill": "^0.3.23",
21
21
  "qr-code-styling": "^1.9.2",
22
- "svelte": "^5.38.7"
22
+ "svelte": "^5.38.8"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@sveltejs/kit": "^2.22.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@sveltejs/adapter-vercel": "^5.10.2",
29
- "@sveltejs/kit": "^2.37.1",
29
+ "@sveltejs/kit": "^2.38.0",
30
30
  "@sveltejs/package": "^2.5.0",
31
- "@sveltejs/vite-plugin-svelte": "^6.1.4",
31
+ "@sveltejs/vite-plugin-svelte": "^6.2.0",
32
32
  "@vercel/analytics": "^1.5.0",
33
33
  "typescript": "^5.9.2",
34
- "vite": "^7.1.4"
34
+ "vite": "^7.1.5"
35
35
  },
36
36
  "homepage": "https://www.sveltekit-ui.com",
37
37
  "keywords": [
@@ -885,7 +885,7 @@ export function create_content_manager(config) {
885
885
  }
886
886
  function set_focused_selector_id(input) {
887
887
  if (typeof config?.set_focused_selector_id == "function") {
888
- config?.set_focused_selector_id(input)
888
+ config?.set_focused_selector_id(input, !!input)
889
889
  }
890
890
  }
891
891
 
@@ -4,7 +4,6 @@ import { create_checkbox_manager } from "$lib/Components/Checkbox/index.svelte.j
4
4
  import { create_text_input_manager } from "$lib/Components/TextInput/index.svelte.js"
5
5
  import { create_dropdown_manager } from "$lib/Components/Dropdown/index.svelte.js"
6
6
  import { create_defined_type_input_manager } from "$lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js"
7
- import { deep_copy, set_closurable } from "$lib/client/index.js"
8
7
 
9
8
  export function create_qr_config_manager(config) {
10
9
  let margin_slider_manager = $state(null)
@@ -27,6 +27,14 @@
27
27
 
28
28
  <Popover manager={manager?.popover_manager}>
29
29
  {#snippet content()}
30
+ <div
31
+ onpointerenter={() => manager?.set_focused_selector_id(manager?.selector_id, true)}
32
+ onpointercancel={() => manager?.set_focused_selector_id(null)}
33
+ onpointerleave={() => manager?.set_focused_selector_id(null)}
34
+ >
35
+ <p class="label">Element ID</p>
36
+ <p>{manager?.selector_id}</p>
37
+ </div>
30
38
  {#if manager?.content_type == "number"}
31
39
  <NumberConfig manager={manager?.attributes_manager} />
32
40
  {:else if manager?.content_type == "dropdown"}
@@ -48,6 +48,12 @@ export function create_attributes_input_manager(config) {
48
48
  { key: "space-evenly", name: "Space Evenly" },
49
49
  ]
50
50
 
51
+ function set_focused_selector_id(input) {
52
+ if (typeof config?.set_focused_selector_id == "function") {
53
+ config?.set_focused_selector_id(input)
54
+ }
55
+ }
56
+
51
57
  function init(config) {
52
58
  val_original = set_closurable(config?.val, null)
53
59
  content_type = config?.content_type
@@ -1423,5 +1429,6 @@ export function create_attributes_input_manager(config) {
1423
1429
  return finish_button_manager
1424
1430
  },
1425
1431
  init,
1432
+ set_focused_selector_id,
1426
1433
  }
1427
1434
  }
@@ -28,7 +28,7 @@
28
28
  onpointercancel={() => manager?.set_focused_selector_id(null)}
29
29
  onpointerleave={() => manager?.set_focused_selector_id(null)}
30
30
  >
31
- <div class="el_row">
31
+ <div class="el_row" id={`selector_id_${element_manager?.element?.selector_id}`}>
32
32
  {#if element_manager?.element}
33
33
  {#if manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id && element_manager?.element?.selector_id != manager?.dragging_selector_id && !manager?.dragged_over_element_child?.is_children}
34
34
  <div class="drop_area" style="left: 0; top: 0;">Move Before Element</div>