feat: view tab widget toggle commands and unified SVG icon color scheme

Integrate NAVVCUBE, NAVBAR, PROPERTIES, FILETAB, LAYOUTTAB, TOOLPALETTES
and SHEETSET commands to toggle UI widgets at runtime. Add 15 new SVG icons
for view module tools previously using glyph fallbacks. Restyle all SVG
icons to use the established two-color scheme: #e0e0e0 for passive geometry,
#4cc9f0 for active/accent elements.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-04-24 01:23:06 +03:00
commit 1ec53a4730
81 changed files with 533 additions and 597 deletions

View file

@ -1,8 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Circle -->
<circle cx="12" cy="12" r="9"/>
<!-- i dot -->
<circle cx="12" cy="8" r="0.8" fill="currentColor" stroke="none"/>
<!-- i stem -->
<line x1="12" y1="11" x2="12" y2="16"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="12" cy="8" r="0.8" fill="#4cc9f0"/>
<line x1="12" y1="11" x2="12" y2="17" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 348 B

Before After
Before After

View file

@ -1,10 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Tag shape -->
<path d="M3 3 h8 l10 9 -10 9 H3 Z"/>
<circle cx="8" cy="12" r="1.5" fill="currentColor" stroke="none"/>
<!-- "A" attribute letter -->
<text x="5" y="14" font-size="6" fill="currentColor" stroke="none" font-weight="bold">A</text>
<!-- Plus (define/create) -->
<line x1="19" y1="3" x2="19" y2="9"/>
<line x1="16" y1="6" x2="22" y2="6"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 3 h8 l10 9 -10 9 H3 Z" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="9" cy="12" r="1.5" fill="#4cc9f0"/>
<text x="13" y="9" font-size="4" fill="#4cc9f0" stroke="none">@</text>
</svg>

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 348 B

Before After
Before After

View file

@ -1,10 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Tag shape -->
<path d="M3 5 h7 l9 7 -9 7 H3 Z"/>
<circle cx="7" cy="12" r="1.5" fill="currentColor" stroke="none"/>
<!-- Pencil edit -->
<line x1="17" y1="3" x2="22" y2="8"/>
<polygon points="15,5 20,10 18,12 13,7"/>
<line x1="13" y1="7" x2="12" y2="12"/>
<line x1="12" y1="12" x2="17" y2="11"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 5 h7 l9 7 -9 7 H3 Z" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="8" cy="12" r="1.5" fill="#e0e0e0"/>
<line x1="17" y1="4" x2="21" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="15" y1="6" x2="19" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="10" x2="18" y2="6" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 485 B

After

Width:  |  Height:  |  Size: 503 B

Before After
Before After

View file

@ -1,15 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- List of attributes -->
<rect x="2" y="3" width="20" height="18" rx="1"/>
<line x1="2" y1="7" x2="22" y2="7"/>
<!-- Tag rows -->
<line x1="5" y1="11" x2="10" y2="11"/>
<line x1="12" y1="11" x2="19" y2="11"/>
<line x1="5" y1="15" x2="10" y2="15"/>
<line x1="12" y1="15" x2="19" y2="15"/>
<line x1="5" y1="19" x2="10" y2="19"/>
<line x1="12" y1="19" x2="19" y2="19"/>
<!-- Header labels -->
<line x1="5" y1="5" x2="9" y2="5" stroke-width="1"/>
<line x1="12" y1="5" x2="16" y2="5" stroke-width="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="3" width="18" height="18" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="7" x2="21" y2="7" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="7" y1="11" x2="17" y2="11" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="14" x2="17" y2="14" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="17" x2="13" y2="17" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 544 B

Before After
Before After

View file

@ -1,9 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Sync arrows -->
<path d="M4 12 A8 8 0 0 1 18 7"/>
<polyline points="16,4 18,7 15,8"/>
<path d="M20 12 A8 8 0 0 1 6 17"/>
<polyline points="8,20 6,17 9,16"/>
<!-- Tag dot in center -->
<circle cx="12" cy="12" r="2" fill="currentColor" stroke="none"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M4 12 A8 8 0 0 1 18 7" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="16,4 18,7 15,8" stroke="#e0e0e0" stroke-width="1.5"/>
<path d="M20 12 A8 8 0 0 1 6 17" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="8,20 6,17 9,16" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 443 B

Before After
Before After

View file

@ -1,10 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Clipboard with checkmarks -->
<path d="M9 3 H5 a1 1 0 0 0 -1 1 v16 a1 1 0 0 0 1 1 h14 a1 1 0 0 0 1 -1 V4 a1 1 0 0 0 -1 -1 h-4"/>
<rect x="9" y="1" width="6" height="4" rx="1"/>
<!-- Check items -->
<polyline points="7,10 9,12 13,8"/>
<line x1="15" y1="10" x2="17" y2="10"/>
<polyline points="7,15 9,17 13,13"/>
<line x1="15" y1="15" x2="17" y2="15"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M9 3 H5 a1 1 0 0 0 -1 1 v16 a1 1 0 0 0 1 1 h14 a1 1 0 0 0 1 -1 V4 a1 1 0 0 0 -1 -1 h-4" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="9" y="1" width="6" height="4" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="7,12 10,15 17,9" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 448 B

Before After
Before After

View file

@ -1,7 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Crosshair at base point -->
<line x1="12" y1="2" x2="12" y2="22"/>
<line x1="2" y1="12" x2="22" y2="12"/>
<circle cx="12" cy="12" r="4"/>
<circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<line x1="12" y1="2" x2="12" y2="22" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="2" y1="12" x2="22" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="12" cy="12" r="2.5" fill="#4cc9f0" fill-opacity="0.4" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 389 B

After

Width:  |  Height:  |  Size: 410 B

Before After
Before After

View file

@ -1,6 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Three cascaded windows -->
<rect x="8" y="10" width="13" height="11" rx="1"/>
<rect x="5" y="7" width="13" height="11" rx="1"/>
<rect x="2" y="4" width="13" height="11" rx="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="8" y="10" width="13" height="11" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="5" y="7" width="13" height="11" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="2" y="4" width="13" height="11" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 415 B

Before After
Before After

View file

@ -1,9 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Clock circle -->
<circle cx="12" cy="12" r="9"/>
<!-- Clock hands -->
<polyline points="12,7 12,12 15.5,15.5"/>
<!-- Counter-clockwise arrow suggesting history -->
<path d="M5.6 5.6 A8.5 8.5 0 0 0 3 12" stroke-width="1.5"/>
<polyline points="2,9.5 3,12 5.5,10.8"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="12,7 12,12 15.5,15.5" stroke="#4cc9f0" stroke-width="1.5"/>
<path d="M5 4 A9 9 0 0 0 3 12" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 371 B

Before After
Before After

View file

@ -1,13 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Browser window -->
<rect x="2" y="3" width="20" height="18" rx="1"/>
<line x1="2" y1="7" x2="22" y2="7"/>
<!-- Nav buttons -->
<circle cx="5" cy="5" r="1" fill="currentColor" stroke="none"/>
<circle cx="9" cy="5" r="1" fill="currentColor" stroke="none"/>
<!-- Content grid -->
<rect x="4" y="10" width="6" height="5" rx="0.5"/>
<rect x="13" y="10" width="6" height="5" rx="0.5"/>
<rect x="4" y="17" width="6" height="3" rx="0.5"/>
<rect x="13" y="17" width="6" height="3" rx="0.5"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="4" width="20" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="2" y1="8" x2="22" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<circle cx="7" cy="13" r="1" fill="#4cc9f0"/>
<circle cx="12" cy="13" r="1" fill="#4cc9f0"/>
<circle cx="17" cy="13" r="1" fill="#4cc9f0"/>
</svg>

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 459 B

