@genarou/blazir-icons 1.2.20 → 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.
- package/LICENSE +121 -0
- package/README.md +1206 -0
- package/dist/CustomIcon.svelte +30 -0
- package/dist/CustomIcon.svelte.d.ts +14 -0
- package/dist/Icon.svelte +282 -102
- package/dist/Icon.svelte.d.ts +12 -5
- package/dist/IconBadge.svelte +75 -0
- package/dist/IconBadge.svelte.d.ts +16 -0
- package/dist/IconBase.svelte +89 -57
- package/dist/effects.js +1 -3
- package/dist/icons/Camera.svelte +19 -0
- package/dist/icons/Camera.svelte.d.ts +4 -0
- package/dist/icons/Cards.svelte +19 -0
- package/dist/icons/Cards.svelte.d.ts +4 -0
- package/dist/icons/CloudAlert.svelte +19 -0
- package/dist/icons/CloudAlert.svelte.d.ts +4 -0
- package/dist/icons/CloudCheck.svelte +19 -0
- package/dist/icons/CloudCheck.svelte.d.ts +4 -0
- package/dist/icons/CloudDownload.svelte +19 -0
- package/dist/icons/CloudDownload.svelte.d.ts +4 -0
- package/dist/icons/CreditCard.svelte +19 -0
- package/dist/icons/CreditCard.svelte.d.ts +4 -0
- package/dist/icons/Desktop.svelte +19 -0
- package/dist/icons/Desktop.svelte.d.ts +4 -0
- package/dist/icons/DoughnutChart.svelte +19 -0
- package/dist/icons/DoughnutChart.svelte.d.ts +4 -0
- package/dist/icons/Earth.svelte +19 -0
- package/dist/icons/Earth.svelte.d.ts +4 -0
- package/dist/icons/Globe.svelte +19 -0
- package/dist/icons/Globe.svelte.d.ts +4 -0
- package/dist/icons/LightHub.svelte +19 -0
- package/dist/icons/LightHub.svelte.d.ts +4 -0
- package/dist/icons/Link.svelte +19 -0
- package/dist/icons/Link.svelte.d.ts +4 -0
- package/dist/icons/Power.svelte +19 -0
- package/dist/icons/Power.svelte.d.ts +4 -0
- package/dist/icons/Receipt.svelte +19 -0
- package/dist/icons/Receipt.svelte.d.ts +4 -0
- package/dist/icons/Sync.svelte +19 -0
- package/dist/icons/Sync.svelte.d.ts +4 -0
- package/dist/icons/Upload.svelte +12 -57
- package/dist/icons/Wifi.svelte +19 -0
- package/dist/icons/Wifi.svelte.d.ts +4 -0
- package/dist/icons/lazy-registry.d.ts +21 -0
- package/dist/icons/lazy-registry.js +251 -0
- package/dist/icons/registry.d.ts +145 -134
- package/dist/icons/registry.js +177 -137
- package/dist/icons-api.d.ts +65 -267
- package/dist/icons-api.js +82 -465
- package/dist/index.d.ts +5 -5
- package/dist/index.js +14 -11
- package/dist/plugin/index.d.ts +46 -0
- package/dist/plugin/index.js +327 -0
- package/dist/smart-cache.d.ts +35 -0
- package/dist/smart-cache.js +192 -0
- package/dist/types.d.ts +19 -2
- package/dist/utils/sanitize.d.ts +25 -0
- package/dist/utils/sanitize.js +109 -0
- package/package.json +23 -13
- package/dist/icons/Aws.svelte +0 -19
- package/dist/icons/Aws.svelte.d.ts +0 -4
- package/dist/icons/Facebook.svelte +0 -18
- package/dist/icons/Facebook.svelte.d.ts +0 -4
- package/dist/icons/Golang.svelte +0 -17
- package/dist/icons/Golang.svelte.d.ts +0 -4
- package/dist/icons/Google.svelte +0 -18
- package/dist/icons/Google.svelte.d.ts +0 -4
- package/dist/icons/Paypal.svelte +0 -21
- package/dist/icons/Paypal.svelte.d.ts +0 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Lightbulb icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M10 18q-.825 0-1.412-.587T8 16v-1.25q-1.425-.975-2.212-2.5T5 9q0-2.925 2.038-4.962T12 2t4.963 2.038T19 9q0 1.725-.788 3.238T16 14.75V16q0 .825-.587 1.413T14 18zm0 4q-.425 0-.712-.288T9 21t.288-.712T10 20h4q.425 0 .713.288T15 21t-.288.713T14 22z"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Link icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M7.95 21q-2.05 0-3.5-1.45T3 16.05q0-1 .375-1.9t1.075-1.6l2.625-2.625q.3-.3.713-.3t.712.3t.3.7t-.3.7l-2.65 2.65q-.425.425-.637.963T5 16.05q0 1.225.863 2.088T7.95 19q.575 0 1.125-.213t.975-.637l2.625-2.65q.3-.275.7-.275t.7.3t.3.7t-.3.7L11.45 19.55q-.7.7-1.6 1.075T7.95 21m1.25-6.2q-.3-.3-.3-.712t.3-.713L13.375 9.2q.3-.3.713-.3t.712.3t.3.713t-.3.712L10.625 14.8q-.3.3-.712.3t-.713-.3m6.3-.725q-.3-.3-.3-.7t.3-.7l2.65-2.625q.425-.425.625-.95t.2-1.1q0-1.25-.85-2.125T16.025 5q-.575 0-1.112.213t-.963.637L11.325 8.5q-.3.3-.7.3t-.7-.3t-.3-.712t.3-.713L12.55 4.45q.7-.7 1.6-1.075T16.05 3q2.05 0 3.488 1.45t1.437 3.525q0 .975-.363 1.875t-1.062 1.6l-2.625 2.625q-.3.3-.712.3t-.713-.3"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Power icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M8.1 21.213q-1.825-.788-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22t-3.9-.788m8.15-4.962Q18 14.5 18 12q0-1.275-.475-2.363T16.25 7.75l-1.425 1.425q.55.55.863 1.275T16 12q0 1.65-1.175 2.825T12 16t-2.825-1.175T8 12q0-.825.313-1.55t.862-1.275L7.75 7.75q-.8.8-1.275 1.888T6 12q0 2.5 1.75 4.25T12 18t4.25-1.75M11 12h2V6h-2z"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Receipt icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M6 22q-1.25 0-2.125-.875T3 19v-3h3V2l1.5 1.5L9 2l1.5 1.5L12 2l1.5 1.5L15 2l1.5 1.5L18 2l1.5 1.5L21 2v17q0 1.25-.875 2.125T18 22zm12-2q.425 0 .713-.288T19 19V5H8v11h9v3q0 .425.288.713T18 20M9 9V7h6v2zm0 3v-2h6v2zm8-3q-.425 0-.712-.288T16 8t.288-.712T17 7t.713.288T18 8t-.288.713T17 9m0 3q-.425 0-.712-.288T16 11t.288-.712T17 10t.713.288T18 11t-.288.713T17 12"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Sync icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M3 12q0-3.75 2.625-6.375T12 3V2q0-.3.275-.45t.525.05l3.125 2.35q.4.3.4.8t-.4.8L12.8 7.9q-.25.2-.525.05T12 7.5v-1q-2.275 0-3.888 1.613T6.5 12q0 .825.238 1.588T7.4 15q.275.4.225.863T7.2 16.6l-.85.625q-.45.35-1 .275t-.875-.55q-.725-1.075-1.1-2.325T3 12m9 9v1q0 .3-.275.45t-.525-.05l-3.125-2.35q-.4-.3-.4-.8t.4-.8L11.2 16.1q.25-.2.525-.05t.275.45v1q2.275 0 3.888-1.613T17.5 12q0-.825-.238-1.588T16.6 9q-.275-.4-.225-.862T16.8 7.4l.85-.625q.45-.35 1-.263t.875.538q.7 1.075 1.088 2.325T21 12q0 3.75-2.625 6.375T12 21"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
package/dist/icons/Upload.svelte
CHANGED
|
@@ -1,64 +1,19 @@
|
|
|
1
|
-
<!-- src/lib/icons/Upload.svelte -->
|
|
2
1
|
<script lang="ts">
|
|
3
2
|
import IconBase from "../IconBase.svelte";
|
|
4
3
|
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
5
|
const props: IconProps = $props();
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
|
-
<IconBase
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
d="M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9"
|
|
20
|
-
>
|
|
21
|
-
<animate
|
|
22
|
-
attributeName="stroke-dashoffset"
|
|
23
|
-
dur="0.6s"
|
|
24
|
-
repeatCount="indefinite"
|
|
25
|
-
values="6;0"
|
|
26
|
-
/>
|
|
27
|
-
</path>
|
|
28
|
-
<path
|
|
29
|
-
stroke-dasharray="32"
|
|
30
|
-
stroke-dashoffset="32"
|
|
31
|
-
d="M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9"
|
|
32
|
-
>
|
|
33
|
-
<animate
|
|
34
|
-
fill="freeze"
|
|
35
|
-
attributeName="stroke-dashoffset"
|
|
36
|
-
begin="0.1s"
|
|
37
|
-
dur="0.4s"
|
|
38
|
-
values="32;0"
|
|
39
|
-
/>
|
|
40
|
-
</path>
|
|
41
|
-
<path stroke-dasharray="10" stroke-dashoffset="10" d="M12 16v-7.5">
|
|
42
|
-
<animate
|
|
43
|
-
fill="freeze"
|
|
44
|
-
attributeName="stroke-dashoffset"
|
|
45
|
-
begin="0.5s"
|
|
46
|
-
dur="0.2s"
|
|
47
|
-
values="10;0"
|
|
48
|
-
/>
|
|
49
|
-
</path>
|
|
50
|
-
<path
|
|
51
|
-
stroke-dasharray="6"
|
|
52
|
-
stroke-dashoffset="6"
|
|
53
|
-
d="M12 8.5l3.5 3.5M12 8.5l-3.5 3.5"
|
|
54
|
-
>
|
|
55
|
-
<animate
|
|
56
|
-
fill="freeze"
|
|
57
|
-
attributeName="stroke-dashoffset"
|
|
58
|
-
begin="0.7s"
|
|
59
|
-
dur="0.2s"
|
|
60
|
-
values="6;0"
|
|
61
|
-
/>
|
|
62
|
-
</path>
|
|
63
|
-
</g>
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Upload icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M5 20h14q.425 0 .713.288T20 21t-.288.713T19 22H5q-.425 0-.712-.288T4 21t.288-.712T5 20m5-2q-.425 0-.712-.288T9 17v-6H7.05q-.625 0-.9-.562t.1-1.063l4.95-6.35q.15-.2.363-.3t.437-.1t.438.1t.362.3l4.95 6.35q.375.5.1 1.063t-.9.562H15v6q0 .425-.288.713T14 18z"
|
|
18
|
+
/>
|
|
64
19
|
</IconBase>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import IconBase from "../IconBase.svelte";
|
|
3
|
+
import type { IconProps } from "../types";
|
|
4
|
+
|
|
5
|
+
const props: IconProps = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<IconBase
|
|
9
|
+
{...props}
|
|
10
|
+
mode="solid"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
ariaLabel={props.ariaLabel ?? "Signal icon"}
|
|
13
|
+
title={props.title ?? ""}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
d="M12 7q-2.2 0-4.288.688T3.875 9.724q-.5.4-1.137.388T1.65 9.65q-.425-.425-.425-1.05t.5-1q2.2-1.75 4.838-2.675T12 4q2.825 0 5.45.925T22.275 7.6q.5.375.5 1t-.425 1.05q-.45.45-1.088.463t-1.137-.388q-1.75-1.35-3.825-2.037T12 7m0 6q-1.025 0-1.987.263t-1.838.787q-.55.35-1.187.325T5.9 13.9q-.425-.425-.413-1.037T6 11.9q1.325-.925 2.85-1.412T12 10t3.15.488T18 11.9q.5.35.513.963T18.1 13.9q-.45.45-1.088.475t-1.187-.325q-.875-.525-1.837-.788T12 13m-1.412 6.413Q10 18.825 10 18t.588-1.412T12 16t1.413.588T14 18t-.587 1.413T12 20t-1.412-.587"
|
|
18
|
+
/>
|
|
19
|
+
</IconBase>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Component } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Intenta obtener el componente de forma SÍNCRONA (si ya fue cargado antes).
|
|
4
|
+
* Devuelve null si todavía no está en caché.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getLoadedIcon(name: string): Component | null;
|
|
7
|
+
/**
|
|
8
|
+
* Carga un ícono de forma lazy y lo guarda en caché para acceso síncrono posterior.
|
|
9
|
+
* Devuelve el componente cargado, o null si el nombre no existe.
|
|
10
|
+
*
|
|
11
|
+
* El bundler (Vite/Rollup) puede crear un chunk por ícono gracias a los
|
|
12
|
+
* import() con rutas estáticas en _loaders.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadIcon(name: string): Promise<Component | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Precarga un conjunto de íconos en background (ideal para rutas anticipadas).
|
|
17
|
+
* No bloquea — usa requestIdleCallback cuando está disponible.
|
|
18
|
+
*/
|
|
19
|
+
export declare function preloadIcons(names: string[]): void;
|
|
20
|
+
/** Lista de todos los nombres de íconos disponibles en el lazy registry */
|
|
21
|
+
export declare const lazyIconNames: string[];
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// src/lib/icons/lazy-registry.ts
|
|
2
|
+
//
|
|
3
|
+
// Registry de carga lazy — cada icono es un dynamic import() independiente.
|
|
4
|
+
// Esto permite que el bundler (Vite/Rollup) cree chunks separados por ícono,
|
|
5
|
+
// reduciendo el bundle inicial cuando solo se usan algunos iconos.
|
|
6
|
+
//
|
|
7
|
+
// IMPORTANTE: Los import() deben tener rutas ESTÁTICAS (literales de string)
|
|
8
|
+
// para que Vite pueda analizarlos en tiempo de build y crear los chunks correctos.
|
|
9
|
+
//
|
|
10
|
+
// Compatibilidad: esta API es ADICIONAL al registry estático. El registry
|
|
11
|
+
// estático (`registry.ts`) sigue exportando `iconRegistry` sin cambios.
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// MAPA DE LOADERS — rutas estáticas para que Vite genere chunks
|
|
14
|
+
// ============================================================================
|
|
15
|
+
const _loaders = {
|
|
16
|
+
// — Navegación y layout —
|
|
17
|
+
home: () => import('./Home.svelte'),
|
|
18
|
+
dashboard: () => import('./Dashboard.svelte'),
|
|
19
|
+
dashboardOutline: () => import('./DashboardOutlined.svelte'),
|
|
20
|
+
settings: () => import('./Settings.svelte'),
|
|
21
|
+
search: () => import('./MagnifiyingGlass.svelte'),
|
|
22
|
+
menu: () => import('./Hamburguer.svelte'),
|
|
23
|
+
close: () => import('./Close.svelte'),
|
|
24
|
+
plus: () => import('./Plus.svelte'),
|
|
25
|
+
copy: () => import('./Copy.svelte'),
|
|
26
|
+
rocket: () => import('./Rocket.svelte'),
|
|
27
|
+
sidebar: () => import('./Sidebar.svelte'),
|
|
28
|
+
more: () => import('./More.svelte'),
|
|
29
|
+
// — Usuarios y autenticación —
|
|
30
|
+
user: () => import('./User.svelte'),
|
|
31
|
+
userTie: () => import('./UserTie.svelte'),
|
|
32
|
+
team: () => import('./Team.svelte'),
|
|
33
|
+
group: () => import('./Group.svelte'),
|
|
34
|
+
supervisor: () => import('./Supervisor.svelte'),
|
|
35
|
+
enterprise: () => import('./Enterprise.svelte'),
|
|
36
|
+
lock: () => import('./Lock.svelte'),
|
|
37
|
+
lockOpen: () => import('./LockOpen.svelte'),
|
|
38
|
+
key: () => import('./Key.svelte'),
|
|
39
|
+
logout: () => import('./Logout.svelte'),
|
|
40
|
+
eye: () => import('./Eye.svelte'),
|
|
41
|
+
eyeOff: () => import('./EyeOff.svelte'),
|
|
42
|
+
shield: () => import('./Shield.svelte'),
|
|
43
|
+
fingerprint: () => import('./Fingerprint.svelte'),
|
|
44
|
+
contact: () => import('./Contact.svelte'),
|
|
45
|
+
security: () => import('./Security.svelte'),
|
|
46
|
+
// — Comunicación —
|
|
47
|
+
email: () => import('./Email.svelte'),
|
|
48
|
+
emailAnimated: () => import('./EmailAnimated.svelte'),
|
|
49
|
+
phone: () => import('./Phone.svelte'),
|
|
50
|
+
bell: () => import('./Bell.svelte'),
|
|
51
|
+
send: () => import('./Send.svelte'),
|
|
52
|
+
share: () => import('./Share.svelte'),
|
|
53
|
+
world: () => import('./World.svelte'),
|
|
54
|
+
chat: () => import('./Chat.svelte'),
|
|
55
|
+
link: () => import('./Link.svelte'),
|
|
56
|
+
// — Negocio y finanzas —
|
|
57
|
+
building: () => import('./Building.svelte'),
|
|
58
|
+
handshake: () => import('./HandShake.svelte'),
|
|
59
|
+
money: () => import('./Money.svelte'),
|
|
60
|
+
wallet: () => import('./Wallet.svelte'),
|
|
61
|
+
profit: () => import('./Profit.svelte'),
|
|
62
|
+
safe: () => import('./SafeSolid.svelte'),
|
|
63
|
+
cost: () => import('./CostIcon.svelte'),
|
|
64
|
+
exchange: () => import('./Exchange.svelte'),
|
|
65
|
+
swap: () => import('./Swap.svelte'),
|
|
66
|
+
bank: () => import('./Bank.svelte'),
|
|
67
|
+
pay: () => import('./Pay.svelte'),
|
|
68
|
+
creditCard: () => import('./CreditCard.svelte'),
|
|
69
|
+
receipt: () => import('./Receipt.svelte'),
|
|
70
|
+
buy: () => import('./Buy.svelte'),
|
|
71
|
+
// — Gráficas y datos —
|
|
72
|
+
chart: () => import('./Chart.svelte'),
|
|
73
|
+
chartDocument: () => import('./ChartDoc.svelte'),
|
|
74
|
+
chartSquare: () => import('./SquareChart.svelte'),
|
|
75
|
+
chartDoughnut: () => import('./DoughnutChart.svelte'),
|
|
76
|
+
table: () => import('./Table.svelte'),
|
|
77
|
+
list: () => import('./List.svelte'),
|
|
78
|
+
listDots: () => import('./ListDots.svelte'),
|
|
79
|
+
listGroup: () => import('./FormatListGroup.svelte'),
|
|
80
|
+
trendingDown: () => import('./Lose.svelte'),
|
|
81
|
+
database: () => import('./Db.svelte'),
|
|
82
|
+
server: () => import('./Server.svelte'),
|
|
83
|
+
// — Archivos y documentos —
|
|
84
|
+
file: () => import('./File.svelte'),
|
|
85
|
+
pdf: () => import('./Pdf.svelte'),
|
|
86
|
+
excel: () => import('./Excel.svelte'),
|
|
87
|
+
excelAnimated: () => import('./ExcelAnimated.svelte'),
|
|
88
|
+
word: () => import('./Word.svelte'),
|
|
89
|
+
powerPoint: () => import('./PowerPoint.svelte'),
|
|
90
|
+
csv: () => import('./Csv.svelte'),
|
|
91
|
+
xml: () => import('./Xml.svelte'),
|
|
92
|
+
zip: () => import('./Zip.svelte'),
|
|
93
|
+
png: () => import('./Png.svelte'),
|
|
94
|
+
notes: () => import('./Notes.svelte'),
|
|
95
|
+
book: () => import('./Book.svelte'),
|
|
96
|
+
image: () => import('./Image.svelte'),
|
|
97
|
+
imageAnimated: () => import('./ImageAnimated.svelte'),
|
|
98
|
+
folder: () => import('./Folder.svelte'),
|
|
99
|
+
folderShared: () => import('./SharedFolder.svelte'),
|
|
100
|
+
attachment: () => import('./Attachment.svelte'),
|
|
101
|
+
save: () => import('./Save.svelte'),
|
|
102
|
+
form: () => import('./Form.svelte'),
|
|
103
|
+
print: () => import('./Print.svelte'),
|
|
104
|
+
// — Calendario y tiempo —
|
|
105
|
+
calendar: () => import('./Calendar.svelte'),
|
|
106
|
+
calendarPlus: () => import('./CalendarPlus.svelte'),
|
|
107
|
+
calendarEdit: () => import('./CalendarEdit.svelte'),
|
|
108
|
+
timer: () => import('./Timer.svelte'),
|
|
109
|
+
// — Flechas y navegación —
|
|
110
|
+
arrowRight: () => import('./RightArrow.svelte'),
|
|
111
|
+
arrowUp: () => import('./UpArrow.svelte'),
|
|
112
|
+
arrowUpDown: () => import('./UpDownArrow.svelte'),
|
|
113
|
+
arrowLeftAnimated: () => import('./AnimatedArrowLeft.svelte'),
|
|
114
|
+
chevronDown: () => import('./ChevronDown.svelte'),
|
|
115
|
+
chevronUpDown: () => import('./ChevronUpDown.svelte'),
|
|
116
|
+
// — Acciones de archivo —
|
|
117
|
+
download: () => import('./Download.svelte'),
|
|
118
|
+
downloadAnimated: () => import('./DownloadAnimated.svelte'),
|
|
119
|
+
upload: () => import('./Upload.svelte'),
|
|
120
|
+
uploadAnimated: () => import('./UploadAnimated.svelte'),
|
|
121
|
+
uploadProgress: () => import('./UploadLoader.svelte'),
|
|
122
|
+
fileUploadAnimated: () => import('./FileUploadAnimated.svelte'),
|
|
123
|
+
refresh: () => import('./Update.svelte'),
|
|
124
|
+
// — Estados y feedback —
|
|
125
|
+
check: () => import('./Check.svelte'),
|
|
126
|
+
checkOutline: () => import('./CheckO.svelte'),
|
|
127
|
+
checkList: () => import('./CheckList.svelte'),
|
|
128
|
+
circleCheck: () => import('./CircleCheck.svelte'),
|
|
129
|
+
error: () => import('./Error.svelte'),
|
|
130
|
+
errorOutline: () => import('./ErrorO.svelte'),
|
|
131
|
+
circleExclamation: () => import('./CircleExclamation.svelte'),
|
|
132
|
+
circleExclamationOutline: () => import('./CircleExclamationOutlined.svelte'),
|
|
133
|
+
warning: () => import('./Warning.svelte'),
|
|
134
|
+
circleInfo: () => import('./CircleInfo.svelte'),
|
|
135
|
+
circleInfoOutline: () => import('./CircleInfoOutlined.svelte'),
|
|
136
|
+
circleQuestion: () => import('./CircleQuestion.svelte'),
|
|
137
|
+
circleQuestionOutline: () => import('./CircleQuestionOutlined.svelte'),
|
|
138
|
+
star: () => import('./Star.svelte'),
|
|
139
|
+
favorites: () => import('./Favorites.svelte'),
|
|
140
|
+
heart: () => import('./Heart.svelte'),
|
|
141
|
+
reset: () => import('./Reset.svelte'),
|
|
142
|
+
height: () => import('./Height.svelte'),
|
|
143
|
+
alternate: () => import('./Alternate.svelte'),
|
|
144
|
+
moon: () => import('./Moon.svelte'),
|
|
145
|
+
sun: () => import('./Sun.svelte'),
|
|
146
|
+
colors: () => import('./Colors.svelte'),
|
|
147
|
+
// — Loading y progreso —
|
|
148
|
+
spinnerDots: () => import('./LoadingDots.svelte'),
|
|
149
|
+
spinner: () => import('./RegularSpinner.svelte'),
|
|
150
|
+
// — Comercio y ventas —
|
|
151
|
+
product: () => import('./Product.svelte'),
|
|
152
|
+
bag: () => import('./Bag.svelte'),
|
|
153
|
+
pos: () => import('./PointSale.svelte'),
|
|
154
|
+
category: () => import('./Category.svelte'),
|
|
155
|
+
categoryAdd: () => import('./CategoryAdd.svelte'),
|
|
156
|
+
categorySearch: () => import('./CategorySearch.svelte'),
|
|
157
|
+
boxAdd: () => import('./BoxAdd.svelte'),
|
|
158
|
+
measure: () => import('./Measure.svelte'),
|
|
159
|
+
box: () => import('./Box.svelte'),
|
|
160
|
+
scan: () => import('./Scan.svelte'),
|
|
161
|
+
cart: () => import('./Cart.svelte'),
|
|
162
|
+
cards: () => import('./Cards.svelte'),
|
|
163
|
+
// — Logística y transporte —
|
|
164
|
+
truck: () => import('./Truck.svelte'),
|
|
165
|
+
truckReturn: () => import('./TruckReturn.svelte'),
|
|
166
|
+
warehouse: () => import('./Warehouse.svelte'),
|
|
167
|
+
location: () => import('./Location.svelte'),
|
|
168
|
+
locationAnimated: () => import('./LocationAnimated.svelte'),
|
|
169
|
+
// — Herramientas y utilidades —
|
|
170
|
+
ai: () => import('./Ai.svelte'),
|
|
171
|
+
edit: () => import('./Edit.svelte'),
|
|
172
|
+
editOutline: () => import('./EditOutline.svelte'),
|
|
173
|
+
trash: () => import('./Trash.svelte'),
|
|
174
|
+
trashOutline: () => import('./TrashOutline.svelte'),
|
|
175
|
+
filter: () => import('./FilterOutline.svelte'),
|
|
176
|
+
filterOutline: () => import('./FilterOutline.svelte'),
|
|
177
|
+
tags: () => import('./Tags.svelte'),
|
|
178
|
+
tools: () => import('./Tools.svelte'),
|
|
179
|
+
objectGroup: () => import('./ObjectGroup.svelte'),
|
|
180
|
+
project: () => import('./Project.svelte'),
|
|
181
|
+
// — Media y dispositivos —
|
|
182
|
+
camera: () => import('./Camera.svelte'),
|
|
183
|
+
desktop: () => import('./Desktop.svelte'),
|
|
184
|
+
wifi: () => import('./Wifi.svelte'),
|
|
185
|
+
power: () => import('./Power.svelte'),
|
|
186
|
+
// — Nube —
|
|
187
|
+
cloudAlert: () => import('./CloudAlert.svelte'),
|
|
188
|
+
cloudCheck: () => import('./CloudCheck.svelte'),
|
|
189
|
+
cloudDownload: () => import('./CloudDownload.svelte'),
|
|
190
|
+
// — Otros —
|
|
191
|
+
blaze: () => import('./Blaze.svelte'),
|
|
192
|
+
earth: () => import('./Earth.svelte'),
|
|
193
|
+
globe: () => import('./Globe.svelte'),
|
|
194
|
+
lightHub: () => import('./LightHub.svelte'),
|
|
195
|
+
sync: () => import('./Sync.svelte'),
|
|
196
|
+
};
|
|
197
|
+
// ============================================================================
|
|
198
|
+
// CACHE DE COMPONENTES YA CARGADOS
|
|
199
|
+
// Una vez que un ícono se carga, se guarda aquí para acceso síncrono inmediato
|
|
200
|
+
// en renders subsiguientes → cero latencia después del primer load.
|
|
201
|
+
// ============================================================================
|
|
202
|
+
const _loaded = new Map();
|
|
203
|
+
/**
|
|
204
|
+
* Intenta obtener el componente de forma SÍNCRONA (si ya fue cargado antes).
|
|
205
|
+
* Devuelve null si todavía no está en caché.
|
|
206
|
+
*/
|
|
207
|
+
export function getLoadedIcon(name) {
|
|
208
|
+
return _loaded.get(name) ?? null;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Carga un ícono de forma lazy y lo guarda en caché para acceso síncrono posterior.
|
|
212
|
+
* Devuelve el componente cargado, o null si el nombre no existe.
|
|
213
|
+
*
|
|
214
|
+
* El bundler (Vite/Rollup) puede crear un chunk por ícono gracias a los
|
|
215
|
+
* import() con rutas estáticas en _loaders.
|
|
216
|
+
*/
|
|
217
|
+
export async function loadIcon(name) {
|
|
218
|
+
// Ya está en caché → retorno síncrono promovido a Promise
|
|
219
|
+
const cached = _loaded.get(name);
|
|
220
|
+
if (cached)
|
|
221
|
+
return cached;
|
|
222
|
+
const loader = _loaders[name];
|
|
223
|
+
if (!loader)
|
|
224
|
+
return null;
|
|
225
|
+
try {
|
|
226
|
+
const mod = await loader();
|
|
227
|
+
_loaded.set(name, mod.default);
|
|
228
|
+
return mod.default;
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Precarga un conjunto de íconos en background (ideal para rutas anticipadas).
|
|
236
|
+
* No bloquea — usa requestIdleCallback cuando está disponible.
|
|
237
|
+
*/
|
|
238
|
+
export function preloadIcons(names) {
|
|
239
|
+
const schedule = typeof requestIdleCallback !== 'undefined'
|
|
240
|
+
? (fn) => requestIdleCallback(fn, { timeout: 2000 })
|
|
241
|
+
: (fn) => setTimeout(fn, 0);
|
|
242
|
+
schedule(() => {
|
|
243
|
+
for (const name of names) {
|
|
244
|
+
if (!_loaded.has(name) && _loaders[name]) {
|
|
245
|
+
loadIcon(name); // fire-and-forget
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
/** Lista de todos los nombres de íconos disponibles en el lazy registry */
|
|
251
|
+
export const lazyIconNames = Object.keys(_loaders);
|