@jis3r/icons 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-circle-code" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-circle-code-group">
35
+ <path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" class="message-circle-code-path1" />
36
+ <path d="M10 9.5 8 12l2 2.5" class="message-circle-code-path2" />
37
+ <path d="m14 9.5 2 2.5-2 2.5" class="message-circle-code-path3" />
38
+ </g>
39
+ </svg>
40
+ </div>
41
+
42
+ <style>
43
+ div {
44
+ display: inline-block;
45
+ }
46
+ .message-circle-code-group {
47
+ transform-origin: bottom left;
48
+ }
49
+
50
+ .animate .message-circle-code-group {
51
+ animation: messageCircleCodeGroupAnimation 0.8s ease-in-out;
52
+ }
53
+
54
+ .animate .message-circle-code-path2 {
55
+ animation: messageCircleCodePath2Animation 0.6s ease-in-out;
56
+ }
57
+
58
+ .animate .message-circle-code-path3 {
59
+ animation: messageCircleCodePath3Animation 0.6s ease-in-out;
60
+ }
61
+
62
+ @keyframes messageCircleCodeGroupAnimation {
63
+ 0% {
64
+ transform: rotate(0deg);
65
+ }
66
+ 40% {
67
+ transform: rotate(8deg);
68
+ }
69
+ 60% {
70
+ transform: rotate(-8deg);
71
+ }
72
+ 80% {
73
+ transform: rotate(2deg);
74
+ }
75
+ 100% {
76
+ transform: rotate(0deg);
77
+ }
78
+ }
79
+
80
+ @keyframes messageCircleCodePath2Animation {
81
+ 0% {
82
+ transform: translateX(0);
83
+ }
84
+ 33.33% {
85
+ transform: translateX(-1.5px);
86
+ }
87
+ 66.67% {
88
+ transform: translateX(0.75px);
89
+ }
90
+ 100% {
91
+ transform: translateX(0);
92
+ }
93
+ }
94
+
95
+ @keyframes messageCircleCodePath3Animation {
96
+ 0% {
97
+ transform: translateX(0);
98
+ }
99
+ 33.33% {
100
+ transform: translateX(1.5px);
101
+ }
102
+ 66.67% {
103
+ transform: translateX(-0.75px);
104
+ }
105
+ 100% {
106
+ transform: translateX(0);
107
+ }
108
+ }
109
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageCircleCode: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageCircleCode = ReturnType<typeof MessageCircleCode>;
4
+ export default MessageCircleCode;
@@ -0,0 +1,81 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div
22
+ class={className}
23
+ aria-label="message-circle-dashed"
24
+ role="img"
25
+ onmouseenter={handleMouseEnter}
26
+ >
27
+ <svg
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ width={size}
30
+ height={size}
31
+ viewBox="0 0 24 24"
32
+ fill="none"
33
+ stroke={color}
34
+ stroke-width={strokeWidth}
35
+ stroke-linecap="round"
36
+ stroke-linejoin="round"
37
+ class:animate
38
+ >
39
+ <g class="message-circle-dashed-group">
40
+ <path d="M13.5 3.1c-.5 0-1-.1-1.5-.1s-1 .1-1.5.1" class="message-circle-dashed-path1" />
41
+ <path d="M19.3 6.8a10.45 10.45 0 0 0-2.1-2.1" class="message-circle-dashed-path2" />
42
+ <path d="M20.9 13.5c.1-.5.1-1 .1-1.5s-.1-1-.1-1.5" class="message-circle-dashed-path3" />
43
+ <path d="M17.2 19.3a10.45 10.45 0 0 0 2.1-2.1" class="message-circle-dashed-path4" />
44
+ <path d="M10.5 20.9c.5.1 1 .1 1.5.1s1-.1 1.5-.1" class="message-circle-dashed-path5" />
45
+ <path d="M3.5 17.5 2 22l4.5-1.5" class="message-circle-dashed-path6" />
46
+ <path d="M3.1 10.5c0 .5-.1 1-.1 1.5s.1 1 .1 1.5" class="message-circle-dashed-path7" />
47
+ <path d="M6.8 4.7a10.45 10.45 0 0 0-2.1 2.1" class="message-circle-dashed-path8" />
48
+ </g>
49
+ </svg>
50
+ </div>
51
+
52
+ <style>
53
+ div {
54
+ display: inline-block;
55
+ }
56
+ .message-circle-dashed-group {
57
+ transform-origin: bottom left;
58
+ }
59
+
60
+ .animate .message-circle-dashed-group {
61
+ animation: messageCircleDashedGroupAnimation 0.8s ease-in-out;
62
+ }
63
+
64
+ @keyframes messageCircleDashedGroupAnimation {
65
+ 0% {
66
+ transform: rotate(0deg);
67
+ }
68
+ 40% {
69
+ transform: rotate(8deg);
70
+ }
71
+ 60% {
72
+ transform: rotate(-8deg);
73
+ }
74
+ 80% {
75
+ transform: rotate(2deg);
76
+ }
77
+ 100% {
78
+ transform: rotate(0deg);
79
+ }
80
+ }
81
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageCircleDashed: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageCircleDashed = ReturnType<typeof MessageCircleDashed>;
4
+ export default MessageCircleDashed;
@@ -0,0 +1,96 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-circle-heart" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-circle-heart-group">
35
+ <path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" class="message-circle-heart-path1" />
36
+ <path
37
+ d="M15.8 9.2a2.5 2.5 0 0 0-3.5 0l-.3.4-.35-.3a2.42 2.42 0 1 0-3.2 3.6l3.6 3.5 3.6-3.5c1.2-1.2 1.1-2.7.2-3.7"
38
+ class="message-circle-heart-path2"
39
+ />
40
+ </g>
41
+ </svg>
42
+ </div>
43
+
44
+ <style>
45
+ div {
46
+ display: inline-block;
47
+ }
48
+ .message-circle-heart-group {
49
+ transform-origin: bottom left;
50
+ }
51
+
52
+ .message-circle-heart-path2 {
53
+ transform-origin: center;
54
+ }
55
+
56
+ .animate .message-circle-heart-group {
57
+ animation: messageCircleHeartGroupAnimation 0.8s ease-in-out;
58
+ }
59
+
60
+ .animate .message-circle-heart-path2 {
61
+ animation: messageCircleHeartPath2Animation 0.8s ease-in-out;
62
+ }
63
+
64
+ @keyframes messageCircleHeartGroupAnimation {
65
+ 0% {
66
+ transform: rotate(0deg);
67
+ }
68
+ 40% {
69
+ transform: rotate(8deg);
70
+ }
71
+ 60% {
72
+ transform: rotate(-8deg);
73
+ }
74
+ 80% {
75
+ transform: rotate(2deg);
76
+ }
77
+ 100% {
78
+ transform: rotate(0deg);
79
+ }
80
+ }
81
+
82
+ @keyframes messageCircleHeartPath2Animation {
83
+ 0% {
84
+ transform: scale(1);
85
+ }
86
+ 25% {
87
+ transform: scale(0.7);
88
+ }
89
+ 50% {
90
+ transform: scale(1.1);
91
+ }
92
+ 100% {
93
+ transform: scale(1);
94
+ }
95
+ }
96
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageCircleHeart: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageCircleHeart = ReturnType<typeof MessageCircleHeart>;
4
+ export default MessageCircleHeart;
@@ -0,0 +1,112 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-square-code" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-square-code-group">
35
+ <path
36
+ d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"
37
+ class="message-square-code-path1"
38
+ />
39
+ <path d="M10 7.5 8 10l2 2.5" class="message-square-code-path2" />
40
+ <path d="m14 7.5 2 2.5-2 2.5" class="message-square-code-path3" />
41
+ </g>
42
+ </svg>
43
+ </div>
44
+
45
+ <style>
46
+ div {
47
+ display: inline-block;
48
+ }
49
+ .message-square-code-group {
50
+ transform-origin: bottom left;
51
+ }
52
+
53
+ .animate .message-square-code-group {
54
+ animation: messageSquareCodeGroupAnimation 0.8s ease-in-out;
55
+ }
56
+
57
+ .animate .message-square-code-path2 {
58
+ animation: messageSquareCodePath2Animation 0.6s ease-in-out;
59
+ }
60
+
61
+ .animate .message-square-code-path3 {
62
+ animation: messageSquareCodePath3Animation 0.6s ease-in-out;
63
+ }
64
+
65
+ @keyframes messageSquareCodeGroupAnimation {
66
+ 0% {
67
+ transform: rotate(0deg);
68
+ }
69
+ 40% {
70
+ transform: rotate(8deg);
71
+ }
72
+ 60% {
73
+ transform: rotate(-8deg);
74
+ }
75
+ 80% {
76
+ transform: rotate(2deg);
77
+ }
78
+ 100% {
79
+ transform: rotate(0deg);
80
+ }
81
+ }
82
+
83
+ @keyframes messageSquareCodePath2Animation {
84
+ 0% {
85
+ transform: translateX(0);
86
+ }
87
+ 33.33% {
88
+ transform: translateX(-1.5px);
89
+ }
90
+ 66.67% {
91
+ transform: translateX(0.75px);
92
+ }
93
+ 100% {
94
+ transform: translateX(0);
95
+ }
96
+ }
97
+
98
+ @keyframes messageSquareCodePath3Animation {
99
+ 0% {
100
+ transform: translateX(0);
101
+ }
102
+ 33.33% {
103
+ transform: translateX(1.5px);
104
+ }
105
+ 66.67% {
106
+ transform: translateX(-0.75px);
107
+ }
108
+ 100% {
109
+ transform: translateX(0);
110
+ }
111
+ }
112
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageSquareCode: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageSquareCode = ReturnType<typeof MessageSquareCode>;
4
+ export default MessageSquareCode;
@@ -0,0 +1,82 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div
22
+ class={className}
23
+ aria-label="message-square-dashed"
24
+ role="img"
25
+ onmouseenter={handleMouseEnter}
26
+ >
27
+ <svg
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ width={size}
30
+ height={size}
31
+ viewBox="0 0 24 24"
32
+ fill="none"
33
+ stroke={color}
34
+ stroke-width={strokeWidth}
35
+ stroke-linecap="round"
36
+ stroke-linejoin="round"
37
+ class:animate
38
+ >
39
+ <g class="message-square-dashed-group">
40
+ <path d="M5 3a2 2 0 0 0-2 2" class="message-square-dashed-path1" />
41
+ <path d="M9 3h1" class="message-square-dashed-path2" />
42
+ <path d="M14 3h1" class="message-square-dashed-path3" />
43
+ <path d="M19 3a2 2 0 0 1 2 2" class="message-square-dashed-path4" />
44
+ <path d="M21 9v1" class="message-square-dashed-path5" />
45
+ <path d="M21 14v1a2 2 0 0 1-2 2" class="message-square-dashed-path6" />
46
+ <path d="M14 17h1" class="message-square-dashed-path7" />
47
+ <path d="M10 17H7l-4 4v-7" class="message-square-dashed-path8" />
48
+ <path d="M3 9v1" class="message-square-dashed-path9" />
49
+ </g>
50
+ </svg>
51
+ </div>
52
+
53
+ <style>
54
+ div {
55
+ display: inline-block;
56
+ }
57
+ .message-square-dashed-group {
58
+ transform-origin: bottom left;
59
+ }
60
+
61
+ .animate .message-square-dashed-group {
62
+ animation: messageSquareDashedGroupAnimation 0.8s ease-in-out;
63
+ }
64
+
65
+ @keyframes messageSquareDashedGroupAnimation {
66
+ 0% {
67
+ transform: rotate(0deg);
68
+ }
69
+ 40% {
70
+ transform: rotate(8deg);
71
+ }
72
+ 60% {
73
+ transform: rotate(-8deg);
74
+ }
75
+ 80% {
76
+ transform: rotate(2deg);
77
+ }
78
+ 100% {
79
+ transform: rotate(0deg);
80
+ }
81
+ }
82
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageSquareDashed: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageSquareDashed = ReturnType<typeof MessageSquareDashed>;
4
+ export default MessageSquareDashed;
@@ -0,0 +1,89 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-square-dot" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-square-dot-group">
35
+ <path
36
+ d="M11.7 3H5a2 2 0 0 0-2 2v16l4-4h12a2 2 0 0 0 2-2v-2.7"
37
+ class="message-square-dot-path"
38
+ />
39
+ <circle cx="18" cy="6" r="3" class="message-square-dot-circle" />
40
+ </g>
41
+ </svg>
42
+ </div>
43
+
44
+ <style>
45
+ div {
46
+ display: inline-block;
47
+ }
48
+ .message-square-dot-group {
49
+ transform-origin: bottom left;
50
+ }
51
+
52
+ .animate .message-square-dot-group {
53
+ animation: messageSquareDotGroupAnimation 0.8s ease-in-out;
54
+ }
55
+
56
+ .animate .message-square-dot-circle {
57
+ animation: messageSquareDotCircleAnimation 0.6s ease-in-out;
58
+ }
59
+
60
+ @keyframes messageSquareDotGroupAnimation {
61
+ 0% {
62
+ transform: rotate(0deg);
63
+ }
64
+ 40% {
65
+ transform: rotate(8deg);
66
+ }
67
+ 60% {
68
+ transform: rotate(-8deg);
69
+ }
70
+ 80% {
71
+ transform: rotate(2deg);
72
+ }
73
+ 100% {
74
+ transform: rotate(0deg);
75
+ }
76
+ }
77
+
78
+ @keyframes messageSquareDotCircleAnimation {
79
+ 0% {
80
+ transform: translate(0, 0);
81
+ }
82
+ 50% {
83
+ transform: translate(-2px, 2px);
84
+ }
85
+ 100% {
86
+ transform: translate(0, 0);
87
+ }
88
+ }
89
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageSquareDot: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageSquareDot = ReturnType<typeof MessageSquareDot>;
4
+ export default MessageSquareDot;
@@ -0,0 +1,99 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-square-heart" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-square-heart-group">
35
+ <path
36
+ d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"
37
+ class="message-square-heart-path1"
38
+ />
39
+ <path
40
+ d="M14.8 7.5a1.84 1.84 0 0 0-2.6 0l-.2.3-.3-.3a1.84 1.84 0 1 0-2.4 2.8L12 13l2.7-2.7c.9-.9.8-2.1.1-2.8"
41
+ class="message-square-heart-path2"
42
+ />
43
+ </g>
44
+ </svg>
45
+ </div>
46
+
47
+ <style>
48
+ div {
49
+ display: inline-block;
50
+ }
51
+ .message-square-heart-group {
52
+ transform-origin: bottom left;
53
+ }
54
+
55
+ .message-square-heart-path2 {
56
+ transform-origin: center;
57
+ }
58
+
59
+ .animate .message-square-heart-group {
60
+ animation: messageSquareHeartGroupAnimation 0.8s ease-in-out;
61
+ }
62
+
63
+ .animate .message-square-heart-path2 {
64
+ animation: messageSquareHeartPath2Animation 0.8s ease-in-out;
65
+ }
66
+
67
+ @keyframes messageSquareHeartGroupAnimation {
68
+ 0% {
69
+ transform: rotate(0deg);
70
+ }
71
+ 40% {
72
+ transform: rotate(8deg);
73
+ }
74
+ 60% {
75
+ transform: rotate(-8deg);
76
+ }
77
+ 80% {
78
+ transform: rotate(2deg);
79
+ }
80
+ 100% {
81
+ transform: rotate(0deg);
82
+ }
83
+ }
84
+
85
+ @keyframes messageSquareHeartPath2Animation {
86
+ 0% {
87
+ transform: scale(1);
88
+ }
89
+ 25% {
90
+ transform: scale(0.7);
91
+ }
92
+ 50% {
93
+ transform: scale(1.1);
94
+ }
95
+ 100% {
96
+ transform: scale(1);
97
+ }
98
+ }
99
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageSquareHeart: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageSquareHeart = ReturnType<typeof MessageSquareHeart>;
4
+ export default MessageSquareHeart;
@@ -0,0 +1,106 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 800);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="message-square-quote" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class:animate
33
+ >
34
+ <g class="message-square-quote-group">
35
+ <path
36
+ d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"
37
+ class="message-square-quote-path1"
38
+ />
39
+ <path d="M8 12a2 2 0 0 0 2-2V8H8" class="message-square-quote-path2" />
40
+ <path d="M14 12a2 2 0 0 0 2-2V8h-2" class="message-square-quote-path3" />
41
+ </g>
42
+ </svg>
43
+ </div>
44
+
45
+ <style>
46
+ div {
47
+ display: inline-block;
48
+ }
49
+ .message-square-quote-group {
50
+ transform-origin: bottom left;
51
+ }
52
+
53
+ .animate .message-square-quote-group {
54
+ animation: messageSquareQuoteGroupAnimation 0.8s ease-in-out;
55
+ }
56
+
57
+ .animate .message-square-quote-path2 {
58
+ animation: messageSquareQuotePath2Animation 0.6s ease-in-out;
59
+ }
60
+
61
+ .animate .message-square-quote-path3 {
62
+ animation: messageSquareQuotePath3Animation 0.6s ease-in-out;
63
+ }
64
+
65
+ @keyframes messageSquareQuoteGroupAnimation {
66
+ 0% {
67
+ transform: rotate(0deg);
68
+ }
69
+ 40% {
70
+ transform: rotate(8deg);
71
+ }
72
+ 60% {
73
+ transform: rotate(-8deg);
74
+ }
75
+ 80% {
76
+ transform: rotate(2deg);
77
+ }
78
+ 100% {
79
+ transform: rotate(0deg);
80
+ }
81
+ }
82
+
83
+ @keyframes messageSquareQuotePath2Animation {
84
+ 0% {
85
+ transform: translate(0, 0);
86
+ }
87
+ 50% {
88
+ transform: translate(1.5px, -0.5px);
89
+ }
90
+ 100% {
91
+ transform: translate(0, 0);
92
+ }
93
+ }
94
+
95
+ @keyframes messageSquareQuotePath3Animation {
96
+ 0% {
97
+ transform: translate(0, 0);
98
+ }
99
+ 50% {
100
+ transform: translate(1px, -0.5px);
101
+ }
102
+ 100% {
103
+ transform: translate(0, 0);
104
+ }
105
+ }
106
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const MessageSquareQuote: import("svelte").Component<IconProps, {}, "">;
3
+ type MessageSquareQuote = ReturnType<typeof MessageSquareQuote>;
4
+ export default MessageSquareQuote;
@@ -49,7 +49,7 @@
49
49
  display: inline-block;