Before After
Before After

View file

@ -1,9 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- File -->
<path d="M4 4 h10 l4 4 v13 H4 Z"/>
<polyline points="14,4 14,8 18,8"/>
<!-- Arrow pointing out (export) -->
<line x1="10" y1="14" x2="20" y2="14"/>
<polyline points="17,11 20,14 17,17"/>
<line x1="10" y1="11" x2="10" y2="17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="10" height="13" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="8" x2="11" y2="8" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="11" x2="11" y2="11" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="17" y1="10" x2="17" y2="19" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="14,16 17,19 20,16" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 545 B

Before After
Before After

View file

@ -1,8 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- File -->
<path d="M4 4 h10 l4 4 v13 H4 Z"/>
<polyline points="14,4 14,8 18,8"/>
<!-- Arrow pointing in (import) -->
<line x1="12" y1="14" x2="20" y2="14"/>
<polyline points="17,11 20,14 17,17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="10" height="13" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="8" x2="11" y2="8" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="11" x2="11" y2="11" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="17" y1="10" x2="17" y2="19" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="14,13 17,10 20,13" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 545 B

Before After
Before After

View file

@ -1,10 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Table grid -->
<rect x="2" y="4" width="14" height="12" rx="1"/>
<line x1="2" y1="8" x2="16" y2="8"/>
<line x1="2" y1="12" x2="16" y2="12"/>
<line x1="7" y1="4" x2="7" y2="16"/>
<!-- Arrow pointing right/out -->
<line x1="18" y1="10" x2="23" y2="10"/>
<polyline points="20,7 23,10 20,13"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="5" width="13" height="14" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="6" y1="9" x2="13" y2="9" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="6" y1="12" x2="13" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="6" y1="15" x2="10" y2="15" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="17" y1="8" x2="21" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="21" y1="12" x2="17" y2="16" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="15" y1="12" x2="21" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 700 B

Before After
Before After

View file

@ -1,11 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Table grid -->
<rect x="2" y="4" width="12" height="12" rx="1"/>
<line x1="2" y1="8" x2="14" y2="8"/>
<line x1="2" y1="12" x2="14" y2="12"/>
<line x1="6" y1="4" x2="6" y2="16"/>
<!-- Link chain -->
<path d="M17 10 h2 a3 3 0 0 1 0 6 h-2"/>
<path d="M19 13 h-4"/>
<path d="M17 13 h-2 a3 3 0 0 1 0-6 h2"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="5" width="8" height="6" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="13" y="13" width="8" height="6" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="11" y1="8" x2="14" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="10" y1="16" x2="13" y2="16" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="8" x2="14" y2="16" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="2 2"/>
</svg>

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 578 B

Before After
Before After

View file

@ -1,16 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Panel with tree on left, content on right -->
<rect x="2" y="3" width="20" height="18" rx="1"/>
<line x1="9" y1="3" x2="9" y2="21"/>
<!-- Tree structure on left -->
<line x1="4" y1="7" x2="7" y2="7"/>
<line x1="5" y1="7" x2="5" y2="11"/>
<line x1="5" y1="11" x2="7" y2="11"/>
<line x1="5" y1="11" x2="5" y2="15"/>
<line x1="5" y1="15" x2="7" y2="15"/>
<!-- Content thumbnails on right -->
<rect x="11" y="6" width="4" height="4" rx="0.5"/>
<rect x="17" y="6" width="4" height="4" rx="0.5"/>
<rect x="11" y="12" width="4" height="4" rx="0.5"/>
<rect x="17" y="12" width="4" height="4" rx="0.5"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="7" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="7" x2="8" y2="7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="10" x2="8" y2="10" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="13" x2="8" y2="13" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="12" y="4" width="9" height="9" rx="1" stroke="#4cc9f0" stroke-width="1.5" fill="#4cc9f0" fill-opacity="0.15"/>
<line x1="14" y1="7" x2="19" y2="7" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="10" x2="19" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="16" x2="21" y2="16" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
</svg>

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 840 B

Before After
Before After

View file

@ -1,16 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- List of alias pairs -->
<rect x="2" y="3" width="20" height="18" rx="1"/>
<line x1="2" y1="7" x2="22" y2="7"/>
<line x1="12" y1="7" x2="12" y2="21"/>
<!-- Header -->
<line x1="4" y1="5" x2="8" y2="5" stroke-width="1"/>
<line x1="14" y1="5" x2="18" y2="5" stroke-width="1"/>
<!-- Rows -->
<line x1="4" y1="11" x2="10" y2="11"/>
<line x1="14" y1="11" x2="20" y2="11"/>
<line x1="4" y1="15" x2="10" y2="15"/>
<line x1="14" y1="15" x2="20" y2="15"/>
<line x1="4" y1="19" x2="10" y2="19"/>
<line x1="14" y1="19" x2="20" y2="19"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="5" width="18" height="14" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="9" x2="21" y2="9" stroke="#e0e0e0" stroke-width="1.5"/>
<text x="5.5" y="8" font-size="3.5" fill="#4cc9f0" stroke="none">A→a</text>
<line x1="6" y1="13" x2="10" y2="13" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="13" x2="18" y2="13" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="6" y1="16" x2="14" y2="16" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 726 B

After

Width:  |  Height:  |  Size: 625 B

Before After
Before After

View file

@ -1,9 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Block outline -->
<rect x="3" y="5" width="14" height="14" rx="1" stroke-dasharray="4 2"/>
<!-- Pencil edit icon -->
<line x1="14" y1="3" x2="21" y2="10"/>
<polygon points="12,5 19,12 16,15 9,8"/>
<line x1="9" y1="8" x2="7" y2="17"/>
<line x1="7" y1="17" x2="16" y2="15"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="6" width="12" height="12" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="9" x2="13" y2="9" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="12" x2="13" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="17" y1="4" x2="20" y2="7" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="12" x2="20" y2="4" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="12" x2="11" y2="15" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="11" y1="15" x2="14" y2="14" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 460 B

After

Width:  |  Height:  |  Size: 699 B

Before After
Before After

View file

@ -1,45 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 24 24"
width="64"
height="64"
version="1.1"
id="svg3"
sodipodi:docname="erase.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:zoom="11.265625"
inkscape:cx="31.955617"
inkscape:cy="32"
inkscape:window-width="1920"
inkscape:window-height="939"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<!-- Object being erased (dashed rect) -->
<!-- Eraser shape (filled block moving across) -->
<!-- Eraser direction arrow (leftward) -->
<path
style="fill:#ff0000;stroke:#ff0000;stroke-width:1.96068;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
d="M 3.0549235,3.0549235 20.945076,20.945077"
id="path3" />
<path
style="fill:#ff0000;stroke:#ff0000;stroke-width:1.96068;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
d="M 3.0549235,20.945077 20.945076,3.0549235"
id="path4" />
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polygon points="14,4 20,10 12,18 6,12" stroke="#e0e0e0" stroke-width="1.5" fill="#e0e0e0" fill-opacity="0.12"/>
<line x1="4" y1="20" x2="14" y2="20" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="6" y1="12" x2="14" y2="20" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 419 B

Before After
Before After

