@nice2dev/icons 1.3.6 → 1.3.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 (88) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +37 -17
  3. package/dist/cjs/NiceIconStacker.js +19 -5
  4. package/dist/cjs/createIcon.js +19 -6
  5. package/dist/cjs/iconParts.js +24 -2
  6. package/dist/cjs/iconStack.js +7 -5
  7. package/dist/cjs/icons/accessibility.js +9 -8
  8. package/dist/cjs/icons/actions.js +42 -32
  9. package/dist/cjs/icons/ai.js +12 -11
  10. package/dist/cjs/icons/brand.js +2 -2
  11. package/dist/cjs/icons/business.js +37 -29
  12. package/dist/cjs/icons/devtech.js +17 -15
  13. package/dist/cjs/icons/ecommerce.js +19 -14
  14. package/dist/cjs/icons/education.js +30 -25
  15. package/dist/cjs/icons/files.js +64 -32
  16. package/dist/cjs/icons/fintech.js +2 -11
  17. package/dist/cjs/icons/food.js +12 -8
  18. package/dist/cjs/icons/fun.js +11 -11
  19. package/dist/cjs/icons/gaming.js +20 -13
  20. package/dist/cjs/icons/health.js +38 -25
  21. package/dist/cjs/icons/index.js +1 -0
  22. package/dist/cjs/icons/input.js +31 -21
  23. package/dist/cjs/icons/legal.js +11 -11
  24. package/dist/cjs/icons/media.js +24 -15
  25. package/dist/cjs/icons/navigation.js +16 -13
  26. package/dist/cjs/icons/omniverk.js +2 -7
  27. package/dist/cjs/icons/realestate.js +14 -14
  28. package/dist/cjs/icons/saas.js +0 -10
  29. package/dist/cjs/icons/science.js +12 -12
  30. package/dist/cjs/icons/shapes.js +20 -17
  31. package/dist/cjs/icons/smarthome.js +0 -11
  32. package/dist/cjs/icons/social.js +7 -6
  33. package/dist/cjs/icons/sports.js +5 -6
  34. package/dist/cjs/icons/sustainability.js +12 -11
  35. package/dist/cjs/icons/travel.js +13 -13
  36. package/dist/cjs/icons/ui.js +60 -35
  37. package/dist/cjs/icons/weather.js +12 -16
  38. package/dist/cjs/index.js +1 -0
  39. package/dist/cjs/resolver.js +1 -0
  40. package/dist/cjs/rsc.js +1 -1
  41. package/dist/cjs/stacking.js +49 -11
  42. package/dist/esm/NiceIconStacker.js +22 -8
  43. package/dist/esm/createIcon.js +20 -7
  44. package/dist/esm/iconParts.js +24 -3
  45. package/dist/esm/iconStack.js +7 -5
  46. package/dist/esm/icons/accessibility.js +9 -8
  47. package/dist/esm/icons/actions.js +43 -33
  48. package/dist/esm/icons/ai.js +12 -11
  49. package/dist/esm/icons/brand.js +2 -2
  50. package/dist/esm/icons/business.js +38 -30
  51. package/dist/esm/icons/devtech.js +17 -15
  52. package/dist/esm/icons/ecommerce.js +19 -14
  53. package/dist/esm/icons/education.js +30 -25
  54. package/dist/esm/icons/files.js +65 -33
  55. package/dist/esm/icons/fintech.js +2 -11
  56. package/dist/esm/icons/food.js +12 -8
  57. package/dist/esm/icons/fun.js +11 -11
  58. package/dist/esm/icons/gaming.js +21 -14
  59. package/dist/esm/icons/health.js +38 -25
  60. package/dist/esm/icons/index.js +1 -1
  61. package/dist/esm/icons/input.js +31 -21
  62. package/dist/esm/icons/legal.js +12 -12
  63. package/dist/esm/icons/media.js +25 -16
  64. package/dist/esm/icons/navigation.js +16 -13
  65. package/dist/esm/icons/omniverk.js +2 -7
  66. package/dist/esm/icons/realestate.js +15 -15
  67. package/dist/esm/icons/saas.js +0 -10
  68. package/dist/esm/icons/science.js +12 -12
  69. package/dist/esm/icons/shapes.js +20 -17
  70. package/dist/esm/icons/smarthome.js +0 -11
  71. package/dist/esm/icons/social.js +8 -7
  72. package/dist/esm/icons/sports.js +6 -7
  73. package/dist/esm/icons/sustainability.js +12 -11
  74. package/dist/esm/icons/travel.js +14 -14
  75. package/dist/esm/icons/ui.js +61 -37
  76. package/dist/esm/icons/weather.js +13 -17
  77. package/dist/esm/index.js +1 -1
  78. package/dist/esm/resolver.js +1 -0
  79. package/dist/esm/rsc.js +1 -1
  80. package/dist/esm/stacking.js +46 -12
  81. package/dist/types/createIcon.d.ts +16 -2
  82. package/dist/types/iconParts.d.ts +8 -2
  83. package/dist/types/iconStack.d.ts +18 -3
  84. package/dist/types/icons/index.d.ts +1 -1
  85. package/dist/types/icons/ui.d.ts +1 -0
  86. package/dist/types/stacking.d.ts +30 -5
  87. package/dist/types/types.d.ts +22 -8
  88. package/package.json +2 -2
