@nice2dev/icons 1.4.9 → 1.4.11

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @nice2dev/icons — Changelog
2
2
 
3
+ ## 1.4.11
4
+
5
+ No changes in this release.
6
+
7
+ ## 1.4.10
8
+
9
+ ### Patch Changes
10
+
11
+ - 5180b30: Icon review, round 43 (follow-up 2):
12
+
13
+ - `NtdQrCode` is redrawn as a real version-1 code: finder patterns, timing patterns and data
14
+ modules. The wireframe draws the modules as rounded dots.
15
+ - `NtdShip` is redrawn from the side: hull with a raised bow, superstructure with windows, a
16
+ funnel with a band, portholes and a wave line.
17
+ - `NtdBrush`: thin curved strands across the bristles.
18
+ - `NtdLeaf`: the midrib is an S-curve that starts inside the leaf.
19
+ - `NtdBike`: the wheels are open again; each hub is an accent ring with a primary centre.
20
+
3
21
  ## 1.4.9
4
22
 
5
23
  No changes in this release.
@@ -992,18 +992,40 @@ const BRUSH_HANDLE = "M11 0.6A1 1 0 0 1 13 0.6L13.3 10.4H10.7Z";
992
992
  const BRUSH_FERRULE = "M10.7 10.4H13.3L14.1 13.2H9.9Z";
993
993
  const BRUSH_BRISTLES = "M9.9 13.2H14.1C14.8 15.4 15.2 18.4 12 24.2C8.8 18.4 9.2 15.4 9.9 13.2Z";
994
994
  const BRUSH_CUTS = "M8 10.4H16M8 13.2H16";
995
- function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1) {
995
+ const BRUSH_HAIRS = "M11 13.6C10.4 16.4 10.5 19.6 11.6 22.4M12 13.6C12.2 16.8 12.2 19.8 12 23.2M13 13.6C13.6 16.4 13.5 19.6 12.4 22.4";
996
+ function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1, hairs) {
996
997
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
997
998
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_HANDLE, fill: handle }),
998
999
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_FERRULE, fill: ferrule, opacity: ferruleOpacity }),
999
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_BRISTLES, fill: bristles })
1000
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_BRISTLES, fill: bristles }),
1001
+ hairs && iconParts.within(
1002
+ hairs.uid,
1003
+ "hairs",
1004
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_BRISTLES }),
1005
+ /* @__PURE__ */ jsxRuntime.jsx(
1006
+ "path",
1007
+ {
1008
+ d: BRUSH_HAIRS,
1009
+ stroke: hairs.color,
1010
+ strokeWidth: hairs.width,
1011
+ strokeLinecap: "round",
1012
+ opacity: hairs.opacity,
1013
+ fill: "none"
1014
+ }
1015
+ )
1016
+ )
1000
1017
  ] });
1001
1018
  }
1002
1019
  const NtdBrush = /* @__PURE__ */ createIcon.createIcon({
1003
1020
  displayName: "NtdBrush",
1004
1021
  paths: {
1005
1022
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: BRUSH_TURN, children: [
1006
- brushFilled(primaryColor, primaryColor, primaryColor),
1023
+ brushFilled(primaryColor, primaryColor, primaryColor, 1, {
1024
+ color: accentColor,
1025
+ opacity: accentOpacity,
1026
+ width: strokeWidth * 0.4,
1027
+ uid
1028
+ }),
1007
1029
  iconParts.within(
1008
1030
  uid,
1009
1031
  "brush",
@@ -1019,19 +1041,29 @@ const NtdBrush = /* @__PURE__ */ createIcon.createIcon({
1019
1041
  )
1020
1042
  )
1021
1043
  ] }),
1022
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsx(
1023
- "path",
1024
- {
1025
- d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`,
1026
- transform: BRUSH_TURN,
1027
- stroke: primaryColor,
1028
- strokeWidth,
1029
- strokeLinejoin: "round",
1030
- fill: "none"
1031
- }
1032
- ),
1033
- duotone: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, primaryColor, secondaryColor) }),
1034
- vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity) })
1044
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: BRUSH_TURN, stroke: primaryColor, fill: "none", children: [
1045
+ /* @__PURE__ */ jsxRuntime.jsx(
1046
+ "path",
1047
+ {
1048
+ d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`,
1049
+ strokeWidth,
1050
+ strokeLinejoin: "round"
1051
+ }
1052
+ ),
1053
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_HAIRS, strokeWidth: strokeWidth * 0.5, strokeLinecap: "round" })
1054
+ ] }),
1055
+ duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, primaryColor, secondaryColor, 1, {
1056
+ color: primaryColor,
1057
+ opacity: 1,
1058
+ width: strokeWidth * 0.4,
1059
+ uid
1060
+ }) }),
1061
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity, {
1062
+ color: accentColor,
1063
+ opacity: accentOpacity,
1064
+ width: strokeWidth * 0.4,
1065
+ uid
1066
+ }) })
1035
1067
  }
1036
1068
  });
