@nice2dev/icons 1.4.7 → 1.4.8

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 (40) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/cjs/icons/actions.js +36 -41
  3. package/dist/cjs/icons/business.js +58 -36
  4. package/dist/cjs/icons/education.js +13 -5
  5. package/dist/cjs/icons/files.js +15 -30
  6. package/dist/cjs/icons/food.js +36 -15
  7. package/dist/cjs/icons/fun.js +27 -32
  8. package/dist/cjs/icons/index.js +1 -0
  9. package/dist/cjs/icons/navigation.js +4 -4
  10. package/dist/cjs/icons/omniverk.js +34 -17
  11. package/dist/cjs/icons/realestate.js +21 -18
  12. package/dist/cjs/icons/science.js +6 -5
  13. package/dist/cjs/icons/smarthome.js +3 -3
  14. package/dist/cjs/icons/sports.js +7 -6
  15. package/dist/cjs/icons/sustainability.js +2 -2
  16. package/dist/cjs/icons/travel.js +32 -39
  17. package/dist/cjs/icons/ui.js +62 -35
  18. package/dist/cjs/icons/weather.js +2 -2
  19. package/dist/cjs/index.js +1 -0
  20. package/dist/esm/icons/actions.js +36 -41
  21. package/dist/esm/icons/business.js +58 -36
  22. package/dist/esm/icons/education.js +13 -5
  23. package/dist/esm/icons/files.js +15 -30
  24. package/dist/esm/icons/food.js +36 -15
  25. package/dist/esm/icons/fun.js +27 -32
  26. package/dist/esm/icons/index.js +2 -1
  27. package/dist/esm/icons/navigation.js +4 -4
  28. package/dist/esm/icons/omniverk.js +35 -18
  29. package/dist/esm/icons/realestate.js +21 -18
  30. package/dist/esm/icons/science.js +6 -5
  31. package/dist/esm/icons/smarthome.js +3 -3
  32. package/dist/esm/icons/sports.js +7 -6
  33. package/dist/esm/icons/sustainability.js +2 -2
  34. package/dist/esm/icons/travel.js +32 -39
  35. package/dist/esm/icons/ui.js +62 -35
  36. package/dist/esm/icons/weather.js +2 -2
  37. package/dist/esm/index.js +2 -1
  38. package/dist/types/icons/index.d.ts +1 -1
  39. package/dist/types/icons/ui.d.ts +3 -1
  40. package/package.json +2 -2
@@ -377,9 +377,8 @@ const POPPER_STRIPS = [
377
377
  { x: 14.7, y: 3.1, width: 2, height: 1, transform: "rotate(35 15.7 3.6)" },
378
378
  { x: 19.8, y: 7.7, width: 2, height: 1, transform: "rotate(-25 20.8 8.2)" }
379
379
  ];
380
- const POPPER_SPARKLE = "M20 1.6Q20 3.4 21.8 3.4Q20 3.4 20 5.2Q20 3.4 18.2 3.4Q20 3.4 20 1.6Z";
381
380
  function popperConfetti(colors, streamerWidth) {
382
- const [streamers, dots, strips, sparkle] = colors;
381
+ const [streamers, dots, strips] = colors;
383
382
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
384
383
  /* @__PURE__ */ jsxRuntime.jsx(
385
384
  "path",
@@ -392,8 +391,7 @@ function popperConfetti(colors, streamerWidth) {
392
391
  }
393
392
  ),
394
393
  POPPER_DOTS.map((d, i) => /* @__PURE__ */ jsxRuntime.jsx("circle", { ...d, fill: i % 2 ? strips : dots }, i)),
395
- POPPER_STRIPS.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...s, fill: i ? dots : strips }, i)),
396
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: POPPER_SPARKLE, fill: sparkle })
394
+ POPPER_STRIPS.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...s, fill: i ? dots : strips }, i))
397
395
  ] });
398
396
  }