@@ -1,5 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { createIcon } from '../createIcon.js';
3
+ import { swapDuotone } from '../iconParts.js';
3
4
 
4
5
  // ═══════════════════════════════════════════════════════════════════════════════
5
6
  // E-Commerce Icons
@@ -28,16 +29,18 @@ const NtdCheckout = /* @__PURE__ */ createIcon({
28
29
  paths: {
29
30
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", fill: primaryColor }), jsx("rect", { x: "4", y: "7", width: "6", height: "1", rx: "0.5", fill: accentColor, opacity: accentOpacity }), jsx("rect", { x: "4", y: "10", width: "4", height: "1", rx: "0.5", fill: accentColor, opacity: accentOpacity }), jsx("path", { d: "M18 8l2 2 4-4", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsx("path", { d: "M2 17h14l2 4H4l-2-4z", fill: primaryColor })] })),
30
31
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "4", y: "7", width: "6", height: "1", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" }), jsx("rect", { x: "4", y: "10", width: "4", height: "1", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" }), jsx("path", { d: "M18 8l2 2 4-4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M2 17h14l2 4H4l-2-4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
31
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M2 17h14l2 4H4l-2-4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M2 17h14l2 4H4l-2-4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M18 8l2 2 4-4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
32
32
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "14", height: "10", rx: "2", fill: "white", opacity: "0.08" }), jsx("rect", { x: "4", y: "7", width: "6", height: "1", rx: "0.5", fill: secondaryColor }), jsx("rect", { x: "4", y: "10", width: "4", height: "1", rx: "0.5", fill: "#F59E0B" }), jsx("path", { d: "M2 17h14l2 4H4l-2-4z", fill: "#EF4444" }), jsx("path", { d: "M18 8l2 2 4-4", stroke: "white", strokeWidth: "1", fill: "none" })] })),
33
33
  },
34
34
  });
35
35
  const NtdWishlist = /* @__PURE__ */ createIcon({
36
36
  displayName: 'NtdWishlist',
37
+ perfectStackX: 12,
38
+ perfectStackY: 11.5,
39
+ perfectStackSize: 0.45,
37
40
  paths: {
38
41
  solid: ({ primaryColor }) => (jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", fill: primaryColor })),
39
42
  outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
40
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
43
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] }))),
41
44
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", fill: primaryColor }), jsx("path", { d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", fill: "white", opacity: "0.1" })] })),
42
45
  },
43
46
  });
@@ -46,7 +49,6 @@ const NtdCompare = /* @__PURE__ */ createIcon({
46
49
  paths: {
47
50
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", fill: primaryColor }), jsx("rect", { x: "14", y: "3", width: "8", height: "18", rx: "1", fill: primaryColor }), jsx("path", { d: "M10 8h4M10 12h4M10 16h4", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
48
51
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "14", y: "3", width: "8", height: "18", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M10 8h4M10 12h4M10 16h4", stroke: primaryColor, strokeWidth: strokeWidth })] })),
49
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "14", y: "3", width: "8", height: "18", rx: "1", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "14", y: "3", width: "8", height: "18", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M10 8h4M10 12h4M10 16h4", stroke: primaryColor, strokeWidth: strokeWidth })] })),
50
52
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", fill: primaryColor }), jsx("rect", { x: "2", y: "3", width: "8", height: "18", rx: "1", fill: "white", opacity: "0.08" }), jsx("rect", { x: "14", y: "3", width: "8", height: "18", rx: "1", fill: secondaryColor }), jsx("path", { d: "M10 8h4M10 12h4M10 16h4", stroke: "white", strokeWidth: "1", opacity: "0.4" })] })),
51
53
  },
52
54
  });
@@ -55,7 +57,6 @@ const NtdShipping = /* @__PURE__ */ createIcon({
55
57
  paths: {
56
58
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: "M1 3h14v10H1V3z", fill: primaryColor }), jsx("path", { d: "M15 7h4l3 4v4h-7V7z", fill: primaryColor }), jsx("circle", { cx: "6", cy: "17", r: "2", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "18", cy: "17", r: "2", fill: accentColor, opacity: accentOpacity }), jsx("path", { d: "M1 17h3M10 17h6", stroke: primaryColor, strokeWidth: "2" })] })),
57
59
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M1 3h14v10H1V3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M15 7h4l3 4v4h-7V7z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "6", cy: "17", r: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "18", cy: "17", r: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M1 17h3M10 17h6", stroke: primaryColor, strokeWidth: strokeWidth })] })),
58
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M1 3h14v10H1V3z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M15 7h4l3 4v4h-7V7z", fill: secondaryColor, opacity: secondaryOpacity * 0.7 }), jsx("path", { d: "M1 3h14v10H1V3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M15 7h4l3 4v4h-7V7z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "6", cy: "17", r: "2", fill: primaryColor }), jsx("circle", { cx: "18", cy: "17", r: "2", fill: primaryColor }), jsx("path", { d: "M1 17h3M10 17h6", stroke: primaryColor, strokeWidth: strokeWidth })] })),
59
60
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M1 3h14v10H1V3z", fill: primaryColor }), jsx("path", { d: "M1 3h14v10H1V3z", fill: "white", opacity: "0.08" }), jsx("path", { d: "M15 7h4l3 4v4h-7V7z", fill: secondaryColor }), jsx("circle", { cx: "6", cy: "17", r: "2", fill: "#F59E0B" }), jsx("circle", { cx: "18", cy: "17", r: "2", fill: "#EF4444" }), jsx("path", { d: "M1 17h3M10 17h6", stroke: "white", strokeWidth: "1" })] })),
60
61
  },
