sveltekit-ui 1.0.27 → 1.0.29

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.
@@ -476,8 +476,8 @@
476
476
  code,
477
477
  pre,
478
478
  span {
479
- overflow-wrap: anywhere;
479
+ overflow-wrap: break-word;
480
480
  word-break: break-word;
481
- line-break: anywhere;
481
+ white-space: normal;
482
482
  }
483
483
  </style>
@@ -3,17 +3,24 @@
3
3
  import Popover from "../../../Popover/index.svelte"
4
4
  import TextInput from "../../../TextInput/index.svelte"
5
5
  import AddElement from "../AddElement/index.svelte"
6
- import Self from './index.svelte'
6
+ import Self from "./index.svelte"
7
7
  import { node_types } from "../../../../client/index.js"
8
8
 
9
9
  let { manager, element_manager } = $props()
10
-
11
10
  </script>
12
11
 
13
12
  <div
14
13
  class="container"
15
14
  class:is_highlight={element_manager?.element?.selector_id &&
16
15
  element_manager?.element?.selector_id == manager?.focused_selector_id}
16
+ class:is_drop_dragover={manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id}
17
+ role="listitem"
18
+ draggable="true"
19
+ aria-grabbed="false"
20
+ ondragover={(e) => manager?.handle_element_child_drag_over(e, element_manager?.element?.selector_id)}
21
+ ondrop={(e) => manager?.handle_element_child_drag_drop(e, element_manager?.element?.selector_id)}
22
+ ondragstart={(e) => manager?.handle_element_child_drag_start(e, element_manager?.element?.selector_id)}
23
+ ondragend={(e) => manager?.handle_element_child_drag_end(e, element_manager?.element?.selector_id)}
17
24
  >
18
25
  <div
19
26
  class="event_handler"
@@ -23,12 +30,30 @@
23
30
  >
24
31
  <div class="el_row">
