yew_assets/components/
ux_assets.rs

1use yew::prelude::*;
2
3pub enum Msg {}
4
5/// # UxAssets
6///
7/// Add a svg UxIcon
8///
9/// ## Feature
10/// ux_assets
11///
12/// ## Example
13/// ```rust
14/// use yew::prelude::*;
15/// use yew_assets::{UxAssets, UxIcon};
16///
17/// pub struct App;
18
19/// impl Component for App {
20///     type Message = ();
21///     type Properties = ();
22///
23///     fn create(_: Self::Properties, _: ComponentLink<Self>) -> Self {
24///         App {}
25///     }
26///
27///     fn update(&mut self, _: Self::Message) -> ShouldRender {
28///         false
29///     }
30///
31///     fn change(&mut self, _: Self::Properties) -> ShouldRender {
32///         false
33///     }
34///
35///     fn view(&self) -> Html {
36///         <UxAssets
37///             icon = UxIcon::ShieldOff
38///             fill = "#fff"
39///             size = ("30".to_string(),"30".to_string())
40///         />
41///     }
42/// }
43/// ```
44pub struct UxAssets {
45    pub props: Props,
46}
47
48#[derive(Clone, Properties)]
49pub struct Props {
50    /// List of UxIcons
51    pub icon: UxIcon,
52    /// Size of the UxIcon
53    #[prop_or(("24".to_string(),"24".to_string()))]
54    pub size: (String, String),
55    /// Defines the position and dimension of the UxIcon
56    #[prop_or(("0".to_string(),"0".to_string(),"24".to_string(),"24".to_string()))]
57    pub view_box: (String, String, String, String),
58    /// Fill the color of the asset
59    #[prop_or("none".to_string())]
60    pub fill: String,
61    /// General property to add custom class styles
62    #[prop_or_default]
63    pub class_name: String,
64    /// General property to add custom id
65    #[prop_or_default]
66    pub id: String,
67}
68
69impl Component for UxAssets {
70    type Properties = Props;
71    type Message = Msg;
72
73    fn create(props: Self::Properties, _link: ComponentLink<Self>) -> Self {
74        Self { props }
75    }
76
77    fn update(&mut self, _msg: Self::Message) -> ShouldRender {
78        false
79    }
80
81    fn change(&mut self, props: Self::Properties) -> ShouldRender {
82        self.props = props;
83        true
84    }
85
86    fn view(&self) -> Html {
87        get_icon(
88            self.props.icon.clone(),
89            self.props.size.clone(),
90            self.props.view_box.clone(),
91            self.props.fill.clone(),
92            self.props.class_name.clone(),
93            self.props.id.clone(),
94        )
95    }
96}
97
98#[derive(Clone)]
99pub enum UxIcon {
100    ShieldOff,
101    Archive,
102    Activity,
103    Shield,
104    Crosshair,
105    BellOff,
106    EyeOff,
107    Sidebar,
108    MoreVertical,
109    Bell,
110    RefreshCw,
111    Clipboard,
112    Layout,
113    Loader,
114    Grid,
115    ToggleLeft,
116    Sliders,
117    Settings,
118    Eye,
119    Home,
120    Link,
121    LogIn,
122    Menu,
123    RotateCw,
124    Tool,
125    ShoppingCart,
126    ToggleRight,
127    Filter,
128    Lock,
129    Columns,
130    Unlock,
131    Search,
132    ShoppingBag,
133    LogOut,
134    Layers,
135    BookOpen,
136    MoreHorizontal,
137    MousePointer,
138    Shuffle,
139    Bookmark,
140    Tag,
141    Link2,
142    Pocket,
143}
144
145fn get_icon(
146    icon: UxIcon,
147    size: (String, String),
148    view_box: (String, String, String, String),
149    fill: String,
150    class_name: String,
151    id: String,
152) -> Html {
153    match icon {
154        UxIcon::ShieldOff => get_shieldoff(size, view_box, fill, class_name, id),
155        UxIcon::Archive => get_archive(size, view_box, fill, class_name, id),
156        UxIcon::Activity => get_activity(size, view_box, fill, class_name, id),
157        UxIcon::Shield => get_shield(size, view_box, fill, class_name, id),
158        UxIcon::Crosshair => get_crosshair(size, view_box, fill, class_name, id),
159        UxIcon::BellOff => get_belloff(size, view_box, fill, class_name, id),
160        UxIcon::EyeOff => get_eyeoff(size, view_box, fill, class_name, id),
161        UxIcon::Sidebar => get_sidebar(size, view_box, fill, class_name, id),
162        UxIcon::MoreVertical => get_morevertical(size, view_box, fill, class_name, id),
163        UxIcon::Bell => get_bell(size, view_box, fill, class_name, id),
164        UxIcon::RefreshCw => get_refreshcw(size, view_box, fill, class_name, id),
165        UxIcon::Clipboard => get_clipboard(size, view_box, fill, class_name, id),
166        UxIcon::Layout => get_layout(size, view_box, fill, class_name, id),
167        UxIcon::Loader => get_loader(size, view_box, fill, class_name, id),
168        UxIcon::Grid => get_grid(size, view_box, fill, class_name, id),
169        UxIcon::ToggleLeft => get_toggleleft(size, view_box, fill, class_name, id),
170        UxIcon::Sliders => get_sliders(size, view_box, fill, class_name, id),
171        UxIcon::Settings => get_settings(size, view_box, fill, class_name, id),
172        UxIcon::Eye => get_eye(size, view_box, fill, class_name, id),
173        UxIcon::Home => get_home(size, view_box, fill, class_name, id),
174        UxIcon::Link => get_link(size, view_box, fill, class_name, id),
175        UxIcon::LogIn => get_login(size, view_box, fill, class_name, id),
176        UxIcon::Menu => get_menu(size, view_box, fill, class_name, id),
177        UxIcon::RotateCw => get_rotatecw(size, view_box, fill, class_name, id),
178        UxIcon::Tool => get_tool(size, view_box, fill, class_name, id),
179        UxIcon::ShoppingCart => get_shoppingcart(size, view_box, fill, class_name, id),
180        UxIcon::ToggleRight => get_toggleright(size, view_box, fill, class_name, id),
181        UxIcon::Filter => get_filter(size, view_box, fill, class_name, id),
182        UxIcon::Lock => get_lock(size, view_box, fill, class_name, id),
183        UxIcon::Columns => get_columns(size, view_box, fill, class_name, id),
184        UxIcon::Unlock => get_unlock(size, view_box, fill, class_name, id),
185        UxIcon::Search => get_search(size, view_box, fill, class_name, id),
186        UxIcon::ShoppingBag => get_shoppingbag(size, view_box, fill, class_name, id),
187        UxIcon::LogOut => get_logout(size, view_box, fill, class_name, id),
188        UxIcon::Layers => get_layers(size, view_box, fill, class_name, id),
189        UxIcon::BookOpen => get_bookopen(size, view_box, fill, class_name, id),
190        UxIcon::MoreHorizontal => get_morehorizontal(size, view_box, fill, class_name, id),
191        UxIcon::MousePointer => get_mousepointer(size, view_box, fill, class_name, id),
192        UxIcon::Shuffle => get_shuffle(size, view_box, fill, class_name, id),
193        UxIcon::Bookmark => get_bookmark(size, view_box, fill, class_name, id),
194        UxIcon::Tag => get_tag(size, view_box, fill, class_name, id),
195        UxIcon::Link2 => get_link2(size, view_box, fill, class_name, id),
196        UxIcon::Pocket => get_pocket(size, view_box, fill, class_name, id),
197    }
198}
199
200fn get_shieldoff(
201    size: (String, String),
202    view_box: (String, String, String, String),
203    fill: String,
204    class_name: String,
205    id: String,
206) -> Html {
207    html! {
208        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
209            view_box.0,
210            view_box.1,
211            view_box.2,
212            view_box.3,
213        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18"></path><path d="M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>
214    }
215}
216
217fn get_archive(
218    size: (String, String),
219    view_box: (String, String, String, String),
220    fill: String,
221    class_name: String,
222    id: String,
223) -> Html {
224    html! {
225        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
226            view_box.0,
227            view_box.1,
228            view_box.2,
229            view_box.3,
230        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="21 8 21 21 3 21 3 8"></polyline><rect x="1" y="3" width="22" height="5"></rect><line x1="10" y1="12" x2="14" y2="12"></line></svg>
231    }
232}
233
234fn get_activity(
235    size: (String, String),
236    view_box: (String, String, String, String),
237    fill: String,
238    class_name: String,
239    id: String,
240) -> Html {
241    html! {
242        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
243            view_box.0,
244            view_box.1,
245            view_box.2,
246            view_box.3,
247        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
248    }
249}
250
251fn get_shield(
252    size: (String, String),
253    view_box: (String, String, String, String),
254    fill: String,
255    class_name: String,
256    id: String,
257) -> Html {
258    html! {
259        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
260            view_box.0,
261            view_box.1,
262            view_box.2,
263            view_box.3,
264        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
265    }
266}
267
268fn get_crosshair(
269    size: (String, String),
270    view_box: (String, String, String, String),
271    fill: String,
272    class_name: String,
273    id: String,
274) -> Html {
275    html! {
276        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
277            view_box.0,
278            view_box.1,
279            view_box.2,
280            view_box.3,
281        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="10"></circle><line x1="22" y1="12" x2="18" y2="12"></line><line x1="6" y1="12" x2="2" y2="12"></line><line x1="12" y1="6" x2="12" y2="2"></line><line x1="12" y1="22" x2="12" y2="18"></line></svg>
282    }
283}
284
285fn get_belloff(
286    size: (String, String),
287    view_box: (String, String, String, String),
288    fill: String,
289    class_name: String,
290    id: String,
291) -> Html {
292    html! {
293        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
294            view_box.0,
295            view_box.1,
296            view_box.2,
297            view_box.3,
298        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M13.73 21a2 2 0 0 1-3.46 0"></path><path d="M18.63 13A17.89 17.89 0 0 1 18 8"></path><path d="M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14"></path><path d="M18 8a6 6 0 0 0-9.33-5"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>
299    }
300}
301
302fn get_eyeoff(
303    size: (String, String),
304    view_box: (String, String, String, String),
305    fill: String,
306    class_name: String,
307    id: String,
308) -> Html {
309    html! {
310        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
311            view_box.0,
312            view_box.1,
313            view_box.2,
314            view_box.3,
315        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>
316    }
317}
318
319fn get_sidebar(
320    size: (String, String),
321    view_box: (String, String, String, String),
322    fill: String,
323    class_name: String,
324    id: String,
325) -> Html {
326    html! {
327        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
328            view_box.0,
329            view_box.1,
330            view_box.2,
331            view_box.3,
332        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
333    }
334}
335
336fn get_morevertical(
337    size: (String, String),
338    view_box: (String, String, String, String),
339    fill: String,
340    class_name: String,
341    id: String,
342) -> Html {
343    html! {
344        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
345            view_box.0,
346            view_box.1,
347            view_box.2,
348            view_box.3,
349        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
350    }
351}
352
353fn get_bell(
354    size: (String, String),
355    view_box: (String, String, String, String),
356    fill: String,
357    class_name: String,
358    id: String,
359) -> Html {
360    html! {
361        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
362            view_box.0,
363            view_box.1,
364            view_box.2,
365            view_box.3,
366        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path></svg>
367    }
368}
369
370fn get_refreshcw(
371    size: (String, String),
372    view_box: (String, String, String, String),
373    fill: String,
374    class_name: String,
375    id: String,
376) -> Html {
377    html! {
378        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
379            view_box.0,
380            view_box.1,
381            view_box.2,
382            view_box.3,
383        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
384    }
385}
386
387fn get_clipboard(
388    size: (String, String),
389    view_box: (String, String, String, String),
390    fill: String,
391    class_name: String,
392    id: String,
393) -> Html {
394    html! {
395        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
396            view_box.0,
397            view_box.1,
398            view_box.2,
399            view_box.3,
400        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><rect x="8" y="2" width="8" height="4" rx="1" ry="1"></rect></svg>
401    }
402}
403
404fn get_layout(
405    size: (String, String),
406    view_box: (String, String, String, String),
407    fill: String,
408    class_name: String,
409    id: String,
410) -> Html {
411    html! {
412        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
413            view_box.0,
414            view_box.1,
415            view_box.2,
416            view_box.3,
417        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
418    }
419}
420
421fn get_loader(
422    size: (String, String),
423    view_box: (String, String, String, String),
424    fill: String,
425    class_name: String,
426    id: String,
427) -> Html {
428    html! {
429        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
430            view_box.0,
431            view_box.1,
432            view_box.2,
433            view_box.3,
434        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><line x1="12" y1="2" x2="12" y2="6"></line><line x1="12" y1="18" x2="12" y2="22"></line><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"></line><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"></line><line x1="2" y1="12" x2="6" y2="12"></line><line x1="18" y1="12" x2="22" y2="12"></line><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"></line><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"></line></svg>
435    }
436}
437
438fn get_grid(
439    size: (String, String),
440    view_box: (String, String, String, String),
441    fill: String,
442    class_name: String,
443    id: String,
444) -> Html {
445    html! {
446        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
447            view_box.0,
448            view_box.1,
449            view_box.2,
450            view_box.3,
451        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
452    }
453}
454
455fn get_toggleleft(
456    size: (String, String),
457    view_box: (String, String, String, String),
458    fill: String,
459    class_name: String,
460    id: String,
461) -> Html {
462    html! {
463        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
464            view_box.0,
465            view_box.1,
466            view_box.2,
467            view_box.3,
468        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="1" y="5" width="22" height="14" rx="7" ry="7"></rect><circle cx="8" cy="12" r="3"></circle></svg>
469    }
470}
471
472fn get_sliders(
473    size: (String, String),
474    view_box: (String, String, String, String),
475    fill: String,
476    class_name: String,
477    id: String,
478) -> Html {
479    html! {
480        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
481            view_box.0,
482            view_box.1,
483            view_box.2,
484            view_box.3,
485        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><line x1="4" y1="21" x2="4" y2="14"></line><line x1="4" y1="10" x2="4" y2="3"></line><line x1="12" y1="21" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="3"></line><line x1="20" y1="21" x2="20" y2="16"></line><line x1="20" y1="12" x2="20" y2="3"></line><line x1="1" y1="14" x2="7" y2="14"></line><line x1="9" y1="8" x2="15" y2="8"></line><line x1="17" y1="16" x2="23" y2="16"></line></svg>
486    }
487}
488
489fn get_settings(
490    size: (String, String),
491    view_box: (String, String, String, String),
492    fill: String,
493    class_name: String,
494    id: String,
495) -> Html {
496    html! {
497        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
498            view_box.0,
499            view_box.1,
500            view_box.2,
501            view_box.3,
502        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
503    }
504}
505
506fn get_eye(
507    size: (String, String),
508    view_box: (String, String, String, String),
509    fill: String,
510    class_name: String,
511    id: String,
512) -> Html {
513    html! {
514        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
515            view_box.0,
516            view_box.1,
517            view_box.2,
518            view_box.3,
519        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
520    }
521}
522
523fn get_home(
524    size: (String, String),
525    view_box: (String, String, String, String),
526    fill: String,
527    class_name: String,
528    id: String,
529) -> Html {
530    html! {
531        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
532            view_box.0,
533            view_box.1,
534            view_box.2,
535            view_box.3,
536        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
537    }
538}
539
540fn get_link(
541    size: (String, String),
542    view_box: (String, String, String, String),
543    fill: String,
544    class_name: String,
545    id: String,
546) -> Html {
547    html! {
548        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
549            view_box.0,
550            view_box.1,
551            view_box.2,
552            view_box.3,
553        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>
554    }
555}
556
557fn get_login(
558    size: (String, String),
559    view_box: (String, String, String, String),
560    fill: String,
561    class_name: String,
562    id: String,
563) -> Html {
564    html! {
565        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
566            view_box.0,
567            view_box.1,
568            view_box.2,
569            view_box.3,
570        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path><polyline points="10 17 15 12 10 7"></polyline><line x1="15" y1="12" x2="3" y2="12"></line></svg>
571    }
572}
573
574fn get_menu(
575    size: (String, String),
576    view_box: (String, String, String, String),
577    fill: String,
578    class_name: String,
579    id: String,
580) -> Html {
581    html! {
582        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
583            view_box.0,
584            view_box.1,
585            view_box.2,
586            view_box.3,
587        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
588    }
589}
590
591fn get_rotatecw(
592    size: (String, String),
593    view_box: (String, String, String, String),
594    fill: String,
595    class_name: String,
596    id: String,
597) -> Html {
598    html! {
599        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
600            view_box.0,
601            view_box.1,
602            view_box.2,
603            view_box.3,
604        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="23 4 23 10 17 10"></polyline><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"></path></svg>
605    }
606}
607
608fn get_tool(
609    size: (String, String),
610    view_box: (String, String, String, String),
611    fill: String,
612    class_name: String,
613    id: String,
614) -> Html {
615    html! {
616        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
617            view_box.0,
618            view_box.1,
619            view_box.2,
620            view_box.3,
621        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
622    }
623}
624
625fn get_shoppingcart(
626    size: (String, String),
627    view_box: (String, String, String, String),
628    fill: String,
629    class_name: String,
630    id: String,
631) -> Html {
632    html! {
633        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
634            view_box.0,
635            view_box.1,
636            view_box.2,
637            view_box.3,
638        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>
639    }
640}
641
642fn get_toggleright(
643    size: (String, String),
644    view_box: (String, String, String, String),
645    fill: String,
646    class_name: String,
647    id: String,
648) -> Html {
649    html! {
650        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
651            view_box.0,
652            view_box.1,
653            view_box.2,
654            view_box.3,
655        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="1" y="5" width="22" height="14" rx="7" ry="7"></rect><circle cx="16" cy="12" r="3"></circle></svg>
656    }
657}
658
659fn get_filter(
660    size: (String, String),
661    view_box: (String, String, String, String),
662    fill: String,
663    class_name: String,
664    id: String,
665) -> Html {
666    html! {
667        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
668            view_box.0,
669            view_box.1,
670            view_box.2,
671            view_box.3,
672        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>
673    }
674}
675
676fn get_lock(
677    size: (String, String),
678    view_box: (String, String, String, String),
679    fill: String,
680    class_name: String,
681    id: String,
682) -> Html {
683    html! {
684        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
685            view_box.0,
686            view_box.1,
687            view_box.2,
688            view_box.3,
689        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
690    }
691}
692
693fn get_columns(
694    size: (String, String),
695    view_box: (String, String, String, String),
696    fill: String,
697    class_name: String,
698    id: String,
699) -> Html {
700    html! {
701        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
702            view_box.0,
703            view_box.1,
704            view_box.2,
705            view_box.3,
706        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18"></path></svg>
707    }
708}
709
710fn get_unlock(
711    size: (String, String),
712    view_box: (String, String, String, String),
713    fill: String,
714    class_name: String,
715    id: String,
716) -> Html {
717    html! {
718        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
719            view_box.0,
720            view_box.1,
721            view_box.2,
722            view_box.3,
723        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 9.9-1"></path></svg>
724    }
725}
726
727fn get_search(
728    size: (String, String),
729    view_box: (String, String, String, String),
730    fill: String,
731    class_name: String,
732    id: String,
733) -> Html {
734    html! {
735        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
736            view_box.0,
737            view_box.1,
738            view_box.2,
739            view_box.3,
740        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
741    }
742}
743
744fn get_shoppingbag(
745    size: (String, String),
746    view_box: (String, String, String, String),
747    fill: String,
748    class_name: String,
749    id: String,
750) -> Html {
751    html! {
752        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
753            view_box.0,
754            view_box.1,
755            view_box.2,
756            view_box.3,
757        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path><line x1="3" y1="6" x2="21" y2="6"></line><path d="M16 10a4 4 0 0 1-8 0"></path></svg>
758    }
759}
760
761fn get_logout(
762    size: (String, String),
763    view_box: (String, String, String, String),
764    fill: String,
765    class_name: String,
766    id: String,
767) -> Html {
768    html! {
769        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
770            view_box.0,
771            view_box.1,
772            view_box.2,
773            view_box.3,
774        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg>
775    }
776}
777
778fn get_layers(
779    size: (String, String),
780    view_box: (String, String, String, String),
781    fill: String,
782    class_name: String,
783    id: String,
784) -> Html {
785    html! {
786        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
787            view_box.0,
788            view_box.1,
789            view_box.2,
790            view_box.3,
791        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
792    }
793}
794
795fn get_bookopen(
796    size: (String, String),
797    view_box: (String, String, String, String),
798    fill: String,
799    class_name: String,
800    id: String,
801) -> Html {
802    html! {
803        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
804            view_box.0,
805            view_box.1,
806            view_box.2,
807            view_box.3,
808        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
809    }
810}
811
812fn get_morehorizontal(
813    size: (String, String),
814    view_box: (String, String, String, String),
815    fill: String,
816    class_name: String,
817    id: String,
818) -> Html {
819    html! {
820        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
821            view_box.0,
822            view_box.1,
823            view_box.2,
824            view_box.3,
825        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg>
826    }
827}
828
829fn get_mousepointer(
830    size: (String, String),
831    view_box: (String, String, String, String),
832    fill: String,
833    class_name: String,
834    id: String,
835) -> Html {
836    html! {
837        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
838            view_box.0,
839            view_box.1,
840            view_box.2,
841            view_box.3,
842        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"></path><path d="M13 13l6 6"></path></svg>
843    }
844}
845
846fn get_shuffle(
847    size: (String, String),
848    view_box: (String, String, String, String),
849    fill: String,
850    class_name: String,
851    id: String,
852) -> Html {
853    html! {
854        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
855            view_box.0,
856            view_box.1,
857            view_box.2,
858            view_box.3,
859        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="16 3 21 3 21 8"></polyline><line x1="4" y1="20" x2="21" y2="3"></line><polyline points="21 16 21 21 16 21"></polyline><line x1="15" y1="15" x2="21" y2="21"></line><line x1="4" y1="4" x2="9" y2="9"></line></svg>
860    }
861}
862
863fn get_bookmark(
864    size: (String, String),
865    view_box: (String, String, String, String),
866    fill: String,
867    class_name: String,
868    id: String,
869) -> Html {
870    html! {
871        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
872            view_box.0,
873            view_box.1,
874            view_box.2,
875            view_box.3,
876        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path></svg>
877    }
878}
879
880fn get_tag(
881    size: (String, String),
882    view_box: (String, String, String, String),
883    fill: String,
884    class_name: String,
885    id: String,
886) -> Html {
887    html! {
888        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
889            view_box.0,
890            view_box.1,
891            view_box.2,
892            view_box.3,
893        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
894    }
895}
896
897fn get_link2(
898    size: (String, String),
899    view_box: (String, String, String, String),
900    fill: String,
901    class_name: String,
902    id: String,
903) -> Html {
904    html! {
905        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
906            view_box.0,
907            view_box.1,
908            view_box.2,
909            view_box.3,
910        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg>
911    }
912}
913
914fn get_pocket(
915    size: (String, String),
916    view_box: (String, String, String, String),
917    fill: String,
918    class_name: String,
919    id: String,
920) -> Html {
921    html! {
922        <svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
923            view_box.0,
924            view_box.1,
925            view_box.2,
926            view_box.3,
927        ) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z"></path><polyline points="8 10 12 14 16 10"></polyline></svg>
928    }
929}