@genarou/blazir-icons 1.2.16 → 1.3.2

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.
Files changed (81) hide show
  1. package/LICENSE +121 -0
  2. package/README.md +1206 -0
  3. package/dist/CustomIcon.svelte +30 -0
  4. package/dist/CustomIcon.svelte.d.ts +14 -0
  5. package/dist/Icon.svelte +282 -102
  6. package/dist/Icon.svelte.d.ts +12 -5
  7. package/dist/IconBadge.svelte +75 -0
  8. package/dist/IconBadge.svelte.d.ts +16 -0
  9. package/dist/IconBase.svelte +89 -57
  10. package/dist/effects.js +1 -3
  11. package/dist/icons/Camera.svelte +19 -0
  12. package/dist/icons/Camera.svelte.d.ts +4 -0
  13. package/dist/icons/Cards.svelte +19 -0
  14. package/dist/icons/Cards.svelte.d.ts +4 -0
  15. package/dist/icons/CloudAlert.svelte +19 -0
  16. package/dist/icons/CloudAlert.svelte.d.ts +4 -0
  17. package/dist/icons/CloudCheck.svelte +19 -0
  18. package/dist/icons/CloudCheck.svelte.d.ts +4 -0
  19. package/dist/icons/CloudDownload.svelte +19 -0
  20. package/dist/icons/CloudDownload.svelte.d.ts +4 -0
  21. package/dist/icons/Colors.svelte +13 -0
  22. package/dist/icons/Colors.svelte.d.ts +4 -0
  23. package/dist/icons/CreditCard.svelte +19 -0
  24. package/dist/icons/CreditCard.svelte.d.ts +4 -0
  25. package/dist/icons/Desktop.svelte +19 -0
  26. package/dist/icons/Desktop.svelte.d.ts +4 -0
  27. package/dist/icons/DoughnutChart.svelte +19 -0
  28. package/dist/icons/DoughnutChart.svelte.d.ts +4 -0
  29. package/dist/icons/Earth.svelte +19 -0
  30. package/dist/icons/Earth.svelte.d.ts +4 -0
  31. package/dist/icons/Globe.svelte +19 -0
  32. package/dist/icons/Globe.svelte.d.ts +4 -0
  33. package/dist/icons/LightHub.svelte +19 -0
  34. package/dist/icons/LightHub.svelte.d.ts +4 -0
  35. package/dist/icons/Link.svelte +19 -0
  36. package/dist/icons/Link.svelte.d.ts +4 -0
  37. package/dist/icons/More.svelte +13 -0
  38. package/dist/icons/More.svelte.d.ts +4 -0
  39. package/dist/icons/Power.svelte +19 -0
  40. package/dist/icons/Power.svelte.d.ts +4 -0
  41. package/dist/icons/Receipt.svelte +19 -0
  42. package/dist/icons/Receipt.svelte.d.ts +4 -0
  43. package/dist/icons/SharedFolder.svelte +13 -0
  44. package/dist/icons/SharedFolder.svelte.d.ts +4 -0
  45. package/dist/icons/Sidebar.svelte +13 -0
  46. package/dist/icons/Sidebar.svelte.d.ts +4 -0
  47. package/dist/icons/Sync.svelte +19 -0
  48. package/dist/icons/Sync.svelte.d.ts +4 -0
  49. package/dist/icons/Tags.svelte +13 -0
  50. package/dist/icons/Tags.svelte.d.ts +4 -0
  51. package/dist/icons/Tools.svelte +20 -0
  52. package/dist/icons/Tools.svelte.d.ts +4 -0
  53. package/dist/icons/Upload.svelte +12 -57
  54. package/dist/icons/Wifi.svelte +19 -0
  55. package/dist/icons/Wifi.svelte.d.ts +4 -0
  56. package/dist/icons/lazy-registry.d.ts +21 -0
  57. package/dist/icons/lazy-registry.js +251 -0
  58. package/dist/icons/registry.d.ts +146 -129
  59. package/dist/icons/registry.js +184 -132
  60. package/dist/icons-api.d.ts +67 -257
  61. package/dist/icons-api.js +84 -453
  62. package/dist/index.d.ts +5 -5
  63. package/dist/index.js +14 -11
  64. package/dist/plugin/index.d.ts +46 -0
  65. package/dist/plugin/index.js +327 -0
  66. package/dist/smart-cache.d.ts +35 -0
  67. package/dist/smart-cache.js +192 -0
  68. package/dist/types.d.ts +19 -2
  69. package/dist/utils/sanitize.d.ts +25 -0
  70. package/dist/utils/sanitize.js +109 -0
  71. package/package.json +23 -13
  72. package/dist/icons/Aws.svelte +0 -19
  73. package/dist/icons/Aws.svelte.d.ts +0 -4
  74. package/dist/icons/Facebook.svelte +0 -18
  75. package/dist/icons/Facebook.svelte.d.ts +0 -4
  76. package/dist/icons/Golang.svelte +0 -17
  77. package/dist/icons/Golang.svelte.d.ts +0 -4
  78. package/dist/icons/Google.svelte +0 -18
  79. package/dist/icons/Google.svelte.d.ts +0 -4
  80. package/dist/icons/Paypal.svelte +0 -21
  81. package/dist/icons/Paypal.svelte.d.ts +0 -4
