@nice2dev/icons 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +538 -0
  2. package/README.md +146 -134
  3. package/dist/cjs/NiceDesktopIconExporter.js +7 -3
  4. package/dist/cjs/NiceFaviconGenerator.js +6 -2
  5. package/dist/cjs/NiceIconPicker.js +36 -28
  6. package/dist/cjs/NiceIconPreview.js +3 -1
  7. package/dist/cjs/NiceIconSetCreator.js +7 -2
  8. package/dist/cjs/NtdIconBadge.js +18 -3
  9. package/dist/cjs/NtdIconMorph.js +3 -1
  10. package/dist/cjs/createIcon.js +10 -2
  11. package/dist/cjs/design-tokens.js +2 -0
  12. package/dist/cjs/iconMetadata.js +4 -0
  13. package/dist/cjs/iconParts.js +49 -0
  14. package/dist/cjs/icons/accessibility.js +12 -4
  15. package/dist/cjs/icons/actions.js +89 -25
  16. package/dist/cjs/icons/business.js +58 -28
  17. package/dist/cjs/icons/ecommerce.js +0 -20
  18. package/dist/cjs/icons/education.js +22 -9
  19. package/dist/cjs/icons/files.js +70 -56
  20. package/dist/cjs/icons/fun.js +39 -25
  21. package/dist/cjs/icons/gaming.js +29 -4
  22. package/dist/cjs/icons/health.js +11 -4
  23. package/dist/cjs/icons/index.js +63 -5
  24. package/dist/cjs/icons/input.js +120 -0
  25. package/dist/cjs/icons/legal.js +4 -9
  26. package/dist/cjs/icons/media.js +26 -11
  27. package/dist/cjs/icons/navigation.js +4 -2
  28. package/dist/cjs/icons/omniverk.js +19 -6
  29. package/dist/cjs/icons/realestate.js +10 -4
  30. package/dist/cjs/icons/saas.js +15 -4
  31. package/dist/cjs/icons/science.js +6 -3
  32. package/dist/cjs/icons/shapes.js +133 -31
  33. package/dist/cjs/icons/sports.js +6 -2
  34. package/dist/cjs/icons/ui.js +62 -20
  35. package/dist/cjs/icons/weather.js +18 -8
  36. package/dist/cjs/index.js +63 -5
  37. package/dist/cjs/nicetodev-icons.css +1 -1
  38. package/dist/cjs/resolver.js +55 -1
  39. package/dist/cjs/rsc.js +1 -1
  40. package/dist/cjs/utilities.js +4 -2
  41. package/dist/esm/NiceDesktopIconExporter.js +7 -3
  42. package/dist/esm/NiceFaviconGenerator.js +6 -2
  43. package/dist/esm/NiceIconPicker.js +37 -29
  44. package/dist/esm/NiceIconPreview.js +3 -1
  45. package/dist/esm/NiceIconSetCreator.js +7 -2
  46. package/dist/esm/NtdIconBadge.js +18 -3
  47. package/dist/esm/NtdIconMorph.js +3 -1
  48. package/dist/esm/createIcon.js +10 -2
  49. package/dist/esm/design-tokens.js +2 -0
  50. package/dist/esm/iconMetadata.js +4 -0
  51. package/dist/esm/iconParts.js +46 -0
  52. package/dist/esm/icons/accessibility.js +12 -4
  53. package/dist/esm/icons/actions.js +87 -26
  54. package/dist/esm/icons/business.js +58 -29
  55. package/dist/esm/icons/ecommerce.js +1 -19
  56. package/dist/esm/icons/education.js +22 -10
  57. package/dist/esm/icons/files.js +70 -56
  58. package/dist/esm/icons/fun.js +37 -25
  59. package/dist/esm/icons/gaming.js +29 -5
  60. package/dist/esm/icons/health.js +11 -4
  61. package/dist/esm/icons/index.js +10 -9
  62. package/dist/esm/icons/input.js +75 -0
  63. package/dist/esm/icons/legal.js +4 -9
  64. package/dist/esm/icons/media.js +26 -11
  65. package/dist/esm/icons/navigation.js +4 -2
  66. package/dist/esm/icons/omniverk.js +19 -6
  67. package/dist/esm/icons/realestate.js +10 -4
  68. package/dist/esm/icons/saas.js +15 -4
  69. package/dist/esm/icons/science.js +6 -3
  70. package/dist/esm/icons/shapes.js +128 -32
  71. package/dist/esm/icons/sports.js +6 -2
  72. package/dist/esm/icons/ui.js +62 -21
  73. package/dist/esm/icons/weather.js +18 -8
  74. package/dist/esm/index.js +10 -9
  75. package/dist/esm/nicetodev-icons.css +1 -1
  76. package/dist/esm/resolver.js +55 -1
  77. package/dist/esm/rsc.js +1 -1
  78. package/dist/esm/utilities.js +4 -2
  79. package/dist/types/design-tokens.d.ts +2 -0
  80. package/dist/types/iconParts.d.ts +19 -0
  81. package/dist/types/icons/actions.d.ts +3 -0
  82. package/dist/types/icons/business.d.ts +2 -0
  83. package/dist/types/icons/ecommerce.d.ts +0 -2
  84. package/dist/types/icons/education.d.ts +1 -0
  85. package/dist/types/icons/files.d.ts +2 -1
  86. package/dist/types/icons/fun.d.ts +6 -1
  87. package/dist/types/icons/gaming.d.ts +2 -0
  88. package/dist/types/icons/index.d.ts +10 -9
  89. package/dist/types/icons/input.d.ts +53 -0
  90. package/dist/types/icons/omniverk.d.ts +0 -2
  91. package/dist/types/icons/shapes.d.ts +6 -0
  92. package/dist/types/icons/ui.d.ts +1 -0
  93. package/dist/types/types.d.ts +6 -0
  94. package/package.json +3 -1
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var createIcon = require('../createIcon.js');
5
+ var iconParts = require('../iconParts.js');
5
6
 
