@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
@@ -0,0 +1,109 @@
1
+ /**
2
+ * sanitize.ts — Lightweight SVG sanitizer. Zero dependencies.
3
+ *
4
+ * Browser: uses the native DOMParser with image/svg+xml for robust, spec-compliant parsing.
5
+ * SSR: regex-based fallback that strips the most dangerous vectors.
6
+ *
7
+ * Threat model (SVG inner content — not the <svg> tag itself):
8
+ * ✗ <script> blocks
9
+ * ✗ <foreignObject> — embeds arbitrary HTML
10
+ * ✗ <iframe>, <object>, <embed>, <link>, <base>
11
+ * ✗ Event handlers — on*, xlink:actuate, etc.
12
+ * ✗ javascript: / vbscript: / data: URIs in href / src / action
13
+ * ✗ CSS expression() / javascript: in style attributes
14
+ */
15
+ // Elements that must never appear inside sanitized SVG content
16
+ const BLOCKED_ELEMENTS = new Set([
17
+ "script",
18
+ "foreignobject",
19
+ "iframe",
20
+ "object",
21
+ "embed",
22
+ "link",
23
+ "base",
24
+ "meta",
25
+ "title", // avoid overriding the a11y <title> from IconBase
26
+ ]);
27
+ // Attribute names that carry dangerous protocols
28
+ const HREF_ATTRS = new Set([
29
+ "href",
30
+ "src",
31
+ "action",
32
+ "formaction",
33
+ "xlink:href",
34
+ ]);
35
+ // Protocols that are never safe in SVG attributes
36
+ const BLOCKED_PROTOCOLS = ["javascript:", "vbscript:", "data:"];
37
+ function isDangerousAttr(name, value) {
38
+ const n = name.toLowerCase();
39
+ // Inline event handlers — onerror, onload, onclick, onmouseover, etc.
40
+ if (n.startsWith("on"))
41
+ return true;
42
+ // href / src with dangerous protocol
43
+ if (HREF_ATTRS.has(n)) {
44
+ const v = value.trim().toLowerCase().replace(/[\t\n\r ]/g, "");
45
+ return BLOCKED_PROTOCOLS.some((p) => v.startsWith(p));
46
+ }
47
+ // CSS expressions or javascript: inside style=""
48
+ if (n === "style" && /expression\s*\(|javascript:/i.test(value))
49
+ return true;
50
+ return false;
51
+ }
52
+ function sanitizeNode(node) {
53
+ if (BLOCKED_ELEMENTS.has(node.tagName.toLowerCase())) {
54
+ node.remove();
55
+ return;
56
+ }
57
+ // Strip dangerous attributes
58
+ const toRemove = [];
59
+ for (const { name, value } of Array.from(node.attributes)) {
60
+ if (isDangerousAttr(name, value))
61
+ toRemove.push(name);
62
+ }
63
+ toRemove.forEach((a) => node.removeAttribute(a));
64
+ // Recurse — iterate a snapshot to avoid live-collection issues after remove()
65
+ for (const child of Array.from(node.children)) {
66
+ sanitizeNode(child);
67
+ }
68
+ }
69
+ // ─── SSR regex fallback ───────────────────────────────────────────────────────
70
+ // Not as robust as the DOM-based approach but handles the most critical vectors.
71
+ function ssrSanitize(raw) {
72
+ return raw
73
+ .replace(/<script[\s\S]*?<\/script\s*>/gi, "")
74
+ .replace(/<foreignObject[\s\S]*?<\/foreignObject\s*>/gi, "")
75
+ .replace(/<(iframe|object|embed|link|base|meta)[^>]*>/gi, "")
76
+ .replace(/\son\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s/>]*)/gi, "")
77
+ .replace(/\s(?:xlink:)?href\s*=\s*["'](?:javascript|vbscript|data):[^"']*["']/gi, "")
78
+ .replace(/style\s*=\s*"[^"]*expression\s*\([^"]*"/gi, 'style=""')
79
+ .replace(/style\s*=\s*'[^']*expression\s*\([^']*'/gi, "style=''");
80
+ }
81
+ // ─── Public API ──────────────────────────────────────────────────────────────
82
+ /**
83
+ * Sanitizes raw SVG inner markup against XSS vectors.
84
+ *
85
+ * Safe to call with content from external APIs or user input.
86
+ * For static, trusted SVG strings defined in your own code, pass
87
+ * `sanitize={false}` to `CustomIcon` to skip the overhead entirely.
88
+ *
89
+ * @param raw - SVG inner markup (paths, circles, etc. — not the <svg> tag)
90
+ * @returns Sanitized SVG markup string, empty string on parse failure
91
+ */
92
+ export function sanitizeSvg(raw) {
93
+ if (!raw || typeof raw !== "string")
94
+ return "";
95
+ // ── SSR ──────────────────────────────────────────────────────────────────
96
+ if (typeof document === "undefined")
97
+ return ssrSanitize(raw);
98
+ // ── Browser — native SVG+XML parser ──────────────────────────────────────
99
+ const parser = new DOMParser();
100
+ const doc = parser.parseFromString(`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">${raw}</svg>`, "image/svg+xml");
101
+ // DOMParser signals XML parse errors via a <parsererror> element
102
+ if (doc.querySelector("parsererror"))
103
+ return "";
104
+ const root = doc.documentElement;
105
+ for (const child of Array.from(root.children)) {
106
+ sanitizeNode(child);
107
+ }
108
+ return root.innerHTML;
109
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genarou/blazir-icons",
3
- "version": "1.2.16",
3
+ "version": "1.3.2",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -22,6 +22,15 @@
22
22
  "types": "./dist/index.d.ts",
23
23
  "svelte": "./dist/index.js",
24
24
  "default": "./dist/index.js"
25
+ },
26
+ "./icons/*": {
27
+ "types": "./dist/icons/*.svelte.d.ts",
28
+ "svelte": "./dist/icons/*.svelte",
29
+ "default": "./dist/icons/*.svelte"
30
+ },
31
+ "./plugin": {
32
+ "types": "./dist/plugin/index.d.ts",
33
+ "default": "./dist/plugin/index.js"
25
34
  }
26
35
  },
