diff --git a/assets/icons/lucide/book-open.svg b/assets/icons/lucide/book-open.svg new file mode 100644 index 0000000..27e4bf3 --- /dev/null +++ b/assets/icons/lucide/book-open.svg @@ -0,0 +1,14 @@ + + + + diff --git a/assets/icons/lucide/book-open.svg.import b/assets/icons/lucide/book-open.svg.import new file mode 100644 index 0000000..c374e89 --- /dev/null +++ b/assets/icons/lucide/book-open.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgv42gr8xm8rf" +path="res://.godot/imported/book-open.svg-683be4c8f98553ef842aedfa9c35759c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/lucide/book-open.svg" +dest_files=["res://.godot/imported/book-open.svg-683be4c8f98553ef842aedfa9c35759c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/assets/icons/lucide/star.svg b/assets/icons/lucide/star.svg new file mode 100644 index 0000000..31388b6 --- /dev/null +++ b/assets/icons/lucide/star.svg @@ -0,0 +1,13 @@ + + + diff --git a/assets/icons/lucide/star.svg.import b/assets/icons/lucide/star.svg.import new file mode 100644 index 0000000..44dae9d --- /dev/null +++ b/assets/icons/lucide/star.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dty3x2w0mjrv3" +path="res://.godot/imported/star.svg-5cf15f039032ad2da3c91090b75025e6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/lucide/star.svg" +dest_files=["res://.godot/imported/star.svg-5cf15f039032ad2da3c91090b75025e6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/scripts/ui/dashboard_screen.gd b/scripts/ui/dashboard_screen.gd index cbbd81a..d862cc6 100644 --- a/scripts/ui/dashboard_screen.gd +++ b/scripts/ui/dashboard_screen.gd @@ -82,7 +82,7 @@ func _build() -> void: qbank_sparkline = DashboardSparkline.new() qbank_sparkline.custom_minimum_size = Vector2(0, 34) - _add_stat_card("qbank", "Question Bank Rating", "chart-no-axes-column-increasing", Brand.ROYAL_BLUE, qbank_sparkline) + _add_stat_card("qbank", "Question Bank Rating", "book-open", Brand.ROYAL_BLUE, qbank_sparkline) ccs_sparkline = DashboardSparkline.new() ccs_sparkline.custom_minimum_size = Vector2(0, 34) @@ -90,7 +90,7 @@ func _build() -> void: readiness_segment_bar = DashboardSegmentBar.new() readiness_segment_bar.custom_minimum_size = Vector2(0, 10) - _add_stat_card("readiness", "Exam Readiness", "activity", Brand.PURPLE, readiness_segment_bar) + _add_stat_card("readiness", "Exam Readiness", "chart-no-axes-column-increasing", Brand.PURPLE, readiness_segment_bar) accuracy_progress_bar = ProgressBar.new() accuracy_progress_bar.show_percentage = false @@ -98,7 +98,7 @@ func _build() -> void: accuracy_progress_bar.max_value = 100.0 accuracy_progress_bar.custom_minimum_size = Vector2(0, 10) _style_progress(accuracy_progress_bar, Brand.AMBER) - _add_stat_card("accuracy", "Average Score", "circle-check", Brand.AMBER, accuracy_progress_bar) + _add_stat_card("accuracy", "Average Score", "star", Brand.AMBER, accuracy_progress_bar) analytics_grid = GridContainer.new() analytics_grid.columns = 2 @@ -415,6 +415,27 @@ func _render_recent(items: Array) -> void: recent_list.add_child(row) +func _info_badge(dark: bool) -> Control: + var badge := PanelContainer.new() + badge.custom_minimum_size = Vector2(15, 15) + badge.size_flags_vertical = Control.SIZE_SHRINK_BEGIN + var box := StyleBoxFlat.new() + box.bg_color = Color.TRANSPARENT + box.border_color = Brand.muted_color(dark) + box.set_border_width_all(1) + box.set_corner_radius_all(8) + box.content_margin_left = 0 + box.content_margin_right = 0 + box.content_margin_top = 0 + box.content_margin_bottom = 0 + badge.add_theme_stylebox_override("panel", box) + var glyph := _label("i", 10, Brand.muted_color(dark), true) + glyph.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + glyph.vertical_alignment = VERTICAL_ALIGNMENT_CENTER + badge.add_child(glyph) + return badge + + func _add_stat_card(key: String, title: String, icon_name: String, accent: Color, bottom_visual: Control) -> void: var dark := UIThemeService.is_dark_mode() var card_content := VBoxContainer.new() @@ -440,9 +461,7 @@ func _add_stat_card(key: String, title: String, icon_name: String, accent: Color title_label.size_flags_horizontal = Control.SIZE_EXPAND_FILL title_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART header.add_child(title_label) - var info_label := _label("ⓘ", 13, Brand.muted_color(dark)) - info_label.size_flags_vertical = Control.SIZE_SHRINK_BEGIN - header.add_child(info_label) + header.add_child(_info_badge(dark)) var value := _label("--", 28, Brand.text_color(dark), true) card_content.add_child(value) diff --git a/scripts/ui/dashboard_segment_bar.gd.uid b/scripts/ui/dashboard_segment_bar.gd.uid new file mode 100644 index 0000000..31970e5 --- /dev/null +++ b/scripts/ui/dashboard_segment_bar.gd.uid @@ -0,0 +1 @@ +uid://duq4hsl7b72g2 diff --git a/scripts/ui/dashboard_sparkline.gd.uid b/scripts/ui/dashboard_sparkline.gd.uid new file mode 100644 index 0000000..51472ab --- /dev/null +++ b/scripts/ui/dashboard_sparkline.gd.uid @@ -0,0 +1 @@ +uid://4rtqkgrljvw5 diff --git a/web/medmind_shell.html b/web/medmind_shell.html index 345dbfe..27b7a9e 100644 --- a/web/medmind_shell.html +++ b/web/medmind_shell.html @@ -211,6 +211,7 @@ letter-spacing: 0; line-height: 1.3; margin: 17px 0 clamp(36px, 6vh, 54px); + text-align: center; width: 100%; }