50
50
  }
51
51
  .redo-dot-icon {
52
- transform-origin: 14px 20px;
52
+ transform-origin: center 71.42857%; /* calc(20 / 28 * 100%) */
53
53
  transition: transform 0.3s ease;
54
54
  }
55
55
 
@@ -48,7 +48,7 @@
48
48
  display: inline-block;
49
49
  }
50
50
  .redo-icon {
51
- transform-origin: 14px 20px;
51
+ transform-origin: center 71.42857%; /* calc(20 / 28 * 100%) */
52
52
  transition: transform 0.3s ease;
53
53
  }
54
54
 
@@ -49,7 +49,7 @@
49
49
  display: inline-block;
50
50
  }
51
51
  .undo-dot-icon {
52
- transform-origin: 14px 20px;
52
+ transform-origin: center 71.42857%; /* calc(20 / 28 * 100%) */
53
53
  transition: transform 0.3s ease;
54
54
  }
55
55
 
@@ -48,7 +48,7 @@
48
48
  display: inline-block;
49
49
  }
50
50
  .undo-icon {
51
- transform-origin: 14px 20px;
51
+ transform-origin: center 71.42857%; /* calc(20 / 28 * 100%) */
52
52
  transition: transform 0.3s ease;
53
53
  }
54
54
 
