@codemonster-ru/vueiconify 0.7.0 → 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.md +1 -1
- package/README.md +275 -0
- package/dist/index.css +1 -1
- package/dist/index.ts.mjs +2482 -337
- package/dist/index.ts.umd.js +2 -2
- package/dist/lib/components/_shared.d.ts +11 -0
- package/dist/lib/components/icon.vue.d.ts +13 -23
- package/dist/lib/iconCatalog.json.d.ts +500 -0
- package/dist/lib/iconCore.json.d.ts +59 -0
- package/dist/lib/iconDualStyleCore.json.d.ts +4 -0
- package/dist/lib/iconMeta.d.ts +26 -0
- package/dist/lib/iconMeta.json.d.ts +136 -0
- package/dist/lib/iconShowcase.json.d.ts +520 -0
- package/dist/lib/index.d.ts +3 -29
- package/package.json +35 -6
- package/dist/lib/components/bars.vue.d.ts +0 -2
- package/dist/lib/components/check.vue.d.ts +0 -2
- package/dist/lib/components/chevronDown.vue.d.ts +0 -2
- package/dist/lib/components/chevronLeft.vue.d.ts +0 -2
- package/dist/lib/components/chevronRight.vue.d.ts +0 -2
- package/dist/lib/components/chevronUp.vue.d.ts +0 -2
- package/dist/lib/components/circleHalf.vue.d.ts +0 -2
- package/dist/lib/components/circleNotch.vue.d.ts +0 -2
- package/dist/lib/components/house.vue.d.ts +0 -2
- package/dist/lib/components/magnifyingGlass.vue.d.ts +0 -2
- package/dist/lib/components/moon.vue.d.ts +0 -2
- package/dist/lib/components/rotateRight.vue.d.ts +0 -2
- package/dist/lib/components/sun.vue.d.ts +0 -2
- package/dist/lib/components/user.vue.d.ts +0 -2
- package/dist/lib/icons.json.d.ts +0 -20
- package/readme.md +0 -7
package/LICENSE.md
CHANGED
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# VueIconify
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@codemonster-ru/vueiconify)
|
|
4
|
+
[](https://www.npmjs.com/package/@codemonster-ru/vueiconify)
|
|
5
|
+
[](./LICENSE.md)
|
|
6
|
+
|
|
7
|
+
Lightweight Vue 3 icon library with a single generic `VueIconify` wrapper.
|
|
8
|
+
|
|
9
|
+
The current direction is `solid`-first: new icons are created and refined as `solid`, while the small existing `regular` layer is kept as an experimental secondary style.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @codemonster-ru/vueiconify
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Peer dependency:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install vue
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Minimum supported Vue version: `3.5.0`.
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
Generic icon component:
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<script setup lang="ts">
|
|
31
|
+
import { VueIconify, icons } from '@codemonster-ru/vueiconify';
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<VueIconify :icon="icons.calendar" />
|
|
36
|
+
<VueIconify :icon="icons.shield" :size="24" />
|
|
37
|
+
<VueIconify :icon="icons.circleNotch" spin />
|
|
38
|
+
<VueIconify icon="warning" width="24" height="24" aria-label="Warning" />
|
|
39
|
+
</template>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Category-oriented example:
|
|
43
|
+
|
|
44
|
+
```vue
|
|
45
|
+
<script setup lang="ts">
|
|
46
|
+
import { VueIconify, icons } from '@codemonster-ru/vueiconify';
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<template>
|
|
50
|
+
<VueIconify :icon="icons.arrowLeft" />
|
|
51
|
+
<VueIconify :icon="icons.copy" />
|
|
52
|
+
<VueIconify :icon="icons.folder" />
|
|
53
|
+
<VueIconify :icon="icons.info" />
|
|
54
|
+
</template>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## API
|
|
58
|
+
|
|
59
|
+
### `VueIconify`
|
|
60
|
+
|
|
61
|
+
Props:
|
|
62
|
+
|
|
63
|
+
- `icon: string` - icon name or imported token from `icons` (recommended). Invalid values fall back to `moon`.
|
|
64
|
+
- `style: 'solid' | 'regular'` - visual variant for icons that provide a regular version. Falls back to `solid` when the requested variant is unavailable.
|
|
65
|
+
- `size: string | number` - sets both `width` and `height`. Default: `16`.
|
|
66
|
+
- `spin: boolean` - applies continuous rotation animation.
|
|
67
|
+
|
|
68
|
+
Existing dual-style icons:
|
|
69
|
+
|
|
70
|
+
- `bars`
|
|
71
|
+
- `check`
|
|
72
|
+
- `xmark`
|
|
73
|
+
- `calendar`
|
|
74
|
+
- `bell`
|
|
75
|
+
- `mail`
|
|
76
|
+
- `message`
|
|
77
|
+
- `user`
|
|
78
|
+
- `lock`
|
|
79
|
+
- `gear`
|
|
80
|
+
|
|
81
|
+
Attributes:
|
|
82
|
+
|
|
83
|
+
- Standard Vue attributes are forwarded to the rendered SVG component, including `class`, `style`, `width`, `height`, `role`, and `aria-*`.
|
|
84
|
+
- Explicit `width` and `height` attributes can still be used when you need non-square sizing.
|
|
85
|
+
|
|
86
|
+
Supported icon names:
|
|
87
|
+
|
|
88
|
+
<!-- generated-category-summary:start -->
|
|
89
|
+
|
|
90
|
+
- **Movement**: 17 icons
|
|
91
|
+
- **Editing And Commands**: 21 icons
|
|
92
|
+
- **Interface Objects**: 42 icons
|
|
93
|
+
- **Status And Messaging**: 19 icons
|
|
94
|
+
|
|
95
|
+
<!-- generated-category-summary:end -->
|
|
96
|
+
|
|
97
|
+
<!-- generated-icon-names:start -->
|
|
98
|
+
|
|
99
|
+
Movement:
|
|
100
|
+
|
|
101
|
+
- `arrowDown`
|
|
102
|
+
- `arrowLeft`
|
|
103
|
+
- `arrowRight`
|
|
104
|
+
- `arrowUp`
|
|
105
|
+
- `bars`
|
|
106
|
+
- `caretDown`
|
|
107
|
+
- `caretLeft`
|
|
108
|
+
- `caretRight`
|
|
109
|
+
- `caretUp`
|
|
110
|
+
- `chevronDown`
|
|
111
|
+
- `chevronLeft`
|
|
112
|
+
- `chevronRight`
|
|
113
|
+
- `chevronUp`
|
|
114
|
+
- `collapse`
|
|
115
|
+
- `columns`
|
|
116
|
+
- `expand`
|
|
117
|
+
- `grid`
|
|
118
|
+
|
|
119
|
+
Editing And Commands:
|
|
120
|
+
|
|
121
|
+
- `check`
|
|
122
|
+
- `clipboard`
|
|
123
|
+
- `copy`
|
|
124
|
+
- `download`
|
|
125
|
+
- `ellipsis`
|
|
126
|
+
- `externalLink`
|
|
127
|
+
- `filter`
|
|
128
|
+
- `funnelX`
|
|
129
|
+
- `link`
|
|
130
|
+
- `logIn`
|
|
131
|
+
- `logOut`
|
|
132
|
+
- `minus`
|
|
133
|
+
- `pencil`
|
|
134
|
+
- `plus`
|
|
135
|
+
- `refresh`
|
|
136
|
+
- `send`
|
|
137
|
+
- `sliders`
|
|
138
|
+
- `sort`
|
|
139
|
+
- `trash`
|
|
140
|
+
- `upload`
|
|
141
|
+
- `xmark`
|
|
142
|
+
|
|
143
|
+
Interface Objects:
|
|
144
|
+
|
|
145
|
+
- `archive`
|
|
146
|
+
- `bell`
|
|
147
|
+
- `bookmark`
|
|
148
|
+
- `briefcase`
|
|
149
|
+
- `building`
|
|
150
|
+
- `calendar`
|
|
151
|
+
- `chartBar`
|
|
152
|
+
- `cloud`
|
|
153
|
+
- `code`
|
|
154
|
+
- `cpu`
|
|
155
|
+
- `creditCard`
|
|
156
|
+
- `database`
|
|
157
|
+
- `file`
|
|
158
|
+
- `fileText`
|
|
159
|
+
- `folder`
|
|
160
|
+
- `folderOpen`
|
|
161
|
+
- `gear`
|
|
162
|
+
- `globe`
|
|
163
|
+
- `hardDrive`
|
|
164
|
+
- `heart`
|
|
165
|
+
- `house`
|
|
166
|
+
- `inbox`
|
|
167
|
+
- `key`
|
|
168
|
+
- `layers`
|
|
169
|
+
- `lock`
|
|
170
|
+
- `magnifyingGlass`
|
|
171
|
+
- `mail`
|
|
172
|
+
- `message`
|
|
173
|
+
- `phone`
|
|
174
|
+
- `plug`
|
|
175
|
+
- `receipt`
|
|
176
|
+
- `server`
|
|
177
|
+
- `star`
|
|
178
|
+
- `terminal`
|
|
179
|
+
- `unlock`
|
|
180
|
+
- `user`
|
|
181
|
+
- `userCheck`
|
|
182
|
+
- `userMinus`
|
|
183
|
+
- `userPlus`
|
|
184
|
+
- `users`
|
|
185
|
+
- `share`
|
|
186
|
+
- `wallet`
|
|
187
|
+
|
|
188
|
+
Status And Messaging:
|
|
189
|
+
|
|
190
|
+
- `activity`
|
|
191
|
+
- `alertCircle`
|
|
192
|
+
- `ban`
|
|
193
|
+
- `checkCircle`
|
|
194
|
+
- `circleHalf`
|
|
195
|
+
- `circleNotch`
|
|
196
|
+
- `clock`
|
|
197
|
+
- `eye`
|
|
198
|
+
- `eyeSlash`
|
|
199
|
+
- `history`
|
|
200
|
+
- `info`
|
|
201
|
+
- `moon`
|
|
202
|
+
- `question`
|
|
203
|
+
- `rotateRight`
|
|
204
|
+
- `shield`
|
|
205
|
+
- `sparkles`
|
|
206
|
+
- `sun`
|
|
207
|
+
- `warning`
|
|
208
|
+
- `xCircle`
|
|
209
|
+
|
|
210
|
+
<!-- generated-icon-names:end -->
|
|
211
|
+
|
|
212
|
+
## Available Exports
|
|
213
|
+
|
|
214
|
+
Primary exports:
|
|
215
|
+
|
|
216
|
+
<!-- generated-exports:start -->
|
|
217
|
+
|
|
218
|
+
- `VueIconify`
|
|
219
|
+
- `icons`
|
|
220
|
+
|
|
221
|
+
<!-- generated-exports:end -->
|
|
222
|
+
|
|
223
|
+
## Design Principles
|
|
224
|
+
|
|
225
|
+
- Icons follow a custom UI-solid style built for compact product interfaces.
|
|
226
|
+
- Shapes use soft geometry, large negative space, and readable silhouettes at `16px` and `20px`.
|
|
227
|
+
- The set avoids tracing or reproducing third-party icon paths and keeps its own proportions and corner treatment.
|
|
228
|
+
- New icons should be checked for optical balance, consistent thickness, and clear meaning before merge.
|
|
229
|
+
|
|
230
|
+
## Core Set
|
|
231
|
+
|
|
232
|
+
- The preferred starter set for product UIs is defined in [`src/lib/iconCore.json`](./src/lib/iconCore.json).
|
|
233
|
+
- It is intentionally smaller than the full pack and biased toward SaaS/admin dashboards, forms, tables, auth, billing, messaging, and infrastructure views.
|
|
234
|
+
- Semantic guidance for near-duplicates lives in [`docs/icon-audit.md`](./docs/icon-audit.md).
|
|
235
|
+
|
|
236
|
+
The public API intentionally uses a single rendering entry point:
|
|
237
|
+
|
|
238
|
+
- use `VueIconify` for rendering
|
|
239
|
+
- pass icon tokens from `icons` to the `icon` prop
|
|
240
|
+
|
|
241
|
+
## Development
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
npm ci
|
|
245
|
+
npm run create-icon -- alertTriangle feedback
|
|
246
|
+
npm run generate
|
|
247
|
+
npm run validate-icons
|
|
248
|
+
npm run lint
|
|
249
|
+
npm run typecheck
|
|
250
|
+
npm run build
|
|
251
|
+
npm run smoke
|
|
252
|
+
npm run render
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
`npm run create-icon -- <iconName> <categoryId>` scaffolds a new `solid` icon component, registers it in `src/lib/iconMeta.json`, and seeds title/keyword metadata in `src/lib/iconCatalog.json`.
|
|
256
|
+
|
|
257
|
+
`npm run validate-icons` fails if metadata, catalog entries, generated exports, `icons.json`, or README blocks are out of sync.
|
|
258
|
+
|
|
259
|
+
`npm run render` mounts a few public icons through Vue SSR to catch runtime regressions in the published bundle.
|
|
260
|
+
|
|
261
|
+
## Releases
|
|
262
|
+
|
|
263
|
+
- Create a changeset with `npm run changeset` for every user-facing change.
|
|
264
|
+
- Merge changesets into `main` and let the release workflow open or update the version PR.
|
|
265
|
+
- When the version PR is merged, Changesets publishes to npm and creates the GitHub Release automatically.
|
|
266
|
+
|
|
267
|
+
## Showcase
|
|
268
|
+
|
|
269
|
+
- `npm run dev` starts the local showcase.
|
|
270
|
+
- `npm run build:showcase` builds the demo app.
|
|
271
|
+
- The showcase is local-only for now and can later be embedded into your own site.
|
|
272
|
+
|
|
273
|
+
## License
|
|
274
|
+
|
|
275
|
+
[MIT](./LICENSE.md)
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.vif-icon_animations_spin[data-v-33e2b5c9]{animation-name:vif-spin-33e2b5c9;animation-delay:0s;animation-duration:2s;animation-direction:normal;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes vif-spin-33e2b5c9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|