6
7
  // ═══════════════════════════════════════════════════════════════════════════════
7
8
  // SaaS Icons
@@ -106,13 +107,23 @@ const NtdUptime = /* @__PURE__ */ createIcon.createIcon({
106
107
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M12 6v6h6", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("path", { d: "M8 16l2-4 2 2 2-3 2 5", stroke: "#3B82F6", strokeWidth: "1.5", fill: "none" })] })),
107
108
  },
108
109
  });
110
+ // NtdBilling: a bill paid by card — the page with its lines and, in front of it, a card. (A card
111
+ // alone is NtdCreditCard, a bill alone NtdInvoice / NtdReceipt.) The page is cut away around the
112
+ // card, a real gap rather than a painted one, so the two read apart on any background.
113
+ const BILL_PAPER = { x: 2.5, y: 2, width: 13, height: 18, rx: 1.5 };
114
+ const BILL_CARD = { x: 9.5, y: 12, width: 13, height: 9, rx: 1.6 };
115
+ // everything but the card grown by 1.5 — the page is drawn through this
116
+ const BILL_PAPER_CUT = 'M0 0H24V24H0Z M11.1 10.5H24V22.5H8V13.6A3.1 3.1 0 0111.1 10.5Z';
117
+ const BILL_LINES = 'M5.5 6h7M5.5 9h4.5';
118
+ const BILL_CARD_STRIPE = { x: 9.5, y: 14, width: 13, height: 1.8 };
119
+ const BILL_CARD_BAR = { x: 11.3, y: 17.6, width: 5.5, height: 1.4, rx: 0.5 };
109
120
  const NtdBilling = /* @__PURE__ */ createIcon.createIcon({
110
121
  displayName: 'NtdBilling',
111
122
  paths: {
112
- solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "8", width: "20", height: "4", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("circle", { cx: "6", cy: "16", r: "1.5", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("rect", { x: "10", y: "15", width: "8", height: "2", rx: "1", fill: accentColor, opacity: accentOpacity * 0.7 })] })),
113
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M2 8h20M2 12h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "6", cy: "16", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "10", y: "15", width: "8", height: "2", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth * 0.5, fill: "none" })] })),
114
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "2", y: "8", width: "20", height: "4", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "6", cy: "16", r: "1.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "10", y: "15", width: "8", height: "2", rx: "1", fill: primaryColor, opacity: "0.5" })] })),
115
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "2", y: "8", width: "20", height: "4", fill: secondaryColor }), jsxRuntime.jsx("circle", { cx: "6", cy: "16", r: "1.5", fill: "#3B82F6" }), jsxRuntime.jsx("rect", { x: "10", y: "15", width: "8", height: "2", rx: "1", fill: "#8B5CF6" })] })),
123
+ solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [iconParts.within(uid, 'paper', jsxRuntime.jsx("path", { d: BILL_PAPER_CUT, clipRule: "evenodd" }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BILL_PAPER, fill: primaryColor }), jsxRuntime.jsx("path", { d: BILL_LINES, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })), jsxRuntime.jsx("rect", { ...BILL_CARD, fill: primaryColor }), iconParts.within(uid, 'stripe', jsxRuntime.jsx("rect", { ...BILL_CARD }), jsxRuntime.jsx("rect", { ...BILL_CARD_STRIPE, fill: accentColor, opacity: accentOpacity })), jsxRuntime.jsx("rect", { ...BILL_CARD_BAR, fill: accentColor, opacity: accentOpacity })] })),
124
+ outline: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [iconParts.within(uid, 'paper', jsxRuntime.jsx("path", { d: BILL_PAPER_CUT, clipRule: "evenodd" }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BILL_PAPER, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BILL_LINES, stroke: primaryColor, strokeWidth: strokeWidth })] })), jsxRuntime.jsx("rect", { ...BILL_CARD, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 15h13", stroke: primaryColor, strokeWidth: strokeWidth })] })),
125
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth, accentColor, uid, }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [iconParts.within(uid, 'paper', jsxRuntime.jsx("path", { d: BILL_PAPER_CUT, clipRule: "evenodd" }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BILL_PAPER, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { ...BILL_PAPER, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BILL_LINES, stroke: primaryColor, strokeWidth: strokeWidth })] })), jsxRuntime.jsx("rect", { ...BILL_CARD, fill: primaryColor }), iconParts.within(uid, 'stripe', jsxRuntime.jsx("rect", { ...BILL_CARD }), jsxRuntime.jsx("rect", { ...BILL_CARD_STRIPE, fill: accentColor }))] })),
126
+ vivid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [iconParts.within(uid, 'paper', jsxRuntime.jsx("path", { d: BILL_PAPER_CUT, clipRule: "evenodd" }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BILL_PAPER, fill: primaryColor, opacity: "0.55" }), jsxRuntime.jsx("path", { d: BILL_LINES, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })), jsxRuntime.jsx("rect", { ...BILL_CARD, fill: primaryColor }), jsxRuntime.jsx("rect", { ...BILL_CARD, fill: "white", opacity: "0.1" }), iconParts.within(uid, 'stripe', jsxRuntime.jsx("rect", { ...BILL_CARD }), jsxRuntime.jsx("rect", { ...BILL_CARD_STRIPE, fill: accentColor, opacity: accentOpacity })), jsxRuntime.jsx("rect", { ...BILL_CARD_BAR, fill: accentColor, opacity: accentOpacity })] })),
116
127
  },
