1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//! SVG Emoji and Icon Collections
//!
//! This module provides three comprehensive SVG collections available as optional features:
//!
//! - **Solar Icons** (~1200 icons): UI/UX icon set with variants (feature: `svg_solar`)
//! - **Noto Emoji** (~3600 emoji): Google's emoji collection with skin tone and gender variants (feature: `svg_noto`)
//! - **Twemoji** (~3700 emoji): Twitter's emoji collection (feature: `svg_twemoji`)
//!
//! ## Features
//!
//! Add the features you need to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! egui-material3 = { version = "0.0.8", features = ["svg_solar"] }
//! # Or enable all: features = ["svg_emoji"]
//! ```
//!
//! ## Usage
//!
//! Icons and emojis are accessible through HashMaps for O(1) lookup:
//!
//! ```rust
//! use egui_material3::svg_emoji::{SOLAR_ICONS, NOTO_EMOJIS, TWEMOJI};
//!
//! // Get a Solar icon (requires svg_solar feature)
//! if let Some(svg) = SOLAR_ICONS.get("home") {
//! // Use the SVG data
//! }
//!
//! // Get a Noto emoji (requires svg_noto feature)
//! if let Some(svg) = NOTO_EMOJIS.get("emoji_u1f600") {
//! // Grinning face emoji
//! }
//!
//! // Get a Twemoji (requires svg_twemoji feature)
//! if let Some(svg) = TWEMOJI.get("1f600") {
//! // Grinning face emoji
//! }
//! ```
//!
//! ## Notes
//!
//! - SVG files are embedded at compile time when features are enabled
//! - Files are downloaded automatically during build if not in local checkout
//! - Each collection is ~5-40 MiB when embedded, so only enable what you need
// Include generated constants and HashMaps from build script
include!;
// Helper structures for organized access to icon collections