View file

@ -1,11 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Tab bar at top -->
<rect x="2" y="5" width="6" height="4" rx="1"/>
<rect x="9" y="5" width="6" height="4" rx="1"/>
<rect x="16" y="5" width="6" height="4" rx="1"/>
<!-- Document area below -->
<rect x="2" y="9" width="20" height="12" rx="0 0 1 1"/>
<!-- File icon inside -->
<polyline points="7,12 7,18 17,18 17,12"/>
<polyline points="7,12 11,12 12,11 17,12" stroke-width="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="5" width="6" height="4" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="9" y="5" width="6" height="4" rx="1" fill="#4cc9f0" fill-opacity="0.3" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="16" y="5" width="6" height="4" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="2" y="9" width="20" height="12" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="7,12 7,18 17,18 17,12" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="7,12 11,12 12,11 17,12" stroke="#e0e0e0" stroke-width="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 692 B

Before After
Before After

View file

@ -1,8 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Magnifier -->
<circle cx="10" cy="10" r="7"/>
<line x1="15" y1="15" x2="21" y2="21"/>
<!-- Lock inside (non-purgeable / protected) -->
<rect x="7" y="10" width="6" height="5" rx="0.5"/>
<path d="M8 10 V8 a2 2 0 0 1 4 0 V10"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="10" cy="10" r="6" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="14.5" y1="14.5" x2="20" y2="20" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="8" y1="10" x2="12" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="10" y1="8" x2="10" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="17" y1="18" x2="20" y2="21" stroke="#4cc9f0" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 411 B

After

Width:  |  Height:  |  Size: 532 B

Before After
Before After

8
assets/icons/hidden.svg Normal file
View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="9" width="10" height="10" rx="0.5" stroke="#e0e0e0" stroke-width="1.5"/>
<polygon points="5,9 9,5 19,5 15,9" stroke="#e0e0e0" stroke-width="1.5"/>
<polygon points="15,9 19,5 19,15 15,19" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="9" x2="9" y2="5" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="9" y1="5" x2="9" y2="15" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="9" y1="15" x2="19" y2="15" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="2 2"/>
</svg>

After

Width:  |  Height:  |  Size: 691 B

View file

@ -1,6 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Terrain/land profile -->
<polyline points="2,18 6,10 10,14 14,7 18,12 22,6"/>
<!-- XML brackets -->
<text x="3" y="23" font-size="5" fill="currentColor" stroke="none">&lt;XML&gt;</text>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polyline points="3,17 7,10 11,14 15,7 21,7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="20" x2="21" y2="20" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="7" cy="10" r="1.2" fill="#4cc9f0"/>
<circle cx="11" cy="14" r="1.2" fill="#4cc9f0"/>
<circle cx="15" cy="7" r="1.2" fill="#4cc9f0"/>
</svg>

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 463 B

Before After
Before After

View file

@ -1,9 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Document area -->
<rect x="2" y="3" width="20" height="15" rx="1"/>
<!-- Layout tabs at bottom -->
<rect x="2" y="18" width="6" height="3" rx="1 1 0 0"/>
<rect x="9" y="18" width="6" height="3" rx="1 1 0 0"/>
<!-- Page border inside -->
<rect x="5" y="6" width="14" height="9" rx="0.5"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="3" width="20" height="15" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="2" y="18" width="6" height="3" rx="1" fill="#4cc9f0" fill-opacity="0.3" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="9" y="18" width="6" height="3" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="5" y="6" width="14" height="9" rx="0.5" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 535 B

Before After
Before After

View file

@ -1,14 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Multi-view: 3 perspective projections of a block -->
<!-- Top view -->
<rect x="2" y="2" width="8" height="8" rx="0.5"/>
<!-- Front view -->
<rect x="2" y="14" width="8" height="8" rx="0.5"/>
<!-- Isometric block -->
<polygon points="14,8 20,5 20,15 14,18"/>
<polygon points="14,8 20,5 22,7 16,10"/>
<polygon points="16,10 22,7 22,17 16,20"/>
<line x1="14" y1="8" x2="16" y2="10"/>
<line x1="14" y1="18" x2="16" y2="20"/>
<line x1="20" y1="15" x2="22" y2="17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="18" height="14" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="5" y="6" width="8" height="6" rx="0.5" stroke="#4cc9f0" stroke-width="1.5" fill="#4cc9f0" fill-opacity="0.15"/>
<rect x="14" y="6" width="5" height="3" rx="0.5" stroke="#e0e0e0" stroke-width="1"/>
<rect x="14" y="10" width="5" height="3" rx="0.5" stroke="#e0e0e0" stroke-width="1"/>
<line x1="5" y1="14" x2="19" y2="14" stroke="#e0e0e0" stroke-width="1" stroke-dasharray="2 2"/>
</svg>

Before

Width:  |  Height:  |  Size: 659 B

After

Width:  |  Height:  |  Size: 634 B

Before After
Before After

View file

@ -1,10 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Compass rose -->
<circle cx="12" cy="12" r="9"/>
<line x1="12" y1="3" x2="12" y2="8"/>
<line x1="12" y1="16" x2="12" y2="21"/>
<line x1="3" y1="12" x2="8" y2="12"/>
<line x1="16" y1="12" x2="21" y2="12"/>
<!-- N marker -->
<text x="9.5" y="7" font-size="4.5" fill="currentColor" stroke="none">N</text>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="9" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="3" x2="12" y2="8" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="16" x2="12" y2="21" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="12" x2="8" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="16" y1="12" x2="21" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<text x="9.5" y="7" font-size="4.5" fill="#4cc9f0" stroke="none">N</text>
</svg>

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 604 B

Before After
Before After

6
assets/icons/orbit.svg Normal file
View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="8" stroke="#e0e0e0" stroke-width="1.5"/>
<ellipse cx="12" cy="12" rx="8" ry="3" stroke="#e0e0e0" stroke-width="1.5"/>
<path d="M 5,7 A 9 9 0 0 1 19,7" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="17,4.5 19,7 16.5,8.5" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 452 B

7
assets/icons/ortho.svg Normal file
View file

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="8" width="10" height="10" rx="0.5" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="10" y="3" width="10" height="10" rx="0.5" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="4" y1="8" x2="10" y2="3" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="14" y1="8" x2="20" y2="3" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="18" x2="20" y2="13" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 560 B

View file

@ -1,8 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Two overlapping lines (duplicates) -->
<line x1="3" y1="10" x2="21" y2="10"/>
<line x1="3" y1="12" x2="21" y2="12" stroke-dasharray="3 2"/>
<!-- X to remove duplicate -->
<line x1="16" y1="15" x2="21" y2="20"/>
<line x1="21" y1="15" x2="16" y2="20"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<line x1="4" y1="8" x2="20" y2="8" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="4" y1="12" x2="20" y2="12" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<line x1="4" y1="16" x2="20" y2="16" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<line x1="15" y1="5" x2="18" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="18" y1="5" x2="15" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="15" y1="9" x2="18" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="18" y1="9" x2="15" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="15" y1="13" x2="18" y2="16" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="18" y1="13" x2="15" y2="16" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 887 B

Before After
Before After

8
assets/icons/pan.svg Normal file
View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<line x1="12" y1="4" x2="12" y2="20" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="4" y1="12" x2="20" y2="12" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="9,7 12,4 15,7" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="9,17 12,20 15,17" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="7,9 4,12 7,15" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="17,9 20,12 17,15" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 602 B