package/dist/icons-api.js CHANGED
@@ -1,23 +1,22 @@
1
- // icons-api.ts
2
- import { iconRegistry } from "./icons/registry"; // ⬅️ tu registry real
3
1
  // -------------------------------------------------------------------
4
2
  // 🎯 Mantener TU nombre original: bzIcons (alias -> icon name del registry)
5
3
  // -------------------------------------------------------------------
6
4
  export const bzIcons = {
7
- // 🏠 NAVEGACIÓN Y GENERAL
5
+ // Navegación y layout —
8
6
  Home: "home",
9
7
  Dashboard: "dashboard",
10
- DashboardO: "dashboardO",
8
+ DashboardOutline: "dashboardOutline",
11
9
  Settings: "settings",
12
- Search: "magnifyingGlass",
13
- Filter: "filterOutline",
14
- FilterOutline: "filterOutline",
15
- HamburgerMenu: "hamburguer",
10
+ Search: "search",
11
+ Filter: "filter",
12
+ Menu: "menu",
16
13
  Close: "close",
17
14
  Plus: "plus",
18
15
  Copy: "copy",
19
16
  Rocket: "rocket",
20
- // 👤 USUARIOS Y AUTENTICACIÓN
17
+ Sidebar: "sidebar",
18
+ More: "more",
19
+ // — Usuarios y autenticación —
21
20
  User: "user",
22
21
  UserTie: "userTie",
23
22
  Team: "team",
@@ -33,7 +32,8 @@ export const bzIcons = {
33
32
  Shield: "shield",
34
33
  Fingerprint: "fingerprint",
35
34
  Contact: "contact",
36
- // 📧 COMUNICACIÓN
35
+ Security: "security",
36
+ // — Comunicación —
37
37
  Email: "email",
38
38
  EmailAnimated: "emailAnimated",
39
39
  Phone: "phone",
@@ -41,513 +41,144 @@ export const bzIcons = {
41
41
  Send: "send",
42
42
  Share: "share",
43
43
  World: "world",
44
- // 🏢 NEGOCIO Y EMPRESA
44
+ Chat: "chat",
45
+ Link: "link",
46
+ // — Negocio y finanzas —
45
47
  Building: "building",
46
- HandShake: "handShake",
48
+ Handshake: "handshake",
47
49
  Money: "money",
48
50
  Wallet: "wallet",
49
51
  Profit: "profit",
50
- SafeSolid: "safeSolid",
51
- CostIcon: "costIcon",
52
+ Safe: "safe",
53
+ Cost: "cost",
52
54
  Exchange: "exchange",
53
55
  Swap: "swap",
54
56
  Bank: "bank",
55
- // 📊 DATOS Y ANÁLISIS
57
+ Pay: "pay",
58
+ CreditCard: "creditCard",
59
+ Receipt: "receipt",
60
+ Buy: "buy",
61
+ // — Gráficas y datos —
56
62
  Chart: "chart",
57
- ChartDoc: "chartDoc",
58
- SquareChart: "squareChart",
63
+ ChartDocument: "chartDocument",
64
+ ChartSquare: "chartSquare",
65
+ ChartDoughnut: "chartDoughnut",
59
66
  Table: "table",
60
67
  List: "list",
61
68
  ListDots: "listDots",
62
- FormatListGroup: "formatListGroup",
63
- Lose: "lose",
64
- // 📁 ARCHIVOS Y DOCUMENTOS
69
+ ListGroup: "listGroup",
70
+ TrendingDown: "trendingDown",
71
+ Database: "database",
72
+ Server: "server",
73
+ // — Archivos y documentos —
65
74
  File: "file",
66
75
  Pdf: "pdf",
76
+ Excel: "excel",
67
77
  ExcelAnimated: "excelAnimated",
68
- Notes: "notes",
69
- Book: "book",
70
- Image: "image",
71
- ImageAnimated: "imageAnimated",
78
+ Word: "word",
79
+ PowerPoint: "powerPoint",
72
80
  Csv: "csv",
73
81
  Xml: "xml",
74
82
  Zip: "zip",
75
83
  Png: "png",
76
- Excel: "excel",
77
- PowerPoint: "powerPoint",
78
- Word: "word",
84
+ Notes: "notes",
85
+ Book: "book",
86
+ Image: "image",
87
+ ImageAnimated: "imageAnimated",
79
88
  Folder: "folder",
89
+ FolderShared: "folderShared",
80
90
  Attachment: "attachment",
81
91
  Save: "save",
82
- // 📅 CALENDARIO Y TIEMPO
92
+ Form: "form",
93
+ Print: "print",
94
+ // — Calendario y tiempo —
83
95
  Calendar: "calendar",
84
96
  CalendarPlus: "calendarPlus",
85
97
  CalendarEdit: "calendarEdit",
86
98
  Timer: "timer",
87
- // ⬆️ FLECHAS Y NAVEGACIÓN
88
- RightArrow: "rightArrow",
89
- UpArrow: "upArrow",
90
- UpDownArrow: "upDownArrow",
91
- AnimatedArrowLeft: "animatedArrowLeft",
99
+ // Flechas y navegación —
100
+ ArrowRight: "arrowRight",
101
+ ArrowUp: "arrowUp",
102
+ ArrowUpDown: "arrowUpDown",
103
+ ArrowLeftAnimated: "arrowLeftAnimated",
92
104
  ChevronDown: "chevronDown",
93
105
  ChevronUpDown: "chevronUpDown",
94
- Selector: "chevronUpDown",
95
- // ⬇️ ACCIONES DE ARCHIVO
106
+ // — Acciones de archivo —
96
107
  Download: "download",
97
108
  DownloadAnimated: "downloadAnimated",
98
109
  Upload: "upload",
99
110
  UploadAnimated: "uploadAnimated",
100
- UploadLoader: "uploadLoader",
101
- FileUpdateAnimated: "fileUpdateAnimated",
111
+ UploadProgress: "uploadProgress",
112
+ FileUploadAnimated: "fileUploadAnimated",
102
113
  Refresh: "refresh",
103
- // ESTADOS Y FEEDBACK
114
+ // Estados y feedback —
104
115
  Check: "check",
105
- CheckO: "checkO",
116
+ CheckOutline: "checkOutline",
117
+ CheckList: "checkList",
106
118
  CircleCheck: "circleCheck",
107
119
  Error: "error",
108
- ErrorO: "errorO",
120
+ ErrorOutline: "errorOutline",
109
121
  CircleExclamation: "circleExclamation",
122
+ CircleExclamationOutline: "circleExclamationOutline",
110
123
  Warning: "warning",
111
124
  CircleInfo: "circleInfo",
125
+ CircleInfoOutline: "circleInfoOutline",
112
126
  CircleQuestion: "circleQuestion",
127
+ CircleQuestionOutline: "circleQuestionOutline",
113
128
  Star: "star",
114
129
  Favorites: "favorites",
130
+ Heart: "heart",
115
131
  Reset: "reset",
116
132
  Height: "height",
117
133
  Alternate: "alternate",
118
- CheckList: "checkList",
119
- X: "close",
120
- CircleExclamationO: "circleExclamationO",
121
- CircleInfoO: "circleInfoO",
122
- CircleQuestionO: "circleQuestionO",
123
- Heart: "heart",
124
134
  Moon: "moon",
125
135
  Sun: "sun",
126
- // 🔄 LOADING Y PROGRESO
127
- Loading: "loadingDots",
128
- LoadingDots: "loadingDots",
129
- LoadingRegular: "loadingRegular",
130
- // 🛒 COMERCIO Y VENTAS
136
+ Colors: "colors",
137
+ // — Loading y progreso —
138
+ SpinnerDots: "spinnerDots",
139
+ Spinner: "spinner",
140
+ // Comercio y ventas —
131
141
  Product: "product",
132
142
  Bag: "bag",
133
- SaleBox: "pointSale",
143
+ POS: "pos",
134
144
  Category: "category",
135
145
  CategoryAdd: "categoryAdd",
136
- Subcategory: "categorySearch",
137
146
  CategorySearch: "categorySearch",
138
147
  BoxAdd: "boxAdd",
139
148
  Measure: "measure",
140
149
  Box: "box",
141
- ScanBar: "scan",
150
+ Scan: "scan",
142
151
  Cart: "cart",
143
- Pay: "pay",
144
- // 🚚 LOGÍSTICA Y TRANSPORTE
152
+ Cards: "cards",
153
+ // Logística y transporte —
145
154
  Truck: "truck",
146
155
  TruckReturn: "truckReturn",
147
- Storehouse: "warehouse",
156
+ Warehouse: "warehouse",
148
157
  Location: "location",
149
158
  LocationAnimated: "locationAnimated",
150
- // 🔧 HERRAMIENTAS Y UTILIDADES
159
+ // Herramientas y utilidades —
151
160
  AI: "ai",
152
161
  Edit: "edit",
153
162
  EditOutline: "editOutline",
154
163
  Trash: "trash",
155
164
  TrashOutline: "trashOutline",
156
- Security: "security",
157
- Db: "db",
158
- Server: "server",
159
- Print: "print",
160
- Form: "form",
161
- // 🎨 ENTIDADES Y OBJETOS
165
+ Tags: "tags",
166
+ Tools: "tools",
162
167
  ObjectGroup: "objectGroup",
163
168
  Project: "project",
164
- // 🌐 TECNOLOGÍAS Y PLATAFORMAS
165
- Google: "google",
166
- Aws: "aws",
167
- Golang: "golang",
168
- Facebook: "facebook",
169
- PayPal: "paypal",
170
- };
171
- // -------------------------------------------------------------------
172
- // 📂 Categorías (100% tipadas con IconName[] y corregidas)
173
- // -------------------------------------------------------------------
174
- export const iconCategories = {
175
- navigation: [
176
- "home",
177
- "dashboard",
178
- "settings",
179
- "search",
180
- "magnifyingGlass",
181
- "filterOutline",
182
- "hamburguer",
183
- "close",
184
- "plus",
185
- "copy",
186
- ],
187
- users: [
188
- "user",
189
- "userTie",
190
- "team",
191
- "group",
192
- "supervisor",
193
- "enterprise",
194
- "lock",
195
- "lockOpen",
196
- "key",
197
- "logout",
198
- "eye",
199
- "eyeOff",
200
- "shield",
201
- ],
202
- communication: ["email", "emailAnimated", "phone", "bell"],
203
- business: [
204
- "building",
205
- "handShake",
206
- "money",
207
- "wallet",
208
- "safeSolid",
209
- "costIcon",
210
- "exchange",
211
- "swap",
212
- ],
213
- data: [
214
- "chart",
215
- "chartDoc",
216
- "squareChart",
217
- "table",
218
- "list",
219
- "listDots",
220
- "formatListGroup",
221
- "checkList",
222
- ],
223
- files: [
224
- "file",
225
- "pdf",
226
- "excelAnimated",
227
- "notes",
228
- "book",
229
- "image",
230
- "imageAnimated",
231
- "csv",
232
- "xml",
233
- "zip",
234
- "png",
235
- ],
236
- calendar: ["calendar", "calendarPlus", "calendarEdit"],
237
- arrows: [
238
- "rightArrow",
239
- "upArrow",
240
- "upDownArrow",
241
- "animatedArrowLeft",
242
- "chevronDown",
243
- "chevronUpDown",
244
- "chevronDown", // selector usa chevronUpDown, ya está arriba
245
- ],
246
- actions: [
247
- "download",
248
- "downloadAnimated",
249
- "upload",
250
- "uploadAnimated",
251
- "uploadLoader",
252
- "fileUpdateAnimated", // ← 🔧 corregido
253
- ],
254
- feedback: [
255
- "check",
256
- "checkO",
257
- "circleCheck",
258
- "error",
259
- "errorO",
260
- "circleExclamation",
261
- "warning",
262
- "circleInfo",
263
- "circleQuestion",
264
- "favorites",
265
- "star",
266
- "reset",
267
- "alternate",
268
- "height",
269
- ],
270
- loading: ["loadingDots", "loadingRegular"],
271
- commerce: [
272
- "product",
273
- "bag",
274
- "pointSale",
275
- "categoryAdd",
276
- "categorySearch",
277
- "boxAdd",
278
- "measure",
279
- "box",
280
- ],
281
- logistics: [
282
- "truck",
283
- "truckReturn",
284
- "warehouse",
285
- "location",
286
- "locationAnimated",
287
- ],
288
- tools: ["editOutline", "trash", "trashOutline", "scan", "security"],
289
- entities: [
290
- "objectGroup", // ← 🔧 corregido (no existe 'entities' en registry)
291
- "project",
292
- ],
293
- tech: ["google", "aws", "golang", "facebook"],
294
- };
295
- // -------------------------------------------------------------------
296
- // 🧰 Shortcuts: agrupaciones amigables para autocompletado
297
- // -------------------------------------------------------------------
298
- export const icons = {
299
- actions: {
300
- plus: bzIcons.Plus,
301
- download: bzIcons.Download,
302
- downloadAnimated: bzIcons.DownloadAnimated,
303
- edit: bzIcons.EditOutline,
304
- upload: bzIcons.Upload,
305
- uploadAnimated: bzIcons.UploadAnimated,
306
- uploadLoader: bzIcons.UploadLoader,
307
- fileUpdateAnimated: bzIcons.FileUpdateAnimated,
308
- delete: bzIcons.Trash,
309
- x: bzIcons.Close,
310
- check: bzIcons.Check,
311
- filter: bzIcons.Filter,
312
- copy: bzIcons.Copy,
313
- favorites: bzIcons.Favorites,
314
- star: bzIcons.Star,
315
- trash: bzIcons.Trash,
316
- trashOutline: bzIcons.TrashOutline,
317
- refresh: bzIcons.Refresh,
318
- },
319
- nav: {
320
- home: bzIcons.Home,
321
- dashboard: bzIcons.Dashboard,
322
- settings: bzIcons.Settings,
323
- hamburgerMenu: bzIcons.HamburgerMenu,
324
- close: bzIcons.Close,
325
- search: bzIcons.Search,
326
- filter: bzIcons.Filter,
327
- copy: bzIcons.Copy,
328
- location: bzIcons.Location,
329
- locationAnimated: bzIcons.LocationAnimated,
330
- },
331
- user: {
332
- profile: bzIcons.User,
333
- team: bzIcons.Team,
334
- supervisor: bzIcons.Supervisor,
335
- enterprise: bzIcons.Enterprise,
336
- key: bzIcons.Key,
337
- logout: bzIcons.Logout,
338
- lock: bzIcons.Lock,
339
- lockOpen: bzIcons.LockOpen,
340
- eye: bzIcons.Eye,
341
- eyeOff: bzIcons.EyeOff,
342
- shield: bzIcons.Shield,
343
- },
344
- comm: {
345
- email: bzIcons.Email,
346
- phone: bzIcons.Phone,
347
- bell: bzIcons.Bell,
348
- },
349
- business: {
350
- building: bzIcons.Building,
351
- handshake: bzIcons.HandShake,
352
- money: bzIcons.Money,
353
- wallet: bzIcons.Wallet,
354
- profit: bzIcons.Profit,
355
- cost: bzIcons.CostIcon,
356
- exchange: bzIcons.Exchange,
357
- swap: bzIcons.Swap,
358
- },
359
- data: {
360
- chart: bzIcons.Chart,
361
- chartDoc: bzIcons.ChartDoc,
362
- squareChart: bzIcons.SquareChart,
363
- table: bzIcons.Table,
364
- list: bzIcons.List,
365
- listDots: bzIcons.ListDots,
366
- formatListGroup: bzIcons.FormatListGroup,
367
- checkList: bzIcons.CheckList,
368
- },
369
- file: {
370
- file: bzIcons.File,
371
- pdf: bzIcons.Pdf,
372
- notes: bzIcons.Notes,
373
- book: bzIcons.Book,
374
- csv: bzIcons.Csv,
375
- xml: bzIcons.Xml,
376
- zip: bzIcons.Zip,
377
- png: bzIcons.Png,
378
- excelAnimated: bzIcons.ExcelAnimated,
379
- image: bzIcons.Image,
380
- imageAnimated: bzIcons.ImageAnimated,
381
- attachment: bzIcons.Attachment,
382
- save: bzIcons.Save,
383
- folder: bzIcons.Folder,
384
- },
385
- calendar: {
386
- calendar: bzIcons.Calendar,
387
- calendarPlus: bzIcons.CalendarPlus,
388
- calendarEdit: bzIcons.CalendarEdit,
389
- },
390
- arrows: {
391
- right: bzIcons.RightArrow,
392
- up: bzIcons.UpArrow,
393
- upDown: bzIcons.UpDownArrow,
394
- chevronDown: bzIcons.ChevronDown,
395
- chevronUpDown: bzIcons.ChevronUpDown,
396
- selector: bzIcons.Selector,
397
- animatedArrowLeft: bzIcons.AnimatedArrowLeft,
398
- lose: bzIcons.Lose,
399
- },
400
- status: {
401
- check: bzIcons.Check,
402
- checkO: bzIcons.CheckO,
403
- circleCheck: bzIcons.CircleCheck,
404
- error: bzIcons.Error,
405
- errorO: bzIcons.ErrorO,
406
- circleExclamation: bzIcons.CircleExclamation,
407
- warning: bzIcons.Warning,
408
- info: bzIcons.CircleInfo,
409
- question: bzIcons.CircleQuestion,
410
- reset: bzIcons.Reset,
411
- alternate: bzIcons.Alternate,
412
- height: bzIcons.Height,
413
- measure: bzIcons.Measure,
414
- },
415
- loading: {
416
- dots: bzIcons.LoadingDots,
417
- regular: bzIcons.LoadingRegular,
418
- },
419
- commerce: {
420
- product: bzIcons.Product,
421
- bag: bzIcons.Bag,
422
- categoryAdd: bzIcons.CategoryAdd,
423
- categorySearch: bzIcons.CategorySearch,
424
- boxAdd: bzIcons.BoxAdd,
425
- box: bzIcons.Box,
426
- scanBar: bzIcons.ScanBar,
427
- truck: bzIcons.Truck,
428
- truckReturn: bzIcons.TruckReturn,
429
- storehouse: bzIcons.Storehouse,
430
- },
431
- entities: {
432
- objectGroup: bzIcons.ObjectGroup,
433
- project: bzIcons.Project,
434
- security: bzIcons.Security,
435
- hamburgerMenu: bzIcons.HamburgerMenu,
436
- },
437
- platforms: {
438
- google: bzIcons.Google,
439
- aws: bzIcons.Aws,
440
- golang: bzIcons.Golang,
441
- facebook: bzIcons.Facebook,
442
- },
443
- };
444
- // -------------------------------------------------------------------
445
- // 🚀 IconAPI: utilidades tipadas
446
- // -------------------------------------------------------------------
447
- export class IconAPI {
448
- // Retorna sólo los válidos (íconos que existen en el registry)
449
- static getValid(...names) {
450
- const results = [];
451
- for (const name of names) {
452
- const iconName = bzIcons[name];
453
- if (iconName && iconName in iconRegistry) {
454
- results.push({
455
- iconName,
456
- component: iconRegistry[iconName],
457
- });
458
- }
459
- }
460
- return results;
461
- }
462
- // Búsqueda por texto en alias (keys) o iconName (values)
463
- static search(query) {
464
- const q = query.toLowerCase();
465
- return Object.entries(bzIcons)
466
- .filter(([key, iconName]) => key.toLowerCase().includes(q) || iconName.toLowerCase().includes(q))
467
- .map(([key, iconName]) => ({
468
- key,
469
- iconName,
470
- component: iconRegistry[iconName],
471
- }));
472
- }
473
- static findByName(name) {
474
- const iconName = bzIcons[name];
475
- return iconName && iconName in iconRegistry ? iconName : undefined;
476
- }
477
- static getComponent(name) {
478
- const iconName = this.findByName(name);
479
- return iconName ? iconRegistry[iconName] : undefined;
480
- }
481
- static exists(name) {
482
- return !!this.findByName(name);
483
- }
484
- // 📂 Categorías → devuelve pares {iconName, component} ya validados
485
- static getByCategory(category) {
486
- const iconsInCategory = iconCategories[category]; // readonly IconName[]
487
- return iconsInCategory.map((iconName) => ({
488
- iconName,
489
- component: iconRegistry[iconName],
490
- }));
491
- }
492
- static getAllCategories() {
493
- return Object.keys(iconCategories);
494
- }
495
- static random() {
496
- const iconNames = Object.values(bzIcons);
497
- const randomName = iconNames[Math.floor(Math.random() * iconNames.length)];
498
- return { iconName: randomName, component: iconRegistry[randomName] };
499
- }
500
- static count() {
501
- return Object.keys(bzIcons).length;
502
- }
503
- static list() {
504
- return Object.entries(bzIcons).map(([key, iconName]) => ({
505
- key,
506
- iconName,
507
- component: iconRegistry[iconName],
508
- }));
509
- }
510
- }
511
- // -------------------------------------------------------------------
512
- // 📊 Estadísticas
513
- // -------------------------------------------------------------------
514
- export const iconStats = {
515
- get total() {
516
- return Object.keys(bzIcons).length;
517
- },
518
- get categories() {
519
- return Object.keys(iconCategories).length;
520
- },
521
- get animated() {
522
- return Object.values(bzIcons).filter((n) => n.toLowerCase().includes("animated")).length;
523
- },
524
- get byCategory() {
525
- return Object.fromEntries(Object.entries(iconCategories).map(([cat, list]) => [cat, list.length]));
526
- },
527
- get mostUsedCategory() {
528
- const entries = Object.entries(iconCategories);
529
- const max = entries.reduce((acc, [name, arr]) => arr.length > acc.count ? { name, count: arr.length } : acc, { name: "", count: 0 });
530
- return max.name;
531
- },
532
- get shortcuts() {
533
- return Object.keys(icons).length;
534
- },
169
+ // Media y dispositivos —
170
+ Camera: "camera",
171
+ Desktop: "desktop",
172
+ Wifi: "wifi",
173
+ Power: "power",
174
+ // — Nube —
175
+ CloudAlert: "cloudAlert",
176
+ CloudCheck: "cloudCheck",
177
+ CloudDownload: "cloudDownload",
178
+ // — Otros —
179
+ Blaze: "blaze",
180
+ Earth: "earth",
181
+ Globe: "globe",
182
+ LightHub: "lightHub",
183
+ Sync: "sync",
535
184
  };
536
- /* ==========================================================================
537
- 📝 Ejemplos de uso
538
-
539
- import { IconAPI, bzIcons, icons } from "./icons-api";
540
-
541
- // Búsqueda
542
- const results = IconAPI.search("user");
543
-
544
- // Alias original:
545
- <Icon name={bzIcons.Home} size={24} />
546
-
547
- // Shortcuts:
548
- <Icon name={icons.nav.home} size={24} />
549
-
550
- // Categorías:
551
- const feedbackIcons = IconAPI.getByCategory("feedback");
552
-
553
- =========================================================================== */
package/dist/index.d.ts CHANGED
@@ -2,10 +2,10 @@ import "./icon-animation.css";
2
2
  export type { DynamicIconProps, IconMode, IconProps } from "./types.js";
3
3
  export { default as Icon } from "./Icon.svelte";
4
4
  export { default as IconBase } from "./IconBase.svelte";
5
+ export { default as CustomIcon } from "./CustomIcon.svelte";
6
+ export { default as IconBadge } from "./IconBadge.svelte";
5
7
  export { iconEffects, type IconEffectOptions } from "./effects.js";
6
- export { coerceSize, coerceStrokeWidth, commonDefaults, modeDefaults, normalizeClass, withDefaults, } from "./utils/defaults.js";
7
- export { combineTransforms, getAnimationClasses, getAnimationStyle, getChevronTransform, getMorphTransform, getSlideTransform, } from "./utils/animations.js";
8
- export { batchStyleUpdates, EASING_PRESETS, getPrefersReducedMotion, optimizeEasing, } from "./utils/performance.js";
9
- export * from "./utils/debounce.js";
10
- export { bzIcons, IconAPI, iconCategories, icons, iconStats, type BzIconKey, type IconCategory, type IconShortcutCategory, } from "./icons-api.js";
8
+ export { sanitizeSvg } from "./utils/sanitize.js";
9
+ export { bzIcons, type BzIconKey, } from "./icons-api.js";
11
10
  export { iconRegistry, type IconComponent, type IconName, } from "./icons/registry.js";
11
+ export { getLoadedIcon, lazyIconNames, loadIcon, preloadIcons, } from "./icons/lazy-registry.js";
package/dist/index.js CHANGED
@@ -1,26 +1,29 @@
1
- // ✅ Inyección automática del CSS de animaciones al importar la librería
1
+ // ✅ CSS de animaciones único side-effect intencional
2
2
  import "./icon-animation.css";
3
3
  // ==============================
4
4
  // 🧩 Componentes principales
5
5
  // ==============================
6
- export { default as Icon } from "./Icon.svelte"; // Wrapper dinámico con presets y registry
7
- export { default as IconBase } from "./IconBase.svelte"; // Core <svg> component
6
+ export { default as Icon } from "./Icon.svelte";
7
+ export { default as IconBase } from "./IconBase.svelte";
8
+ export { default as CustomIcon } from "./CustomIcon.svelte";
9
+ export { default as IconBadge } from "./IconBadge.svelte";
8
10
  // ==============================
9
11
  // ⚙️ Efectos declarativos (hover, click, etc.)
10
12
  // ==============================
11
13
  export { iconEffects } from "./effects.js";
12
14
  // ==============================
13
- // 🎨 Utilidades visuales / defaults
15
+ // 🛡️ Sanitización SVG
14
16
  // ==============================
15
- export { coerceSize, coerceStrokeWidth, commonDefaults, modeDefaults, normalizeClass, withDefaults, } from "./utils/defaults.js";
16
- export { combineTransforms, getAnimationClasses, getAnimationStyle, getChevronTransform, getMorphTransform, getSlideTransform, } from "./utils/animations.js";
17
- export { batchStyleUpdates, EASING_PRESETS, getPrefersReducedMotion, optimizeEasing, } from "./utils/performance.js";
18
- export * from "./utils/debounce.js";
17
+ export { sanitizeSvg } from "./utils/sanitize.js";
19
18
  // ==============================
20
- // 🧠 API de íconos (stats, categorías, etc.)
19
+ // 🧠 API de descubrimiento de íconos
21
20
  // ==============================
22
- export { bzIcons, IconAPI, iconCategories, icons, iconStats, } from "./icons-api.js";
21
+ export { bzIcons, } from "./icons-api.js";
23
22
  // ==============================
24
- // 🧱 Registry interno (avanzado / tree-shaking)
23
+ // 🧱 Registry (avanzado)
25
24
  // ==============================
26
25
  export { iconRegistry, } from "./icons/registry.js";
26
+ // ==============================
27
+ // ⚡ Lazy loading por ícono
28
+ // ==============================
29
+ export { getLoadedIcon, lazyIconNames, loadIcon, preloadIcons, } from "./icons/lazy-registry.js";