1037
1069
  const NtdPenTool = /* @__PURE__ */ createIcon.createIcon({
@@ -323,286 +323,43 @@ const NtdMegaphone = /* @__PURE__ */ createIcon.createIcon({
323
323
  vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => megaphoneFilled(primaryColor, secondaryColor, accentColor, accentOpacity)
324
324
  }
325
325
  });
326
+ const QR_FINDER_RINGS = "M1.5 1.5h7v7h-7zM2.5 2.5v5h5v-5zM15.5 1.5h7v7h-7zM16.5 2.5v5h5v-5zM1.5 15.5h7v7h-7zM2.5 16.5v5h5v-5z";
327
+ const QR_FINDER_RING_LINES = "M2 2h6v6h-6zM16 2h6v6h-6zM2 16h6v6h-6z";
328
+ const QR_FINDER_CENTRES = "M3.5 3.5h3v3h-3zM17.5 3.5h3v3h-3zM3.5 17.5h3v3h-3z";
329
+ const QR_DATA = "M9.5 1.5h1v1h-1zM11.5 1.5h3v1h-3zM11.5 2.5h1v1h-1zM13.5 2.5h1v1h-1zM9.5 3.5h1v1h-1zM12.5 3.5h2v1h-2zM9.5 4.5h2v1h-2zM12.5 5.5h1v1h-1zM9.5 6.5h1v1h-1zM12.5 6.5h2v1h-2zM9.5 8.5h2v1h-2zM1.5 9.5h1v1h-1zM3.5 9.5h1v1h-1zM5.5 9.5h2v1h-2zM8.5 9.5h1v1h-1zM10.5 9.5h1v1h-1zM12.5 9.5h2v1h-2zM15.5 9.5h1v1h-1zM17.5 9.5h1v1h-1zM19.5 9.5h1v1h-1zM21.5 9.5h1v1h-1zM2.5 10.5h2v1h-2zM5.5 10.5h2v1h-2zM9.5 10.5h3v1h-3zM13.5 10.5h2v1h-2zM18.5 10.5h1v1h-1zM21.5 10.5h1v1h-1zM2.5 11.5h1v1h-1zM4.5 11.5h1v1h-1zM6.5 11.5h1v1h-1zM9.5 11.5h1v1h-1zM14.5 11.5h1v1h-1zM18.5 11.5h2v1h-2zM21.5 11.5h1v1h-1zM5.5 12.5h1v1h-1zM9.5 12.5h1v1h-1zM12.5 12.5h2v1h-2zM16.5 12.5h2v1h-2zM3.5 13.5h1v1h-1zM5.5 13.5h1v1h-1zM8.5 13.5h1v1h-1zM10.5 13.5h3v1h-3zM15.5 13.5h1v1h-1zM17.5 13.5h1v1h-1zM19.5 13.5h2v1h-2zM9.5 14.5h5v1h-5zM18.5 14.5h1v1h-1zM20.5 14.5h1v1h-1zM9.5 15.5h1v1h-1zM13.5 15.5h4v1h-4zM20.5 15.5h1v1h-1zM10.5 16.5h1v1h-1zM13.5 16.5h4v1h-4zM19.5 16.5h3v1h-3zM9.5 17.5h1v1h-1zM12.5 17.5h2v1h-2zM15.5 17.5h2v1h-2zM20.5 17.5h1v1h-1zM9.5 18.5h1v1h-1zM15.5 18.5h1v1h-1zM18.5 18.5h4v1h-4zM11.5 19.5h1v1h-1zM13.5 19.5h1v1h-1zM15.5 19.5h2v1h-2zM18.5 19.5h1v1h-1zM20.5 19.5h1v1h-1zM9.5 20.5h2v1h-2zM12.5 20.5h2v1h-2zM16.5 20.5h2v1h-2zM19.5 20.5h2v1h-2zM10.5 21.5h3v1h-3zM16.5 21.5h1v1h-1zM20.5 21.5h2v1h-2zM9.5 7.5h1v1h-1zM7.5 9.5h1v1h-1zM11.5 7.5h1v1h-1zM7.5 11.5h1v1h-1zM13.5 7.5h1v1h-1zM7.5 13.5h1v1h-1z";
330
+ const QR_DATA_LINES = "M10 2h0M12 2h2M12 3h0M14 3h0M10 4h0M13 4h1M10 5h1M13 6h0M10 7h0M13 7h1M10 9h1M2 10h0M4 10h0M6 10h1M9 10h0M11 10h0M13 10h1M16 10h0M18 10h0M20 10h0M22 10h0M3 11h1M6 11h1M10 11h2M14 11h1M19 11h0M22 11h0M3 12h0M5 12h0M7 12h0M10 12h0M15 12h0M19 12h1M22 12h0M6 13h0M10 13h0M13 13h1M17 13h1M4 14h0M6 14h0M9 14h0M11 14h2M16 14h0M18 14h0M20 14h1M10 15h4M19 15h0M21 15h0M10 16h0M14 16h3M21 16h0M11 17h0M14 17h3M20 17h2M10 18h0M13 18h1M16 18h1M21 18h0M10 19h0M16 19h0M19 19h3M12 20h0M14 20h0M16 20h1M19 20h0M21 20h0M10 21h1M13 21h1M17 21h1M20 21h1M11 22h2M17 22h0M21 22h1M10 8h0M8 10h0M12 8h0M8 12h0M14 8h0M8 14h0";
331
+ const QR_FINDER_CENTRE_LINES = "M4 4h2v2h-2zM18 4h2v2h-2zM4 18h2v2h-2z";
332
+ function qrFilled(data, rings, centres, centresOpacity = 1) {
333
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
334
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_DATA, fill: data }),
335
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_FINDER_RINGS, fill: rings, fillRule: "evenodd" }),
336
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_FINDER_CENTRES, fill: centres, opacity: centresOpacity })
337
+ ] });
338
+ }
326
339
  const NtdQrCode = /* @__PURE__ */ createIcon.createIcon({
327
340
  displayName: "NtdQrCode",
328
341
  paths: {
329
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
330
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
331
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
332
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "14", width: "8", height: "8", rx: "1", fill: primaryColor }),
333
- /* @__PURE__ */ jsxRuntime.jsx(
334
- "rect",
335
- {
336
- x: "4",
337
- y: "4",
338
- width: "4",
339
- height: "4",
340
- rx: "0.5",
341
- fill: "none",
342
- stroke: primaryColor,
343
- strokeWidth: "1",
344
- opacity: 0.5
345
- }
346
- ),
347
- /* @__PURE__ */ jsxRuntime.jsx(
348
- "rect",
349
- {
350
- x: "16",
351
- y: "4",
352
- width: "4",
353
- height: "4",
354
- rx: "0.5",
355
- fill: "none",
356
- stroke: primaryColor,
357
- strokeWidth: "1",
358
- opacity: 0.5
359
- }
360
- ),
361
- /* @__PURE__ */ jsxRuntime.jsx(
362
- "rect",
363
- {
364
- x: "4",
365
- y: "16",
366
- width: "4",
367
- height: "4",
368
- rx: "0.5",
369
- fill: "none",
370
- stroke: primaryColor,
371
- strokeWidth: "1",
372
- opacity: 0.5
373
- }
374
- ),
375
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: primaryColor }),
376
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "19", y: "14", width: "3", height: "3", fill: primaryColor }),
377
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "19", width: "3", height: "3", fill: primaryColor }),
378
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: primaryColor })
379
- ] }),
342
+ // the wireframe re-strokes every shape at 1: there the modules are lines through their centres
343
+ // (round caps), so the code keeps its look instead of a band of outlined runs
344
+ solid: ({ primaryColor: c, variant }) => variant === "wireframe" ? /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: c, strokeWidth: 1, strokeLinecap: "round", fill: "none", children: [
345
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_FINDER_RING_LINES }),
346
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_FINDER_CENTRE_LINES }),
347
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: QR_DATA_LINES })
348
+ ] }) : qrFilled(c, c, c),
380
349
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
381
350
  /* @__PURE__ */ jsxRuntime.jsx(
382
- "rect",
383
- {
384
- x: "2",
385
- y: "2",
386
- width: "8",
387
- height: "8",
388
- rx: "1",
389
- stroke: primaryColor,
390
- strokeWidth,
391
- fill: "none"
392
- }
393
- ),
394
- /* @__PURE__ */ jsxRuntime.jsx(
395
- "rect",
396
- {
397
- x: "14",
398
- y: "2",
399
- width: "8",
400
- height: "8",
401
- rx: "1",
402
- stroke: primaryColor,
403
- strokeWidth,
404
- fill: "none"
405
- }
406
- ),
407
- /* @__PURE__ */ jsxRuntime.jsx(
408
- "rect",
351
+ "path",
409
352
  {
410
- x: "2",
411
- y: "14",
412
- width: "8",
413
- height: "8",
414
- rx: "1",
353
+ d: QR_FINDER_RING_LINES,
415
354
  stroke: primaryColor,
416
355
  strokeWidth,
417
356
  fill: "none"
418
357
  }
419
358
  ),
