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
use *;
/// The site footer: one row of text and links.
///
/// Every part of the content comes from the caller: the text with its
/// own destination — a license line that opens the project's repository
/// — and the items, each with its own text, its own destination and its
/// own optional icon.
///
/// The row is a single line: an item that does not fit is cut with an
/// ellipsis instead of wrapping — a filing number broken across two
/// lines is a number nobody can read or copy.
///
/// # Arguments
///
/// - `VirtualNode<EuvFooterProps>` - The props node.
///
/// # Returns
///
/// - `VirtualNode` - The footer virtual DOM tree.
/// Renders the optional icon of a footer item.
///
/// An item without an icon renders nothing, so the caller does not
/// have to branch on the icon's presence.
///
/// # Arguments
///
/// - `&EuvFooterItem` - The item to read the icon from.
///
/// # Returns
///
/// - `VirtualNode` - The icon element, or an empty node.