399
397
  function popperFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, mouth, lines, confetti) {
@@ -432,25 +430,20 @@ const NtdPartyPopper = /* @__PURE__ */ createIcon.createIcon({
432
430
  paths: {
433
431
  solid: (p) => {
434
432
  const c = p.primaryColor;
435
- return popperFilled(p, c, true, [c, c, c, c]);
433
+ return popperFilled(p, c, true, [c, c, c]);
436
434
  },
437
435
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
438
436
  /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "round", fill: "none", children: [
439
437
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: POPPER_CONE }),
440
438
  /* @__PURE__ */ jsxRuntime.jsx("ellipse", { ...POPPER_RIM })
441
439
  ] }),
442
- popperConfetti([primaryColor, primaryColor, primaryColor, primaryColor], strokeWidth)
440
+ popperConfetti([primaryColor, primaryColor, primaryColor], strokeWidth)
443
441
  ] }),
444
442
  duotone: (p) => {
445
443
  const s = p.secondaryColor;
446
- return popperFilled(p, s, false, [s, s, s, s]);
444
+ return popperFilled(p, s, false, [s, s, s]);
447
445
  },
448
- vivid: (p) => popperFilled(p, p.secondaryColor, true, [
449
- p.secondaryColor,
450
- p.accentColor,
451
- p.primaryColor,
452
- p.accentColor
453
- ])
446
+ vivid: (p) => popperFilled(p, p.secondaryColor, true, [p.secondaryColor, p.accentColor, p.primaryColor])
454
447
  }
455
448
  });
456
449
  const NtdTrophy = /* @__PURE__ */ createIcon.createIcon({
@@ -657,40 +650,42 @@ const NtdDice = /* @__PURE__ */ createIcon.createIcon({
657
650
  ] })
658
651
  }
659
652
  });
653
+ const PIP_LO = 5;
654
+ const PIP_HI = 19;
660
655
  const PIP_SPOTS = {
661
656
  1: [[12, 12]],
662
657
  2: [
663
- [6, 6],
664
- [18, 18]
658
+ [PIP_LO, PIP_LO],
659
+ [PIP_HI, PIP_HI]
665
660
  ],
666
661
  3: [
667
- [6, 6],
662
+ [PIP_LO, PIP_LO],
668
663
  [12, 12],
669
- [18, 18]
664
+ [PIP_HI, PIP_HI]
670
665
  ],
671
666
  4: [
672
- [6, 6],
673
- [18, 6],
674
- [6, 18],
675
- [18, 18]
667
+ [PIP_LO, PIP_LO],
668
+ [PIP_HI, PIP_LO],
669
+ [PIP_LO, PIP_HI],
670
+ [PIP_HI, PIP_HI]
676
671
  ],
677
672
  5: [
678
- [6, 6],
679
- [18, 6],
673
+ [PIP_LO, PIP_LO],
674
+ [PIP_HI, PIP_LO],
680
675
  [12, 12],
681
- [6, 18],
682
- [18, 18]
676
+ [PIP_LO, PIP_HI],
677
+ [PIP_HI, PIP_HI]
683
678
  ],
684
679
  6: [
685
- [6, 6],
686
- [18, 6],
687
- [6, 12],
688
- [18, 12],
689
- [6, 18],
690
- [18, 18]
680
+ [PIP_LO, PIP_LO],
681
+ [PIP_HI, PIP_LO],
682
+ [PIP_LO, 12],
683
+ [PIP_HI, 12],
684
+ [PIP_LO, PIP_HI],
685
+ [PIP_HI, PIP_HI]
691
686
  ]
692
687
  };