420
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "5", y: "5", width: "2", height: "2", fill: primaryColor }),
421
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "17", y: "5", width: "2", height: "2", fill: primaryColor }),
422
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "5", y: "17", width: "2", height: "2", fill: primaryColor }),
423
- /* @__PURE__ */ jsxRuntime.jsx(
424
- "rect",
425
- {
426
- x: "14",
427
- y: "14",
428
- width: "3",
429
- height: "3",
430
- stroke: primaryColor,
431
- strokeWidth: "1.5",
432
- fill: "none"
433
- }
434
- ),
435
- /* @__PURE__ */ jsxRuntime.jsx(
436
- "rect",
437
- {
438
- x: "19",
439
- y: "14",
440
- width: "3",
441
- height: "3",
442
- stroke: primaryColor,
443
- strokeWidth: "1.5",
444
- fill: "none"
445
- }
446
- ),
447
- /* @__PURE__ */ jsxRuntime.jsx(
448
- "rect",
449
- {
450
- x: "14",
451
- y: "19",
452
- width: "3",
453
- height: "3",
454
- stroke: primaryColor,
455
- strokeWidth: "1.5",
456
- fill: "none"
457
- }
458
- ),
459
- /* @__PURE__ */ jsxRuntime.jsx(
460
- "rect",
461
- {
462
- x: "19",
463
- y: "19",
464
- width: "3",
465
- height: "3",
466
- stroke: primaryColor,
467
- strokeWidth: "1.5",
468
- fill: "none"
469
- }
470
- )
359
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${QR_FINDER_CENTRES}${QR_DATA}`, fill: primaryColor })
471
360
  ] }),
472
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
473
- /* @__PURE__ */ jsxRuntime.jsx(
474
- "rect",
475
- {
476
- x: "2",
477
- y: "2",
478
- width: "8",
479
- height: "8",
480
- rx: "1",
481
- fill: secondaryColor,
482
- opacity: secondaryOpacity
483
- }
484
- ),
485
- /* @__PURE__ */ jsxRuntime.jsx(
486
- "rect",
487
- {
488
- x: "14",
489
- y: "2",
490
- width: "8",
491
- height: "8",
492
- rx: "1",
493
- fill: secondaryColor,
494
- opacity: secondaryOpacity
495
- }
496
- ),
497
- /* @__PURE__ */ jsxRuntime.jsx(
498
- "rect",
499
- {
500
- x: "2",
501
- y: "14",
502
- width: "8",
503
- height: "8",
504
- rx: "1",
505
- fill: secondaryColor,
506
- opacity: secondaryOpacity
507
- }
508
- ),
509
- /* @__PURE__ */ jsxRuntime.jsx(
510
- "rect",
511
- {
512
- x: "2",
513
- y: "2",
514
- width: "8",
515
- height: "8",
516
- rx: "1",
517
- stroke: primaryColor,
518
- strokeWidth,
519
- fill: "none"
520
- }
521
- ),
522
- /* @__PURE__ */ jsxRuntime.jsx(
523
- "rect",
524
- {
525
- x: "14",
526
- y: "2",
527
- width: "8",
528
- height: "8",
529
- rx: "1",
530
- stroke: primaryColor,
531
- strokeWidth,
532
- fill: "none"
533
- }
534
- ),
535
- /* @__PURE__ */ jsxRuntime.jsx(
536
- "rect",
537
- {
538
- x: "2",
539
- y: "14",
540
- width: "8",
541
- height: "8",
542
- rx: "1",
543
- stroke: primaryColor,
544
- strokeWidth,
545
- fill: "none"
546
- }
547
- ),
548
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "5", y: "5", width: "2", height: "2", fill: primaryColor }),
549
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "17", y: "5", width: "2", height: "2", fill: primaryColor }),
550
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "5", y: "17", width: "2", height: "2", fill: primaryColor }),
551
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: primaryColor }),
552
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: primaryColor })
553
- ] })),
554
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
555
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
556
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: "white", opacity: "0.08" }),
557
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "2", width: "8", height: "8", rx: "1", fill: secondaryColor }),
558
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "14", width: "8", height: "8", rx: "1", fill: "#3B82F6" }),
559
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: "#10B981" }),
560
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "19", y: "14", width: "3", height: "3", fill: "#F472B6" }),
561
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "14", y: "19", width: "3", height: "3", fill: "#F472B6" }),
562
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: "#F472B6" }),
563
- /* @__PURE__ */ jsxRuntime.jsx(
564
- "rect",
565
- {
566
- x: "4",
567
- y: "4",
568
- width: "4",
569
- height: "4",
570
- rx: "0.5",
571
- fill: "none",
572
- stroke: "white",
573
- strokeWidth: "1",
574
- opacity: "0.35"
575
- }
576
- ),
577
- /* @__PURE__ */ jsxRuntime.jsx(
578
- "rect",
579
- {
580
- x: "16",
581
- y: "4",
582
- width: "4",
583
- height: "4",
584
- rx: "0.5",
585
- fill: "none",
586
- stroke: "white",
587
- strokeWidth: "1",
588
- opacity: "0.35"
589
- }
590
- ),
591
- /* @__PURE__ */ jsxRuntime.jsx(
592
- "rect",
593
- {
594
- x: "4",
595
- y: "16",
596
- width: "4",
597
- height: "4",
598
- rx: "0.5",
599
- fill: "none",
600
- stroke: "white",
601
- strokeWidth: "1",
602
- opacity: "0.35"
603
- }
604
- )
605
- ] })
361
+ duotone: ({ primaryColor, secondaryColor }) => qrFilled(primaryColor, secondaryColor, secondaryColor),
362
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => qrFilled(primaryColor, secondaryColor, accentColor, accentOpacity)
606
363
  }
607
364
  });
608
365
  exports.NtdAtSign = NtdAtSign;
@@ -277,110 +277,69 @@ const NtdBus = /* @__PURE__ */ createIcon.createIcon({
277
277
  vivid: (props) => busFilled(props, props.secondaryColor, props.accentColor, props.accentOpacity)
278
278
  }
279
279
  });
280
- const NtdShip = /* @__PURE__ */ createIcon.createIcon({
281
- displayName: "NtdShip",
282
- paths: {
283
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
284
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: primaryColor }),
285
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12V8h12v4", fill: primaryColor, opacity: "0.7" }),
286
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: primaryColor }),
287
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }),
288
- /* @__PURE__ */ jsxRuntime.jsx(
289
- "path",
290
- {
291
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
292
- stroke: primaryColor,
293
- strokeWidth: "2",
294
- strokeLinecap: "round",
295
- fill: "none"
296
- }
297
- )
298
- ] }),
299
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
300
- /* @__PURE__ */ jsxRuntime.jsx(
301
- "path",
302
- {
303
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
304
- stroke: primaryColor,
305
- strokeWidth,
306
- fill: "none"
307
- }
308
- ),
309
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12V8h12v4", stroke: primaryColor, strokeWidth, fill: "none" }),
310
- /* @__PURE__ */ jsxRuntime.jsx(
311
- "rect",
312
- {
313
- x: "10",
314
- y: "4",
315
- width: "4",
316
- height: "4",
317
- stroke: primaryColor,
318
- strokeWidth,
319
- fill: "none"
320
- }
321
- ),
322
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
323
- /* @__PURE__ */ jsxRuntime.jsx(
324
- "path",
325
- {
326
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
327
- stroke: primaryColor,
328
- strokeWidth,
329
- strokeLinecap: "round",
330
- fill: "none"
331
- }
332
- )
280
+ const SHIP_HULL = "M2 12.5H19.2L22.5 11.2L19.8 17.5H4.6Z";
281
+ const SHIP_CABIN = { x: 5.5, y: 8.5, width: 9.5, height: 4 };
282
+ const SHIP_BRIDGE = { x: 7, y: 6, width: 5, height: 2.5 };
283
+ const SHIP_FUNNEL = { x: 15.8, y: 5.5, width: 2.6, height: 7 };
284
+ const SHIP_WINDOWS = "M6.6 9.7h1.6v1.4H6.6zM9.1 9.7h1.6v1.4H9.1zM11.6 9.7h1.6v1.4h-1.6zM8 6.8h3v1.1H8z";
285
+ const SHIP_BAND = "M15.8 6.6h2.6v1.2h-2.6z";
286
+ const SHIP_PORTHOLES = [7.5, 10.5, 13.5, 16.5];
287
+ const SHIP_DECK = "M2 12.5H19.2";
288
+ const SHIP_WAVES = "M1.5 20.2c1.4 0 2.1-1 3.5-1s2.1 1 3.5 1 2.1-1 3.5-1 2.1 1 3.5 1 2.1-1 3.5-1 2.1 1 3.5 1";
289
+ function shipFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, upper, details) {
290
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
291
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...SHIP_CABIN, fill: upper }),
292
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...SHIP_BRIDGE, fill: upper }),
293
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...SHIP_FUNNEL, fill: upper }),
294
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SHIP_HULL, fill: primaryColor }),
295
+ details && /* @__PURE__ */ jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [
296
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${SHIP_WINDOWS}${SHIP_BAND}` }),
297
+ SHIP_PORTHOLES.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "14.6", r: "0.65" }, cx))
333
298
  ] }),