117
128
  });
118
129
  const NtdTeamwork = /* @__PURE__ */ createIcon.createIcon({
@@ -63,13 +63,16 @@ const NtdDna = /* @__PURE__ */ createIcon.createIcon({
63
63
  /* ────────────────────────────────────────────────────────────────────────────
64
64
  CHEMISTRY
65
65
  ───────────────────────────────────────────────────────────────────────────── */
66
+ // The filled atom draws its orbits at 0.75 of the stroke width around a smaller nucleus: at 2 the
67
+ // three orbits and the nucleus ran together into one heavy blob in the middle. The nucleus is in
68
+ // the accent colour in every variant that fills it.
66
69
  const NtdAtom = /* @__PURE__ */ createIcon.createIcon({
67
70
  displayName: 'NtdAtom',
68
71
  paths: {
69
- solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: "2", fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: "2", fill: "none", transform: "rotate(-60 12 12)" })] })),
72
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2.4", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none", children: [jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", transform: "rotate(-60 12 12)" })] })] })),
70
73
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(-60 12 12)" })] })),
71
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity, transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity, transform: "rotate(-60 12 12)" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(-60 12 12)" })] })),
72
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: "#8B5CF6", strokeWidth: "1.5", fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: "#8B5CF6", strokeWidth: "1.5", fill: "none", transform: "rotate(-60 12 12)" })] })),
74
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, accentColor, accentOpacity, strokeWidth, }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity, transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none", opacity: secondaryOpacity, transform: "rotate(-60 12 12)" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2.4", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", transform: "rotate(-60 12 12)" })] })),
75
+ vivid: ({ secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2.6", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: "#8B5CF6", strokeWidth: "1.5", fill: "none", transform: "rotate(60 12 12)" }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "12", rx: "10", ry: "4", stroke: "#8B5CF6", strokeWidth: "1.5", fill: "none", transform: "rotate(-60 12 12)" })] })),
73
76
  },
74
77
  });
