sveltekit-ui 1.0.28 → 1.0.30

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.
@@ -39,6 +39,8 @@ export function create_content_input_manager(config) {
39
39
  let attributes_input = $state(null)
40
40
  let focused_selector_id = $state(null)
41
41
  let definition_stack = $state([])
42
+ let dragging_selector_id = $state(null)
43
+ let dragged_over_element_child = $state(null)
42
44
 
43
45
  let mapkit_js_token = $derived(set_closurable(config?.mapkit_js_token, null))
44
46
 
@@ -109,6 +111,7 @@ export function create_content_input_manager(config) {
109
111
  let preempt_add_child_element_button_manager = $state(null)
110
112
  let small_preempt_add_child_element_button_manager = $state(null)
111
113
  let preempt_add_sibling_element_below_button_manager = $state(null)
114
+ let reset_ids_button_manager = $state(null)
112
115
  let copy_markdown_button_manager = $state(null)
113
116
  let copy_astc_button_manager = $state(null)
114
117
  let shift_element_up_5_button_manager = $state(null)
@@ -177,6 +180,19 @@ export function create_content_input_manager(config) {
177
180
  border_radius: 0.5,
178
181
  on_click: () => initiate_add_child_el_to_selector(element?.selector_id),
179
182
  })
183
+ reset_ids_button_manager = create_button_manager({
184
+ type: "soft",
185
+ support_icon: "refresh",
186
+ text_align: "left",
187
+ text: "Reset IDs",
188
+ is_success_animation: true,
189
+ on_click: () => {
190
+ extra_popover_manager.close()
191
+ setTimeout(() => {
192
+ reset_ids(element?.selector_id)
193
+ }, 200)
194
+ },
195
+ })
180
196
  copy_markdown_button_manager = create_button_manager({
181
197
  type: "soft",
182
198
  support_icon: "clipboard",
@@ -336,6 +352,9 @@ export function create_content_input_manager(config) {
336
352
  get preempt_add_sibling_element_below_button_manager() {
337
353
  return preempt_add_sibling_element_below_button_manager
338
354
  },
355
+ get reset_ids_button_manager() {
356
+ return reset_ids_button_manager
357
+ },
339
358
  get copy_markdown_button_manager() {
340
359
  return copy_markdown_button_manager
341
360
  },
@@ -376,7 +395,7 @@ export function create_content_input_manager(config) {
376
395
  }
377
396
  }
378
397
 
379
- function get_parent_el(selector_id) {
398
+ function get_parent_el(selector_id, element = null) {
380
399
  function get_parent_el_recursive(selector_id, element) {
381
400
  if (selector_id && element && Array.isArray(element?.children)) {
382
401
  for (let child of element.children) {
@@ -393,7 +412,7 @@ export function create_content_input_manager(config) {
393
412
  }
394
413
  return null
395
414
  }
396
- return get_parent_el_recursive(selector_id, versions?.[selected_version_index])
415
+ return get_parent_el_recursive(selector_id, element ?? versions?.[selected_version_index])
397
416
  }
398
417
 
399
418
  function add_version(version) {
@@ -405,6 +424,92 @@ export function create_content_input_manager(config) {
405
424
  }
406
425
  }
407
426
 
427
+ function handle_element_child_drag_over(e, selector_id, is_children = false) {
428
+ e.preventDefault()
429
+ e.stopPropagation()
430
+ dragged_over_element_child = { selector_id, is_children }
431
+ }
432
+
433
+ function handle_element_child_drag_drop(e, selector_id, is_children = false) {
434
+ e.stopPropagation()
435
+ console.log("handle_element_child_drag_drop", { selector_id, dragging_selector_id, is_children })
436
+ if (selector_id == dragging_selector_id) {
437
+ dragging_selector_id = null
438
+ return
439
+ }
440
+ const found_element = traverse_els_for_match(dragging_selector_id)
441
+ const removed_version = remove_el_recursive(selected_version_prepped?.element, dragging_selector_id)
442
+ let readded_version = null
443
+ if (is_children) {
444
+ readded_version = add_child_to_el_recursive(removed_version, selector_id, found_element)
445
+ } else {
446
+ let dom_el_parent = get_parent_el(selector_id, removed_version)
447
+ const element_index_of_siblings = Array.isArray(dom_el_parent?.children)
448
+ ? dom_el_parent.children.findIndex((h) => h.selector_id == selector_id)
449
+ : null
450
+ if (dom_el_parent && found_element) {
451
+ if (Array.isArray(dom_el_parent?.children)) {
452
+ dom_el_parent.children.splice(element_index_of_siblings, 0, found_element)
453
+ } else {
454
+ dom_el_parent.children = [found_element]
455
+ }
456
+ readded_version = replace_el_recursive(removed_version, dom_el_parent?.selector_id, dom_el_parent)
457
+ }
458
+ }
459
+ add_version(readded_version)
460
+ dragging_selector_id = null
461
+ }
462
+ function handle_element_child_drag_start(e, selector_id) {
463
+ e.stopPropagation()
464
+ dragging_selector_id = selector_id
465
+ }
466
+ function handle_element_child_drag_end(e, selector_id) {
467
+ dragged_over_element_child = null
468
+ dragging_selector_id = null
469
+ }
470
+
471
+ function reset_ids(selector_id) {
472
+ const found_element = traverse_els_for_match(selector_id)
473
+ const clean_element = reset_ids_recursive(found_element)
474
+ const new_version = find_and_replace_element(selector_id, selected_version_prepped?.element, clean_element)
475
+ add_version(new_version)
476
+ }
477
+
478
+ function reset_ids_recursive(element, selector_id) {
479
+ if (!element?.selector_id || element?.selector_id == selector_id) {
480
+ return null
481
+ }
482
+ element.selector_id = create_unique_id(null, 8)
483
+ let new_children = []
484
+ if (Array.isArray(element?.children)) {
485
+ for (let child of element?.children) {
486
+ const child_new_el = reset_ids_recursive(child, selector_id)
487
+ if (child_new_el) {
488
+ new_children.push(child_new_el)
489
+ }
490
+ }
491
+ }
492
+ element.children = new_children
493
+ return element
494
+ }
495
+
496
+ function find_and_replace_element(selector_id, root_el, replacement_el) {
497
+ function replace_recursive(node) {
498
+ if (!node) return null
499
+ if (node.selector_id === selector_id) {
500
+ return deep_copy(replacement_el)
501
+ }
502
+ const new_children = Array.isArray(node.children) ? node.children.map(replace_recursive).filter(Boolean) : []
503
+ return {
504
+ type_id: node.type_id,
505
+ selector_id: node.selector_id,
506
+ attributes: node.attributes ? { ...node.attributes } : node.attributes,
507
+ children: new_children,
508
+ }
509
+ }
510
+ return replace_recursive(root_el)
511
+ }
512
+
408
513
  function copy_markdown() {
409
514
  copy_to_clipboard(astc_to_markdown(selected_version_prepped?.element))
410
515
  }
@@ -449,7 +554,6 @@ export function create_content_input_manager(config) {
449
554
  }
450
555
 
451
556
  function add_sibling_el(selector_id, el_type_id, element_to_add = null) {
452
- console.log("add_sibling_el", selector_id, el_type_id)
453
557
  let dom_el_parent = get_parent_el(selector_id)
454
558
  const element_index_of_siblings = Array.isArray(dom_el_parent?.children)
455
559
  ? dom_el_parent.children.findIndex((h) => h.selector_id == selector_id)
@@ -469,10 +573,8 @@ export function create_content_input_manager(config) {
469
573
  }
470
574
 
471
575
  function initiate_add_sibling_el_to_selector(selector_id) {
472
- console.log("initiate_add_sibling_el_to_selector", selector_id)
473
576
  const dom_el_parent = get_parent_el(selector_id)
474
577
  const avail_element_ids = calc_child_element_options(dom_el_parent)
475
- console.log("avail_element_ids", avail_element_ids)
476
578
  if (avail_element_ids.length > 1) {
477
579
  location_to_add_element = "sibling"
478
580
  find_and_open_add_element_popover_selector_id(selected_version_prepped, selector_id ?? "root")
@@ -518,7 +620,6 @@ export function create_content_input_manager(config) {
518
620
  }
519
621
 
520
622
  function add_el_to_el_children(selector_id, new_element) {
521
- console.log("add_el_to_el_children", selector_id)
522
623
  add_version(add_child_to_el_recursive(selected_version_prepped?.element, selector_id, new_element))
523
624
  }
524
625
 
@@ -1013,6 +1114,12 @@ export function create_content_input_manager(config) {
1013
1114
  get attributes_input() {
1014
1115
  return attributes_input
1015
1116
  },
1117
+ get dragging_selector_id() {
1118
+ return dragging_selector_id
1119
+ },
1120
+ get dragged_over_element_child() {
1121
+ return dragged_over_element_child
1122
+ },
1016
1123
 
1017
1124
  init,
1018
1125
  clean_content,
@@ -1049,5 +1156,11 @@ export function create_content_input_manager(config) {
1049
1156
  set_element_attributes,
1050
1157
 
1051
1158
  pass_event_down,
1159
+ reset_ids,
1160
+
1161
+ handle_element_child_drag_over,
1162
+ handle_element_child_drag_drop,
1163
+ handle_element_child_drag_start,
1164
+ handle_element_child_drag_end,
1052
1165
  }
1053
1166
  }
@@ -689,6 +689,10 @@ export const content_types = {
689
689
  type: "text_literal",
690
690
  display_name: "Justify Content",
691
691
  },
692
+ gap: {
693
+ type: "float_literal",
694
+ display_name: "Gap",
695
+ },
692
696
  },
693
697
  child_elements: {
694
698
  ...main_child_element_options,