@nice2dev/icons 1.3.15 → 1.3.17

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 (153) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/NiceDesktopIconExporter.js +688 -599
  4. package/dist/cjs/NiceFaviconGenerator.js +603 -417
  5. package/dist/cjs/NiceIconPicker.js +788 -508
  6. package/dist/cjs/NiceIconPreview.js +246 -188
  7. package/dist/cjs/NiceIconSetCreator.js +683 -552
  8. package/dist/cjs/NiceIconStacker.js +547 -171
  9. package/dist/cjs/NiceIconValue.js +27 -35
  10. package/dist/cjs/NtdIconBadge.js +384 -360
  11. package/dist/cjs/NtdIconMorph.js +419 -354
  12. package/dist/cjs/NtdStateMorph.js +150 -147
  13. package/dist/cjs/advancedIconSearch.js +373 -510
  14. package/dist/cjs/animationControls.js +518 -642
  15. package/dist/cjs/animationSpeed.js +69 -0
  16. package/dist/cjs/client.js +12 -15
  17. package/dist/cjs/createIcon.js +374 -252
  18. package/dist/cjs/design-tokens.js +324 -390
  19. package/dist/cjs/figmaExport.js +162 -257
  20. package/dist/cjs/figmaSync.js +234 -316
  21. package/dist/cjs/headless-ui.js +240 -368
  22. package/dist/cjs/iconAnalytics.js +337 -393
  23. package/dist/cjs/iconHtml.js +64 -86
  24. package/dist/cjs/iconMetadata.js +392 -472
  25. package/dist/cjs/iconParts.js +120 -90
  26. package/dist/cjs/iconStack.js +136 -155
  27. package/dist/cjs/iconStyles.js +1670 -509
  28. package/dist/cjs/iconValue.js +359 -430
  29. package/dist/cjs/icons/accessibility.js +1119 -134
  30. package/dist/cjs/icons/actions.js +1290 -330
  31. package/dist/cjs/icons/ai.js +1424 -144
  32. package/dist/cjs/icons/brand.js +613 -184
  33. package/dist/cjs/icons/business.js +938 -192
  34. package/dist/cjs/icons/devtech.js +1656 -227
  35. package/dist/cjs/icons/ecommerce.js +802 -111
  36. package/dist/cjs/icons/education.js +1345 -199
  37. package/dist/cjs/icons/files.js +1597 -328
  38. package/dist/cjs/icons/fintech.js +793 -104
  39. package/dist/cjs/icons/food.js +1028 -156
  40. package/dist/cjs/icons/fun.js +804 -109
  41. package/dist/cjs/icons/gaming.js +916 -170
  42. package/dist/cjs/icons/health.js +623 -112
  43. package/dist/cjs/icons/index.js +32 -42
  44. package/dist/cjs/icons/input.js +282 -83
  45. package/dist/cjs/icons/legal.js +1065 -122
  46. package/dist/cjs/icons/media.js +1061 -267
  47. package/dist/cjs/icons/navigation.js +407 -123
  48. package/dist/cjs/icons/omniverk.js +523 -93
  49. package/dist/cjs/icons/realestate.js +1520 -193
  50. package/dist/cjs/icons/saas.js +867 -98
  51. package/dist/cjs/icons/science.js +1344 -202
  52. package/dist/cjs/icons/shapes.js +1316 -308
  53. package/dist/cjs/icons/smarthome.js +786 -90
  54. package/dist/cjs/icons/social.js +591 -59
  55. package/dist/cjs/icons/sports.js +1133 -133
  56. package/dist/cjs/icons/sustainability.js +1211 -139
  57. package/dist/cjs/icons/travel.js +1470 -148
  58. package/dist/cjs/icons/ui.js +1508 -315
  59. package/dist/cjs/icons/weather.js +1160 -173
  60. package/dist/cjs/index.js +559 -568
  61. package/dist/cjs/lottieIntegration.js +261 -266
  62. package/dist/cjs/nicetodev-icons.css +1 -1
  63. package/dist/cjs/particleEffects.js +270 -251
  64. package/dist/cjs/resolver.js +229 -284
  65. package/dist/cjs/rsc.js +175 -193
  66. package/dist/cjs/sharpen.js +73 -130
  67. package/dist/cjs/smilAnimations.js +380 -165
  68. package/dist/cjs/stacking.js +87 -122
  69. package/dist/cjs/tailwind-plugin.js +280 -320
  70. package/dist/cjs/types.js +46 -72
  71. package/dist/cjs/utilities.js +163 -324
  72. package/dist/cjs/variantProps.js +12 -52
  73. package/dist/esm/NiceDesktopIconExporter.js +671 -598
  74. package/dist/esm/NiceFaviconGenerator.js +583 -416
  75. package/dist/esm/NiceIconPicker.js +789 -507
  76. package/dist/esm/NiceIconPreview.js +247 -187
  77. package/dist/esm/NiceIconSetCreator.js +685 -551
  78. package/dist/esm/NiceIconStacker.js +549 -170
  79. package/dist/esm/NiceIconValue.js +29 -34
  80. package/dist/esm/NtdIconBadge.js +388 -359
  81. package/dist/esm/NtdIconMorph.js +423 -353
  82. package/dist/esm/NtdStateMorph.js +152 -146
  83. package/dist/esm/advancedIconSearch.js +391 -509
  84. package/dist/esm/animationControls.js +527 -641
  85. package/dist/esm/animationSpeed.js +69 -0
  86. package/dist/esm/client.js +48 -10
  87. package/dist/esm/createIcon.js +375 -251
  88. package/dist/esm/design-tokens.js +334 -387
  89. package/dist/esm/figmaExport.js +170 -256
  90. package/dist/esm/figmaSync.js +237 -315
  91. package/dist/esm/headless-ui.js +254 -365
  92. package/dist/esm/iconAnalytics.js +342 -392
  93. package/dist/esm/iconHtml.js +67 -85
  94. package/dist/esm/iconMetadata.js +404 -471
  95. package/dist/esm/iconParts.js +125 -89
  96. package/dist/esm/iconStack.js +145 -154
  97. package/dist/esm/iconStyles.js +1681 -508
  98. package/dist/esm/iconValue.js +361 -429
  99. package/dist/esm/icons/accessibility.js +1133 -133
  100. package/dist/esm/icons/actions.js +1320 -329
  101. package/dist/esm/icons/ai.js +1441 -143
  102. package/dist/esm/icons/brand.js +616 -179
  103. package/dist/esm/icons/business.js +957 -191
  104. package/dist/esm/icons/devtech.js +1687 -226
  105. package/dist/esm/icons/ecommerce.js +816 -110
  106. package/dist/esm/icons/education.js +1364 -198
  107. package/dist/esm/icons/files.js +1628 -327
  108. package/dist/esm/icons/fintech.js +807 -103
  109. package/dist/esm/icons/food.js +1043 -153
  110. package/dist/esm/icons/fun.js +819 -108
  111. package/dist/esm/icons/gaming.js +933 -169
  112. package/dist/esm/icons/health.js +636 -111
  113. package/dist/esm/icons/index.js +589 -32
  114. package/dist/esm/icons/input.js +326 -82
  115. package/dist/esm/icons/legal.js +1079 -121
  116. package/dist/esm/icons/media.js +1086 -266
  117. package/dist/esm/icons/navigation.js +421 -122
  118. package/dist/esm/icons/omniverk.js +534 -91
  119. package/dist/esm/icons/realestate.js +1544 -198
  120. package/dist/esm/icons/saas.js +880 -97
  121. package/dist/esm/icons/science.js +1370 -208
  122. package/dist/esm/icons/shapes.js +1343 -307
  123. package/dist/esm/icons/smarthome.js +799 -89
  124. package/dist/esm/icons/social.js +599 -58
  125. package/dist/esm/icons/sports.js +1148 -132
  126. package/dist/esm/icons/sustainability.js +1226 -138
  127. package/dist/esm/icons/travel.js +1486 -147
  128. package/dist/esm/icons/ui.js +1540 -314
  129. package/dist/esm/icons/weather.js +1181 -172
  130. package/dist/esm/index.js +749 -58
  131. package/dist/esm/lottieIntegration.js +264 -265
  132. package/dist/esm/nicetodev-icons.css +1 -1
  133. package/dist/esm/particleEffects.js +271 -250
  134. package/dist/esm/resolver.js +231 -283
  135. package/dist/esm/rsc.js +182 -192
  136. package/dist/esm/sharpen.js +78 -129
  137. package/dist/esm/smilAnimations.js +385 -164
  138. package/dist/esm/stacking.js +99 -121
  139. package/dist/esm/tailwind-plugin.js +282 -319
  140. package/dist/esm/types.js +50 -71
  141. package/dist/esm/utilities.js +177 -321
  142. package/dist/esm/variantProps.js +23 -52
  143. package/dist/types/animationSpeed.d.ts +19 -0
  144. package/dist/types/createIcon.d.ts +6 -0
  145. package/dist/types/iconStyles.d.ts +6 -1
  146. package/dist/types/icons/brand.d.ts +0 -4
  147. package/dist/types/icons/food.d.ts +0 -3
  148. package/dist/types/icons/index.d.ts +3 -3
  149. package/dist/types/icons/omniverk.d.ts +0 -3
  150. package/dist/types/icons/science.d.ts +1 -1
  151. package/dist/types/smilAnimations.d.ts +4 -2
  152. package/dist/types/types.d.ts +7 -0
  153. package/package.json +15 -22