75
78
  const NtdMolecule = /* @__PURE__ */ createIcon.createIcon({
@@ -44,7 +44,8 @@ const NtdSquare = /* @__PURE__ */ createIcon.createIcon({
44
44
  paths: {
45
45
  solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: primaryColor })),
46
46
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
47
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
47
+ // two halves side by side, a colour each — no outline
48
+ duotone: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M5 3h7v18H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M12 3h7a2 2 0 012 2v14a2 2 0 01-2 2h-7z", fill: secondaryColor })] })),
48
49
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: "white", opacity: "0.1" })] })),
49
50
  },
50
51
  });
@@ -57,22 +58,33 @@ const NtdCircle = /* @__PURE__ */ createIcon.createIcon({
57
58
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.1" })] })),
58
59
  },
59
60
  });
61
+ // The polygons have sharp corners in every variant but `rounded`. The outline strokes join with
62
+ // miters (the default round joins rounded them), and the rounded corners are drawn as arcs,
63
+ // because the derived `rounded` cannot reshape a filled polygon.
64
+ // The outline triangle is the solid one moved in by 1: its mitred stroke then ends on the solid
65
+ // edge, instead of the 53° point poking out of the box.
66
+ const TRIANGLE_LINE = 'M12 4.24L20.38 21H3.62Z';
67
+ const TRIANGLE_ROUND = 'M9.76 6.47A2.5 2.5 0 0 1 14.24 6.47L20.19 18.38A2.5 2.5 0 0 1 17.95 22L6.05 22A2.5 2.5 0 0 1 3.81 18.38Z';
60
68
  const NtdTriangle = /* @__PURE__ */ createIcon.createIcon({
61
69
  displayName: 'NtdTriangle',
62
70
  paths: {
63
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: primaryColor })),
64
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
65
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
66
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: primaryColor }), jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: "white", opacity: "0.1" })] })),
71
+ solid: ({ primaryColor }) => jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: primaryColor }),
72
+ rounded: ({ primaryColor }) => jsxRuntime.jsx("path", { d: TRIANGLE_ROUND, fill: primaryColor }),
73
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: TRIANGLE_LINE, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })),
74
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: TRIANGLE_LINE, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })] })),
75
+ vivid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: primaryColor }), jsxRuntime.jsx("polygon", { points: "12,2 22,22 2,22", fill: "white", opacity: "0.1" })] })),
67
76
  },
68
77
  });
78
+ const HEXAGON = 'M12 2L21 7V17L12 22L3 17V7Z';
79
+ const HEXAGON_ROUND = 'M11.03 2.54A2 2 0 0 1 12.97 2.54L19.97 6.43A2 2 0 0 1 21 8.18L21 15.82A2 2 0 0 1 19.97 17.57L12.97 21.46A2 2 0 0 1 11.03 21.46L4.03 17.57A2 2 0 0 1 3 15.82L3 8.18A2 2 0 0 1 4.03 6.43Z';
69
80
  const NtdHexagon = /* @__PURE__ */ createIcon.createIcon({
70
81
  displayName: 'NtdHexagon',
71
82
  paths: {
72
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", fill: primaryColor })),
73
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
74
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
75
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M12 2L21 7V17L12 22L3 17V7Z", fill: "white", opacity: "0.1" })] })),
83
+ solid: ({ primaryColor }) => jsxRuntime.jsx("path", { d: HEXAGON, fill: primaryColor }),
84
+ rounded: ({ primaryColor }) => jsxRuntime.jsx("path", { d: HEXAGON_ROUND, fill: primaryColor }),
85
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: HEXAGON, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })),
86
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: HEXAGON, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: HEXAGON, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })] })),
87
+ vivid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: HEXAGON, fill: primaryColor }), jsxRuntime.jsx("path", { d: HEXAGON, fill: "white", opacity: "0.1" })] })),
76
88
  },
77
89
  });