27
36
  "files": [
@@ -29,24 +38,15 @@
29
38
  "README.md",
30
39
  "LICENSE"
31
40
  ],
32
- "scripts": {
33
- "dev": "vite",
34
- "build": "svelte-package",
35
- "preview": "vite preview",
36
- "prepublishOnly": "npm run build",
37
- "clean": "rm -rf dist",
38
- "prebuild": "npm run clean",
39
- "try": "npm run build && vite --config play/vite.config.js",
40
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
41
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
42
- },
43
41
  "devDependencies": {
44
42
  "@sveltejs/kit": "^2.47.1",
45
43
  "@sveltejs/package": "^2.5.0",
46
44
  "@sveltejs/vite-plugin-svelte": "^3.1.2",
45
+ "@types/node": "^25.5.0",
47
46
  "svelte": "^5.38.6",
48
47
  "svelte-check": "^4.3.3",
49
48
  "typescript": "^5.9.2",
49
+ "unplugin": "^3.0.0",
50
50
  "vite": "^5.4.19"
51
51
  },
52
52
  "peerDependencies": {
@@ -64,5 +64,15 @@
64
64
  "homepage": "https://github.com/GenaroUG/blazir-icons#readme",
65
65
  "bugs": {
66
66
  "url": "https://github.com/GenaroUG/blazir-icons/issues"
67
+ },
68
+ "scripts": {
69
+ "dev": "vite",
70
+ "build": "svelte-package",
71
+ "preview": "vite preview",
72
+ "clean": "rm -rf dist",
73
+ "prebuild": "npm run clean",
74
+ "try": "npm run build && vite --config play/vite.config.js",
75
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
76
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
67
77
  }
68
- }
78
+ }
@@ -1,19 +0,0 @@
1
- <!-- src/lib/icons/Aws.svelte -->
2
- <script lang="ts">
3
- import IconBase from "../IconBase.svelte";
4
- import type { IconProps } from "../types";
5
-
6
- const props: IconProps = $props();
7
- </script>
8
-
9
- <IconBase
10
- {...props}
11
- mode="solid"
12
- viewBox="0 0 24 24"
13
- ariaLabel={props.ariaLabel ?? "AWS logo"}
14
- title={props.title ?? "Aws"}
15
- >
16
- <path
17
- d="M7.64 10.38c0 .25.02.45.07.62c.05.12.12.28.21.46c.04.04.05.1.05.15c0 .07-.04.13-.13.2l-.42.28c-.06.04-.12.06-.17.06c-.07 0-.13-.04-.2-.1c-.09-.1-.17-.2-.24-.31c-.06-.11-.13-.24-.2-.39c-.52.61-1.17.92-1.96.92c-.56 0-1-.16-1.33-.48c-.32-.32-.49-.75-.49-1.29c0-.55.2-1 .6-1.36c.41-.34.95-.52 1.63-.52c.23 0 .44.02.71.06c.23.03.5.08.76.14v-.48c0-.51-.1-.84-.31-1.07c-.22-.21-.57-.3-1.08-.3c-.24 0-.48.03-.72.08c-.25.06-.49.13-.72.23c-.11.04-.2.07-.23.08c-.05.02-.08.02-.11.02c-.09 0-.14-.06-.14-.2v-.33c0-.1.01-.18.05-.23q.045-.075.18-.12c.24-.14.51-.24.84-.32a4 4 0 0 1 1.04-.13q1.185 0 1.74.54c.37.36.55.91.55 1.64v2.15zm-2.7 1.02c.22 0 .44-.04.68-.12s.45-.23.63-.43c.11-.13.19-.27.25-.43c0-.16.05-.35.05-.58v-.27c-.2-.07-.4-.07-.62-.12a7 7 0 0 0-.62-.04c-.45 0-.77.09-.99.27s-.32.43-.32.76c0 .32.07.56.24.71c.16.17.39.25.7.25m5.34.71a.6.6 0 0 1-.28-.06c-.03-.05-.08-.14-.12-.26L8.32 6.65c-.04-.15-.06-.22-.06-.27c0-.11.05-.17.16-.17h.65c.13 0 .22.02.26.07c.06.04.1.13.14.26l1.11 4.4l1.04-4.4c.03-.13.07-.22.13-.26c.05-.04.14-.07.25-.07h.55c.12 0 .21.02.26.07c.05.04.1.13.13.26L14 11l1.14-4.46c.04-.13.09-.22.13-.26c.06-.04.14-.07.26-.07h.62c.11 0 .17.06.17.17c0 .03-.01 .07-.02 .12c0 0-.02 .08-.04 .15l-1.61 5.14c-.04 .14-.08 .21-.15 .26c-.04 .04-.13 .07-.24 .07h-.57c-.13 0-.19-.02-.27-.07a.45 .45 0 0 1-.12-.26L12.27 7.5l-1.03 4.28q-.045 .195-.12 .27a.5 .5 0 0 1-.27 .06zm8.55 .18c-.33 0-.7-.04-1.03-.12s-.59-.17-.76-.26a.5 .5 0 0 1-.21-.19a.4 .4 0 0 1-.04-.18v-.34c0-.14 .05-.2 .15-.2h.12c.04 0 .1 .05 .17 .08c.22 .1 .47 .18 .73 .23c.27 .05 .54 .08 .79 .08c.42 0 .75-.07 .97-.22c.23-.17 .35-.36 .35-.63c0-.19-.07-.34-.18-.47c-.12-.12-.35-.24-.67-.34l-.97-.3c-.48-.16-.84-.38-1.06-.68a1.58 1.58 0 0 1-.33-.97c0-.28 .06-.52 .18-.73c.12-.22 .28-.4 .46-.55c.22-.15 .44-.26 .71-.34q.39-.12 .84-.12q.21 0 .45 .03c.14 .02 .28 .05 .42 .07c.14 .04 .26 .07 .38 .11s.2 .08 .28 .12c.09 .05 .16 .1 .2 .16s.06 .13 .06 .22v.32q0 .21-.15 .21c-.05 0-.14-.03-.26-.08c-.37-.17-.8-.26-1.27-.26c-.38 0-.66 .06-.89 .19c-.2 .12-.31 .32-.31 .59c0 .19 .07 .35 .2 .47c.13 .13 .38 .25 .73 .37l.95 .3c.48 .14 .82 .36 1.03 .64q.3 .405 .3 .93c0 .28-.06 .54-.17 .77c-.12 .22-.28 .42-.5 .58c-.19 .17-.44 .29-.72 .38s-.62 .13-.95 .13m1.25 3.24C17.89 17.14 14.71 18 12 18c-3.85 0-7.3-1.42-9.91-3.77c-.21-.19-.02-.44 .23-.29c2.82 1.63 6.29 2.62 9.89 2.62c2.43 0 5.1-.5 7.55-1.56c.37-.15 .68 .26 .32 .53M21 14.5c-.29-.37-1.86-.18-2.57-.1c-.21 .03-.24-.16-.05-.3c1.25-.87 3.31-.6 3.54-.33c.24 .3-.06 2.36-1.23 3.34c-.19 .15-.36 .07-.28-.11c.27-.68 .86-2.16 .59-2.5"
18
- />
19
- </IconBase>
@@ -1,4 +0,0 @@
1
- import type { IconProps } from "../types";
2
- declare const Aws: import("svelte").Component<IconProps, {}, "">;
3
- type Aws = ReturnType<typeof Aws>;
4
- export default Aws;
@@ -1,18 +0,0 @@
1
- <!-- src/lib/icons/FacebookAlt.svelte -->
2
- <script lang="ts">
3
- import IconBase from "../IconBase.svelte";
4
- import type { IconProps } from "../types";
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 ?? "Facebook Alt"}
13
- title={props.title ?? ""}
14
- >
15
- <path
16
- d="M13.458 21.696c4.693-.704 8.292-4.753 8.292-9.642c0-5.385-4.365-9.75-9.75-9.75s-9.75 4.365-9.75 9.75c0 4.89 3.599 8.938 8.292 9.642v-6.798h-2.05a.486.486 0 0 1-.486-.486v-1.843c0-.269.218-.486.486-.486h2.05l-.072-1.943c0-.942.175-2.471 1.342-3.307c.816-.583 1.423-.693 2.397-.693c.845 0 1.426.084 1.81.14l.188.025a.193.193 0 0 1 .168.192v2.04c0 .113-.095.2-.205.194h-.038c-.114.004-.71.029-1.216.029c-.89 0-1.458.406-1.458 1.755v1.568h2.192c.3 0 .529.27.48.566l-.28 1.843a.486.486 0 0 1-.479.406h-1.913z"
17
- />
18
- </IconBase>
@@ -1,4 +0,0 @@
1
- import type { IconProps } from "../types";
2
- declare const Facebook: import("svelte").Component<IconProps, {}, "">;
3
- type Facebook = ReturnType<typeof Facebook>;
4
- export default Facebook;
@@ -1,17 +0,0 @@
1
- <script lang="ts">
2
- import IconBase from "../IconBase.svelte";
3
- import type { IconProps } from "../types";
4
- const props: IconProps = $props();
5
- </script>
6
-
7
- <IconBase
8
- {...props}
9
- mode="outline"
10
- viewBox="0 0 24 24"
11
- ariaLabel={props.ariaLabel ?? "Golang"}
12
- title={props.title ?? ""}
13
- >
14
- <path
15
- d="M15.695 14.305c1.061 1.06 2.953.888 4.226-.384c1.272-1.273 1.444-3.165.384-4.226s-2.953-.888-4.226.384c-1.272 1.273-1.444 3.165-.384 4.226M12.68 9.233c-1.084-.497-2.545-.191-3.591.846c-1.284 1.273-1.457 3.165-.388 4.226c1.07 1.06 2.978.888 4.261-.384A3.67 3.67 0 0 0 14 12h-2.427M5.5 15H4m2-6H4m1 3H2"
16
- />
17
- </IconBase>
@@ -1,4 +0,0 @@
1
- import type { IconProps } from "../types";
2
- declare const Golang: import("svelte").Component<IconProps, {}, "">;
3
- type Golang = ReturnType<typeof Golang>;
4
- export default Golang;
@@ -1,18 +0,0 @@
1
- <!-- src/lib/icons/Google.svelte -->
2
- <script lang="ts">
3
- import IconBase from "../IconBase.svelte";
4
- import type { IconProps } from "../types";
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 ?? "Google"}
13
- title={props.title ?? ""}
14
- >
15
- <path
16
- d="M20.855 10.361a.2.2 0 0 0-.194-.161H12.2a.2.2 0 0 0-.2.2v3.2c0 .11.09.2.2.2h4.886A5.398 5.398 0 0 1 6.6 12A5.4 5.4 0 0 1 12 6.6a5.37 5.37 0 0 1 3.44 1.245a.205.205 0 0 0 .276-.01l2.266-2.267a.197.197 0 0 0-.007-.286A8.95 8.95 0 0 0 12 3a9 9 0 1 0 9 9c0-.547-.051-1.113-.145-1.639"
17
- />
18
- </IconBase>
@@ -1,4 +0,0 @@
1
- import type { IconProps } from "../types";
2
- declare const Google: import("svelte").Component<IconProps, {}, "">;
3
- type Google = ReturnType<typeof Google>;
4
- export default Google;
@@ -1,21 +0,0 @@
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 ?? "Letter G icon"}
13
- title={props.title ?? ""}
14
- >
15
- <path
16
- d="M9.93 12.99c.1 0 2.42.1 3.8-.24h.01c1.59-.39 3.8-1.51 4.37-5.17c0 0 1.27-4.58-5.03-4.58H7.67c-.49 0-.91.36-.99.84L4.38 18.4c-.05.3.19.58.49.58H8.3l.84-5.32c.06-.38.39-.67.79-.67"
17
- />
18
- <path
19
- d="M18.99 8.29c-.81 3.73-3.36 5.7-7.42 5.7H10.1l-1.03 6.52c-.04.26.16.49.42.49h1.9c.34 0 .64-.25.69-.59c.08-.4.52-3.32.61-3.82c.05-.34.35-.59.69-.59h.44c2.82 0 5.03-1.15 5.68-4.46c.26-1.34.12-2.44-.51-3.25"
20
- />
21
- </IconBase>
@@ -1,4 +0,0 @@
1
- import type { IconProps } from "../types";
2
- declare const Paypal: import("svelte").Component<IconProps, {}, "">;
3
- type Paypal = ReturnType<typeof Paypal>;
4
- export default Paypal;