@@ -0,0 +1,124 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let {
5
+ color = 'currentColor',
6
+ size = 24,
7
+ strokeWidth = 2,
8
+ animate = false,
9
+ class: className = ''
10
+ }: IconProps = $props();
11
+
12
+ function handleMouseEnter() {
13
+ if (animate) return;
14
+ animate = true;
15
+ setTimeout(() => {
16
+ animate = false;
17
+ }, 600);
18
+ }
19
+ </script>
20
+
21
+ <div class={className} aria-label="user-x" role="img" onmouseenter={handleMouseEnter}>
22
+ <svg
23
+ xmlns="http://www.w3.org/2000/svg"
24
+ width={size}
25
+ height={size}
26
+ viewBox="0 0 24 24"
27
+ fill="none"
28
+ stroke={color}
29
+ stroke-width={strokeWidth}
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ class="user-x-icon"
33
+ class:animate
34
+ >
35
+ <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" class="user-path" />
36
+ <circle cx="9" cy="7" r="4" class="user-circle" />
37
+ <line x1="22" x2="17" y1="8" y2="13" class="diagonal-1" />
38
+ <line x1="17" x2="22" y1="8" y2="13" class="diagonal-2" />
39
+ </svg>
40
+ </div>
41
+
42
+ <style>
43
+ div {
44
+ display: inline-block;
45
+ }
46
+ .user-x-icon {
47
+ overflow: visible;
48
+ }
49
+
50
+ .user-path,
51
+ .user-circle {
52
+ transition: transform 0.6s ease-in-out;
53
+ }
54
+
55
+ .user-x-icon.animate .user-path {
56
+ animation: pathBounce 0.6s ease-in-out;
57
+ }
58
+
59
+ .user-x-icon.animate .user-circle {
60
+ animation: circleBounce 0.6s ease-in-out;
61
+ }
62
+
63
+ .diagonal-1,
64
+ .diagonal-2 {
65
+ stroke-dasharray: 7.1;
66
+ stroke-dashoffset: 0;
67
+ transition: stroke-dashoffset 0.15s ease-out;
68
+ }
69
+
70
+ .user-x-icon.animate .diagonal-1 {
71
+ opacity: 0;
72
+ animation: lineAnimation 0.3s ease-out forwards;
73
+ }
74
+
75
+ .user-x-icon.animate .diagonal-2 {
76
+ opacity: 0;
77
+ animation: lineAnimation 0.3s ease-out 0.25s forwards;
78
+ }
79
+
80
+ @keyframes pathBounce {
81
+ 0% {
82
+ transform: translateY(0);
83
+ }
84
+ 33% {
85
+ transform: translateY(2px);
86
+ }
87
+ 66% {
88
+ transform: translateY(-2px);
89
+ }
90
+ 100% {
91
+ transform: translateY(0);
92
+ }
93
+ }
94
+
95
+ @keyframes circleBounce {
96
+ 0% {
97
+ transform: translateY(0);
98
+ }
99
+ 33% {
100
+ transform: translateY(4px);
101
+ }
102
+ 66% {
103
+ transform: translateY(-2px);
104
+ }
105
+ 100% {
106
+ transform: translateY(0);
107
+ }
108
+ }
109
+
110
+ @keyframes lineAnimation {
111
+ 0% {
112
+ opacity: 0;
113
+ stroke-dashoffset: 7.1;
114
+ }
115
+ 15% {
116
+ opacity: 1;
117
+ stroke-dashoffset: 7.1;
118
+ }
119
+ 100% {
120
+ opacity: 1;
121
+ stroke-dashoffset: 0;
122
+ }
123
+ }
124
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { IconProps } from './types.js';
2
+ declare const UserX: import("svelte").Component<IconProps, {}, "">;
3
+ type UserX = ReturnType<typeof UserX>;
4
+ export default UserX;
package/dist/index.d.ts CHANGED
@@ -303,13 +303,21 @@ export { default as MapPinOff } from './icons/map-pin-off.svelte';
303
303
  export { default as Maximize2 } from './icons/maximize-2.svelte';