78
90
  const NtdOctagon = /* @__PURE__ */ createIcon.createIcon({
@@ -106,9 +118,12 @@ const NtdCross = /* @__PURE__ */ createIcon.createIcon({
106
118
  displayName: 'NtdCross',
107
119
  paths: {
108
120
  solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", fill: primaryColor })),
109
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
110
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
121
+ // miter joins: the default round ones rounded all twelve corners of the outline
122
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })),
123
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" })] })),
111
124
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z", fill: "white", opacity: "0.1" })] })),
125
+ // rounded arm ends and filleted inner corners — the derived `rounded` cannot reshape a path
126
+ rounded: ({ primaryColor }) => (jsxRuntime.jsx("path", { d: "M10.5 2h3a1.5 1.5 0 011.5 1.5V8a1 1 0 001 1h4.5a1.5 1.5 0 011.5 1.5v3a1.5 1.5 0 01-1.5 1.5H16a1 1 0 00-1 1v4.5a1.5 1.5 0 01-1.5 1.5h-3A1.5 1.5 0 019 20.5V16a1 1 0 00-1-1H3.5A1.5 1.5 0 012 13.5v-3A1.5 1.5 0 013.5 9H8a1 1 0 001-1V3.5A1.5 1.5 0 0110.5 2z", fill: primaryColor })),
112
127
  },
113
128
  });
114
129
  const NtdStar4 = /* @__PURE__ */ createIcon.createIcon({
@@ -120,40 +135,44 @@ const NtdStar4 = /* @__PURE__ */ createIcon.createIcon({
120
135
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: "white", opacity: "0.1" })] })),
121
136
  },
122
137
  });
138
+ // The four corner arrows: the tail's level run sits at the height of the arrowhead's tip, so the
139
+ // two meet (it ran 2 units off the tip and the head looked stuck on beside the tail). It stops 2
140
+ // short of the tip: with the square caps of `sharp` it stuck out of the point. The filled variants
141
+ // draw at twice the stroke width, like NtdCheck.
123
142
  const NtdCornerUpLeft = /* @__PURE__ */ createIcon.createIcon({
124
143
  displayName: 'NtdCornerUpLeft',
125
144
  paths: {
126
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-5a4 4 0 00-4-4H4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
127
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-5a4 4 0 00-4-4H4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
128
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20 20v-5a4 4 0 00-4-4H4", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
129
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-5a4 4 0 00-4-4H4", stroke: secondaryColor, strokeWidth: "2", fill: "none" })] })),
145
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-7a4 4 0 00-4-4H6", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
146
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-7a4 4 0 00-4-4H6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
147
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20 20v-7a4 4 0 00-4-4H6", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
148
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,14 4,9 9,4", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 20v-7a4 4 0 00-4-4H6", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
130
149
  },
131
150
  });
132
151
  const NtdCornerUpRight = /* @__PURE__ */ createIcon.createIcon({
133
152
  displayName: 'NtdCornerUpRight',
134
153
  paths: {
135
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-5a4 4 0 014-4h12", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
136
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-5a4 4 0 014-4h12", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
137
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 20v-5a4 4 0 014-4h12", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
138
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-5a4 4 0 014-4h12", stroke: secondaryColor, strokeWidth: "2", fill: "none" })] })),
154
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-7a4 4 0 014-4h10", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
155
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-7a4 4 0 014-4h10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
156
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 20v-7a4 4 0 014-4h10", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
157
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,14 20,9 15,4", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20v-7a4 4 0 014-4h10", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
139
158
  },
140
159
  });
141
160
  const NtdCornerDownLeft = /* @__PURE__ */ createIcon.createIcon({
142
161
  displayName: 'NtdCornerDownLeft',
143
162
  paths: {
144
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v5a4 4 0 01-4 4H4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
145
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v5a4 4 0 01-4 4H4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
146
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20 4v5a4 4 0 01-4 4H4", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
147
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v5a4 4 0 01-4 4H4", stroke: secondaryColor, strokeWidth: "2", fill: "none" })] })),
163
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v7a4 4 0 01-4 4H6", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
164
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v7a4 4 0 01-4 4H6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
165
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20 4v7a4 4 0 01-4 4H6", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
166
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "9,10 4,15 9,20", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M20 4v7a4 4 0 01-4 4H6", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
148
167
  },
149
168
  });
150
169
  const NtdCornerDownRight = /* @__PURE__ */ createIcon.createIcon({
151
170
  displayName: 'NtdCornerDownRight',
152
171
  paths: {
153
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v5a4 4 0 004 4h12", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
154
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v5a4 4 0 004 4h12", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
155
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 4v5a4 4 0 004 4h12", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
156
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v5a4 4 0 004 4h12", stroke: secondaryColor, strokeWidth: "2", fill: "none" })] })),
172
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v7a4 4 0 004 4h10", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
173
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v7a4 4 0 004 4h10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
174
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 4v7a4 4 0 004 4h10", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
175
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "15,10 20,15 15,20", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M4 4v7a4 4 0 004 4h10", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
157
176
  },
158
177
  });