693
- const PIP_R = 2.5;
688
+ const PIP_R = 2.2;
694
689
  function dicePipsIcon(count) {
695
690
  const spots = PIP_SPOTS[count];
696
691
  return createIcon.createIcon({
@@ -80,6 +80,7 @@ exports.NtdBell = ui.NtdBell;
80
80
  exports.NtdBookmark = ui.NtdBookmark;
81
81
  exports.NtdCalendar = ui.NtdCalendar;
82
82
  exports.NtdCalendarDay = ui.NtdCalendarDay;
83
+ exports.NtdCalendarMonth = ui.NtdCalendarMonth;
83
84
  exports.NtdCalendarWeek = ui.NtdCalendarWeek;
84
85
  exports.NtdClock = ui.NtdClock;
85
86
  exports.NtdCursor = ui.NtdCursor;
@@ -388,13 +388,13 @@ const NtdExternalLink = /* @__PURE__ */ createIcon.createIcon({
388
388
  }
389
389
  });
390
390
  const REFRESH_TOP = {
391
- tail: "M5.51 9.38A7 7 0 0 1 17.98 8.37",
392
- start: [5.51, 9.38],
391
+ tail: "M5.21 10.31A7 7 0 0 1 17.98 8.37",
392
+ start: [5.21, 10.31],
393
393
  head: "M14.59 8.46L17.89 12.9L21.77 8.96z"
394
394
  };
395
395
  const REFRESH_BOTTOM = {
396
- tail: "M18.49 14.62A7 7 0 0 1 6.02 15.63",
397
- start: [18.49, 14.62],
396
+ tail: "M18.79 13.69A7 7 0 0 1 6.02 15.63",
397
+ start: [18.79, 13.69],
398
398
  head: "M9.41 15.54L6.11 11.1L2.23 15.04z"
399
399
  };
400
400
  function refreshArrows(top, bottom, strokeWidth, roundTail = true) {
@@ -293,32 +293,49 @@ const NtdShipment = /* @__PURE__ */ createIcon.createIcon({
293
293
  });
294
294
  const FOOD_FORK = iconParts.CUTLERY_FORK;
295
295
  const FOOD_KNIFE = iconParts.CUTLERY_KNIFE;
296
- const FOOD_PLATE = { cx: 12.25, cy: 12, r: 6.75 };
297
- function placeSetting(plate, cutlery, ringWidth, filled) {
296
+ const FOOD_PLATE = { cx: 12.3, cy: 12, r: 7.4 };
297
+ const FOOD_WELL = 5.65;
298
+ function placeSetting({ primaryColor, accentColor, accentOpacity, strokeWidth }, cutlery, well) {
298
299
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
299
- /* @__PURE__ */ jsxRuntime.jsx("circle", { ...FOOD_PLATE, stroke: plate, strokeWidth: ringWidth, fill: "none" }),
300
- filled ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${FOOD_FORK}${FOOD_KNIFE}`, fill: cutlery }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
301
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: FOOD_FORK, fill: cutlery }),
300
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { ...FOOD_PLATE, fill: primaryColor }),
301
+ well ? /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: FOOD_PLATE.cx, cy: FOOD_PLATE.cy, r: FOOD_WELL, fill: well }) : /* @__PURE__ */ jsxRuntime.jsx(
302
+ "circle",
303
+ {
304
+ cx: FOOD_PLATE.cx,
305
+ cy: FOOD_PLATE.cy,
306
+ r: FOOD_WELL,
307
+ stroke: accentColor,
308
+ strokeWidth: strokeWidth * 0.8,
309
+ opacity: accentOpacity,
310
+ fill: "none"
311
+ }
312
+ ),
313
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${FOOD_FORK}${FOOD_KNIFE}`, fill: cutlery })
314
+ ] });
315
+ }
316
+ const NtdFood = /* @__PURE__ */ createIcon.createIcon({
317
+ displayName: "NtdFood",
318
+ paths: {
319
+ solid: (p) => placeSetting(p, p.primaryColor),
320
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
321
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
322
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: FOOD_PLATE.cx, cy: FOOD_PLATE.cy, r: FOOD_PLATE.r - strokeWidth / 2 }),
323
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: FOOD_PLATE.cx, cy: FOOD_PLATE.cy, r: FOOD_WELL })
324
+ ] }),
325
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: FOOD_FORK, fill: primaryColor }),
302
326
  /* @__PURE__ */ jsxRuntime.jsx(
303
327
  "path",
304
328
  {
305
329
  d: FOOD_KNIFE,
306
- stroke: cutlery,
307
- strokeWidth: ringWidth,
330
+ stroke: primaryColor,
331
+ strokeWidth,
308
332
  strokeLinejoin: "miter",
309
333
  fill: "none"
310
334
  }
311
335
  )
