@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,185 +1,622 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { createIcon } from '../createIcon.js';
3
- import { swapDuotone } from '../iconParts.js';
4
-
5
- /* ═══════════════════════════════════════════════════════
6
- Brands
7
- ═══════════════════════════════════════════════════════ */
8
- /*
9
- * NtdNiceToDev — Brand logo icon
10
- *
11
- * Three sharp-cornered horizontal bars (hamburger style) containing
12
- * geometric uppercase text: NICE / TO / DEV.
13
- *
14
- * Layout (viewBox 0 0 24 24):
15
- * Bar 1 y=2.75 h=5.5 → "NICE"
16
- * Bar 2 y=9.25 h=5.5 → "TO"
17
- * Bar 3 y=15.75 h=5.5 → "DEV"
18
- *
19
- * Letters are stroke-only paths (no fill) with miter joins and
20
- * square caps — zero rounded corners. This gives spectacular
21
- * stroke-dasharray draw animations: every letter draws itself
22
- * from its starting point simultaneously, while bars pop in
23
- * via the shape-aware clip-path overrides.
24
- *
25
- * Text stroke is fixed at 1.3 for consistent legibility across
26
- * all user-supplied strokeWidth values.
27
- */
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { createIcon } from "../createIcon.js";
28
3
  const NtdNiceToDev = /* @__PURE__ */ createIcon({
29
- displayName: 'NtdNiceToDev',
30
- paths: {
31
- /* ── Solid ──────────────────────────────────────────
32
- * Filled bars + accent-color text strokes on top.
33
- * Draw anim: bars clip-path pop (staggered),
34
- * text stroke-dash draws simultaneously.
35
- */
36
- solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: primaryColor }), jsx("rect", { x: "2", y: "9.25", width: "20", height: "5.5", fill: primaryColor }), jsx("rect", { x: "2", y: "15.75", width: "20", height: "5.5", fill: primaryColor }), jsx("path", { d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17", stroke: accentColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: accentOpacity }), jsx("path", { d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z", stroke: accentColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: accentOpacity }), jsx("path", { d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5", stroke: accentColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: accentOpacity })] })),
37
- /* ── Outline ────────────────────────────────────────
38
- * Text strokes only — no bar borders.
39
- * Clean draw animation via stroke-dasharray.
40
- */
41
- outline: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17", stroke: primaryColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none" }), jsx("path", { d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z", stroke: primaryColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none" }), jsx("path", { d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5", stroke: primaryColor, strokeWidth: "1.3", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none" })] })),
42
- /* ── Duotone ────────────────────────────────────────
43
- * Secondary-filled bars (no border) + primary text.
44
- * Draw anim: fills pop (clip-path), text draws
45
- * via stroke-dasharray — layered reveal.
46
- */
47
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: primaryColor }), jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: "white", opacity: "0.08" }), jsx("rect", { x: "2", y: "9.25", width: "20", height: "5.5", fill: secondaryColor }), jsx("rect", { x: "2", y: "15.75", width: "20", height: "5.5", fill: "#3B82F6" }), jsx("path", { d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17", stroke: "white", strokeWidth: "1", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: "0.35" }), jsx("path", { d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z", stroke: "white", strokeWidth: "1", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: "0.35" }), jsx("path", { d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5", stroke: "white", strokeWidth: "1", strokeLinejoin: "miter", strokeLinecap: "square", fill: "none", opacity: "0.35" })] })),
48
- },
4
+ displayName: "NtdNiceToDev",
5
+ paths: {
6
+ /* ── Solid ──────────────────────────────────────────
7
+ * Filled bars + accent-color text strokes on top.
8
+ * Draw anim: bars clip-path pop (staggered),
9
+ * text stroke-dash draws simultaneously.
10
+ */
11
+ solid: ({ primaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxs(Fragment, { children: [
12
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: primaryColor }),
13
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "9.25", width: "20", height: "5.5", fill: primaryColor }),
14
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "15.75", width: "20", height: "5.5", fill: primaryColor }),
15
+ /* @__PURE__ */ jsx(
16
+ "path",
17
+ {
18
+ d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17",
19
+ stroke: accentColor,
20
+ strokeWidth: "1.3",
21
+ strokeLinejoin: "miter",
22
+ strokeLinecap: "square",
23
+ fill: "none",
24
+ opacity: accentOpacity
25
+ }
26
+ ),
27
+ /* @__PURE__ */ jsx(
28
+ "path",
29
+ {
30
+ d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z",
31
+ stroke: accentColor,
32
+ strokeWidth: "1.3",
33
+ strokeLinejoin: "miter",
34
+ strokeLinecap: "square",
35
+ fill: "none",
36
+ opacity: accentOpacity
37
+ }
38
+ ),
39
+ /* @__PURE__ */ jsx(
40
+ "path",
41
+ {
42
+ d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5",
43
+ stroke: accentColor,
44
+ strokeWidth: "1.3",
45
+ strokeLinejoin: "miter",
46
+ strokeLinecap: "square",
47
+ fill: "none",
48
+ opacity: accentOpacity
49
+ }
50
+ )
51
+ ] }),
52
+ /* ── Outline ────────────────────────────────────────
53
+ * Text strokes only — no bar borders.
54
+ * Clean draw animation via stroke-dasharray.
55
+ */
56
+ outline: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
57
+ /* @__PURE__ */ jsx(
58
+ "path",
59
+ {
60
+ d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17",
61
+ stroke: primaryColor,
62
+ strokeWidth: "1.3",
63
+ strokeLinejoin: "miter",
64
+ strokeLinecap: "square",
65
+ fill: "none"
66
+ }
67
+ ),
68
+ /* @__PURE__ */ jsx(
69
+ "path",
70
+ {
71
+ d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z",
72
+ stroke: primaryColor,
73
+ strokeWidth: "1.3",
74
+ strokeLinejoin: "miter",
75
+ strokeLinecap: "square",
76
+ fill: "none"
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsx(
80
+ "path",
81
+ {
82
+ d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5",
83
+ stroke: primaryColor,
84
+ strokeWidth: "1.3",
85
+ strokeLinejoin: "miter",
86
+ strokeLinecap: "square",
87
+ fill: "none"
88
+ }
89
+ )
90
+ ] }),
91
+ /* ── Duotone ────────────────────────────────────────
92
+ * Secondary-filled bars (no border) + primary text.
93
+ * Draw anim: fills pop (clip-path), text draws
94
+ * via stroke-dasharray — layered reveal.
95
+ */
96
+ vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
97
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: primaryColor }),
98
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "2.75", width: "20", height: "5.5", fill: "white", opacity: "0.08" }),
99
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "9.25", width: "20", height: "5.5", fill: secondaryColor }),
100
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "15.75", width: "20", height: "5.5", fill: "#3B82F6" }),
101
+ /* @__PURE__ */ jsx(
102
+ "path",
103
+ {
104
+ d: "M5.5 7.5V3.5L8.5 7.5V3.5 M10 3.5V7.5 M13.5 3.5H11V7.5H13.5 M17.5 3.5H15V7.5H17.5 M15 5.5H17",
105
+ stroke: "white",
106
+ strokeWidth: "1",
107
+ strokeLinejoin: "miter",
108
+ strokeLinecap: "square",
109
+ fill: "none",
110
+ opacity: "0.35"
111
+ }
112
+ ),
113
+ /* @__PURE__ */ jsx(
114
+ "path",
115
+ {
116
+ d: "M7.5 10H10.5 M9 10V14 M12 10H15V14H12Z",
117
+ stroke: "white",
118
+ strokeWidth: "1",
119
+ strokeLinejoin: "miter",
120
+ strokeLinecap: "square",
121
+ fill: "none",
122
+ opacity: "0.35"
123
+ }
124
+ ),
125
+ /* @__PURE__ */ jsx(
126
+ "path",
127
+ {
128
+ d: "M6 16.5V20.5H7.5L8.5 18.5 7.5 16.5Z M12.5 16.5H10V20.5H12.5 M10 18.5H12 M14 16.5L15.5 20.5 17 16.5",
129
+ stroke: "white",
130
+ strokeWidth: "1",
131
+ strokeLinejoin: "miter",
132
+ strokeLinecap: "square",
133
+ fill: "none",
134
+ opacity: "0.35"
135
+ }
136
+ )
137
+ ] })
138
+ }
49
139
  });