159
178
  const NtdMaximize = /* @__PURE__ */ createIcon.createIcon({
@@ -174,13 +193,29 @@ const NtdMinimize = /* @__PURE__ */ createIcon.createIcon({
174
193
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "4,14 10,14 10,20", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("polyline", { points: "20,10 14,10 14,4", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("line", { x1: "14", y1: "10", x2: "21", y2: "3", stroke: "#3B82F6", strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "3", y1: "21", x2: "10", y2: "14", stroke: secondaryColor, strokeWidth: "1.5" })] })),
175
194
  },
176
195
  });
196
+ // NtdMove: the line variants stop the cross 2 short of each arrowhead's point — with the square
197
+ // caps of `sharp` it stuck out of all four. The filled variants are one shape: arms twice the
198
+ // stroke width thick (like NtdCheck) ending in solid triangular heads; stroked at that width the
199
+ // small heads ran together into a blob.
200
+ const MOVE_HEADS = 'M6 9l-3 3 3 3M9 6l3-3 3 3M15 18l-3 3-3-3M18 9l3 3-3 3';
201
+ const MOVE_CROSS = 'M5 12h14M12 5v14';
202
+ /** The filled four-way arrow; `h` is half the arm thickness. */
203
+ function moveShape(h) {
204
+ const a = 12 - h;
205
+ const b = 12 + h;
206
+ const w = h + 1.5; // half the base of a head
207
+ const l = 12 - w;
208
+ const r = 12 + w;
209
+ return (`M12 2L${r} 6.5H${b}V${a}H17.5V${l}L22 12L17.5 ${r}V${b}H${b}V17.5H${r}L12 22L${l} 17.5H${a}` +
210
+ `V${b}H6.5V${r}L2 12L6.5 ${l}V${a}H${a}V6.5H${l}Z`);
211
+ }
177
212
  const NtdMove = /* @__PURE__ */ createIcon.createIcon({
178
213
  displayName: 'NtdMove',
179
214
  paths: {
180
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "5,9 2,12 5,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "9,5 12,2 15,5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "15,19 12,22 9,19", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "19,9 22,12 19,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "12", y1: "2", x2: "12", y2: "22", stroke: primaryColor, strokeWidth: strokeWidth })] })),
181
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "5,9 2,12 5,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "9,5 12,2 15,5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "15,19 12,22 9,19", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "19,9 22,12 19,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "12", y1: "2", x2: "12", y2: "22", stroke: primaryColor, strokeWidth: strokeWidth })] })),
182
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("line", { x1: "12", y1: "2", x2: "12", y2: "22", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("polyline", { points: "5,9 2,12 5,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "9,5 12,2 15,5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "15,19 12,22 9,19", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("polyline", { points: "19,9 22,12 19,15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
183
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "5,9 2,12 5,15", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("polyline", { points: "9,5 12,2 15,5", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("polyline", { points: "15,19 12,22 9,19", stroke: "#3B82F6", strokeWidth: "1.5", fill: "none" }), jsxRuntime.jsx("polyline", { points: "19,9 22,12 19,15", stroke: secondaryColor, strokeWidth: "1.5", fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12", stroke: secondaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "12", y1: "2", x2: "12", y2: "22", stroke: secondaryColor, strokeWidth: "1.5" })] })),
215
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: moveShape(strokeWidth), fill: primaryColor })),
216
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${MOVE_HEADS}${MOVE_CROSS}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
217
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: MOVE_CROSS, stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.2, fill: "none" }), jsxRuntime.jsx("path", { d: MOVE_HEADS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
218
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: moveShape(strokeWidth), fill: primaryColor }), jsxRuntime.jsx("path", { d: moveShape(strokeWidth), fill: "white", opacity: "0.1" })] })),
184
219
  },
185
220
  });
186
221
  const NtdRepeat = /* @__PURE__ */ createIcon.createIcon({
@@ -201,7 +236,69 @@ const NtdShuffle = /* @__PURE__ */ createIcon.createIcon({
201
236
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "16,3 21,3 21,8", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("line", { x1: "4", y1: "20", x2: "21", y2: "3", stroke: secondaryColor, strokeWidth: "1.8" }), jsxRuntime.jsx("polyline", { points: "21,16 21,21 16,21", stroke: "#3B82F6", strokeWidth: "1.5", fill: "none" }), jsxRuntime.jsx("line", { x1: "15", y1: "15", x2: "21", y2: "21", stroke: secondaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "4", y1: "4", x2: "9", y2: "9", stroke: secondaryColor, strokeWidth: "1.5" })] })),
202
237
  },