334
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
335
- /* @__PURE__ */ jsxRuntime.jsx(
336
- "path",
337
- {
338
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
339
- fill: secondaryColor,
340
- opacity: secondaryOpacity
341
- }
342
- ),
343
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12V8h12v4", fill: primaryColor, opacity: "0.5" }),
344
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: primaryColor }),
345
- /* @__PURE__ */ jsxRuntime.jsx(
346
- "path",
347
- {
348
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
349
- stroke: primaryColor,
350
- strokeWidth,
351
- fill: "none"
352
- }
353
- ),
354
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12V8h12v4", stroke: primaryColor, strokeWidth, fill: "none" }),
355
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
299
+ details && upper === primaryColor && iconParts.within(
300
+ uid,
301
+ "hull",
302
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SHIP_HULL }),
356
303
  /* @__PURE__ */ jsxRuntime.jsx(
357
304
  "path",
358
305
  {
359
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
360
- stroke: primaryColor,
361
- strokeWidth,
362
- strokeLinecap: "round",
363
- fill: "none"
306
+ d: SHIP_DECK,
307
+ stroke: accentColor,
308
+ strokeWidth: strokeWidth * 0.6,
309
+ opacity: accentOpacity
364
310
  }
365
311
  )
312
+ ),
313
+ /* @__PURE__ */ jsxRuntime.jsx(
314
+ "path",
315
+ {
316
+ d: SHIP_WAVES,
317
+ stroke: primaryColor,
318
+ strokeWidth: strokeWidth * 1.3,
319
+ strokeLinecap: "round",
320
+ fill: "none"
321
+ }
322
+ )
323
+ ] });
324
+ }
325
+ const NtdShip = /* @__PURE__ */ createIcon.createIcon({
326
+ displayName: "NtdShip",
327
+ paths: {
328
+ solid: (p) => shipFilled(p, p.primaryColor, true),
329
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
330
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "miter", fill: "none", children: [
331
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SHIP_HULL }),
332
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.5 12.5V8.5H15V12.5M7 8.5V6H12V8.5" }),
333
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...SHIP_FUNNEL }),
334
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SHIP_WAVES, strokeLinecap: "round" })
335
+ ] }),
336
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { fill: primaryColor, children: [
337
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SHIP_WINDOWS }),
338
+ SHIP_PORTHOLES.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "14.6", r: "0.65" }, cx))
339
+ ] })
366
340
  ] }),
367
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
368
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: primaryColor }),
369
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: "white", opacity: "0.08" }),
370
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12V8h12v4", fill: secondaryColor, opacity: "0.7" }),
371
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: "#3B82F6" }),
372
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2v2", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }),
373
- /* @__PURE__ */ jsxRuntime.jsx(
374
- "path",
375
- {
376
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
377
- stroke: "white",
378
- strokeWidth: "1",
379
- strokeLinecap: "round",
380
- fill: "none"
381
- }
382
- )
383
- ] })
341
+ duotone: (p) => shipFilled(p, p.secondaryColor, false),
342
+ vivid: (p) => shipFilled(p, p.secondaryColor, true)
384
343
  }
385
344
  });
386
345
  const BIKE_WHEELS = [5.4, 18.6];
@@ -389,7 +348,6 @@ const BIKE_SADDLE = "M7.3 7.9h2.9";
389
348
  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
349
  function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineWidth) {
391
350
  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)),
393
351
  accent && /* @__PURE__ */ jsxRuntime.jsx(
394
352
  "path",
395
353
  {
@@ -428,8 +386,9 @@ function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineW
428
386
  fill: "none"
429
387
  }
430
388
  ),
431
- BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "16", r: "0.7", fill: accent }, cx))
432
- ] })
389
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "16", r: "1", fill: accent }, cx))
390
+ ] }),
391
+ accent && BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "16", r: "0.5", fill: tyres }, cx))
433
392
  ] });
434
393
  }
435
394
  const NtdBike = /* @__PURE__ */ createIcon.createIcon({
@@ -572,7 +572,7 @@ const NtdUmbrella = /* @__PURE__ */ createIcon.createIcon({
572
572
  });
573
573
  const LEAF = "M6.2 17.8C6.2 9 12 2.8 21.2 2.8C21.2 12 15 17.8 6.2 17.8Z";
574
574
  const LEAF_STALK = "M7 17L3 21";
575
- const LEAF_MIDRIB = "M6.2 17.8L17.6 6.4";
575
+ const LEAF_MIDRIB = "M7.6 16.4C10.05 15.51 11.71 13.85 12.6 11.4C13.49 8.95 15.15 7.29 17.6 6.4";
576
576
  function leafFilled({ primaryColor, accentColor, accentOpacity, strokeWidth }, stalk, midrib) {
577
577
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
578
578
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: LEAF_STALK, stroke: stalk, strokeWidth: strokeWidth * 1.6, strokeLinecap: "round" }),
@@ -595,7 +595,7 @@ const NtdLeaf = /* @__PURE__ */ createIcon.createIcon({
595
595
  solid: (p) => leafFilled(p, p.primaryColor, true),
596
596
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinecap: "round", fill: "none", children: [
597
597
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: LEAF, strokeLinejoin: "round" }),
598
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.2 17.8L3 21M6.2 17.8L16.4 7.6" })
598
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `M3 21L7.6 16.4${LEAF_MIDRIB.slice(LEAF_MIDRIB.indexOf("C"))}` })
599
599
  ] }),
600
600
  duotone: (p) => leafFilled(p, p.secondaryColor, false),
601
601
  vivid: (p) => leafFilled(p, p.secondaryColor, true)
@@ -990,18 +990,40 @@ const BRUSH_HANDLE = "M11 0.6A1 1 0 0 1 13 0.6L13.3 10.4H10.7Z";
990
990
  const BRUSH_FERRULE = "M10.7 10.4H13.3L14.1 13.2H9.9Z";
991
991
  const BRUSH_BRISTLES = "M9.9 13.2H14.1C14.8 15.4 15.2 18.4 12 24.2C8.8 18.4 9.2 15.4 9.9 13.2Z";
992
992
  const BRUSH_CUTS = "M8 10.4H16M8 13.2H16";
993
- function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1) {
993
+ const BRUSH_HAIRS = "M11 13.6C10.4 16.4 10.5 19.6 11.6 22.4M12 13.6C12.2 16.8 12.2 19.8 12 23.2M13 13.6C13.6 16.4 13.5 19.6 12.4 22.4";
994
+ function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1, hairs) {
994
995
  return /* @__PURE__ */ jsxs(Fragment, { children: [
995
996
  /* @__PURE__ */ jsx("path", { d: BRUSH_HANDLE, fill: handle }),
996
997
  /* @__PURE__ */ jsx("path", { d: BRUSH_FERRULE, fill: ferrule, opacity: ferruleOpacity }),
997
- /* @__PURE__ */ jsx("path", { d: BRUSH_BRISTLES, fill: bristles })
998
+ /* @__PURE__ */ jsx("path", { d: BRUSH_BRISTLES, fill: bristles }),
999
+ hairs && within(
1000
+ hairs.uid,
1001
+ "hairs",
1002
+ /* @__PURE__ */ jsx("path", { d: BRUSH_BRISTLES }),
1003
+ /* @__PURE__ */ jsx(
1004
+ "path",
1005
+ {
1006
+ d: BRUSH_HAIRS,
1007
+ stroke: hairs.color,
1008
+ strokeWidth: hairs.width,
1009
+ strokeLinecap: "round",
1010
+ opacity: hairs.opacity,
1011
+ fill: "none"
1012
+ }
1013
+ )
1014
+ )
998
1015
  ] });
999
1016
  }