304
304
  export { default as Maximize } from './icons/maximize.svelte';
305
305
  export { default as MegaphoneOff } from './icons/megaphone-off.svelte';
306
+ export { default as MessageCircleCode } from './icons/message-circle-code.svelte';
307
+ export { default as MessageCircleDashed } from './icons/message-circle-dashed.svelte';
308
+ export { default as MessageCircleHeart } from './icons/message-circle-heart.svelte';
306
309
  export { default as MessageCircleMore } from './icons/message-circle-more.svelte';
307
310
  export { default as MessageCircleOff } from './icons/message-circle-off.svelte';
308
311
  export { default as MessageCircleQuestionMark } from './icons/message-circle-question-mark.svelte';
309
312
  export { default as MessageCircleWarning } from './icons/message-circle-warning.svelte';
310
313
  export { default as MessageCircle } from './icons/message-circle.svelte';
314
+ export { default as MessageSquareCode } from './icons/message-square-code.svelte';
315
+ export { default as MessageSquareDashed } from './icons/message-square-dashed.svelte';
316
+ export { default as MessageSquareDot } from './icons/message-square-dot.svelte';
317
+ export { default as MessageSquareHeart } from './icons/message-square-heart.svelte';
311
318
  export { default as MessageSquareMore } from './icons/message-square-more.svelte';