View file

@ -1,14 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Point cloud -->
<circle cx="6" cy="14" r="1" fill="currentColor" stroke="none"/>
<circle cx="9" cy="11" r="1" fill="currentColor" stroke="none"/>
<circle cx="12" cy="9" r="1" fill="currentColor" stroke="none"/>
<circle cx="5" cy="17" r="1" fill="currentColor" stroke="none"/>
<circle cx="8" cy="16" r="1" fill="currentColor" stroke="none"/>
<circle cx="11" cy="13" r="1" fill="currentColor" stroke="none"/>
<circle cx="14" cy="11" r="1" fill="currentColor" stroke="none"/>
<circle cx="13" cy="16" r="1" fill="currentColor" stroke="none"/>
<!-- Plus/attach symbol -->
<line x1="18" y1="5" x2="18" y2="13"/>
<line x1="14" y1="9" x2="22" y2="9"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="5" width="14" height="14" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<circle cx="8" cy="10" r="1.5" fill="#e0e0e0"/>
<circle cx="12" cy="14" r="1.5" fill="#e0e0e0"/>
<line x1="8" y1="10" x2="12" y2="14" stroke="#e0e0e0" stroke-width="1" stroke-dasharray="2 2"/>
<line x1="18" y1="9" x2="21" y2="9" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="19.5" y1="7.5" x2="19.5" y2="10.5" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 841 B

After

Width:  |  Height:  |  Size: 598 B

Before After
Before After

8
assets/icons/persp.svg Normal file
View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="8" width="9" height="9" rx="0.5" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="10" y="10" width="5" height="5" rx="0.5" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="2" y1="8" x2="10" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="11" y1="8" x2="15" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="11" y1="17" x2="15" y2="15" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="2" y1="17" x2="10" y2="15" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 636 B

View file

@ -1,15 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Properties panel -->
<rect x="4" y="2" width="16" height="20" rx="1"/>
<!-- Header -->
<line x1="4" y1="6" x2="20" y2="6"/>
<!-- Property rows: label + value -->
<line x1="6" y1="10" x2="11" y2="10"/>
<line x1="13" y1="10" x2="18" y2="10"/>
<line x1="6" y1="14" x2="11" y2="14"/>
<line x1="13" y1="14" x2="18" y2="14"/>
<line x1="6" y1="18" x2="11" y2="18"/>
<line x1="13" y1="18" x2="18" y2="18"/>
<!-- Divider between label and value -->
<line x1="12" y1="7" x2="12" y2="20" stroke-dasharray="2 2"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="2" width="16" height="20" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="4" y="2" width="16" height="4" rx="1" fill="#4cc9f0" fill-opacity="0.3" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="3" x2="12" y2="20" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="6" y1="10" x2="11" y2="10" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="13" y1="10" x2="18" y2="10" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="6" y1="14" x2="11" y2="14" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="13" y1="14" x2="18" y2="14" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="6" y1="18" x2="11" y2="18" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="13" y1="18" x2="18" y2="18" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 924 B

Before After
Before After

View file

@ -1,10 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Trash can -->
<polyline points="3,6 5,6 19,6"/>
<path d="M8 6 V4 h8 v2"/>
<rect x="5" y="6" width="14" height="15" rx="1"/>
<!-- Vertical lines inside -->
<line x1="9" y1="10" x2="9" y2="17"/>
<line x1="12" y1="10" x2="12" y2="17"/>
<line x1="15" y1="10" x2="15" y2="17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polyline points="5,7 7,20 17,20 19,7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="7" x2="21" y2="7" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="9" y="4" width="6" height="3" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="10" y1="10" x2="10" y2="17" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="10" x2="14" y2="17" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 546 B

Before After
Before After

View file

@ -1,18 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Point cloud dots -->
<circle cx="7" cy="15" r="1" fill="currentColor" stroke="none"/>
<circle cx="10" cy="11" r="1" fill="currentColor" stroke="none"/>
<circle cx="13" cy="9" r="1" fill="currentColor" stroke="none"/>
<circle cx="5" cy="12" r="1" fill="currentColor" stroke="none"/>
<circle cx="9" cy="16" r="1" fill="currentColor" stroke="none"/>
<circle cx="12" cy="13" r="1" fill="currentColor" stroke="none"/>
<circle cx="15" cy="11" r="1" fill="currentColor" stroke="none"/>
<circle cx="17" cy="8" r="1" fill="currentColor" stroke="none"/>
<circle cx="14" cy="16" r="1" fill="currentColor" stroke="none"/>
<circle cx="17" cy="14" r="1" fill="currentColor" stroke="none"/>
<circle cx="6" cy="18" r="1" fill="currentColor" stroke="none"/>
<circle cx="11" cy="18" r="1" fill="currentColor" stroke="none"/>
<!-- ReCap logo hint: circular arrow -->
<path d="M19 5 A7 7 0 0 1 21 12" stroke-width="2"/>
<polyline points="17,3 19,5 21,3"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polygon points="12,3 20,8 20,16 12,21 4,16 4,8" stroke="#e0e0e0" stroke-width="1.5" fill="none"/>
<circle cx="12" cy="12" r="3" stroke="#4cc9f0" stroke-width="1.5" fill="#4cc9f0" fill-opacity="0.2"/>
<line x1="12" y1="3" x2="12" y2="9" stroke="#e0e0e0" stroke-width="1"/>
<line x1="12" y1="15" x2="12" y2="21" stroke="#e0e0e0" stroke-width="1"/>
<line x1="4" y1="8" x2="9.5" y2="10.5" stroke="#e0e0e0" stroke-width="1"/>
<line x1="14.5" y1="13.5" x2="20" y2="16" stroke="#e0e0e0" stroke-width="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 662 B

Before After
Before After

View file

@ -1,17 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Bug body (oval) -->
<ellipse cx="12" cy="13" rx="5" ry="6"/>
<!-- Head -->
<circle cx="12" cy="6" r="2.2"/>
<!-- Antennae -->
<line x1="10.5" y1="4.2" x2="8" y2="2"/>
<line x1="13.5" y1="4.2" x2="16" y2="2"/>
<!-- Left legs -->
<line x1="7" y1="10" x2="4" y2="9"/>
<line x1="7" y1="13" x2="4" y2="13"/>
<line x1="7" y1="16" x2="4" y2="17"/>
<!-- Right legs -->
<line x1="17" y1="10" x2="20" y2="9"/>
<line x1="17" y1="13" x2="20" y2="13"/>
<line x1="17" y1="16" x2="20" y2="17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="3" width="16" height="18" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="8" x2="17" y2="8" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="11" x2="17" y2="11" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="7" y1="14" x2="13" y2="14" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="7" y1="17" x2="11" y2="17" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 544 B

Before After
Before After

View file

@ -1,9 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Stack of sheets -->
<rect x="5" y="6" width="14" height="16" rx="1"/>
<rect x="3" y="4" width="14" height="16" rx="1"/>
<!-- Lines on top sheet -->
<line x1="5" y1="8" x2="15" y2="8"/>
<line x1="5" y1="11" x2="15" y2="11"/>
<line x1="5" y1="14" x2="11" y2="14"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="6" width="14" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="3" y="4" width="14" height="16" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="5" y1="8" x2="15" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="5" y1="11" x2="15" y2="11" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="14" x2="11" y2="14" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 555 B

Before After
Before After

View file