1000
1017
  const NtdBrush = /* @__PURE__ */ createIcon({
1001
1018
  displayName: "NtdBrush",
1002
1019
  paths: {
1003
1020
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsxs("g", { transform: BRUSH_TURN, children: [
1004
- brushFilled(primaryColor, primaryColor, primaryColor),
1021
+ brushFilled(primaryColor, primaryColor, primaryColor, 1, {
1022
+ color: accentColor,
1023
+ opacity: accentOpacity,
1024
+ width: strokeWidth * 0.4,
1025
+ uid
1026
+ }),
1005
1027
  within(
1006
1028
  uid,
1007
1029
  "brush",
@@ -1017,19 +1039,29 @@ const NtdBrush = /* @__PURE__ */ createIcon({
1017
1039
  )
1018
1040
  )
1019
1041
  ] }),
1020
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsx(
1021
- "path",
1022
- {
1023
- d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`,
1024
- transform: BRUSH_TURN,
1025
- stroke: primaryColor,
1026
- strokeWidth,
1027
- strokeLinejoin: "round",
1028
- fill: "none"
1029
- }
1030
- ),
1031
- duotone: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, primaryColor, secondaryColor) }),
1032
- vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity) })
1042
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs("g", { transform: BRUSH_TURN, stroke: primaryColor, fill: "none", children: [
1043
+ /* @__PURE__ */ jsx(
1044
+ "path",
1045
+ {
1046
+ d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`,
1047
+ strokeWidth,
1048
+ strokeLinejoin: "round"
1049
+ }
1050
+ ),
1051
+ /* @__PURE__ */ jsx("path", { d: BRUSH_HAIRS, strokeWidth: strokeWidth * 0.5, strokeLinecap: "round" })
1052
+ ] }),
1053
+ duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => /* @__PURE__ */ jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, primaryColor, secondaryColor, 1, {
1054
+ color: primaryColor,
1055
+ opacity: 1,
1056
+ width: strokeWidth * 0.4,
1057
+ uid
1058
+ }) }),
1059
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity, {
1060
+ color: accentColor,
1061
+ opacity: accentOpacity,
1062
+ width: strokeWidth * 0.4,
1063
+ uid
1064
+ }) })
1033
1065
  }
1034
1066
  });
1035
1067
  const NtdPenTool = /* @__PURE__ */ createIcon({
@@ -321,286 +321,43 @@ const NtdMegaphone = /* @__PURE__ */ createIcon({
321
321
  vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => megaphoneFilled(primaryColor, secondaryColor, accentColor, accentOpacity)
322
322
  }
323
323
  });
324
+ const QR_FINDER_RINGS = "M1.5 1.5h7v7h-7zM2.5 2.5v5h5v-5zM15.5 1.5h7v7h-7zM16.5 2.5v5h5v-5zM1.5 15.5h7v7h-7zM2.5 16.5v5h5v-5z";
325
+ const QR_FINDER_RING_LINES = "M2 2h6v6h-6zM16 2h6v6h-6zM2 16h6v6h-6z";
326
+ const QR_FINDER_CENTRES = "M3.5 3.5h3v3h-3zM17.5 3.5h3v3h-3zM3.5 17.5h3v3h-3z";
327
+ const QR_DATA = "M9.5 1.5h1v1h-1zM11.5 1.5h3v1h-3zM11.5 2.5h1v1h-1zM13.5 2.5h1v1h-1zM9.5 3.5h1v1h-1zM12.5 3.5h2v1h-2zM9.5 4.5h2v1h-2zM12.5 5.5h1v1h-1zM9.5 6.5h1v1h-1zM12.5 6.5h2v1h-2zM9.5 8.5h2v1h-2zM1.5 9.5h1v1h-1zM3.5 9.5h1v1h-1zM5.5 9.5h2v1h-2zM8.5 9.5h1v1h-1zM10.5 9.5h1v1h-1zM12.5 9.5h2v1h-2zM15.5 9.5h1v1h-1zM17.5 9.5h1v1h-1zM19.5 9.5h1v1h-1zM21.5 9.5h1v1h-1zM2.5 10.5h2v1h-2zM5.5 10.5h2v1h-2zM9.5 10.5h3v1h-3zM13.5 10.5h2v1h-2zM18.5 10.5h1v1h-1zM21.5 10.5h1v1h-1zM2.5 11.5h1v1h-1zM4.5 11.5h1v1h-1zM6.5 11.5h1v1h-1zM9.5 11.5h1v1h-1zM14.5 11.5h1v1h-1zM18.5 11.5h2v1h-2zM21.5 11.5h1v1h-1zM5.5 12.5h1v1h-1zM9.5 12.5h1v1h-1zM12.5 12.5h2v1h-2zM16.5 12.5h2v1h-2zM3.5 13.5h1v1h-1zM5.5 13.5h1v1h-1zM8.5 13.5h1v1h-1zM10.5 13.5h3v1h-3zM15.5 13.5h1v1h-1zM17.5 13.5h1v1h-1zM19.5 13.5h2v1h-2zM9.5 14.5h5v1h-5zM18.5 14.5h1v1h-1zM20.5 14.5h1v1h-1zM9.5 15.5h1v1h-1zM13.5 15.5h4v1h-4zM20.5 15.5h1v1h-1zM10.5 16.5h1v1h-1zM13.5 16.5h4v1h-4zM19.5 16.5h3v1h-3zM9.5 17.5h1v1h-1zM12.5 17.5h2v1h-2zM15.5 17.5h2v1h-2zM20.5 17.5h1v1h-1zM9.5 18.5h1v1h-1zM15.5 18.5h1v1h-1zM18.5 18.5h4v1h-4zM11.5 19.5h1v1h-1zM13.5 19.5h1v1h-1zM15.5 19.5h2v1h-2zM18.5 19.5h1v1h-1zM20.5 19.5h1v1h-1zM9.5 20.5h2v1h-2zM12.5 20.5h2v1h-2zM16.5 20.5h2v1h-2zM19.5 20.5h2v1h-2zM10.5 21.5h3v1h-3zM16.5 21.5h1v1h-1zM20.5 21.5h2v1h-2zM9.5 7.5h1v1h-1zM7.5 9.5h1v1h-1zM11.5 7.5h1v1h-1zM7.5 11.5h1v1h-1zM13.5 7.5h1v1h-1zM7.5 13.5h1v1h-1z";
328
+ const QR_DATA_LINES = "M10 2h0M12 2h2M12 3h0M14 3h0M10 4h0M13 4h1M10 5h1M13 6h0M10 7h0M13 7h1M10 9h1M2 10h0M4 10h0M6 10h1M9 10h0M11 10h0M13 10h1M16 10h0M18 10h0M20 10h0M22 10h0M3 11h1M6 11h1M10 11h2M14 11h1M19 11h0M22 11h0M3 12h0M5 12h0M7 12h0M10 12h0M15 12h0M19 12h1M22 12h0M6 13h0M10 13h0M13 13h1M17 13h1M4 14h0M6 14h0M9 14h0M11 14h2M16 14h0M18 14h0M20 14h1M10 15h4M19 15h0M21 15h0M10 16h0M14 16h3M21 16h0M11 17h0M14 17h3M20 17h2M10 18h0M13 18h1M16 18h1M21 18h0M10 19h0M16 19h0M19 19h3M12 20h0M14 20h0M16 20h1M19 20h0M21 20h0M10 21h1M13 21h1M17 21h1M20 21h1M11 22h2M17 22h0M21 22h1M10 8h0M8 10h0M12 8h0M8 12h0M14 8h0M8 14h0";
329
+ const QR_FINDER_CENTRE_LINES = "M4 4h2v2h-2zM18 4h2v2h-2zM4 18h2v2h-2z";
330
+ function qrFilled(data, rings, centres, centresOpacity = 1) {
331
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
332
+ /* @__PURE__ */ jsx("path", { d: QR_DATA, fill: data }),
333
+ /* @__PURE__ */ jsx("path", { d: QR_FINDER_RINGS, fill: rings, fillRule: "evenodd" }),
334
+ /* @__PURE__ */ jsx("path", { d: QR_FINDER_CENTRES, fill: centres, opacity: centresOpacity })
335
+ ] });
336
+ }
324
337
  const NtdQrCode = /* @__PURE__ */ createIcon({
325
338
  displayName: "NtdQrCode",
326
339
  paths: {
327
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
328
- /* @__PURE__ */ jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
329
- /* @__PURE__ */ jsx("rect", { x: "14", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
330
- /* @__PURE__ */ jsx("rect", { x: "2", y: "14", width: "8", height: "8", rx: "1", fill: primaryColor }),
331
- /* @__PURE__ */ jsx(
332
- "rect",
333
- {
334
- x: "4",
335
- y: "4",
336
- width: "4",
337
- height: "4",
338
- rx: "0.5",
339
- fill: "none",
340
- stroke: primaryColor,
341
- strokeWidth: "1",
342
- opacity: 0.5
343
- }
344
- ),
345
- /* @__PURE__ */ jsx(
346
- "rect",
347
- {
348
- x: "16",
349
- y: "4",
350
- width: "4",
351
- height: "4",
352
- rx: "0.5",
353
- fill: "none",
354
- stroke: primaryColor,
355
- strokeWidth: "1",
356
- opacity: 0.5
357
- }
358
- ),
359
- /* @__PURE__ */ jsx(
360
- "rect",
361
- {
362
- x: "4",
363
- y: "16",
364
- width: "4",
365
- height: "4",
366
- rx: "0.5",
367
- fill: "none",
368
- stroke: primaryColor,
369
- strokeWidth: "1",
370
- opacity: 0.5
371
- }
372
- ),
373
- /* @__PURE__ */ jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: primaryColor }),
374
- /* @__PURE__ */ jsx("rect", { x: "19", y: "14", width: "3", height: "3", fill: primaryColor }),
375
- /* @__PURE__ */ jsx("rect", { x: "14", y: "19", width: "3", height: "3", fill: primaryColor }),
376
- /* @__PURE__ */ jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: primaryColor })
377
- ] }),
340
+ // the wireframe re-strokes every shape at 1: there the modules are lines through their centres
341
+ // (round caps), so the code keeps its look instead of a band of outlined runs
342
+ solid: ({ primaryColor: c, variant }) => variant === "wireframe" ? /* @__PURE__ */ jsxs("g", { stroke: c, strokeWidth: 1, strokeLinecap: "round", fill: "none", children: [
343
+ /* @__PURE__ */ jsx("path", { d: QR_FINDER_RING_LINES }),
344
+ /* @__PURE__ */ jsx("path", { d: QR_FINDER_CENTRE_LINES }),
345
+ /* @__PURE__ */ jsx("path", { d: QR_DATA_LINES })
346
+ ] }) : qrFilled(c, c, c),
378
347
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
379
348
  /* @__PURE__ */ jsx(
380
- "rect",
381
- {
382
- x: "2",
383
- y: "2",
384
- width: "8",
385
- height: "8",
386
- rx: "1",
387
- stroke: primaryColor,
388
- strokeWidth,
389
- fill: "none"
390
- }
391
- ),
392
- /* @__PURE__ */ jsx(
393
- "rect",
394
- {
395
- x: "14",
396
- y: "2",
397
- width: "8",
398
- height: "8",
399
- rx: "1",
400
- stroke: primaryColor,
401
- strokeWidth,
402
- fill: "none"
403
- }
404
- ),
405
- /* @__PURE__ */ jsx(
406
- "rect",
349
+ "path",
407
350
  {
408
- x: "2",
409
- y: "14",
410
- width: "8",
411
- height: "8",
412
- rx: "1",
351
+ d: QR_FINDER_RING_LINES,
413
352
  stroke: primaryColor,
414
353
  strokeWidth,
415
354
  fill: "none"
416
355
  }
417
356
  ),