50
- /* ═══════════════════════════════════════════════════════
51
- NtdOmniVerk — OmniVerk brand mark (symbol only)
52
-
53
- Shape: diamond (rotated square) top + inverted triangle bottom.
54
- Centered in 24×24 viewBox.
55
-
56
- Animated variant uses SMIL: diamond drops in from top,
57
- triangle fades up from bottom, subtle scale pulse on hover.
58
- ═══════════════════════════════════════════════════════ */
59
- /**
60
- * Diamond path: centered at (12, 7), side ≈7.07 → rhombus 10×10.
61
- * Triangle path: centered at (12, 18), base 12, height ~6.
62
- *
63
- * Gap between shapes ≈1.5 units for optical balance.
64
- */
65
- const OV_DIAMOND = 'M12 2 L17.5 7 L12 12 L6.5 7Z';
66
- const OV_TRIANGLE = 'M6 14.5 L18 14.5 L12 22Z';
140
+ const OV_DIAMOND = "M12 2 L17.5 7 L12 12 L6.5 7Z";
141
+ const OV_TRIANGLE = "M6 14.5 L18 14.5 L12 22Z";
67
142
  const NtdOmniVerk = /* @__PURE__ */ createIcon({
68
- displayName: 'NtdOmniVerk',
69
- paths: {
70
- solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 -26", to: "0 0", dur: "0.5s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.35s", fill: "freeze" })] }), jsxs("path", { d: OV_TRIANGLE, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 26", to: "0 0", dur: "0.5s", begin: "0.15s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.35s", begin: "0.15s", fill: "freeze" })] })] })),
71
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 60", to: "60 0", dur: "0.7s", fill: "freeze" }) }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 50", to: "50 0", dur: "0.7s", begin: "0.25s", fill: "freeze" }) })] })),
72
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: secondaryOpacity, children: jsx("animateTransform", { attributeName: "transform", type: "scale", from: "0", to: "1", dur: "0.4s", fill: "freeze", calcMode: "spline", keySplines: "0.22 1 0.36 1", additive: "sum" }) }), jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter" }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: secondaryOpacity, children: jsx("animateTransform", { attributeName: "transform", type: "scale", from: "0", to: "1", dur: "0.4s", begin: "0.15s", fill: "freeze", calcMode: "spline", keySplines: "0.22 1 0.36 1", additive: "sum" }) }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter" })] })),
73
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: primaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 -26", to: "0 0", dur: "0.5s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }) }), jsx("path", { d: OV_DIAMOND, fill: "white", opacity: "0.1", children: jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 -26", to: "0 0", dur: "0.5s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }) }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 26", to: "0 0", dur: "0.5s", begin: "0.15s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }) })] })),
74
- },
143
+ displayName: "NtdOmniVerk",
144
+ // its entrance plays in SVG animation elements: their times follow animationSpeed (1.3.17)
145
+ animated: true,
146
+ paths: {
147
+ solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
148
+ /* @__PURE__ */ jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [
149
+ /* @__PURE__ */ jsx(
150
+ "animateTransform",
151
+ {
152
+ attributeName: "transform",
153
+ type: "translate",
154
+ from: "0 -26",
155
+ to: "0 0",
156
+ dur: "0.5s",
157
+ fill: "freeze",
158
+ calcMode: "spline",
159
+ keySplines: "0.34 1 0.64 1"
160
+ }
161
+ ),
162
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.35s", fill: "freeze" })
163
+ ] }),
164
+ /* @__PURE__ */ jsxs("path", { d: OV_TRIANGLE, fill: primaryColor, children: [
165
+ /* @__PURE__ */ jsx(
166
+ "animateTransform",
167
+ {
168
+ attributeName: "transform",
169
+ type: "translate",
170
+ from: "0 26",
171
+ to: "0 0",
172
+ dur: "0.5s",
173
+ begin: "0.15s",
174
+ fill: "freeze",
175
+ calcMode: "spline",
176
+ keySplines: "0.34 1 0.64 1"
177
+ }
178
+ ),
179
+ /* @__PURE__ */ jsx(
180
+ "animate",
181
+ {
182
+ attributeName: "opacity",
183
+ from: "0",
184
+ to: "1",
185
+ dur: "0.35s",
186
+ begin: "0.15s",
187
+ fill: "freeze"
188
+ }
189
+ )
190
+ ] })
191
+ ] }),
192
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
193
+ /* @__PURE__ */ jsx(
194
+ "path",
195
+ {
196
+ d: OV_DIAMOND,
197
+ stroke: primaryColor,
198
+ strokeWidth,
199
+ fill: "none",
200
+ strokeLinejoin: "miter",
201
+ children: /* @__PURE__ */ jsx(
202
+ "animate",
203
+ {
204
+ attributeName: "stroke-dasharray",
205
+ from: "0 60",
206
+ to: "60 0",
207
+ dur: "0.7s",
208
+ fill: "freeze"
209
+ }
210
+ )
211
+ }
212
+ ),
213
+ /* @__PURE__ */ jsx(
214
+ "path",
215
+ {
216
+ d: OV_TRIANGLE,
217
+ stroke: primaryColor,
218
+ strokeWidth,
219
+ fill: "none",
220
+ strokeLinejoin: "miter",
221
+ children: /* @__PURE__ */ jsx(
222
+ "animate",
223
+ {
224
+ attributeName: "stroke-dasharray",
225
+ from: "0 50",
226
+ to: "50 0",
227
+ dur: "0.7s",
228
+ begin: "0.25s",
229
+ fill: "freeze"
230
+ }
231
+ )
232
+ }
233
+ )
234
+ ] }),
235
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => /* @__PURE__ */ jsxs(Fragment, { children: [
236
+ /* @__PURE__ */ jsx("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: secondaryOpacity, children: /* @__PURE__ */ jsx(
237
+ "animateTransform",
238
+ {
239
+ attributeName: "transform",
240
+ type: "scale",
241
+ from: "0",
242
+ to: "1",
243
+ dur: "0.4s",
244
+ fill: "freeze",
245
+ calcMode: "spline",
246
+ keySplines: "0.22 1 0.36 1",
247
+ additive: "sum"
248
+ }
249
+ ) }),
250
+ /* @__PURE__ */ jsx(
251
+ "path",
252
+ {
253
+ d: OV_DIAMOND,
254
+ stroke: primaryColor,
255
+ strokeWidth: "1.5",
256
+ fill: "none",
257
+ strokeLinejoin: "miter"
258
+ }
259
+ ),
260
+ /* @__PURE__ */ jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: secondaryOpacity, children: /* @__PURE__ */ jsx(
261
+ "animateTransform",
262
+ {
263
+ attributeName: "transform",
264
+ type: "scale",
265
+ from: "0",
266
+ to: "1",
267
+ dur: "0.4s",
268
+ begin: "0.15s",
269
+ fill: "freeze",
270
+ calcMode: "spline",
271
+ keySplines: "0.22 1 0.36 1",
272
+ additive: "sum"
273
+ }
274
+ ) }),
275
+ /* @__PURE__ */ jsx(
276
+ "path",
277
+ {
278
+ d: OV_TRIANGLE,
279
+ stroke: primaryColor,
280
+ strokeWidth: "1.5",
281
+ fill: "none",
282
+ strokeLinejoin: "miter"
283
+ }
284
+ )
285
+ ] }),
286
+ vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
287
+ /* @__PURE__ */ jsx("path", { d: OV_DIAMOND, fill: primaryColor, children: /* @__PURE__ */ jsx(
288
+ "animateTransform",
289
+ {
290
+ attributeName: "transform",
291
+ type: "translate",
292
+ from: "0 -26",
293
+ to: "0 0",
294
+ dur: "0.5s",
295
+ fill: "freeze",
296
+ calcMode: "spline",
297
+ keySplines: "0.34 1 0.64 1"
298
+ }
299
+ ) }),
300
+ /* @__PURE__ */ jsx("path", { d: OV_DIAMOND, fill: "white", opacity: "0.1", children: /* @__PURE__ */ jsx(
301
+ "animateTransform",
302
+ {
303
+ attributeName: "transform",
304
+ type: "translate",
305
+ from: "0 -26",
306
+ to: "0 0",
307
+ dur: "0.5s",
308
+ fill: "freeze",
309
+ calcMode: "spline",
310
+ keySplines: "0.34 1 0.64 1"
311
+ }
312
+ ) }),
313
+ /* @__PURE__ */ jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, children: /* @__PURE__ */ jsx(
314
+ "animateTransform",
315
+ {
316
+ attributeName: "transform",
317
+ type: "translate",
318
+ from: "0 26",
319
+ to: "0 0",
320
+ dur: "0.5s",
321
+ begin: "0.15s",
322
+ fill: "freeze",
323
+ calcMode: "spline",
324
+ keySplines: "0.34 1 0.64 1"
325
+ }
326
+ ) })
327
+ ] })
328
+ }
75
329
  });