@ -1,10 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Underlay image -->
<rect x="2" y="5" width="14" height="12" rx="1" stroke-dasharray="3 2"/>
<!-- Snap crosshair -->
<line x1="17" y1="11" x2="22" y2="11"/>
<line x1="19" y1="9" x2="19" y2="13"/>
<circle cx="19" cy="11" r="3"/>
<!-- Snap indicator dot -->
<circle cx="19" cy="11" r="1" fill="currentColor" stroke="none"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="5" width="14" height="14" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<line x1="10" y1="5" x2="10" y2="19" stroke="#e0e0e0" stroke-width="1" stroke-dasharray="2 2"/>
<line x1="3" y1="12" x2="17" y2="12" stroke="#e0e0e0" stroke-width="1" stroke-dasharray="2 2"/>
<circle cx="10" cy="12" r="2" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="10" y1="9" x2="10" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="10" y1="15" x2="10" y2="16" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="7" y1="12" x2="6" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="13" y1="12" x2="14" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 835 B

Before After
Before After

5
assets/icons/solid.svg Normal file
View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polygon points="5,9 15,9 15,19 5,19" fill="#4cc9f0" fill-opacity="0.25" stroke="#e0e0e0" stroke-width="1.5"/>
<polygon points="5,9 9,5 19,5 15,9" fill="#4cc9f0" fill-opacity="0.55" stroke="#4cc9f0" stroke-width="1.5"/>
<polygon points="15,9 19,5 19,15 15,19" fill="#4cc9f0" fill-opacity="0.12" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 489 B

View file

@ -1,5 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Two windows stacked horizontally -->
<rect x="2" y="3" width="20" height="8" rx="1"/>
<rect x="2" y="13" width="20" height="8" rx="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="3" width="20" height="8" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="2" y="13" width="20" height="8" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 325 B

Before After
Before After

View file

@ -1,5 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Two windows side by side vertically -->
<rect x="2" y="3" width="9" height="18" rx="1"/>
<rect x="13" y="3" width="9" height="18" rx="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="3" width="9" height="18" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="13" y="3" width="9" height="18" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 325 B

Before After
Before After

View file

@ -1,15 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Palette panel (vertical strip) -->
<rect x="3" y="2" width="7" height="20" rx="1"/>
<!-- Tab on top -->
<rect x="3" y="2" width="7" height="4" rx="1"/>
<!-- Stacked items inside -->
<line x1="5" y1="9" x2="8" y2="9"/>
<rect x="4" y="7" width="2" height="2"/>
<line x1="5" y1="14" x2="8" y2="14"/>
<rect x="4" y="12" width="2" height="2"/>
<line x1="5" y1="19" x2="8" y2="19"/>
<rect x="4" y="17" width="2" height="2"/>
<!-- Shadow panel behind -->
<rect x="11" y="4" width="7" height="16" rx="1" stroke-dasharray="3 2"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="11" y="4" width="9" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<rect x="3" y="2" width="7" height="20" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="3" y="2" width="7" height="4" rx="1" fill="#4cc9f0" fill-opacity="0.3" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="5" y1="9" x2="8" y2="9" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="4" y="7" width="2" height="2" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="14" x2="8" y2="14" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="4" y="12" width="2" height="2" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="5" y1="19" x2="8" y2="19" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="4" y="17" width="2" height="2" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 720 B

After

Width:  |  Height:  |  Size: 933 B

Before After
Before After

View file

@ -1,10 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- X axis (red-ish) -->
<line x1="4" y1="18" x2="14" y2="18"/>
<polyline points="11,15 14,18 11,21"/>
<text x="15" y="21" font-size="5" fill="currentColor" stroke="none">X</text>
<!-- Y axis -->
<line x1="4" y1="18" x2="4" y2="6"/>
<polyline points="1,9 4,6 7,9"/>
<text x="1" y="5" font-size="5" fill="currentColor" stroke="none">Y</text>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<line x1="4" y1="18" x2="14" y2="18" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="11,15 14,18 11,21" stroke="#4cc9f0" stroke-width="1.5"/>
<text x="15" y="21" font-size="5" fill="#4cc9f0" stroke="none">X</text>
<line x1="4" y1="18" x2="4" y2="6" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="1,9 4,6 7,9" stroke="#e0e0e0" stroke-width="1.5"/>
<text x="1" y="5" font-size="5" fill="#e0e0e0" stroke="none">Y</text>
</svg>

Before

Width:  |  Height:  |  Size: 526 B

After

Width:  |  Height:  |  Size: 596 B

Before After
Before After

View file

@ -1,13 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Frame border (dashed) -->
<rect x="3" y="3" width="18" height="18" rx="1" stroke-dasharray="4 2"/>
<!-- Corner markers -->
<line x1="3" y1="3" x2="7" y2="3"/>
<line x1="3" y1="3" x2="3" y2="7"/>
<line x1="21" y1="3" x2="17" y2="3"/>
<line x1="21" y1="3" x2="21" y2="7"/>
<line x1="3" y1="21" x2="7" y2="21"/>
<line x1="3" y1="21" x2="3" y2="17"/>
<line x1="21" y1="21" x2="17" y2="21"/>
<line x1="21" y1="21" x2="21" y2="17"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="7" width="14" height="10" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<rect x="3" y="5" width="14" height="10" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 349 B

Before After
Before After

View file

@ -1,6 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Stacked layers -->
<polygon points="12,3 22,8 12,13 2,8"/>
<polyline points="2,12 12,17 22,12"/>
<polyline points="2,16 12,21 22,16"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="13" width="14" height="6" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<rect x="5" y="8" width="14" height="6" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<rect x="5" y="5" width="14" height="6" rx="1" stroke="#4cc9f0" stroke-width="1.5" fill="#4cc9f0" fill-opacity="0.12"/>
</svg>

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 493 B

Before After
Before After

View file

@ -1,12 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Monitor -->
<rect x="2" y="3" width="20" height="14" rx="1"/>
<!-- Screen content: ribbon bar -->
<line x1="2" y1="7" x2="22" y2="7"/>
<rect x="4" y="4" width="3" height="2.5" rx="0.3"/>
<rect x="8" y="4" width="3" height="2.5" rx="0.3"/>
<rect x="12" y="4" width="3" height="2.5" rx="0.3"/>
<!-- Stand -->
<line x1="12" y1="17" x2="12" y2="21"/>
<line x1="8" y1="21" x2="16" y2="21"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="18" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="3" y1="8" x2="21" y2="8" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="3" y1="17" x2="21" y2="17" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="6" y="11" width="5" height="4" rx="0.5" stroke="#4cc9f0" stroke-width="1" fill="#4cc9f0" fill-opacity="0.2"/>
<line x1="13" y1="12" x2="18" y2="12" stroke="#e0e0e0" stroke-width="1"/>
<line x1="13" y1="14" x2="16" y2="14" stroke="#e0e0e0" stroke-width="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 663 B

Before After
Before After

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="16" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="4" x2="12" y2="20" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="4" y1="12" x2="20" y2="12" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<circle cx="12" cy="12" r="2.5" fill="#4cc9f0" fill-opacity="0.4" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 544 B

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<polygon points="12,3 20,8 12,13 4,8" fill="#4cc9f0" fill-opacity="0.45" stroke="#4cc9f0" stroke-width="1.5"/>
<polygon points="4,8 12,13 12,21 4,16" fill="#4cc9f0" fill-opacity="0.12" stroke="#e0e0e0" stroke-width="1.5"/>
<polygon points="20,8 12,13 12,21 20,16" fill="#4cc9f0" fill-opacity="0.25" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 493 B

