diff --git a/addons/markdown_text_edit/header_formats/header_format.gd b/addons/markdown_text_edit/header_formats/header_format.gd
new file mode 100644
index 0000000..8ebf426
--- /dev/null
+++ b/addons/markdown_text_edit/header_formats/header_format.gd
@@ -0,0 +1,16 @@
+@tool
+class_name HeaderFormat extends Resource
+
+@export var font_size: float = 2.5 : set = _set_font_size
+@export var is_bold: bool = false
+@export var is_italic: bool = false
+@export var is_unterlined: bool = false
+@export var font_color: Color = Color.WHITE
+
+func _init() -> void:
+ resource_local_to_scene = true
+
+
+func _set_font_size(new_font_size: float) -> void:
+ font_size = new_font_size
+ emit_changed()
\ No newline at end of file
diff --git a/addons/markdown_text_edit/header_formats/header_format.gd.uid b/addons/markdown_text_edit/header_formats/header_format.gd.uid
new file mode 100644
index 0000000..83a93f1
--- /dev/null
+++ b/addons/markdown_text_edit/header_formats/header_format.gd.uid
@@ -0,0 +1 @@
+uid://ditc3t85lnt0q
diff --git a/addons/markdown_text_edit/icon.svg b/addons/markdown_text_edit/icon.svg
new file mode 100644
index 0000000..9d8b7fa
--- /dev/null
+++ b/addons/markdown_text_edit/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/addons/markdown_text_edit/icon.svg.import b/addons/markdown_text_edit/icon.svg.import
new file mode 100644
index 0000000..3ef0f58
--- /dev/null
+++ b/addons/markdown_text_edit/icon.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ngkmg8gqx5nw"
+path="res://.godot/imported/icon.svg-e8bff433ae193df07631b878b5446367.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/markdown_text_edit/icon.svg"
+dest_files=["res://.godot/imported/icon.svg-e8bff433ae193df07631b878b5446367.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/addons/markdown_text_edit/markdown_text_edit.gd b/addons/markdown_text_edit/markdown_text_edit.gd
new file mode 100644
index 0000000..b03dafa
--- /dev/null
+++ b/addons/markdown_text_edit/markdown_text_edit.gd
@@ -0,0 +1,27 @@
+class_name MarkdownTextEdit extends TextEdit
+
+@export var h1 = HeaderFormat.new() : set = _set_h1_format
+
+var _converted_text: String
+
+func _ready() -> void:
+ h1.changed.connect(_update)
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+ pass
+
+
+func _update() -> void:
+ text = _convert_markdown(markdown_text)
+ queue_redraw()
+
+func _set_h1_format(new_format: HeaderFormat) -> void:
+ h1 = new_format
+ _update()
+
+func _convert_markdown(text: String = "") -> String:
+ _converted_text = ""
+ var lines = text.split("\n")
+
diff --git a/addons/markdown_text_edit/markdown_text_edit.gd.uid b/addons/markdown_text_edit/markdown_text_edit.gd.uid
new file mode 100644
index 0000000..9e24f67
--- /dev/null
+++ b/addons/markdown_text_edit/markdown_text_edit.gd.uid
@@ -0,0 +1 @@
+uid://c1xscjw1psr0s
diff --git a/addons/markdown_text_edit/plugin.cfg b/addons/markdown_text_edit/plugin.cfg
new file mode 100644
index 0000000..767df05
--- /dev/null
+++ b/addons/markdown_text_edit/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="MarkdownTextEdit"
+description="A custom node for adding a Markdown Text Edit Node"
+author="LunarAkai"
+version="0.1.0"
+script="plugin.gd"
diff --git a/addons/markdown_text_edit/plugin.gd b/addons/markdown_text_edit/plugin.gd
new file mode 100644
index 0000000..6743e58
--- /dev/null
+++ b/addons/markdown_text_edit/plugin.gd
@@ -0,0 +1,15 @@
+@tool
+extends EditorPlugin
+
+
+
+func _enter_tree() -> void:
+ # Initialization of the plugin goes here.
+ add_custom_type("MarkdownTextEdit", "TextEdit", preload("markdown_text_edit.gd"), null)
+
+
+func _exit_tree() -> void:
+ # Clean-up of the plugin goes here.
+ remove_custom_type("MarkdownTextEdit")
+
+
diff --git a/addons/markdown_text_edit/plugin.gd.uid b/addons/markdown_text_edit/plugin.gd.uid
new file mode 100644
index 0000000..3efbf75
--- /dev/null
+++ b/addons/markdown_text_edit/plugin.gd.uid
@@ -0,0 +1 @@
+uid://eutnj6toxhhs
diff --git a/project.godot b/project.godot
index fefb9a8..b841c2e 100644
--- a/project.godot
+++ b/project.godot
@@ -32,6 +32,10 @@ window/size/transparent=true
window/subwindows/embed_subwindows=false
window/per_pixel_transparency/allowed=true
+[editor_plugins]
+
+enabled=PackedStringArray("res://addons/markdown_text_edit/plugin.cfg")
+
[rendering]
renderer/rendering_method="gl_compatibility"
diff --git a/src/Singletons/signal_bus.gd b/src/Singletons/signal_bus.gd
index 494432d..c7d08ba 100644
--- a/src/Singletons/signal_bus.gd
+++ b/src/Singletons/signal_bus.gd
@@ -1,6 +1,10 @@
extends Node
signal settings_window_closed
+signal edit_window_closed
+signal edit_window_requested(text: String)
+signal edit_window_text_saved(text: String)
+
signal main_panel_color_changed(color: Color)
signal main_window_color_changed(color: Color)
signal side_panel_color_changed(color: Color)
diff --git a/src/UI/done_box.gd b/src/UI/done_box.gd
new file mode 100644
index 0000000..47c3555
--- /dev/null
+++ b/src/UI/done_box.gd
@@ -0,0 +1,38 @@
+extends HBoxContainer
+
+@export var edit_menu: PackedScene
+@export var options_menu: MenuButton
+
+@export var entry_text_box: RichTextLabel
+
+var instantiated_menu
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+ options_menu.get_popup().id_pressed.connect(_on_index_pressed)
+
+ SignalBus.edit_window_text_saved.connect(on_edit_window_text_save)
+ SignalBus.edit_window_closed.connect(on_edit_window_closed)
+
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+ pass
+
+func _on_index_pressed(index:int) -> void:
+ print(index)
+ if index == 0:
+ instantiated_menu = edit_menu.instantiate()
+ add_child(instantiated_menu)
+ SignalBus.edit_window_requested.emit(entry_text_box.text)
+ if index == 1:
+ queue_free()
+
+
+func on_edit_window_text_save(text: String) -> void:
+ entry_text_box.text = text
+
+func on_edit_window_closed() -> void:
+ instantiated_menu.queue_free()
diff --git a/src/UI/done_box.gd.uid b/src/UI/done_box.gd.uid
new file mode 100644
index 0000000..b4bde0e
--- /dev/null
+++ b/src/UI/done_box.gd.uid
@@ -0,0 +1 @@
+uid://buvowannsky2u
diff --git a/src/UI/done_options_menu.gd b/src/UI/done_options_menu.gd
new file mode 100644
index 0000000..4d47ecb
--- /dev/null
+++ b/src/UI/done_options_menu.gd
@@ -0,0 +1,12 @@
+extends MenuButton
+
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+ pass
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+ pass
diff --git a/src/UI/done_options_menu.gd.uid b/src/UI/done_options_menu.gd.uid
new file mode 100644
index 0000000..72993cf
--- /dev/null
+++ b/src/UI/done_options_menu.gd.uid
@@ -0,0 +1 @@
+uid://hx7vjovdnudk
diff --git a/src/UI/editmenu.gd b/src/UI/editmenu.gd
new file mode 100644
index 0000000..b69b2e3
--- /dev/null
+++ b/src/UI/editmenu.gd
@@ -0,0 +1,29 @@
+extends Window
+
+@export var text_edit: TextEdit
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+ SignalBus.edit_window_requested.connect(on_edit_window_requested)
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+ pass
+
+
+func _on_close_requested() -> void:
+ SignalBus.edit_window_closed.emit()
+
+
+func on_edit_window_requested(text: String) -> void:
+ text_edit.text = text
+
+func _on_cancel_button_button_down() -> void:
+ SignalBus.edit_window_closed.emit()
+
+
+func _on_save_button_button_down() -> void:
+ SignalBus.edit_window_text_saved.emit(text_edit.text)
+ SignalBus.edit_window_closed.emit()
diff --git a/src/UI/editmenu.gd.uid b/src/UI/editmenu.gd.uid
new file mode 100644
index 0000000..f6d90cf
--- /dev/null
+++ b/src/UI/editmenu.gd.uid
@@ -0,0 +1 @@
+uid://cdkqu7he8lkb6
diff --git a/src/UI/editmenu.tscn b/src/UI/editmenu.tscn
new file mode 100644
index 0000000..1b7562b
--- /dev/null
+++ b/src/UI/editmenu.tscn
@@ -0,0 +1,58 @@
+[gd_scene load_steps=4 format=3 uid="uid://dcifyvgobrvp5"]
+
+[ext_resource type="Script" uid="uid://cdkqu7he8lkb6" path="res://src/UI/editmenu.gd" id="1_qmobg"]
+[ext_resource type="Texture2D" uid="uid://bpvgbghct7ayv" path="res://src/assets/icons/x.svg" id="2_lut1q"]
+[ext_resource type="Texture2D" uid="uid://cbj48abbpldb" path="res://src/assets/icons/device-floppy.svg" id="3_i6crh"]
+
+[node name="Control" type="Window" node_paths=PackedStringArray("text_edit")]
+title = "Edit Entry"
+initial_position = 1
+size = Vector2i(600, 300)
+exclusive = true
+script = ExtResource("1_qmobg")
+text_edit = NodePath("Panel/MarginContainer/VBoxContainer/TextEdit")
+
+[node name="Panel" type="Panel" parent="."]
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="MarginContainer" type="MarginContainer" parent="Panel"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+theme_override_constants/margin_left = 10
+theme_override_constants/margin_top = 10
+theme_override_constants/margin_right = 10
+theme_override_constants/margin_bottom = 10
+
+[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer"]
+layout_mode = 2
+
+[node name="TextEdit" type="TextEdit" parent="Panel/MarginContainer/VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+wrap_mode = 1
+
+[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 4
+
+[node name="CancelButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer"]
+layout_mode = 2
+text = "Cancel"
+icon = ExtResource("2_lut1q")
+
+[node name="SaveButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer"]
+layout_mode = 2
+text = "Save"
+icon = ExtResource("3_i6crh")
+
+[connection signal="close_requested" from="." to="." method="_on_close_requested"]
+[connection signal="button_down" from="Panel/MarginContainer/VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_cancel_button_button_down"]
+[connection signal="button_down" from="Panel/MarginContainer/VBoxContainer/HBoxContainer/SaveButton" to="." method="_on_save_button_button_down"]
diff --git a/src/UI/main.tscn b/src/UI/main.tscn
index 44fa3f0..63037ee 100644
--- a/src/UI/main.tscn
+++ b/src/UI/main.tscn
@@ -139,6 +139,7 @@ size_flags_vertical = 3
script = ExtResource("5_05tj4")
current_active_panel = NodePath("MainPanel")
container_collection_box = NodePath("Panel/MarginContainer/ScrollContainer/ContainerBox")
+main_panel_scene = ExtResource("9_cqoei")
[node name="Panel" type="Panel" parent="Panel/VBoxContainer/UIManager"]
custom_minimum_size = Vector2(200, 0)
diff --git a/src/UI/main_panel.gd b/src/UI/main_panel.gd
index 275f703..c945a2e 100644
--- a/src/UI/main_panel.gd
+++ b/src/UI/main_panel.gd
@@ -4,10 +4,14 @@ class_name MainPanel extends ScrollContainer
@export var style_box: StyleBoxFlat
@export var panel_main_color: Color
+var id: int = 1
+
+
+
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
panel_main_color = style_box.bg_color
-
+ create_panel_name()
SignalBus.main_panel_color_changed.connect(_on_main_panel_color_changed)
# Called every frame. 'delta' is the elapsed time since the previous frame.
@@ -18,3 +22,9 @@ func _process(delta: float) -> void:
func _on_main_panel_color_changed(color: Color):
style_box.bg_color = color
+
+
+func create_panel_name() -> void:
+ var panel_name: String = "Container %d" % id
+ container_name_label.text = panel_name
+
diff --git a/src/UI/main_panel.tscn b/src/UI/main_panel.tscn
index 47a7772..9bbf6bc 100644
--- a/src/UI/main_panel.tscn
+++ b/src/UI/main_panel.tscn
@@ -1,9 +1,15 @@
-[gd_scene load_steps=5 format=3 uid="uid://cirolvhfd455u"]
+[gd_scene load_steps=11 format=3 uid="uid://cirolvhfd455u"]
[ext_resource type="Theme" uid="uid://bal6yp0a25hf2" path="res://src/theme/main_theme.tres" id="1_c0dr6"]
[ext_resource type="Script" uid="uid://bmsw85eprqln1" path="res://src/UI/main_panel.gd" id="2_5qsb6"]
[ext_resource type="StyleBox" uid="uid://b7rqx5hwj7wff" path="res://src/UI/main_panel.tres" id="3_enj05"]
[ext_resource type="Script" uid="uid://b4q5pgorn5osd" path="res://src/UI/m_panel.gd" id="4_1citv"]
+[ext_resource type="Texture2D" uid="uid://dof65a47bfapk" path="res://src/assets/icons/library-plus.svg" id="5_1citv"]
+[ext_resource type="Texture2D" uid="uid://c1ccasyx80msg" path="res://src/assets/icons/dots-vertical.svg" id="5_bb2jg"]
+[ext_resource type="Script" uid="uid://buvowannsky2u" path="res://src/UI/done_box.gd" id="5_w3kqg"]
+[ext_resource type="PackedScene" uid="uid://dcifyvgobrvp5" path="res://src/UI/editmenu.tscn" id="6_qxra8"]
+[ext_resource type="Texture2D" uid="uid://s3vf3vhl8y3e" path="res://src/assets/icons/trash.svg" id="7_8bhwf"]
+[ext_resource type="Texture2D" uid="uid://ne4o3drvj5vw" path="res://src/assets/icons/color-picker.svg" id="8_8bhwf"]
[node name="MainPanel" type="ScrollContainer" node_paths=PackedStringArray("container_name_label")]
anchors_preset = 15
@@ -40,3 +46,83 @@ text = "Container"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
+
+[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer"]
+layout_mode = 2
+theme_override_constants/separation = 10
+
+[node name="MarginContainer" type="MarginContainer" parent="Panel/VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+theme_override_constants/margin_left = 10
+theme_override_constants/margin_top = 10
+theme_override_constants/margin_right = 10
+theme_override_constants/margin_bottom = 10
+
+[node name="VBoxContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer"]
+layout_mode = 2
+
+[node name="DayContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
+layout_mode = 2
+
+[node name="HBoxContainer" type="HBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer"]
+layout_mode = 2
+size_flags_vertical = 0
+theme_override_constants/separation = -150
+
+[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+theme_override_constants/separation = 10
+
+[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+bbcode_enabled = true
+text = "[b]MM.DD.YYYY[b]"
+fit_content = true
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="HSeparator2" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+theme_override_constants/separation = 10
+
+[node name="DoneBox" type="HBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer" node_paths=PackedStringArray("options_menu", "entry_text_box")]
+layout_mode = 2
+theme_override_constants/separation = 20
+script = ExtResource("5_w3kqg")
+edit_menu = ExtResource("6_qxra8")
+options_menu = NodePath("MenuButton")
+entry_text_box = NodePath("RichTextLabel")
+
+[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DoneBox"]
+layout_mode = 2
+size_flags_horizontal = 3
+focus_mode = 2
+bbcode_enabled = true
+text = "Haaaalooo"
+fit_content = true
+context_menu_enabled = true
+selection_enabled = true
+
+[node name="MenuButton" type="MenuButton" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DoneBox"]
+layout_mode = 2
+icon = ExtResource("5_bb2jg")
+item_count = 2
+popup/item_0/text = "Edit"
+popup/item_0/icon = ExtResource("8_8bhwf")
+popup/item_0/id = 0
+popup/item_1/text = "Delete"
+popup/item_1/icon = ExtResource("7_8bhwf")
+popup/item_1/id = 1
+
+[node name="Button" type="Button" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
+layout_mode = 2
+theme = ExtResource("1_c0dr6")
+text = "Add"
+icon = ExtResource("5_1citv")
+icon_alignment = 1
+vertical_icon_alignment = 0
+expand_icon = true
diff --git a/src/UI/ui_manager.gd b/src/UI/ui_manager.gd
index 0ac70e5..f41d426 100644
--- a/src/UI/ui_manager.gd
+++ b/src/UI/ui_manager.gd
@@ -4,10 +4,11 @@ class_name UIManager extends HBoxContainer
@export var panel_array: Array[MainPanel] = []
@export var container_collection_box: ContainerBox
+@export var main_panel_scene: PackedScene
+
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
- var text: String = "Container %d" % container_collection_box.container_id
- current_active_panel.container_name_label.text = text
+ current_active_panel.id = 1
panel_array.append(current_active_panel)
SignalBus.on_panel_created.connect(_on_panel_created)
@@ -20,11 +21,20 @@ func _process(delta: float) -> void:
func _on_panel_created() -> void:
- var new_panel: MainPanel = MainPanel.new()
+ var new_panel: MainPanel = main_panel_scene.instantiate()
+ new_panel.id = panel_array.size() + 1
panel_array.append(new_panel)
func _on_panel_requested(index: int) -> void:
+ if current_active_panel == panel_array[index]:
+ print("Already active")
+ return
print("Panel: %d requested" % index)
current_active_panel.hide()
current_active_panel = panel_array[index]
- add_child(current_active_panel)
+ if not current_active_panel.is_inside_tree():
+ add_child(current_active_panel)
+ else:
+ current_active_panel.show()
+
+
diff --git a/src/assets/icons/device-floppy.svg b/src/assets/icons/device-floppy.svg
new file mode 100644
index 0000000..005a4ec
--- /dev/null
+++ b/src/assets/icons/device-floppy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/device-floppy.svg.import b/src/assets/icons/device-floppy.svg.import
new file mode 100644
index 0000000..d33b712
--- /dev/null
+++ b/src/assets/icons/device-floppy.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cbj48abbpldb"
+path="res://.godot/imported/device-floppy.svg-196bee635b672ffa0178dd7fca5a05a1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://src/assets/icons/device-floppy.svg"
+dest_files=["res://.godot/imported/device-floppy.svg-196bee635b672ffa0178dd7fca5a05a1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/src/assets/icons/dots-vertical.svg b/src/assets/icons/dots-vertical.svg
new file mode 100644
index 0000000..3458bd7
--- /dev/null
+++ b/src/assets/icons/dots-vertical.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/dots-vertical.svg.import b/src/assets/icons/dots-vertical.svg.import
new file mode 100644
index 0000000..699605c
--- /dev/null
+++ b/src/assets/icons/dots-vertical.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c1ccasyx80msg"
+path="res://.godot/imported/dots-vertical.svg-77a2a2e2f26aa993a761e42c62684789.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://src/assets/icons/dots-vertical.svg"
+dest_files=["res://.godot/imported/dots-vertical.svg-77a2a2e2f26aa993a761e42c62684789.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/src/assets/icons/edit.svg b/src/assets/icons/edit.svg
new file mode 100644
index 0000000..de37f5e
--- /dev/null
+++ b/src/assets/icons/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/edit.svg.import b/src/assets/icons/edit.svg.import
new file mode 100644
index 0000000..0e8956f
--- /dev/null
+++ b/src/assets/icons/edit.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b8jge687ywvxq"
+path="res://.godot/imported/edit.svg-50f092b99a31ef59a0174f63ff97ec28.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://src/assets/icons/edit.svg"
+dest_files=["res://.godot/imported/edit.svg-50f092b99a31ef59a0174f63ff97ec28.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/src/assets/icons/trash.svg b/src/assets/icons/trash.svg
new file mode 100644
index 0000000..f315510
--- /dev/null
+++ b/src/assets/icons/trash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/trash.svg.import b/src/assets/icons/trash.svg.import
new file mode 100644
index 0000000..bfa3b8e
--- /dev/null
+++ b/src/assets/icons/trash.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://s3vf3vhl8y3e"
+path="res://.godot/imported/trash.svg-a7d9a96809f7fcd93ed16ffbf8de08f9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://src/assets/icons/trash.svg"
+dest_files=["res://.godot/imported/trash.svg-a7d9a96809f7fcd93ed16ffbf8de08f9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false