authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-02 18:24:51-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-02 19:55:46-07:00
log08d400c2cd4212f7438a51ea0993a4fe19944a62
treea1311591dfdf132b349c4f9a5c586263cd1c0e6e
parent29bec7f52888c6acb305478e67c31be37a5d3edd
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

feat: every command and context-menu action has an icon

New Page, New Section and the rest share the page, tab and notebook art under a badge (add, remove, check, history, link, lock and so on), layered in art.rs. The palette, the toolbar menus, and the page, tab, notebook, text and version menus show them; a disabled row fades its icon, colours and all. Assisted-by: claude-opus-5.5

71 files changed, 877 insertions(+), 40 deletions(-)

crates/snowbound/assets/icons/badge-add.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#86e88a"/><stop offset="1" stop-color="#1f9a3e"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path class="badge" d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#16762e" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.35 10.7A2.4 2.4 0 0 1 11.1 9.05" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.5"/>
8 <path d="M9.6 10.85H13.4V12.15H9.6ZM10.85 9.6H12.15V13.4H10.85Z" fill="#ffffff"/>
9</svg>
crates/snowbound/assets/icons/badge-brush.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#b86e00" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.9 13.1L11.5 11.5" fill="none" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round"/>
8 <path d="M11.2 10.6L12.4 9.4L13.6 10.6L12.4 11.8Z" fill="#ffffff" stroke="#ffffff" stroke-width="0.5" stroke-linejoin="round"/>
9</svg>
crates/snowbound/assets/icons/badge-check.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#8fe39a"/><stop offset="1" stop-color="#28a745"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#1b7a33" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.75 11.5L11 12.75L13.25 10.25" fill="none" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-close.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#5a6676" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M10.15 10.15L12.85 12.85M12.85 10.15L10.15 12.85" fill="none" stroke="#ffffff" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-command.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#6a7482"/><stop offset="1" stop-color="#3b4350"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#2b323b" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M10.1 10.1L11.5 11.5L10.1 12.9M12 12.9H13.3" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-drop.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffb07a"/><stop offset="1" stop-color="#f0603a"/></linearGradient>
4 </defs>
5 <path d="M11.5 7.5C11.5 7.5 8.5 10.5 8.5 12.25A3 3 0 0 0 14.5 12.25C14.5 10.5 11.5 7.5 11.5 7.5Z" fill="none" stroke="#ffffff" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
6 <path d="M11.5 8.25C11.5 8.25 8.5 11.25 8.5 13A3 3 0 0 0 14.5 13C14.5 11.25 11.5 8.25 11.5 8.25Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M11.5 7.5C11.5 7.5 8.5 10.5 8.5 12.25A3 3 0 0 0 14.5 12.25C14.5 10.5 11.5 7.5 11.5 7.5Z" fill="url(#g0)" stroke="#c4401a" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M10 11.9A1.6 1.6 0 0 0 10.6 13.3" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
9</svg>
crates/snowbound/assets/icons/badge-edit.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffb3c1"/><stop offset="1" stop-color="#e86a85"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#f6dfb8"/><stop offset="1" stop-color="#d9b07a"/></linearGradient>
6 </defs>
7 <path d="M8.5 15L10.727 14.399L14.687 10.439L13.061 8.813L9.101 12.773Z" fill="none" stroke="#ffffff" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M10.727 15.149L13.839 12.038L12.212 10.411L9.101 13.523Z" fill="#000000" fill-opacity="0.16"/>
9 <path d="M10.727 14.399L13.839 11.288L12.212 9.661L9.101 12.773Z" fill="url(#g0)" stroke="#b86e00" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M13.839 11.288L14.687 10.439L13.061 8.813L12.212 9.661Z" fill="url(#g1)" stroke="#b8455e" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M8.5 15L10.727 14.399L9.101 12.773Z" fill="url(#g2)" stroke="#94632a" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M8.5 15L9.335 14.775L8.725 14.165Z" fill="#3b4350"/>
13</svg>
crates/snowbound/assets/icons/badge-go.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.7 11.5H13.1M11.7 10.1L13.1 11.5L11.7 12.9" fill="none" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-history.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
5 </defs>
6 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#5a6676" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M8.85 11.5A2.65 2.65 0 1 1 14.15 11.5A2.65 2.65 0 1 1 8.85 11.5Z" fill="url(#g1)"/>
9 <path d="M11.5 9.75V11.5H13" fill="none" stroke="#3b4350" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
10</svg>
crates/snowbound/assets/icons/badge-link.svg created+18
......@@ -0,0 +1,18 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="8" y2="15"><stop offset="0" stop-color="#9cd0ff"/><stop offset="1" stop-color="#2f86f0"/></linearGradient>
4 <linearGradient id="g1" gradientUnits="userSpaceOnUse" x2="0" y1="8" y2="15"><stop offset="0" stop-color="#9cd0ff"/><stop offset="1" stop-color="#2f86f0"/></linearGradient>
5 <linearGradient id="g2" gradientUnits="userSpaceOnUse" x2="0" y1="8" y2="15"><stop offset="0" stop-color="#9cd0ff"/><stop offset="1" stop-color="#2f86f0"/></linearGradient>
6 </defs>
7 <path d="M8.762 11.259L10.285 10.192A1.86 1.86 -35 0 1 12.876 10.649L12.876 10.649A1.86 1.86 -35 0 1 12.419 13.239L10.895 14.306A1.86 1.86 -35 0 1 8.305 13.849L8.305 13.849A1.86 1.86 -35 0 1 8.762 11.259Z" fill="none" stroke="#ffffff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M11.301 9.481L12.825 8.414A1.86 1.86 -35 0 1 15.415 8.871L15.415 8.871A1.86 1.86 -35 0 1 14.958 11.461L13.435 12.528A1.86 1.86 -35 0 1 10.844 12.071L10.844 12.071A1.86 1.86 -35 0 1 11.301 9.481Z" fill="none" stroke="#ffffff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M8.762 11.859L10.285 10.792A1.86 1.86 -35 0 1 12.876 11.249L12.876 11.249A1.86 1.86 -35 0 1 12.419 13.839L10.895 14.906A1.86 1.86 -35 0 1 8.305 14.449L8.305 14.449A1.86 1.86 -35 0 1 8.762 11.859Z" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
10 <path class="accent" d="M8.762 11.259L10.285 10.192A1.86 1.86 -35 0 1 12.876 10.649L12.876 10.649A1.86 1.86 -35 0 1 12.419 13.239L10.895 14.306A1.86 1.86 -35 0 1 8.305 13.849L8.305 13.849A1.86 1.86 -35 0 1 8.762 11.259Z" fill="none" stroke="#1a62c0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
11 <path class="accent" d="M8.762 11.259L10.285 10.192A1.86 1.86 -35 0 1 12.876 10.649L12.876 10.649A1.86 1.86 -35 0 1 12.419 13.239L10.895 14.306A1.86 1.86 -35 0 1 8.305 13.849L8.305 13.849A1.86 1.86 -35 0 1 8.762 11.259Z" fill="none" stroke="url(#g0)" stroke-width="0.65" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M11.301 10.081L12.825 9.014A1.86 1.86 -35 0 1 15.415 9.471L15.415 9.471A1.86 1.86 -35 0 1 14.958 12.061L13.435 13.128A1.86 1.86 -35 0 1 10.844 12.671L10.844 12.671A1.86 1.86 -35 0 1 11.301 10.081Z" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
13 <path class="accent" d="M11.301 9.481L12.825 8.414A1.86 1.86 -35 0 1 15.415 8.871L15.415 8.871A1.86 1.86 -35 0 1 14.958 11.461L13.435 12.528A1.86 1.86 -35 0 1 10.844 12.071L10.844 12.071A1.86 1.86 -35 0 1 11.301 9.481Z" fill="none" stroke="#1a62c0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
14 <path class="accent" d="M11.301 9.481L12.825 8.414A1.86 1.86 -35 0 1 15.415 8.871L15.415 8.871A1.86 1.86 -35 0 1 14.958 11.461L13.435 12.528A1.86 1.86 -35 0 1 10.844 12.071L10.844 12.071A1.86 1.86 -35 0 1 11.301 9.481Z" fill="none" stroke="url(#g1)" stroke-width="0.65" stroke-linecap="round" stroke-linejoin="round"/>
15 <path d="M12.876 11.249A1.86 1.86 -35 0 1 12.419 13.839" fill="none" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
16 <path class="accent" d="M12.876 10.649A1.86 1.86 -35 0 1 12.419 13.239" fill="none" stroke="#1a62c0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
17 <path class="accent" d="M12.876 10.649A1.86 1.86 -35 0 1 12.419 13.239" fill="none" stroke="url(#g2)" stroke-width="0.65" stroke-linecap="round" stroke-linejoin="round"/>
18</svg>
crates/snowbound/assets/icons/badge-live.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffb08a"/><stop offset="1" stop-color="#f0582a"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#b8381a" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M11.5 10.8A0.7 0.7 0 1 1 11.5 12.2A0.7 0.7 0 1 1 11.5 10.8Z" fill="#ffffff"/>
8 <path d="M10.37 10.37A1.6 1.6 0 0 0 10.37 12.63M12.63 10.37A1.6 1.6 0 0 1 12.63 12.63M9.73 9.73A2.5 2.5 0 0 0 9.73 13.27M13.27 9.73A2.5 2.5 0 0 1 13.27 13.27" fill="none" stroke="#ffffff" stroke-width="0.8" stroke-linecap="round"/>
9</svg>
crates/snowbound/assets/icons/badge-lock.svg created+12
......@@ -0,0 +1,12 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="8" y2="11.5"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
5 </defs>
6 <path d="M9.9 11.25V9.9A1.6 1.6 0 0 1 13.1 9.9V11.25" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.9 11.25V9.9A1.6 1.6 0 0 1 13.1 9.9V11.25" fill="none" stroke="#5a6676" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M9.9 11.25V9.9A1.6 1.6 0 0 1 13.1 9.9V11.25" fill="none" stroke="url(#g0)" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M9.4 11H13.6A0.8 0.8 0 0 1 14.4 11.8V14.2A0.8 0.8 0 0 1 13.6 15H9.4A0.8 0.8 0 0 1 8.6 14.2V11.8A0.8 0.8 0 0 1 9.4 11Z" fill="none" stroke="#ffffff" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M9.4 11H13.6A0.8 0.8 0 0 1 14.4 11.8V14.2A0.8 0.8 0 0 1 13.6 15H9.4A0.8 0.8 0 0 1 8.6 14.2V11.8A0.8 0.8 0 0 1 9.4 11Z" fill="url(#g1)" stroke="#b86e00" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M10.9 12.6A0.6 0.6 0 1 1 12.1 12.6A0.6 0.6 0 1 1 10.9 12.6ZM11.15 12.9H11.85L12 14H11Z" fill="#4a3000"/>
12</svg>
crates/snowbound/assets/icons/badge-merge.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#9be08a"/><stop offset="1" stop-color="#3aa83a"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#24802a" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.8 9.6L11.5 11.3L13.2 9.6M11.5 11.3V13.5" fill="none" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-picture.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#8fd6ff"/><stop offset="1" stop-color="#2a8fe0"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.4 13.2L10.9 11.1L11.9 12.3L12.5 11.6L13.6 13.2Z" fill="#ffffff" stroke="#ffffff" stroke-width="0.5" stroke-linejoin="round"/>
8 <path d="M12.6 9.4A0.6 0.6 0 1 1 12.6 10.6A0.6 0.6 0 1 1 12.6 9.4Z" fill="#ffe27a"/>
9</svg>
crates/snowbound/assets/icons/badge-play.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#86e88a"/><stop offset="1" stop-color="#28b04a"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#1b8a36" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M10.5 9.7L13.4 11.5L10.5 13.3Z" fill="#ffffff"/>
8</svg>
crates/snowbound/assets/icons/badge-remove.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ff8f80"/><stop offset="1" stop-color="#f03b30"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#c42418" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M10.15 10.15L12.85 12.85M12.85 10.15L10.15 12.85" fill="none" stroke="#ffffff" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-search.svg created+17
......@@ -0,0 +1,17 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="11.21" y2="14.75"><stop offset="0" stop-color="#6a7482"/><stop offset="1" stop-color="#3b4350"/></linearGradient>
4 <linearGradient id="g1" gradientUnits="userSpaceOnUse" x2="0" y1="9.65" y2="10.35"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#eaf6ff"/><stop offset="1" stop-color="#aed8ff"/></linearGradient>
6 </defs>
7 <path d="M7 10A3 3 0 1 1 13 10A3 3 0 1 1 7 10Z" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M12.16 12.16L13.8 13.8" fill="none" stroke="#ffffff" stroke-width="3.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M12.16 12.91L13.8 14.55" fill="none" stroke="#000000" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
10 <path d="M12.16 12.16L13.8 13.8" fill="none" stroke="#2b323b" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M12.16 12.16L13.8 13.8" fill="none" stroke="url(#g0)" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M7 10.75A3 3 0 1 1 13 10.75A3 3 0 1 1 7 10.75Z" fill="none" stroke="#000000" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
13 <path d="M7 10A3 3 0 1 1 13 10A3 3 0 1 1 7 10Z" fill="none" stroke="#5a6676" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
14 <path d="M7 10A3 3 0 1 1 13 10A3 3 0 1 1 7 10Z" fill="none" stroke="url(#g1)" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round"/>
15 <path d="M7.5 10A2.5 2.5 0 1 1 12.5 10A2.5 2.5 0 1 1 7.5 10Z" fill="url(#g2)"/>
16 <path d="M8.4 10.2A1.7 1.7 0 0 1 9.9 8.4" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
17</svg>
crates/snowbound/assets/icons/badge-text.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M9.9 13.3L11.5 9.5L13.1 13.3M10.45 12H12.55" fill="none" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
8</svg>
crates/snowbound/assets/icons/badge-unread.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
4 </defs>
5 <path d="M9.4 12.75A2.6 2.6 0 1 1 14.6 12.75A2.6 2.6 0 1 1 9.4 12.75Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M9.4 12A2.6 2.6 0 1 1 14.6 12A2.6 2.6 0 1 1 9.4 12Z" fill="url(#g0)" stroke="#b86e00" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M10.35 11.8A1.7 1.7 0 0 1 11.8 10.35" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
8</svg>
crates/snowbound/assets/icons/citation.svg created+4
......@@ -0,0 +1,4 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M1.5 8H4.5" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3 <path d="M6.5 5.5H14.5M6 8H13M5.5 10.5H11" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.6"/>
4</svg>
crates/snowbound/assets/icons/code.svg created+5
......@@ -0,0 +1,5 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path d="M5 5L1.75 8.75L5 12.5M11 5L14.25 8.75L11 12.5" fill="none" stroke="#000000" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
3 <path class="accent" d="M5 4.25L1.75 8L5 11.75M11 4.25L14.25 8L11 11.75" fill="none" stroke="#1f6fe0" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
4 <path d="M9.25 3.25L6.75 12.75" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
5</svg>
crates/snowbound/assets/icons/delete.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="3" y2="13"><stop offset="0" stop-color="#ff8f80"/><stop offset="1" stop-color="#f03b30"/></linearGradient>
4 </defs>
5 <path d="M4 4.75L12 12.75M12 4.75L4 12.75" fill="none" stroke="#000000" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
6 <path d="M4 4L12 12M12 4L4 12" fill="none" stroke="#c42418" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M4 4L12 12M12 4L4 12" fill="none" stroke="url(#g0)" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M4.4 4.4L6.5 6.5M11.6 4.4L9.5 6.5" fill="none" stroke="#ffffff" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.6"/>
9</svg>
crates/snowbound/assets/icons/digit-1.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M10.9 7.7L12.6 6.5V13" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/digit-2.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M10.8 7.9A1.7 1.6 0 0 1 14 8.3C14 9.9 10.8 11 10.8 13H14.2" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/digit-3.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M10.9 7.3A1.6 1.4 0 0 1 13.9 8.1C13.9 9 13.2 9.6 12.1 9.6C13.4 9.6 14.1 10.3 14.1 11.3C14.1 12.4 13.3 13.05 12.3 13.05C11.6 13.05 11.1 12.75 10.8 12.3" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/digit-4.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M13.3 13V6.5L10.7 11.2H14.4" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/digit-5.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M13.9 6.5H11.3L11 9.5C11.4 9.2 11.9 9.1 12.4 9.1C13.4 9.1 14.2 9.9 14.2 11C14.2 12.3 13.3 13.05 12.3 13.05C11.6 13.05 11.1 12.75 10.8 12.3" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/digit-6.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path class="accent" d="M13.8 7.1C13.5 6.7 13.1 6.5 12.6 6.5C11.4 6.5 10.8 7.7 10.8 9.6V11.2C10.8 12.3 11.4 13.05 12.45 13.05C13.4 13.05 14.1 12.3 14.1 11.25C14.1 10.2 13.4 9.5 12.45 9.5C11.6 9.5 10.9 10.1 10.8 11" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
3</svg>
crates/snowbound/assets/icons/fast-forward.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M1.5 4V13.5L7.75 8.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path class="accent" d="M1.5 3.25V12.75L7.75 8Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M8.25 4V13.5L14.5 8.75Z" fill="#000000" fill-opacity="0.16"/>
9 <path class="accent" d="M8.25 3.25V12.75L14.5 8Z" fill="url(#g1)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10</svg>
crates/snowbound/assets/icons/folder-open.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#6fb0f5"/><stop offset="1" stop-color="#2a76d8"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#9fd2ff"/><stop offset="1" stop-color="#3b8ff0"/></linearGradient>
6 </defs>
7 <path d="M1.5 14.25V4.25A1 1 0 0 1 2.5 3.25H6L7.5 4.75H12.5A1 1 0 0 1 13.5 5.75V14.25Z" fill="#000000" fill-opacity="0.16"/>
8 <path class="accent" d="M1.5 13.5V3.5A1 1 0 0 1 2.5 2.5H6L7.5 4H12.5A1 1 0 0 1 13.5 5V13.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M3.5 8V5.25H11.5V8Z" fill="url(#g1)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10 <path class="accent" d="M5 6.6H10" fill="none" stroke="#8cc0f5" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M1.5 14.25L3.4 8.25A0.8 0.8 0 0 1 4.15 7.75H14.4A0.6 0.6 0 0 1 14.97 8.53L13.25 13.85A0.6 0.6 0 0 1 12.68 14.25Z" fill="#000000" fill-opacity="0.16"/>
12 <path class="accent" d="M1.5 13.5L3.4 7.5A0.8 0.8 0 0 1 4.15 7H14.4A0.6 0.6 0 0 1 14.97 7.78L13.25 13.1A0.6 0.6 0 0 1 12.68 13.5Z" fill="url(#g2)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M3.3 12L4.6 8H13.6" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.7"/>
14</svg>
crates/snowbound/assets/icons/full-page.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 </defs>
5 <path d="M4.5 5.25H11.5V12.25H4.5Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M4.5 4.5H11.5V11.5H4.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path class="accent" d="M5.75 7H10.25M5.75 9H10.25" fill="none" stroke="#8cc0f5" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M1.5 5.25V2.25H4.5M1.5 2.25L3.5 4.25M11.5 2.25H14.5V5.25M14.5 2.25L12.5 4.25M14.5 12.25V15.25H11.5M14.5 15.25L12.5 13.25M4.5 15.25H1.5V12.25M1.5 15.25L3.5 13.25" fill="none" stroke="#000000" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
9 <path class="accent" d="M1.5 4.5V1.5H4.5M1.5 1.5L3.5 3.5M11.5 1.5H14.5V4.5M14.5 1.5L12.5 3.5M14.5 11.5V14.5H11.5M14.5 14.5L12.5 12.5M4.5 14.5H1.5V11.5M1.5 14.5L3.5 12.5" fill="none" stroke="#1f6fe0" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
10</svg>
crates/snowbound/assets/icons/heading.svg created+3
......@@ -0,0 +1,3 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path d="M1.5 3H3.6V7H7V3H9.1V13H7V8.9H3.6V13H1.5Z" fill="currentColor"/>
3</svg>
crates/snowbound/assets/icons/help.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#6fb5fb"/><stop offset="1" stop-color="#1b58b0"/></linearGradient>
4 </defs>
5 <path d="M1 8.6A7 7 0 1 0 15 8.6A7 7 0 1 0 1 8.6Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M1 8A7 7 0 1 0 15 8A7 7 0 1 0 1 8Z" fill="url(#g0)" stroke="#16489a" stroke-width="0.8"/>
7 <path d="M3.6 6.4A4.8 4.8 0 0 1 12.4 6.4" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.55"/>
8 <path d="M6.1 6.2A1.9 1.9 0 1 1 8.9 7.9C8.3 8.3 8 8.7 8 9.5" fill="none" stroke="#ffffff" stroke-width="1.45" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M7.1 11.75A0.9 0.9 0 1 1 8.9 11.75A0.9 0.9 0 1 1 7.1 11.75Z" fill="#ffffff"/>
10</svg>
crates/snowbound/assets/icons/lock.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="1.75" y2="7.5"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
5 </defs>
6 <path d="M4.75 8.25V6A3.25 3.25 0 0 1 11.25 6V8.25" fill="none" stroke="#000000" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
7 <path d="M4.75 7.5V5.25A3.25 3.25 0 0 1 11.25 5.25V7.5" fill="none" stroke="#5a6676" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M4.75 7.5V5.25A3.25 3.25 0 0 1 11.25 5.25V7.5" fill="none" stroke="url(#g0)" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M3.7 7.75H12.3A1.2 1.2 0 0 1 13.5 8.95V14.05A1.2 1.2 0 0 1 12.3 15.25H3.7A1.2 1.2 0 0 1 2.5 14.05V8.95A1.2 1.2 0 0 1 3.7 7.75Z" fill="#000000" fill-opacity="0.16"/>
10 <path d="M3.7 7H12.3A1.2 1.2 0 0 1 13.5 8.2V13.3A1.2 1.2 0 0 1 12.3 14.5H3.7A1.2 1.2 0 0 1 2.5 13.3V8.2A1.2 1.2 0 0 1 3.7 7Z" fill="url(#g1)" stroke="#b86e00" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M3.6 13.2V8.7A0.6 0.6 0 0 1 4.2 8.1H11.6" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.7"/>
12 <path d="M6.85 10.1A1.15 1.15 0 1 1 9.15 10.1A1.15 1.15 0 1 1 6.85 10.1ZM7.45 10.6H8.55L8.85 12.75H7.15Z" fill="#4a3000"/>
13</svg>
crates/snowbound/assets/icons/markdown.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 </defs>
5 <path d="M2.5 4.75H13.5A1 1 0 0 1 14.5 5.75V12.25A1 1 0 0 1 13.5 13.25H2.5A1 1 0 0 1 1.5 12.25V5.75A1 1 0 0 1 2.5 4.75Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M2.5 4H13.5A1 1 0 0 1 14.5 5V11.5A1 1 0 0 1 13.5 12.5H2.5A1 1 0 0 1 1.5 11.5V5A1 1 0 0 1 2.5 4Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M3.5 10.25V6.25L5.25 8.25L7 6.25V10.25" fill="none" stroke="#3a4656" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
8 <path class="accent" d="M11 6.25V10.25M9.5 8.75L11 10.25L12.5 8.75" fill="none" stroke="#1f7cf0" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
9</svg>
crates/snowbound/assets/icons/move-down.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M8 15.25L13.5 9.5H10.25V2.25H5.75V9.5H2.5Z" fill="#000000" fill-opacity="0.16"/>
6 <path class="accent" d="M8 14.5L13.5 8.75H10.25V1.5H5.75V8.75H2.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M6.9 2.6V9.6H5.2" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
8</svg>
crates/snowbound/assets/icons/move-up.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M8 2.25L13.5 8H10.25V15.25H5.75V8H2.5Z" fill="#000000" fill-opacity="0.16"/>
6 <path class="accent" d="M8 1.5L13.5 7.25H10.25V14.5H5.75V7.25H2.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M6.9 13.4V6.4H5.2" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
8</svg>
crates/snowbound/assets/icons/normal.svg created+4
......@@ -0,0 +1,4 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path d="M9.5 2.5H7.25A3 3 0 0 0 7.25 8.5H9.5Z" fill="currentColor"/>
3 <path d="M8 2.5H13.5M9.5 2.5V13.5M12 2.5V13.5" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
4</svg>
crates/snowbound/assets/icons/notebook-accent.svg created+6
......@@ -0,0 +1,6 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path class="accent" d="M3.5 1.5H11.5A1 1 0 0 1 12.5 2.5V13.5A1 1 0 0 1 11.5 14.5H3.5A1 1 0 0 1 2.5 13.5V2.5A1 1 0 0 1 3.5 1.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
6</svg>
crates/snowbound/assets/icons/page-list.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#e9f4ff"/><stop offset="1" stop-color="#cfe6ff"/></linearGradient>
6 </defs>
7 <path d="M2.5 3.25H13.5A1 1 0 0 1 14.5 4.25V13.25A1 1 0 0 1 13.5 14.25H2.5A1 1 0 0 1 1.5 13.25V4.25A1 1 0 0 1 2.5 3.25Z" fill="#000000" fill-opacity="0.16"/>
8 <path d="M2.5 2.5H13.5A1 1 0 0 1 14.5 3.5V12.5A1 1 0 0 1 13.5 13.5H2.5A1 1 0 0 1 1.5 12.5V3.5A1 1 0 0 1 2.5 2.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path class="accent" d="M2.5 3H13.5A0.5 0.5 0 0 1 14 3.5V4.5A0.5 0.5 0 0 1 13.5 5H2.5A0.5 0.5 0 0 1 2 4.5V3.5A0.5 0.5 0 0 1 2.5 3Z" fill="url(#g1)"/>
10 <path class="accent" d="M9.5 5H14V13H9.5Z" fill="url(#g2)"/>
11 <path d="M9.5 5V13" fill="none" stroke="#b7c5d6" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
12 <path class="accent" d="M10.6 6.9H13M10.6 8.9H13M11.6 10.9H13" fill="none" stroke="#1f6fe0" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M3.25 7H8M3.25 9H7.25M3.25 11H8" fill="none" stroke="#b7c5d6" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
14</svg>
crates/snowbound/assets/icons/page-title.svg created+6
......@@ -0,0 +1,6 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <path d="M1.5 2.5H11.5V5H1.5Z" fill="currentColor"/>
3 <path class="accent" d="M1.5 7H14.5" fill="none" stroke="#1f6fe0" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
4 <path d="M1.5 9H5M6.25 9H8.5" fill="none" stroke="#98a4b3" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
5 <path d="M1.5 12H14.5M1.5 14H10" fill="none" stroke="#b7c5d6" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
6</svg>
crates/snowbound/assets/icons/pages-match-theme.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#5a6676"/><stop offset="1" stop-color="#2b323b"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#f1f4f8"/><stop offset="1" stop-color="#c9d3df"/></linearGradient>
6 </defs>
7 <path d="M3.5 2.25L10 2.25L13.5 5.75L13.5 15.25L3.5 15.25Z" fill="#000000" fill-opacity="0.16"/>
8 <path d="M3.5 1.5L10 1.5L13.5 5L13.5 14.5L3.5 14.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M8.5 1.9H10L13.1 5V14.1H8.5Z" fill="url(#g1)"/>
10 <path d="M10 1.5L10 5L13.5 5Z" fill="url(#g2)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path class="accent" d="M5 7.5H8M5 9.5H8M5 11.5H8" fill="none" stroke="#8cc0f5" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M9.5 7.5H12M9.5 9.5H12M9.5 11.5H12" fill="none" stroke="#c9d3df" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M4.5 13.5V2.5H8" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
14</svg>
crates/snowbound/assets/icons/palette.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#cfe6ff"/><stop offset="1" stop-color="#a9d3ff"/></linearGradient>
5 </defs>
6 <path d="M2.5 2.25H13.5A1 1 0 0 1 14.5 3.25V13.75A1 1 0 0 1 13.5 14.75H2.5A1 1 0 0 1 1.5 13.75V3.25A1 1 0 0 1 2.5 2.25Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M2.5 1.5H13.5A1 1 0 0 1 14.5 2.5V13A1 1 0 0 1 13.5 14H2.5A1 1 0 0 1 1.5 13V2.5A1 1 0 0 1 2.5 1.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path class="accent" d="M3.6 3H12.4A0.6 0.6 0 0 1 13 3.6V5.15A0.6 0.6 0 0 1 12.4 5.75H3.6A0.6 0.6 0 0 1 3 5.15V3.6A0.6 0.6 0 0 1 3.6 3Z" fill="#ffffff" stroke="#1f7cf0" stroke-width="0.8"/>
9 <path d="M4.25 4.4H7" fill="none" stroke="#3b4350" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
10 <path class="accent" d="M3.5 7H12.5A0.5 0.5 0 0 1 13 7.5V8.4A0.5 0.5 0 0 1 12.5 8.9H3.5A0.5 0.5 0 0 1 3 8.4V7.5A0.5 0.5 0 0 1 3.5 7Z" fill="url(#g1)"/>
11 <path class="accent" d="M4.25 7.95H9.5" fill="none" stroke="#1f4f9a" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M4.25 10.5H10.5M4.25 12.4H8.5" fill="none" stroke="#b7c5d6" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
13</svg>
crates/snowbound/assets/icons/pause.svg created+12
......@@ -0,0 +1,12 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M3.8 3.25H5.7A0.8 0.8 0 0 1 6.5 4.05V13.45A0.8 0.8 0 0 1 5.7 14.25H3.8A0.8 0.8 0 0 1 3 13.45V4.05A0.8 0.8 0 0 1 3.8 3.25Z" fill="#000000" fill-opacity="0.16"/>
7 <path class="accent" d="M3.8 2.5H5.7A0.8 0.8 0 0 1 6.5 3.3V12.7A0.8 0.8 0 0 1 5.7 13.5H3.8A0.8 0.8 0 0 1 3 12.7V3.3A0.8 0.8 0 0 1 3.8 2.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M4.25 3.9V8" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
9 <path d="M10.3 3.25H12.2A0.8 0.8 0 0 1 13 4.05V13.45A0.8 0.8 0 0 1 12.2 14.25H10.3A0.8 0.8 0 0 1 9.5 13.45V4.05A0.8 0.8 0 0 1 10.3 3.25Z" fill="#000000" fill-opacity="0.16"/>
10 <path class="accent" d="M10.3 2.5H12.2A0.8 0.8 0 0 1 13 3.3V12.7A0.8 0.8 0 0 1 12.2 13.5H10.3A0.8 0.8 0 0 1 9.5 12.7V3.3A0.8 0.8 0 0 1 10.3 2.5Z" fill="url(#g1)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M10.75 3.9V8" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
12</svg>
crates/snowbound/assets/icons/pdf.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#f1f4f8"/><stop offset="1" stop-color="#c9d3df"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#ff8f80"/><stop offset="1" stop-color="#f03b30"/></linearGradient>
6 </defs>
7 <path d="M4.5 2.25L10.5 2.25L13.5 5.25L13.5 15.25L4.5 15.25Z" fill="#000000" fill-opacity="0.16"/>
8 <path d="M4.5 1.5L10.5 1.5L13.5 4.5L13.5 14.5L4.5 14.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M10.5 1.5L10.5 4.5L13.5 4.5Z" fill="url(#g1)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10 <path class="accent" d="M6 5.5H9.5M6 7.25H12" fill="none" stroke="#8cc0f5" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M2.3 9.25H11.2A0.8 0.8 0 0 1 12 10.05V13.7A0.8 0.8 0 0 1 11.2 14.5H2.3A0.8 0.8 0 0 1 1.5 13.7V10.05A0.8 0.8 0 0 1 2.3 9.25Z" fill="#000000" fill-opacity="0.16"/>
12 <path d="M2.3 8.5H11.2A0.8 0.8 0 0 1 12 9.3V12.95A0.8 0.8 0 0 1 11.2 13.75H2.3A0.8 0.8 0 0 1 1.5 12.95V9.3A0.8 0.8 0 0 1 2.3 8.5Z" fill="url(#g2)" stroke="#c42418" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M3.1 12.6V9.7H4.1A0.75 0.75 0 0 1 4.1 11.2H3.1M5.7 12.6V9.7H6.3A1.15 1.45 0 0 1 6.3 12.6ZM8.9 12.6V9.7H10.4M8.9 11.1H10" fill="none" stroke="#ffffff" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
14</svg>
crates/snowbound/assets/icons/print.svg created+17
......@@ -0,0 +1,17 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#eef1f5"/><stop offset="1" stop-color="#98a2b0"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
6 </defs>
7 <path d="M4.5 2.25H11.5V6.75H4.5Z" fill="#000000" fill-opacity="0.16"/>
8 <path d="M4.5 1.5H11.5V6H4.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M2.5 6.25H13.5A1 1 0 0 1 14.5 7.25V11.25A1 1 0 0 1 13.5 12.25H2.5A1 1 0 0 1 1.5 11.25V7.25A1 1 0 0 1 2.5 6.25Z" fill="#000000" fill-opacity="0.16"/>
10 <path d="M2.5 5.5H13.5A1 1 0 0 1 14.5 6.5V10.5A1 1 0 0 1 13.5 11.5H2.5A1 1 0 0 1 1.5 10.5V6.5A1 1 0 0 1 2.5 5.5Z" fill="url(#g1)" stroke="#5a6676" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M2.5 10.5V7A0.5 0.5 0 0 1 3 6.5H13.5" fill="none" stroke="#ffffff" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
12 <path d="M3.5 9.5H12.5" fill="none" stroke="#3b4350" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M12.25 7.75H12.3" fill="none" stroke="#28b04a" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
14 <path d="M4.5 10.25H11.5V15.25H4.5Z" fill="#000000" fill-opacity="0.16"/>
15 <path d="M4.5 9.5H11.5V14.5H4.5Z" fill="url(#g2)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
16 <path class="accent" d="M6 11.25H10M6 12.9H9" fill="none" stroke="#8cc0f5" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
17</svg>
crates/snowbound/assets/icons/properties.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M2.5 2.75H13.5A1 1 0 0 1 14.5 3.75V13.75A1 1 0 0 1 13.5 14.75H2.5A1 1 0 0 1 1.5 13.75V3.75A1 1 0 0 1 2.5 2.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M2.5 2H13.5A1 1 0 0 1 14.5 3V13A1 1 0 0 1 13.5 14H2.5A1 1 0 0 1 1.5 13V3A1 1 0 0 1 2.5 2Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path class="accent" d="M2.5 2.5H13.5A0.5 0.5 0 0 1 14 3V4.25H2V3A0.5 0.5 0 0 1 2.5 2.5Z" fill="url(#g1)"/>
9 <path d="M3.5 6.75H5.75M3.5 9.25H5.75M3.5 11.75H5.75" fill="none" stroke="#7b8796" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M7.3 6H12.7A0.3 0.3 0 0 1 13 6.3V7.2A0.3 0.3 0 0 1 12.7 7.5H7.3A0.3 0.3 0 0 1 7 7.2V6.3A0.3 0.3 0 0 1 7.3 6Z" fill="#ffffff" stroke="#98a4b3" stroke-width="0.6"/>
11 <path d="M7.3 8.5H12.7A0.3 0.3 0 0 1 13 8.8V9.7A0.3 0.3 0 0 1 12.7 10H7.3A0.3 0.3 0 0 1 7 9.7V8.8A0.3 0.3 0 0 1 7.3 8.5Z" fill="#ffffff" stroke="#98a4b3" stroke-width="0.6"/>
12 <path d="M7.3 11H12.7A0.3 0.3 0 0 1 13 11.3V12.2A0.3 0.3 0 0 1 12.7 12.5H7.3A0.3 0.3 0 0 1 7 12.2V11.3A0.3 0.3 0 0 1 7.3 11Z" fill="#ffffff" stroke="#98a4b3" stroke-width="0.6"/>
13</svg>
crates/snowbound/assets/icons/quote.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M1.75 8.15A2.15 2.15 0 1 1 6.05 8.35C6.05 11.05 4.95 12.85 2.35 13.55L2.05 12.75C3.35 12.15 3.9 11.35 3.9 10.35A2.15 2.15 0 0 1 1.75 8.15Z" fill="#000000" fill-opacity="0.16"/>
7 <path class="accent" d="M1.75 7.4A2.15 2.15 0 1 1 6.05 7.6C6.05 10.3 4.95 12.1 2.35 12.8L2.05 12C3.35 11.4 3.9 10.6 3.9 9.6A2.15 2.15 0 0 1 1.75 7.4Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M8.5 8.15A2.15 2.15 0 1 1 12.8 8.35C12.8 11.05 11.7 12.85 9.1 13.55L8.8 12.75C10.1 12.15 10.65 11.35 10.65 10.35A2.15 2.15 0 0 1 8.5 8.15Z" fill="#000000" fill-opacity="0.16"/>
9 <path class="accent" d="M8.5 7.4A2.15 2.15 0 1 1 12.8 7.6C12.8 10.3 11.7 12.1 9.1 12.8L8.8 12C10.1 11.4 10.65 10.6 10.65 9.6A2.15 2.15 0 0 1 8.5 7.4Z" fill="url(#g1)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10</svg>
crates/snowbound/assets/icons/recycle-bin.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#f4f6fa"/><stop offset="1" stop-color="#aeb8c6"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
5 </defs>
6 <path d="M3 6.25H13L12.1 14.75A1 1 0 0 1 11.1 15.65H4.9A1 1 0 0 1 3.9 14.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M3 5.5H13L12.1 14A1 1 0 0 1 11.1 14.9H4.9A1 1 0 0 1 3.9 14Z" fill="url(#g0)" stroke="#6b7686" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M6 7.25L6.25 13.25M8 7.25V13.25M10 7.25L9.75 13.25" fill="none" stroke="#8e99a7" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M6 4.25V3.35A0.6 0.6 0 0 1 6.6 2.75H9.4A0.6 0.6 0 0 1 10 3.35V4.25" fill="none" stroke="#000000" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
10 <path d="M6 3.5V2.6A0.6 0.6 0 0 1 6.6 2H9.4A0.6 0.6 0 0 1 10 2.6V3.5" fill="none" stroke="#5a6676" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M2.35 4H13.65A0.6 0.6 0 0 1 14.25 4.6V5.65A0.6 0.6 0 0 1 13.65 6.25H2.35A0.6 0.6 0 0 1 1.75 5.65V4.6A0.6 0.6 0 0 1 2.35 4Z" fill="#000000" fill-opacity="0.16"/>
12 <path d="M2.35 3.25H13.65A0.6 0.6 0 0 1 14.25 3.85V4.9A0.6 0.6 0 0 1 13.65 5.5H2.35A0.6 0.6 0 0 1 1.75 4.9V3.85A0.6 0.6 0 0 1 2.35 3.25Z" fill="url(#g1)" stroke="#5a6676" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M2.75 4.25H13" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.6"/>
14</svg>
crates/snowbound/assets/icons/rename.svg created+11
......@@ -0,0 +1,11 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#cfe6ff"/><stop offset="1" stop-color="#a9d3ff"/></linearGradient>
5 </defs>
6 <path d="M2.5 4.75H13.5A1 1 0 0 1 14.5 5.75V11.75A1 1 0 0 1 13.5 12.75H2.5A1 1 0 0 1 1.5 11.75V5.75A1 1 0 0 1 2.5 4.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M2.5 4H13.5A1 1 0 0 1 14.5 5V11A1 1 0 0 1 13.5 12H2.5A1 1 0 0 1 1.5 11V5A1 1 0 0 1 2.5 4Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path class="accent" d="M3 6H8.75V10H3Z" fill="url(#g1)"/>
9 <path class="accent" d="M4 8H7.75" fill="none" stroke="#1f4f9a" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M10.75 2.75V13.25M9.5 2.75H12M9.5 13.25H12" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
11</svg>
crates/snowbound/assets/icons/rewind.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M7.75 4V13.5L1.5 8.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path class="accent" d="M7.75 3.25V12.75L1.5 8Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M14.5 4V13.5L8.25 8.75Z" fill="#000000" fill-opacity="0.16"/>
9 <path class="accent" d="M14.5 3.25V12.75L8.25 8Z" fill="url(#g1)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10</svg>
crates/snowbound/assets/icons/save.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
6 </defs>
7 <path d="M2.5 2.25H12.3L14.5 4.45V14.25A1 1 0 0 1 13.5 15.25H2.5A1 1 0 0 1 1.5 14.25V3.25A1 1 0 0 1 2.5 2.25Z" fill="#000000" fill-opacity="0.16"/>
8 <path class="accent" d="M2.5 1.5H12.3L14.5 3.7V13.5A1 1 0 0 1 13.5 14.5H2.5A1 1 0 0 1 1.5 13.5V2.5A1 1 0 0 1 2.5 1.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M4.5 1.5H11.5V5.25A0.5 0.5 0 0 1 11 5.75H5A0.5 0.5 0 0 1 4.5 5.25Z" fill="url(#g1)" stroke="#5a6676" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M9.1 2.4H10.4V4.85H9.1Z" fill="#3b4350"/>
11 <path d="M3.75 8.25H12.25V14.5H3.75Z" fill="url(#g2)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M5.25 10.25H10.75M5.25 12.25H10.75" fill="none" stroke="#b7c5d6" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M2.5 13.5V2.5H4" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.6"/>
14</svg>
crates/snowbound/assets/icons/select-all.svg created+11
......@@ -0,0 +1,11 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#cfe6ff"/><stop offset="1" stop-color="#a9d3ff"/></linearGradient>
5 </defs>
6 <path d="M2.3 2.75H13.7A0.8 0.8 0 0 1 14.5 3.55V13.95A0.8 0.8 0 0 1 13.7 14.75H2.3A0.8 0.8 0 0 1 1.5 13.95V3.55A0.8 0.8 0 0 1 2.3 2.75Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M2.3 2H13.7A0.8 0.8 0 0 1 14.5 2.8V13.2A0.8 0.8 0 0 1 13.7 14H2.3A0.8 0.8 0 0 1 1.5 13.2V2.8A0.8 0.8 0 0 1 2.3 2Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path class="accent" d="M3 4H13V11.5H3Z" fill="url(#g1)"/>
9 <path class="accent" d="M4 5.75H12M4 7.75H12M4 9.75H10" fill="none" stroke="#1f4f9a" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M3 12.75H8" fill="none" stroke="#b7c5d6" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
11</svg>
crates/snowbound/assets/icons/snap-to-grid.svg created+10
......@@ -0,0 +1,10 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M1.5 2.5H14.5M1.5 5.5H14.5M1.5 8.5H14.5M1.5 11.5H14.5M1.5 14.5H14.5M2.5 1.5V15M5.5 1.5V15M8.5 1.5V15M11.5 1.5V15M14.5 1.5V15" fill="none" stroke="#b7c5d6" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
6 <path d="M5.5 6.25H11.5V12.25H5.5Z" fill="#000000" fill-opacity="0.16"/>
7 <path class="accent" d="M5.5 5.5H11.5V11.5H5.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M6.6 10.4V6.6H10.4" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
9 <path d="M4.75 4.75H6.25V6.25H4.75ZM10.75 4.75H12.25V6.25H10.75ZM4.75 10.75H6.25V12.25H4.75ZM10.75 10.75H12.25V12.25H10.75Z" fill="#3b4350"/>
10</svg>
crates/snowbound/assets/icons/stop.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M3.7 3.25H12.3A1.2 1.2 0 0 1 13.5 4.45V13.05A1.2 1.2 0 0 1 12.3 14.25H3.7A1.2 1.2 0 0 1 2.5 13.05V4.45A1.2 1.2 0 0 1 3.7 3.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path class="accent" d="M3.7 2.5H12.3A1.2 1.2 0 0 1 13.5 3.7V12.3A1.2 1.2 0 0 1 12.3 13.5H3.7A1.2 1.2 0 0 1 2.5 12.3V3.7A1.2 1.2 0 0 1 3.7 2.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M3.9 11V4.5A0.6 0.6 0 0 1 4.5 3.9H10" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
8</svg>
crates/snowbound/assets/icons/subpage.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#f1f4f8"/><stop offset="1" stop-color="#c9d3df"/></linearGradient>
5 </defs>
6 <path d="M2.5 2.25V9.25H5.25M4 8L5.25 9.25L4 10.5" fill="none" stroke="#000000" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
7 <path d="M2.5 1.5V8.5H5.25M4 7.25L5.25 8.5L4 9.75" fill="none" stroke="#7b8796" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
8 <path d="M6.5 3.75L11 3.75L14 6.75L14 15.25L6.5 15.25Z" fill="#000000" fill-opacity="0.16"/>
9 <path d="M6.5 3L11 3L14 6L14 14.5L6.5 14.5Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M11 3L11 6L14 6Z" fill="url(#g1)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path class="accent" d="M8 8.5H12.5M8 10.5H12.5M8 12.5H12.5" fill="none" stroke="#8cc0f5" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M7.5 13.5V4H10.5" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
13</svg>
crates/snowbound/assets/icons/sync-now.svg created+13
......@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#f4f6fa"/><stop offset="1" stop-color="#aeb8c6"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
5 </defs>
6 <path d="M4 13.25H11.75A3 3 0 0 0 12.2 7.3A4.3 4.3 0 0 0 4 6.4A3.45 3.45 0 0 0 4 13.25Z" fill="#000000" fill-opacity="0.16"/>
7 <path d="M4 12.5H11.75A3 3 0 0 0 12.2 6.55A4.3 4.3 0 0 0 4 5.65A3.45 3.45 0 0 0 4 12.5Z" fill="url(#g0)" stroke="#6b7686" stroke-width="0.8" stroke-linejoin="round"/>
8 <path d="M3.1 8.9A2.2 2.2 0 0 1 5.2 6.9M6.2 5.4A3 3 0 0 1 10.6 5.6" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
9 <path d="M8 12.25A3.5 3.5 0 1 1 15 12.25A3.5 3.5 0 1 1 8 12.25Z" fill="#000000" fill-opacity="0.16"/>
10 <path d="M8 11.5A3.5 3.5 0 1 1 15 11.5A3.5 3.5 0 1 1 8 11.5Z" fill="url(#g1)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M9.85 11.1A1.75 1.75 0 0 1 13 10.3M13.15 11.9A1.75 1.75 0 0 1 10 12.7" fill="none" stroke="#ffffff" stroke-width="0.9" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M13.55 9.2V10.9H11.85ZM9.45 13.8V12.1H11.15Z" fill="#ffffff"/>
13</svg>
crates/snowbound/assets/icons/tab.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
4 </defs>
5 <path d="M1.5 13.25V6.25A1.5 1.5 0 0 1 3 4.75H10.9C11.7 4.75 12 5.05 12.4 5.65L14.5 13.25Z" fill="#000000" fill-opacity="0.16"/>
6 <path class="accent" d="M1.5 12.5V5.5A1.5 1.5 0 0 1 3 4H10.9C11.7 4 12 4.3 12.4 4.9L14.5 12.5Z" fill="url(#g0)" stroke="#1560c4" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M2.5 11.5V5.7A0.7 0.7 0 0 1 3.2 5H10.3" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.85"/>
8</svg>
crates/snowbound/assets/icons/tag.svg created+8
......@@ -0,0 +1,8 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#fff590"/><stop offset="1" stop-color="#ffc800"/></linearGradient>
4 </defs>
5 <path d="M1.5 4.75L8.5 4.75L13 9.25L8.5 13.75L1.5 13.75ZM3 9.25A1.1 1.1 0 1 1 5.2 9.25A1.1 1.1 0 1 1 3 9.25Z" fill="#000000" fill-rule="evenodd" fill-opacity="0.16"/>
6 <path d="M1.5 4L8.5 4L13 8.5L8.5 13L1.5 13ZM3 8.5A1.1 1.1 0 1 1 5.2 8.5A1.1 1.1 0 1 1 3 8.5Z" fill="url(#g0)" fill-rule="evenodd" stroke="#d9a300" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M2.5 12V5H8.2" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.7"/>
8</svg>
crates/snowbound/assets/icons/theme.svg created+18
......@@ -0,0 +1,18 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#f0c98a"/><stop offset="1" stop-color="#c48a3e"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ff8f80"/><stop offset="1" stop-color="#f03b30"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#ffe27a"/><stop offset="1" stop-color="#f5a31a"/></linearGradient>
6 <linearGradient id="g3" x2="0" y2="1"><stop offset="0" stop-color="#86e88a"/><stop offset="1" stop-color="#28b04a"/></linearGradient>
7 <linearGradient id="g4" x2="0" y2="1"><stop offset="0" stop-color="#79c2ff"/><stop offset="1" stop-color="#1f7cf0"/></linearGradient>
8 <linearGradient id="g5" x2="0" y2="1"><stop offset="0" stop-color="#e6a3ff"/><stop offset="1" stop-color="#9b4fd6"/></linearGradient>
9 </defs>
10 <path d="M8 2.5C4.2 2.5 1.5 5.05 1.5 8.35C1.5 11.65 4.1 14.5 7.6 14.5C9.1 14.5 9.5 13.65 9 12.65C8.5 11.65 9 10.75 10.2 10.75H11.6C13.3 10.75 14.5 9.65 14.5 7.95C14.5 4.85 11.7 2.5 8 2.5Z" fill="#000000" fill-opacity="0.16"/>
11 <path d="M8 1.75C4.2 1.75 1.5 4.3 1.5 7.6C1.5 10.9 4.1 13.75 7.6 13.75C9.1 13.75 9.5 12.9 9 11.9C8.5 10.9 9 10 10.2 10H11.6C13.3 10 14.5 8.9 14.5 7.2C14.5 4.1 11.7 1.75 8 1.75Z" fill="url(#g0)" stroke="#94632a" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M2.6 7.4C2.7 5 4.5 3 7.5 2.85" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.6"/>
13 <path d="M3.45 7.4A1.15 1.15 0 1 1 5.75 7.4A1.15 1.15 0 1 1 3.45 7.4Z" fill="url(#g1)" stroke="#c42418" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
14 <path d="M4.95 4.6A1.15 1.15 0 1 1 7.25 4.6A1.15 1.15 0 1 1 4.95 4.6Z" fill="url(#g2)" stroke="#b86e00" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
15 <path d="M8.25 3.9A1.15 1.15 0 1 1 10.55 3.9A1.15 1.15 0 1 1 8.25 3.9Z" fill="url(#g3)" stroke="#1b8a36" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
16 <path class="accent" d="M10.85 6.4A1.15 1.15 0 1 1 13.15 6.4A1.15 1.15 0 1 1 10.85 6.4Z" fill="url(#g4)" stroke="#1560c4" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
17 <path d="M4.15 10.6A1.15 1.15 0 1 1 6.45 10.6A1.15 1.15 0 1 1 4.15 10.6Z" fill="url(#g5)" stroke="#7a33b0" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round"/>
18</svg>
crates/snowbound/assets/icons/to-do.svg created+14
......@@ -0,0 +1,14 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
4 <linearGradient id="g1" x2="0" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="1" stop-color="#e3e9f0"/></linearGradient>
5 <linearGradient id="g2" gradientUnits="userSpaceOnUse" x2="0" y1="1.8" y2="5.9"><stop offset="0" stop-color="#86e88a"/><stop offset="1" stop-color="#28b04a"/></linearGradient>
6 </defs>
7 <path d="M2.1 2.75H5.9A0.6 0.6 0 0 1 6.5 3.35V7.15A0.6 0.6 0 0 1 5.9 7.75H2.1A0.6 0.6 0 0 1 1.5 7.15V3.35A0.6 0.6 0 0 1 2.1 2.75Z" fill="#000000" fill-opacity="0.16"/>
8 <path d="M2.1 2H5.9A0.6 0.6 0 0 1 6.5 2.6V6.4A0.6 0.6 0 0 1 5.9 7H2.1A0.6 0.6 0 0 1 1.5 6.4V2.6A0.6 0.6 0 0 1 2.1 2Z" fill="url(#g0)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M2.1 9.75H5.9A0.6 0.6 0 0 1 6.5 10.35V14.15A0.6 0.6 0 0 1 5.9 14.75H2.1A0.6 0.6 0 0 1 1.5 14.15V10.35A0.6 0.6 0 0 1 2.1 9.75Z" fill="#000000" fill-opacity="0.16"/>
10 <path d="M2.1 9H5.9A0.6 0.6 0 0 1 6.5 9.6V13.4A0.6 0.6 0 0 1 5.9 14H2.1A0.6 0.6 0 0 1 1.5 13.4V9.6A0.6 0.6 0 0 1 2.1 9Z" fill="url(#g1)" stroke="#98a4b3" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
11 <path d="M2.6 4.5L3.9 5.9L7.2 1.8" fill="none" stroke="#1b8a36" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M2.6 4.5L3.9 5.9L7.2 1.8" fill="none" stroke="url(#g2)" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M8.5 4H14.5V5H8.5ZM8.5 11H14.5V12H8.5Z" fill="currentColor"/>
14</svg>
crates/snowbound/assets/icons/update.svg created+9
......@@ -0,0 +1,9 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" x2="0" y2="1"><stop offset="0" stop-color="#86e88a"/><stop offset="1" stop-color="#1f9a3e"/></linearGradient>
4 </defs>
5 <path d="M1.5 8.75A6.5 6.5 0 1 1 14.5 8.75A6.5 6.5 0 1 1 1.5 8.75Z" fill="#000000" fill-opacity="0.16"/>
6 <path d="M1.5 8A6.5 6.5 0 1 1 14.5 8A6.5 6.5 0 1 1 1.5 8Z" fill="url(#g0)" stroke="#16762e" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="round"/>
7 <path d="M3.5 6.5A4.75 4.75 0 0 1 8 2.75" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.5"/>
8 <path d="M8 4.25V10.5M5.4 7.9L8 10.5L10.6 7.9" fill="none" stroke="#ffffff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
9</svg>
crates/snowbound/assets/icons/zoom-actual.svg created+15
......@@ -0,0 +1,15 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
2 <defs>
3 <linearGradient id="g0" gradientUnits="userSpaceOnUse" x2="0" y1="8.85" y2="14.85"><stop offset="0" stop-color="#6a7482"/><stop offset="1" stop-color="#3b4350"/></linearGradient>
4 <linearGradient id="g1" gradientUnits="userSpaceOnUse" x2="0" y1="1.15" y2="11.85"><stop offset="0" stop-color="#d3d9e0"/><stop offset="1" stop-color="#7b8796"/></linearGradient>
5 <linearGradient id="g2" x2="0" y2="1"><stop offset="0" stop-color="#eaf6ff"/><stop offset="1" stop-color="#aed8ff"/></linearGradient>
6 </defs>
7 <path d="M10.2 10.95L13.5 14.25" fill="none" stroke="#000000" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
8 <path d="M10.2 10.2L13.5 13.5" fill="none" stroke="#2b323b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
9 <path d="M10.2 10.2L13.5 13.5" fill="none" stroke="url(#g0)" stroke-width="2.7" stroke-linecap="round" stroke-linejoin="round"/>
10 <path d="M2 7.25A4.5 4.5 0 1 1 11 7.25A4.5 4.5 0 1 1 2 7.25Z" fill="none" stroke="#000000" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.16"/>
11 <path d="M2 6.5A4.5 4.5 0 1 1 11 6.5A4.5 4.5 0 1 1 2 6.5Z" fill="none" stroke="#5a6676" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
12 <path d="M2 6.5A4.5 4.5 0 1 1 11 6.5A4.5 4.5 0 1 1 2 6.5Z" fill="none" stroke="url(#g1)" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
13 <path d="M3 6.5A3.5 3.5 0 1 1 10 6.5A3.5 3.5 0 1 1 3 6.5Z" fill="url(#g2)"/>
14 <path class="accent" d="M4.4 4.7H5.4V8.5H4.4ZM8.1 4.7H9.1V8.5H8.1ZM6.35 5.4H7.15V6.2H6.35ZM6.35 7.2H7.15V8H6.35Z" fill="#1f6fe0"/>
15</svg>
crates/snowbound/src/art.rs+104-2
......@@ -1,8 +1,9 @@
11//! Artwork for the window's chrome: tinted interface icons and the toolbar's tag buttons.
22
3/// Artwork of one or more files under `assets/`, painted in order, as a badge over its icon.
34macro_rules! art {
4 ($path:literal) => {
5 &[include_str!(concat!("../assets/", $path, ".svg"))]
5 ($($path:literal),+) => {
6 &[$(include_str!(concat!("../assets/", $path, ".svg"))),+]
67 };
78}
89
......@@ -97,3 +98,104 @@ pub const SHAPE_ARROW: &[&str] = art!("icons/shape-arrow");
9798pub const SHAPE_LINE: &[&str] = art!("icons/shape-line");
9899pub const SHAPE_OVAL: &[&str] = art!("icons/shape-oval");
99100pub const SHAPE_RECTANGLE: &[&str] = art!("icons/shape-rectangle");
101
102pub const ADD_TO_DICTIONARY: &[&str] = art!("icons/spelling", "icons/badge-add");
103pub const CITATION: &[&str] = art!("icons/citation");
104pub const CLOSE_NOTEBOOK: &[&str] = art!(
105 "icons/notebook-back",
106 "icons/notebook-accent",
107 "icons/notebook",
108 "icons/badge-close"
109);
110pub const CODE: &[&str] = art!("icons/code");
111pub const COMMAND_PALETTE: &[&str] = art!("icons/palette", "icons/badge-command");
112pub const COPY_LINK: &[&str] = art!("icons/page", "icons/badge-link");
113pub const CUSTOMIZE_THEME: &[&str] = art!("icons/theme", "icons/badge-edit");
114pub const CUSTOMIZE_TAGS: &[&str] = art!("icons/tag", "icons/badge-edit");
115pub const DELETE: &[&str] = art!("icons/delete");
116pub const EMPTY_RECYCLE_BIN: &[&str] = art!("icons/recycle-bin", "icons/badge-remove");
117pub const EXPORT_PDF: &[&str] = art!("icons/pdf");
118pub const FAST_FORWARD: &[&str] = art!("icons/fast-forward");
119pub const FIND: &[&str] = art!("icons/page", "icons/badge-search");
120pub const FULL_PAGE: &[&str] = art!("icons/full-page");
121pub const GO_TO: &[&str] = art!("icons/palette", "icons/badge-go");
122/// Heading 1 to 6, in order.
123pub const HEADINGS: [&[&str]; 6] = [
124 art!("icons/heading", "icons/digit-1"),
125 art!("icons/heading", "icons/digit-2"),
126 art!("icons/heading", "icons/digit-3"),
127 art!("icons/heading", "icons/digit-4"),
128 art!("icons/heading", "icons/digit-5"),
129 art!("icons/heading", "icons/digit-6"),
130];
131pub const HELP: &[&str] = art!("icons/help");
132pub const KEEP_SOURCE_FORMATTING: &[&str] = art!("icons/paste", "icons/badge-brush");
133pub const KEEP_TEXT_ONLY: &[&str] = art!("icons/paste", "icons/badge-text");
134pub const LIVE_SHARE: &[&str] = art!(
135 "icons/notebook-back",
136 "icons/notebook-accent",
137 "icons/notebook",
138 "icons/badge-live"
139);
140pub const LOCK: &[&str] = art!("icons/lock");
141pub const MARKDOWN: &[&str] = art!("icons/markdown");
142pub const MARK_NOTEBOOK_READ: &[&str] = art!(
143 "icons/notebook-back",
144 "icons/notebook-accent",
145 "icons/notebook",
146 "icons/badge-check"
147);
148pub const MARK_READ: &[&str] = art!("icons/page", "icons/badge-check");
149pub const MERGE_FORMATTING: &[&str] = art!("icons/paste", "icons/badge-merge");
150pub const MOVE: &[&str] = art!("icons/page", "icons/badge-go");
151pub const MOVE_DOWN: &[&str] = art!("icons/move-down");
152pub const MOVE_UP: &[&str] = art!("icons/move-up");
153pub const NEW_NOTEBOOK: &[&str] = art!(
154 "icons/notebook-back",
155 "icons/notebook-accent",
156 "icons/notebook",
157 "icons/badge-add"
158);
159pub const NEW_PAGE: &[&str] = art!("icons/page", "icons/badge-add");
160pub const NEW_SECTION: &[&str] = art!("icons/tab", "icons/badge-add");
161pub const NEW_SECTION_GROUP: &[&str] = art!("icons/section-group", "icons/badge-add");
162pub const NEW_SUBPAGE: &[&str] = art!("icons/subpage", "icons/badge-add");
163pub const NEXT_UNREAD: &[&str] = art!("icons/page", "icons/badge-unread");
164pub const NORMAL: &[&str] = art!("icons/normal");
165pub const OPEN: &[&str] = art!("icons/folder-open");
166pub const OPEN_SHARED: &[&str] = art!("icons/folder-open", "icons/badge-live");
167pub const PAGE_LIST: &[&str] = art!("icons/page-list");
168pub const PAGE_TITLE: &[&str] = art!("icons/page-title");
169pub const PAGE_VERSIONS: &[&str] = art!("icons/page", "icons/badge-history");
170pub const PAGES_MATCH_THEME: &[&str] = art!("icons/pages-match-theme");
171pub const PASSWORD: &[&str] = art!("icons/tab", "icons/badge-lock");
172pub const PASTE_PICTURE: &[&str] = art!("icons/paste", "icons/badge-picture");
173pub const PAUSE: &[&str] = art!("icons/pause");
174pub const PRINT: &[&str] = art!("icons/print");
175pub const PROPERTIES: &[&str] = art!("icons/properties");
176pub const QUOTE: &[&str] = art!("icons/quote");
177pub const RECYCLE_BIN: &[&str] = art!("icons/recycle-bin");
178pub const REMOVE_LINK: &[&str] = art!("icons/link", "icons/badge-remove");
179pub const REMOVE_TAG: &[&str] = art!("icons/tag", "icons/badge-remove");
180pub const RENAME: &[&str] = art!("icons/rename");
181pub const REWIND: &[&str] = art!("icons/rewind");
182pub const SAVE: &[&str] = art!("icons/save");
183pub const SEARCH_RESULTS: &[&str] = art!("icons/page-list", "icons/badge-search");
184pub const SECTION_COLOR: &[&str] = art!("icons/tab", "icons/badge-drop");
185pub const SEE_PLAYBACK: &[&str] = art!("icons/page", "icons/badge-play");
186pub const SEEK: &[&str] = art!("icons/clock", "icons/badge-go");
187pub const SELECT_ALL: &[&str] = art!("icons/select-all");
188pub const SHOW_UNREAD: &[&str] = art!(
189 "icons/notebook-back",
190 "icons/notebook-accent",
191 "icons/notebook",
192 "icons/badge-unread"
193);
194pub const SNAP_TO_GRID: &[&str] = art!("icons/snap-to-grid");
195pub const STOP: &[&str] = art!("icons/stop");
196pub const SUBPAGE: &[&str] = art!("icons/subpage");
197pub const SYNC_NOW: &[&str] = art!("icons/sync-now");
198pub const THEME: &[&str] = art!("icons/theme");
199pub const TO_DO: &[&str] = art!("icons/to-do");
200pub const UPDATE: &[&str] = art!("icons/update");
201pub const ZOOM_ACTUAL: &[&str] = art!("icons/zoom-actual");
crates/snowbound/src/history.rs+11-7
......@@ -96,25 +96,29 @@ pub fn menu(
9696 text,
9797 ..Default::default()
9898 };
99 let drawn = |text, icon| ui::popup::Item {
100 icon: Some(icon),
101 ..item(text)
102 };
99103 let items = [
100 item("Restore Version"),
101 item("Delete Version"),
104 drawn("Restore Version", art::UNDO),
105 drawn("Delete Version", art::DELETE),
102106 ui::popup::Item {
103107 disabled: sections.is_empty(),
104 ..item("Copy Page To…")
108 ..drawn("Copy Page To…", art::COPY)
105109 },
106110 ui::popup::Item {
107111 separated: true,
108 ..item("Delete All Versions in Section")
112 ..drawn("Delete All Versions in Section", art::DELETE)
109113 },
110114 ui::popup::Item {
111115 disabled: !grouped,
112 ..item("Delete All Versions in Section Group")
116 ..drawn("Delete All Versions in Section Group", art::DELETE)
113117 },
114 item("Delete All Versions in Notebook"),
118 drawn("Delete All Versions in Notebook", art::DELETE),
115119 ui::popup::Item {
116120 separated: true,
117 ..item("Hide Page Versions")
121 ..drawn("Hide Page Versions", art::PAGE_VERSIONS)
118122 },
119123 ];
120124 let chosen = match ui::popup::menu(ui, menu, anchor, &items, None) {
crates/snowbound/src/link.rs+23-18
......@@ -2,7 +2,7 @@
22//! the page's context menu, and following a clicked link, to a page
33//! of the notebook or with the system's handler.
44
5use crate::{Command, State, commands, page, platform};
5use crate::{Command, State, art, commands, page, platform};
66use onestore::ExGuid;
77use onestore::page::link::{LinkTarget, internal_link};
88use std::error::Error;
......@@ -292,14 +292,18 @@ impl State {
292292 text,
293293 ..Item::default()
294294 };
295 let drawn = |text, icon| Item {
296 icon: Some(icon),
297 ..item(text)
298 };
295299 // OneNote 2010 heads the menu on a marked word with its corrections.
296300 let mut items = match &context.spelling {
297301 Some(correction) if correction.repeated => vec![
298 item("Delete Repeated Word"),
302 drawn("Delete Repeated Word", art::DELETE),
299303 item("Ignore"),
300304 Item {
301305 separated: true,
302 ..item("Spelling…")
306 ..drawn("Spelling…", art::SPELLING)
303307 },
304308 ],
305309 Some(correction) => {
......@@ -319,10 +323,10 @@ impl State {
319323 separated: true,
320324 ..item("Ignore")
321325 },
322 item("Add to Dictionary"),
326 drawn("Add to Dictionary", art::ADD_TO_DICTIONARY),
323327 Item {
324328 separated: true,
325 ..item("Spelling…")
329 ..drawn("Spelling…", art::SPELLING)
326330 },
327331 ]);
328332 items
......@@ -340,45 +344,46 @@ impl State {
340344 .collect::<Vec<_>>();
341345 items.extend(if context.attachment.is_some() {
342346 // OneNote 2010's commands for the file itself; its clipboard holds text alone.
343 vec![item("Open"), item("Save As…")]
347 vec![drawn("Open", art::OPEN), drawn("Save As…", art::SAVE)]
344348 } else {
345349 let mut items = vec![
346350 Item {
347351 disabled: !context.selected,
348352 separated: corrections > 0,
349 ..item("Cut")
353 ..drawn("Cut", art::CUT)
350354 },
351355 Item {
352356 disabled: !context.selected,
353 ..item("Copy")
357 ..drawn("Copy", art::COPY)
354358 },
355 item("Paste"),
359 drawn("Paste", art::PASTE),
356360 ];
357361 match &context.link {
358362 Some(_) => items.extend([
359363 Item {
360364 separated: true,
361 ..item("Edit Link…")
365 ..drawn("Edit Link…", art::LINK)
362366 },
363 item("Copy Link to Paragraph"),
367 drawn("Copy Link to Paragraph", art::COPY_LINK),
364368 Item {
365369 separated: true,
366 ..item("Copy Link")
370 ..drawn("Copy Link", art::COPY_LINK)
367371 },
368 item("Select Link"),
369 item("Remove Link"),
372 drawn("Select Link", art::SELECT),
373 drawn("Remove Link", art::REMOVE_LINK),
370374 ]),
371375 None => items.extend([
372376 Item {
373377 separated: true,
374 ..item("Link…")
378 ..drawn("Link…", art::LINK)
375379 },
376 item("Copy Link to Paragraph"),
380 drawn("Copy Link to Paragraph", art::COPY_LINK),
377381 ]),
378382 }
379383 for (at, id) in lists.iter().enumerate() {
380384 items.push(Item {
381385 separated: at == 0,
386 icon: crate::artwork(*id),
382387 ..item(commands::command(*id).title)
383388 });
384389 }
......@@ -386,9 +391,9 @@ impl State {
386391 items.extend([
387392 Item {
388393 separated: true,
389 ..item("Professional")
394 ..drawn("Professional", art::EQUATION)
390395 },
391 item("Linear"),
396 drawn("Linear", art::EQUATION),
392397 ]);
393398 }
394399 items
crates/snowbound/src/main.rs+71-7
......@@ -2227,18 +2227,19 @@ impl State {
22272227 choice = dropdown(ui, "menu", head, &entries, status_of).or(choice);
22282228 // Pasting keeps only the text until #25.
22292229 let options = [
2230 ("Keep Source Formatting", false),
2231 ("Merge Formatting", false),
2232 ("Keep Text Only", true),
2233 ("Picture", false),
2230 ("Keep Source Formatting", false, art::KEEP_SOURCE_FORMATTING),
2231 ("Merge Formatting", false, art::MERGE_FORMATTING),
2232 ("Keep Text Only", true, art::KEEP_TEXT_ONLY),
2233 ("Picture", false, art::PASTE_PICTURE),
22342234 ];
22352235 let mut items = vec![ui::popup::Item {
22362236 text: "Paste Options",
22372237 heading: true,
22382238 ..Default::default()
22392239 }];
2240 items.extend(options.map(|(text, enabled)| ui::popup::Item {
2240 items.extend(options.map(|(text, enabled, icon)| ui::popup::Item {
22412241 text,
2242 icon: Some(icon),
22422243 disabled: !enabled,
22432244 ..Default::default()
22442245 }));
......@@ -4710,21 +4711,25 @@ fn conflict_bar(ui: &mut Ui, bar: Bar, sections: &[&str], steps: [bool; 2]) -> O
47104711 let items = [
47114712 ui::popup::Item {
47124713 text: "Delete Conflict Page",
4714 icon: Some(art::DELETE),
47134715 ..Default::default()
47144716 },
47154717 ui::popup::Item {
47164718 text: "Copy Page To…",
4719 icon: Some(art::COPY),
47174720 disabled: sections.is_empty(),
47184721 ..Default::default()
47194722 },
47204723 ui::popup::Item {
47214724 text: "Select Previous Conflicting Change",
4725 icon: Some(art::MOVE_UP),
47224726 disabled: !steps[0],
47234727 separated: true,
47244728 ..Default::default()
47254729 },
47264730 ui::popup::Item {
47274731 text: "Select Next Conflicting Change",
4732 icon: Some(art::MOVE_DOWN),
47284733 disabled: !steps[1],
47294734 ..Default::default()
47304735 },
......@@ -5545,10 +5550,12 @@ fn tag_tool(
55455550 clicked.then_some(commands::Choice::Command(commands::Id::Tag(place)))
55465551}
55475552
5548/// The artwork the toolbar and its menus show for command `id`.
5553/// The artwork the toolbar, the menus and the palette show for command `id`; none for a
5554/// tag, which shows its own.
55495555fn artwork(id: commands::Id) -> Option<&'static [&'static str]> {
55505556 use canvas::editor::{Alignment, Toggle};
55515557 use commands::Id as Cmd;
5558 use recording::Transport;
55525559 Some(match id {
55535560 Cmd::Back => art::BACK,
55545561 Cmd::Forward => art::FORWARD,
......@@ -5601,7 +5608,64 @@ fn artwork(id: commands::Id) -> Option<&'static [&'static str]> {
56015608 Cmd::ZoomIn => art::ZOOM_IN,
56025609 Cmd::ZoomOut => art::ZOOM_OUT,
56035610 Cmd::HideSpelling | Cmd::Spelling => art::SPELLING,
5604 _ => return None,
5611 Cmd::Settings => art::OPTIONS,
5612 Cmd::NewNotebook => art::NEW_NOTEBOOK,
5613 Cmd::OpenNotebook => art::OPEN,
5614 Cmd::OpenFromServer => art::SERVER,
5615 Cmd::CloseNotebook => art::CLOSE_NOTEBOOK,
5616 Cmd::NewSection => art::NEW_SECTION,
5617 Cmd::NewSectionGroup => art::NEW_SECTION_GROUP,
5618 Cmd::NewPage => art::NEW_PAGE,
5619 Cmd::NewSubpage => art::NEW_SUBPAGE,
5620 Cmd::PageVersions => art::PAGE_VERSIONS,
5621 Cmd::CopyPageLink => art::COPY_LINK,
5622 Cmd::PasswordProtect => art::PASSWORD,
5623 Cmd::LockAll => art::LOCK,
5624 Cmd::ShowNotebook => art::FOLDER,
5625 Cmd::SaveAs => art::SAVE,
5626 Cmd::RecycleBin => art::RECYCLE_BIN,
5627 Cmd::EmptyRecycleBin => art::EMPTY_RECYCLE_BIN,
5628 Cmd::MarkRead => art::MARK_READ,
5629 Cmd::MarkNotebookRead => art::MARK_NOTEBOOK_READ,
5630 Cmd::ShowUnread => art::SHOW_UNREAD,
5631 Cmd::NextUnread => art::NEXT_UNREAD,
5632 Cmd::ExportPdf => art::EXPORT_PDF,
5633 Cmd::Print => art::PRINT,
5634 Cmd::SelectAll => art::SELECT_ALL,
5635 Cmd::Find => art::FIND,
5636 Cmd::Search => art::SEARCH,
5637 Cmd::SearchResults => art::SEARCH_RESULTS,
5638 Cmd::GoTo => art::GO_TO,
5639 Cmd::CommandPalette => art::COMMAND_PALETTE,
5640 Cmd::ActualSize => art::ZOOM_ACTUAL,
5641 Cmd::Sidebar => art::SIDEBAR_EXPAND,
5642 Cmd::PageList => art::PAGE_LIST,
5643 Cmd::PagesMatchTheme => art::PAGES_MATCH_THEME,
5644 Cmd::FullPageView => art::FULL_PAGE,
5645 Cmd::Transport(Transport::Pause) => art::PAUSE,
5646 Cmd::Transport(Transport::Stop) => art::STOP,
5647 Cmd::Transport(Transport::Skip(seconds)) if seconds < 0 => art::REWIND,
5648 Cmd::Transport(Transport::Skip(_)) => art::FAST_FORWARD,
5649 Cmd::Transport(Transport::SeekTo) => art::SEEK,
5650 Cmd::Transport(Transport::SeePlayback) => art::SEE_PLAYBACK,
5651 Cmd::SnapToGrid => art::SNAP_TO_GRID,
5652 Cmd::Style(level @ 0..6) => art::HEADINGS[level],
5653 Cmd::Style(6) => art::PAGE_TITLE,
5654 Cmd::Style(7) => art::CITATION,
5655 Cmd::Style(8) => art::QUOTE,
5656 Cmd::Style(9) => art::CODE,
5657 Cmd::Style(_) => art::NORMAL,
5658 Cmd::Themes => art::CUSTOMIZE_THEME,
5659 Cmd::OpenShared => art::OPEN_SHARED,
5660 Cmd::LiveShare => art::LIVE_SHARE,
5661 Cmd::MarkdownShortcuts => art::MARKDOWN,
5662 Cmd::CustomizeTags => art::CUSTOMIZE_TAGS,
5663 Cmd::RemoveTags => art::REMOVE_TAG,
5664 Cmd::ToDoList => art::TO_DO,
5665 Cmd::BulletedList => art::BULLETS,
5666 Cmd::Help => art::HELP,
5667 Cmd::CheckForUpdates => art::UPDATE,
5668 Cmd::Tag(_) => return None,
56055669 })
56065670}
56075671
crates/snowbound/src/menus.rs+44
......@@ -127,6 +127,49 @@ pub enum Action {
127127 LiveShare,
128128}
129129
130impl Action {
131 /// The artwork its menu item shows; none for a place or colour, which shows its own.
132 pub(crate) fn art(&self) -> Option<&'static [&'static str]> {
133 use crate::art;
134 Some(match self {
135 Action::Open => art::OPEN,
136 Action::Rename => art::RENAME,
137 Action::Delete => art::DELETE,
138 Action::Move => art::MOVE,
139 Action::Copy => art::COPY,
140 Action::SaveAs => art::SAVE,
141 Action::RecycleBin => art::RECYCLE_BIN,
142 Action::EmptyRecycleBin => art::EMPTY_RECYCLE_BIN,
143 Action::MarkNotebookRead => art::MARK_NOTEBOOK_READ,
144 Action::CopyLink => art::COPY_LINK,
145 Action::NewPage => art::NEW_PAGE,
146 Action::NewSubpage => art::NEW_SUBPAGE,
147 Action::MakeSubpage => art::SUBPAGE,
148 Action::PromoteSubpage => art::OUTDENT,
149 Action::Versions(_) => art::PAGE_VERSIONS,
150 Action::NewSection => art::NEW_SECTION,
151 Action::NewGroup => art::NEW_SECTION_GROUP,
152 Action::Reveal => art::FOLDER,
153 Action::Close => art::CLOSE_NOTEBOOK,
154 Action::Theme => art::THEME,
155 Action::Colors => art::SECTION_COLOR,
156 Action::Sync => art::SYNC_NOW,
157 Action::NewNotebook => art::NEW_NOTEBOOK,
158 Action::Raise(true) => art::MOVE_UP,
159 Action::Raise(false) => art::MOVE_DOWN,
160 Action::Properties => art::PROPERTIES,
161 Action::Password => art::PASSWORD,
162 #[cfg(feature = "live")]
163 Action::LiveShare => art::LIVE_SHARE,
164 Action::Run
165 | Action::MoveTo(_)
166 | Action::CopyTo(_)
167 | Action::SyncStatus
168 | Action::Color(_) => return None,
169 })
170 }
171}
172
130173/// OneNote 2010's section and notebook colours, COLORREF, with their names in its Section
131174/// Color menu's order (`corpus/section-color/native`).
132175pub(crate) const SECTION_COLORS: [(u32, &str); 16] = [
......@@ -281,6 +324,7 @@ impl State {
281324 let badge = None;
282325 let item = Item {
283326 text,
327 icon: action.art(),
284328 disabled,
285329 separated,
286330 submenu,
crates/snowbound/src/palette.rs+2
......@@ -196,6 +196,7 @@ impl State {
196196 Action::Run,
197197 Item {
198198 text: "Run",
199 icon: crate::artwork(id),
199200 disabled: !self.status(&Choice::Command(id), &format).enabled,
200201 ..Item::default()
201202 },
......@@ -207,6 +208,7 @@ impl State {
207208 Action::Open,
208209 Item {
209210 text: "Open",
211 icon: Action::Open.art(),
210212 ..Item::default()
211213 },
212214 ),
crates/snowbound/src/themes.rs+5
......@@ -604,6 +604,11 @@ impl State {
604604 .enumerate()
605605 .map(|(at, (scope, _))| Item {
606606 text: scope.name(),
607 icon: Some(match scope {
608 Scope::Page => crate::art::PAGE,
609 Scope::Section => crate::art::SECTION,
610 Scope::Notebook => crate::art::NOTEBOOK,
611 }),
607612 current: at == 0,
608613 ..Item::default()
609614 })
crates/ui/src/popup.rs+10-6
......@@ -656,19 +656,23 @@ fn menu_row(ui: &mut Ui, style: &Menu, matches: &Matches, owner: Role, row: Row)
656656 if matches.icons {
657657 let checked = item.checked == Some(true);
658658 let tint = match item.tint {
659 Some([red, green, blue, _]) if !checked => [red, green, blue, color[3]],
659 Some([red, green, blue, _]) if !checked => [red, green, blue, 1.0],
660 _ if item.disabled => style.text,
660661 _ => color,
661662 };
663 // Fading the whole icon dims art in its own colours too, as the toolbar does.
664 let [red, green, blue, alpha] = tint;
662665 ui.leaf(
663666 "icon",
664667 Spec {
665668 size: [px(ICON), fill()],
666669 icon: if checked { Some(CHECK) } else { item.icon },
667 color: Some(if item.disabled {
668 mix(tint, style.fill, 0.5)
669 } else {
670 tint
671 }),
670 color: Some([
671 red,
672 green,
673 blue,
674 alpha * if item.disabled { 0.4 } else { 1.0 },
675 ]),
672676 ..Spec::default()
673677 },
674678 );