View file

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="16" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="4" x2="12" y2="20" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="4" y1="12" x2="20" y2="12" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<polyline points="22,9 19,12 22,15" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="13" y1="12" x2="22" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 592 B

View file

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="6" width="16" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="6" x2="12" y2="22" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<line x1="4" y1="14" x2="20" y2="14" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="2 2"/>
<polyline points="9,3 12,6 15,3" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="12" y1="2" x2="12" y2="6" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 587 B

View file

@ -1,8 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Front face -->
<rect x="6" y="10" width="10" height="10" rx="1"/>
<!-- Top face -->
<polygon points="6,10 10,6 20,6 16,10"/>
<!-- Right face -->
<polygon points="16,10 20,6 20,16 16,20"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="6" y="10" width="10" height="10" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<polygon points="6,10 10,6 20,6 16,10" fill="#4cc9f0" fill-opacity="0.45" stroke="#4cc9f0" stroke-width="1.5"/>
<polygon points="16,10 20,6 20,16 16,20" fill="#4cc9f0" fill-opacity="0.18" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 469 B

Before After
Before After

View file

@ -1,7 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- 4 viewport grid -->
<rect x="2" y="2" width="9" height="9" rx="1"/>
<rect x="13" y="2" width="9" height="9" rx="1"/>
<rect x="2" y="13" width="9" height="9" rx="1"/>
<rect x="13" y="13" width="9" height="9" rx="1"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="2" width="9" height="9" rx="1" fill="#4cc9f0" fill-opacity="0.25" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="13" y="2" width="9" height="9" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="2" y="13" width="9" height="9" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="13" y="13" width="9" height="9" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 399 B

After

Width:  |  Height:  |  Size: 533 B

Before After
Before After

View file

@ -1,10 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Two small viewports -->
<rect x="2" y="4" width="9" height="7" rx="1"/>
<rect x="2" y="13" width="9" height="7" rx="1"/>
<!-- Arrow merging into one -->
<line x1="13" y1="12" x2="18" y2="12"/>
<polyline points="16,9 18,12 16,15"/>
<!-- Result: one big viewport -->
<rect x="19" y="4" width="3" height="16" rx="0.5"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="4" width="8" height="7" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<rect x="2" y="13" width="8" height="7" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="12" y1="12" x2="17" y2="12" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="15,9 17,12 15,15" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="18" y="4" width="4" height="16" rx="0.5" fill="#4cc9f0" fill-opacity="0.25" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 602 B

Before After
Before After

View file

@ -1,8 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Two viewports side by side -->
<rect x="2" y="4" width="9" height="16" rx="1"/>
<rect x="13" y="4" width="9" height="16" rx="1"/>
<!-- Label line on each -->
<line x1="4" y1="7" x2="9" y2="7"/>
<line x1="15" y1="7" x2="20" y2="7"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="4" width="9" height="16" rx="1" stroke="#4cc9f0" stroke-width="1.5"/>
<rect x="13" y="4" width="9" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="4" y1="7" x2="9" y2="7" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="15" y1="7" x2="20" y2="7" stroke="#e0e0e0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 475 B

Before After
Before After

View file

@ -1,7 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Single viewport with restore arrow -->
<rect x="3" y="4" width="18" height="16" rx="1"/>
<!-- Restore/refresh arrow inside -->
<path d="M9 14 A4 4 0 1 1 15 14"/>
<polyline points="15,11 15,14 18,14"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="18" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5"/>
<path d="M9 14 A4 4 0 1 1 15 14" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="15,11 15,14 18,14" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 388 B

Before After
Before After

View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke="#e0e0e0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="9" width="10" height="10" rx="0.5"/>
<polygon points="5,9 9,5 19,5 15,9"/>
<polygon points="15,9 19,5 19,15 15,19"/>
<line x1="5" y1="9" x2="9" y2="5" stroke-dasharray="2 2"/>
<line x1="9" y1="5" x2="9" y2="15" stroke-dasharray="2 2"/>
<line x1="9" y1="15" x2="19" y2="15" stroke-dasharray="2 2"/>
</svg>

After

Width:  |  Height:  |  Size: 511 B

View file

@ -1,8 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Image/underlay rectangle -->
<rect x="3" y="4" width="14" height="14" rx="1"/>
<!-- Brightness/contrast sliders -->
<line x1="19" y1="6" x2="19" y2="18"/>
<circle cx="19" cy="10" r="2" fill="currentColor" stroke="none"/>
<line x1="17" y1="10" x2="21" y2="10"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="16" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<rect x="7" y="7" width="10" height="10" rx="1" stroke="#4cc9f0" stroke-width="1.5" fill="#4cc9f0" fill-opacity="0.12"/>
<line x1="4" y1="4" x2="7" y2="7" stroke="#4cc9f0" stroke-width="1" stroke-dasharray="2 1"/>
<line x1="20" y1="4" x2="17" y2="7" stroke="#4cc9f0" stroke-width="1" stroke-dasharray="2 1"/>
<line x1="4" y1="20" x2="7" y2="17" stroke="#4cc9f0" stroke-width="1" stroke-dasharray="2 1"/>
<line x1="20" y1="20" x2="17" y2="17" stroke="#4cc9f0" stroke-width="1" stroke-dasharray="2 1"/>
</svg>

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 772 B

Before After
Before After

View file

@ -1,10 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Document with clip boundary -->
<rect x="4" y="3" width="12" height="16" rx="1"/>
<!-- Clip boundary (dashed polygon) -->
<polygon points="6,6 14,6 14,15 6,15" stroke-dasharray="3 2"/>
<!-- Scissors symbol -->
<line x1="16" y1="16" x2="21" y2="21"/>
<circle cx="18" cy="14" r="2"/>
<circle cx="20" cy="19" r="2"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="4" width="16" height="16" rx="1" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 2"/>
<polygon points="4,4 14,4 14,14 4,14" fill="#4cc9f0" fill-opacity="0.15" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="14" y1="4" x2="14" y2="20" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="3 2"/>
<line x1="4" y1="14" x2="20" y2="14" stroke="#4cc9f0" stroke-width="1.5" stroke-dasharray="3 2"/>
</svg>

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 574 B

Before After
Before After

8
assets/icons/xray.svg Normal file
View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<rect x="5" y="9" width="10" height="10" rx="0.5" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 1.5"/>
<polygon points="5,9 9,5 19,5 15,9" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 1.5"/>
<polygon points="15,9 19,5 19,15 15,19" stroke="#e0e0e0" stroke-width="1.5" stroke-dasharray="3 1.5"/>
<line x1="5" y1="9" x2="9" y2="5" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="9" y1="5" x2="9" y2="15" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="9" y1="15" x2="19" y2="15" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 697 B

View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="16.5" y1="16.5" x2="21" y2="21" stroke="#e0e0e0" stroke-width="1.5"/>
<polyline points="8,11 5,11 5,8" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="14,11 17,11 17,8" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="11,8 11,5 8,5" stroke="#4cc9f0" stroke-width="1.5"/>
<polyline points="11,14 11,17 8,17" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 600 B