312
- ] })
313
- ] });
314
- }
315
- const NtdFood = /* @__PURE__ */ createIcon.createIcon({
316
- displayName: "NtdFood",
317
- paths: {
318
- solid: ({ primaryColor, strokeWidth }) => placeSetting(primaryColor, primaryColor, strokeWidth * 2, true),
319
- outline: ({ primaryColor, strokeWidth }) => placeSetting(primaryColor, primaryColor, strokeWidth, false),
320
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => placeSetting(primaryColor, secondaryColor, strokeWidth * 2, true),
321
- vivid: ({ primaryColor, secondaryColor, strokeWidth }) => placeSetting(primaryColor, secondaryColor, strokeWidth * 2, true)
336
+ ] }),
337
+ duotone: (p) => placeSetting(p, p.secondaryColor, p.secondaryColor),
338
+ vivid: (p) => placeSetting(p, p.secondaryColor)
322
339
  }
323
340
  });
324
341
  const NtdMeal = NtdFood;
@@ -61,15 +61,15 @@ const NtdHouse = /* @__PURE__ */ createIcon.createIcon({
61
61
  });
62
62
  const APARTMENT = { x: 4.5, y: 4, width: 15, height: 18, rx: 2 };
63
63
  const APARTMENT_WINDOWS = [
64
- { x: 6.3, y: 7 },
65
- { x: 10.6, y: 7 },
66
- { x: 14.9, y: 7 },
67
- { x: 6.3, y: 12.2 },
68
- { x: 10.6, y: 12.2 },
69
- { x: 14.9, y: 12.2 }
64
+ { x: 6.3, y: 7.5 },
65
+ { x: 10.6, y: 7.5 },
66
+ { x: 14.9, y: 7.5 },
67
+ { x: 6.3, y: 12.7 },
68
+ { x: 10.6, y: 12.7 },
69
+ { x: 14.9, y: 12.7 }
70
70
  ];
71
71
  const APARTMENT_DOOR = { x: 10.5, y: 18, width: 3, height: 4 };