@@ -1,199 +1,257 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var uiCore = require('@nice2dev/ui-core');
5
- var React = require('react');
6
-
7
- /* ══════════════════════════════════════════════════════════════════════════════
8
- Constants
9
- ══════════════════════════════════════════════════════════════════════════════ */
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const uiCore = require("@nice2dev/ui-core");
5
+ const React = require("react");
10
6
  const DEFAULT_SIZES = [
11
- { label: '12px', size: 12 },
12
- { label: '16px', size: 16 },
13
- { label: '20px', size: 20 },
14
- { label: '24px', size: 24 },
15
- { label: '32px', size: 32 },
16
- { label: '48px', size: 48 },
17
- { label: '64px', size: 64 },
18
- { label: '96px', size: 96 },
7
+ { label: "12px", size: 12 },
8
+ { label: "16px", size: 16 },
9
+ { label: "20px", size: 20 },
10
+ { label: "24px", size: 24 },
11
+ { label: "32px", size: 32 },
12
+ { label: "48px", size: 48 },
13
+ { label: "64px", size: 64 },
14
+ { label: "96px", size: 96 }
19
15
  ];
20
16
  const DEFAULT_ANIMATIONS = [
21
- { name: 'Spin', className: 'nice-icon-spin' },
22
- { name: 'Pulse', className: 'nice-icon-pulse' },
23
- { name: 'Bounce', className: 'nice-icon-bounce' },
24
- { name: 'Shake', className: 'nice-icon-shake' },
25
- { name: 'Fade', className: 'nice-icon-fade' },
17
+ { name: "Spin", className: "nice-icon-spin" },
18
+ { name: "Pulse", className: "nice-icon-pulse" },
19
+ { name: "Bounce", className: "nice-icon-bounce" },
20
+ { name: "Shake", className: "nice-icon-shake" },
21
+ { name: "Fade", className: "nice-icon-fade" }
26
22
  ];
