1
0
mirror of https://github.com/axzilla/templui.git synced 2025-02-06 10:44:17 +00:00

change: Improve icon implementation and documentation

- Add link to Lucide in documentation
- Implement icon names as constants for autocomplete
- Optimize icon storage for more efficient resource usage

These changes enhance usability through improved documentation
and autocomplete functionality, while also improving memory
efficiency by optimizing icon storage.
This commit is contained in:
“axzilla” 2024-10-11 13:31:56 +02:00
parent 42c32c3d1f
commit b290a2a7ff
3091 changed files with 50598 additions and 6454 deletions

5
.gitignore vendored
View File

@ -1,11 +1,8 @@
# lucide icons
cmd/icongen/icons
# exlude generated files but not for the pkg folder
internals/**/*_templ.go
internals/**/*_templ.txt
# exclude txt files because they are not needed as a go package
# exclude .txt files because they are not needed as a go package but the .go files are
pkg/**/*_templ.txt
.DS_Store

View File

@ -803,6 +803,10 @@ body {
display: grid;
}
.contents {
display: contents;
}
.hidden {
display: none;
}
@ -1602,6 +1606,10 @@ body {
text-decoration-line: underline;
}
.underline-offset-2 {
text-underline-offset: 2px;
}
.underline-offset-4 {
text-underline-offset: 4px;
}
@ -1738,8 +1746,8 @@ body {
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.\[contentStart\:end\] {
content-start: end;
.\[start\:end\] {
start: end;
}
.file\:border-0::file-selector-button {
@ -1843,6 +1851,10 @@ body {
opacity: 1;
}
.hover\:opacity-80:hover {
opacity: 0.8;
}
.focus\:outline-none:focus {
outline: 2px solid transparent;
outline-offset: 2px;

View File

@ -7,69 +7,66 @@ import (
"strings"
)
type Icon struct {
Name string `json:"name"`
Content string `json:"content"`
}
const (
iconDir = "./lucide/icons" // Path to the Lucide SVG files
outputFile = "./pkg/icons/icon_defs.go"
iconContentDir = "./pkg/icons/content" // Directory for individual icon contents
)
func main() {
svgDir := "./cmd/icongen/icons"
icons := []Icon{}
// Read all files from the icon directory
files, err := os.ReadDir(iconDir)
if err != nil {
panic(err)
}
err := filepath.Walk(svgDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if filepath.Ext(path) == ".svg" {
content, err := os.ReadFile(path)
// Initialize slice for icon definitions
var iconDefs []string
iconDefs = append(iconDefs, "package icons\n")
iconDefs = append(iconDefs, "// This file is auto generated\n")
// Create the content directory if it doesn't exist
err = os.MkdirAll(iconContentDir, os.ModePerm)
if err != nil {
panic(err)
}
// Process each SVG file
for _, file := range files {
if filepath.Ext(file.Name()) == ".svg" {
name := strings.TrimSuffix(file.Name(), ".svg")
funcName := toPascalCase(name)
// Add icon definition
iconDefs = append(iconDefs, fmt.Sprintf("var %s = Icon(%q)\n", funcName, name))
// Save icon content to a separate file
content, err := os.ReadFile(filepath.Join(iconDir, file.Name()))
if err != nil {
return err
panic(err)
}
name := strings.TrimSuffix(filepath.Base(path), ".svg")
svgContent := extractSVGContent(string(content))
if svgContent != "" {
icons = append(icons, Icon{Name: name, Content: svgContent})
} else {
fmt.Printf("Warning: Empty content for icon %s\n", name)
err = os.WriteFile(filepath.Join(iconContentDir, name+".svg"), content, 0644)
if err != nil {
panic(err)
}
}
return nil
})
}
// Write all icon definitions to the output file
err = os.WriteFile(outputFile, []byte(strings.Join(iconDefs, "")), 0644)
if err != nil {
fmt.Printf("Error walking the path %v: %v\n", svgDir, err)
return
panic(err)
}
generateGoCode(icons)
}
func extractSVGContent(svgContent string) string {
start := strings.Index(svgContent, "<svg")
if start == -1 {
return ""
}
contentStart := strings.Index(svgContent[start:], ">") + start + 1
end := strings.LastIndex(svgContent, "</svg>")
if end == -1 || contentStart >= end {
return ""
}
return strings.TrimSpace(svgContent[contentStart:end])
fmt.Println("Icon definitions and contents generated successfully!")
}
func generateGoCode(icons []Icon) {
file, err := os.Create("./internals/ui/components/icon_contents.go")
if err != nil {
fmt.Println("Error creating file:", err)
return
// toPascalCase converts a kebab-case string to PascalCase
func toPascalCase(s string) string {
words := strings.Split(s, "-")
for i, word := range words {
words[i] = strings.Title(word)
}
defer file.Close()
fmt.Fprintln(file, "package components")
fmt.Fprintln(file, "\nvar iconContents = map[string]string{")
for _, icon := range icons {
if icon.Content != "" {
fmt.Fprintf(file, "\t\"%s\": `%s`,\n", icon.Name, icon.Content)
}
}
fmt.Fprintln(file, "}")
return strings.Join(words, "")
}

View File

@ -4,7 +4,6 @@ import (
"github.com/axzilla/goilerplate/internals/ui/layouts"
"github.com/axzilla/goilerplate/internals/ui/showcase"
"github.com/axzilla/goilerplate/pkg/components"
"github.com/axzilla/goilerplate/pkg/icons"
)
templ Icon() {
@ -13,7 +12,7 @@ templ Icon() {
<div class="mb-16">
<h1 class="text-3xl font-bold mb-2">Icon</h1>
<p class="mb-4 text-muted-foreground">
A wrapper for Lucide Icons with optional settings for size, color, fill, stroke, and custom classes.
A wrapper for <a href="https://lucide.dev" target="_blank" rel="noopener noreferrer" class="text-primary underline underline-offset-2 hover:opacity-80 transition-opacity">Lucide Icons</a> with optional settings for size, color, fill, stroke, and custom classes. Browse available icons in the Lucide library to see what you can use.
</p>
</div>
@components.Tabs(components.TabsProps{
@ -28,16 +27,6 @@ templ Icon() {
Title: "Code",
Content: CodeSnippetFromEmbedded("icon.templ", "go", showcase.TemplFiles),
},
{
ID: "component",
Title: "Component",
Content: CodeSnippetFromEmbedded("icon.templ", "go", components.TemplFiles),
},
{
ID: "icons",
Title: "Icons",
Content: CodeSnippetFromEmbedded("icons.go", "go", icons.TemplFiles),
},
},
TabsContainerClass: "md:w-1/2",
ContentContainerClass: "w-full",

View File

@ -1,6 +1,9 @@
package showcase
import "github.com/axzilla/goilerplate/pkg/components"
import (
"github.com/axzilla/goilerplate/pkg/components"
"github.com/axzilla/goilerplate/pkg/icons"
)
templ AlertShowcase() {
<div class="flex justify-center items-center border rounded-md py-16 px-4">
@ -9,7 +12,7 @@ templ AlertShowcase() {
<h2 class="font-semibold mb-2">Default Alert</h2>
<div class="space-y-2">
@components.Alert(components.AlertProps{Variant: components.DefaultAlert}) {
@components.Icon(components.IconProps{Name: "rocket", Size: "16"})
@icons.Rocket(icons.IconProps{Size: "16"})
@components.AlertTitle() {
Note
}
@ -23,7 +26,7 @@ templ AlertShowcase() {
<h2 class="font-semibold mb-2">Destructive Alert</h2>
<div class="space-y-2">
@components.Alert(components.AlertProps{Variant: components.DestructiveAlert}) {
@components.Icon(components.IconProps{Name: "triangle-alert", Size: "16"})
@icons.TriangleAlert(icons.IconProps{Size: "16"})
@components.AlertTitle() {
Error
}

View File

@ -1,6 +1,9 @@
package showcase
import "github.com/axzilla/goilerplate/pkg/components"
import (
"github.com/axzilla/goilerplate/pkg/components"
"github.com/axzilla/goilerplate/pkg/icons"
)
templ ButtonShowcase() {
<div class="flex justify-center items-center border rounded-md py-16 px-4">
@ -22,7 +25,7 @@ templ ButtonShowcase() {
@components.Button(components.ButtonProps{Text: "Default"})
@components.Button(components.ButtonProps{Text: "Small", Size: components.Sm})
@components.Button(components.ButtonProps{Text: "Large", Size: components.Lg})
@components.Button(components.ButtonProps{Size: components.ButtonIcon, IconLeft: components.Icon(components.IconProps{Name: "rocket", Size: "16"})})
@components.Button(components.ButtonProps{Size: components.ButtonIcon, IconLeft: icons.Rocket(icons.IconProps{Size: "16"})})
</div>
</div>
<div class="mb-8">
@ -43,11 +46,11 @@ templ ButtonShowcase() {
<div class="flex flex-wrap gap-2">
@components.Button(components.ButtonProps{
Text: "Icon Left",
IconLeft: components.Icon(components.IconProps{Name: "rocket", Size: "16"}),
IconLeft: icons.Rocket(icons.IconProps{Size: "16"}),
})
@components.Button(components.ButtonProps{
Text: "Icon Left",
IconRight: components.Icon(components.IconProps{Name: "rocket", Size: "16"}),
IconRight: icons.Rocket(icons.IconProps{Size: "16"}),
})
</div>
</div>

View File

@ -1,6 +1,9 @@
package showcase
import "github.com/axzilla/goilerplate/pkg/components"
import (
"github.com/axzilla/goilerplate/pkg/components"
"github.com/axzilla/goilerplate/pkg/icons"
)
templ DropdownMenuShowcase() {
<div class="flex justify-center items-center border rounded-md py-16 px-4">
@ -16,23 +19,23 @@ templ DropdownMenuShowcase() {
Trigger: components.Button(components.ButtonProps{
Text: "User Menu",
Variant: "outline",
IconLeft: components.Icon(components.IconProps{Name: "menu", Size: "16"}),
IconLeft: icons.Menu(icons.IconProps{Size: "16"}),
}),
Position: "right",
Items: []components.DropdownMenuItem{
{
Label: "Profile",
IconLeft: components.Icon(components.IconProps{Name: "user", Size: "16"}),
IconLeft: icons.User(icons.IconProps{Size: "16"}),
Href: "/docs/components/dropdown-menu",
},
{
Label: "Settings",
IconLeft: components.Icon(components.IconProps{Name: "settings", Size: "16"}),
IconLeft: icons.Settings(icons.IconProps{Size: "16"}),
Href: "/docs/components/dropdown-menu",
},
{
Label: "Logout",
IconLeft: components.Icon(components.IconProps{Name: "log-out", Size: "16"}),
IconLeft: icons.LogOut(icons.IconProps{Size: "16"}),
Value: "logout",
},
},
@ -41,7 +44,7 @@ templ DropdownMenuShowcase() {
Trigger: components.Button(components.ButtonProps{
Text: "Advanced Menu",
Variant: "outline",
IconLeft: components.Icon(components.IconProps{Name: "menu", Size: "16"}),
IconLeft: icons.Menu(icons.IconProps{Size: "16"}),
}),
Position: "left",
Items: []components.DropdownMenuItem{

View File

@ -1,6 +1,6 @@
package showcase
import "github.com/axzilla/goilerplate/pkg/components"
import "github.com/axzilla/goilerplate/pkg/icons"
templ IconShowcase() {
<div class="flex justify-center items-center border rounded-md py-16 px-4">
@ -8,41 +8,41 @@ templ IconShowcase() {
<div class="mb-8">
<h2 class="font-semibold mb-2">Basic Icons</h2>
<div class="flex flex-wrap gap-2">
@components.Icon(components.IconProps{Name: "user", Size: "24"})
@components.Icon(components.IconProps{Name: "house", Size: "24"})
@components.Icon(components.IconProps{Name: "settings", Size: "24"})
@icons.User(icons.IconProps{Size: "24"})
@icons.House(icons.IconProps{Size: "24"})
@icons.Settings(icons.IconProps{Size: "24"})
</div>
</div>
<div class="mb-8">
<h2 class="font-semibold mb-2">Colored Icons</h2>
<div class="flex flex-wrap gap-2">
@components.Icon(components.IconProps{Name: "heart", Size: "24", Color: "red"})
@components.Icon(components.IconProps{Name: "star", Size: "24", Color: "gold"})
@components.Icon(components.IconProps{Name: "check", Size: "24", Color: "green"})
@icons.Heart(icons.IconProps{Size: "24", Color: "red"})
@icons.Star(icons.IconProps{Size: "24", Color: "gold"})
@icons.Check(icons.IconProps{Size: "24", Color: "green"})
</div>
</div>
<div class="mb-8">
<h2 class="font-semibold mb-2">Filled Icons</h2>
<div class="flex flex-wrap gap-2">
@components.Icon(components.IconProps{Name: "circle", Size: "24", Fill: "blue", Stroke: "blue"})
@components.Icon(components.IconProps{Name: "square", Size: "24", Fill: "purple", Stroke: "purple"})
@components.Icon(components.IconProps{Name: "triangle", Size: "24", Fill: "orange", Stroke: "orange"})
@icons.Circle(icons.IconProps{Size: "24", Fill: "blue", Stroke: "blue"})
@icons.Square(icons.IconProps{Size: "24", Fill: "purple", Stroke: "purple"})
@icons.Triangle(icons.IconProps{Size: "24", Fill: "orange", Stroke: "orange"})
</div>
</div>
<div class="mb-8">
<h2 class="font-semibold mb-2">Different Sizes</h2>
<div class="flex flex-wrap gap-2">
@components.Icon(components.IconProps{Name: "house", Size: "16"})
@components.Icon(components.IconProps{Name: "house", Size: "24"})
@components.Icon(components.IconProps{Name: "house", Size: "32"})
@components.Icon(components.IconProps{Name: "house", Size: "48"})
@icons.House(icons.IconProps{Size: "16"})
@icons.House(icons.IconProps{Size: "24"})
@icons.House(icons.IconProps{Size: "32"})
@icons.House(icons.IconProps{Size: "48"})
</div>
</div>
<div class="mb-8">
<h2 class="font-semibold mb-2">Custom Classes</h2>
<div class="flex flex-wrap gap-2">
@components.Icon(components.IconProps{Name: "arrow-right", Size: "24", Class: "text-blue-500 hover:text-blue-700"})
@components.Icon(components.IconProps{Name: "arrow-left", Size: "24", Class: "text-green-500 hover:text-green-700"})
@icons.ArrowRight(icons.IconProps{Size: "24", Class: "text-blue-500 hover:text-blue-700"})
@icons.ArrowLeft(icons.IconProps{Size: "24", Class: "text-green-500 hover:text-green-700"})
</div>
</div>
</div>

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3.5 13h6" />
<path d="m2 16 4.5-9 4.5 9" />
<path d="M18 7v9" />
<path d="m14 12 4 4 4-4" />
</svg>

After

Width:  |  Height:  |  Size: 318 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3.5 13h6" />
<path d="m2 16 4.5-9 4.5 9" />
<path d="M18 16V7" />
<path d="m14 11 4-4 4 4" />
</svg>

After

Width:  |  Height:  |  Size: 319 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 14h-5" />
<path d="M16 16v-3.5a2.5 2.5 0 0 1 5 0V16" />
<path d="M4.5 13h6" />
<path d="m3 16 4.5-9 4.5 9" />
</svg>

After

Width:  |  Height:  |  Size: 338 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="16" cy="4" r="1" />
<path d="m18 19 1-7-6 1" />
<path d="m5 8 3-3 5.5 3-2.36 3.5" />
<path d="M4.24 14.5a5 5 0 0 0 6.88 6" />
<path d="M13.76 17.5a5 5 0 0 0-6.88-6" />
</svg>

After

Width:  |  Height:  |  Size: 398 B

13
lucide/icons/activity.svg Normal file
View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2" />
</svg>

After

Width:  |  Height:  |  Size: 346 B

16
lucide/icons/air-vent.svg Normal file
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" />
<path d="M6 8h12" />
<path d="M18.3 17.7a2.5 2.5 0 0 1-3.16 3.83 2.53 2.53 0 0 1-1.14-2V12" />
<path d="M6.6 15.6A2 2 0 1 0 10 17v-5" />
</svg>

After

Width:  |  Height:  |  Size: 440 B

14
lucide/icons/airplay.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1" />
<path d="m12 15 5 6H7Z" />
</svg>

After

Width:  |  Height:  |  Size: 327 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="13" r="8" />
<path d="M5 3 2 6" />
<path d="m22 6-3-3" />
<path d="M6.38 18.7 4 21" />
<path d="M17.64 18.67 20 21" />
<path d="m9 13 2 2 4-4" />
</svg>

After

Width:  |  Height:  |  Size: 386 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="13" r="8" />
<path d="M5 3 2 6" />
<path d="m22 6-3-3" />
<path d="M6.38 18.7 4 21" />
<path d="M17.64 18.67 20 21" />
<path d="M9 13h6" />
</svg>

After

Width:  |  Height:  |  Size: 380 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M6.87 6.87a8 8 0 1 0 11.26 11.26" />
<path d="M19.9 14.25a8 8 0 0 0-9.15-9.15" />
<path d="m22 6-3-3" />
<path d="M6.26 18.67 4 21" />
<path d="m2 2 20 20" />
<path d="M4 4 2 6" />
</svg>

After

Width:  |  Height:  |  Size: 410 B

View File

@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="13" r="8" />
<path d="M5 3 2 6" />
<path d="m22 6-3-3" />
<path d="M6.38 18.7 4 21" />
<path d="M17.64 18.67 20 21" />
<path d="M12 10v6" />
<path d="M9 13h6" />
</svg>

After

Width:  |  Height:  |  Size: 404 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="13" r="8" />
<path d="M12 9v4l2 2" />
<path d="M5 3 2 6" />
<path d="m22 6-3-3" />
<path d="M6.38 18.7 4 21" />
<path d="M17.64 18.67 20 21" />
</svg>

After

Width:  |  Height:  |  Size: 384 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M11 21c0-2.5 2-2.5 2-5" />
<path d="M16 21c0-2.5 2-2.5 2-5" />
<path d="m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8" />
<path d="M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z" />
<path d="M6 21c0-2.5 2-2.5 2-5" />
</svg>

After

Width:  |  Height:  |  Size: 481 B

14
lucide/icons/album.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<polyline points="11 3 11 11 14 8 17 11 17 3" />
</svg>

After

Width:  |  Height:  |  Size: 319 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M2 12h20" />
<path d="M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4" />
<path d="M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4" />
<path d="M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1" />
<path d="M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1" />
</svg>

After

Width:  |  Height:  |  Size: 457 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 2v20" />
<path d="M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4" />
<path d="M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4" />
<path d="M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1" />
<path d="M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1" />
</svg>

After

Width:  |  Height:  |  Size: 457 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="21" x2="3" y1="6" y2="6" />
<line x1="17" x2="7" y1="12" y2="12" />
<line x1="19" x2="5" y1="18" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="16" x="4" y="2" rx="2" />
<rect width="6" height="9" x="14" y="9" rx="2" />
<path d="M22 22H2" />
</svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="16" height="6" x="2" y="4" rx="2" />
<rect width="9" height="6" x="9" y="14" rx="2" />
<path d="M22 22V2" />
</svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="4" y="5" rx="2" />
<rect width="6" height="10" x="14" y="7" rx="2" />
<path d="M17 22v-5" />
<path d="M17 7V2" />
<path d="M7 22v-3" />
<path d="M7 5V2" />
</svg>

After

Width:  |  Height:  |  Size: 407 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="4" y="5" rx="2" />
<rect width="6" height="10" x="14" y="7" rx="2" />
<path d="M10 2v20" />
<path d="M20 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="4" y="5" rx="2" />
<rect width="6" height="10" x="14" y="7" rx="2" />
<path d="M4 2v20" />
<path d="M14 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 360 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="2" y="5" rx="2" />
<rect width="6" height="10" x="16" y="7" rx="2" />
<path d="M12 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="2" y="5" rx="2" />
<rect width="6" height="10" x="12" y="7" rx="2" />
<path d="M22 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="6" y="5" rx="2" />
<rect width="6" height="10" x="16" y="7" rx="2" />
<path d="M2 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="10" x="9" y="7" rx="2" />
<path d="M4 22V2" />
<path d="M20 22V2" />
</svg>

After

Width:  |  Height:  |  Size: 307 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="14" x="3" y="5" rx="2" />
<rect width="6" height="10" x="15" y="7" rx="2" />
<path d="M3 2v20" />
<path d="M21 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 360 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="3" x2="21" y1="6" y2="6" />
<line x1="3" x2="21" y1="12" y2="12" />
<line x1="3" x2="21" y1="18" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="21" x2="3" y1="6" y2="6" />
<line x1="15" x2="3" y1="12" y2="12" />
<line x1="17" x2="3" y1="18" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="21" x2="3" y1="6" y2="6" />
<line x1="21" x2="9" y1="12" y2="12" />
<line x1="21" x2="7" y1="18" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="6" height="16" x="4" y="6" rx="2" />
<rect width="6" height="9" x="14" y="6" rx="2" />
<path d="M22 2H2" />
</svg>

After

Width:  |  Height:  |  Size: 335 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="9" height="6" x="6" y="14" rx="2" />
<rect width="16" height="6" x="6" y="4" rx="2" />
<path d="M2 2v20" />
</svg>

After

Width:  |  Height:  |  Size: 335 B

View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 17h-3" />
<path d="M22 7h-5" />
<path d="M5 17H2" />
<path d="M7 7H2" />
<rect x="5" y="14" width="14" height="6" rx="2" />
<rect x="7" y="4" width="10" height="6" rx="2" />
</svg>

After

Width:  |  Height:  |  Size: 407 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="14" rx="2" />
<rect width="10" height="6" x="7" y="4" rx="2" />
<path d="M2 20h20" />
<path d="M2 10h20" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="14" rx="2" />
<rect width="10" height="6" x="7" y="4" rx="2" />
<path d="M2 14h20" />
<path d="M2 4h20" />
</svg>

After

Width:  |  Height:  |  Size: 360 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="16" rx="2" />
<rect width="10" height="6" x="7" y="2" rx="2" />
<path d="M2 12h20" />
</svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="12" rx="2" />
<rect width="10" height="6" x="7" y="2" rx="2" />
<path d="M2 22h20" />
</svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="16" rx="2" />
<rect width="10" height="6" x="7" y="6" rx="2" />
<path d="M2 2h20" />
</svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="10" height="6" x="7" y="9" rx="2" />
<path d="M22 20H2" />
<path d="M22 4H2" />
</svg>

After

Width:  |  Height:  |  Size: 307 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="6" x="5" y="15" rx="2" />
<rect width="10" height="6" x="7" y="3" rx="2" />
<path d="M2 21h20" />
<path d="M2 3h20" />
</svg>

After

Width:  |  Height:  |  Size: 360 B

View File

@ -0,0 +1,20 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 10H6" />
<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" />
<path
d="M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14" />
<path d="M8 8v4" />
<path d="M9 18h6" />
<circle cx="17" cy="18" r="2" />
<circle cx="7" cy="18" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 553 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13" />
<path d="M16 12h3" />
</svg>

After

Width:  |  Height:  |  Size: 339 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5" />
<path d="M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5" />
</svg>

After

Width:  |  Height:  |  Size: 402 B

18
lucide/icons/amphora.svg Normal file
View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8" />
<path d="M10 5H8a2 2 0 0 0 0 4h.68" />
<path d="M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8" />
<path d="M14 5h2a2 2 0 0 1 0 4h-.68" />
<path d="M18 22H6" />
<path d="M9 2h6" />
</svg>

After

Width:  |  Height:  |  Size: 497 B

15
lucide/icons/anchor.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 22V8" />
<path d="M5 12H2a10 10 0 0 0 20 0h-3" />
<circle cx="12" cy="5" r="3" />
</svg>

After

Width:  |  Height:  |  Size: 309 B

18
lucide/icons/angry.svg Normal file
View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M16 16s-1.5-2-4-2-4 2-4 2" />
<path d="M7.5 8 10 9" />
<path d="m14 9 2.5-1" />
<path d="M9 10h.01" />
<path d="M15 10h.01" />
</svg>

After

Width:  |  Height:  |  Size: 390 B

16
lucide/icons/annoyed.svg Normal file
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M8 15h8" />
<path d="M8 9h2" />
<path d="M14 9h2" />
</svg>

After

Width:  |  Height:  |  Size: 312 B

18
lucide/icons/antenna.svg Normal file
View File

@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M2 12 7 2" />
<path d="m7 12 5-10" />
<path d="m12 12 5-10" />
<path d="m17 12 5-10" />
<path d="M4.5 7h15" />
<path d="M12 16v6" />
</svg>

After

Width:  |  Height:  |  Size: 362 B

17
lucide/icons/anvil.svg Normal file
View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4" />
<path d="M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z" />
<path d="M9 12v5" />
<path d="M15 12v5" />
<path d="M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1" />
</svg>

After

Width:  |  Height:  |  Size: 471 B

19
lucide/icons/aperture.svg Normal file
View File

@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="m14.31 8 5.74 9.94" />
<path d="M9.69 8h11.48" />
<path d="m7.38 12 5.74-9.94" />
<path d="M9.69 16 3.95 6.06" />
<path d="M14.31 16H2.83" />
<path d="m16.62 12-5.74 9.94" />
</svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="20" height="16" x="2" y="4" rx="2" />
<path d="M6 8h.01" />
<path d="M10 8h.01" />
<path d="M14 8h.01" />
</svg>

After

Width:  |  Height:  |  Size: 335 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="2" y="4" width="20" height="16" rx="2" />
<path d="M10 4v4" />
<path d="M2 8h20" />
<path d="M6 4v4" />
</svg>

After

Width:  |  Height:  |  Size: 329 B

14
lucide/icons/apple.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z" />
<path d="M10 2c1 .5 2 2 2 5" />
</svg>

After

Width:  |  Height:  |  Size: 423 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="20" height="5" x="2" y="3" rx="1" />
<path d="M4 8v11a2 2 0 0 0 2 2h2" />
<path d="M20 8v11a2 2 0 0 1-2 2h-2" />
<path d="m9 15 3-3 3 3" />
<path d="M12 12v9" />
</svg>

After

Width:  |  Height:  |  Size: 393 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="20" height="5" x="2" y="3" rx="1" />
<path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" />
<path d="m9.5 17 5-5" />
<path d="m9.5 12 5 5" />
</svg>

After

Width:  |  Height:  |  Size: 370 B

15
lucide/icons/archive.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="20" height="5" x="2" y="3" rx="1" />
<path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" />
<path d="M10 12h4" />
</svg>

After

Width:  |  Height:  |  Size: 340 B

16
lucide/icons/armchair.svg Normal file
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3" />
<path d="M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z" />
<path d="M5 18v2" />
<path d="M19 18v2" />
</svg>

After

Width:  |  Height:  |  Size: 437 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 5H9" />
<path d="M15 9v3h4l-7 7-7-7h4V9z" />
</svg>

After

Width:  |  Height:  |  Size: 270 B

View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 6v6h4l-7 7-7-7h4V6h6z" />
</svg>

After

Width:  |  Height:  |  Size: 249 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19 15V9" />
<path d="M15 15h-3v4l-7-7 7-7v4h3v6z" />
</svg>

After

Width:  |  Height:  |  Size: 275 B

View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18 15h-6v4l-7-7 7-7v4h6v6z" />
</svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 9v6" />
<path d="M9 9h3V5l7 7-7 7v-4H9V9z" />
</svg>

After

Width:  |  Height:  |  Size: 270 B

View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M6 9h6V5l7 7-7 7v-4H6V9z" />
</svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M9 19h6" />
<path d="M9 15v-3H5l7-7 7 7h-4v3H9z" />
</svg>

After

Width:  |  Height:  |  Size: 273 B

View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M9 18v-6H5l7-7 7 7h-4v6H9z" />
</svg>

After

Width:  |  Height:  |  Size: 250 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<rect x="15" y="4" width="4" height="6" ry="2" />
<path d="M17 20v-6h-2" />
<path d="M15 20h4" />
</svg>

After

Width:  |  Height:  |  Size: 364 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<path d="M17 10V4h-2" />
<path d="M15 10h4" />
<rect x="15" y="14" width="4" height="6" ry="2" />
</svg>

After

Width:  |  Height:  |  Size: 364 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<path d="M20 8h-5" />
<path d="M15 10V6.5a2.5 2.5 0 0 1 5 0V10" />
<path d="M15 14h5l-5 6h5" />
</svg>

After

Width:  |  Height:  |  Size: 362 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19 3H5" />
<path d="M12 21V7" />
<path d="m6 15 6 6 6-6" />
</svg>

After

Width:  |  Height:  |  Size: 284 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M17 7 7 17" />
<path d="M17 17H7V7" />
</svg>

After

Width:  |  Height:  |  Size: 260 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<path d="M11 4h4" />
<path d="M11 8h7" />
<path d="M11 12h10" />
</svg>

After

Width:  |  Height:  |  Size: 331 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m7 7 10 10" />
<path d="M17 7v10H7" />
</svg>

After

Width:  |  Height:  |  Size: 260 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 2v14" />
<path d="m19 9-7 7-7-7" />
<circle cx="12" cy="21" r="1" />
</svg>

After

Width:  |  Height:  |  Size: 296 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 17V3" />
<path d="m6 11 6 6 6-6" />
<path d="M19 21H5" />
</svg>

After

Width:  |  Height:  |  Size: 285 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<path d="m21 8-4-4-4 4" />
<path d="M17 4v16" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 20V4" />
<path d="M11 4h10" />
<path d="M11 8h7" />
<path d="M11 12h4" />
</svg>

After

Width:  |  Height:  |  Size: 331 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 16 4 4 4-4" />
<path d="M7 4v16" />
<path d="M15 4h5l-5 6h5" />
<path d="M15 20v-3.5a2.5 2.5 0 0 1 5 0V20" />
<path d="M20 18h-5" />
</svg>

After

Width:  |  Height:  |  Size: 363 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 5v14" />
<path d="m19 12-7 7-7-7" />
</svg>

After

Width:  |  Height:  |  Size: 262 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 6-6 6 6 6" />
<path d="M3 12h14" />
<path d="M21 19V5" />
</svg>

After

Width:  |  Height:  |  Size: 284 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M8 3 4 7l4 4" />
<path d="M4 7h16" />
<path d="m16 21 4-4-4-4" />
<path d="M20 17H4" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 19V5" />
<path d="m13 6-6 6 6 6" />
<path d="M7 12h14" />
</svg>

After

Width:  |  Height:  |  Size: 284 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m12 19-7-7 7-7" />
<path d="M19 12H5" />
</svg>

After

Width:  |  Height:  |  Size: 262 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 5v14" />
<path d="M21 12H7" />
<path d="m15 18 6-6-6-6" />
</svg>

After

Width:  |  Height:  |  Size: 285 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m16 3 4 4-4 4" />
<path d="M20 7H4" />
<path d="m8 21-4-4 4-4" />
<path d="M4 17h16" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M17 12H3" />
<path d="m11 18 6-6-6-6" />
<path d="M21 5v14" />
</svg>

After

Width:  |  Height:  |  Size: 286 B

View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="m12 5 7 7-7 7" />
</svg>

After

Width:  |  Height:  |  Size: 261 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 8 4-4 4 4" />
<path d="M7 4v16" />
<rect x="15" y="4" width="4" height="6" ry="2" />
<path d="M17 20v-6h-2" />
<path d="M15 20h4" />
</svg>

After

Width:  |  Height:  |  Size: 363 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 8 4-4 4 4" />
<path d="M7 4v16" />
<path d="M17 10V4h-2" />
<path d="M15 10h4" />
<rect x="15" y="14" width="4" height="6" ry="2" />
</svg>

After

Width:  |  Height:  |  Size: 363 B

View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m3 8 4-4 4 4" />
<path d="M7 4v16" />
<path d="M20 8h-5" />
<path d="M15 10V6.5a2.5 2.5 0 0 1 5 0V10" />
<path d="M15 14h5l-5 6h5" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 16-4 4-4-4" />
<path d="M17 20V4" />
<path d="m3 8 4-4 4 4" />
<path d="M7 4v16" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m5 9 7-7 7 7" />
<path d="M12 16V2" />
<circle cx="12" cy="21" r="1" />
</svg>

After

Width:  |  Height:  |  Size: 295 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m18 9-6-6-6 6" />
<path d="M12 3v14" />
<path d="M5 21h14" />
</svg>

After

Width:  |  Height:  |  Size: 285 B

Some files were not shown because too many files have changed in this diff Show More