72
- const APARTMENT_DOOR_SILL = { ...APARTMENT_DOOR, height: 3.25 };
72
+ const APARTMENT_DOOR_SILL = { ...APARTMENT_DOOR, height: 3.625 };
73
73
  const NtdApartment = /* @__PURE__ */ createIcon.createIcon({
74
74
  displayName: "NtdApartment",
75
75
  paths: {
@@ -432,20 +432,23 @@ const RACK_SLOTS = [
432
432
  const round = (n) => Math.round(n * 1e3) / 1e3;
433
433
  function rackGeometry(f, width, boxes) {
434
434
  const heavy = width * 1.35;
435
+ const topEdge = f.top - heavy / 2;
436
+ const bottomEdge = f.bottom - heavy / 2;
435
437
  const middle = (f.top + f.bottom) / 2;
438
+ const shelf = middle - (heavy - width) / 2;
436
439
  const half = width / 2;
437
440
  const lines = `M${f.left} ${f.top}V${f.floor}M${f.right} ${f.top}V${f.floor}M${f.left} ${middle}H${f.right}M${f.left} ${f.top}H${f.right}M${f.left} ${f.bottom}H${f.right}`;
438
441
  const rect = (x, y, w, h) => `M${round(x)} ${round(y)}h${round(w)}v${round(h)}h${round(-w)}Z`;
439
442
  const frame = [
440
- rect(f.left - half, f.top - heavy / 2, width, f.floor - f.top + heavy / 2),
441
- rect(f.right - half, f.top - heavy / 2, width, f.floor - f.top + heavy / 2),
442
- rect(f.left - half, f.top - heavy / 2, f.right - f.left + width, heavy),
443
- rect(f.left, middle - half, f.right - f.left, width),
444
- rect(f.left, f.bottom - heavy / 2, f.right - f.left, heavy)
443
+ rect(f.left - half, topEdge, width, f.floor - topEdge),
444
+ rect(f.right - half, topEdge, width, f.floor - topEdge),
445
+ rect(f.left - half, topEdge, f.right - f.left + width, width),
446
+ rect(f.left, shelf - half, f.right - f.left, width),
447
+ rect(f.left, bottomEdge, f.right - f.left, width)
445
448
  ].join("");
446
449
  const levels = [
447
- { floor: f.bottom - heavy / 2, ceiling: middle + half },
448
- { floor: middle - half, ceiling: f.top + heavy / 2 }
450
+ { floor: bottomEdge, ceiling: shelf + half },
451
+ { floor: shelf - half, ceiling: topEdge + width }
449
452
  ];
450
453
  const scale = (f.right - f.left) / 16;
451
454
  const rects = RACK_SLOTS.slice(0, boxes).map(([x, w, h], i) => {
@@ -500,15 +503,15 @@ function shelfRackIconFor(level) {
500
503
  const clamped = Number.isNaN(level) ? 0 : Math.min(1, Math.max(0, level));
501
504
  return SHELF_RACK_STEPS[Math.round(clamped * 4)];
502
505
  }
503
- const WAREHOUSE = "M1.5 9.2L12 3.5L22.5 9.2V21H19.5V11H4.5V21H1.5Z";
506
+ const WAREHOUSE = "M1.5 9.2L12 3.5L22.5 9.2V21H20.4V11H3.6V21H1.5Z";
504
507
  const WAREHOUSE_RACKS = [
505
- { left: 6.25, right: 11.25, top: 12.75, bottom: 19.25, floor: 21 },
506
- { left: 12.75, right: 17.75, top: 12.75, bottom: 19.25, floor: 21 }
508
+ { left: 4.75, right: 11.15, top: 12.3, bottom: 19.25, floor: 21 },
509
+ { left: 12.85, right: 19.25, top: 12.3, bottom: 19.25, floor: 21 }
507
510
  ];
508
511
  function warehouseDrawing(hall, rackFrame, boxes, width, outline) {
509
512
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
510
513
  outline ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: WAREHOUSE, stroke: hall, strokeWidth: width, strokeLinejoin: "miter", fill: "none" }) : /* @__PURE__ */ jsxRuntime.jsx("path", { d: WAREHOUSE, fill: hall }),
511
- WAREHOUSE_RACKS.map((f) => /* @__PURE__ */ jsxRuntime.jsx("g", { children: rackDrawing(f, 4, rackFrame, boxes, outline ? width : width * 0.6, outline) }, f.left))
514
+ WAREHOUSE_RACKS.map((f) => /* @__PURE__ */ jsxRuntime.jsx("g", { children: rackDrawing(f, 4, rackFrame, boxes, outline ? width * 0.7 : width * 0.35, outline) }, f.left))
512
515
  ] });
513
516
  }
514
517
  const NtdWarehouse = /* @__PURE__ */ createIcon.createIcon({
@@ -803,19 +803,20 @@ const NtdPeriodictable = /* @__PURE__ */ createIcon.createIcon({
803
803
  });
804
804
  const MAGNET = "M4 10.8a8 8 0 0116 0v10h-5v-10a3 3 0 00-6 0v10H4z";
805
805
  const MAGNET_LEFT = "M4 10.8a8 8 0 018-8v5a3 3 0 00-3 3v10H4z";
806
+ const MAGNET_LEFT_EDGE = "M12 7.8a3 3 0 00-3 3v10H4V10.8a8 8 0 018-8";
806
807
  const MAGNET_RIGHT = "M12 2.8a8 8 0 018 8v10h-5v-10a3 3 0 00-3-3z";
807
- function magnetFilled({ primaryColor, strokeWidth, uid }, right, rightOpacity, edge) {
808
+ function magnetFilled({ primaryColor, strokeWidth, uid }, left, leftOpacity, edge) {
808
809
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
809
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_LEFT, fill: primaryColor }),
810
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_RIGHT, fill: right, opacity: rightOpacity }),
810
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_RIGHT, fill: primaryColor }),
811
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_LEFT, fill: left, opacity: leftOpacity }),
811
812
  edge && iconParts.within(
812
813
  uid,
813
814
  "magnet",
814
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_RIGHT }),
815
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: MAGNET_LEFT }),
815
816
  /* @__PURE__ */ jsxRuntime.jsx(
816
817
  "path",
817
818
  {
818
- d: MAGNET_RIGHT,
819
+ d: MAGNET_LEFT_EDGE,
819
820
  stroke: primaryColor,
820
821
  strokeWidth: strokeWidth * 2.4,
821
822
  fill: "none"
@@ -553,8 +553,8 @@ const NtdSmartPlug = /* @__PURE__ */ createIcon.createIcon({
553
553
  const THERMO_BODY = "M14.3 13.85V4.3a2.3 2.3 0 00-4.6 0v9.55a4.4 4.4 0 104.6 0z";
554
554
  const THERMO_BODY_SHARP = "M14.3 13.85V2H9.7v11.85a4.4 4.4 0 104.6 0z";
555
555
  const THERMO_BALL = { cx: 12, cy: 17.6, r: 2.6 };
556
- const THERMO_COLUMN = "M12 5.4V17";
557
- const THERMO_MARKS = "M16.4 5h2.4M16.4 7.4h1.4M16.4 9.8h2.4M16.4 12.2h1.4";
556
+ const THERMO_COLUMN = "M12 4.3V17";
557
+ const THERMO_MARKS = "M16.4 5h2.6M16.4 7.4h1.9M16.4 9.8h1.2";
558
558
  function thermometer(body, mercury, marks, width, bodyPath = THERMO_BODY) {
559
559
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
560
560
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: bodyPath, fill: body }),
@@ -571,7 +571,7 @@ const NtdTemperatureSensor = /* @__PURE__ */ createIcon.createIcon({
571
571
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
572
572
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: THERMO_BODY }),
573
573
  /* @__PURE__ */ jsxRuntime.jsx("circle", { ...THERMO_BALL, r: 2 }),
574
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 5.4V15.6" }),
574
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 4.3V15.6" }),
575
575
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: THERMO_MARKS })
576
576
  ] }),