25
32
  {#if element_manager?.element}
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
+ <div class="drop_area" style="left: 0; top: 0;">Move Before Element</div>
35
+ {/if}
26
36
  <div class="el_name">
27
- <h4 class="el_title">{element_manager?.element?.type_id}</h4>
37
+ <h4 class="el_title">
38
+ {element_manager?.element?.type_id}
39
+ </h4>
28
40
  <p class="el_id">{element_manager?.element?.selector_id}</p>
29
41
  {#if Object.keys(node_types?.[element_manager?.element?.type_id]?.attributes || {})?.length > 0 || node_types?.[element_manager?.element?.type_id]?.custom_attributes_input}
30
42
  <Button manager={element_manager?.edit_attributes_popover_button_manager} />
31
43
  {/if}
44
+ {#if manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id && Object.keys(node_types?.[element_manager?.element?.type_id]?.child_elements || {}).length > 0}
45
+ <div
46
+ class="child_drop"
47
+ role="listitem"
48
+ ondragover={(e) =>
49
+ manager?.handle_element_child_drag_over(e, element_manager?.element?.selector_id, true)}
50
+ ondrop={(e) => manager?.handle_element_child_drag_drop(e, element_manager?.element?.selector_id, true)}
51
+ class:is_child_drop_dragover={manager?.dragged_over_element_child?.selector_id ==
52
+ element_manager?.element?.selector_id && manager?.dragged_over_element_child?.is_children}
53
+ >
54
+ Child Drop Zone
55
+ </div>
56
+ {/if}
32
57
  </div>
33
58
  {/if}
34
59
  <div style="display: flex; flex: 0;">
@@ -39,10 +64,11 @@
39
64
  <Button manager={element_manager?.small_preempt_add_child_element_button_manager} />
40
65
  {/if}
41
66
  {#if element_manager?.element}
42
- <Button manager={element_manager?.extra_popover_button_manager} />
67
+ <Button manager={element_manager?.extra_popover_button_manager} />
43
68
  {/if}
44
69
  <Popover manager={element_manager?.extra_popover_manager}>
45
70
  {#snippet content()}
71
+ <Button manager={element_manager?.reset_ids_button_manager} />
46
72
  <Button manager={element_manager?.copy_markdown_button_manager} />
47
73
  <Button manager={element_manager?.copy_astc_button_manager} />
48
74
  {#if Array.isArray(element_manager?.avail_child_element_ids) && element_manager?.avail_child_element_ids?.length > 0}
@@ -73,8 +99,13 @@
73
99
  </div>
74
100
  </div>
75
101
  </div>
76
- {#if Array.isArray(element_manager?.children)}
77
- {#each element_manager.children as child}
102
+ {#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}
103
+ <div style="position: relative;">
104
+ <div class="drop_area" style="left: 1rem; top: 50%; ">Move to Element Children</div>
105
+ </div>
106
+ {/if}
107
+ {#if Array.isArray(element_manager?.children) && element_manager?.children.length > 0}
108
+ {#each element_manager.children as child, i}
78
109
  <Self {manager} element_manager={child} />
79
110
  {/each}
80
111
  {/if}
@@ -95,6 +126,7 @@
95
126
  transition: 0.2s;
96
127
  }
97
128
  .el_row {
129
+ position: relative;
98
130
  display: flex;
99
131
  /* align-items: center; */
100
132
  justify-content: space-between;
@@ -111,6 +143,36 @@
111
143
  font-weight: 600 !important;
112
144
  margin-left: 0.5rem;
113
145
  }
146
+ .is_drop_dragover {
147
+ background-color: oklch(var(--l12-t) var(--c10) var(--h16) / var(--o15));
148
+ border-radius: 0.5rem;
149
+ }
150
+ .drop_area {
151
+ position: absolute;
152
+ width: fit-content;
153
+ transform: translateY(-50%);
154
+ font-size: 1rem !important;
155
+ pointer-events: none;
156
+ border-radius: 0.5rem;
157
+ padding: 0.2rem 0.5rem;
158
+ border: 1px solid oklch(var(--l2-t) var(--c5) var(--h3) / var(--o22));
159
+ background-color: oklch(var(--l5-t) var(--c10) var(--h3) / var(--o20));
160
+ color: oklch(var(--l16-t) var(--c10) var(--h3));
161
+ }
162
+ .child_drop {
163
+ margin-left: 2rem;
164
+ border: 1px dotted var(--g3-t);
165
+ border-radius: 0.5rem;
166
+ display: grid;
167
+ place-content: center;
168
+ min-width: fit-content;
169
+ padding: 0.2rem 0.5rem;
170
+ white-space: nowrap;
171
+ }
172
+ .is_child_drop_dragover {
173
+ background-color: oklch(var(--l2-t) var(--c1) var(--h3) / var(--o15));
174
+ color: var(--g24-t);
175
+ }
114
176
  .el_id {
115
177
  color: var(--g8-t);
116
178
  font-size: 1.2rem;
@@ -8,7 +8,6 @@
8
8
  import Dropdown from "../Dropdown/index.svelte"
9
9
 
10
10
  let { manager, panel_header } = $props()
11
-
12
11
  </script>
13
12
 
14
13
  <div class="container">
@@ -26,6 +25,13 @@
26
25
  <Popover manager={manager?.paste_astc_markdown_popover_manager}>
27
26
  {#snippet content()}
28
27
  <div>
28
+ <p>Note: for valid json make sure all keys and strings are in double quotes, and no trailing commas. example:</p>
29
+ <pre>
30
+ {`{
31
+ "type_id": "div",
32
+ "children": []
33
+ }`}
34
+ </pre>
29
35
  <Dropdown manager={manager?.paste_astc_markdown_dropdown_manager} />
30
36
  <TextInput manager={manager?.paste_astc_markdown_text_input_manager} />
31
37
  </div>
@@ -35,7 +41,6 @@
35
41
  {/snippet}
36
42
  </Popover>
37
43
 
38
-
39
44
  <style>
40
45
  .container {
41
46
  display: flex;
@@ -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
  }
@@ -306,6 +306,8 @@ export function astc_to_markdown(astc) {
306
306
  return `\`\`\`${language}\n${attributes.content}\n\`\`\`\n`
307
307
  case "hr":
308
308
  return "---\n"
309
+ case "br":
310
+ return "\n"
309
311
  case "table":
310
312
  const table_rows = children.map((child) => astc_element_to_markdown(child))
311
313
  return table_rows.join("\n") + "\n"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sveltekit-ui",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "A SvelteKit UI component library for building modern web applications",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@sveltejs/adapter-vercel": "^5.10.2",
29
- "@sveltejs/kit": "^2.35.0",
29
+ "@sveltejs/kit": "^2.36.1",
30
30
  "@sveltejs/package": "^2.5.0",
31
31
  "@sveltejs/vite-plugin-svelte": "^6.1.3",
32
32
  "@vercel/analytics": "^1.5.0",
@@ -476,8 +476,8 @@
476
476
  code,
477
477
  pre,
478
478
  span {
479
- overflow-wrap: anywhere;
479
+ overflow-wrap: break-word;
480
480
  word-break: break-word;
481
- line-break: anywhere;
481
+ white-space: normal;
482
482
  }
483
483
  </style>
@@ -3,17 +3,24 @@
3
3
  import Popover from "$lib/Components/Popover/index.svelte"
4
4
  import TextInput from "$lib/Components/TextInput/index.svelte"
5
5
  import AddElement from "$lib/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte"
6
- import Self from './index.svelte'
6
+ import Self from "./index.svelte"
7
7
  import { node_types } from "$lib/client/index.js"
8
8
 
9
9
  let { manager, element_manager } = $props()
10
-
11
10
  </script>
12
11
 
13
12
  <div
14
13
  class="container"
15
14
  class:is_highlight={element_manager?.element?.selector_id &&
16
15
  element_manager?.element?.selector_id == manager?.focused_selector_id}
16
+ class:is_drop_dragover={manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id}
17
+ role="listitem"
18
+ draggable="true"
19
+ aria-grabbed="false"
20
+ ondragover={(e) => manager?.handle_element_child_drag_over(e, element_manager?.element?.selector_id)}
21
+ ondrop={(e) => manager?.handle_element_child_drag_drop(e, element_manager?.element?.selector_id)}
22
+ ondragstart={(e) => manager?.handle_element_child_drag_start(e, element_manager?.element?.selector_id)}
23
+ ondragend={(e) => manager?.handle_element_child_drag_end(e, element_manager?.element?.selector_id)}
17
24
  >
18
25
  <div
19
26
  class="event_handler"
@@ -23,12 +30,30 @@
23
30
  >
24
31
  <div class="el_row">
25
32
  {#if element_manager?.element}
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
+ <div class="drop_area" style="left: 0; top: 0;">Move Before Element</div>
35
+ {/if}
26
36
  <div class="el_name">
27
- <h4 class="el_title">{element_manager?.element?.type_id}</h4>
37
+ <h4 class="el_title">
38
+ {element_manager?.element?.type_id}
39
+ </h4>
28
40
  <p class="el_id">{element_manager?.element?.selector_id}</p>
29
41
  {#if Object.keys(node_types?.[element_manager?.element?.type_id]?.attributes || {})?.length > 0 || node_types?.[element_manager?.element?.type_id]?.custom_attributes_input}
30
42
  <Button manager={element_manager?.edit_attributes_popover_button_manager} />
31
43
  {/if}
44
+ {#if manager?.dragged_over_element_child?.selector_id == element_manager?.element?.selector_id && Object.keys(node_types?.[element_manager?.element?.type_id]?.child_elements || {}).length > 0}
45
+ <div
46
+ class="child_drop"
47
+ role="listitem"
48
+ ondragover={(e) =>
49
+ manager?.handle_element_child_drag_over(e, element_manager?.element?.selector_id, true)}
50
+ ondrop={(e) => manager?.handle_element_child_drag_drop(e, element_manager?.element?.selector_id, true)}
51
+ class:is_child_drop_dragover={manager?.dragged_over_element_child?.selector_id ==
52
+ element_manager?.element?.selector_id && manager?.dragged_over_element_child?.is_children}
53
+ >
54
+ Child Drop Zone
55
+ </div>
56
+ {/if}
32
57
  </div>
33
58
  {/if}
34
59
  <div style="display: flex; flex: 0;">
@@ -39,10 +64,11 @@
39
64
  <Button manager={element_manager?.small_preempt_add_child_element_button_manager} />
40
65
  {/if}
41
66
  {#if element_manager?.element}
42
- <Button manager={element_manager?.extra_popover_button_manager} />
67
+ <Button manager={element_manager?.extra_popover_button_manager} />
43
68
  {/if}
44
69
  <Popover manager={element_manager?.extra_popover_manager}>
45
70
  {#snippet content()}
71
+ <Button manager={element_manager?.reset_ids_button_manager} />
46
72
  <Button manager={element_manager?.copy_markdown_button_manager} />
47
73
  <Button manager={element_manager?.copy_astc_button_manager} />
48
74
  {#if Array.isArray(element_manager?.avail_child_element_ids) && element_manager?.avail_child_element_ids?.length > 0}
@@ -73,8 +99,13 @@
73
99
  </div>
74
100
  </div>
75
101
  </div>
76
- {#if Array.isArray(element_manager?.children)}
77
- {#each element_manager.children as child}
102
+ {#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}
103
+ <div style="position: relative;">
104
+ <div class="drop_area" style="left: 1rem; top: 50%; ">Move to Element Children</div>
105
+ </div>
106
+ {/if}
107
+ {#if Array.isArray(element_manager?.children) && element_manager?.children.length > 0}
108
+ {#each element_manager.children as child, i}
78
109
  <Self {manager} element_manager={child} />
79
110
  {/each}
80
111
  {/if}
@@ -95,6 +126,7 @@
95
126
  transition: 0.2s;
96
127
  }
97
128
  .el_row {
129
+ position: relative;
98
130
  display: flex;
99
131
  /* align-items: center; */
100
132
  justify-content: space-between;
@@ -111,6 +143,36 @@
111
143
  font-weight: 600 !important;
112
144
  margin-left: 0.5rem;
113
145
  }
146
+ .is_drop_dragover {
147
+ background-color: oklch(var(--l12-t) var(--c10) var(--h16) / var(--o15));
148
+ border-radius: 0.5rem;
149
+ }
150
+ .drop_area {
151
+ position: absolute;
152
+ width: fit-content;
153
+ transform: translateY(-50%);
154
+ font-size: 1rem !important;
155
+ pointer-events: none;
156
+ border-radius: 0.5rem;
157
+ padding: 0.2rem 0.5rem;
158
+ border: 1px solid oklch(var(--l2-t) var(--c5) var(--h3) / var(--o22));
159
+ background-color: oklch(var(--l5-t) var(--c10) var(--h3) / var(--o20));
160
+ color: oklch(var(--l16-t) var(--c10) var(--h3));
161
+ }
162
+ .child_drop {
163
+ margin-left: 2rem;
164
+ border: 1px dotted var(--g3-t);
165
+ border-radius: 0.5rem;
166
+ display: grid;
167
+ place-content: center;
168
+ min-width: fit-content;
169
+ padding: 0.2rem 0.5rem;
170
+ white-space: nowrap;
171
+ }
172
+ .is_child_drop_dragover {
173
+ background-color: oklch(var(--l2-t) var(--c1) var(--h3) / var(--o15));
174
+ color: var(--g24-t);
175
+ }
114
176
  .el_id {
115
177
  color: var(--g8-t);
116
178
  font-size: 1.2rem;
@@ -8,7 +8,6 @@
8
8
  import Dropdown from "$lib/Components/Dropdown/index.svelte"
9
9
 
10
10
  let { manager, panel_header } = $props()
11
-
12
11
  </script>
13
12
 
14
13
  <div class="container">
@@ -26,6 +25,13 @@
26
25
  <Popover manager={manager?.paste_astc_markdown_popover_manager}>
27
26
  {#snippet content()}
28
27
  <div>
28
+ <p>Note: for valid json make sure all keys and strings are in double quotes, and no trailing commas. example:</p>
29
+ <pre>
30
+ {`{
31
+ "type_id": "div",
32
+ "children": []
33
+ }`}
34
+ </pre>
29
35
  <Dropdown manager={manager?.paste_astc_markdown_dropdown_manager} />
30
36
  <TextInput manager={manager?.paste_astc_markdown_text_input_manager} />
31
37
  </div>
@@ -35,7 +41,6 @@
35
41
  {/snippet}
36
42
  </Popover>
37
43
 
38
-
39
44
  <style>
40
45
  .container {
41
46
  display: flex;