61
62
  });
@@ -64,7 +65,6 @@ const NtdReturn = /* @__PURE__ */ createIcon({
64
65
  paths: {
65
66
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 7h12v10H4V7z", fill: primaryColor }), jsx("path", { d: "M1 12l4-4v3h6v2H5v3l-4-4z", fill: accentColor, opacity: accentOpacity }), jsx("path", { d: "M23 12l-4 4v-3h-6v-2h6V8l4 4z", fill: accentColor, opacity: accentOpacity })] })),
66
67
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "7", width: "12", height: "10", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M1 12l3-3v2.5h4v1H4V15l-3-3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M23 12l-3 3v-2.5h-4v-1h4V9l3 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
67
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 7h12v10H4V7z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "7", width: "12", height: "10", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M1 12l3-3v6l-3-3z", fill: primaryColor }), jsx("path", { d: "M23 12l-3-3v6l3-3z", fill: primaryColor }), jsx("path", { d: "M4 11.5h4M16 11.5h4", stroke: primaryColor, strokeWidth: strokeWidth })] })),
68
68
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 7h12v10H4V7z", fill: primaryColor }), jsx("path", { d: "M4 7h12v10H4V7z", fill: "white", opacity: "0.08" }), jsx("path", { d: "M1 12l4-4v3h6v2H5v3l-4-4z", fill: secondaryColor }), jsx("path", { d: "M23 12l-4 4v-3h-6v-2h6V8l4 4z", fill: "#F59E0B" })] })),
69
69
  },
70
70
  });
@@ -73,17 +73,26 @@ const NtdDiscount = /* @__PURE__ */ createIcon({
73
73
  paths: {
74
74
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("path", { d: "M7 17L17 7", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity }), jsx("circle", { cx: "8", cy: "8", r: "2", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "16", cy: "16", r: "2", fill: accentColor, opacity: accentOpacity })] })),
75
75
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M7 17L17 7", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("circle", { cx: "8", cy: "8", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "16", cy: "16", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
76
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: secondaryColor, opacity: secondaryOpacity }), jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M7 17L17 7", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("circle", { cx: "8", cy: "8", r: "1.5", fill: primaryColor }), jsx("circle", { cx: "16", cy: "16", r: "1.5", fill: primaryColor })] })),
77
76
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "8", cy: "8", r: "2", fill: secondaryColor }), jsx("circle", { cx: "16", cy: "16", r: "2", fill: "#F59E0B" }), jsx("path", { d: "M7 17L17 7", stroke: "white", strokeWidth: "1", opacity: "0.35" })] })),
78
77
  },
79
78
  });
79
+ // NtdPromoTag: a price tag with its hole and a percent sign on it, the sign turned 45° clockwise
80
+ // — its slash lies across and the two dots sit above and below it. Filled, the sign is in the
81
+ // accent colour like the hole (vivid: the hole secondary; duotone: both secondary on the primary
82
+ // tag, 1.3.8); the outline draws it primary.
83
+ const PROMO_TAG = 'M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z';
84
+ const PROMO_PERCENT_SLASH = 'M10 13h6.4';
85
+ /** The percent sign's two dots, r 1.15, above and below the slash. */
86
+ const PROMO_PERCENT_DOTS = 'M13.2 8.95a1.15 1.15 0 100 2.3 1.15 1.15 0 100-2.3zM13.2 14.75a1.15 1.15 0 100 2.3 1.15 1.15 0 100-2.3z';
87
+ function promoPercent(color, width, opacity = 1) {
88
+ return (jsxs("g", { opacity: opacity, children: [jsx("path", { d: PROMO_PERCENT_SLASH, stroke: color, strokeWidth: width }), jsx("path", { d: PROMO_PERCENT_DOTS, fill: color })] }));
89
+ }
80
90
  const NtdPromoTag = /* @__PURE__ */ createIcon({
81
91
  displayName: 'NtdPromoTag',
82
92
  paths: {
83
- solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsx("circle", { cx: "7", cy: "7", r: "2", fill: accentColor, opacity: accentOpacity })] })),
84
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
85
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: primaryColor })] })),
86
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "7", cy: "7", r: "2", fill: secondaryColor })] })),
93
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: PROMO_TAG, fill: primaryColor }), jsx("circle", { cx: "7", cy: "7", r: "2", fill: accentColor, opacity: accentOpacity }), promoPercent(accentColor, strokeWidth * 1.5, accentOpacity)] })),
94
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: PROMO_TAG, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), promoPercent(primaryColor, strokeWidth)] })),
95
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: PROMO_TAG, fill: primaryColor }), jsx("path", { d: PROMO_TAG, fill: "white", opacity: "0.08" }), jsx("circle", { cx: "7", cy: "7", r: "2", fill: secondaryColor }), promoPercent(accentColor, strokeWidth * 1.5, accentOpacity)] })),
87
96
  },