6
assets/icons/zoom_in.svg Normal file
View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="16.5" y1="16.5" x2="21" y2="21" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="8" y1="11" x2="14" y2="11" stroke="#4cc9f0" stroke-width="1.5"/>
<line x1="11" y1="8" x2="11" y2="14" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 456 B

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="7" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="16.5" y1="16.5" x2="21" y2="21" stroke="#e0e0e0" stroke-width="1.5"/>
<line x1="8" y1="11" x2="14" y2="11" stroke="#4cc9f0" stroke-width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 379 B

View file

@ -3706,6 +3706,41 @@ impl H7CAD {
}
}
// ── NAVVCUBE — toggle ViewCube visibility ────────────────────────────
"NAVVCUBE" => {
return Task::done(Message::ToggleViewCube);
}
// ── NAVBAR — toggle navigation toolbar visibility ────────────────────
"NAVBAR" => {
return Task::done(Message::ToggleNavbar);
}
// ── PROPERTIES — toggle Properties panel visibility ──────────────────
"PROPERTIES" | "PR" | "PROPS" => {
return Task::done(Message::ToggleProperties);
}
// ── FILETAB — toggle file/document tabs ──────────────────────────────
"FILETAB" => {
return Task::done(Message::ToggleFileTabs);
}
// ── LAYOUTTAB — toggle layout/paper-space tabs ───────────────────────
"LAYOUTTAB" => {
return Task::done(Message::ToggleLayoutTabs);
}
// ── TOOLPALETTES — not yet implemented ───────────────────────────────
"TOOLPALETTES" | "TP" => {
self.command_line.push_info("TOOLPALETTES: Tool Palettes not yet implemented.");
}
// ── SHEETSET — not yet implemented ───────────────────────────────────
"SHEETSET" | "SSM" => {
self.command_line.push_info("SHEETSET: Sheet Set Manager not yet implemented.");
}
// ── XDATA — read/write extended entity data ──────────────────────────
// XDATA LIST — show all xdata records on selected entities
// XDATA SET <app> <str> — append a string xdata value for <app>

View file