312
319
  export { default as MessageSquareOff } from './icons/message-square-off.svelte';
320
+ export { default as MessageSquareQuote } from './icons/message-square-quote.svelte';
313
321
  export { default as MessageSquareWarning } from './icons/message-square-warning.svelte';
314
322
  export { default as MessageSquare } from './icons/message-square.svelte';
315
323
  export { default as MicOff } from './icons/mic-off.svelte';
@@ -494,6 +502,7 @@ export { default as UserRoundCheck } from './icons/user-round-check.svelte';
494
502
  export { default as UserRoundCog } from './icons/user-round-cog.svelte';
495
503
  export { default as UserRoundPen } from './icons/user-round-pen.svelte';
496
504
  export { default as UserRound } from './icons/user-round.svelte';
505
+ export { default as UserX } from './icons/user-x.svelte';
497
506
  export { default as User } from './icons/user.svelte';
498
507
  export { default as UsersRound } from './icons/users-round.svelte';
499
508
  export { default as Users } from './icons/users.svelte';
package/dist/index.js CHANGED
@@ -303,13 +303,21 @@ export { default as MapPinOff } from './icons/map-pin-off.svelte';
303
303
  export { default as Maximize2 } from './icons/maximize-2.svelte';
304
304
  export { default as Maximize } from './icons/maximize.svelte';