203
238
  });
239
+ // Geometry construction tools (1.2.2: NiceGeometry drew these as the glyphs • — ⊥ ∥ ⊙ ∠).
240
+ // Same names as the NiceIcon built-ins in ui-core, mapped in resolver.ts.
241
+ const NtdPoint = /* @__PURE__ */ createIcon.createIcon({
242
+ displayName: 'NtdPoint',
243
+ paths: {
244
+ solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: primaryColor })),
245
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1.5", fill: primaryColor })] })),
246
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "4", fill: primaryColor })] })),
247
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: "white", opacity: "0.1" })] })),
248
+ },
249
+ });
250
+ // A segment: a line between two marked endpoints (unlike NtdLine-style rays, it ends).
251
+ const NtdSegment = /* @__PURE__ */ createIcon.createIcon({
252
+ displayName: 'NtdSegment',
253
+ paths: {
254
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "5", y1: "19", x2: "19", y2: "5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "19", cy: "5", r: "2.5", fill: primaryColor })] })),
255
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "6.8", y1: "17.2", x2: "17.2", y2: "6.8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "19", cy: "5", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
256
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "5", y1: "19", x2: "19", y2: "5", stroke: secondaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "19", cy: "5", r: "2.5", fill: primaryColor })] })),
257
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "5", y1: "19", x2: "19", y2: "5", stroke: primaryColor, strokeWidth: "2.2" }), jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "19", cy: "5", r: "2.5", fill: primaryColor })] })),
258
+ },
259
+ });
260
+ // Perpendicular (⊥): a base line, the perpendicular from its middle and the right-angle mark.
261
+ const NtdPerpendicular = /* @__PURE__ */ createIcon.createIcon({
262
+ displayName: 'NtdPerpendicular',
263
+ paths: {
264
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 20h18M12 20V4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("rect", { x: "12", y: "15", width: "5", height: "5", fill: primaryColor })] })),
265
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M3 20h18M12 20V4M12 15h5v5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
266
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "12", y: "15", width: "5", height: "5", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M3 20h18M12 20V4M12 15h5v5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })] })),
267
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 20h18M12 20V4", stroke: primaryColor, strokeWidth: "2.2", fill: "none" }), jsxRuntime.jsx("rect", { x: "12", y: "15", width: "5", height: "5", fill: primaryColor })] })),
268
+ },
269
+ });
270
+ // Parallel (∥): two lines at the same slope.
271
+ const NtdParallel = /* @__PURE__ */ createIcon.createIcon({
272
+ displayName: 'NtdParallel',
273
+ paths: {
274
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M4 16L14 6M10 20L20 10", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })),
275
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M4 16L14 6M10 20L20 10", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })),
276
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 16L14 6", stroke: secondaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("path", { d: "M10 20L20 10", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
277
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx("path", { d: "M4 16L14 6M10 20L20 10", stroke: primaryColor, strokeWidth: "2.2", strokeLinecap: "round", fill: "none" })),
278
+ },
279
+ });
280
+ // Midpoint (⊙): a segment with end ticks and its middle marked.
281
+ const NtdMidpoint = /* @__PURE__ */ createIcon.createIcon({
282
+ displayName: 'NtdMidpoint',
283
+ paths: {
284
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 12h6M15 12h6M3 9v6M21 9v6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] })),
285
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 12h6M15 12h6M3 9v6M21 9v6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
286
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 12h6M15 12h6M3 9v6M21 9v6", stroke: secondaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] })),
287
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 12h6M15 12h6M3 9v6M21 9v6", stroke: primaryColor, strokeWidth: "2.2", strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] })),
288
+ },
289
+ });
290
+ // Angle bisector (∠): two rays from a vertex, the ray halfway between them and the angle arc.
291
+ const NtdAngleBisector = /* @__PURE__ */ createIcon.createIcon({
292
+ displayName: 'NtdAngleBisector',
293
+ paths: {
294
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 20h17M4 20L16 5M4 20l14.4-6.9M10 20a6 6 0 0 0-2.25-4.68", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "4", cy: "20", r: "2", fill: primaryColor })] })),
295
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M4 20h17M4 20L16 5M4 20l14.4-6.9M10 20a6 6 0 0 0-2.25-4.68", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
296
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 20h17M4 20L16 5M10 20a6 6 0 0 0-2.25-4.68", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("path", { d: "M4 20l14.4-6.9", stroke: secondaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
297
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 20h17M4 20L16 5M4 20l14.4-6.9M10 20a6 6 0 0 0-2.25-4.68", stroke: primaryColor, strokeWidth: "2.2", strokeLinecap: "round", fill: "none" }), jsxRuntime.jsx("circle", { cx: "4", cy: "20", r: "2", fill: primaryColor })] })),
298
+ },
299
+ });
204
300
 