88
97
  });
89
98
  const NtdGiftCard = /* @__PURE__ */ createIcon({
@@ -91,7 +100,6 @@ const NtdGiftCard = /* @__PURE__ */ createIcon({
91
100
  paths: {
92
101
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("path", { d: "M12 5v14", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity }), jsx("path", { d: "M2 10h20", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity }), jsx("circle", { cx: "12", cy: "7", r: "2", fill: accentColor, opacity: accentOpacity })] })),
93
102
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M12 5v14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M2 10h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M8 5c0-2 4-2 4 0M16 5c0-2-4-2-4 0", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
94
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M12 5v14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M2 10h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M8 5c0-2 4-2 4 0M16 5c0-2-4-2-4 0", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
95
103
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "12", cy: "7", r: "2", fill: secondaryColor }), jsx("path", { d: "M12 5v14", stroke: "white", strokeWidth: "1", opacity: "0.4" }), jsx("path", { d: "M2 10h20", stroke: "white", strokeWidth: "1", opacity: "0.4" })] })),
96
104
  },
97
105
  });
@@ -100,7 +108,6 @@ const NtdCoupon = /* @__PURE__ */ createIcon({
100
108
  paths: {
101
109
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", fill: primaryColor }), jsx("path", { d: "M10 8v8M10 8l-3 3M10 8l3 3", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsx("circle", { cx: "16", cy: "10", r: "1", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "16", cy: "14", r: "1", fill: accentColor, opacity: accentOpacity })] })),
102
110
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M10 8v8M10 8l-3 3M10 8l3 3", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("circle", { cx: "16", cy: "10", r: "1", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" }), jsx("circle", { cx: "16", cy: "14", r: "1", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" })] })),
103
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M10 8v8M10 8l-3 3M10 8l3 3", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("circle", { cx: "16", cy: "10", r: "1", fill: primaryColor }), jsx("circle", { cx: "16", cy: "14", r: "1", fill: primaryColor })] })),
104
111
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", fill: primaryColor }), jsx("path", { d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v4a2 2 0 100 4v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4a2 2 0 100-4V6z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "16", cy: "10", r: "1", fill: secondaryColor }), jsx("circle", { cx: "16", cy: "14", r: "1", fill: "#F59E0B" }), jsx("path", { d: "M10 8v8M10 8l-3 3M10 8l3 3", stroke: "white", strokeWidth: "1", opacity: "0.35" })] })),
105
112
  },
106
113
  });
@@ -118,7 +125,6 @@ const NtdPayment = /* @__PURE__ */ createIcon({
118
125
  paths: {
119
126
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "9", width: "20", height: "3", fill: accentColor, opacity: accentOpacity * 1.5 }), jsx("rect", { x: "5", y: "15", width: "4", height: "2", rx: "0.5", fill: accentColor, opacity: accentOpacity }), jsx("rect", { x: "11", y: "15", width: "3", height: "2", rx: "0.5", fill: accentColor, opacity: accentOpacity })] })),
120
127
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M2 9h20M2 12h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("rect", { x: "5", y: "15", width: "4", height: "2", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" }), jsx("rect", { x: "11", y: "15", width: "3", height: "2", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" })] })),
121
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "2", y: "9", width: "20", height: "3", fill: primaryColor }), jsx("rect", { x: "5", y: "15", width: "4", height: "2", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" })] })),
122
128
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsx("rect", { x: "2", y: "9", width: "20", height: "3", fill: secondaryColor }), jsx("rect", { x: "5", y: "15", width: "4", height: "2", rx: "0.5", fill: "#F59E0B" }), jsx("rect", { x: "11", y: "15", width: "3", height: "2", rx: "0.5", fill: "#EF4444" })] })),
123
129
  },
124
130
  });
@@ -127,7 +133,6 @@ const NtdRefund = /* @__PURE__ */ createIcon({
127
133
  paths: {
128
134
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("path", { d: "M12 6v6l-3 3", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity, fill: "none" }), jsx("path", { d: "M8 3l-4 3 4 3", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity, fill: "none" }), jsx("path", { d: "M4 6h5", stroke: accentColor, strokeWidth: "2", opacity: accentOpacity })] })),
129
135
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M12 6v6l-3 3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 2l-4 3 4 3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M4 5h5", stroke: primaryColor, strokeWidth: strokeWidth })] })),
130
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: secondaryColor, opacity: secondaryOpacity }), jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M12 6v6l-3 3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 2l-4 3 4 3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M4 5h5", stroke: primaryColor, strokeWidth: strokeWidth })] })),
131
136
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.1" }), jsx("path", { d: "M12 6v6l-3 3", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsx("path", { d: "M8 3l-4 3 4 3", stroke: "#F59E0B", strokeWidth: "1.5", fill: "none" }), jsx("path", { d: "M4 6h5", stroke: "#F59E0B", strokeWidth: "1.5" })] })),
132
137
  },