418
- /* @__PURE__ */ jsx("rect", { x: "5", y: "5", width: "2", height: "2", fill: primaryColor }),
419
- /* @__PURE__ */ jsx("rect", { x: "17", y: "5", width: "2", height: "2", fill: primaryColor }),
420
- /* @__PURE__ */ jsx("rect", { x: "5", y: "17", width: "2", height: "2", fill: primaryColor }),
421
- /* @__PURE__ */ jsx(
422
- "rect",
423
- {
424
- x: "14",
425
- y: "14",
426
- width: "3",
427
- height: "3",
428
- stroke: primaryColor,
429
- strokeWidth: "1.5",
430
- fill: "none"
431
- }
432
- ),
433
- /* @__PURE__ */ jsx(
434
- "rect",
435
- {
436
- x: "19",
437
- y: "14",
438
- width: "3",
439
- height: "3",
440
- stroke: primaryColor,
441
- strokeWidth: "1.5",
442
- fill: "none"
443
- }
444
- ),
445
- /* @__PURE__ */ jsx(
446
- "rect",
447
- {
448
- x: "14",
449
- y: "19",
450
- width: "3",
451
- height: "3",
452
- stroke: primaryColor,
453
- strokeWidth: "1.5",
454
- fill: "none"
455
- }
456
- ),
457
- /* @__PURE__ */ jsx(
458
- "rect",
459
- {
460
- x: "19",
461
- y: "19",
462
- width: "3",
463
- height: "3",
464
- stroke: primaryColor,
465
- strokeWidth: "1.5",
466
- fill: "none"
467
- }
468
- )
357
+ /* @__PURE__ */ jsx("path", { d: `${QR_FINDER_CENTRES}${QR_DATA}`, fill: primaryColor })
469
358
  ] }),
