@nice2dev/icons 1.3.17 → 1.4.0

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.
@@ -1,6 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef, useId } from "react";
3
- import { retimeTree, durationScale } from "./animationSpeed.js";
3
+ import { motionTree, durationScale } from "./animationSpeed.js";
4
+ import { useStillMotion } from "./reducedMotion.js";
4
5
  const wrapperBase = {
5
6
  position: "relative",
6
7
  display: "inline-flex",
@@ -19,6 +20,7 @@ const NtdIconFloral = /* @__PURE__ */ Object.assign(
19
20
  animate = true,
20
21
  duration: durationProp,
21
22
  animationSpeed,
23
+ reducedMotion,
22
24
  intensity = "normal",
23
25
  vineColor = "#22c55e",
24
26
  petalColor = "#f472b6",
@@ -26,6 +28,7 @@ const NtdIconFloral = /* @__PURE__ */ Object.assign(
26
28
  className,
27
29
  style
28
30
  }, ref) => {
31
+ const still = useStillMotion(reducedMotion);
29
32
  const duration = durationProp ?? 2;
30
33
  const lc = leafColor ?? vineColor;
31
34
  const dur = `${duration}s`;
@@ -67,7 +70,7 @@ const NtdIconFloral = /* @__PURE__ */ Object.assign(
67
70
  ] : []
68
71
  ];
69
72
  const dashLen = 250;
70
- return retimeTree(
73
+ return motionTree(
71
74
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
72
75
  children,
73
76
  /* @__PURE__ */ jsxs(
@@ -199,7 +202,8 @@ const NtdIconFloral = /* @__PURE__ */ Object.assign(
199
202
  }
200
203
  )
201
204
  ] }),
202
- durationScale(durationProp !== void 0, animationSpeed)
205
+ durationScale(durationProp !== void 0, animationSpeed),
206
+ still
203
207
  );
204
208
  }
205
209
  ),
@@ -212,12 +216,14 @@ const NtdIconFestive = /* @__PURE__ */ Object.assign(
212
216
  animate = true,
213
217
  duration: durationProp,
214
218
  animationSpeed,
219
+ reducedMotion,
215
220
  intensity = "normal",
216
221
  colors,
217
222
  sparkleColor = "#fbbf24",
218
223
  className,
219
224
  style
220
225
  }, ref) => {
226
+ const still = useStillMotion(reducedMotion);
221
227
  const duration = durationProp ?? 1.5;
222
228
  const cols = colors ?? ["#ef4444", "#f59e0b", "#22c55e", "#3b82f6", "#a855f7", "#ec4899"];
223
229
  const dur = `${duration * 0.6}s`;
@@ -268,7 +274,7 @@ const NtdIconFestive = /* @__PURE__ */ Object.assign(
268
274
  { cx: 97, cy: 45, r: 1.1 }
269
275
  ] : []
270
276
  ];
271
- return retimeTree(
277
+ return motionTree(
272
278
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
273
279
  children,
274
280
  /* @__PURE__ */ jsxs(
@@ -385,7 +391,8 @@ const NtdIconFestive = /* @__PURE__ */ Object.assign(
385
391
  }
386
392
  )
387
393
  ] }),
388
- durationScale(durationProp !== void 0, animationSpeed)
394
+ durationScale(durationProp !== void 0, animationSpeed),
395
+ still
389
396
  );
390
397
  }
391
398
  ),