133
138
  });
@@ -1,5 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { createIcon } from '../createIcon.js';
3
+ import { swapDuotone } from '../iconParts.js';
3
4
 
4
5
  /* ────────────────────────────────────────────────────────────────────────────
5
6
  ACADEMIC
@@ -18,7 +19,7 @@ const NtdDiploma = /* @__PURE__ */ createIcon({
18
19
  paths: {
19
20
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", fill: primaryColor }), jsx("path", { d: "M7 8h10M7 11h10M7 14h6", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "2", fill: "white" }), jsx("path", { d: "M16 16l-1 4 2-1 2 1-1-4", fill: primaryColor })] })),
20
21
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M7 8h10M7 11h10M7 14h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M16 16l-1 4 2-1 2 1-1-4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
21
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M7 8h10M7 11h10M7 14h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "2", fill: primaryColor }), jsx("path", { d: "M16 16l-1 4 2-1 2 1-1-4", fill: primaryColor })] })),
22
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M7 8h10M7 11h10M7 14h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "2", fill: primaryColor }), jsx("path", { d: "M16 16l-1 4 2-1 2 1-1-4", fill: primaryColor })] }))),
22
23
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "17", cy: "14", r: "2", fill: "white" }), jsx("path", { d: "M16 16l-1 4 2-1 2 1-1-4", fill: "#F59E0B" }), jsx("path", { d: "M7 8h10M7 11h10M7 14h6", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
23
24
  },
24
25
  });
@@ -27,7 +28,7 @@ const NtdSchool = /* @__PURE__ */ createIcon({
27
28
  paths: {
28
29
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", fill: primaryColor }), jsx("rect", { x: "10", y: "9", width: "4", height: "5", rx: "0.5", fill: "white" }), jsx("path", { d: "M12 5v4", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" })] })),
29
30
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("rect", { x: "10", y: "9", width: "4", height: "5", rx: "0.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
30
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("rect", { x: "10", y: "9", width: "4", height: "5", rx: "0.5", fill: primaryColor })] })),
31
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("rect", { x: "10", y: "9", width: "4", height: "5", rx: "0.5", fill: primaryColor })] }))),
31
32
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", fill: primaryColor }), jsx("path", { d: "M12 3L2 9v12h8v-6h4v6h8V9L12 3z", fill: "white", opacity: "0.08" }), jsx("rect", { x: "10", y: "9", width: "4", height: "5", rx: "0.5", fill: "white" }), jsx("path", { d: "M12 5v4", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
32
33
  },
33
34
  });