577
577
  duotone: ({ primaryColor, secondaryColor, strokeWidth }) => thermometer(primaryColor, secondaryColor, secondaryColor, strokeWidth),
@@ -117,7 +117,7 @@ const NtdBasketball = /* @__PURE__ */ createIcon.createIcon({
117
117
  {
118
118
  d: BALL_SEAMS,
119
119
  stroke: accentColor,
120
- strokeWidth: "1.5",
120
+ strokeWidth: "0.9",
121
121
  fill: "none",
122
122
  opacity: accentOpacity
123
123
  }
@@ -136,13 +136,13 @@ const NtdBasketball = /* @__PURE__ */ createIcon.createIcon({
136
136
  fill: "none"
137
137
  }
138
138
  ),
139
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: primaryColor, strokeWidth }),
139
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: primaryColor, strokeWidth: strokeWidth * 0.6 }),
140
140
  /* @__PURE__ */ jsxRuntime.jsx(
141
141
  "path",
142
142
  {
143
143
  d: "M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8",
144
144
  stroke: primaryColor,
145
- strokeWidth,
145
+ strokeWidth: strokeWidth * 0.6,
146
146
  fill: "none"
147
147
  }
148
148
  )
@@ -154,7 +154,7 @@ const NtdBasketball = /* @__PURE__ */ createIcon.createIcon({
154
154
  uid,
155
155
  "seams",
156
156
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
157
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: BALL_SEAMS, stroke: secondaryColor, strokeWidth: "1.6", fill: "none" })
157
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BALL_SEAMS, stroke: secondaryColor, strokeWidth: "1", fill: "none" })
158
158
  )
159
159
  ] })
160
160
  }
@@ -326,14 +326,15 @@ const NtdDumbbell = /* @__PURE__ */ createIcon.createIcon({
326
326
  ] })
327
327
  }
328
328
  });
329
- const RUN_BODY = "M14.78 6.3L11.3 13.4";
329
+ const RUN_HEAD = { cx: 15.16, cy: 5.2, r: 2.3 };
330
+ const RUN_BODY = "M14.45 6.97L11.3 13.4";
330
331
  const RUN_NEAR = "M13.6 8.7L16.5 10.7L18.7 8.6M11.3 13.4L15.3 15L14.5 19.7L16.6 20.1";
331
332
  const RUN_FAR = "M13.6 8.7L10.2 9.5L8.3 12.3M11.3 13.4L9.7 17.4L5.6 19.3L6.5 21.2";