470
- duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
471
- /* @__PURE__ */ jsx(
472
- "rect",
473
- {
474
- x: "2",
475
- y: "2",
476
- width: "8",
477
- height: "8",
478
- rx: "1",
479
- fill: secondaryColor,
480
- opacity: secondaryOpacity
481
- }
482
- ),
483
- /* @__PURE__ */ jsx(
484
- "rect",
485
- {
486
- x: "14",
487
- y: "2",
488
- width: "8",
489
- height: "8",
490
- rx: "1",
491
- fill: secondaryColor,
492
- opacity: secondaryOpacity
493
- }
494
- ),
495
- /* @__PURE__ */ jsx(
496
- "rect",
497
- {
498
- x: "2",
499
- y: "14",
500
- width: "8",
501
- height: "8",
502
- rx: "1",
503
- fill: secondaryColor,
504
- opacity: secondaryOpacity
505
- }
506
- ),
507
- /* @__PURE__ */ jsx(
508
- "rect",
509
- {
510
- x: "2",
511
- y: "2",
512
- width: "8",
513
- height: "8",
514
- rx: "1",
515
- stroke: primaryColor,
516
- strokeWidth,
517
- fill: "none"
518
- }
519
- ),
520
- /* @__PURE__ */ jsx(
521
- "rect",
522
- {
523
- x: "14",
524
- y: "2",
525
- width: "8",
526
- height: "8",
527
- rx: "1",
528
- stroke: primaryColor,
529
- strokeWidth,
530
- fill: "none"
531
- }
532
- ),
533
- /* @__PURE__ */ jsx(
534
- "rect",
535
- {
536
- x: "2",
537
- y: "14",
538
- width: "8",
539
- height: "8",
540
- rx: "1",
541
- stroke: primaryColor,
542
- strokeWidth,
543
- fill: "none"
544
- }
545
- ),
546
- /* @__PURE__ */ jsx("rect", { x: "5", y: "5", width: "2", height: "2", fill: primaryColor }),
547
- /* @__PURE__ */ jsx("rect", { x: "17", y: "5", width: "2", height: "2", fill: primaryColor }),
548
- /* @__PURE__ */ jsx("rect", { x: "5", y: "17", width: "2", height: "2", fill: primaryColor }),
549
- /* @__PURE__ */ jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: primaryColor }),
550
- /* @__PURE__ */ jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: primaryColor })
551
- ] })),
552
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
553
- /* @__PURE__ */ jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: primaryColor }),
554
- /* @__PURE__ */ jsx("rect", { x: "2", y: "2", width: "8", height: "8", rx: "1", fill: "white", opacity: "0.08" }),
555
- /* @__PURE__ */ jsx("rect", { x: "14", y: "2", width: "8", height: "8", rx: "1", fill: secondaryColor }),
556
- /* @__PURE__ */ jsx("rect", { x: "2", y: "14", width: "8", height: "8", rx: "1", fill: "#3B82F6" }),
557
- /* @__PURE__ */ jsx("rect", { x: "14", y: "14", width: "3", height: "3", fill: "#10B981" }),
558
- /* @__PURE__ */ jsx("rect", { x: "19", y: "14", width: "3", height: "3", fill: "#F472B6" }),
559
- /* @__PURE__ */ jsx("rect", { x: "14", y: "19", width: "3", height: "3", fill: "#F472B6" }),
560
- /* @__PURE__ */ jsx("rect", { x: "19", y: "19", width: "3", height: "3", fill: "#F472B6" }),
561
- /* @__PURE__ */ jsx(
562
- "rect",
563
- {
564
- x: "4",
565
- y: "4",
566
- width: "4",
567
- height: "4",
568
- rx: "0.5",
569
- fill: "none",
570
- stroke: "white",
571
- strokeWidth: "1",
572
- opacity: "0.35"
573
- }
574
- ),
575
- /* @__PURE__ */ jsx(
576
- "rect",
577
- {
578
- x: "16",
579
- y: "4",
580
- width: "4",
581
- height: "4",
582
- rx: "0.5",
583
- fill: "none",
584
- stroke: "white",
585
- strokeWidth: "1",
586
- opacity: "0.35"
587
- }
588
- ),
589
- /* @__PURE__ */ jsx(
590
- "rect",
591
- {
592
- x: "4",
593
- y: "16",
594
- width: "4",
595
- height: "4",
596
- rx: "0.5",
597
- fill: "none",
598
- stroke: "white",
599
- strokeWidth: "1",
600
- opacity: "0.35"
601
- }
602
- )
603
- ] })
359
+ duotone: ({ primaryColor, secondaryColor }) => qrFilled(primaryColor, secondaryColor, secondaryColor),
360
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => qrFilled(primaryColor, secondaryColor, accentColor, accentOpacity)
604
361
  }
605
362
  });
606
363
  export {
@@ -275,110 +275,69 @@ const NtdBus = /* @__PURE__ */ createIcon({
275
275
  vivid: (props) => busFilled(props, props.secondaryColor, props.accentColor, props.accentOpacity)
276
276
  }
277
277
  });
278
- const NtdShip = /* @__PURE__ */ createIcon({
279
- displayName: "NtdShip",
280
- paths: {
281
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
282
- /* @__PURE__ */ jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: primaryColor }),
283
- /* @__PURE__ */ jsx("path", { d: "M6 12V8h12v4", fill: primaryColor, opacity: "0.7" }),
284
- /* @__PURE__ */ jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: primaryColor }),
285
- /* @__PURE__ */ jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }),
286
- /* @__PURE__ */ jsx(
287
- "path",
288
- {
289
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
290
- stroke: primaryColor,
291
- strokeWidth: "2",
292
- strokeLinecap: "round",
293
- fill: "none"
294
- }
295
- )
296
- ] }),
297
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
298
- /* @__PURE__ */ jsx(
299
- "path",
300
- {
301
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
302
- stroke: primaryColor,
303
- strokeWidth,
304
- fill: "none"
305
- }
306
- ),
307
- /* @__PURE__ */ jsx("path", { d: "M6 12V8h12v4", stroke: primaryColor, strokeWidth, fill: "none" }),
308
- /* @__PURE__ */ jsx(
309
- "rect",
310
- {
311
- x: "10",
312
- y: "4",
313
- width: "4",
314
- height: "4",
315
- stroke: primaryColor,
316
- strokeWidth,
317
- fill: "none"
318
- }
319
- ),
320
- /* @__PURE__ */ jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
321
- /* @__PURE__ */ jsx(
322
- "path",
323
- {
324
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
325
- stroke: primaryColor,
326
- strokeWidth,
327
- strokeLinecap: "round",
328
- fill: "none"
329
- }
330
- )
278
+ const SHIP_HULL = "M2 12.5H19.2L22.5 11.2L19.8 17.5H4.6Z";
279
+ const SHIP_CABIN = { x: 5.5, y: 8.5, width: 9.5, height: 4 };
280
+ const SHIP_BRIDGE = { x: 7, y: 6, width: 5, height: 2.5 };
281
+ const SHIP_FUNNEL = { x: 15.8, y: 5.5, width: 2.6, height: 7 };
282
+ const SHIP_WINDOWS = "M6.6 9.7h1.6v1.4H6.6zM9.1 9.7h1.6v1.4H9.1zM11.6 9.7h1.6v1.4h-1.6zM8 6.8h3v1.1H8z";
283
+ const SHIP_BAND = "M15.8 6.6h2.6v1.2h-2.6z";
284
+ const SHIP_PORTHOLES = [7.5, 10.5, 13.5, 16.5];
285
+ const SHIP_DECK = "M2 12.5H19.2";
286
+ const SHIP_WAVES = "M1.5 20.2c1.4 0 2.1-1 3.5-1s2.1 1 3.5 1 2.1-1 3.5-1 2.1 1 3.5 1 2.1-1 3.5-1 2.1 1 3.5 1";
287
+ function shipFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, upper, details) {
288
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
289
+ /* @__PURE__ */ jsx("rect", { ...SHIP_CABIN, fill: upper }),
290
+ /* @__PURE__ */ jsx("rect", { ...SHIP_BRIDGE, fill: upper }),
291
+ /* @__PURE__ */ jsx("rect", { ...SHIP_FUNNEL, fill: upper }),
292
+ /* @__PURE__ */ jsx("path", { d: SHIP_HULL, fill: primaryColor }),
293
+ details && /* @__PURE__ */ jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [
294
+ /* @__PURE__ */ jsx("path", { d: `${SHIP_WINDOWS}${SHIP_BAND}` }),
295
+ SHIP_PORTHOLES.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "14.6", r: "0.65" }, cx))
331
296
  ] }),