301
+ exports.NtdAngleBisector = NtdAngleBisector;
205
302
  exports.NtdArrowDownCircle = NtdArrowDownCircle;
206
303
  exports.NtdArrowLeftCircle = NtdArrowLeftCircle;
207
304
  exports.NtdArrowRightCircle = NtdArrowRightCircle;
@@ -215,11 +312,16 @@ exports.NtdCross = NtdCross;
215
312
  exports.NtdDiamond = NtdDiamond;
216
313
  exports.NtdHexagon = NtdHexagon;
217
314
  exports.NtdMaximize = NtdMaximize;
315
+ exports.NtdMidpoint = NtdMidpoint;
218
316
  exports.NtdMinimize = NtdMinimize;
219
317
  exports.NtdMove = NtdMove;
220
318
  exports.NtdOctagon = NtdOctagon;
319
+ exports.NtdParallel = NtdParallel;
221
320
  exports.NtdPentagon = NtdPentagon;
321
+ exports.NtdPerpendicular = NtdPerpendicular;
322
+ exports.NtdPoint = NtdPoint;
222
323
  exports.NtdRepeat = NtdRepeat;
324
+ exports.NtdSegment = NtdSegment;
223
325
  exports.NtdShuffle = NtdShuffle;
224
326
  exports.NtdSquare = NtdSquare;
225
327
  exports.NtdStar4 = NtdStar4;
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var createIcon = require('../createIcon.js');
5
+ var iconParts = require('../iconParts.js');
5
6
 
6
7
  /* ────────────────────────────────────────────────────────────────────────────
7
8
  BALL SPORTS
@@ -15,13 +16,16 @@ const NtdSoccerBall = /* @__PURE__ */ createIcon.createIcon({
15
16
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("path", { d: "M12 2a10 10 0 100 20 10 10 0 000-20zM12 7l3.09 2.25-.59 3.69-2.5 1.81-2.5-1.81-.59-3.69L12 7z", fill: "white", opacity: "0.5" }), jsxRuntime.jsx("path", { d: "M12 7V2M8.41 9.25L4 7M8.41 14.75l-3.5 3M12 16.75V22M15.59 14.75l3.5 3M15.59 9.25L20 7", stroke: "white", strokeWidth: "1", opacity: "0.4" })] })),
16
17
  },
17
18
  });
19
+ // The seams are cuts through the ball: accent coloured (so a cutout keeps them) and kept inside
20
+ // the ball, so they end flush on its edge (their round caps stuck out of it).
21
+ const BALL_SEAMS = 'M12 2v20M2 12h20M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8';
18
22
  const NtdBasketball = /* @__PURE__ */ createIcon.createIcon({
19
23
  displayName: 'NtdBasketball',
20
24
  paths: {
21
- solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: "white", strokeWidth: "1.5", opacity: "0.5" }), jsxRuntime.jsx("path", { d: "M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8", stroke: "white", strokeWidth: "1.5", opacity: "0.5" })] })),
25
+ solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), iconParts.within(uid, 'seams', jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }), jsxRuntime.jsx("path", { d: BALL_SEAMS, stroke: accentColor, strokeWidth: "1.5", fill: "none", opacity: accentOpacity }))] })),
22
26
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: "M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
23
27
  duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: "M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
24
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M12 2v20M2 12h20", stroke: "white", strokeWidth: "1.8", opacity: "0.5" }), jsxRuntime.jsx("path", { d: "M6 4c0 4.4 2.7 8 6 8s6-3.6 6-8M6 20c0-4.4 2.7-8 6-8s6 3.6 6 8", stroke: "white", strokeWidth: "1.5", opacity: "0.5" })] })),
28
+ vivid: ({ primaryColor, secondaryColor, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.1" }), iconParts.within(uid, 'seams', jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }), jsxRuntime.jsx("path", { d: BALL_SEAMS, stroke: secondaryColor, strokeWidth: "1.6", fill: "none" }))] })),
25
29
  },
26
30
  });
27
31
  const NtdTennis = /* @__PURE__ */ createIcon.createIcon({