@@ -47,23 +48,28 @@ const NtdUniversity = /* @__PURE__ */ createIcon({
47
48
  // at the bottom between the front cover and the back cover. Down the right edge it is cover, then
48
49
  // a notch cut in 0.9 at the pages, then cover again: beside the pages only a narrow strip of cover
49
50
  // is left (it was a 2.5 wide bar). The outline ends the pages with a line short of the edge, the back
50
- // cover running on under the notch. The cover is plain, so another glyph can sit on it;
51
- // NtdBookBookmark adds a ribbon.
52
- const BOOK_SILHOUETTE = 'M7 2h12a1 1 0 011 1v14.2h-.9v2.1H20v.7a1 1 0 01-1 1H7a2.5 2.5 0 01-2.5-2.5v-14A2.5 2.5 0 017 2z';
53
- const BOOK_PAGES = 'M6.6 17.2h11.4v2.1H6.6a1.05 1.05 0 010-2.1z';
54
- const BOOK_RIBBON = 'M9.5 2v6.5l1.75-1.3L13 8.5V2z';
55
- const BOOK_OUTLINE = 'M4.5 18.5v-14A2.5 2.5 0 017 2h12a1 1 0 011 1v13H7a2.5 2.5 0 000 5h13M18.7 16v5';
56
- /** The inside of the outline, for duotone's fill under it. */
57
- const BOOK_OUTLINE_FILL = 'M7 2h12a1 1 0 011 1v13h-1.3v5H7a2.5 2.5 0 01-2.5-2.5v-14A2.5 2.5 0 017 2z';
51
+ // cover running on under the notch. The front cover is 12.2 high (3.5 → 15.7, 20% lower than it
52
+ // was) and the block of pages 50% thicker (3.15, it was 2.1), the book centred in the box. The
53
+ // cover carries one line of title, in the accent colour when filled, in its upper third (a quarter
54
+ // of the way down; it was halfway); NtdBookBookmark adds a ribbon there and keeps the title
55
+ // halfway, below it.
56
+ const BOOK_SILHOUETTE = 'M7 3.5h12a1 1 0 011 1v11.2h-.9v3.15H20v.65a1 1 0 01-1 1H7a2.5 2.5 0 01-2.5-2.5V6A2.5 2.5 0 017 3.5z';
57
+ const BOOK_PAGES = 'M6.6 15.7h11.4v3.15H6.6a1.575 1.575 0 010-3.15z';
58
+ const BOOK_RIBBON = 'M9.5 3.5V8l1.75-1.3L13 8V3.5z';
59
+ const BOOK_TITLE = 'M9.5 6.75h6.5';
60
+ /** The title below NtdBookBookmark's ribbon. */
61
+ const BOOK_TITLE_LOW = 'M9.5 10h6.5';
62
+ const BOOK_OUTLINE = 'M4.5 17.5V6A2.5 2.5 0 017 3.5h12a1 1 0 011 1v10H7.5a3 3 0 000 6H20M18.7 14.5v6';
58
63
  /** The book, with the ribbon bookmark or without it. */
59
64
  function bookIcon(displayName, ribbon) {
65
+ const title = ribbon ? BOOK_TITLE_LOW : BOOK_TITLE;
60
66
  return createIcon({
61
67
  displayName,
62
68
  paths: {
63
- solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsx("path", { d: BOOK_PAGES }), ribbon && jsx("path", { d: BOOK_RIBBON })] })] })),
64
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_OUTLINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && (jsx("path", { d: "M9.5 2.5v6l1.75-1.3L13 8.5v-6", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }))] })),
65
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_OUTLINE_FILL, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: BOOK_OUTLINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && jsx("path", { d: BOOK_RIBBON, fill: primaryColor })] })),
66
- vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsx("path", { d: BOOK_PAGES, fill: accentColor, opacity: accentOpacity }), ribbon && jsx("path", { d: BOOK_RIBBON, fill: secondaryColor })] })),
69
+ solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsx("path", { d: BOOK_PAGES }), ribbon && jsx("path", { d: BOOK_RIBBON }), jsx("path", { d: title, stroke: accentColor, strokeWidth: "1.5", fill: "none" })] })] })),
70
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: `${BOOK_OUTLINE}${title}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && (jsx("path", { d: "M9.5 4v4l1.75-1.3L13 8V4", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }))] })),
71
+ // duotone (1.3.8): createIcon's default — the solid book, pages, ribbon and title secondary
72
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsx("path", { d: BOOK_PAGES }), jsx("path", { d: title, stroke: accentColor, strokeWidth: "1.5", fill: "none" })] }), ribbon && jsx("path", { d: BOOK_RIBBON, fill: secondaryColor })] })),
67
73
  },
68
74
  });
69
75
  }
@@ -74,7 +80,7 @@ const NtdOpenBook = /* @__PURE__ */ createIcon({
74
80
  paths: {
75
81
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", fill: primaryColor }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", fill: primaryColor, opacity: "0.6" })] })),
76
82
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
77
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
83
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] }))),
78
84
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", fill: primaryColor }), jsx("path", { d: "M2 4a2 2 0 012-2h6a2 2 0 012 2v16l-1-1-3 2-3-2-1 1V4z", fill: "white", opacity: "0.08" }), jsx("path", { d: "M22 4a2 2 0 00-2-2h-6a2 2 0 00-2 2v16l1-1 3 2 3-2 1 1V4z", fill: secondaryColor, opacity: "0.6" })] })),
79
85
  },
80
86
  });
@@ -100,7 +106,7 @@ const NtdPencil = /* @__PURE__ */ createIcon({
100
106
  paths: {
101
107
  solid: ({ primaryColor }) => (jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4zM17 7l-3-3", fill: primaryColor })),
102
108
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("path", { d: "M14 4l6 6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
103
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("path", { d: "M14 4l6 6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
109
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" }), jsx("path", { d: "M14 4l6 6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
104
110
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4zM17 7l-3-3", fill: primaryColor }), jsx("path", { d: "M21.17 2.83a2.83 2.83 0 00-4 0L3 17l-1 5 5-1L21.17 6.83a2.83 2.83 0 000-4zM17 7l-3-3", fill: "white", opacity: "0.1" })] })),
105
111
  },
106
112
  });
@@ -109,7 +115,7 @@ const NtdPen = /* @__PURE__ */ createIcon({
109
115
  paths: {
110
116
  solid: ({ primaryColor }) => (jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", fill: primaryColor })),
111
117
  outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" })),
112
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" })] })),
118
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" })] }))),
113
119
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", fill: primaryColor }), jsx("path", { d: "M12 2l10 10-8 8-2-2V8l-2 2v10l-8-8L12 2z", fill: "white", opacity: "0.1" })] })),
114
120
  },
115
121
  });
@@ -121,7 +127,7 @@ const NtdOnlineCourse = /* @__PURE__ */ createIcon({
121
127
  paths: {
122
128
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("path", { d: "M8 19h8M12 17v2", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }), jsx("path", { d: "M10 8l4 2-4 2V8z", fill: "white" })] })),
123
129
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 19h8M12 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("path", { d: "M10 8l4 2-4 2V8z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinejoin: "round" })] })),
124
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 19h8M12 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("path", { d: "M10 8l4 2-4 2V8z", fill: primaryColor })] })),
130
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 19h8M12 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("path", { d: "M10 8l4 2-4 2V8z", fill: primaryColor })] }))),
125
131
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsx("path", { d: "M10 8l4 2-4 2V8z", fill: "white" }), jsx("path", { d: "M8 19h8M12 17v2", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
126
132
  },
127
133
  });
@@ -130,7 +136,7 @@ const NtdWebinar = /* @__PURE__ */ createIcon({
130
136
  paths: {
131
137
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", fill: primaryColor }), jsx("circle", { cx: "12", cy: "10", r: "3", fill: "white" }), jsx("path", { d: "M6 14c0-2 2.5-3 6-3s6 1 6 3", stroke: "white", strokeWidth: "1.5", fill: "none" }), jsx("path", { d: "M8 19h8M10 17v2M14 17v2", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" })] })),
132
138
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "12", cy: "10", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 19h8M10 17v2M14 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
133
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "12", cy: "10", r: "3", fill: primaryColor }), jsx("path", { d: "M8 19h8M10 17v2M14 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
139
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "12", cy: "10", r: "3", fill: primaryColor }), jsx("path", { d: "M8 19h8M10 17v2M14 17v2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
134
140
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "12", cy: "10", r: "3", fill: "white" }), jsx("path", { d: "M6 14c0-2 2.5-3 6-3s6 1 6 3", stroke: "white", strokeWidth: "1", fill: "none" }), jsx("path", { d: "M8 19h8M10 17v2M14 17v2", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
135
141
  },
136
142
  });
@@ -139,7 +145,7 @@ const NtdCertificate = /* @__PURE__ */ createIcon({
139
145
  paths: {
140
146
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("path", { d: "M6 8h12M6 11h8", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "3", fill: "white" }), jsx("path", { d: "M17 17v4l-1.5-1-1.5 1v-4M17 17v4l1.5-1 1.5 1v-4", stroke: primaryColor, strokeWidth: "1.5" }), jsx("path", { d: "M16 13l1 1 2-2", stroke: primaryColor, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] })),
141
147
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M6 8h12M6 11h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M15.5 17v4l1.5-1 1.5 1v-4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M16 13l1 1 2-2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" })] })),
142
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M6 8h12M6 11h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "3", fill: primaryColor }), jsx("path", { d: "M15.5 17v4l1.5-1 1.5 1v-4", fill: primaryColor }), jsx("path", { d: "M16 13l1 1 2-2", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] })),
148
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M6 8h12M6 11h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "17", cy: "14", r: "3", fill: primaryColor }), jsx("path", { d: "M15.5 17v4l1.5-1 1.5 1v-4", fill: primaryColor }), jsx("path", { d: "M16 13l1 1 2-2", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] }))),
143
149
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "17", cy: "14", r: "3", fill: "white" }), jsx("path", { d: "M6 8h12M6 11h8", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }), jsx("path", { d: "M17 17v4l-1.5-1-1.5 1v-4M17 17v4l1.5-1 1.5 1v-4", stroke: "white", strokeWidth: "1" }), jsx("path", { d: "M16 13l1 1 2-2", stroke: "white", strokeWidth: "1", strokeLinecap: "round", strokeLinejoin: "round" })] })),
144
150
  },
145
151
  });
@@ -148,7 +154,7 @@ const NtdQuiz = /* @__PURE__ */ createIcon({
148
154
  paths: {
149
155
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", fill: primaryColor }), jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: "white" }), jsx("circle", { cx: "7", cy: "12", r: "1.5", fill: "white" }), jsx("circle", { cx: "7", cy: "17", r: "1.5", fill: "white" }), jsx("path", { d: "M11 7h7M11 12h7M11 17h5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsx("path", { d: "M6.5 6.5l1 1M6.5 7.5l1-1", stroke: primaryColor, strokeWidth: "1", strokeLinecap: "round" })] })),
150
156
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "12", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "17", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M11 7h7M11 12h7M11 17h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
151
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: primaryColor }), jsx("circle", { cx: "7", cy: "12", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "17", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M11 7h7M11 12h7M11 17h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
157
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: primaryColor }), jsx("circle", { cx: "7", cy: "12", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "7", cy: "17", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M11 7h7M11 12h7M11 17h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
152
158
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", fill: primaryColor }), jsx("rect", { x: "3", y: "2", width: "18", height: "20", rx: "2", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: "white" }), jsx("circle", { cx: "7", cy: "12", r: "1.5", fill: "white" }), jsx("circle", { cx: "7", cy: "17", r: "1.5", fill: "white" }), jsx("path", { d: "M11 7h7M11 12h7M11 17h5", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }), jsx("path", { d: "M6.5 6.5l1 1M6.5 7.5l1-1", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
153
159
  },
154
160
  });
@@ -157,7 +163,7 @@ const NtdExam = /* @__PURE__ */ createIcon({
157
163
  paths: {
158
164
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", fill: primaryColor }), jsx("path", { d: "M14 2v6h6", fill: "white", opacity: "0.3" }), jsx("path", { d: "M8 12h8M8 15h8M8 18h5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsx("text", { x: "12", y: "10", textAnchor: "middle", fill: "white", fontSize: "5", fontWeight: "bold", children: "A+" })] })),
159
165
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M14 2v6h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M8 12h8M8 15h8M8 18h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("text", { x: "12", y: "10", textAnchor: "middle", fill: primaryColor, fontSize: "5", fontWeight: "bold", children: "A+" })] })),
160
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M14 2v6h6", fill: primaryColor, opacity: "0.3" }), jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M14 2v6h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M8 12h8M8 15h8M8 18h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
166
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M14 2v6h6", fill: primaryColor, opacity: "0.3" }), jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M14 2v6h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M8 12h8M8 15h8M8 18h5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
161
167
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", fill: primaryColor }), jsx("path", { d: "M4 4a2 2 0 012-2h8l6 6v14a2 2 0 01-2 2H6a2 2 0 01-2-2V4z", fill: "white", opacity: "0.08" }), jsx("path", { d: "M14 2v6h6", fill: "white", opacity: "0.3" }), jsx("path", { d: "M8 12h8M8 15h8M8 18h5", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
162
168
  },
163
169
  });
@@ -169,7 +175,7 @@ const NtdFlashcard = /* @__PURE__ */ createIcon({
169
175
  paths: {
170
176
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", fill: primaryColor, opacity: "0.5" }), jsx("path", { d: "M8 10h8M8 14h4", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" })] })),
171
177
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", opacity: "0.5" }), jsx("path", { d: "M8 10h8M8 14h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
172
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 10h8M8 14h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
178
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M8 10h8M8 14h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
173
179
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", fill: primaryColor }), jsx("rect", { x: "4", y: "6", width: "16", height: "12", rx: "2", fill: "white", opacity: "0.08" }), jsx("rect", { x: "2", y: "4", width: "16", height: "12", rx: "2", fill: secondaryColor, opacity: "0.5" }), jsx("path", { d: "M8 10h8M8 14h4", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
174
180
  },
175
181
  });
@@ -178,7 +184,7 @@ const NtdBackpack = /* @__PURE__ */ createIcon({
178
184
  paths: {
179
185
  solid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", fill: primaryColor }), jsx("path", { d: "M9 4V3a3 3 0 016 0v1", stroke: primaryColor, strokeWidth: "2" }), jsx("rect", { x: "8", y: "12", width: "8", height: "5", rx: "1", fill: "white" }), jsx("path", { d: "M10 14h4", stroke: primaryColor, strokeWidth: "1.5", strokeLinecap: "round" })] })),
180
186
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M9 4V3a3 3 0 016 0v1", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("rect", { x: "8", y: "12", width: "8", height: "5", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M10 14h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
181
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M9 4V3a3 3 0 016 0v1", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("rect", { x: "8", y: "12", width: "8", height: "5", rx: "1", fill: primaryColor })] })),
187
+ duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M9 4V3a3 3 0 016 0v1", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("rect", { x: "8", y: "12", width: "8", height: "5", rx: "1", fill: primaryColor })] }))),
182
188
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", fill: primaryColor }), jsx("path", { d: "M6 8a4 4 0 014-4h4a4 4 0 014 4v12a2 2 0 01-2 2H8a2 2 0 01-2-2V8z", fill: "white", opacity: "0.08" }), jsx("rect", { x: "8", y: "12", width: "8", height: "5", rx: "1", fill: "white" }), jsx("path", { d: "M9 4V3a3 3 0 016 0v1", stroke: "white", strokeWidth: "1" }), jsx("path", { d: "M10 14h4", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
183
189
  },
184
190
  });
@@ -198,7 +204,6 @@ const NtdCalculator = /* @__PURE__ */ createIcon({
198
204
  paths: {
199
205
  solid: (props) => calculatorFilled(props, props.accentColor, props.accentOpacity),
200
206
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "6", y: "4", width: "12", height: "5", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "8", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "12", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "16", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "8", cy: "16", r: "1", fill: primaryColor }), jsx("circle", { cx: "12", cy: "16", r: "1", fill: primaryColor }), jsx("circle", { cx: "16", cy: "16", r: "1", fill: primaryColor }), jsx("circle", { cx: "8", cy: "20", r: "1", fill: primaryColor }), jsx("rect", { x: "11", y: "19", width: "6", height: "2", rx: "0.5", fill: primaryColor })] })),
201
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("rect", { x: "6", y: "4", width: "12", height: "5", rx: "1", fill: primaryColor }), jsx("circle", { cx: "8", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "12", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "16", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "8", cy: "16", r: "1", fill: primaryColor }), jsx("circle", { cx: "12", cy: "16", r: "1", fill: primaryColor }), jsx("circle", { cx: "16", cy: "16", r: "1", fill: primaryColor })] })),
202
207
  vivid: (props) => calculatorFilled(props, props.secondaryColor, 1),
203
208
  },
204
209
  });