332
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
333
- /* @__PURE__ */ jsx(
334
- "path",
335
- {
336
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
337
- fill: secondaryColor,
338
- opacity: secondaryOpacity
339
- }
340
- ),
341
- /* @__PURE__ */ jsx("path", { d: "M6 12V8h12v4", fill: primaryColor, opacity: "0.5" }),
342
- /* @__PURE__ */ jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: primaryColor }),
343
- /* @__PURE__ */ jsx(
344
- "path",
345
- {
346
- d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z",
347
- stroke: primaryColor,
348
- strokeWidth,
349
- fill: "none"
350
- }
351
- ),
352
- /* @__PURE__ */ jsx("path", { d: "M6 12V8h12v4", stroke: primaryColor, strokeWidth, fill: "none" }),
353
- /* @__PURE__ */ jsx("path", { d: "M12 2v2", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
297
+ details && upper === primaryColor && within(
298
+ uid,
299
+ "hull",
300
+ /* @__PURE__ */ jsx("path", { d: SHIP_HULL }),
354
301
  /* @__PURE__ */ jsx(
355
302
  "path",
356
303
  {
357
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
358
- stroke: primaryColor,
359
- strokeWidth,
360
- strokeLinecap: "round",
361
- fill: "none"
304
+ d: SHIP_DECK,
305
+ stroke: accentColor,
306
+ strokeWidth: strokeWidth * 0.6,
307
+ opacity: accentOpacity
362
308
  }
363
309
  )
310
+ ),
311
+ /* @__PURE__ */ jsx(
312
+ "path",
313
+ {
314
+ d: SHIP_WAVES,
315
+ stroke: primaryColor,
316
+ strokeWidth: strokeWidth * 1.3,
317
+ strokeLinecap: "round",
318
+ fill: "none"
319
+ }
320
+ )
321
+ ] });
322
+ }
323
+ const NtdShip = /* @__PURE__ */ createIcon({
324
+ displayName: "NtdShip",
325
+ paths: {
326
+ solid: (p) => shipFilled(p, p.primaryColor, true),
327
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
328
+ /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "miter", fill: "none", children: [
329
+ /* @__PURE__ */ jsx("path", { d: SHIP_HULL }),
330
+ /* @__PURE__ */ jsx("path", { d: "M5.5 12.5V8.5H15V12.5M7 8.5V6H12V8.5" }),
331
+ /* @__PURE__ */ jsx("rect", { ...SHIP_FUNNEL }),
332
+ /* @__PURE__ */ jsx("path", { d: SHIP_WAVES, strokeLinecap: "round" })
333
+ ] }),
334
+ /* @__PURE__ */ jsxs("g", { fill: primaryColor, children: [
335
+ /* @__PURE__ */ jsx("path", { d: SHIP_WINDOWS }),
336
+ SHIP_PORTHOLES.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "14.6", r: "0.65" }, cx))
337
+ ] })
364
338
  ] }),
365
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
366
- /* @__PURE__ */ jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: primaryColor }),
367
- /* @__PURE__ */ jsx("path", { d: "M4 18l1-6h14l1 6c-4 2-8 2-8 2s-4 0-8-2z", fill: "white", opacity: "0.08" }),
368
- /* @__PURE__ */ jsx("path", { d: "M6 12V8h12v4", fill: secondaryColor, opacity: "0.7" }),
369
- /* @__PURE__ */ jsx("rect", { x: "10", y: "4", width: "4", height: "4", fill: "#3B82F6" }),
370
- /* @__PURE__ */ jsx("path", { d: "M12 2v2", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }),
371
- /* @__PURE__ */ jsx(
372
- "path",
373
- {
374
- d: "M2 22c2 0 3-1 4-1s2 1 4 1 3-1 4-1 2 1 4 1 3-1 4-1",
375
- stroke: "white",
376
- strokeWidth: "1",
377
- strokeLinecap: "round",
378
- fill: "none"
379
- }
380
- )
381
- ] })
339
+ duotone: (p) => shipFilled(p, p.secondaryColor, false),
340
+ vivid: (p) => shipFilled(p, p.secondaryColor, true)
382
341
  }
383
342
  });
384
343
  const BIKE_WHEELS = [5.4, 18.6];
@@ -387,7 +346,6 @@ const BIKE_SADDLE = "M7.3 7.9h2.9";
387
346
  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";
388
347
  function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineWidth) {
389
348
  return /* @__PURE__ */ jsxs(Fragment, { children: [
390
- accent && BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "16", r: "3.6", fill: tyres }, cx)),
391
349
  accent && /* @__PURE__ */ jsx(
392
350
  "path",
393
351
  {
@@ -426,8 +384,9 @@ function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineW
426
384
  fill: "none"
427
385
  }
428
386
  ),
429
- BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "16", r: "0.7", fill: accent }, cx))
430
- ] })
387
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "16", r: "1", fill: accent }, cx))
388
+ ] }),
389
+ accent && BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "16", r: "0.5", fill: tyres }, cx))
431
390
  ] });
432
391
  }
433
392
  const NtdBike = /* @__PURE__ */ createIcon({
@@ -570,7 +570,7 @@ const NtdUmbrella = /* @__PURE__ */ createIcon({
570
570
  });
571
571
  const LEAF = "M6.2 17.8C6.2 9 12 2.8 21.2 2.8C21.2 12 15 17.8 6.2 17.8Z";
572
572
  const LEAF_STALK = "M7 17L3 21";
573
- const LEAF_MIDRIB = "M6.2 17.8L17.6 6.4";
573
+ const LEAF_MIDRIB = "M7.6 16.4C10.05 15.51 11.71 13.85 12.6 11.4C13.49 8.95 15.15 7.29 17.6 6.4";
574
574
  function leafFilled({ primaryColor, accentColor, accentOpacity, strokeWidth }, stalk, midrib) {
575
575
  return /* @__PURE__ */ jsxs(Fragment, { children: [
576
576
  /* @__PURE__ */ jsx("path", { d: LEAF_STALK, stroke: stalk, strokeWidth: strokeWidth * 1.6, strokeLinecap: "round" }),
@@ -593,7 +593,7 @@ const NtdLeaf = /* @__PURE__ */ createIcon({
593
593
  solid: (p) => leafFilled(p, p.primaryColor, true),
594
594
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinecap: "round", fill: "none", children: [
595
595
  /* @__PURE__ */ jsx("path", { d: LEAF, strokeLinejoin: "round" }),
596
- /* @__PURE__ */ jsx("path", { d: "M6.2 17.8L3 21M6.2 17.8L16.4 7.6" })
596
+ /* @__PURE__ */ jsx("path", { d: `M3 21L7.6 16.4${LEAF_MIDRIB.slice(LEAF_MIDRIB.indexOf("C"))}` })
597
597
  ] }),
598
598
  duotone: (p) => leafFilled(p, p.secondaryColor, false),
599
599
  vivid: (p) => leafFilled(p, p.secondaryColor, true)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/icons",
3
- "version": "1.4.9",
3
+ "version": "1.4.11",
4
4
  "description": "Beautiful, lightweight, multi-color SVG icon library for React with animations",
5
5
  "author": "NiceToDev <contact@nicetodev.com>",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -109,7 +109,7 @@
109
109
  },
110
110
  "devDependencies": {
111
111
  "@chromatic-com/storybook": "^5.3.1",
112
- "@nice2dev/ui-core": "^1.4.9",
112
+ "@nice2dev/ui-core": "^1.4.11",
113
113
  "@storybook/addon-a11y": "^10.6.6",
114
114
  "@storybook/addon-docs": "^10.6.6",
115
115
  "@storybook/react-vite": "^10.6.6",