332
333
  function runner(near, far, width, headFill) {
333
334
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
334
335
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: RUN_FAR, stroke: far, strokeWidth: width, fill: "none" }),
335
336
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${RUN_BODY}${RUN_NEAR}`, stroke: near, strokeWidth: width, fill: "none" }),
336
- headFill ? /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "15.6", cy: "4.3", r: "2.3", fill: near }) : /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "15.6", cy: "4.3", r: "2.3", stroke: near, strokeWidth: width, fill: "none" })
337
+ headFill ? /* @__PURE__ */ jsxRuntime.jsx("circle", { ...RUN_HEAD, fill: near }) : /* @__PURE__ */ jsxRuntime.jsx("circle", { ...RUN_HEAD, stroke: near, strokeWidth: width, fill: "none" })
337
338
  ] });
338
339
  }
339
340
  const NtdRunning = /* @__PURE__ */ createIcon.createIcon({
@@ -5,8 +5,8 @@ const createIcon = require("../createIcon.js");
5
5
  const iconParts = require("../iconParts.js");
6
6
  const weather = require("./weather.js");
7
7
  const RECYCLE_TURNS = [0, 120, 240];
8
- const RECYCLE_BAND = "M8.02 12.5L5.42 17H9.9";
9
- const RECYCLE_HEAD = "M9.62 14.7L12.22 17L9.62 19.3Z";
8
+ const RECYCLE_BAND = "M7.82 12.85L5.42 17H9.5";
9
+ const RECYCLE_HEAD = "M9.22 14.7L11.82 17L9.22 19.3Z";
10
10
  function recycleArrows(colors, width, filled) {
11
11
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: RECYCLE_TURNS.map((turn, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `rotate(${turn} 12 13.2)`, children: [
12
12
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -187,7 +187,7 @@ const NtdTrain = /* @__PURE__ */ createIcon.createIcon({
187
187
  });
188
188
  const CAR_BODY = "M2.5 13a2 2 0 012-2h.32L6.48 6.03A1.5 1.5 0 017.9 5h8.2a1.5 1.5 0 011.42 1.03L19.18 11h.32a2 2 0 012 2v3a2 2 0 01-2 2h-15a2 2 0 01-2-2z";
189
189
  const CAR_GLASS = "M7.73 6.3H16.27L17.76 10.4H6.24Z";
190
- const CAR_MIRRORS = "M3.35 9.3h2.1v1.5h-2.1a.75.75 0 010-1.5zM18.55 9.3h2.1a.75.75 0 010 1.5h-2.1z";
190
+ const CAR_MIRRORS = "M3.6 8.5h2.1v1.5h-2.1a.75.75 0 010-1.5zM18.3 8.5h2.1a.75.75 0 010 1.5h-2.1z";
191
191
  const CAR_LIGHTS = [5.8, 18.2];
192
192
  const CAR_GRILLE = { x: 9.2, y: 13.6, width: 5.6, height: 1.4, rx: 0.7 };
193
193
  const CAR_WHEELS = "M4.2 18.6h3.4v1.6a.8.8 0 01-.8.8H5a.8.8 0 01-.8-.8zM16.4 18.6h3.4v1.6a.8.8 0 01-.8.8h-1.8a.8.8 0 01-.8-.8z";
@@ -389,6 +389,7 @@ const BIKE_SADDLE = "M7.3 7.9h2.9";
389
389
  const BIKE_SPOKES = "M2.7 16h5.4M4.05 13.66l2.7 4.68M6.75 13.66l-2.7 4.68M15.9 16h5.4M17.25 13.66l2.7 4.68M19.95 13.66l-2.7 4.68";
390
390
  function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineWidth) {
391
391
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
392
+ accent && BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "16", r: "3.6", fill: tyres }, cx)),
392
393
  accent && /* @__PURE__ */ jsxRuntime.jsx(
393
394
  "path",
394
395
  {
@@ -414,6 +415,7 @@ function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineW
414
415
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: BIKE_FRAME, strokeWidth: lineWidth * 0.7 }),
415
416
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: BIKE_SADDLE, strokeWidth: lineWidth })
416
417
  ] }),
418
+ accent && /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "10.6", cy: "16", r: "1.7", fill: tyres }),
417
419
  accent && /* @__PURE__ */ jsxRuntime.jsxs("g", { opacity: accentOpacity, children: [
418
420
  /* @__PURE__ */ jsxRuntime.jsx(
419
421
  "circle",
@@ -1028,40 +1030,37 @@ const NtdBeach = /* @__PURE__ */ createIcon.createIcon({
1028
1030
  vivid: (p) => beachFilled(p, p.secondaryColor, true)
1029
1031
  }
1030
1032
  });
1031
- const NtdCamping = /* @__PURE__ */ createIcon.createIcon({
1032
- displayName: "NtdCamping",
1033
- paths: {
1034
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1035
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2L2 20h20L12 2z", fill: primaryColor }),
1036
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v18", stroke: "white", strokeWidth: "1.5", opacity: "0.3" }),
1037
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 20l4-8 4 8", fill: "white", opacity: "0.3" }),
1038
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 20h18", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" })
1039
- ] }),
1040
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1041
- /* @__PURE__ */ jsxRuntime.jsx(
1042
- "path",
1043
- {
1044
- d: "M12 2L2 20h20L12 2z",
1045
- stroke: primaryColor,
1046
- strokeWidth,
1047
- fill: "none",
1048
- strokeLinejoin: "round"
1049
- }
1050
- ),
1051
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v18", stroke: primaryColor, strokeWidth }),
1033
+ const TENT = "M12 2L2 20h20L12 2z";
1034
+ const TENT_DOOR = "M8 20L12 12L16 20Z";
1035
+ const TENT_LINES = "M12 3V12M8 20L12 12L16 20";
1036
+ function tentFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, door, lines) {
1037
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1038
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TENT, fill: primaryColor }),
1039
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 20h18", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }),
1040
+ door && /* @__PURE__ */ jsxRuntime.jsx("path", { d: TENT_DOOR, fill: door }),
1041
+ lines && iconParts.within(
1042
+ uid,
1043
+ "tent",
1044
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TENT }),
1052
1045
  /* @__PURE__ */ jsxRuntime.jsx(
1053
1046
  "path",
1054
1047
  {
1055
- d: "M8 20l4-8 4 8",
1056
- stroke: primaryColor,
1057
- strokeWidth,
1058
- fill: "none",
1059
- strokeLinejoin: "round"
1048
+ d: TENT_LINES,
1049
+ stroke: accentColor,
1050
+ strokeWidth: strokeWidth * 0.8,
1051
+ strokeLinejoin: "miter",
1052
+ opacity: accentOpacity,
1053
+ fill: "none"
1060
1054
  }
1061
1055
  )
1062
- ] }),
1063
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1064
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2L2 20h20L12 2z", fill: secondaryColor, opacity: secondaryOpacity }),
1056
+ )
1057
+ ] });
1058
+ }
1059
+ const NtdCamping = /* @__PURE__ */ createIcon.createIcon({
1060
+ displayName: "NtdCamping",
1061
+ paths: {
1062
+ solid: (p) => tentFilled(p, null, true),
1063
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1065
1064
  /* @__PURE__ */ jsxRuntime.jsx(
1066
1065
  "path",
1067
1066
  {
@@ -1077,21 +1076,15 @@ const NtdCamping = /* @__PURE__ */ createIcon.createIcon({
1077
1076
  "path",
1078
1077
  {
1079
1078
  d: "M8 20l4-8 4 8",
1080
- fill: primaryColor,
1081
- opacity: "0.5",
1082
1079
  stroke: primaryColor,
1083
1080
  strokeWidth,
1081
+ fill: "none",
1084
1082
  strokeLinejoin: "round"
1085
1083
  }
1086
1084
  )
1087
1085
  ] }),
1088
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1089
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2L2 20h20L12 2z", fill: primaryColor }),
1090
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2L2 20h20L12 2z", fill: "white", opacity: "0.08" }),
1091
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 20l4-8 4 8", fill: "white", opacity: "0.3" }),
1092
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v18", stroke: "white", strokeWidth: "1", opacity: "0.4" }),
1093
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 20h18", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })
1094
- ] })
1086
+ duotone: (p) => tentFilled(p, p.secondaryColor, false),
1087
+ vivid: (p) => tentFilled(p, p.secondaryColor, true)
1095
1088
  }
1096
1089
  });
1097
1090
  const NtdCompassRose = /* @__PURE__ */ createIcon.createIcon({