@@ -398,6 +405,7 @@ const NtdIconNeon = /* @__PURE__ */ Object.assign(
398
405
  animate = true,
399
406
  duration: durationProp,
400
407
  animationSpeed,
408
+ reducedMotion,
401
409
  intensity = "normal",
402
410
  glowColor = "#0ff",
403
411
  secondaryGlow,
@@ -405,6 +413,7 @@ const NtdIconNeon = /* @__PURE__ */ Object.assign(
405
413
  className,
406
414
  style
407
415
  }, ref) => {
416
+ const still = useStillMotion(reducedMotion);
408
417
  const duration = durationProp ?? 4;
409
418
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
410
419
  const glow2 = secondaryGlow ?? glowColor;
@@ -418,7 +427,7 @@ const NtdIconNeon = /* @__PURE__ */ Object.assign(
418
427
  ].filter(Boolean).join(" ");
419
428
  const dimFilter = `drop-shadow(0 0 ${blur * 0.2}px ${glowColor})`;
420
429
  const animName = `ntd_neon_${uid}`;
421
- return retimeTree(
430
+ return motionTree(
422
431
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
423
432
  animate && flicker && /* @__PURE__ */ jsx("style", { children: `
424
433
  @keyframes ${animName} {
@@ -438,7 +447,8 @@ const NtdIconNeon = /* @__PURE__ */ Object.assign(
438
447
  }
439
448
  )
440
449
  ] }),
441
- durationScale(durationProp !== void 0, animationSpeed)
450
+ durationScale(durationProp !== void 0, animationSpeed),
451
+ still
442
452
  );
443
453
  }
444
454
  ),
@@ -451,12 +461,14 @@ const NtdIconSketch = /* @__PURE__ */ Object.assign(
451
461
  animate = true,
452
462
  duration: durationProp,
453
463
  animationSpeed,
464
+ reducedMotion,
454
465
  intensity = "normal",
455
466
  strokeColor = "#374151",
456
467
  roughness = 2,
457
468
  className,
458
469
  style
459
470
  }, ref) => {
471
+ const still = useStillMotion(reducedMotion);
460
472
  const duration = durationProp ?? 1.5;
461
473
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
462
474
  const filterId = `ntd_sketch_${uid}`;
@@ -473,7 +485,7 @@ const NtdIconSketch = /* @__PURE__ */ Object.assign(
473
485
  { x1: 10, y1: 12, x2: 16, y2: 10 },
474
486
  { x1: 84, y1: 12, x2: 90, y2: 10 }
475
487
  ];
476
- return retimeTree(
488
+ return motionTree(
477
489
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
478
490
  /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, "aria-hidden": true, children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", { id: filterId, children: [
479
491
  /* @__PURE__ */ jsx(
@@ -580,7 +592,8 @@ const NtdIconSketch = /* @__PURE__ */ Object.assign(
580
592
  }
581
593
  )
582
594
  ] }),
583
- durationScale(durationProp !== void 0, animationSpeed)
595
+ durationScale(durationProp !== void 0, animationSpeed),
596
+ still
584
597
  );
585
598
  }
586
599
  ),
@@ -593,12 +606,14 @@ const NtdIconWatercolor = /* @__PURE__ */ Object.assign(
593
606
  animate = true,
594
607
  duration: durationProp,
595
608
  animationSpeed,
609
+ reducedMotion,
596
610
  intensity = "normal",
597
611
  tintColor = "#818cf8",
598
612
  bleedColor = "#f0abfc",
599
613
  className,
600
614
  style
601
615
  }, ref) => {
616
+ const still = useStillMotion(reducedMotion);
602
617
  const duration = durationProp ?? 2;
603
618
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
604
619
  const filterId = `ntd_wc_${uid}`;
@@ -628,7 +643,7 @@ const NtdIconWatercolor = /* @__PURE__ */ Object.assign(
628
643
  { cx: 92, cy: 55, r: 1 }
629
644
  ] : []
630
645
  ];
631
- return retimeTree(
646
+ return motionTree(
632
647
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
633
648
  /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, "aria-hidden": true, children: /* @__PURE__ */ jsxs("defs", { children: [
634
649
  /* @__PURE__ */ jsxs("filter", { id: filterId, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [
@@ -738,7 +753,8 @@ const NtdIconWatercolor = /* @__PURE__ */ Object.assign(
738
753
  }
739
754
  )
740
755
  ] }),
741
- durationScale(durationProp !== void 0, animationSpeed)
756
+ durationScale(durationProp !== void 0, animationSpeed),
757
+ still
742
758
  );
743
759
  }
744
760
  ),
@@ -751,6 +767,7 @@ const NtdIconCosmic = /* @__PURE__ */ Object.assign(
751
767
  animate = true,
752
768
  duration: durationProp,
753
769
  animationSpeed,
770
+ reducedMotion,
754
771
  intensity = "normal",
755
772
  starColor = "#e2e8f0",
756
773
  nebulaColor = "#7c3aed",
@@ -758,6 +775,7 @@ const NtdIconCosmic = /* @__PURE__ */ Object.assign(
758
775
  className,
759
776
  style
760
777
  }, ref) => {
778
+ const still = useStillMotion(reducedMotion);
761
779
  const duration = durationProp ?? 2;
762
780
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
763
781
  const nebulaFilter = `ntd_cosm_${uid}`;
@@ -809,7 +827,7 @@ const NtdIconCosmic = /* @__PURE__ */ Object.assign(
809
827
  ] : []
810
828
  ];
811
829
  const lineLen = 80;
812
- return retimeTree(
830
+ return motionTree(
813
831
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
814
832
  /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, "aria-hidden": true, children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("filter", { id: nebulaFilter, children: /* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "4" }) }) }) }),
815
833
  /* @__PURE__ */ jsxs(
@@ -958,7 +976,8 @@ const NtdIconCosmic = /* @__PURE__ */ Object.assign(
958
976
  }
959
977
  )
960
978
  ] }),
961
- durationScale(durationProp !== void 0, animationSpeed)
979
+ durationScale(durationProp !== void 0, animationSpeed),
980
+ still
962
981
  );
963
982
  }
964
983
  ),
@@ -971,6 +990,7 @@ const NtdIconSteampunk = /* @__PURE__ */ Object.assign(
971
990
  animate = true,
972
991
  duration: durationProp,
973
992
  animationSpeed,
993
+ reducedMotion,
974
994
  intensity = "normal",
975
995
  brassColor = "#b45309",
976
996
  pipeColor = "#78350f",
@@ -978,6 +998,7 @@ const NtdIconSteampunk = /* @__PURE__ */ Object.assign(
978
998
  className,
979
999
  style
980
1000
  }, ref) => {
1001
+ const still = useStillMotion(reducedMotion);
981
1002
  const duration = durationProp ?? 3;
982
1003
  const makeGear = (cx, cy, r, teeth) => {
983
1004
  const inner = r * 0.68;
@@ -1030,7 +1051,7 @@ const NtdIconSteampunk = /* @__PURE__ */ Object.assign(
1030
1051
  { cx: 55, cy: -4, r: 2.2 },
1031
1052
  { cx: 47, cy: -10, r: 1.6 }
1032
1053
  ];
1033
- return retimeTree(
1054
+ return motionTree(
1034
1055
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
1035
1056
  /* @__PURE__ */ jsxs(
1036
1057
  "svg",
@@ -1135,7 +1156,8 @@ const NtdIconSteampunk = /* @__PURE__ */ Object.assign(
1135
1156
  }
1136
1157
  )
1137
1158
  ] }),
1138
- durationScale(durationProp !== void 0, animationSpeed)
1159
+ durationScale(durationProp !== void 0, animationSpeed),
1160
+ still
1139
1161
  );
1140
1162
  }
1141
1163
  ),
@@ -1148,12 +1170,14 @@ const NtdIconFrost = /* @__PURE__ */ Object.assign(
1148
1170
  animate = true,
1149
1171
  duration: durationProp,
1150
1172
  animationSpeed,
1173
+ reducedMotion,
1151
1174
  intensity = "normal",
1152
1175
  crystalColor = "#bae6fd",
1153
1176
  glowColor = "#38bdf8",
1154
1177
  className,
1155
1178
  style
1156
1179
  }, ref) => {
1180
+ const still = useStillMotion(reducedMotion);
1157
1181
  const duration = durationProp ?? 2;
1158
1182
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
1159
1183
  const glowFilterId = `ntd_frost_${uid}`;
@@ -1211,7 +1235,7 @@ const NtdIconFrost = /* @__PURE__ */ Object.assign(
1211
1235
  { cx: 14, cy: 96, r: 1 },
1212
1236
  { cx: 86, cy: 96, r: 1.1 }
1213
1237
  ];
1214
- return retimeTree(
1238
+ return motionTree(
1215
1239
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
1216
1240
  /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, "aria-hidden": true, children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("filter", { id: glowFilterId, children: /* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "6" }) }) }) }),
1217
1241
  /* @__PURE__ */ jsxs(
@@ -1330,7 +1354,8 @@ const NtdIconFrost = /* @__PURE__ */ Object.assign(
1330
1354
  ),
1331
1355
  /* @__PURE__ */ jsx("span", { style: { display: "inline-flex", position: "relative", zIndex: 1 }, children })
1332
1356
  ] }),
1333
- durationScale(durationProp !== void 0, animationSpeed)
1357
+ durationScale(durationProp !== void 0, animationSpeed),
1358
+ still
1334
1359
  );
1335
1360
  }
1336
1361
  ),
@@ -1343,6 +1368,7 @@ const NtdIconPixel = /* @__PURE__ */ Object.assign(
1343
1368
  animate = true,
1344
1369
  duration: durationProp,
1345
1370
  animationSpeed,
1371
+ reducedMotion,
1346
1372
  intensity = "normal",
1347
1373
  pixelColor = "#22d3ee",
1348
1374
  scanlineColor = "#000000",
@@ -1350,6 +1376,7 @@ const NtdIconPixel = /* @__PURE__ */ Object.assign(
1350
1376
  className,
1351
1377
  style
1352
1378
  }, ref) => {
1379
+ const still = useStillMotion(reducedMotion);
1353
1380
  const duration = durationProp ?? 0.5;
1354
1381
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
1355
1382
  const scanAnimName = `ntd_pixel_scan_${uid}`;
@@ -1388,7 +1415,7 @@ const NtdIconPixel = /* @__PURE__ */ Object.assign(
1388
1415
  { x: 48, y: 96 }
1389
1416
  ] : [];
1390
1417
  const allPixels = intensity === "subtle" ? basePixels.filter((_, i) => i % 2 === 0) : [...basePixels, ...extraPixels];
1391
- return retimeTree(
1418
+ return motionTree(
1392
1419
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
1393
1420
  animate && /* @__PURE__ */ jsx("style", { children: `
1394
1421
  @keyframes ${scanAnimName} {
@@ -1470,7 +1497,8 @@ const NtdIconPixel = /* @__PURE__ */ Object.assign(
1470
1497
  }
1471
1498
  )
1472
1499
  ] }),
1473
- durationScale(durationProp !== void 0, animationSpeed)
1500
+ durationScale(durationProp !== void 0, animationSpeed),
1501
+ still
1474
1502
  );
1475
1503
  }
