@dubium/icons 0.0.2-alpha.3 → 0.0.2-alpha.4
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/README.md +286 -49
- package/dist/collection/AdjustmentsPlusIcon.d.ts +3 -0
- package/dist/collection/{Icon123Icon.js → AdjustmentsPlusIcon.js} +3 -3
- package/dist/collection/AdjustmentsQuestionIcon.d.ts +3 -0
- package/dist/collection/AdjustmentsQuestionIcon.js +18 -0
- package/dist/collection/AlarmPlusFilledIcon.d.ts +3 -0
- package/dist/collection/AlarmPlusFilledIcon.js +29 -0
- package/dist/collection/AlarmSnoozeFilledIcon.d.ts +3 -0
- package/dist/collection/AlarmSnoozeFilledIcon.js +29 -0
- package/dist/collection/{Icon360ViewIcon.d.ts → AlarmSnoozeIcon.d.ts} +2 -2
- package/dist/collection/{Icon360Icon.js → AlarmSnoozeIcon.js} +3 -3
- package/dist/collection/AlbumIcon.d.ts +3 -0
- package/dist/collection/{Icon24HoursIcon.js → AlbumIcon.js} +3 -3
- package/dist/collection/AlbumOffIcon.d.ts +3 -0
- package/dist/collection/AlbumOffIcon.js +18 -0
- package/dist/collection/AlertCircleFilledIcon.d.ts +3 -0
- package/dist/collection/AlertCircleFilledIcon.js +15 -0
- package/dist/collection/{Icon24HoursIcon.d.ts → AlertCircleIcon.d.ts} +2 -2
- package/dist/collection/{Icon2faIcon.js → AlertCircleIcon.js} +3 -3
- package/dist/collection/AlertHexagonIcon.d.ts +3 -0
- package/dist/collection/AlertHexagonIcon.js +18 -0
- package/dist/collection/AlignBoxBottomRightFilledIcon.d.ts +3 -0
- package/dist/collection/AlignBoxBottomRightFilledIcon.js +15 -0
- package/dist/collection/AlignBoxBottomRightIcon.d.ts +3 -0
- package/dist/collection/AlignBoxBottomRightIcon.js +18 -0
- package/dist/collection/AlignBoxCenterMiddleFilledIcon.d.ts +3 -0
- package/dist/collection/AlignBoxCenterMiddleFilledIcon.js +15 -0
- package/dist/collection/AlignBoxCenterMiddleIcon.d.ts +3 -0
- package/dist/collection/AlignBoxCenterMiddleIcon.js +18 -0
- package/dist/collection/AlignBoxLeftBottomFilledIcon.d.ts +3 -0
- package/dist/collection/AlignBoxLeftBottomFilledIcon.js +15 -0
- package/dist/collection/AlignBoxLeftBottomIcon.d.ts +3 -0
- package/dist/collection/AlignBoxLeftBottomIcon.js +18 -0
- package/dist/collection/AlignBoxLeftMiddleFilledIcon.d.ts +3 -0
- package/dist/collection/AlignBoxLeftMiddleFilledIcon.js +15 -0
- package/dist/collection/AlignBoxLeftMiddleIcon.d.ts +3 -0
- package/dist/collection/AlignBoxLeftMiddleIcon.js +18 -0
- package/dist/collection/index.d.ts +20 -7
- package/dist/collection/index.js +19 -6
- package/dist/collection/types.d.ts +17 -1
- package/dist/icon/Icon.container.d.ts +29 -0
- package/dist/icon/Icon.container.js +19 -0
- package/dist/icon/Icon.d.ts +5 -0
- package/dist/icon/Icon.js +20 -0
- package/dist/icon/Icon.types.d.ts +59 -0
- package/dist/icon/index.d.ts +13 -0
- package/dist/icon/index.js +2 -0
- package/dist/vite/icon/Icon.create.d.ts +35 -0
- package/dist/{spa → vite}/icon/Icon.create.js +1 -1
- package/dist/vite/icon/Icon.d.ts +66 -0
- package/dist/vite/icon/Icon.js +79 -0
- package/dist/vite/icon/Icon.types.d.ts +88 -0
- package/dist/vite/icon/index.d.ts +6 -0
- package/dist/vite/index.d.ts +10 -46
- package/dist/vite/index.js +6 -167
- package/dist/vite/plugin/index.d.ts +11 -0
- package/dist/vite/plugin/index.js +2 -0
- package/dist/vite/plugin/plugin.d.ts +41 -0
- package/dist/vite/plugin/plugin.js +105 -0
- package/dist/vite/plugin/plugin.types.d.ts +99 -0
- package/dist/vite/plugin/scanner/index.d.ts +9 -0
- package/dist/vite/plugin/scanner/scanner.imports.d.ts +5 -0
- package/dist/vite/plugin/scanner/scanner.imports.js +36 -0
- package/dist/vite/plugin/scanner/scanner.jsx.d.ts +24 -0
- package/dist/vite/plugin/scanner/scanner.jsx.js +58 -0
- package/dist/vite/plugin/scanner/scanner.lexical.d.ts +30 -0
- package/dist/vite/plugin/scanner/scanner.lexical.js +140 -0
- package/dist/vite/plugin/scanner/scanner.properties.d.ts +9 -0
- package/dist/vite/plugin/scanner/scanner.properties.js +78 -0
- package/dist/vite/plugin/scanner/scanner.regex.d.ts +21 -0
- package/dist/vite/plugin/scanner/scanner.regex.js +24 -0
- package/dist/vite/plugin/scanner/scanner.source.d.ts +18 -0
- package/dist/vite/plugin/scanner/scanner.source.js +23 -0
- package/dist/vite/plugin/scanner/scanner.types.d.ts +1 -0
- package/dist/vite/plugin/sources/index.d.ts +11 -0
- package/dist/vite/plugin/sources/sources.catalog.d.ts +17 -0
- package/dist/vite/plugin/sources/sources.catalog.js +19 -0
- package/dist/vite/plugin/sources/sources.files.d.ts +34 -0
- package/dist/vite/plugin/sources/sources.files.js +43 -0
- package/dist/vite/plugin/sources/sources.types.d.ts +1 -0
- package/dist/vite/plugin/sources/sources.validate.d.ts +13 -0
- package/dist/vite/plugin/sources/sources.validate.js +12 -0
- package/dist/vite/plugin/virtual/index.d.ts +9 -0
- package/dist/vite/plugin/virtual/virtual.constants.d.ts +15 -0
- package/dist/vite/plugin/virtual/virtual.constants.js +4 -0
- package/dist/vite/plugin/virtual/virtual.module.d.ts +23 -0
- package/dist/vite/plugin/virtual/virtual.module.js +27 -0
- package/dist/vite/provider/IconProvider.context.d.ts +14 -0
- package/dist/vite/provider/IconProvider.context.js +5 -0
- package/dist/{spa → vite}/provider/IconProvider.d.ts +3 -2
- package/dist/{spa → vite}/provider/IconProvider.js +1 -1
- package/dist/{spa → vite}/provider/index.d.ts +2 -2
- package/dist/{spa/provider/IconProvider.context.d.ts → vite/provider/useIconContext.d.ts} +4 -14
- package/dist/vite/provider/useIconContext.js +6 -0
- package/dist/vite/runtime/IconRuntime.registry.d.ts +54 -0
- package/dist/vite/runtime/IconRuntime.registry.js +58 -0
- package/dist/vite/runtime/index.d.ts +9 -0
- package/package.json +17 -17
- package/dist/collection/Icon123Icon.d.ts +0 -3
- package/dist/collection/Icon2faIcon.d.ts +0 -3
- package/dist/collection/Icon360Icon.d.ts +0 -3
- package/dist/collection/Icon360ViewIcon.js +0 -18
- package/dist/spa/icon/Icon.create.d.ts +0 -40
- package/dist/spa/icon/Icon.d.ts +0 -25
- package/dist/spa/icon/Icon.js +0 -58
- package/dist/spa/icon/Icon.registry.d.ts +0 -12
- package/dist/spa/icon/Icon.types.d.ts +0 -71
- package/dist/spa/icon/index.d.ts +0 -9
- package/dist/spa/index.d.ts +0 -8
- package/dist/spa/index.js +0 -5
- package/dist/spa/provider/IconProvider.context.js +0 -5
- package/dist/ssr/icon/Icon.container.d.ts +0 -26
- package/dist/ssr/icon/Icon.container.js +0 -23
- package/dist/ssr/icon/Icon.create.d.ts +0 -35
- package/dist/ssr/icon/Icon.create.js +0 -8
- package/dist/ssr/icon/Icon.d.ts +0 -6
- package/dist/ssr/icon/Icon.js +0 -27
- package/dist/ssr/icon/Icon.registry.d.ts +0 -12
- package/dist/ssr/icon/Icon.registry.js +0 -10
- package/dist/ssr/icon/Icon.types.d.ts +0 -97
- package/dist/ssr/icon/index.d.ts +0 -10
- package/dist/ssr/index.d.ts +0 -6
- package/dist/ssr/index.js +0 -4
- /package/dist/{spa → vite}/provider/IconProvider.types.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,101 +1,338 @@
|
|
|
1
|
+
# Способы использования иконок
|
|
1
2
|
|
|
3
|
+
В `@dubium/icons` есть два способа использовать иконки:
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
1. напрямую импортировать React-компонент;
|
|
6
|
+
2. использовать строковое имя через Vite plugin.
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
Если сборщик проекта — **Vite**, доступны оба способа.
|
|
9
|
+
|
|
10
|
+
Если используется **другой сборщик**, используйте прямой импорт.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Содержание
|
|
15
|
+
|
|
16
|
+
- [Способы использования иконок](#способы-использования-иконок)
|
|
17
|
+
- [Содержание](#содержание)
|
|
18
|
+
- [1. Прямой импорт](#1-прямой-импорт)
|
|
19
|
+
- [Когда использовать](#когда-использовать)
|
|
20
|
+
- [2. Сборщик Vite](#2-сборщик-vite)
|
|
21
|
+
- [Подключение plugin](#подключение-plugin)
|
|
22
|
+
- [Что делает plugin](#что-делает-plugin)
|
|
23
|
+
- [Зачем нужен registry](#зачем-нужен-registry)
|
|
24
|
+
- [Cache](#cache)
|
|
25
|
+
- [Строковые имена в конфигурациях](#строковые-имена-в-конфигурациях)
|
|
26
|
+
- [Прямой импорт и Vite API можно использовать вместе](#прямой-импорт-и-vite-api-можно-использовать-вместе)
|
|
27
|
+
- [3. Другие сборщики](#3-другие-сборщики)
|
|
28
|
+
- [4. Что выбрать](#4-что-выбрать)
|
|
29
|
+
- [Сборщик Vite](#сборщик-vite)
|
|
30
|
+
- [Другой сборщик](#другой-сборщик)
|
|
31
|
+
- [Коротко](#коротко)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 1. Прямой импорт
|
|
36
|
+
|
|
37
|
+
Если нужная иконка известна прямо в коде, импортируйте её как обычный React-компонент:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
41
|
+
import { Icon } from "@dubium/icons/icon"
|
|
42
|
+
|
|
43
|
+
export const Profile = () => <Icon name={UserIcon} />
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Сборщик видит прямой импорт `UserIcon` и добавляет в build нужную иконку.
|
|
47
|
+
|
|
48
|
+
Вся коллекция иконок для этого не подключается.
|
|
49
|
+
|
|
50
|
+
Этот вариант не зависит от Vite и подходит для других сборщиков.
|
|
51
|
+
|
|
52
|
+
### Когда использовать
|
|
53
|
+
|
|
54
|
+
Используйте прямой импорт, если иконка заранее известна в коде:
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { SearchIcon } from "@dubium/icons/icons"
|
|
58
|
+
import { Icon } from "@dubium/icons/icon"
|
|
59
|
+
|
|
60
|
+
return <Icon name={SearchIcon} />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Для такого использования `dubiumIcons()` не нужен.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 2. Сборщик Vite
|
|
68
|
+
|
|
69
|
+
Если проект собирается через Vite, кроме прямого импорта можно использовать иконки по строковому имени:
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
<Icon name="User" />
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Для этого используется `@dubium/icons/vite`.
|
|
76
|
+
|
|
77
|
+
### Подключение plugin
|
|
78
|
+
|
|
79
|
+
Добавьте `dubiumIcons()` в `vite.config.ts`:
|
|
6
80
|
|
|
7
81
|
```ts
|
|
8
|
-
// vite.config.ts
|
|
9
82
|
import react from "@vitejs/plugin-react"
|
|
10
83
|
import { defineConfig } from "vite"
|
|
11
|
-
|
|
84
|
+
|
|
85
|
+
import { dubiumIcons } from "@dubium/icons/vite/plugin"
|
|
12
86
|
|
|
13
87
|
export default defineConfig({
|
|
14
|
-
plugins: [
|
|
15
|
-
dubiumIcons(),
|
|
16
|
-
react(),
|
|
17
|
-
],
|
|
88
|
+
plugins: [dubiumIcons(), react()],
|
|
18
89
|
})
|
|
19
90
|
```
|
|
20
91
|
|
|
21
|
-
После этого
|
|
92
|
+
После этого можно использовать:
|
|
22
93
|
|
|
23
94
|
```tsx
|
|
24
|
-
|
|
95
|
+
<Icon name="User" />
|
|
96
|
+
<Icon name="Search" />
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Что делает plugin
|
|
25
100
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
101
|
+
Plugin **не сканирует всю коллекцию иконок**.
|
|
102
|
+
|
|
103
|
+
Он проходит по исходникам приложения и ищет используемые строковые имена.
|
|
104
|
+
|
|
105
|
+
Например:
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
<Icon name="User" />
|
|
109
|
+
<Icon name="Search" />
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Plugin найдёт только **статически указанные** имена:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
User
|
|
116
|
+
Search
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Такое значение можно определить во время сборки:
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
<Icon name="User" /> // найдёт
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
А конкретное значение здесь заранее неизвестно:
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
<Icon name={iconName} /> // заранее определить не сможет
|
|
32
129
|
```
|
|
33
130
|
|
|
34
|
-
|
|
35
|
-
|
|
131
|
+
Для найденных статических имён plugin создаёт registry.
|
|
132
|
+
|
|
133
|
+
Упрощённо:
|
|
36
134
|
|
|
37
135
|
```ts
|
|
38
|
-
{
|
|
39
|
-
User: () => import("@dubium/icons/icons/User"),
|
|
136
|
+
export const iconRegistry = {
|
|
40
137
|
Search: () => import("@dubium/icons/icons/Search"),
|
|
138
|
+
User: () => import("@dubium/icons/icons/User"),
|
|
41
139
|
}
|
|
42
140
|
```
|
|
43
141
|
|
|
44
|
-
|
|
142
|
+
Если другие иконки из библиотеки в проекте не используются, в registry они не попадут.
|
|
45
143
|
|
|
46
|
-
###
|
|
144
|
+
### Зачем нужен registry
|
|
47
145
|
|
|
48
|
-
|
|
49
|
-
Перечислите допустимые runtime-иконки вручную:
|
|
146
|
+
При прямом импорте сборщик уже знает, какая иконка нужна:
|
|
50
147
|
|
|
51
148
|
```ts
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
149
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Но здесь:
|
|
153
|
+
|
|
154
|
+
```tsx
|
|
155
|
+
<Icon name="User" />
|
|
55
156
|
```
|
|
56
157
|
|
|
57
|
-
|
|
158
|
+
`"User"` — обычная строка.
|
|
159
|
+
|
|
160
|
+
Plugin связывает строковое имя с нужным модулем:
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
User → @dubium/icons/icons/User
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Для каждой найденной иконки создаётся отдельный dynamic `import()`:
|
|
58
167
|
|
|
59
168
|
```ts
|
|
60
|
-
|
|
61
|
-
include: ["User", "Search"],
|
|
62
|
-
strictDynamicNames: true,
|
|
63
|
-
})
|
|
169
|
+
return () => import("@dubium/icons/icons/User")
|
|
64
170
|
```
|
|
65
171
|
|
|
66
|
-
|
|
172
|
+
Поэтому строковый API не требует подключать всю коллекцию иконок.
|
|
173
|
+
|
|
174
|
+
### Cache
|
|
175
|
+
|
|
176
|
+
После загрузки иконка сохраняется в памяти приложения.
|
|
177
|
+
|
|
178
|
+
Если `User` уже был загружен, при следующем использовании:
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
<Icon name="User" />
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
готовый React-компонент берётся из cache.
|
|
185
|
+
|
|
186
|
+
Важно не путать:
|
|
187
|
+
|
|
188
|
+
- **registry** хранит информацию о том, как загрузить иконку;
|
|
189
|
+
- **cache** хранит уже загруженный React-компонент.
|
|
190
|
+
|
|
191
|
+
### Строковые имена в конфигурациях
|
|
192
|
+
|
|
193
|
+
Строковый API удобен, когда имя иконки находится в конфигурации.
|
|
194
|
+
|
|
195
|
+
Чтобы plugin искал такие значения, укажите название свойства в `propertyNames`:
|
|
67
196
|
|
|
68
197
|
```ts
|
|
69
198
|
dubiumIcons({
|
|
70
|
-
|
|
199
|
+
propertyNames: ["iconName"],
|
|
71
200
|
})
|
|
72
201
|
```
|
|
73
202
|
|
|
203
|
+
После этого:
|
|
74
204
|
|
|
205
|
+
```ts
|
|
206
|
+
const menu = [
|
|
207
|
+
{
|
|
208
|
+
title: "Profile",
|
|
209
|
+
iconName: "User",
|
|
210
|
+
},
|
|
211
|
+
]
|
|
212
|
+
```
|
|
75
213
|
|
|
76
|
-
|
|
214
|
+
статическое значение `User` будет найдено и добавлено в registry.
|
|
77
215
|
|
|
78
|
-
|
|
216
|
+
### Прямой импорт и Vite API можно использовать вместе
|
|
79
217
|
|
|
80
|
-
|
|
81
|
-
- `24-hours.svg` → `Icon24HoursIcon`
|
|
82
|
-
- `2fa.svg` → `Icon2faIcon`
|
|
83
|
-
- `360-view.svg` → `Icon360ViewIcon`
|
|
84
|
-
- `360.svg` → `Icon360Icon`
|
|
218
|
+
Если сборщик — Vite, не обязательно выбирать только один способ.
|
|
85
219
|
|
|
86
|
-
|
|
220
|
+
Часть иконок можно импортировать напрямую:
|
|
87
221
|
|
|
88
222
|
```tsx
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
223
|
+
import { CompanyLogoIcon } from "@dubium/icons/icons"
|
|
224
|
+
import { Icon as BaseIcon } from "@dubium/icons/icon"
|
|
91
225
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
226
|
+
return <BaseIcon name={CompanyLogoIcon} />
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
а часть использовать по строковому имени:
|
|
230
|
+
|
|
231
|
+
```tsx
|
|
232
|
+
<Icon name="User" />
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Оба способа добавляют только необходимые приложению иконки, но делают это по-разному.
|
|
236
|
+
|
|
237
|
+
| | Прямой импорт | Vite API |
|
|
238
|
+
| -------------------- | -------------------------- | -------------------------- |
|
|
239
|
+
| Использование | `<Icon name={UserIcon} />` | `<Icon name="User" />` |
|
|
240
|
+
| Как находится иконка | обычный import | plugin сканирует исходники |
|
|
241
|
+
| Registry | не нужен | создаётся автоматически |
|
|
242
|
+
| Lazy loading | нет | dynamic `import()` |
|
|
243
|
+
| Нужен Vite | нет | да |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 3. Другие сборщики
|
|
248
|
+
|
|
249
|
+
Если проект использует не Vite, а другой сборщик, используйте прямой импорт:
|
|
250
|
+
|
|
251
|
+
```tsx
|
|
252
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
253
|
+
import { Icon } from "@dubium/icons/icon"
|
|
254
|
+
|
|
255
|
+
return <Icon name={UserIcon} />
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Для этого варианта не нужны:
|
|
259
|
+
|
|
260
|
+
- `dubiumIcons()`;
|
|
261
|
+
- Vite plugin;
|
|
262
|
+
- compile-time registry.
|
|
263
|
+
|
|
264
|
+
Иконка импортируется как обычный React-компонент, а сборщик добавляет её в build стандартным способом.
|
|
265
|
+
|
|
266
|
+
Строковый API:
|
|
267
|
+
|
|
268
|
+
```tsx
|
|
269
|
+
<Icon name="User" />
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
требует Vite plugin, поэтому с другими сборщиками этот вариант не используется.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 4. Что выбрать
|
|
277
|
+
|
|
278
|
+
### Сборщик Vite
|
|
279
|
+
|
|
280
|
+
Доступны оба варианта.
|
|
281
|
+
|
|
282
|
+
Если иконка известна прямо в коде:
|
|
283
|
+
|
|
284
|
+
```tsx
|
|
285
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
286
|
+
import { Icon } from "@dubium/icons/icon"
|
|
287
|
+
|
|
288
|
+
return <Icon name={UserIcon} />
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
используйте прямой импорт.
|
|
292
|
+
|
|
293
|
+
Если нужно работать со строковым именем:
|
|
294
|
+
|
|
295
|
+
```tsx
|
|
296
|
+
<Icon name="User" />
|
|
95
297
|
```
|
|
96
298
|
|
|
97
|
-
|
|
299
|
+
используйте Vite API.
|
|
300
|
+
|
|
301
|
+
### Другой сборщик
|
|
302
|
+
|
|
303
|
+
Используйте прямой импорт:
|
|
304
|
+
|
|
305
|
+
```tsx
|
|
306
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
307
|
+
import { Icon } from "@dubium/icons/icon"
|
|
308
|
+
|
|
309
|
+
return <Icon name={UserIcon} />
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
# Коротко
|
|
315
|
+
|
|
316
|
+
| Сборщик | Прямой импорт | Строковый API |
|
|
317
|
+
| --------------- | ------------- | ------------- |
|
|
318
|
+
| Vite | ✅ | ✅ |
|
|
319
|
+
| Другие сборщики | ✅ | ❌ |
|
|
320
|
+
|
|
321
|
+
Для Vite:
|
|
322
|
+
|
|
323
|
+
```tsx
|
|
324
|
+
// Прямой импорт
|
|
325
|
+
<Icon name={UserIcon} />
|
|
326
|
+
|
|
327
|
+
// Или строковый API
|
|
328
|
+
<Icon name="User" />
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Для других сборщиков:
|
|
98
332
|
|
|
99
333
|
```tsx
|
|
100
|
-
import
|
|
334
|
+
import { UserIcon } from "@dubium/icons/icons"
|
|
335
|
+
import { Icon } from "@dubium/icons/icon"
|
|
336
|
+
|
|
337
|
+
return <Icon name={UserIcon} />
|
|
101
338
|
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
//#region src/icons/collection/
|
|
2
|
+
//#region src/icons/collection/AdjustmentsPlusIcon.tsx
|
|
3
3
|
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
4
|
...n,
|
|
5
5
|
fill: "none",
|
|
@@ -11,8 +11,8 @@ var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__
|
|
|
11
11
|
strokeLinecap: "round",
|
|
12
12
|
strokeLinejoin: "round",
|
|
13
13
|
strokeWidth: "2",
|
|
14
|
-
d: "
|
|
14
|
+
d: "M6 12a2 2 0 1 1 0-4m0 4a2 2 0 1 0 0-4m0 4v8M6 8V4m7.958 11.592A2 2 0 1 0 12 18v2m0-16v10m6-5a2 2 0 0 1 0-4m0 4a2 2 0 0 0 0-4m0 4v3m0-7V4m-2 15h6m-3-3v6"
|
|
15
15
|
})
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
18
|
-
export { t as
|
|
18
|
+
export { t as AdjustmentsPlusIcon, t as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AdjustmentsQuestionIcon.tsx
|
|
3
|
+
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
|
+
...n,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: /* @__PURE__ */ e("path", {
|
|
10
|
+
stroke: t,
|
|
11
|
+
strokeLinecap: "round",
|
|
12
|
+
strokeLinejoin: "round",
|
|
13
|
+
strokeWidth: "2",
|
|
14
|
+
d: "M6 12a2 2 0 1 1 0-4m0 4a2 2 0 1 0 0-4m0 4v8M6 8V4m7.577 10.77a2 2 0 1 0 .117 2.295M12 4v10m7 8v.01M19 19a2.003 2.003 0 0 0 .914-3.782 1.98 1.98 0 0 0-2.414.483M12 18v2m6-11a2 2 0 0 1 0-4m0 4a2 2 0 0 0 0-4m0 4v2m0-6V4"
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { t as AdjustmentsQuestionIcon, t as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AlarmPlusFilledIcon.tsx
|
|
3
|
+
var n = ({ color: n = "var(--icon-color, currentColor)", secondaryColor: r = "var(--icon-secondary-color, currentColor)", ...i }) => /* @__PURE__ */ t("svg", {
|
|
4
|
+
...i,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: [
|
|
10
|
+
/* @__PURE__ */ e("path", {
|
|
11
|
+
fill: n,
|
|
12
|
+
d: "M16 6.072a8 8 0 1 1-11.995 7.213L4 13l.005-.285A8 8 0 0 1 16 6.072M12 10a1 1 0 0 0-1 1v1h-1l-.117.007A1 1 0 0 0 10 14h1v1l.007.117A1 1 0 0 0 13 15v-1h1l.117-.007A1 1 0 0 0 14 12h-1v-1l-.007-.117A1 1 0 0 0 12 10"
|
|
13
|
+
}),
|
|
14
|
+
/* @__PURE__ */ e("path", {
|
|
15
|
+
fill: n,
|
|
16
|
+
d: "M6.412 3.191a1 1 0 0 1 1.273 1.54l-.097.08-2.75 2a1 1 0 0 1-1.273-1.54l.097-.08zm9.779.221a1 1 0 0 1 1.291-.288l.106.067 2.75 2a1 1 0 0 1-1.07 1.685l-.106-.067-2.75-2a1 1 0 0 1-.221-1.397"
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ e("path", {
|
|
19
|
+
stroke: r,
|
|
20
|
+
d: "M16 6.072a8 8 0 1 1-11.995 7.213L4 13l.005-.285A8 8 0 0 1 16 6.072ZM12 10a1 1 0 0 0-1 1v1h-1l-.117.007A1 1 0 0 0 10 14h1v1l.007.117A1 1 0 0 0 13 15v-1h1l.117-.007A1 1 0 0 0 14 12h-1v-1l-.007-.117A1 1 0 0 0 12 10Z"
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ e("path", {
|
|
23
|
+
stroke: r,
|
|
24
|
+
d: "M6.412 3.191a1 1 0 0 1 1.273 1.54l-.097.08-2.75 2a1 1 0 0 1-1.273-1.54l.097-.08zm9.779.221a1 1 0 0 1 1.291-.288l.106.067 2.75 2a1 1 0 0 1-1.07 1.685l-.106-.067-2.75-2a1 1 0 0 1-.221-1.397Z"
|
|
25
|
+
})
|
|
26
|
+
]
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
export { n as AlarmPlusFilledIcon, n as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AlarmSnoozeFilledIcon.tsx
|
|
3
|
+
var n = ({ color: n = "var(--icon-color, currentColor)", secondaryColor: r = "var(--icon-secondary-color, currentColor)", ...i }) => /* @__PURE__ */ t("svg", {
|
|
4
|
+
...i,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: [
|
|
10
|
+
/* @__PURE__ */ e("path", {
|
|
11
|
+
fill: n,
|
|
12
|
+
d: "M16 6.072a8 8 0 1 1-11.995 7.213L4 13l.005-.285A8 8 0 0 1 16 6.072M14 10h-4l-.117.007A1 1 0 0 0 9 11l.007.117A1 1 0 0 0 10 12h1.584l-2.291 2.293-.076.084C8.703 15.014 9.147 16 10 16h4l.117-.007A1 1 0 0 0 15 15l-.007-.117A1 1 0 0 0 14 14h-1.586l2.293-2.293.076-.084c.514-.637.07-1.623-.783-1.623"
|
|
13
|
+
}),
|
|
14
|
+
/* @__PURE__ */ e("path", {
|
|
15
|
+
fill: n,
|
|
16
|
+
d: "M6.412 3.191a1 1 0 0 1 1.273 1.54l-.097.08-2.75 2a1 1 0 0 1-1.273-1.54l.097-.08zm9.779.221a1 1 0 0 1 1.291-.288l.106.067 2.75 2a1 1 0 0 1-1.07 1.685l-.106-.067-2.75-2a1 1 0 0 1-.221-1.397"
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ e("path", {
|
|
19
|
+
stroke: r,
|
|
20
|
+
d: "M16 6.072a8 8 0 1 1-11.995 7.213L4 13l.005-.285A8 8 0 0 1 16 6.072ZM14 10h-4l-.117.007A1 1 0 0 0 9 11l.007.117A1 1 0 0 0 10 12h1.584l-2.291 2.293-.076.084C8.703 15.014 9.147 16 10 16h4l.117-.007A1 1 0 0 0 15 15l-.007-.117A1 1 0 0 0 14 14h-1.586l2.293-2.293.076-.084c.514-.637.07-1.623-.783-1.623Z"
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ e("path", {
|
|
23
|
+
stroke: r,
|
|
24
|
+
d: "M6.412 3.191a1 1 0 0 1 1.273 1.54l-.097.08-2.75 2a1 1 0 0 1-1.273-1.54l.097-.08zm9.779.221a1 1 0 0 1 1.291-.288l.106.067 2.75 2a1 1 0 0 1-1.07 1.685l-.106-.067-2.75-2a1 1 0 0 1-.221-1.397Z"
|
|
25
|
+
})
|
|
26
|
+
]
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
export { n as AlarmSnoozeFilledIcon, n as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { IIconComponentProps } from "./types.js";
|
|
2
|
-
export declare const
|
|
3
|
-
export default
|
|
2
|
+
export declare const AlarmSnoozeIcon: ({ color, ...props }: IIconComponentProps) => import("react").JSX.Element;
|
|
3
|
+
export default AlarmSnoozeIcon;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
//#region src/icons/collection/
|
|
2
|
+
//#region src/icons/collection/AlarmSnoozeIcon.tsx
|
|
3
3
|
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
4
|
...n,
|
|
5
5
|
fill: "none",
|
|
@@ -11,8 +11,8 @@ var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__
|
|
|
11
11
|
strokeLinecap: "round",
|
|
12
12
|
strokeLinejoin: "round",
|
|
13
13
|
strokeWidth: "2",
|
|
14
|
-
d: "
|
|
14
|
+
d: "M10 11h4l-4 4h4M7 4 4.25 6M17 4l2.75 2M5 13a7 7 0 1 0 14 0 7 7 0 0 0-14 0"
|
|
15
15
|
})
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
18
|
-
export { t as
|
|
18
|
+
export { t as AlarmSnoozeIcon, t as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
//#region src/icons/collection/
|
|
2
|
+
//#region src/icons/collection/AlbumIcon.tsx
|
|
3
3
|
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
4
|
...n,
|
|
5
5
|
fill: "none",
|
|
@@ -11,8 +11,8 @@ var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__
|
|
|
11
11
|
strokeLinecap: "round",
|
|
12
12
|
strokeLinejoin: "round",
|
|
13
13
|
strokeWidth: "2",
|
|
14
|
-
d: "
|
|
14
|
+
d: "M12 4v7l2-2 2 2V4M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z"
|
|
15
15
|
})
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
18
|
-
export { t as
|
|
18
|
+
export { t as AlbumIcon, t as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AlbumOffIcon.tsx
|
|
3
|
+
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
|
+
...n,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: /* @__PURE__ */ e("path", {
|
|
10
|
+
stroke: t,
|
|
11
|
+
strokeLinecap: "round",
|
|
12
|
+
strokeLinejoin: "round",
|
|
13
|
+
strokeWidth: "2",
|
|
14
|
+
d: "M8 4h10a2 2 0 0 1 2 2v10m-.581 3.41c-.362.364-.864.59-1.419.59H6a2 2 0 0 1-2-2V6c0-.552.224-1.052.585-1.413M12 4v4m1.503 1.497L14 9l2 2V4M3 3l18 18"
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { t as AlbumOffIcon, t as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AlertCircleFilledIcon.tsx
|
|
3
|
+
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
|
+
...n,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: /* @__PURE__ */ e("path", {
|
|
10
|
+
fill: t,
|
|
11
|
+
d: "M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34M12.01 15l-.127.007a1 1 0 0 0 0 1.986L12 17l.127-.007a1 1 0 0 0 0-1.986zM12 7a1 1 0 0 0-.993.883L11 8v4l.007.117a1 1 0 0 0 1.986 0L13 12V8l-.007-.117A1 1 0 0 0 12 7"
|
|
12
|
+
})
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { t as AlertCircleFilledIcon, t as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { IIconComponentProps } from "./types.js";
|
|
2
|
-
export declare const
|
|
3
|
-
export default
|
|
2
|
+
export declare const AlertCircleIcon: ({ color, ...props }: IIconComponentProps) => import("react").JSX.Element;
|
|
3
|
+
export default AlertCircleIcon;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
//#region src/icons/collection/
|
|
2
|
+
//#region src/icons/collection/AlertCircleIcon.tsx
|
|
3
3
|
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
4
|
...n,
|
|
5
5
|
fill: "none",
|
|
@@ -11,8 +11,8 @@ var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__
|
|
|
11
11
|
strokeLinecap: "round",
|
|
12
12
|
strokeLinejoin: "round",
|
|
13
13
|
strokeWidth: "2",
|
|
14
|
-
d: "
|
|
14
|
+
d: "M12 8v4m0 4h.01M3 12a9 9 0 1 0 18.001 0A9 9 0 0 0 3 12"
|
|
15
15
|
})
|
|
16
16
|
});
|
|
17
17
|
//#endregion
|
|
18
|
-
export { t as
|
|
18
|
+
export { t as AlertCircleIcon, t as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
//#region src/icons/collection/AlertHexagonIcon.tsx
|
|
3
|
+
var t = ({ color: t = "var(--icon-color, currentColor)", ...n }) => /* @__PURE__ */ e("svg", {
|
|
4
|
+
...n,
|
|
5
|
+
fill: "none",
|
|
6
|
+
viewBox: "0 0 24 24",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
children: /* @__PURE__ */ e("path", {
|
|
10
|
+
stroke: t,
|
|
11
|
+
strokeLinecap: "round",
|
|
12
|
+
strokeLinejoin: "round",
|
|
13
|
+
strokeWidth: "2",
|
|
14
|
+
d: "M12 8v4m0 4h.01m7.865-9.73c.7.398 1.13 1.143 1.125 1.948v7.284c0 .809-.443 1.555-1.158 1.948l-6.75 4.27a2.27 2.27 0 0 1-2.184 0l-6.75-4.27A2.23 2.23 0 0 1 3 15.502V8.217c0-.81.443-1.554 1.158-1.947l6.75-3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98z"
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { t as AlertHexagonIcon, t as default };
|