@ -53,6 +53,16 @@ pub(super) struct H7CAD {
dyn_input: bool,
/// Show the UCS icon in the bottom-left corner of model space (UCSICON).
show_ucs_icon: bool,
/// Whether the ViewCube 3D gizmo is visible in model space (NAVVCUBE).
show_viewcube: bool,
/// Whether the navigation toolbar is shown in the viewport (NAVBAR).
show_navbar: bool,
/// Whether the Properties panel is shown on the left (PROPERTIES).
show_properties: bool,
/// Whether the document file tabs are shown at the top (FILETAB).
show_file_tabs: bool,
/// Whether the layout/paper-space tabs are shown at the bottom (LAYOUTTAB).
show_layout_tabs: bool,
/// Last point committed by a drawing command — used as ortho/polar base.
last_point: Option<glam::Vec3>,
/// OS window Id for the floating Layer Properties Manager (None when closed).
@ -248,6 +258,16 @@ pub enum Message {
ToggleSnapEnabled,
/// Toggle grid-snap on/off — F9 / SNAP status-bar button.
ToggleGridSnap,
/// Toggle the ViewCube 3D gizmo visibility (NAVVCUBE).
ToggleViewCube,
/// Toggle the navigation toolbar visibility (NAVBAR).
ToggleNavbar,
/// Toggle the Properties panel visibility (PROPERTIES).
ToggleProperties,
/// Toggle the document file tabs at the top (FILETAB).
ToggleFileTabs,
/// Toggle the layout tabs at the bottom (LAYOUTTAB).
ToggleLayoutTabs,
/// Toggle grid display in the viewport — F7 / GRID status-bar button.
ToggleGrid,
/// Toggle orthogonal drawing constraint — F8 / ORTHO status-bar button.
@ -545,6 +565,11 @@ impl H7CAD {
show_grid: false,
dyn_input: true,
show_ucs_icon: true,
show_viewcube: true,
show_navbar: true,
show_properties: true,
show_file_tabs: true,
show_layout_tabs: true,
last_point: None,
layer_window: None,
main_window: None,

View file

@ -1878,6 +1878,11 @@ impl H7CAD {
Task::none()
}
Message::ToggleDynInput => { self.dyn_input ^= true; Task::none() }
Message::ToggleViewCube => { self.show_viewcube ^= true; Task::none() }
Message::ToggleNavbar => { self.show_navbar ^= true; Task::none() }
Message::ToggleProperties => { self.show_properties ^= true; Task::none() }
Message::ToggleFileTabs => { self.show_file_tabs ^= true; Task::none() }
Message::ToggleLayoutTabs => { self.show_layout_tabs ^= true; Task::none() }
Message::ToggleOTrack => {
self.snapper.otrack_enabled ^= true;
if !self.snapper.otrack_enabled {

View file

@ -189,14 +189,9 @@ impl H7CAD {
vec![]
};
overlay::selection_overlay(sel, snap_info, grips, grid, ucs_icon, ost_points, tab.last_cursor_screen, !is_paper)
overlay::selection_overlay(sel, snap_info, grips, grid, ucs_icon, ost_points, tab.last_cursor_screen, !is_paper && self.show_viewcube)
};
let nav = container(overlay::nav_toolbar())
.align_right(Fill)
.align_top(Fill)
.padding(iced::Padding { top: 148.0, right: 8.0, bottom: 0.0, left: 0.0 });
let info = container(overlay::info_bar(
if is_paper { &tab.scene.current_layout } else { "Custom View" },
&tab.visual_style,
@ -216,21 +211,6 @@ impl H7CAD {
.on_scroll(Message::ViewportScroll)
.on_exit(Message::ViewportExit);
let cube_click = mouse_area(container(
iced::widget::Space::new()
.width(iced::Length::Fixed(VIEWCUBE_HIT_SIZE))
.height(iced::Length::Fixed(VIEWCUBE_HIT_SIZE)),
))
.on_move(Message::CursorMoved)
.on_press(Message::ViewportClick);
let cube_click = container(cube_click)
.align_right(Fill)
.align_top(Fill)
.padding(iced::Padding { top: VIEWCUBE_PAD, right: VIEWCUBE_PAD, bottom: 0.0, left: 0.0 })
.width(Fill)
.height(Fill);
let bg_color = if is_paper {
// Desk color — matches the DESK constant in paper_canvas.rs.
Color { r: 0.22, g: 0.24, b: 0.28, a: 1.0 }
@ -270,36 +250,67 @@ impl H7CAD {
container(info).width(Fill).height(Fill),
selection_overlay,
viewport_mouse,
nav,
cube_click,
]
.width(Fill)
.height(Fill);
if self.show_navbar {
let nav = container(overlay::nav_toolbar())
.align_right(Fill)
.align_top(Fill)
.padding(iced::Padding { top: 148.0, right: 8.0, bottom: 0.0, left: 0.0 });
viewport_stack = viewport_stack.push(nav);
}
if self.show_viewcube && !is_paper {
let cube_click: Element<'_, Message> = container(
mouse_area(container(
iced::widget::Space::new()
.width(iced::Length::Fixed(VIEWCUBE_HIT_SIZE))
.height(iced::Length::Fixed(VIEWCUBE_HIT_SIZE)),
))
.on_move(Message::CursorMoved)
.on_press(Message::ViewportClick),
)
.align_right(Fill)
.align_top(Fill)
.padding(iced::Padding { top: VIEWCUBE_PAD, right: VIEWCUBE_PAD, bottom: 0.0, left: 0.0 })
.width(Fill)
.height(Fill)
.into();
viewport_stack = viewport_stack.push(cube_click);
}
if let Some(dyn_ol) = dyn_input_overlay {
viewport_stack = viewport_stack.push(dyn_ol);
}
let properties_el: Element<'_, Message> = if self.show_properties {
tab.properties.view()
} else {
Space::new().into()
};
let center_stack = iced::widget::stack![
row![tab.properties.view(), viewport_stack]
row![properties_el, viewport_stack]
.width(Fill)
.height(Fill),
]
.width(Fill)
.height(Fill);
let tab_bar = doc_tab_bar(&self.tabs, self.active_tab);
let main_ui = container(
column![
self.ribbon.view(
is_paper,
self.tabs[self.active_tab].history.undo_stack.len(),
self.tabs[self.active_tab].history.redo_stack.len(),
),
tab_bar,
center_stack,
self.command_line.view(),
self.status_bar.view(
let main_ui = container({
let mut col = column![self.ribbon.view(
is_paper,
self.tabs[self.active_tab].history.undo_stack.len(),
self.tabs[self.active_tab].history.redo_stack.len(),
)];
if self.show_file_tabs {
col = col.push(doc_tab_bar(&self.tabs, self.active_tab));
}
col.push(center_stack)
.push(self.command_line.view())
.push(self.status_bar.view(
&self.snapper,
self.snap_popup_open,
self.ortho_mode,
@ -314,11 +325,11 @@ impl H7CAD {
tab.scene.first_viewport_scale(),
tab.scene.viewport_count(),
tab.scene.active_viewport.is_some(),
)
]
.width(Fill)
.height(Fill),
)
self.show_layout_tabs,
))
.width(Fill)
.height(Fill)
})
.style(|_: &Theme| container::Style {
background: Some(Background::Color(Color { r: 0.11, g: 0.11, b: 0.11, a: 1.0 })),
..Default::default()

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/hidden.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "HIDDENLINE",
label: "Hidden",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("HIDDENLINE".to_string()),
}
ToolDef { id: "HIDDENLINE", label: "Hidden", icon: ICON, event: ModuleEvent::Command("HIDDENLINE".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/orbit.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "3DORBIT",
label: "3D Orbit",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("3DORBIT".to_string()),
}
ToolDef { id: "3DORBIT", label: "3D Orbit", icon: ICON, event: ModuleEvent::Command("3DORBIT".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/ortho.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "ORTHO",
label: "Ortho",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("ORTHO".into()),
}
ToolDef { id: "ORTHO", label: "Ortho", icon: ICON, event: ModuleEvent::Command("ORTHO".into()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/pan.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "PAN",
label: "Pan",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("PAN".to_string()),
}
ToolDef { id: "PAN", label: "Pan", icon: ICON, event: ModuleEvent::Command("PAN".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/persp.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "PERSP",
label: "Persp",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("PERSP".into()),
}
ToolDef { id: "PERSP", label: "Persp", icon: ICON, event: ModuleEvent::Command("PERSP".into()) }
}

View file

@ -2,11 +2,7 @@
// id "SOLID" is special-cased in ribbon.rs for active-state highlighting.
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/solid.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "SOLID",
label: "Solid",
icon: IconKind::Glyph(""),
event: ModuleEvent::SetWireframe(false),
}
ToolDef { id: "SOLID", label: "Solid", icon: ICON, event: ModuleEvent::SetWireframe(false) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/view_front.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "VIEW_FRONT",
label: "Front",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("VIEW FRONT".to_string()),
}
ToolDef { id: "VIEW_FRONT", label: "Front", icon: ICON, event: ModuleEvent::Command("VIEW FRONT".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/view_iso.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "VIEW_ISO",
label: "Iso",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("VIEW ISO".to_string()),
}
ToolDef { id: "VIEW_ISO", label: "Iso", icon: ICON, event: ModuleEvent::Command("VIEW ISO".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/view_right.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "VIEW_RIGHT",
label: "Right",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("VIEW RIGHT".to_string()),
}
ToolDef { id: "VIEW_RIGHT", label: "Right", icon: ICON, event: ModuleEvent::Command("VIEW RIGHT".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/view_top.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "VIEW_TOP",
label: "Top",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("VIEW TOP".to_string()),
}
ToolDef { id: "VIEW_TOP", label: "Top", icon: ICON, event: ModuleEvent::Command("VIEW TOP".to_string()) }
}

View file

@ -2,11 +2,7 @@
// id "WIREFRAME" is special-cased in ribbon.rs for active-state highlighting.
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/wireframe.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "WIREFRAME",
label: "Wireframe",
icon: IconKind::Glyph(""),
event: ModuleEvent::SetWireframe(true),
}
ToolDef { id: "WIREFRAME", label: "Wireframe", icon: ICON, event: ModuleEvent::SetWireframe(true) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/xray.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "XRAY",
label: "X-Ray",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("XRAY".to_string()),
}
ToolDef { id: "XRAY", label: "X-Ray", icon: ICON, event: ModuleEvent::Command("XRAY".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/zoom_ext.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "ZOOM_EXT",
label: "Zoom Ext",
icon: IconKind::Glyph(""),
event: ModuleEvent::Command("ZOOM EXTENTS".to_string()),
}
ToolDef { id: "ZOOM_EXT", label: "Zoom\nExtents", icon: ICON, event: ModuleEvent::Command("ZOOM EXTENTS".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/zoom_in.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "ZOOM_IN",
label: "Zoom In",
icon: IconKind::Glyph("🔍"),
event: ModuleEvent::Command("ZOOM IN".to_string()),
}
ToolDef { id: "ZOOM_IN", label: "Zoom In", icon: ICON, event: ModuleEvent::Command("ZOOM IN".to_string()) }
}

View file

@ -1,9 +1,5 @@
use crate::modules::{IconKind, ModuleEvent, ToolDef};
pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/zoom_out.svg"));
pub fn tool() -> ToolDef {
ToolDef {
id: "ZOOM_OUT",
label: "Zoom Out",
icon: IconKind::Glyph("🔎"),
event: ModuleEvent::Command("ZOOM OUT".to_string()),
}
ToolDef { id: "ZOOM_OUT", label: "Zoom Out", icon: ICON, event: ModuleEvent::Command("ZOOM OUT".to_string()) }
}

View file

@ -40,6 +40,8 @@ impl StatusBar {
viewport_count: usize,
// True when the user is editing inside a paper-space viewport (MSPACE).
in_mspace: bool,
// Whether the layout tabs (Model/Paper) are visible (LAYOUTTAB).
show_layout_tabs: bool,
) -> Element<'a, Message> {
let menu_btn = button(text("").size(14).color(ICON_COLOR))
.on_press(Message::Command("MENU".into()))
@ -107,14 +109,16 @@ impl StatusBar {
let mut bar = Row::new().align_y(iced::Center).spacing(0);
bar = bar.push(menu_btn);
for name in layouts {
let is_active = name == current_layout;
let renaming = rename_state
.filter(|(orig, _)| *orig == name)
.map(|(_, edit)| edit.as_str());
bar = bar.push(space_tab(name, is_active, renaming));
if show_layout_tabs {
for name in layouts {
let is_active = name == current_layout;
let renaming = rename_state
.filter(|(orig, _)| *orig == name)
.map(|(_, edit)| edit.as_str());
bar = bar.push(space_tab(name, is_active, renaming));
}
bar = bar.push(add_btn);
}
bar = bar.push(add_btn);
bar = bar.push(iced::widget::Space::new().width(Length::Fill));
bar = bar.push(right_status);