@jis3r/icons 2.2.0 → 2.4.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.
- package/dist/icons/message-circle-code.svelte +109 -0
- package/dist/icons/message-circle-code.svelte.d.ts +4 -0
- package/dist/icons/message-circle-dashed.svelte +81 -0
- package/dist/icons/message-circle-dashed.svelte.d.ts +4 -0
- package/dist/icons/message-circle-heart.svelte +96 -0
- package/dist/icons/message-circle-heart.svelte.d.ts +4 -0
- package/dist/icons/message-circle-x.svelte +109 -0
- package/dist/icons/message-circle-x.svelte.d.ts +4 -0
- package/dist/icons/message-square-code.svelte +112 -0
- package/dist/icons/message-square-code.svelte.d.ts +4 -0
- package/dist/icons/message-square-dashed.svelte +82 -0
- package/dist/icons/message-square-dashed.svelte.d.ts +4 -0
- package/dist/icons/message-square-dot.svelte +89 -0
- package/dist/icons/message-square-dot.svelte.d.ts +4 -0
- package/dist/icons/message-square-heart.svelte +99 -0
- package/dist/icons/message-square-heart.svelte.d.ts +4 -0
- package/dist/icons/message-square-quote.svelte +106 -0
- package/dist/icons/message-square-quote.svelte.d.ts +4 -0
- package/dist/icons/message-square-x.svelte +109 -0
- package/dist/icons/message-square-x.svelte.d.ts +4 -0
- package/dist/icons/redo-dot.svelte +1 -1
- package/dist/icons/redo.svelte +1 -1
- package/dist/icons/standalone-props.d.ts +6 -0
- package/dist/icons/standalone-props.js +14 -0
- package/dist/icons/undo-dot.svelte +1 -1
- package/dist/icons/undo.svelte +1 -1
- package/dist/icons/user-check.svelte +46 -3
- package/dist/icons/user-pen.svelte +46 -2
- package/dist/icons/user-x.svelte +124 -0
- package/dist/icons/user-x.svelte.d.ts +4 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +11 -0
- package/package.json +3 -2
|
@@ -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,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,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,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-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="message-circle-x-icon"
|
|
33
|
+
>
|
|
34
|
+
<g class="message-circle-x-group" class:animate>
|
|
35
|
+
<path
|
|
36
|
+
d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"
|
|
37
|
+
/>
|
|
38
|
+
<path d="m15 9-6 6" class="diagonal-1" />
|
|
39
|
+
<path d="m9 9 6 6" class="diagonal-2" />
|
|
40
|
+
</g>
|
|
41
|
+
</svg>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<style>
|
|
45
|
+
div {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
}
|
|
48
|
+
.message-circle-x-icon {
|
|
49
|
+
overflow: visible;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.message-circle-x-group {
|
|
53
|
+
transform-origin: bottom left;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.message-circle-x-group.animate {
|
|
57
|
+
animation: messageCircleAnimation 0.8s ease-in-out;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.diagonal-1,
|
|
61
|
+
.diagonal-2 {
|
|
62
|
+
stroke-dasharray: 8.5;
|
|
63
|
+
stroke-dashoffset: 0;
|
|
64
|
+
transition: stroke-dashoffset 0.15s ease-out;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.message-circle-x-group.animate .diagonal-1 {
|
|
68
|
+
opacity: 0;
|
|
69
|
+
animation: lineAnimation 0.3s ease-out forwards;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.message-circle-x-group.animate .diagonal-2 {
|
|
73
|
+
opacity: 0;
|
|
74
|
+
animation: lineAnimation 0.3s ease-out 0.25s forwards;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@keyframes messageCircleAnimation {
|
|
78
|
+
0% {
|
|
79
|
+
transform: rotate(0deg);
|
|
80
|
+
}
|
|
81
|
+
40% {
|
|
82
|
+
transform: rotate(8deg);
|
|
83
|
+
}
|
|
84
|
+
60% {
|
|
85
|
+
transform: rotate(-8deg);
|
|
86
|
+
}
|
|
87
|
+
80% {
|
|
88
|
+
transform: rotate(2deg);
|
|
89
|
+
}
|
|
90
|
+
100% {
|
|
91
|
+
transform: rotate(0deg);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@keyframes lineAnimation {
|
|
96
|
+
0% {
|
|
97
|
+
opacity: 0;
|
|
98
|
+
stroke-dashoffset: 8.5;
|
|
99
|
+
}
|
|
100
|
+
15% {
|
|
101
|
+
opacity: 1;
|
|
102
|
+
stroke-dashoffset: 8.5;
|
|
103
|
+
}
|
|
104
|
+
100% {
|
|
105
|
+
opacity: 1;
|
|
106
|
+
stroke-dashoffset: 0;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
</style>
|
|
@@ -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,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,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>
|