27
23
  const BACKGROUND_COLORS = {
28
- light: '#ffffff',
29
- dark: '#1e1e1e',
30
- gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
24
+ light: "#ffffff",
25
+ dark: "#1e1e1e",
26
+ gradient: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
31
27
  };
32
- /* ══════════════════════════════════════════════════════════════════════════════
33
- Animation Styles (inline CSS)
34
- ══════════════════════════════════════════════════════════════════════════════ */
35
- const animationCSS = `
36
- @keyframes nice-spin {
37
- from { transform: rotate(0deg); }
38
- to { transform: rotate(360deg); }
39
- }
40
- @keyframes nice-pulse {
41
- 0%, 100% { opacity: 1; }
42
- 50% { opacity: 0.5; }
43
- }
44
- @keyframes nice-bounce {
45
- 0%, 100% { transform: translateY(0); }
46
- 50% { transform: translateY(-25%); }
47
- }
48
- @keyframes nice-shake {
49
- 0%, 100% { transform: translateX(0); }
50
- 25% { transform: translateX(-5px); }
51
- 75% { transform: translateX(5px); }
52
- }
53
- @keyframes nice-fade {
54
- 0%, 100% { opacity: 1; }
55
- 50% { opacity: 0.3; }
56
- }
57
- .nice-icon-spin { animation: nice-spin 1s linear infinite; }
58
- .nice-icon-pulse { animation: nice-pulse 2s ease-in-out infinite; }
59
- .nice-icon-bounce { animation: nice-bounce 1s ease-in-out infinite; }
60
- .nice-icon-shake { animation: nice-shake 0.5s ease-in-out infinite; }
61
- .nice-icon-fade { animation: nice-fade 2s ease-in-out infinite; }
28
+ const animationCSS = `
29
+ @keyframes nice-spin {
30
+ from { transform: rotate(0deg); }
31
+ to { transform: rotate(360deg); }
32
+ }
33
+ @keyframes nice-pulse {
34
+ 0%, 100% { opacity: 1; }
35
+ 50% { opacity: 0.5; }
36
+ }
37
+ @keyframes nice-bounce {
38
+ 0%, 100% { transform: translateY(0); }
39
+ 50% { transform: translateY(-25%); }
40
+ }
41
+ @keyframes nice-shake {
42
+ 0%, 100% { transform: translateX(0); }
43
+ 25% { transform: translateX(-5px); }
44
+ 75% { transform: translateX(5px); }
45
+ }
46
+ @keyframes nice-fade {
47
+ 0%, 100% { opacity: 1; }
48
+ 50% { opacity: 0.3; }
49
+ }
50
+ .nice-icon-spin { animation: nice-spin 1s linear infinite; }
51
+ .nice-icon-pulse { animation: nice-pulse 2s ease-in-out infinite; }
52
+ .nice-icon-bounce { animation: nice-bounce 1s ease-in-out infinite; }
53
+ .nice-icon-shake { animation: nice-shake 0.5s ease-in-out infinite; }
54
+ .nice-icon-fade { animation: nice-fade 2s ease-in-out infinite; }
62
55
  `;
63
- /* ══════════════════════════════════════════════════════════════════════════════
64
- Component
65
- ══════════════════════════════════════════════════════════════════════════════ */
66
- /**
67
- * Icon preview component with multiple modes and sizes.
68
- */
69
- function NiceIconPreview({ icon: Icon, iconName = 'Icon', mode = 'both', layout = 'grid', sizes = DEFAULT_SIZES, showAnimation = true, animations = DEFAULT_ANIMATIONS, fill, className = '', }) {
70
- const { t } = uiCore.useNiceTranslation();
71
- const [selectedAnimation, setSelectedAnimation] = React.useState(null);
72
- // Inject animation styles
73
- const styleSheet = React.useMemo(() => jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: animationCSS } }), []);
74
- // Render icon with settings
75
- const renderIcon = (size, bgMode, customFill) => {
76
- const iconFill = customFill || (bgMode === 'dark' ? '#ffffff' : '#1e1e1e');
77
- return (jsxRuntime.jsx("div", { style: {
78
- ...styles.previewCell,
79
- background: BACKGROUND_COLORS[bgMode],
80
- }, children: jsxRuntime.jsx(Icon, { size: size, fill: iconFill, className: selectedAnimation || undefined }) }));
81
- };
82
- return (jsxRuntime.jsxs("div", { className: `nice-icon-preview ${className}`, style: styles.container, children: [styleSheet, jsxRuntime.jsxs("div", { style: styles.header, children: [jsxRuntime.jsx("h3", { style: styles.title, children: iconName }), showAnimation && (jsxRuntime.jsxs("div", { style: styles.animationControls, children: [jsxRuntime.jsx("span", { style: styles.animationLabel, children: t('iconPreview.animation', 'Animation:') }), jsxRuntime.jsxs("select", { value: selectedAnimation || '', onChange: (e) => setSelectedAnimation(e.target.value || null), style: styles.select, children: [jsxRuntime.jsx("option", { value: "", children: t('iconPreview.none', 'None') }), animations.map((a) => (jsxRuntime.jsx("option", { value: a.className, children: a.name }, a.className)))] })] }))] }), layout === 'grid' && (jsxRuntime.jsxs("div", { style: styles.gridContainer, children: [(mode === 'light' || mode === 'both') && (jsxRuntime.jsxs("div", { style: styles.section, children: [jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t('iconPreview.lightMode', 'Light Mode') }), jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => (jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [renderIcon(s.size, 'light', fill), jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })] }, s.size))) })] })), (mode === 'dark' || mode === 'both') && (jsxRuntime.jsxs("div", { style: styles.section, children: [jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t('iconPreview.darkMode', 'Dark Mode') }), jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => (jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [renderIcon(s.size, 'dark', fill), jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })] }, s.size))) })] })), mode === 'gradient' && (jsxRuntime.jsxs("div", { style: styles.section, children: [jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t('iconPreview.gradientBackground', 'Gradient Background') }), jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => (jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [renderIcon(s.size, 'gradient', '#ffffff'), jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })] }, s.size))) })] }))] })), layout === 'list' && (jsxRuntime.jsx("div", { style: styles.listContainer, children: sizes.map((s) => (jsxRuntime.jsxs("div", { style: styles.listRow, children: [jsxRuntime.jsx("span", { style: styles.listLabel, children: s.label }), renderIcon(s.size, 'light', fill), renderIcon(s.size, 'dark', fill)] }, s.size))) })), layout === 'comparison' && (jsxRuntime.jsxs("div", { style: styles.comparisonContainer, children: [jsxRuntime.jsxs("div", { style: styles.comparisonSide, children: [jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t('iconPreview.light', 'Light') }), jsxRuntime.jsx("div", { style: { ...styles.comparisonBox, background: BACKGROUND_COLORS.light }, children: jsxRuntime.jsx(Icon, { size: 96, fill: fill || '#1e1e1e', className: selectedAnimation || undefined }) })] }), jsxRuntime.jsxs("div", { style: styles.comparisonSide, children: [jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t('iconPreview.dark', 'Dark') }), jsxRuntime.jsx("div", { style: { ...styles.comparisonBox, background: BACKGROUND_COLORS.dark }, children: jsxRuntime.jsx(Icon, { size: 96, fill: fill || '#ffffff', className: selectedAnimation || undefined }) })] })] }))] }));
56
+ function NiceIconPreview({
57
+ icon: Icon,
58
+ iconName = "Icon",
59
+ mode = "both",
60
+ layout = "grid",
61
+ sizes = DEFAULT_SIZES,
62
+ showAnimation = true,
63
+ animations = DEFAULT_ANIMATIONS,
64
+ fill,
65
+ className = ""
66
+ }) {
67
+ const { t } = uiCore.useNiceTranslation();
68
+ const [selectedAnimation, setSelectedAnimation] = React.useState(null);
69
+ const styleSheet = React.useMemo(
70
+ () => /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: animationCSS } }),
71
+ []
72
+ );
73
+ const renderIcon = (size, bgMode, customFill) => {
74
+ const iconFill = customFill || (bgMode === "dark" ? "#ffffff" : "#1e1e1e");
75
+ return /* @__PURE__ */ jsxRuntime.jsx(
76
+ "div",
77
+ {
78
+ style: {
79
+ ...styles.previewCell,
80
+ background: BACKGROUND_COLORS[bgMode]
81
+ },
82
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size, fill: iconFill, className: selectedAnimation || void 0 })
83
+ }
84
+ );
85
+ };
86
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `nice-icon-preview ${className}`, style: styles.container, children: [
87
+ styleSheet,
88
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.header, children: [
89
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { style: styles.title, children: iconName }),
90
+ showAnimation && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.animationControls, children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles.animationLabel, children: t("iconPreview.animation", "Animation:") }),
92
+ /* @__PURE__ */ jsxRuntime.jsxs(
93
+ "select",
94
+ {
95
+ value: selectedAnimation || "",
96
+ onChange: (e) => setSelectedAnimation(e.target.value || null),
97
+ style: styles.select,
98
+ children: [
99
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("iconPreview.none", "None") }),
100
+ animations.map((a) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: a.className, children: a.name }, a.className))
101
+ ]
102
+ }
103
+ )
104
+ ] })
105
+ ] }),
106
+ layout === "grid" && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.gridContainer, children: [
107
+ (mode === "light" || mode === "both") && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.section, children: [
108
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t("iconPreview.lightMode", "Light Mode") }),
109
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [
110
+ renderIcon(s.size, "light", fill),
111
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })
112
+ ] }, s.size)) })
113
+ ] }),
114
+ (mode === "dark" || mode === "both") && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.section, children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t("iconPreview.darkMode", "Dark Mode") }),
116
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [
117
+ renderIcon(s.size, "dark", fill),
118
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })
119
+ ] }, s.size)) })
120
+ ] }),
121
+ mode === "gradient" && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.section, children: [
122
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t("iconPreview.gradientBackground", "Gradient Background") }),
123
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: styles.sizeGrid, children: sizes.map((s) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.sizeItem, children: [
124
+ renderIcon(s.size, "gradient", "#ffffff"),
125
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles.sizeLabel, children: s.label })
126
+ ] }, s.size)) })
127
+ ] })
128
+ ] }),
129
+ layout === "list" && /* @__PURE__ */ jsxRuntime.jsx("div", { style: styles.listContainer, children: sizes.map((s) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.listRow, children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: styles.listLabel, children: s.label }),
131
+ renderIcon(s.size, "light", fill),
132
+ renderIcon(s.size, "dark", fill)
133
+ ] }, s.size)) }),
134
+ layout === "comparison" && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.comparisonContainer, children: [
135
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.comparisonSide, children: [
136
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t("iconPreview.light", "Light") }),
137
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { ...styles.comparisonBox, background: BACKGROUND_COLORS.light }, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 96, fill: fill || "#1e1e1e", className: selectedAnimation || void 0 }) })
138
+ ] }),
139
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: styles.comparisonSide, children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { style: styles.sectionTitle, children: t("iconPreview.dark", "Dark") }),
141
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { ...styles.comparisonBox, background: BACKGROUND_COLORS.dark }, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 96, fill: fill || "#ffffff", className: selectedAnimation || void 0 }) })
142
+ ] })
143
+ ] })
144
+ ] });
83
145
  }
84
- /* ══════════════════════════════════════════════════════════════════════════════
85
- Styles
86
- ══════════════════════════════════════════════════════════════════════════════ */
87
146
  const styles = {
88
- container: {
89
- fontFamily: 'system-ui, -apple-system, sans-serif',
90
- fontSize: '14px',
91
- border: '1px solid #e5e7eb',
92
- borderRadius: '8px',
93
- overflow: 'hidden',
94
- },
95
- header: {
96
- display: 'flex',
97
- justifyContent: 'space-between',
98
- alignItems: 'center',
99
- padding: '12px 16px',
100
- borderBottom: '1px solid #e5e7eb',
101
- backgroundColor: '#f9fafb',
102
- },
103
- title: {
104
- margin: 0,
105
- fontSize: '16px',
106
- fontWeight: 600,
107
- },
108
- animationControls: {
109
- display: 'flex',
110
- alignItems: 'center',
111
- gap: '8px',
112
- },
113
- animationLabel: {
114
- fontSize: '12px',
115
- color: '#6b7280',
116
- },
117
- select: {
118
- padding: '4px 8px',
119
- borderRadius: '4px',
120
- border: '1px solid #d1d5db',
121
- fontSize: '12px',
122
- },
123
- gridContainer: {
124
- padding: '16px',
125
- },
126
- section: {
127
- marginBottom: '20px',
128
- },
129
- sectionTitle: {
130
- margin: '0 0 12px 0',
131
- fontSize: '13px',
132
- fontWeight: 600,
133
- color: '#6b7280',
134
- textTransform: 'uppercase',
135
- letterSpacing: '0.5px',
136
- },
137
- sizeGrid: {
138
- display: 'flex',
139
- flexWrap: 'wrap',
140
- gap: '12px',
141
- },
142
- sizeItem: {
143
- display: 'flex',
144
- flexDirection: 'column',
145
- alignItems: 'center',
146
- gap: '6px',
147
- },
148
- previewCell: {
149
- display: 'flex',
150
- alignItems: 'center',
151
- justifyContent: 'center',
152
- padding: '12px',
153
- borderRadius: '8px',
154
- minWidth: '48px',
155
- minHeight: '48px',
156
- border: '1px solid #e5e7eb',
157
- },
158
- sizeLabel: {
159
- fontSize: '11px',
160
- color: '#9ca3af',
161
- },
162
- listContainer: {
163
- padding: '16px',
164
- },
165
- listRow: {
166
- display: 'flex',
167
- alignItems: 'center',
168
- gap: '16px',
169
- padding: '8px 0',
170
- borderBottom: '1px solid #f3f4f6',
171
- },
172
- listLabel: {
173
- width: '60px',
174
- fontSize: '12px',
175
- color: '#6b7280',
176
- },
177
- comparisonContainer: {
178
- display: 'flex',
179
- padding: '16px',
180
- gap: '16px',
181
- },
182
- comparisonSide: {
183
- flex: 1,
184
- display: 'flex',
185
- flexDirection: 'column',
186
- alignItems: 'center',
187
- },
188
- comparisonBox: {
189
- display: 'flex',
190
- alignItems: 'center',
191
- justifyContent: 'center',
192
- width: '100%',
193
- padding: '32px',
194
- borderRadius: '8px',
195
- border: '1px solid #e5e7eb',
196
- },
147
+ container: {
148
+ fontFamily: "system-ui, -apple-system, sans-serif",
149
+ fontSize: "14px",
150
+ border: "1px solid #e5e7eb",
151
+ borderRadius: "8px",
152
+ overflow: "hidden"
153
+ },
154
+ header: {
155
+ display: "flex",
156
+ justifyContent: "space-between",
157
+ alignItems: "center",
158
+ padding: "12px 16px",
159
+ borderBottom: "1px solid #e5e7eb",
160
+ backgroundColor: "#f9fafb"
161
+ },
162
+ title: {
163
+ margin: 0,
164
+ fontSize: "16px",
165
+ fontWeight: 600
166
+ },
167
+ animationControls: {
168
+ display: "flex",
169
+ alignItems: "center",
170
+ gap: "8px"
171
+ },
172
+ animationLabel: {
173
+ fontSize: "12px",
174
+ color: "#6b7280"
175
+ },
176
+ select: {
177
+ padding: "4px 8px",
178
+ borderRadius: "4px",
179
+ border: "1px solid #d1d5db",
180
+ fontSize: "12px"
181
+ },
182
+ gridContainer: {
183
+ padding: "16px"
184
+ },
185
+ section: {
186
+ marginBottom: "20px"
187
+ },
188
+ sectionTitle: {
189
+ margin: "0 0 12px 0",
190
+ fontSize: "13px",
191
+ fontWeight: 600,
192
+ color: "#6b7280",
193
+ textTransform: "uppercase",
194
+ letterSpacing: "0.5px"
195
+ },
196
+ sizeGrid: {
197
+ display: "flex",
198
+ flexWrap: "wrap",
199
+ gap: "12px"
200
+ },
201
+ sizeItem: {
202
+ display: "flex",
203
+ flexDirection: "column",
204
+ alignItems: "center",
205
+ gap: "6px"
206
+ },
207
+ previewCell: {
208
+ display: "flex",
209
+ alignItems: "center",
210
+ justifyContent: "center",
211
+ padding: "12px",
212
+ borderRadius: "8px",
213
+ minWidth: "48px",
214
+ minHeight: "48px",
215
+ border: "1px solid #e5e7eb"
216
+ },
217
+ sizeLabel: {
218
+ fontSize: "11px",
219
+ color: "#9ca3af"
220
+ },
221
+ listContainer: {
222
+ padding: "16px"
223
+ },
224
+ listRow: {
225
+ display: "flex",
226
+ alignItems: "center",
227
+ gap: "16px",
228
+ padding: "8px 0",
229
+ borderBottom: "1px solid #f3f4f6"
230
+ },
231
+ listLabel: {
232
+ width: "60px",
233
+ fontSize: "12px",
234
+ color: "#6b7280"
235
+ },
236
+ comparisonContainer: {
237
+ display: "flex",
238
+ padding: "16px",
239
+ gap: "16px"
240
+ },
241
+ comparisonSide: {
242
+ flex: 1,
243
+ display: "flex",
244
+ flexDirection: "column",
245
+ alignItems: "center"
246
+ },
247
+ comparisonBox: {
248
+ display: "flex",
249
+ alignItems: "center",
250
+ justifyContent: "center",
251
+ width: "100%",
252
+ padding: "32px",
253
+ borderRadius: "8px",
254
+ border: "1px solid #e5e7eb"
255
+ }
197
256
  };
198
-
199
257
  exports.NiceIconPreview = NiceIconPreview;