vue-emoji-to-icon 1.0.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/LICENSE +21 -0
- package/README.md +217 -0
- package/dist/index.d.ts +1 -0
- package/dist/style.css +1 -0
- package/dist/vue-emoji-to-icon.es.js +290 -0
- package/dist/vue-emoji-to-icon.umd.js +1 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 ohohOD
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# vue-emoji-to-icon
|
|
2
|
+
|
|
3
|
+
Universal emoji to Lucide icon converter for Vue 3. Automatically converts emojis and Korean keywords to beautiful Lucide icons.
|
|
4
|
+
|
|
5
|
+
## โจ Features
|
|
6
|
+
|
|
7
|
+
- ๐ **140+ Emoji Mappings**: Covers UI, TRPG, social, nature, food, and more
|
|
8
|
+
- ๐ฐ๐ท **Korean Keyword Support**: Use Korean words like '์ง' (home), '์ฌ๋' (user)
|
|
9
|
+
- ๐จ **Fully Customizable**: Size, color, stroke width, and more
|
|
10
|
+
- ๐ **Fallback System**: Shows original emoji if no mapping exists
|
|
11
|
+
- ๐ณ **Tree-shakeable**: Only bundles icons you actually use
|
|
12
|
+
- ๐ฏ **Type Safe**: Full TypeScript support
|
|
13
|
+
- ๐ชถ **Lightweight**: Minimal bundle size impact
|
|
14
|
+
|
|
15
|
+
## ๐ฆ Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install vue-emoji-to-icon
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## ๐ Usage
|
|
22
|
+
|
|
23
|
+
### Global Installation (Plugin)
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
// main.js
|
|
27
|
+
import { createApp } from 'vue'
|
|
28
|
+
import App from './App.vue'
|
|
29
|
+
import VueEmojiToIcon from 'vue-emoji-to-icon'
|
|
30
|
+
|
|
31
|
+
const app = createApp(App)
|
|
32
|
+
app.use(VueEmojiToIcon)
|
|
33
|
+
app.mount('#app')
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Component Import
|
|
37
|
+
|
|
38
|
+
```vue
|
|
39
|
+
<template>
|
|
40
|
+
<div>
|
|
41
|
+
<!-- Basic usage -->
|
|
42
|
+
<EmojiToIcon emoji="๐ " />
|
|
43
|
+
<EmojiToIcon emoji="๐ค" />
|
|
44
|
+
<EmojiToIcon emoji="โค๏ธ" />
|
|
45
|
+
|
|
46
|
+
<!-- With customization -->
|
|
47
|
+
<EmojiToIcon
|
|
48
|
+
emoji="โญ"
|
|
49
|
+
:size="32"
|
|
50
|
+
color="gold"
|
|
51
|
+
:stroke-width="3"
|
|
52
|
+
/>
|
|
53
|
+
|
|
54
|
+
<!-- Korean keywords -->
|
|
55
|
+
<EmojiToIcon emoji="์ง" />
|
|
56
|
+
<EmojiToIcon emoji="์ฌ๋" />
|
|
57
|
+
<EmojiToIcon emoji="ํํธ" />
|
|
58
|
+
|
|
59
|
+
<!-- Fallback for unmapped emojis -->
|
|
60
|
+
<EmojiToIcon emoji="๐ฆ" :show-fallback="true" />
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
|
|
64
|
+
<script>
|
|
65
|
+
import { EmojiToIcon } from 'vue-emoji-to-icon'
|
|
66
|
+
|
|
67
|
+
export default {
|
|
68
|
+
components: {
|
|
69
|
+
EmojiToIcon
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
</script>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## ๐๏ธ Props
|
|
76
|
+
|
|
77
|
+
| Prop | Type | Default | Description |
|
|
78
|
+
|------|------|---------|-------------|
|
|
79
|
+
| `emoji` | String | **(required)** | Emoji or Korean keyword to convert |
|
|
80
|
+
| `size` | Number | `24` | Icon size in pixels |
|
|
81
|
+
| `color` | String | `'currentColor'` | Icon color |
|
|
82
|
+
| `fill` | String | `'none'` | Fill color |
|
|
83
|
+
| `strokeWidth` | Number | `2` | Stroke width |
|
|
84
|
+
| `showFallback` | Boolean | `true` | Show original emoji if no mapping |
|
|
85
|
+
| `iconClass` | String | `''` | CSS class for icon |
|
|
86
|
+
| `fallbackClass` | String | `'emoji-fallback'` | CSS class for fallback emoji |
|
|
87
|
+
|
|
88
|
+
## ๐ Emoji Mappings
|
|
89
|
+
|
|
90
|
+
### UI & Navigation
|
|
91
|
+
- ๐ โ Home
|
|
92
|
+
- ๐ค โ User
|
|
93
|
+
- โญ โ Star
|
|
94
|
+
- ๐ โ Search
|
|
95
|
+
- ๐ฌ โ MessageCircle
|
|
96
|
+
- โ๏ธ โ Settings
|
|
97
|
+
- โฐ โ Menu
|
|
98
|
+
- โ โ X
|
|
99
|
+
|
|
100
|
+
### TRPG & Gaming
|
|
101
|
+
- ๐ฒ โ Dice5
|
|
102
|
+
- โ๏ธ โ Sword
|
|
103
|
+
- ๐ก๏ธ โ Shield
|
|
104
|
+
- ๐น โ BowArrow
|
|
105
|
+
- ๐ฏ โ Target
|
|
106
|
+
- ๐ โ Scroll
|
|
107
|
+
- โโโโโโ
โ Dice1-6
|
|
108
|
+
|
|
109
|
+
### Social & Communication
|
|
110
|
+
- โค๏ธ โ Heart
|
|
111
|
+
- ๐ โ ThumbsUp
|
|
112
|
+
- ๐ โ ThumbsDown
|
|
113
|
+
- ๐ค โ Send
|
|
114
|
+
- ๐ โ Eye
|
|
115
|
+
- ๐ โ Link
|
|
116
|
+
|
|
117
|
+
### Nature & Weather
|
|
118
|
+
- โ๏ธ โ Sun
|
|
119
|
+
- ๐ โ Moon
|
|
120
|
+
- โ๏ธ โ Cloud
|
|
121
|
+
- ๐ฅ โ Flame
|
|
122
|
+
- โ๏ธ โ Snowflake
|
|
123
|
+
|
|
124
|
+
### Korean Keywords
|
|
125
|
+
- ์ง โ Home
|
|
126
|
+
- ์ฌ๋ โ User
|
|
127
|
+
- ํํธ โ Heart
|
|
128
|
+
- ๋ณ โ Star
|
|
129
|
+
- ๊ฒ์ โ Search
|
|
130
|
+
- ๋ฉ์์ง โ MessageCircle
|
|
131
|
+
- ์ค์ โ Settings
|
|
132
|
+
|
|
133
|
+
[See full mapping list in source code]
|
|
134
|
+
|
|
135
|
+
## ๐ก Why Use This?
|
|
136
|
+
|
|
137
|
+
### Before (Raw Emojis)
|
|
138
|
+
```vue
|
|
139
|
+
<span class="icon">๐ </span> <!-- Inconsistent rendering -->
|
|
140
|
+
<span class="icon">๐ค</span> <!-- Different styles -->
|
|
141
|
+
<span class="icon">โญ</span> <!-- Platform-dependent -->
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### After (EmojiToIcon)
|
|
145
|
+
```vue
|
|
146
|
+
<EmojiToIcon emoji="๐ " :size="16" /> <!-- Consistent Lucide icons -->
|
|
147
|
+
<EmojiToIcon emoji="๐ค" :size="16" /> <!-- Unified design language -->
|
|
148
|
+
<EmojiToIcon emoji="โญ" :size="16" /> <!-- Beautiful & customizable -->
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## ๐จ Advanced Usage
|
|
152
|
+
|
|
153
|
+
### Custom Styling
|
|
154
|
+
|
|
155
|
+
```vue
|
|
156
|
+
<template>
|
|
157
|
+
<EmojiToIcon
|
|
158
|
+
emoji="โ๏ธ"
|
|
159
|
+
:size="48"
|
|
160
|
+
color="red"
|
|
161
|
+
:stroke-width="3"
|
|
162
|
+
icon-class="my-custom-icon"
|
|
163
|
+
/>
|
|
164
|
+
</template>
|
|
165
|
+
|
|
166
|
+
<style>
|
|
167
|
+
.my-custom-icon {
|
|
168
|
+
filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.3));
|
|
169
|
+
transition: transform 0.2s;
|
|
170
|
+
}
|
|
171
|
+
.my-custom-icon:hover {
|
|
172
|
+
transform: scale(1.1);
|
|
173
|
+
}
|
|
174
|
+
</style>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Dynamic Emoji Selection
|
|
178
|
+
|
|
179
|
+
```vue
|
|
180
|
+
<template>
|
|
181
|
+
<div>
|
|
182
|
+
<EmojiToIcon
|
|
183
|
+
v-for="emoji in emojiList"
|
|
184
|
+
:key="emoji"
|
|
185
|
+
:emoji="emoji"
|
|
186
|
+
:size="24"
|
|
187
|
+
/>
|
|
188
|
+
</div>
|
|
189
|
+
</template>
|
|
190
|
+
|
|
191
|
+
<script>
|
|
192
|
+
export default {
|
|
193
|
+
data() {
|
|
194
|
+
return {
|
|
195
|
+
emojiList: ['๐ ', '๐ค', 'โญ', '๐', '๐ฌ']
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
</script>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## ๐ License
|
|
203
|
+
|
|
204
|
+
MIT
|
|
205
|
+
|
|
206
|
+
## ๐ค Contributing
|
|
207
|
+
|
|
208
|
+
Issues and PRs are welcome!
|
|
209
|
+
|
|
210
|
+
## ๐ Related
|
|
211
|
+
|
|
212
|
+
- [lucide-vue-next](https://github.com/lucide-icons/lucide) - Beautiful icon library
|
|
213
|
+
- [Vue 3](https://vuejs.org/) - The Progressive JavaScript Framework
|
|
214
|
+
|
|
215
|
+
## ๐ Credits
|
|
216
|
+
|
|
217
|
+
Built with [Lucide Icons](https://lucide.dev/)
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/index.js'
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.emoji-fallback[data-v-a28618da]{display:inline-block;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Android Emoji",sans-serif}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { X as p, Menu as h, Settings as a, MessageCircle as k, Search as g, Star as r, Heart as t, User as n, Home as i, BadgeQuestionMark as A, Ban as _, Lock as f, Notebook as z, Smile as S, CircleQuestionMarkIcon as j, ClipboardIcon as F, Calendar as w, EyeIcon as E, Package as R, DatabaseIcon as L, Plug as U, Edit as l, Info as y, Bell as c, TrendingDown as T, TrendingUp as s, Dice6 as G, Dice5 as D, Dice4 as H, Dice3 as N, Dice2 as x, Dice1 as W, Sparkle as q, Scroll as O, Target as Q, BowArrow as V, Swords as K, Sword as X, Calculator as Z, Highlighter as J, PenTool as Y, GraduationCap as $, Cross as ee, Stethoscope as oe, Pill as ae, Activity as re, Truck as te, Rocket as ne, Ship as ie, Train as le, Plane as ce, Bike as se, Car as de, DollarSign as ue, CreditCard as Ce, ShoppingBag as me, ShoppingCart as pe, Code as he, Quote as ke, ListOrdered as ge, List as fe, Type as Se, Hourglass as we, TimerIcon as ye, Timer as Te, Building as De, Globe as Be, Navigation as be, Compass as Ie, Map as Me, MapPin as Pe, Wifi as ve, Server as Ae, Database as _e, Shield as B, Key as ze, Unlock as je, HelpCircle as Fe, AlertTriangle as Ee, Diamond as Re, Triangle as Le, Square as Ue, Circle as Ge, Meh as b, Angry as He, Frown as Ne, Banana as xe, Grape as We, Cherry as qe, Apple as Oe, Cake as Qe, Cookie as Ve, Pizza as Ke, Coffee as Xe, Ghost as Ze, Bug as Je, Turtle as Ye, Rabbit as $e, Bird as eo, Fish as oo, Dog as ao, Cat as ro, Flower as to, TreeDeciduousIcon as no, Leaf as io, Flame as lo, Snowflake as co, CloudRain as so, Cloud as uo, Moon as Co, Sun as mo, Edit3Icon as po, Wand2 as ho, Sparkles as ko, Zap as go, Crown as fo, Award as So, Trophy as wo, Gamepad2 as yo, Flag as To, Bookmark as Do, ThumbsDown as Bo, ThumbsUp as bo, RotateCcw as Io, RotateCw as Mo, RefreshCw as Po, Save as vo, Paperclip as Ao, Link as _o, Eye as zo, Share as jo, Send as Fo, ChevronRight as Eo, ChevronLeft as Ro, ChevronDown as Lo, ChevronUp as Uo, ArrowRight as Go, ArrowLeft as Ho, ArrowDown as No, ArrowUp as xo, CheckCircle as Wo, Check as qo, Minus as Oo, Plus as Qo, Trash2 as Vo, Folder as Ko, File as Xo, BookOpen as Zo, Book as Jo, Clock as Yo, CircleStop as $o, Pause as ea, Play as oa, Music as aa, Video as ra, Image as ta, Camera as na, Phone as I, Mail as M, MessageSquare as ia, Users as la } from "lucide-vue-next";
|
|
2
|
+
import { createBlock as ca, createElementBlock as sa, createCommentVNode as da, openBlock as P, resolveDynamicComponent as ua, mergeProps as Ca, normalizeStyle as ma, normalizeClass as pa, toDisplayString as ha } from "vue";
|
|
3
|
+
const ka = (o, d) => {
|
|
4
|
+
const e = o.__vccOpts || o;
|
|
5
|
+
for (const [u, C] of d)
|
|
6
|
+
e[u] = C;
|
|
7
|
+
return e;
|
|
8
|
+
}, ga = {
|
|
9
|
+
name: "EmojiToIcon",
|
|
10
|
+
inheritAttrs: !1,
|
|
11
|
+
props: {
|
|
12
|
+
emoji: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: !0
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
type: Number,
|
|
18
|
+
default: 24
|
|
19
|
+
},
|
|
20
|
+
color: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: "currentColor"
|
|
23
|
+
},
|
|
24
|
+
fill: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: "none"
|
|
27
|
+
},
|
|
28
|
+
strokeWidth: {
|
|
29
|
+
type: Number,
|
|
30
|
+
default: 2
|
|
31
|
+
},
|
|
32
|
+
showFallback: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: !0
|
|
35
|
+
},
|
|
36
|
+
iconClass: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: ""
|
|
39
|
+
},
|
|
40
|
+
fallbackClass: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: "emoji-fallback"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
computed: {
|
|
46
|
+
iconComponent() {
|
|
47
|
+
return this.emojiToIconMap[this.emoji] || null;
|
|
48
|
+
},
|
|
49
|
+
emojiToIconMap() {
|
|
50
|
+
return {
|
|
51
|
+
// ๊ธฐ๋ณธ UI ๋ฐ ๋ค๋น๊ฒ์ด์
|
|
52
|
+
"๐ ": i,
|
|
53
|
+
"๐ก": i,
|
|
54
|
+
"๐ค": n,
|
|
55
|
+
"๐ฅ": la,
|
|
56
|
+
"โค๏ธ": t,
|
|
57
|
+
"๐": t,
|
|
58
|
+
"โญ": r,
|
|
59
|
+
"๐": g,
|
|
60
|
+
"๐ฌ": k,
|
|
61
|
+
"๐ฑ": ia,
|
|
62
|
+
"๐": c,
|
|
63
|
+
"โ๏ธ": a,
|
|
64
|
+
"โฐ": h,
|
|
65
|
+
"โ": p,
|
|
66
|
+
"โ๏ธ": M,
|
|
67
|
+
"๐ง": M,
|
|
68
|
+
"โ๏ธ": I,
|
|
69
|
+
"๐": I,
|
|
70
|
+
"๐ท": na,
|
|
71
|
+
"๐ผ๏ธ": ta,
|
|
72
|
+
"๐น": ra,
|
|
73
|
+
"๐ต": aa,
|
|
74
|
+
"โถ๏ธ": oa,
|
|
75
|
+
"โธ๏ธ": ea,
|
|
76
|
+
"โน๏ธ": $o,
|
|
77
|
+
"๐
": w,
|
|
78
|
+
"๐": Yo,
|
|
79
|
+
"๐": Jo,
|
|
80
|
+
"๐": Zo,
|
|
81
|
+
"๐": Xo,
|
|
82
|
+
"๐": Ko,
|
|
83
|
+
"โ๏ธ": l,
|
|
84
|
+
"๐๏ธ": Vo,
|
|
85
|
+
"โ": Qo,
|
|
86
|
+
"โ": Oo,
|
|
87
|
+
"โ
": qo,
|
|
88
|
+
"โ๏ธ": Wo,
|
|
89
|
+
// ๋ฐฉํฅ ๋ฐ ๋ค๋น๊ฒ์ด์
|
|
90
|
+
"โฌ๏ธ": xo,
|
|
91
|
+
"โฌ๏ธ": No,
|
|
92
|
+
"โฌ
๏ธ": Ho,
|
|
93
|
+
"โก๏ธ": Go,
|
|
94
|
+
"๐ผ": Uo,
|
|
95
|
+
"๐ฝ": Lo,
|
|
96
|
+
"โ๏ธ": Ro,
|
|
97
|
+
"โถ๏ธ": Eo,
|
|
98
|
+
// ์์
๋ฐ ์ปค๋ฎค๋์ผ์ด์
|
|
99
|
+
"๐ค": Fo,
|
|
100
|
+
"๐ข": jo,
|
|
101
|
+
"๐": zo,
|
|
102
|
+
"๐": _o,
|
|
103
|
+
"๐": Ao,
|
|
104
|
+
"๐พ": vo,
|
|
105
|
+
"๐": Po,
|
|
106
|
+
"โช๏ธ": Mo,
|
|
107
|
+
"โฉ๏ธ": Io,
|
|
108
|
+
"๐": bo,
|
|
109
|
+
"๐": Bo,
|
|
110
|
+
"๐": Do,
|
|
111
|
+
"๐ฉ": To,
|
|
112
|
+
// ๋ฏธ๋์ด ๋ฐ ์ํฐํ
์ธ๋จผํธ
|
|
113
|
+
"๐ฎ": yo,
|
|
114
|
+
"๐ฒ": D,
|
|
115
|
+
"๐": wo,
|
|
116
|
+
"๐ฅ": So,
|
|
117
|
+
"๐": fo,
|
|
118
|
+
"โก": go,
|
|
119
|
+
"โจ": ko,
|
|
120
|
+
"๐ช": ho,
|
|
121
|
+
"๐": po,
|
|
122
|
+
// ์์ฐ ๋ฐ ๋ ์จ
|
|
123
|
+
"โ๏ธ": mo,
|
|
124
|
+
"๐": Co,
|
|
125
|
+
"โ๏ธ": uo,
|
|
126
|
+
"๐ง๏ธ": so,
|
|
127
|
+
"โ๏ธ": co,
|
|
128
|
+
"๐ฅ": lo,
|
|
129
|
+
"๐": io,
|
|
130
|
+
"๐ณ": no,
|
|
131
|
+
"๐ธ": to,
|
|
132
|
+
// ๋๋ฌผ
|
|
133
|
+
"๐ฑ": ro,
|
|
134
|
+
"๐ถ": ao,
|
|
135
|
+
"๐": oo,
|
|
136
|
+
"๐ฆ": eo,
|
|
137
|
+
"๐ฐ": $e,
|
|
138
|
+
"๐ข": Ye,
|
|
139
|
+
"๐": Je,
|
|
140
|
+
"๐ป": Ze,
|
|
141
|
+
// ์์ ๋ฐ ์๋ฃ
|
|
142
|
+
"โ": Xe,
|
|
143
|
+
"๐": Ke,
|
|
144
|
+
"๐ช": Ve,
|
|
145
|
+
"๐": Qe,
|
|
146
|
+
"๐": Oe,
|
|
147
|
+
"๐": qe,
|
|
148
|
+
"๐": We,
|
|
149
|
+
"๐": xe,
|
|
150
|
+
// ๊ฐ์ ๋ฐ ํํ
|
|
151
|
+
"๐": S,
|
|
152
|
+
"๐ข": Ne,
|
|
153
|
+
"๐": b,
|
|
154
|
+
"๐ ": He,
|
|
155
|
+
"๐ฒ": b,
|
|
156
|
+
// ๋ํ ๋ฐ ๊ธฐํธ
|
|
157
|
+
"โญ": Ge,
|
|
158
|
+
"โฌ": Ue,
|
|
159
|
+
"๐บ": Le,
|
|
160
|
+
"๐": Re,
|
|
161
|
+
"โน๏ธ": y,
|
|
162
|
+
"โ ๏ธ": Ee,
|
|
163
|
+
"๐ก๏ธ": B,
|
|
164
|
+
"โ": Fe,
|
|
165
|
+
// ๋ณด์ ๋ฐ ์์คํ
|
|
166
|
+
"๐": f,
|
|
167
|
+
"๐": je,
|
|
168
|
+
"๐": ze,
|
|
169
|
+
"๐ก๏ธ": B,
|
|
170
|
+
"๐พ": _e,
|
|
171
|
+
"๐ฅ๏ธ": Ae,
|
|
172
|
+
"๐ถ": ve,
|
|
173
|
+
// ์์น ๋ฐ ์ง๋
|
|
174
|
+
"๐": Pe,
|
|
175
|
+
"๐บ๏ธ": Me,
|
|
176
|
+
"๐งญ": Ie,
|
|
177
|
+
"๐งญ": be,
|
|
178
|
+
"๐": Be,
|
|
179
|
+
"๐ข": De,
|
|
180
|
+
// ์๊ฐ ๊ด๋ฆฌ
|
|
181
|
+
"โฐ": Te,
|
|
182
|
+
"โฑ๏ธ": ye,
|
|
183
|
+
"โณ": we,
|
|
184
|
+
// ํ
์คํธ ํธ์ง
|
|
185
|
+
"๐ค": Se,
|
|
186
|
+
"๐": l,
|
|
187
|
+
"๐": fe,
|
|
188
|
+
"๐ข": ge,
|
|
189
|
+
"๐ฌ": ke,
|
|
190
|
+
"๐ป": he,
|
|
191
|
+
// ๋น์ฆ๋์ค ๋ฐ ์ผํ
|
|
192
|
+
"๐": pe,
|
|
193
|
+
"๐๏ธ": me,
|
|
194
|
+
"๐ณ": Ce,
|
|
195
|
+
"๐ฐ": ue,
|
|
196
|
+
"๐": s,
|
|
197
|
+
"๐": T,
|
|
198
|
+
// ๊ตํต ๋ฐ ์ด๋
|
|
199
|
+
"๐": de,
|
|
200
|
+
"๐ฒ": se,
|
|
201
|
+
"โ๏ธ": ce,
|
|
202
|
+
"๐": le,
|
|
203
|
+
"๐ข": ie,
|
|
204
|
+
"๐": ne,
|
|
205
|
+
"๐": te,
|
|
206
|
+
// ๊ฑด๊ฐ ๋ฐ ์๋ฃ
|
|
207
|
+
"๐": re,
|
|
208
|
+
"๐": ae,
|
|
209
|
+
"๐ฉบ": oe,
|
|
210
|
+
"โ": ee,
|
|
211
|
+
// ๊ต์ก ๋ฐ ํ์ต
|
|
212
|
+
"๐": $,
|
|
213
|
+
"โ๏ธ": Y,
|
|
214
|
+
"๐๏ธ": J,
|
|
215
|
+
"๐งฎ": Z,
|
|
216
|
+
// TRPG ๋ฐ ํํ์ง ๊ด๋ จ
|
|
217
|
+
"โ๏ธ": X,
|
|
218
|
+
"๐ก๏ธ": K,
|
|
219
|
+
"๐น": V,
|
|
220
|
+
"๐ฏ": Q,
|
|
221
|
+
"๐": O,
|
|
222
|
+
"โจ": q,
|
|
223
|
+
// ์ฃผ์ฌ์ ํน์ ๋งคํ
|
|
224
|
+
"โ": W,
|
|
225
|
+
"โ": x,
|
|
226
|
+
"โ": N,
|
|
227
|
+
"โ": H,
|
|
228
|
+
"โ": D,
|
|
229
|
+
"โ
": G,
|
|
230
|
+
// ์ถ๊ฐ ์ ์ฉํ ์ด๋ชจ์ง๋ค
|
|
231
|
+
"๐ง": a,
|
|
232
|
+
"๐จ": a,
|
|
233
|
+
"๐": s,
|
|
234
|
+
"๐": s,
|
|
235
|
+
"๐": T,
|
|
236
|
+
"๐": c,
|
|
237
|
+
"๐": c,
|
|
238
|
+
"๐ก": y,
|
|
239
|
+
"๐จ": l,
|
|
240
|
+
"๐ญ": n,
|
|
241
|
+
"๐ช": r,
|
|
242
|
+
"๐": U,
|
|
243
|
+
"๐๏ธ": L,
|
|
244
|
+
"๐ฆ": R,
|
|
245
|
+
"๐๏ธ": E,
|
|
246
|
+
"๐
": w,
|
|
247
|
+
"๐": F,
|
|
248
|
+
"โ": j,
|
|
249
|
+
"๐ง": S,
|
|
250
|
+
"๐จโ๐ป": z,
|
|
251
|
+
"๐": f,
|
|
252
|
+
"๐ซ": _,
|
|
253
|
+
"๏ฟฝ": A,
|
|
254
|
+
// ํ๊ตญ์ด ํค์๋ ์ง์
|
|
255
|
+
์ง: i,
|
|
256
|
+
์ฌ๋: n,
|
|
257
|
+
ํํธ: t,
|
|
258
|
+
๋ณ: r,
|
|
259
|
+
๊ฒ์: g,
|
|
260
|
+
๋ฉ์์ง: k,
|
|
261
|
+
์ค์ : a,
|
|
262
|
+
๋ฉ๋ด: h,
|
|
263
|
+
๋ซ๊ธฐ: p
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
function fa(o, d, e, u, C, m) {
|
|
269
|
+
return m.iconComponent ? (P(), ca(ua(m.iconComponent), Ca({
|
|
270
|
+
key: 0,
|
|
271
|
+
size: e.size,
|
|
272
|
+
fill: e.fill,
|
|
273
|
+
color: e.color,
|
|
274
|
+
"stroke-width": e.strokeWidth
|
|
275
|
+
}, o.$attrs, { class: e.iconClass }), null, 16, ["size", "fill", "color", "stroke-width", "class"])) : e.showFallback ? (P(), sa("span", {
|
|
276
|
+
key: 1,
|
|
277
|
+
class: pa(e.fallbackClass),
|
|
278
|
+
style: ma({ fontSize: e.size + "px" })
|
|
279
|
+
}, ha(e.emoji), 7)) : da("", !0);
|
|
280
|
+
}
|
|
281
|
+
const v = /* @__PURE__ */ ka(ga, [["render", fa], ["__scopeId", "data-v-a28618da"]]), Sa = (o) => {
|
|
282
|
+
o.component("EmojiToIcon", v);
|
|
283
|
+
}, Ta = {
|
|
284
|
+
install: Sa,
|
|
285
|
+
EmojiToIcon: v
|
|
286
|
+
};
|
|
287
|
+
export {
|
|
288
|
+
v as EmojiToIcon,
|
|
289
|
+
Ta as default
|
|
290
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(a,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("lucide-vue-next"),require("vue")):typeof define=="function"&&define.amd?define(["exports","lucide-vue-next","vue"],o):(a=typeof globalThis<"u"?globalThis:a||self,o(a.VueEmojiToIcon={},a.LucideVueNext,a.Vue))})(this,function(a,o,r){"use strict";const g=(s,p)=>{const n=s.__vccOpts||s;for(const[m,f]of p)n[m]=f;return n},S={name:"EmojiToIcon",inheritAttrs:!1,props:{emoji:{type:String,required:!0},size:{type:Number,default:24},color:{type:String,default:"currentColor"},fill:{type:String,default:"none"},strokeWidth:{type:Number,default:2},showFallback:{type:Boolean,default:!0},iconClass:{type:String,default:""},fallbackClass:{type:String,default:"emoji-fallback"}},computed:{iconComponent(){return this.emojiToIconMap[this.emoji]||null},emojiToIconMap(){return{"๐ ":o.Home,"๐ก":o.Home,"๐ค":o.User,"๐ฅ":o.Users,"โค๏ธ":o.Heart,"๐":o.Heart,"โญ":o.Star,"๐":o.Search,"๐ฌ":o.MessageCircle,"๐ฑ":o.MessageSquare,"๐":o.Bell,"โ๏ธ":o.Settings,"โฐ":o.Menu,"โ":o.X,"โ๏ธ":o.Mail,"๐ง":o.Mail,"โ๏ธ":o.Phone,"๐":o.Phone,"๐ท":o.Camera,"๐ผ๏ธ":o.Image,"๐น":o.Video,"๐ต":o.Music,"โถ๏ธ":o.Play,"โธ๏ธ":o.Pause,"โน๏ธ":o.CircleStop,"๐
":o.Calendar,"๐":o.Clock,"๐":o.Book,"๐":o.BookOpen,"๐":o.File,"๐":o.Folder,"โ๏ธ":o.Edit,"๐๏ธ":o.Trash2,"โ":o.Plus,"โ":o.Minus,"โ
":o.Check,"โ๏ธ":o.CheckCircle,"โฌ๏ธ":o.ArrowUp,"โฌ๏ธ":o.ArrowDown,"โฌ
๏ธ":o.ArrowLeft,"โก๏ธ":o.ArrowRight,"๐ผ":o.ChevronUp,"๐ฝ":o.ChevronDown,"โ๏ธ":o.ChevronLeft,"โถ๏ธ":o.ChevronRight,"๐ค":o.Send,"๐ข":o.Share,"๐":o.Eye,"๐":o.Link,"๐":o.Paperclip,"๐พ":o.Save,"๐":o.RefreshCw,"โช๏ธ":o.RotateCw,"โฉ๏ธ":o.RotateCcw,"๐":o.ThumbsUp,"๐":o.ThumbsDown,"๐":o.Bookmark,"๐ฉ":o.Flag,"๐ฎ":o.Gamepad2,"๐ฒ":o.Dice5,"๐":o.Trophy,"๐ฅ":o.Award,"๐":o.Crown,"โก":o.Zap,"โจ":o.Sparkles,"๐ช":o.Wand2,"๐":o.Edit3Icon,"โ๏ธ":o.Sun,"๐":o.Moon,"โ๏ธ":o.Cloud,"๐ง๏ธ":o.CloudRain,"โ๏ธ":o.Snowflake,"๐ฅ":o.Flame,"๐":o.Leaf,"๐ณ":o.TreeDeciduousIcon,"๐ธ":o.Flower,"๐ฑ":o.Cat,"๐ถ":o.Dog,"๐":o.Fish,"๐ฆ":o.Bird,"๐ฐ":o.Rabbit,"๐ข":o.Turtle,"๐":o.Bug,"๐ป":o.Ghost,"โ":o.Coffee,"๐":o.Pizza,"๐ช":o.Cookie,"๐":o.Cake,"๐":o.Apple,"๐":o.Cherry,"๐":o.Grape,"๐":o.Banana,"๐":o.Smile,"๐ข":o.Frown,"๐":o.Meh,"๐ ":o.Angry,"๐ฒ":o.Meh,"โญ":o.Circle,"โฌ":o.Square,"๐บ":o.Triangle,"๐":o.Diamond,"โน๏ธ":o.Info,"โ ๏ธ":o.AlertTriangle,"๐ก๏ธ":o.Shield,"โ":o.HelpCircle,"๐":o.Lock,"๐":o.Unlock,"๐":o.Key,"๐ก๏ธ":o.Shield,"๐พ":o.Database,"๐ฅ๏ธ":o.Server,"๐ถ":o.Wifi,"๐":o.MapPin,"๐บ๏ธ":o.Map,"๐งญ":o.Compass,"๐งญ":o.Navigation,"๐":o.Globe,"๐ข":o.Building,"โฐ":o.Timer,"โฑ๏ธ":o.TimerIcon,"โณ":o.Hourglass,"๐ค":o.Type,"๐":o.Edit,"๐":o.List,"๐ข":o.ListOrdered,"๐ฌ":o.Quote,"๐ป":o.Code,"๐":o.ShoppingCart,"๐๏ธ":o.ShoppingBag,"๐ณ":o.CreditCard,"๐ฐ":o.DollarSign,"๐":o.TrendingUp,"๐":o.TrendingDown,"๐":o.Car,"๐ฒ":o.Bike,"โ๏ธ":o.Plane,"๐":o.Train,"๐ข":o.Ship,"๐":o.Rocket,"๐":o.Truck,"๐":o.Activity,"๐":o.Pill,"๐ฉบ":o.Stethoscope,"โ":o.Cross,"๐":o.GraduationCap,"โ๏ธ":o.PenTool,"๐๏ธ":o.Highlighter,"๐งฎ":o.Calculator,"โ๏ธ":o.Sword,"๐ก๏ธ":o.Swords,"๐น":o.BowArrow,"๐ฏ":o.Target,"๐":o.Scroll,"โจ":o.Sparkle,"โ":o.Dice1,"โ":o.Dice2,"โ":o.Dice3,"โ":o.Dice4,"โ":o.Dice5,"โ
":o.Dice6,"๐ง":o.Settings,"๐จ":o.Settings,"๐":o.TrendingUp,"๐":o.TrendingUp,"๐":o.TrendingDown,"๐":o.Bell,"๐":o.Bell,"๐ก":o.Info,"๐จ":o.Edit,"๐ญ":o.User,"๐ช":o.Star,"๐":o.Plug,"๐๏ธ":o.DatabaseIcon,"๐ฆ":o.Package,"๐๏ธ":o.EyeIcon,"๐
":o.Calendar,"๐":o.ClipboardIcon,"โ":o.CircleQuestionMarkIcon,"๐ง":o.Smile,"๐จโ๐ป":o.Notebook,"๐":o.Lock,"๐ซ":o.Ban,"๏ฟฝ":o.BadgeQuestionMark,์ง:o.Home,์ฌ๋:o.User,ํํธ:o.Heart,๋ณ:o.Star,๊ฒ์:o.Search,๋ฉ์์ง:o.MessageCircle,์ค์ :o.Settings,๋ฉ๋ด:o.Menu,๋ซ๊ธฐ:o.X}}}};function k(s,p,n,m,f,h){return h.iconComponent?(r.openBlock(),r.createBlock(r.resolveDynamicComponent(h.iconComponent),r.mergeProps({key:0,size:n.size,fill:n.fill,color:n.color,"stroke-width":n.strokeWidth},s.$attrs,{class:n.iconClass}),null,16,["size","fill","color","stroke-width","class"])):n.showFallback?(r.openBlock(),r.createElementBlock("span",{key:1,class:r.normalizeClass(n.fallbackClass),style:r.normalizeStyle({fontSize:n.size+"px"})},r.toDisplayString(n.emoji),7)):r.createCommentVNode("",!0)}const C=g(S,[["render",k],["__scopeId","data-v-a28618da"]]),T={install:s=>{s.component("EmojiToIcon",C)},EmojiToIcon:C};a.EmojiToIcon=C,a.default=T,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vue-emoji-to-icon",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Universal emoji to Lucide icon converter for Vue 3",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/vue-emoji-to-icon.umd.js",
|
|
7
|
+
"module": "./dist/vue-emoji-to-icon.es.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/vue-emoji-to-icon.es.js",
|
|
12
|
+
"require": "./dist/vue-emoji-to-icon.umd.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"keywords": [
|
|
21
|
+
"vue",
|
|
22
|
+
"vue3",
|
|
23
|
+
"emoji",
|
|
24
|
+
"icon",
|
|
25
|
+
"lucide",
|
|
26
|
+
"lucide-vue-next",
|
|
27
|
+
"converter",
|
|
28
|
+
"component",
|
|
29
|
+
"emoji-to-icon",
|
|
30
|
+
"icon-converter"
|
|
31
|
+
],
|
|
32
|
+
"author": "ohohOD",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "git+https://github.com/ohohOD/commu.git"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"vue": "^3.3.0"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"lucide-vue-next": "^0.548.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@vitejs/plugin-vue": "^5.0.0",
|
|
46
|
+
"vite": "^5.0.0",
|
|
47
|
+
"vite-plugin-dts": "^3.6.4",
|
|
48
|
+
"vue": "^3.3.11"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"build": "vite build",
|
|
52
|
+
"prepublishOnly": "npm run build"
|
|
53
|
+
}
|
|
54
|
+
}
|