1476
1504
  ),
@@ -1483,6 +1511,7 @@ const NtdIconOrganic = /* @__PURE__ */ Object.assign(
1483
1511
  animate = true,
1484
1512
  duration: durationProp,
1485
1513
  animationSpeed,
1514
+ reducedMotion,
1486
1515
  intensity = "normal",
1487
1516
  cellColor = "#86efac",
1488
1517
  membraneColor = "#4ade80",
@@ -1490,6 +1519,7 @@ const NtdIconOrganic = /* @__PURE__ */ Object.assign(
1490
1519
  className,
1491
1520
  style
1492
1521
  }, ref) => {
1522
+ const still = useStillMotion(reducedMotion);
1493
1523
  const duration = durationProp ?? 3;
1494
1524
  const uid = useId().replace(/[^a-zA-Z0-9]/g, "_");
1495
1525
  const blobFilterId = `ntd_org_${uid}`;
@@ -1520,7 +1550,7 @@ const NtdIconOrganic = /* @__PURE__ */ Object.assign(
1520
1550
  { cx: 60, cy: 95, r: 1.5 }
1521
1551
  ];
1522
1552
  const bubbleCount = intensity === "subtle" ? 2 : intensity === "dense" ? 6 : 4;
1523
- return retimeTree(
1553
+ return motionTree(
1524
1554
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
1525
1555
  /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, "aria-hidden": true, children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("filter", { id: blobFilterId, children: /* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "4" }) }) }) }),
1526
1556
  /* @__PURE__ */ jsxs(
@@ -1640,7 +1670,8 @@ const NtdIconOrganic = /* @__PURE__ */ Object.assign(
1640
1670
  ),
1641
1671
  /* @__PURE__ */ jsx("span", { style: { display: "inline-flex", position: "relative", zIndex: 1 }, children })
1642
1672
  ] }),
1643
- durationScale(durationProp !== void 0, animationSpeed)
1673
+ durationScale(durationProp !== void 0, animationSpeed),
1674
+ still
1644
1675
  );
1645
1676
  }
1646
1677
  ),