305
305
  export { default as MegaphoneOff } from './icons/megaphone-off.svelte';
306
+ export { default as MessageCircleCode } from './icons/message-circle-code.svelte';
307
+ export { default as MessageCircleDashed } from './icons/message-circle-dashed.svelte';
308
+ export { default as MessageCircleHeart } from './icons/message-circle-heart.svelte';
306
309
  export { default as MessageCircleMore } from './icons/message-circle-more.svelte';
307
310
  export { default as MessageCircleOff } from './icons/message-circle-off.svelte';
308
311
  export { default as MessageCircleQuestionMark } from './icons/message-circle-question-mark.svelte';
309
312
  export { default as MessageCircleWarning } from './icons/message-circle-warning.svelte';
310
313
  export { default as MessageCircle } from './icons/message-circle.svelte';
314
+ export { default as MessageSquareCode } from './icons/message-square-code.svelte';
315
+ export { default as MessageSquareDashed } from './icons/message-square-dashed.svelte';
316
+ export { default as MessageSquareDot } from './icons/message-square-dot.svelte';
317
+ export { default as MessageSquareHeart } from './icons/message-square-heart.svelte';
311
318
  export { default as MessageSquareMore } from './icons/message-square-more.svelte';
312
319
  export { default as MessageSquareOff } from './icons/message-square-off.svelte';
320
+ export { default as MessageSquareQuote } from './icons/message-square-quote.svelte';
313
321
  export { default as MessageSquareWarning } from './icons/message-square-warning.svelte';
314
322
  export { default as MessageSquare } from './icons/message-square.svelte';
315
323
  export { default as MicOff } from './icons/mic-off.svelte';
@@ -494,6 +502,7 @@ export { default as UserRoundCheck } from './icons/user-round-check.svelte';
494
502
  export { default as UserRoundCog } from './icons/user-round-cog.svelte';
495
503
  export { default as UserRoundPen } from './icons/user-round-pen.svelte';
496
504
  export { default as UserRound } from './icons/user-round.svelte';
505
+ export { default as UserX } from './icons/user-x.svelte';
497
506
  export { default as User } from './icons/user.svelte';
498
507
  export { default as UsersRound } from './icons/users-round.svelte';
499
508
  export { default as Users } from './icons/users.svelte';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jis3r/icons",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "beautifully crafted, moving icons. for svelte.",
5
5
  "keywords": [
6
6
  "svelte",
@@ -92,4 +92,4 @@
92
92
  "overrides": {
93
93
  "cookie": "0.7.0"
94
94
  }
95
- }
95
+ }