76
- /* ═══════════════════════════════════════════════════════
77
- NtdOmniVerkLogo — OmniVerk full logo (symbol + text)
78
-
79
- Wider viewBox (80×24) to accommodate the wordmark.
80
- Symbol on the left, "OmniVerk" text on the right.
81
- "Omni" is bold (fill), "Verk" is lighter weight (thinner stroke).
82
-
83
- Entry animation: symbol animates in first, then letters
84
- draw sequentially left-to-right via stroke-dasharray.
85
- ═══════════════════════════════════════════════════════ */
86
- const OVL_DIAMOND = 'M12 1 L18 7 L12 13 L6 7Z';
87
- const OVL_TRIANGLE = 'M5.5 14.5 L18.5 14.5 L12 23Z';
88
- /* Geometric "OmniVerk" text paths (stroke-only, no font dependency).
89
- * Baseline at y≈18, cap-height y≈6.5, x starts at 26. */
90
- const OVL_OMNI =
91
- // O
92
- 'M28 7 L32 7 L32 18 L28 18Z ' +
93
- // m
94
- 'M34 11 L34 18 M34 11 L37 11 L37 18 M37 11 L40 11 L40 18 ' +
95
- // n
96
- 'M42 11 L42 18 M42 11 L46 11 L46 18 ' +
97
- // i
98
- 'M48 11 L48 18 M48 8.5 L48 9.5';
99
- const OVL_VERK =
100
- // V
101
- 'M52 7 L54.5 18 L57 7 ' +
102
- // e
103
- 'M59 14.5 L63 14.5 L63 11 L59 11 L59 18 L63 18 ' +
104
- // r
105
- 'M65 18 L65 11 L68 11 ' +
106
- // k
107
- 'M70 7 L70 18 M70 13 L73.5 11 M70 14 L73.5 18';
108
- const NtdOmniVerkLogo = /* @__PURE__ */ createIcon({
109
- displayName: 'NtdOmniVerkLogo',
110
- viewBox: '0 0 76 24',
111
- paths: {
112
- solid: ({ primaryColor, accentColor }) => (jsxs(Fragment, { children: [jsxs("path", { d: OVL_DIAMOND, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 -26", to: "0 0", dur: "0.45s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", fill: "freeze" })] }), jsxs("path", { d: OVL_TRIANGLE, fill: primaryColor, opacity: "0.85", children: [jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 26", to: "0 0", dur: "0.45s", begin: "0.12s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "0.85", dur: "0.3s", begin: "0.12s", fill: "freeze" })] }), jsxs("path", { d: OVL_OMNI, stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 300", to: "300 0", dur: "0.7s", begin: "0.3s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.1s", begin: "0.3s", fill: "freeze" })] }), jsxs("path", { d: OVL_VERK, stroke: accentColor !== null && accentColor !== void 0 ? accentColor : primaryColor, strokeWidth: "1.3", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", opacity: "0.8", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 250", to: "250 0", dur: "0.6s", begin: "0.55s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "0.8", dur: "0.1s", begin: "0.55s", fill: "freeze" })] })] })),
113
- outline: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OVL_DIAMOND, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 60", to: "60 0", dur: "0.6s", fill: "freeze" }) }), jsx("path", { d: OVL_TRIANGLE, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 50", to: "50 0", dur: "0.5s", begin: "0.2s", fill: "freeze" }) }), jsxs("path", { d: OVL_OMNI, stroke: primaryColor, strokeWidth: "1.8", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 300", to: "300 0", dur: "0.7s", begin: "0.4s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.1s", begin: "0.4s", fill: "freeze" })] }), jsxs("path", { d: OVL_VERK, stroke: primaryColor, strokeWidth: "1.2", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", opacity: "0.7", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 250", to: "250 0", dur: "0.6s", begin: "0.6s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "0.7", dur: "0.1s", begin: "0.6s", fill: "freeze" })] })] })),
114
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: OVL_DIAMOND, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: OVL_DIAMOND, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter" }), jsx("path", { d: OVL_TRIANGLE, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: OVL_TRIANGLE, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter" }), jsxs("path", { d: OVL_OMNI, stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 300", to: "300 0", dur: "0.8s", begin: "0.1s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.1s", begin: "0.1s", fill: "freeze" })] }), jsxs("path", { d: OVL_VERK, stroke: primaryColor, strokeWidth: "1.3", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", opacity: "0.7", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 250", to: "250 0", dur: "0.6s", begin: "0.4s", fill: "freeze" }), jsx("animate", { attributeName: "opacity", from: "0", to: "0.7", dur: "0.1s", begin: "0.4s", fill: "freeze" })] })] })),
115
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OVL_DIAMOND, fill: primaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 -26", to: "0 0", dur: "0.45s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }) }), jsx("path", { d: OVL_TRIANGLE, fill: secondaryColor, opacity: "0.85", children: jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 26", to: "0 0", dur: "0.45s", begin: "0.12s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" }) }), jsx("path", { d: OVL_OMNI, stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 300", to: "300 0", dur: "0.7s", begin: "0.3s", fill: "freeze" }) }), jsx("path", { d: OVL_VERK, stroke: secondaryColor, strokeWidth: "1.3", fill: "none", strokeLinecap: "square", strokeLinejoin: "miter", opacity: "0.75", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 250", to: "250 0", dur: "0.6s", begin: "0.55s", fill: "freeze" }) })] })),
116
- },
117
- });
118
- /* ═══════════════════════════════════════════════════════
119
- NtdOmniVerkSpinner — Animated loading spinner
120
-
121
- Diamond rotates continuously, triangle pulses opacity.
122
- Useful for loading states, splash screens, transitions.
123
- ═══════════════════════════════════════════════════════ */
124
- const NtdOmniVerkSpinner = /* @__PURE__ */ createIcon({
125
- displayName: 'NtdOmniVerkSpinner',
126
- paths: {
127
- solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("g", { children: jsx("path", { d: OV_DIAMOND, fill: primaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "0 12 7", to: "360 12 7", dur: "1.8s", repeatCount: "indefinite" }) }) }), jsx("path", { d: OV_TRIANGLE, fill: primaryColor, children: jsx("animate", { attributeName: "opacity", values: "1;0.3;1", dur: "1.8s", repeatCount: "indefinite" }) })] })),
128
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("g", { children: jsxs("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: [jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "0 12 7", to: "360 12 7", dur: "1.8s", repeatCount: "indefinite" }), jsx("animate", { attributeName: "stroke-dasharray", values: "0 40;20 20;40 0;20 20;0 40", dur: "1.8s", repeatCount: "indefinite" })] }) }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", values: "0 50;25 25;50 0;25 25;0 50", dur: "2.4s", repeatCount: "indefinite" }) })] })),
129
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: secondaryOpacity, children: jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "0 12 7", to: "360 12 7", dur: "1.8s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter", children: jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "0 12 7", to: "360 12 7", dur: "1.8s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: secondaryOpacity, children: jsx("animate", { attributeName: "opacity", values: `${secondaryOpacity};0.1;${secondaryOpacity}`, dur: "1.8s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter" })] })),
130
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("g", { children: jsx("path", { d: OV_DIAMOND, fill: primaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "0 12 7", to: "360 12 7", dur: "1.8s", repeatCount: "indefinite" }) }) }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, children: jsx("animate", { attributeName: "opacity", values: "1;0.4;1", dur: "1.8s", repeatCount: "indefinite" }) })] })),
131
- },
132
- });
133
- /* ═══════════════════════════════════════════════════════
134
- NtdOmniVerkBadge — Compact badge/favicon variant
135
-
136
- OmniVerk symbol inside a rounded circle — optimized
137
- for 16×16 / 32×32 favicon use and avatar badges.
138
- Entry animation: circle scales in → shapes pop.
139
- ═══════════════════════════════════════════════════════ */
140
- const OVB_DIAMOND = 'M12 4 L16 8 L12 12 L8 8Z';
141
- const OVB_TRIANGLE = 'M8 13.5 L16 13.5 L12 19.5Z';
142
- const NtdOmniVerkBadge = /* @__PURE__ */ createIcon({
143
- displayName: 'NtdOmniVerkBadge',
144
- paths: {
145
- solid: ({ primaryColor, accentColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "11", fill: primaryColor, children: jsx("animateTransform", { attributeName: "transform", type: "scale", from: "0", to: "1", dur: "0.3s", fill: "freeze", calcMode: "spline", keySplines: "0.22 1 0.36 1", additive: "sum" }) }), jsx("path", { d: OVB_DIAMOND, fill: accentColor !== null && accentColor !== void 0 ? accentColor : '#fff', children: jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.2s", begin: "0.2s", fill: "freeze" }) }), jsx("path", { d: OVB_TRIANGLE, fill: accentColor !== null && accentColor !== void 0 ? accentColor : '#fff', children: jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.2s", begin: "0.3s", fill: "freeze" }) })] })),
146
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 80", to: "80 0", dur: "0.5s", fill: "freeze" }) }), jsx("path", { d: OVB_DIAMOND, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 40", to: "40 0", dur: "0.4s", begin: "0.3s", fill: "freeze" }) }), jsx("path", { d: OVB_TRIANGLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 30", to: "30 0", dur: "0.4s", begin: "0.5s", fill: "freeze" }) })] })),
147
- duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "11", fill: secondaryColor, opacity: secondaryOpacity }), jsx("circle", { cx: "12", cy: "12", r: "11", stroke: primaryColor, strokeWidth: "1.5", fill: "none" }), jsx("path", { d: OVB_DIAMOND, fill: primaryColor }), jsx("path", { d: OVB_TRIANGLE, fill: primaryColor })] }))),
148
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "11", fill: primaryColor }), jsx("circle", { cx: "12", cy: "12", r: "11", fill: "white", opacity: "0.08" }), jsx("path", { d: OVB_DIAMOND, fill: "white" }), jsx("path", { d: OVB_TRIANGLE, fill: secondaryColor })] })),
149
- },
150
- });
151
- /* ═══════════════════════════════════════════════════════
152
- NtdOmniVerkWatermark — Semi-transparent watermark
153
-
154
- Intended for document backgrounds, slide overlays,
155
- and PDF watermarks. Very light, non-intrusive.
156
- Subtle infinite breathing animation.
157
- ═══════════════════════════════════════════════════════ */
158
- const NtdOmniVerkWatermark = /* @__PURE__ */ createIcon({
159
- displayName: 'NtdOmniVerkWatermark',
160
- paths: {
161
- solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: primaryColor, opacity: "0.08", children: jsx("animate", { attributeName: "opacity", values: "0.08;0.14;0.08", dur: "4s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_TRIANGLE, fill: primaryColor, opacity: "0.06", children: jsx("animate", { attributeName: "opacity", values: "0.06;0.11;0.06", dur: "4s", begin: "0.5s", repeatCount: "indefinite" }) })] })),
162
- outline: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: "0.5", fill: "none", opacity: "0.1", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "opacity", values: "0.1;0.18;0.1", dur: "4s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: "0.5", fill: "none", opacity: "0.08", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "opacity", values: "0.08;0.15;0.08", dur: "4s", begin: "0.5s", repeatCount: "indefinite" }) })] })),
163
- duotone: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: "0.06" }), jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: "0.5", fill: "none", opacity: "0.08", strokeLinejoin: "miter" }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: "0.05" }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: "0.5", fill: "none", opacity: "0.06", strokeLinejoin: "miter" })] })),
164
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: OV_DIAMOND, fill: primaryColor, opacity: "0.1", children: jsx("animate", { attributeName: "opacity", values: "0.1;0.16;0.1", dur: "4s", repeatCount: "indefinite" }) }), jsx("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: "0.07", children: jsx("animate", { attributeName: "opacity", values: "0.07;0.13;0.07", dur: "4s", begin: "0.5s", repeatCount: "indefinite" }) })] })),
165
- },
166
- });
167
- /* ═══════════════════════════════════════════════════════
168
- NtdOmniVerkAnimated — Elaborate entrance animation
169
-
170
- Diamond and triangle morph in with staggered spring
171
- physics, followed by a one-time scale bounce and
172
- color sweep. Designed for splash screens and hero
173
- section entry effects.
174
- ═══════════════════════════════════════════════════════ */
175
330
  const NtdOmniVerkAnimated = /* @__PURE__ */ createIcon({
176
- displayName: 'NtdOmniVerkAnimated',
177
- paths: {
178
- solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("g", { children: jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", values: "0 -30;0 2;0 -1;0 0", keyTimes: "0;0.5;0.75;1", dur: "0.8s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", fill: "freeze" })] }) }), jsx("g", { children: jsxs("path", { d: OV_TRIANGLE, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", values: "0 30;0 -2;0 1;0 0", keyTimes: "0;0.5;0.75;1", dur: "0.8s", begin: "0.2s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", begin: "0.2s", fill: "freeze" })] }) }), jsx("animateTransform", { attributeName: "transform", type: "scale", values: "1;1.08;0.98;1", keyTimes: "0;0.4;0.7;1", dur: "0.4s", begin: "0.9s", fill: "freeze", additive: "sum" })] })),
179
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsxs("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 60", to: "60 0", dur: "0.6s", fill: "freeze", calcMode: "spline", keySplines: "0.22 1 0.36 1" }), jsx("animateTransform", { attributeName: "transform", type: "rotate", from: "90 12 7", to: "0 12 7", dur: "0.6s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" })] }), jsxs("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "miter", children: [jsx("animate", { attributeName: "stroke-dasharray", from: "0 50", to: "50 0", dur: "0.5s", begin: "0.35s", fill: "freeze", calcMode: "spline", keySplines: "0.22 1 0.36 1" }), jsx("animateTransform", { attributeName: "transform", type: "translate", from: "0 10", to: "0 0", dur: "0.5s", begin: "0.35s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1" })] })] })),
180
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsxs("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: "0", children: [jsx("animate", { attributeName: "opacity", from: "0", to: String(secondaryOpacity), dur: "0.3s", begin: "0.1s", fill: "freeze" }), jsx("animateTransform", { attributeName: "transform", type: "scale", from: "0.3", to: "1", dur: "0.5s", begin: "0.1s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1", additive: "sum" })] }), jsx("path", { d: OV_DIAMOND, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 60", to: "60 0", dur: "0.5s", begin: "0.2s", fill: "freeze" }) }), jsxs("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: "0", children: [jsx("animate", { attributeName: "opacity", from: "0", to: String(secondaryOpacity), dur: "0.3s", begin: "0.3s", fill: "freeze" }), jsx("animateTransform", { attributeName: "transform", type: "scale", from: "0.3", to: "1", dur: "0.5s", begin: "0.3s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1", additive: "sum" })] }), jsx("path", { d: OV_TRIANGLE, stroke: primaryColor, strokeWidth: "1.5", fill: "none", strokeLinejoin: "miter", children: jsx("animate", { attributeName: "stroke-dasharray", from: "0 50", to: "50 0", dur: "0.5s", begin: "0.4s", fill: "freeze" }) })] })),
181
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("g", { children: jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", values: "0 -30;0 2;0 -1;0 0", keyTimes: "0;0.5;0.75;1", dur: "0.8s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", fill: "freeze" })] }) }), jsx("g", { children: jsxs("path", { d: OV_TRIANGLE, fill: secondaryColor, children: [jsx("animateTransform", { attributeName: "transform", type: "translate", values: "0 30;0 -2;0 1;0 0", keyTimes: "0;0.5;0.75;1", dur: "0.8s", begin: "0.2s", fill: "freeze", calcMode: "spline", keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1" }), jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", begin: "0.2s", fill: "freeze" })] }) })] })),
182
- },
331
+ displayName: "NtdOmniVerkAnimated",
332
+ // its entrance plays in SVG animation elements: their times follow animationSpeed (1.3.17)
333
+ animated: true,
334
+ paths: {
335
+ solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
336
+ /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [
337
+ /* @__PURE__ */ jsx(
338
+ "animateTransform",
339
+ {
340
+ attributeName: "transform",
341
+ type: "translate",
342
+ values: "0 -30;0 2;0 -1;0 0",
343
+ keyTimes: "0;0.5;0.75;1",
344
+ dur: "0.8s",
345
+ fill: "freeze",
346
+ calcMode: "spline",
347
+ keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1"
348
+ }
349
+ ),
350
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", fill: "freeze" })
351
+ ] }) }),
352
+ /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsxs("path", { d: OV_TRIANGLE, fill: primaryColor, children: [
353
+ /* @__PURE__ */ jsx(
354
+ "animateTransform",
355
+ {
356
+ attributeName: "transform",
357
+ type: "translate",
358
+ values: "0 30;0 -2;0 1;0 0",
359
+ keyTimes: "0;0.5;0.75;1",
360
+ dur: "0.8s",
361
+ begin: "0.2s",
362
+ fill: "freeze",
363
+ calcMode: "spline",
364
+ keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1"
365
+ }
366
+ ),
367
+ /* @__PURE__ */ jsx(
368
+ "animate",
369
+ {
370
+ attributeName: "opacity",
371
+ from: "0",
372
+ to: "1",
373
+ dur: "0.3s",
374
+ begin: "0.2s",
375
+ fill: "freeze"
376
+ }
377
+ )
378
+ ] }) }),
379
+ /* @__PURE__ */ jsx(
380
+ "animateTransform",
381
+ {
382
+ attributeName: "transform",
383
+ type: "scale",
384
+ values: "1;1.08;0.98;1",
385
+ keyTimes: "0;0.4;0.7;1",
386
+ dur: "0.4s",
387
+ begin: "0.9s",
388
+ fill: "freeze",
389
+ additive: "sum"
390
+ }
391
+ )
392
+ ] }),
393
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
394
+ /* @__PURE__ */ jsxs(
395
+ "path",
396
+ {
397
+ d: OV_DIAMOND,
398
+ stroke: primaryColor,
399
+ strokeWidth,
400
+ fill: "none",
401
+ strokeLinejoin: "miter",
402
+ children: [
403
+ /* @__PURE__ */ jsx(
404
+ "animate",
405
+ {
406
+ attributeName: "stroke-dasharray",
407
+ from: "0 60",
408
+ to: "60 0",
409
+ dur: "0.6s",
410
+ fill: "freeze",
411
+ calcMode: "spline",
412
+ keySplines: "0.22 1 0.36 1"
413
+ }
414
+ ),
415
+ /* @__PURE__ */ jsx(
416
+ "animateTransform",
417
+ {
418
+ attributeName: "transform",
419
+ type: "rotate",
420
+ from: "90 12 7",
421
+ to: "0 12 7",
422
+ dur: "0.6s",
423
+ fill: "freeze",
424
+ calcMode: "spline",
425
+ keySplines: "0.34 1 0.64 1"
426
+ }
427
+ )
428
+ ]
429
+ }
430
+ ),
431
+ /* @__PURE__ */ jsxs(
432
+ "path",
433
+ {
434
+ d: OV_TRIANGLE,
435
+ stroke: primaryColor,
436
+ strokeWidth,
437
+ fill: "none",
438
+ strokeLinejoin: "miter",
439
+ children: [
440
+ /* @__PURE__ */ jsx(
441
+ "animate",
442
+ {
443
+ attributeName: "stroke-dasharray",
444
+ from: "0 50",
445
+ to: "50 0",
446
+ dur: "0.5s",
447
+ begin: "0.35s",
448
+ fill: "freeze",
449
+ calcMode: "spline",
450
+ keySplines: "0.22 1 0.36 1"
451
+ }
452
+ ),
453
+ /* @__PURE__ */ jsx(
454
+ "animateTransform",
455
+ {
456
+ attributeName: "transform",
457
+ type: "translate",
458
+ from: "0 10",
459
+ to: "0 0",
460
+ dur: "0.5s",
461
+ begin: "0.35s",
462
+ fill: "freeze",
463
+ calcMode: "spline",
464
+ keySplines: "0.34 1 0.64 1"
465
+ }
466
+ )
467
+ ]
468
+ }
469
+ )
470
+ ] }),
471
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => /* @__PURE__ */ jsxs(Fragment, { children: [
472
+ /* @__PURE__ */ jsxs("path", { d: OV_DIAMOND, fill: secondaryColor, opacity: "0", children: [
473
+ /* @__PURE__ */ jsx(
474
+ "animate",
475
+ {
476
+ attributeName: "opacity",
477
+ from: "0",
478
+ to: String(secondaryOpacity),
479
+ dur: "0.3s",
480
+ begin: "0.1s",
481
+ fill: "freeze"
482
+ }
483
+ ),
484
+ /* @__PURE__ */ jsx(
485
+ "animateTransform",
486
+ {
487
+ attributeName: "transform",
488
+ type: "scale",
489
+ from: "0.3",
490
+ to: "1",
491
+ dur: "0.5s",
492
+ begin: "0.1s",
493
+ fill: "freeze",
494
+ calcMode: "spline",
495
+ keySplines: "0.34 1 0.64 1",
496
+ additive: "sum"
497
+ }
498
+ )
499
+ ] }),
500
+ /* @__PURE__ */ jsx(
501
+ "path",
502
+ {
503
+ d: OV_DIAMOND,
504
+ stroke: primaryColor,
505
+ strokeWidth: "1.5",
506
+ fill: "none",
507
+ strokeLinejoin: "miter",
508
+ children: /* @__PURE__ */ jsx(
509
+ "animate",
510
+ {
511
+ attributeName: "stroke-dasharray",
512
+ from: "0 60",
513
+ to: "60 0",
514
+ dur: "0.5s",
515
+ begin: "0.2s",
516
+ fill: "freeze"
517
+ }
518
+ )
519
+ }
520
+ ),
521
+ /* @__PURE__ */ jsxs("path", { d: OV_TRIANGLE, fill: secondaryColor, opacity: "0", children: [
522
+ /* @__PURE__ */ jsx(
523
+ "animate",
524
+ {
525
+ attributeName: "opacity",
526
+ from: "0",
527
+ to: String(secondaryOpacity),
528
+ dur: "0.3s",
529
+ begin: "0.3s",
530
+ fill: "freeze"
531
+ }
532
+ ),
533
+ /* @__PURE__ */ jsx(
534
+ "animateTransform",
535
+ {
536
+ attributeName: "transform",
537
+ type: "scale",
538
+ from: "0.3",
539
+ to: "1",
540
+ dur: "0.5s",
541
+ begin: "0.3s",
542
+ fill: "freeze",
543
+ calcMode: "spline",
544
+ keySplines: "0.34 1 0.64 1",
545
+ additive: "sum"
546
+ }
547
+ )
548
+ ] }),
549
+ /* @__PURE__ */ jsx(
550
+ "path",
551
+ {
552
+ d: OV_TRIANGLE,
553
+ stroke: primaryColor,
554
+ strokeWidth: "1.5",
555
+ fill: "none",
556
+ strokeLinejoin: "miter",
557
+ children: /* @__PURE__ */ jsx(
558
+ "animate",
559
+ {
560
+ attributeName: "stroke-dasharray",
561
+ from: "0 50",
562
+ to: "50 0",
563
+ dur: "0.5s",
564
+ begin: "0.4s",
565
+ fill: "freeze"
566
+ }
567
+ )
568
+ }
569
+ )
570
+ ] }),
571
+ vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
572
+ /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsxs("path", { d: OV_DIAMOND, fill: primaryColor, children: [
573
+ /* @__PURE__ */ jsx(
574
+ "animateTransform",
575
+ {
576
+ attributeName: "transform",
577
+ type: "translate",
578
+ values: "0 -30;0 2;0 -1;0 0",
579
+ keyTimes: "0;0.5;0.75;1",
580
+ dur: "0.8s",
581
+ fill: "freeze",
582
+ calcMode: "spline",
583
+ keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1"
584
+ }
585
+ ),
586
+ /* @__PURE__ */ jsx("animate", { attributeName: "opacity", from: "0", to: "1", dur: "0.3s", fill: "freeze" })
587
+ ] }) }),
588
+ /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsxs("path", { d: OV_TRIANGLE, fill: secondaryColor, children: [
589
+ /* @__PURE__ */ jsx(
590
+ "animateTransform",
591
+ {
592
+ attributeName: "transform",
593
+ type: "translate",
594
+ values: "0 30;0 -2;0 1;0 0",
595
+ keyTimes: "0;0.5;0.75;1",
596
+ dur: "0.8s",
597
+ begin: "0.2s",
598
+ fill: "freeze",
599
+ calcMode: "spline",
600
+ keySplines: "0.34 1 0.64 1;0.34 1 0.64 1;0.22 1 0.36 1"
601
+ }
602
+ ),
603
+ /* @__PURE__ */ jsx(
604
+ "animate",
605
+ {
606
+ attributeName: "opacity",
607
+ from: "0",
608
+ to: "1",
609
+ dur: "0.3s",
610
+ begin: "0.2s",
611
+ fill: "freeze"
612
+ }
613
+ )
614
+ ] }) })
615
+ ] })
616
+ }
183
617
  });
184
-
185
- export { NtdNiceToDev, NtdOmniVerk, NtdOmniVerkAnimated, NtdOmniVerkBadge, NtdOmniVerkLogo, NtdOmniVerkSpinner, NtdOmniVerkWatermark };
618
+ export {
619
+ NtdNiceToDev,
620
+ NtdOmniVerk,
621
+ NtdOmniVerkAnimated
622
+ };