@@ -1653,6 +1684,7 @@ const NtdIconGeometric = /* @__PURE__ */ Object.assign(
1653
1684
  animate = true,
1654
1685
  duration: durationProp,
1655
1686
  animationSpeed,
1687
+ reducedMotion,
1656
1688
  intensity = "normal",
1657
1689
  primaryColor = "#6366f1",
1658
1690
  secondaryColor = "#8b5cf6",
@@ -1660,6 +1692,7 @@ const NtdIconGeometric = /* @__PURE__ */ Object.assign(
1660
1692
  className,
1661
1693
  style
1662
1694
  }, ref) => {
1695
+ const still = useStillMotion(reducedMotion);
1663
1696
  const duration = durationProp ?? 8;
1664
1697
  const makeTriangle = (cx, cy, r, rotDeg) => Array.from({ length: 3 }, (_, i) => {
1665
1698
  const a = (i * 120 - 90 + rotDeg) * Math.PI / 180;
@@ -1692,7 +1725,7 @@ const NtdIconGeometric = /* @__PURE__ */ Object.assign(
1692
1725
  ] : []
1693
1726
  ];
1694
1727
  const diamondPath = (cx, cy, s = 3) => `M${cx},${cy - s} L${cx + s},${cy} L${cx},${cy + s} L${cx - s},${cy}Z`;
1695
- return retimeTree(
1728
+ return motionTree(
1696
1729
  /* @__PURE__ */ jsxs("span", { ref, className, style: { ...wrapperBase, ...style }, children: [
1697
1730
  /* @__PURE__ */ jsxs(
1698
1731
  "svg",
@@ -1786,7 +1819,8 @@ const NtdIconGeometric = /* @__PURE__ */ Object.assign(
1786
1819
  ),
1787
1820
  /* @__PURE__ */ jsx("span", { style: { display: "inline-flex", position: "relative", zIndex: 1 }, children })
1788
1821
  ] }),
1789
- durationScale(durationProp !== void 0, animationSpeed)
1822
+ durationScale(durationProp !== void 0, animationSpeed),
1823
+ still
1790
1824
  );
1791
1825
  }
1792
1826
  ),