@nice2dev/icons 1.2.2 → 1.3.1

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 (74) hide show
  1. package/CHANGELOG.md +503 -0
  2. package/README.md +146 -134
  3. package/dist/cjs/NiceIconPicker.js +17 -19
  4. package/dist/cjs/createIcon.js +10 -2
  5. package/dist/cjs/iconParts.js +49 -0
  6. package/dist/cjs/icons/accessibility.js +12 -4
  7. package/dist/cjs/icons/actions.js +67 -25
  8. package/dist/cjs/icons/business.js +58 -28
  9. package/dist/cjs/icons/ecommerce.js +0 -20
  10. package/dist/cjs/icons/education.js +22 -9
  11. package/dist/cjs/icons/files.js +70 -56
  12. package/dist/cjs/icons/fun.js +39 -25
  13. package/dist/cjs/icons/gaming.js +29 -4
  14. package/dist/cjs/icons/health.js +11 -4
  15. package/dist/cjs/icons/index.js +55 -5
  16. package/dist/cjs/icons/input.js +120 -0
  17. package/dist/cjs/icons/legal.js +4 -9
  18. package/dist/cjs/icons/media.js +26 -11
  19. package/dist/cjs/icons/navigation.js +4 -2
  20. package/dist/cjs/icons/omniverk.js +19 -6
  21. package/dist/cjs/icons/realestate.js +10 -4
  22. package/dist/cjs/icons/saas.js +15 -4
  23. package/dist/cjs/icons/science.js +6 -3
  24. package/dist/cjs/icons/shapes.js +66 -31
  25. package/dist/cjs/icons/sports.js +6 -2
  26. package/dist/cjs/icons/ui.js +62 -20
  27. package/dist/cjs/icons/weather.js +18 -8
  28. package/dist/cjs/index.js +55 -5
  29. package/dist/cjs/nicetodev-icons.css +1 -1
  30. package/dist/cjs/resolver.js +46 -1
  31. package/dist/cjs/rsc.js +1 -1
  32. package/dist/esm/NiceIconPicker.js +19 -21
  33. package/dist/esm/createIcon.js +10 -2
  34. package/dist/esm/iconParts.js +46 -0
  35. package/dist/esm/icons/accessibility.js +12 -4
  36. package/dist/esm/icons/actions.js +67 -26
  37. package/dist/esm/icons/business.js +58 -29
  38. package/dist/esm/icons/ecommerce.js +1 -19
  39. package/dist/esm/icons/education.js +22 -10
  40. package/dist/esm/icons/files.js +70 -56
  41. package/dist/esm/icons/fun.js +37 -25
  42. package/dist/esm/icons/gaming.js +29 -5
  43. package/dist/esm/icons/health.js +11 -4
  44. package/dist/esm/icons/index.js +9 -8
  45. package/dist/esm/icons/input.js +75 -0
  46. package/dist/esm/icons/legal.js +4 -9
  47. package/dist/esm/icons/media.js +26 -11
  48. package/dist/esm/icons/navigation.js +4 -2
  49. package/dist/esm/icons/omniverk.js +19 -6
  50. package/dist/esm/icons/realestate.js +10 -4
  51. package/dist/esm/icons/saas.js +15 -4
  52. package/dist/esm/icons/science.js +6 -3
  53. package/dist/esm/icons/shapes.js +66 -31
  54. package/dist/esm/icons/sports.js +6 -2
  55. package/dist/esm/icons/ui.js +62 -21
  56. package/dist/esm/icons/weather.js +18 -8
  57. package/dist/esm/index.js +9 -8
  58. package/dist/esm/nicetodev-icons.css +1 -1
  59. package/dist/esm/resolver.js +46 -1
  60. package/dist/esm/rsc.js +1 -1
  61. package/dist/types/iconParts.d.ts +19 -0
  62. package/dist/types/icons/actions.d.ts +1 -0
  63. package/dist/types/icons/business.d.ts +2 -0
  64. package/dist/types/icons/ecommerce.d.ts +0 -2
  65. package/dist/types/icons/education.d.ts +1 -0
  66. package/dist/types/icons/files.d.ts +2 -1
  67. package/dist/types/icons/fun.d.ts +6 -1
  68. package/dist/types/icons/gaming.d.ts +2 -0
  69. package/dist/types/icons/index.d.ts +9 -8
  70. package/dist/types/icons/input.d.ts +53 -0
  71. package/dist/types/icons/omniverk.d.ts +0 -2
  72. package/dist/types/icons/ui.d.ts +1 -0
  73. package/dist/types/types.d.ts +6 -0
  74. package/package.json +3 -3
@@ -19,8 +19,9 @@ const NtdRocket = /* @__PURE__ */ createIcon({
19
19
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2C12 2 8 6 8 12c0 2 .5 4 1 5h6c.5-1 1-3 1-5 0-6-4-10-4-10z", fill: primaryColor }), jsx("path", { d: "M12 2C12 2 8 6 8 12c0 2 .5 4 1 5h6c.5-1 1-3 1-5 0-6-4-10-4-10z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "12", cy: "10", r: "2", fill: secondaryColor }), jsx("path", { d: "M8 12L5 15l1 3 2-2", fill: "#F59E0B" }), jsx("path", { d: "M16 12l3 3-1 3-2-2", fill: "#EF4444" }), jsx("path", { d: "M9 17h6l-1 5h-4l-1-5z", fill: "#8B5CF6" })] })),
20
20
  },
21
21
  });
22
- const NtdGamepad = /* @__PURE__ */ createIcon({
23
- displayName: 'NtdGamepad',
22
+ /** The flat pad of the 16-bit era. The modern one is NtdGamepad (gaming.tsx). */
23
+ const NtdGamepadOldschool = /* @__PURE__ */ createIcon({
24
+ displayName: 'NtdGamepadOldschool',
24
25
  paths: {
25
26
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 11h4M8 9v4", stroke: accentColor, strokeWidth: strokeWidth, opacity: accentOpacity }), jsx("path", { d: "M2 12a4 4 0 014-4h12a4 4 0 014 4v2a4 4 0 01-4 4H6a4 4 0 01-4-4v-2z", fill: primaryColor }), jsx("path", { d: "M6 11h4M8 9v4", stroke: accentColor, strokeWidth: strokeWidth, opacity: accentOpacity }), jsx("circle", { cx: "15", cy: "10", r: "1", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "18", cy: "13", r: "1", fill: accentColor, opacity: accentOpacity })] })),
26
27
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M2 12a4 4 0 014-4h12a4 4 0 014 4v2a4 4 0 01-4 4H6a4 4 0 01-4-4v-2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M6 11h4M8 9v4", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("circle", { cx: "15", cy: "10", r: "1", fill: primaryColor }), jsx("circle", { cx: "18", cy: "13", r: "1", fill: primaryColor })] })),
@@ -73,24 +74,29 @@ const NtdDice = /* @__PURE__ */ createIcon({
73
74
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "3", fill: primaryColor }), jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "3", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "8", cy: "8", r: "1.5", fill: secondaryColor }), jsx("circle", { cx: "16", cy: "8", r: "1.5", fill: "#F59E0B" }), jsx("circle", { cx: "12", cy: "12", r: "1.5", fill: "#EF4444" }), jsx("circle", { cx: "8", cy: "16", r: "1.5", fill: "#8B5CF6" }), jsx("circle", { cx: "16", cy: "16", r: "1.5", fill: "#8B5CF6" })] })),
74
75
  },
75
76
  });
76
- const NtdSmiley = /* @__PURE__ */ createIcon({
77
- displayName: 'NtdSmiley',
78
- paths: {
79
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("circle", { cx: "9", cy: "10", r: "1.2", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: accentColor, opacity: accentOpacity }), jsx("path", { d: "M8 14s1.5 3 4 3 4-3 4-3", stroke: accentColor, strokeWidth: "1.5", fill: "none", opacity: accentOpacity })] })),
80
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "9", cy: "10", r: "1.2", fill: primaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: primaryColor }), jsx("path", { d: "M8 14s1.5 3 4 3 4-3 4-3", stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
81
- 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("circle", { cx: "9", cy: "10", r: "1.2", fill: primaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: primaryColor }), jsx("path", { d: "M8 14s1.5 3 4 3 4-3 4-3", stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
82
- 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: "9", cy: "10", r: "1.2", fill: secondaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: "#F59E0B" }), jsx("path", { d: "M8 14s1.5 3 4 3 4-3 4-3", stroke: "white", strokeWidth: "1", fill: "none", opacity: "0.35" })] })),
83
- },
84
- });
85
- const NtdSad = /* @__PURE__ */ createIcon({
86
- displayName: 'NtdSad',
87
- paths: {
88
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("circle", { cx: "9", cy: "10", r: "1.2", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: accentColor, opacity: accentOpacity }), jsx("path", { d: "M16 17s-1.5-3-4-3-4 3-4 3", stroke: accentColor, strokeWidth: "1.5", fill: "none", opacity: accentOpacity })] })),
89
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "9", cy: "10", r: "1.2", fill: primaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: primaryColor }), jsx("path", { d: "M16 17s-1.5-3-4-3-4 3-4 3", stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
90
- 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("circle", { cx: "9", cy: "10", r: "1.2", fill: primaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: primaryColor }), jsx("path", { d: "M16 17s-1.5-3-4-3-4 3-4 3", stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
91
- 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: "9", cy: "10", r: "1.2", fill: secondaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.2", fill: "#F59E0B" }), jsx("path", { d: "M16 17s-1.5-3-4-3-4 3-4 3", stroke: "white", strokeWidth: "1", fill: "none", opacity: "0.35" })] })),
92
- },
93
- });
77
+ /** The two oval eyes every face shares, 6.8 apart. */
78
+ const FACE_EYES = 'M8.6 7.55a1.35 1.75 0 100 3.5 1.35 1.75 0 100-3.5zM15.4 7.55a1.35 1.75 0 100 3.5 1.35 1.75 0 100-3.5z';
79
+ /**
80
+ * An emotion face (NtdSmile, NtdSad, …): the r10 head and the eyes are the same in every one, an
81
+ * emotion is only its `mouth`, so a new one is one more call. The mouth is a stroke with round ends
82
+ * and follows the variant's weight.
83
+ */
84
+ function faceIcon(displayName, mouth) {
85
+ return createIcon({
86
+ displayName,
87
+ paths: {
88
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("path", { d: FACE_EYES, fill: accentColor, opacity: accentOpacity }), jsx("path", { d: mouth, stroke: accentColor, strokeOpacity: accentOpacity, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
89
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: FACE_EYES, fill: primaryColor }), jsx("path", { d: mouth, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
90
+ // Fills only: the tinted head, the face on it in primary — no ring around the head.
91
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: FACE_EYES, fill: primaryColor }), jsx("path", { d: mouth, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
92
+ vivid: ({ primaryColor, accentColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("path", { d: "M5.4 7.6a8 8 0 016.6-3.6", stroke: "white", strokeWidth: "1.6", strokeLinecap: "round", opacity: "0.35", fill: "none" }), jsx("path", { d: FACE_EYES, fill: accentColor }), jsx("path", { d: mouth, stroke: accentColor, strokeWidth: "2.2", strokeLinecap: "round", fill: "none" })] })),
93
+ },
94
+ });
95
+ }
96
+ const NtdSmile = /* @__PURE__ */ faceIcon('NtdSmile', 'M7 14c1.2 2.5 3 3.8 5 3.8s3.8-1.3 5-3.8');
97
+ /** @deprecated Renamed to {@link NtdSmile} in 1.3.0 — the same icon. */
98
+ const NtdSmiley = NtdSmile;
99
+ const NtdSad = /* @__PURE__ */ faceIcon('NtdSad', 'M7.8 17.3c1-1.75 2.4-2.65 4.2-2.65s3.2.9 4.2 2.65');
94
100
  const NtdSkull = /* @__PURE__ */ createIcon({
95
101
  displayName: 'NtdSkull',
96
102
  paths: {
@@ -109,14 +115,20 @@ const NtdGhost = /* @__PURE__ */ createIcon({
109
115
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2a8 8 0 00-8 8v12l3-3 3 3 2-2 2 2 3-3 3 3V10a8 8 0 00-8-8z", fill: primaryColor }), jsx("path", { d: "M12 2a8 8 0 00-8 8v12l3-3 3 3 2-2 2 2 3-3 3 3V10a8 8 0 00-8-8z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "9", cy: "10", r: "1.5", fill: secondaryColor }), jsx("circle", { cx: "15", cy: "10", r: "1.5", fill: "#F59E0B" })] })),
110
116
  },
111
117
  });
118
+ // NtdLightning: the step in the middle of the bolt slants, its two inner corners on a diagonal —
119
+ // they sat one above the other, so the duotone's two triangles met along a vertical line.
120
+ const LIGHTNING = '14,2 3,13.5 10.4,13.5 10,22 21,10.5 13.6,10.5';
112
121
  const NtdLightning = /* @__PURE__ */ createIcon({
113
122
  displayName: 'NtdLightning',
114
123
  paths: {
115
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", fill: primaryColor })),
116
- outline: ({ primaryColor, strokeWidth }) => (jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
117
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", fill: secondaryColor, opacity: secondaryOpacity }), jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
118
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", fill: primaryColor }), jsx("polygon", { points: "13,2 3,14 12,14 11,22 21,10 12,10", fill: "white", opacity: "0.1" })] })),
124
+ solid: ({ primaryColor }) => jsx("polygon", { points: LIGHTNING, fill: primaryColor }),
125
+ outline: ({ primaryColor, strokeWidth }) => (jsx("polygon", { points: LIGHTNING, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
126
+ // the bolt's two triangles, a colour each, meeting along the slanted step — no outline
127
+ duotone: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("polygon", { points: "14,2 3,13.5 10.4,13.5 13.6,10.5", fill: primaryColor }), jsx("polygon", { points: "13.6,10.5 21,10.5 10,22 10.4,13.5", fill: secondaryColor })] })),
128
+ vivid: ({ primaryColor }) => (jsxs(Fragment, { children: [jsx("polygon", { points: LIGHTNING, fill: primaryColor }), jsx("polygon", { points: LIGHTNING, fill: "white", opacity: "0.1" })] })),
119
129
  },
120
130
  });
131
+ /** @deprecated The same bolt as {@link NtdLightning} — use that. */
132
+ const NtdZap = NtdLightning;
121
133
 
122
- export { NtdCrown, NtdDice, NtdDumpsterFire, NtdGamepad, NtdGhost, NtdLightning, NtdPartyPopper, NtdPuzzle, NtdRocket, NtdSad, NtdSkull, NtdSmiley, NtdTrophy };
134
+ export { NtdCrown, NtdDice, NtdDumpsterFire, NtdGamepadOldschool, NtdGhost, NtdLightning, NtdPartyPopper, NtdPuzzle, NtdRocket, NtdSad, NtdSkull, NtdSmile, NtdSmiley, NtdTrophy, NtdZap };
@@ -1,18 +1,42 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { createIcon } from '../createIcon.js';
3
+ import { within } from '../iconParts.js';
3
4
 
4
5
  /* ────────────────────────────────────────────────────────────────────────────
5
6
  CONTROLLERS & INPUT
6
7
  ───────────────────────────────────────────────────────────────────────────── */
8
+ // A modern pad in the layout of today's controllers: raised shoulders (the bumpers), grips that
9
+ // taper down and out, the left stick high with the d-pad below it, the face buttons high with the
10
+ // right stick below them. The old flat pad is NtdGamepadOldschool (fun.tsx).
11
+ const PAD_BODY = 'M12 6.2C9.9 6.2 8.6 5 6.4 5 4.3 5 3 6.1 2.4 8.1L1.1 15.9C.7 18.6 2.6 20.7 4.9 19.9 5.9 19.6 6.5 18.9 7.2 18L8.5 16.1C9 15.4 9.6 15.1 10.4 15.1H13.6C14.4 15.1 15 15.4 15.5 16.1L16.8 18C17.5 18.9 18.1 19.6 19.1 19.9 21.4 20.7 23.3 18.6 22.9 15.9L21.6 8.1C21 6.1 19.7 5 17.6 5 15.4 5 14.1 6.2 12 6.2Z';
12
+ /**
13
+ * The top edge of each shoulder, over the shoulder only: stroked wide and clipped to the body it
14
+ * is the bumper band; moved down by 0.9 it is the bumper's seam on the solid pad. (It ran from
15
+ * halfway down the sides, 1.35 down — too low and too long.)
16
+ */
17
+ const PAD_BUMPERS = 'M2.6 7.8C3.2 6 4.5 5 6.4 5c1.4 0 2.4.4 3.2.8M21.4 7.8C20.8 6 19.5 5 17.6 5c-1.4 0-2.4.4-3.2.8';
18
+ const PAD_DPAD = 'M8.45 10.85h1.3v1.1h1.1v1.3h-1.1v1.1h-1.3v-1.1h-1.1v-1.3h1.1z';
19
+ /** The face buttons, Y (top), B, A, X clockwise, as [cx, cy]. */
20
+ const PAD_FACE = [
21
+ [17.8, 7.95],
22
+ [19.25, 9.4],
23
+ [17.8, 10.85],
24
+ [16.35, 9.4],
25
+ ];
26
+ /** Xbox colours of Y, B, A, X — vivid only. */
27
+ const PAD_FACE_VIVID = ['#FACC15', '#EF4444', '#22C55E', '#3B82F6'];
7
28
  const NtdGamepad = /* @__PURE__ */ createIcon({
8
29
  displayName: 'NtdGamepad',
9
30
  paths: {
10
- solid: ({ primaryColor }) => (jsx("path", { d: "M6 11h4M8 9v4M15 12h.01M18 10h.01M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003.68 2.927c.834-.192 1.554-.76 1.899-1.545l.743-1.692A2 2 0 0110.164 14h3.672a2 2 0 011.842 1.69l.743 1.692c.345.785 1.065 1.353 1.899 1.545A3 3 0 0022 16c0-1.545-.604-6.584-.685-7.258-.006-.05-.01-.1-.017-.152A4 4 0 0017.32 5z", fill: primaryColor })),
11
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 11h4M8 9v4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "15", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "18", cy: "10", r: "1", fill: primaryColor }), jsx("path", { d: "M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003.68 2.927c.834-.192 1.554-.76 1.899-1.545l.743-1.692A2 2 0 0110.164 14h3.672a2 2 0 011.842 1.69l.743 1.692c.345.785 1.065 1.353 1.899 1.545A3 3 0 0022 16c0-1.545-.604-6.584-.685-7.258-.006-.05-.01-.1-.017-.152A4 4 0 0017.32 5z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
12
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003.68 2.927c.834-.192 1.554-.76 1.899-1.545l.743-1.692A2 2 0 0110.164 14h3.672a2 2 0 011.842 1.69l.743 1.692c.345.785 1.065 1.353 1.899 1.545A3 3 0 0022 16c0-1.545-.604-6.584-.685-7.258-.006-.05-.01-.1-.017-.152A4 4 0 0017.32 5z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M6 11h4M8 9v4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("circle", { cx: "15", cy: "12", r: "1", fill: primaryColor }), jsx("circle", { cx: "18", cy: "10", r: "1", fill: primaryColor })] })),
13
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M6 11h4M8 9v4M15 12h.01M18 10h.01M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003.68 2.927c.834-.192 1.554-.76 1.899-1.545l.743-1.692A2 2 0 0110.164 14h3.672a2 2 0 011.842 1.69l.743 1.692c.345.785 1.065 1.353 1.899 1.545A3 3 0 0022 16c0-1.545-.604-6.584-.685-7.258-.006-.05-.01-.1-.017-.152A4 4 0 0017.32 5z", fill: primaryColor }), jsx("path", { d: "M6 11h4M8 9v4M15 12h.01M18 10h.01M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003.68 2.927c.834-.192 1.554-.76 1.899-1.545l.743-1.692A2 2 0 0110.164 14h3.672a2 2 0 011.842 1.69l.743 1.692c.345.785 1.065 1.353 1.899 1.545A3 3 0 0022 16c0-1.545-.604-6.584-.685-7.258-.006-.05-.01-.1-.017-.152A4 4 0 0017.32 5z", fill: "white", opacity: "0.1" })] })),
31
+ solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: PAD_BODY, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [within(uid, 'b', jsx("path", { d: PAD_BODY }), jsx("path", { d: PAD_BUMPERS, stroke: accentColor, strokeWidth: "0.7", strokeLinecap: "round", fill: "none", transform: "translate(0 0.9)" })), jsx("circle", { cx: "6.2", cy: "9.4", r: "2.1" }), jsx("circle", { cx: "14.9", cy: "12.6", r: "1.9" }), jsx("path", { d: PAD_DPAD }), PAD_FACE.map(([cx, cy]) => (jsx("circle", { cx: cx, cy: cy, r: "0.78" }, `${cx},${cy}`))), jsx("circle", { cx: "12", cy: "8.3", r: "1.15" }), jsx("circle", { cx: "11.1", cy: "10.4", r: "0.5" }), jsx("circle", { cx: "12.9", cy: "10.4", r: "0.5" })] })] })),
32
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: PAD_BODY, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" }), jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth * 0.6, fill: "none", children: [jsx("circle", { cx: "6.2", cy: "9.4", r: "1.7" }), jsx("circle", { cx: "14.9", cy: "12.6", r: "1.5" }), jsx("path", { d: "M9.1 11.15v2.9M7.65 12.6h2.9", strokeLinecap: "round" })] }), jsxs("g", { fill: primaryColor, children: [PAD_FACE.map(([cx, cy]) => (jsx("circle", { cx: cx, cy: cy, r: "0.7" }, `${cx},${cy}`))), jsx("circle", { cx: "12", cy: "8.5", r: "0.9" })] })] })),
33
+ // Fills only: the tinted body, the bumpers and every control in primary.
34
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: PAD_BODY, fill: secondaryColor, opacity: secondaryOpacity }), jsxs("g", { fill: primaryColor, children: [within(uid, 'b', jsx("path", { d: PAD_BODY }), jsx("path", { d: PAD_BUMPERS, stroke: primaryColor, strokeWidth: "2.6", fill: "none" })), jsx("circle", { cx: "6.2", cy: "9.4", r: "2.1" }), jsx("circle", { cx: "14.9", cy: "12.6", r: "1.9" }), jsx("path", { d: PAD_DPAD }), PAD_FACE.map(([cx, cy]) => (jsx("circle", { cx: cx, cy: cy, r: "0.78" }, `${cx},${cy}`))), jsx("circle", { cx: "12", cy: "8.3", r: "1.15" })] })] })),
35
+ vivid: ({ primaryColor, secondaryColor, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: PAD_BODY, fill: primaryColor }), within(uid, 'b', jsx("path", { d: PAD_BODY }), jsx("path", { d: PAD_BUMPERS, stroke: secondaryColor, strokeWidth: "2.6", fill: "none" })), jsxs("g", { fill: secondaryColor, children: [jsx("circle", { cx: "6.2", cy: "9.4", r: "2.1" }), jsx("circle", { cx: "14.9", cy: "12.6", r: "1.9" }), jsx("path", { d: PAD_DPAD })] }), PAD_FACE.map(([cx, cy], i) => (jsx("circle", { cx: cx, cy: cy, r: "0.78", fill: PAD_FACE_VIVID[i] }, `${cx},${cy}`))), jsx("circle", { cx: "12", cy: "8.3", r: "1.15", fill: "white" }), jsx("circle", { cx: "11.1", cy: "10.4", r: "0.5", fill: "white", opacity: "0.8" }), jsx("circle", { cx: "12.9", cy: "10.4", r: "0.5", fill: "white", opacity: "0.8" })] })),
14
36
  },
15
37
  });
38
+ /** @deprecated Renamed to {@link NtdGamepad} in 1.3.0 — the same icon. */
39
+ const NtdGamepadController = NtdGamepad;
16
40
  const NtdJoystick = /* @__PURE__ */ createIcon({
17
41
  displayName: 'NtdJoystick',
18
42
  paths: {
@@ -170,4 +194,4 @@ const gamingIcons = {
170
194
  NtdPotion,
171
195
  };
172
196
 
173
- export { NtdDice, NtdDiscord, NtdGamepad, NtdHealthBar, NtdJoystick, NtdLeaderboard, NtdPotion, NtdShield, NtdStar, NtdSword, NtdTrophy, NtdTwitch, NtdVrHeadset, NtdXpBar, NtdYoutubeLive, gamingIcons };
197
+ export { NtdDice, NtdDiscord, NtdGamepad, NtdGamepadController, NtdHealthBar, NtdJoystick, NtdLeaderboard, NtdPotion, NtdShield, NtdStar, NtdSword, NtdTrophy, NtdTwitch, NtdVrHeadset, NtdXpBar, NtdYoutubeLive, gamingIcons };
@@ -100,13 +100,20 @@ const NtdEgg = /* @__PURE__ */ createIcon({
100
100
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("ellipse", { cx: "12", cy: "14", rx: "7", ry: "8", fill: primaryColor }), jsx("ellipse", { cx: "12", cy: "14", rx: "7", ry: "8", fill: "white", opacity: "0.1" })] })),
101
101
  },
102
102
  });
103
+ // NtdHamburger: even layers of one width — a low domed top bun, a thin wavy band of sauce, the
104
+ // patty and the bottom bun — each standing apart. (The top was a tall half circle and the bottom
105
+ // bun wider than everything above it.) The bun is plain and the sauce half as tall as before.
106
+ const BURGER_TOP = 'M3 9.4C3 6.4 7 4 12 4s9 2.4 9 5.4a1 1 0 01-1 1H4a1 1 0 01-1-1z';
107
+ const BURGER_SAUCE = 'M3 12c1.5-.5 3-.5 4.5 0s3 .5 4.5 0 3-.5 4.5 0 3 .5 4.5 0';
108
+ const BURGER_PATTY = { x: 2.5, y: 13.6, width: 19, height: 2.9, rx: 1.45 };
109
+ const BURGER_BOTTOM = 'M3 17.6h18v1.4a2 2 0 01-2 2H5a2 2 0 01-2-2z';
103
110
  const NtdHamburger = /* @__PURE__ */ createIcon({
104
111
  displayName: 'NtdHamburger',
105
112
  paths: {
106
- solid: ({ primaryColor, secondaryColor, strokeWidth: _strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", fill: primaryColor }), jsx("rect", { x: "2", y: "11", width: "20", height: "3", rx: "1", fill: secondaryColor, opacity: 0.5 }), jsx("rect", { x: "2", y: "14", width: "20", height: "3", rx: "0.5", fill: primaryColor, opacity: 0.8 }), jsx("path", { d: "M2 17h20a1 1 0 011 1v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1a1 1 0 011-1z", fill: primaryColor })] })),
107
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "2", y1: "14", x2: "22", y2: "14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M2 17h20a1 1 0 011 1v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1a1 1 0 011-1z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
108
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "2", y1: "14", x2: "22", y2: "14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("path", { d: "M2 17h20a1 1 0 011 1v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1a1 1 0 011-1z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M2 17h20a1 1 0 011 1v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1a1 1 0 011-1z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
109
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", fill: primaryColor }), jsx("path", { d: "M4 11h16a8 8 0 00-16 0z", fill: "white", opacity: "0.08" }), jsx("rect", { x: "2", y: "11", width: "20", height: "3", rx: "1", fill: secondaryColor }), jsx("rect", { x: "2", y: "14", width: "20", height: "3", rx: "0.5", fill: "#EF4444" }), jsx("path", { d: "M2 17h20a1 1 0 011 1v1a2 2 0 01-2 2H3a2 2 0 01-2-2v-1a1 1 0 011-1z", fill: "#10B981" })] })),
113
+ solid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: BURGER_TOP, fill: primaryColor }), jsx("path", { d: BURGER_SAUCE, stroke: secondaryColor, strokeWidth: "1.1", fill: "none" }), jsx("rect", { ...BURGER_PATTY, fill: primaryColor }), jsx("path", { d: BURGER_BOTTOM, fill: primaryColor })] })),
114
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BURGER_TOP, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: BURGER_SAUCE, stroke: primaryColor, strokeWidth: strokeWidth * 0.55, fill: "none" }), jsx("rect", { ...BURGER_PATTY, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: BURGER_BOTTOM, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
115
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BURGER_TOP, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: BURGER_TOP, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: BURGER_SAUCE, stroke: primaryColor, strokeWidth: strokeWidth * 0.55, fill: "none" }), jsx("rect", { ...BURGER_PATTY, fill: primaryColor }), jsx("path", { d: BURGER_BOTTOM, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: BURGER_BOTTOM, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
116
+ vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: BURGER_TOP, fill: primaryColor }), jsx("path", { d: BURGER_TOP, fill: "white", opacity: "0.12" }), jsx("path", { d: BURGER_SAUCE, stroke: secondaryColor, strokeWidth: "1.1", fill: "none" }), jsx("rect", { ...BURGER_PATTY, fill: primaryColor }), jsx("rect", { ...BURGER_PATTY, fill: "black", opacity: "0.2" }), jsx("path", { d: BURGER_BOTTOM, fill: primaryColor })] })),
110
117
  },
111
118
  });
112
119
  const NtdDna = /* @__PURE__ */ createIcon({
@@ -1,31 +1,32 @@
1
1
  export { NtdArrowDown, NtdArrowLeft, NtdArrowRight, NtdArrowUp, NtdChevronDown, NtdChevronLeft, NtdChevronRight, NtdChevronUp, NtdClose, NtdExternalLink, NtdMenu, NtdMoreHorizontal, NtdMoreVertical, NtdRefresh } from './navigation.js';
2
- export { NtdCheck, NtdClipboard, NtdCopy, NtdDownload, NtdEdit, NtdFilter, NtdGroup, NtdLink, NtdLock, NtdLogIn, NtdLogOut, NtdMinus, NtdPlus, NtdPrint, NtdRedo, NtdReply, NtdSave, NtdSearch, NtdSettings, NtdShare, NtdSort, NtdTrash, NtdUndo, NtdUngroup, NtdUnlock, NtdUpload, NtdZoomIn, NtdZoomOut } from './actions.js';
3
- export { NtdBackspace, NtdBell, NtdBookmark, NtdCalendar, NtdClock, NtdCursor, NtdError, NtdEye, NtdEyeOff, NtdFlag, NtdGlobe, NtdHeart, NtdHelp, NtdHome, NtdInfo, NtdMap, NtdMoon, NtdPin, NtdShield, NtdStar, NtdSuccess, NtdSun, NtdTag, NtdThumbDown, NtdThumbUp, NtdUser, NtdUsers, NtdWarning, NtdWireframe } from './ui.js';
2
+ export { NtdCheck, NtdClipboard, NtdCopy, NtdDownload, NtdEdit, NtdEditDetail, NtdFilter, NtdGroup, NtdLink, NtdLock, NtdLogIn, NtdLogOut, NtdMinus, NtdPlus, NtdPrint, NtdRedo, NtdReply, NtdSave, NtdSearch, NtdSettings, NtdShare, NtdSort, NtdTrash, NtdUndo, NtdUngroup, NtdUnlock, NtdUpload, NtdZoomIn, NtdZoomOut } from './actions.js';
3
+ export { NtdAdmin, NtdBackspace, NtdBell, NtdBookmark, NtdCalendar, NtdClock, NtdCursor, NtdError, NtdEye, NtdEyeOff, NtdFlag, NtdGlobe, NtdHeart, NtdHelp, NtdHome, NtdInfo, NtdMap, NtdMoon, NtdPin, NtdShield, NtdStar, NtdSuccess, NtdSun, NtdTag, NtdThumbDown, NtdThumbUp, NtdUser, NtdUsers, NtdWarning, NtdWireframe } from './ui.js';
4
4
  export { NtdBiodegradable, NtdCarbonFootprint, NtdCo2, NtdCompost, NtdEcoFriendly, NtdEvCharger, NtdHydropower, NtdNetZero, NtdOrganic, NtdPlantTree, NtdRecycle, NtdSolarPanel, NtdTrashSort, NtdWildlife, NtdWindTurbine, sustainabilityIcons } from './sustainability.js';
5
5
  export { NtdAccessibility, NtdAssistiveTech, NtdAudioDescription, NtdBlind, NtdBraille, NtdClosedCaptions, NtdDeaf, NtdDyslexia, NtdEasyRead, NtdHearingAid, NtdScreenReader, NtdSignLanguage, NtdWheelchair, accessibilityIcons } from './accessibility.js';
6
6
  export { NtdAudit, NtdCcpa, NtdCertified, NtdCompliance, NtdContract, NtdCookieConsent, NtdCopyright, NtdGdpr, NtdLegalDocument, NtdPatent, NtdPrivacyPolicy, NtdTermsOfService, NtdTrademark, legalIcons } from './legal.js';
7
7
  export { NtdBluetooth, NtdBrush, NtdCamera, NtdChat, NtdImage, NtdInbox, NtdMail, NtdMicrophone, NtdMicrophoneOff, NtdMusic, NtdNotification, NtdPalette, NtdPause, NtdPenTool, NtdPhone, NtdPlay, NtdSend, NtdSkipBack, NtdSkipForward, NtdSpline, NtdStop, NtdVideo, NtdVolume, NtdVolumeMute, NtdWifi } from './media.js';
8
- export { NtdActivity, NtdArchive, NtdAward, NtdBarChart, NtdCart, NtdCloud, NtdCloudDownload, NtdCloudUpload, NtdCode, NtdCoffee, NtdCpu, NtdCreditCard, NtdDatabase, NtdFile, NtdFileText, NtdFolder, NtdFolderOpen, NtdGit, NtdGrid, NtdKey, NtdLayers, NtdList, NtdMonitor, NtdPackage, NtdPieChart, NtdSmartphone, NtdTable, NtdTarget, NtdTerminal, NtdTruck, NtdZap } from './files.js';
9
- export { NtdCrown, NtdDice, NtdDumpsterFire, NtdGamepad, NtdGhost, NtdLightning, NtdPartyPopper, NtdPuzzle, NtdRocket, NtdSad, NtdSkull, NtdSmiley, NtdTrophy } from './fun.js';
8
+ export { NtdActivity, NtdArchive, NtdAward, NtdBarChart, NtdCart, NtdCloud, NtdCloudDownload, NtdCloudUpload, NtdCode, NtdCoffee, NtdCpu, NtdCreditCard, NtdDatabase, NtdFile, NtdFileText, NtdFolder, NtdFolderOpen, NtdGit, NtdGrid, NtdKey, NtdLayers, NtdList, NtdMonitor, NtdPackage, NtdPieChart, NtdShoppingCart, NtdSmartphone, NtdTable, NtdTarget, NtdTerminal, NtdTruck } from './files.js';
9
+ export { NtdCrown, NtdDice, NtdDumpsterFire, NtdGamepadOldschool, NtdGhost, NtdLightning, NtdPartyPopper, NtdPuzzle, NtdRocket, NtdSad, NtdSkull, NtdSmile, NtdSmiley, NtdTrophy, NtdZap } from './fun.js';
10
10
  export { NtdAnchor, NtdBug, NtdCompass, NtdDroplet, NtdFeather, NtdFire, NtdFlower, NtdLeaf, NtdMountain, NtdRain, NtdSnow, NtdSnowflake, NtdSunrise, NtdSunset, NtdThermometer, NtdThunderstorm, NtdTree, NtdUmbrella, NtdWave, NtdWind } from './weather.js';
11
11
  export { NtdAngleBisector, NtdArrowDownCircle, NtdArrowLeftCircle, NtdArrowRightCircle, NtdArrowUpCircle, NtdCircle, NtdCornerDownLeft, NtdCornerDownRight, NtdCornerUpLeft, NtdCornerUpRight, NtdCross, NtdDiamond, NtdHexagon, NtdMaximize, NtdMidpoint, NtdMinimize, NtdMove, NtdOctagon, NtdParallel, NtdPentagon, NtdPerpendicular, NtdPoint, NtdRepeat, NtdSegment, NtdShuffle, NtdSquare, NtdStar4, NtdTriangle } from './shapes.js';
12
- export { NtdBank, NtdBarcode, NtdBriefcase, NtdCalculator, NtdClipboardCheck, NtdCoins, NtdDollar, NtdInvoice, NtdKanban, NtdMilestone, NtdPercent, NtdPiggyBank, NtdPresentation, NtdReceipt, NtdStore, NtdTrendDown, NtdTrendUp, NtdWallet } from './business.js';
12
+ export { NtdBank, NtdBarcode, NtdBriefcase, NtdCalculator, NtdClipboardCheck, NtdCoins, NtdDollar, NtdInvoice, NtdInvoiceDoc, NtdKanban, NtdMilestone, NtdPercent, NtdPiggyBank, NtdPresentation, NtdReceipt, NtdStore, NtdTrendDown, NtdTrendUp, NtdWallet } from './business.js';
13
13
  export { NtdAtSign, NtdBellRing, NtdBubble, NtdMegaphone, NtdPhoneOff, NtdQrCode, NtdThumbsDown, NtdThumbsUp } from './social.js';
14
14
  export { NtdAIBrain, NtdAstroLogo, NtdBattery, NtdBlueprint, NtdBrackets, NtdBugDev, NtdBunLogo, NtdComponent, NtdDataMesh, NtdDenoLogo, NtdDeploy, NtdFeatureFlag, NtdFlow, NtdForge, NtdGateway, NtdGitBranch, NtdGitCommit, NtdGitMerge, NtdHash, NtdNeural, NtdNextJsLogo, NtdNodes, NtdPipeline, NtdPrototype, NtdQwikLogo, NtdServer, NtdSlash, NtdSolidJsLogo, NtdSvelteLogo, NtdTauriLogo, NtdViteLogo } from './devtech.js';
15
- export { NtdCartAdd, NtdCartRemove, NtdCheckout, NtdCompare, NtdCoupon, NtdDiscount, NtdGiftCard, NtdInvoiceDoc, NtdPayment, NtdPromoTag, NtdRefund, NtdReturn, NtdShipping, NtdShoppingCart, NtdStorefront, NtdWishlist } from './ecommerce.js';
15
+ export { NtdCartAdd, NtdCartRemove, NtdCheckout, NtdCompare, NtdCoupon, NtdDiscount, NtdGiftCard, NtdPayment, NtdPromoTag, NtdRefund, NtdReturn, NtdShipping, NtdStorefront, NtdWishlist } from './ecommerce.js';
16
16
  export { NtdAirdrop, NtdBitcoin, NtdBlockchain, NtdCryptoWallet, NtdDeFi, NtdEthereum, NtdExchange, NtdGasFee, NtdLedger, NtdMining, NtdNFT, NtdSmartContract, NtdStaking, NtdToken } from './fintech.js';
17
17
  export { NtdAPI, NtdAnalytics, NtdBilling, NtdDashboard, NtdIntegration, NtdMetrics, NtdQuota, NtdSubscription, NtdTeamwork, NtdTenant, NtdUptime, NtdUsage, NtdWebhook } from './saas.js';
18
18
  export { NtdDoorbell, NtdMotionSensor, NtdRouter, NtdSmartBulb, NtdSmartCamera, NtdSmartHub, NtdSmartLock, NtdSmartPlug, NtdSmartSpeaker, NtdSmartSwitch, NtdTemperatureSensor, NtdThermostat, NtdVoiceAssistant } from './smarthome.js';
19
19
  export { NtdApple, NtdBandaid, NtdCake, NtdDna, NtdEgg, NtdGlass, NtdHamburger, NtdHeartPulse, NtdPill, NtdPizza, NtdStethoscope, NtdSyringe, NtdWeight } from './health.js';
20
20
  export { NtdNiceToDev, NtdOmniVerk, NtdOmniVerkAnimated, NtdOmniVerkBadge, NtdOmniVerkLogo, NtdOmniVerkSpinner, NtdOmniVerkWatermark } from './brand.js';
21
- export { NtdDice as NtdDiceGaming, NtdDiscord, NtdGamepad as NtdGamepadController, NtdHealthBar, NtdJoystick, NtdLeaderboard, NtdPotion, NtdShield as NtdShieldGaming, NtdStar as NtdStarGaming, NtdSword, NtdTrophy as NtdTrophyGaming, NtdTwitch, NtdVrHeadset, NtdXpBar, NtdYoutubeLive, gamingIcons } from './gaming.js';
21
+ export { NtdDice as NtdDiceGaming, NtdDiscord, NtdGamepad, NtdGamepadController, NtdHealthBar, NtdJoystick, NtdLeaderboard, NtdPotion, NtdShield as NtdShieldGaming, NtdStar as NtdStarGaming, NtdSword, NtdTrophy as NtdTrophyGaming, NtdTwitch, NtdVrHeadset, NtdXpBar, NtdYoutubeLive, gamingIcons } from './gaming.js';
22
22
  export { NtdVoiceAssistant as NtdAIAssistant, NtdBrain, NtdChatbot, NtdDataset, NtdDeepLearning, NtdGradient, NtdInference, NtdMagicWand, NtdModel, NtdNeuralNetwork, NtdPrompt, NtdRobot, NtdSparkle, NtdTensor, NtdTraining, aiIcons } from './ai.js';
23
- export { NtdBackpack, NtdBook, NtdCalculator as NtdCalculatorEdu, NtdCertificate, NtdDiploma, NtdExam, NtdFlashcard, NtdGraduationCap, NtdNotebook, NtdOnlineCourse, NtdOpenBook, NtdPen, NtdPencil, NtdQuiz, NtdSchool, NtdUniversity, NtdWebinar, educationIcons } from './education.js';
23
+ export { NtdBackpack, NtdBook, NtdBookBookmark, NtdCalculator as NtdCalculatorEdu, NtdCertificate, NtdDiploma, NtdExam, NtdFlashcard, NtdGraduationCap, NtdNotebook, NtdOnlineCourse, NtdOpenBook, NtdPen, NtdPencil, NtdQuiz, NtdSchool, NtdUniversity, NtdWebinar, educationIcons } from './education.js';
24
24
  export { NtdAtom, NtdBeaker, NtdDna as NtdDnaScience, NtdExperiment, NtdFlask, NtdHypothesis, NtdMagnet, NtdMicroscope, NtdMolecule, NtdPeriodictable, NtdPetriDish, NtdPlanet, NtdResearch, NtdRocket as NtdRocketScience, NtdTelescope, NtdTestTube, scienceIcons } from './science.js';
25
25
  export { NtdApartment, NtdBathroom, NtdBedroom, NtdCondo, NtdFloorPlan, NtdForRent, NtdForSale, NtdGarage, NtdHouse as NtdHouseRealEstate, NtdKey as NtdKeyRealEstate, NtdMortgage, NtdOfficeBuilding, NtdPool, NtdSold, NtdSquareMeters, NtdVilla, NtdWarehouse, realestateIcons } from './realestate.js';
26
26
  export { NtdBeer, NtdBurger, NtdChefHat, NtdCocktail, NtdCoffee as NtdCoffeeFood, NtdDelivery, NtdForkKnife, NtdHotdog, NtdPizza as NtdPizzaFood, NtdPlate, NtdRecipe, NtdRestaurant, NtdSoda, NtdSushi, NtdTaco, NtdWine, foodIcons } from './food.js';
27
27
  export { NtdBeach, NtdBike, NtdBus, NtdCamping, NtdCar, NtdCompassRose, NtdHotel, NtdLuggage, NtdPassport, NtdPlane, NtdPlaneTakeoff, NtdShip, NtdTaxi, NtdTicket, NtdTrain, travelIcons } from './travel.js';
28
28
  export { NtdBasketball, NtdCycling, NtdDumbbell, NtdGolf, NtdMedal, NtdPodium, NtdRunning, NtdSoccerBall, NtdStopwatch, NtdSwimming, NtdTarget as NtdTargetSports, NtdTennis, NtdWhistle, NtdYoga, sportsIcons } from './sports.js';
29
29
  export { NtdAlert, NtdAlertBell, NtdFood, NtdGym, NtdInsurance, NtdLab, NtdMeal, NtdProduct, NtdProject, NtdShipment, NtdTax, NtdWorkflow } from './omniverk.js';
30
+ export { NtdKeyBackspace, NtdKeyCaps, NtdKeyCommand, NtdKeyControl, NtdKeyEnter, NtdKeyOption, NtdKeyShift, NtdKeySpace, NtdKeyTab, NtdPadDpad, NtdPadDpadDown, NtdPadDpadLeft, NtdPadDpadRight, NtdPadDpadUp, NtdPadGenericEast, NtdPadGenericNorth, NtdPadGenericSouth, NtdPadGenericWest, NtdPadHome, NtdPadLb, NtdPadLt, NtdPadNintendoA, NtdPadNintendoB, NtdPadNintendoX, NtdPadNintendoY, NtdPadPlaystationCircle, NtdPadPlaystationCross, NtdPadPlaystationSquare, NtdPadPlaystationTriangle, NtdPadRb, NtdPadRt, NtdPadSelect, NtdPadStart, NtdPadStickLeft, NtdPadStickLeftPress, NtdPadStickRight, NtdPadStickRightPress, NtdPadXboxA, NtdPadXboxB, NtdPadXboxX, NtdPadXboxY, NtdRemoteBack, NtdRemoteMenu, NtdRemoteOk } from './input.js';
30
31
 
31
32
  // Navigation
@@ -0,0 +1,75 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { createIcon } from '../createIcon.js';
3
+
4
+ const RING = 'M12 3a9 9 0 1 0 0 18a9 9 0 1 0 0 -18z';
5
+ /** A round button: a disc with its symbol. */
6
+ function discGlyph(displayName, symbol) {
7
+ return createIcon({
8
+ displayName,
9
+ paths: {
10
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsx("path", { d: symbol, stroke: accentColor, strokeOpacity: accentOpacity, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })] })),
11
+ outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${RING} ${symbol}`, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
12
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "9", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: `${RING} ${symbol}`, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })] })),
13
+ vivid: ({ primaryColor, accentColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "10.5", fill: primaryColor }), jsx("path", { d: symbol, stroke: accentColor, strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })] })),
14
+ },
15
+ });
16
+ }
17
+ /** Any other glyph: one stroked shape, bolder when solid, tinted when duotone. */
18
+ function shapeGlyph(displayName, d) {
19
+ return createIcon({
20
+ displayName,
21
+ paths: {
22
+ solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: d, stroke: primaryColor, strokeWidth: strokeWidth * 1.3, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
23
+ outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: d, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
24
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsx("path", { d: d, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", fill: secondaryColor, fillOpacity: secondaryOpacity })),
25
+ vivid: ({ primaryColor }) => (jsx("path", { d: d, stroke: primaryColor, strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round", fill: "none" })),
26
+ },
27
+ });
28
+ }
29
+ const NtdPadXboxA = /* @__PURE__ */ discGlyph('NtdPadXboxA', 'M9.25 16l2.75-8 2.75 8 M10.2 13.25h3.6');
30
+ const NtdPadXboxB = /* @__PURE__ */ discGlyph('NtdPadXboxB', 'M9.75 8v8 M9.75 8h2.5a2 2 0 0 1 0 4h-2.5 M9.75 12h3a2 2 0 0 1 0 4h-3');
31
+ const NtdPadXboxX = /* @__PURE__ */ discGlyph('NtdPadXboxX', 'M9.5 8l5 8 M14.5 8l-5 8');
32
+ const NtdPadXboxY = /* @__PURE__ */ discGlyph('NtdPadXboxY', 'M9.5 8l2.5 4 2.5-4 M12 12v4');
33
+ const NtdPadNintendoA = /* @__PURE__ */ discGlyph('NtdPadNintendoA', 'M9.25 16l2.75-8 2.75 8 M10.2 13.25h3.6');
34
+ const NtdPadNintendoB = /* @__PURE__ */ discGlyph('NtdPadNintendoB', 'M9.75 8v8 M9.75 8h2.5a2 2 0 0 1 0 4h-2.5 M9.75 12h3a2 2 0 0 1 0 4h-3');
35
+ const NtdPadNintendoX = /* @__PURE__ */ discGlyph('NtdPadNintendoX', 'M9.5 8l5 8 M14.5 8l-5 8');
36
+ const NtdPadNintendoY = /* @__PURE__ */ discGlyph('NtdPadNintendoY', 'M9.5 8l2.5 4 2.5-4 M12 12v4');
37
+ const NtdPadPlaystationCross = /* @__PURE__ */ discGlyph('NtdPadPlaystationCross', 'M9 9l6 6 M15 9l-6 6');
38
+ const NtdPadPlaystationCircle = /* @__PURE__ */ discGlyph('NtdPadPlaystationCircle', 'M12 8.25a3.75 3.75 0 1 0 0 7.5a3.75 3.75 0 1 0 0 -7.5z');
39
+ const NtdPadPlaystationSquare = /* @__PURE__ */ discGlyph('NtdPadPlaystationSquare', 'M8.5 8.5h7v7h-7z');
40
+ const NtdPadPlaystationTriangle = /* @__PURE__ */ discGlyph('NtdPadPlaystationTriangle', 'M12 8l4.5 7.5h-9z');
41
+ const NtdPadGenericNorth = /* @__PURE__ */ shapeGlyph('NtdPadGenericNorth', 'M12 3a3 3 0 1 0 0 6a3 3 0 1 0 0 -6z M12 6h.01 M18 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M6 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M12 16.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z');
42
+ const NtdPadGenericEast = /* @__PURE__ */ shapeGlyph('NtdPadGenericEast', 'M12 4.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M18 9a3 3 0 1 0 0 6a3 3 0 1 0 0 -6z M18 12h.01 M6 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M12 16.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z');
43
+ const NtdPadGenericWest = /* @__PURE__ */ shapeGlyph('NtdPadGenericWest', 'M12 4.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M18 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M6 9a3 3 0 1 0 0 6a3 3 0 1 0 0 -6z M6 12h.01 M12 16.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z');
44
+ const NtdPadGenericSouth = /* @__PURE__ */ shapeGlyph('NtdPadGenericSouth', 'M12 4.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M18 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M6 10.25a1.75 1.75 0 1 0 0 3.5a1.75 1.75 0 1 0 0 -3.5z M12 15a3 3 0 1 0 0 6a3 3 0 1 0 0 -6z M12 18h.01');
45
+ const NtdPadLb = /* @__PURE__ */ shapeGlyph('NtdPadLb', 'M6 9h12a3 3 0 0 1 0 6H6a3 3 0 0 1 0-6z M7.5 12h.01');
46
+ const NtdPadRb = /* @__PURE__ */ shapeGlyph('NtdPadRb', 'M6 9h12a3 3 0 0 1 0 6H6a3 3 0 0 1 0-6z M16.5 12h.01');
47
+ const NtdPadLt = /* @__PURE__ */ shapeGlyph('NtdPadLt', 'M9 3h6a3 3 0 0 1 3 3v7a6 6 0 0 1-12 0V6a3 3 0 0 1 3-3z M9.5 7h.01');
48
+ const NtdPadRt = /* @__PURE__ */ shapeGlyph('NtdPadRt', 'M9 3h6a3 3 0 0 1 3 3v7a6 6 0 0 1-12 0V6a3 3 0 0 1 3-3z M14.5 7h.01');
49
+ const NtdPadStart = /* @__PURE__ */ discGlyph('NtdPadStart', 'M8.5 8.75h7 M8.5 12h7 M8.5 15.25h7');
50
+ const NtdPadSelect = /* @__PURE__ */ discGlyph('NtdPadSelect', 'M7.75 7.75h5.5v5.5h-5.5z M10.75 16.25h5.5v-5.5');
51
+ const NtdPadHome = /* @__PURE__ */ discGlyph('NtdPadHome', 'M7.95 12L12 8.6l4.05 3.4v4H7.95z');
52
+ const NtdPadDpad = /* @__PURE__ */ shapeGlyph('NtdPadDpad', 'M9 3h6v6h6v6h-6v6H9v-6H3V9h6z');
53
+ const NtdPadDpadUp = /* @__PURE__ */ shapeGlyph('NtdPadDpadUp', 'M9 3h6v6h6v6h-6v6H9v-6H3V9h6z M12 5.6l1.15 1.5h-2.3z');
54
+ const NtdPadDpadDown = /* @__PURE__ */ shapeGlyph('NtdPadDpadDown', 'M9 3h6v6h6v6h-6v6H9v-6H3V9h6z M12 18.4l1.15-1.5h-2.3z');
55
+ const NtdPadDpadLeft = /* @__PURE__ */ shapeGlyph('NtdPadDpadLeft', 'M9 3h6v6h6v6h-6v6H9v-6H3V9h6z M5.6 12l1.5-1.15v2.3z');
56
+ const NtdPadDpadRight = /* @__PURE__ */ shapeGlyph('NtdPadDpadRight', 'M9 3h6v6h6v6h-6v6H9v-6H3V9h6z M18.4 12l-1.5-1.15v2.3z');
57
+ const NtdPadStickLeft = /* @__PURE__ */ discGlyph('NtdPadStickLeft', 'M12 7.5a4.5 4.5 0 1 0 0 9a4.5 4.5 0 1 0 0 -9z M4.5 12h1');
58
+ const NtdPadStickRight = /* @__PURE__ */ discGlyph('NtdPadStickRight', 'M12 7.5a4.5 4.5 0 1 0 0 9a4.5 4.5 0 1 0 0 -9z M18.5 12h1');
59
+ const NtdPadStickLeftPress = /* @__PURE__ */ discGlyph('NtdPadStickLeftPress', 'M12 7.5a4.5 4.5 0 1 0 0 9a4.5 4.5 0 1 0 0 -9z M12 12h.01 M4.5 12h1');
60
+ const NtdPadStickRightPress = /* @__PURE__ */ discGlyph('NtdPadStickRightPress', 'M12 7.5a4.5 4.5 0 1 0 0 9a4.5 4.5 0 1 0 0 -9z M12 12h.01 M18.5 12h1');
61
+ const NtdRemoteOk = /* @__PURE__ */ discGlyph('NtdRemoteOk', 'M12 8.5a3.5 3.5 0 1 0 0 7a3.5 3.5 0 1 0 0 -7z');
62
+ const NtdRemoteBack = /* @__PURE__ */ shapeGlyph('NtdRemoteBack', 'M9 14l-4-4 4-4 M5 10h9a5 5 0 0 1 0 10h-2');
63
+ const NtdRemoteMenu = /* @__PURE__ */ shapeGlyph('NtdRemoteMenu', 'M4 6h16v12H4z M8 10h8 M8 14h8');
64
+ const NtdKeyCommand = /* @__PURE__ */ shapeGlyph('NtdKeyCommand', 'M9 9V6.5A2.5 2.5 0 1 0 6.5 9H9z M9 9h6 M9 9v6 M15 9V6.5A2.5 2.5 0 1 1 17.5 9H15z M15 9v6 M15 15H9 M15 15v2.5a2.5 2.5 0 1 0 2.5-2.5H15z M9 15H6.5A2.5 2.5 0 1 0 9 17.5V15z');
65
+ const NtdKeyOption = /* @__PURE__ */ shapeGlyph('NtdKeyOption', 'M4 6h5l6 12h5 M14 6h6');
66
+ const NtdKeyShift = /* @__PURE__ */ shapeGlyph('NtdKeyShift', 'M12 4l-8 8h4v8h8v-8h4z');
67
+ const NtdKeyControl = /* @__PURE__ */ shapeGlyph('NtdKeyControl', 'M7 14l5-5 5 5');
68
+ const NtdKeyEnter = /* @__PURE__ */ shapeGlyph('NtdKeyEnter', 'M20 5v7a3 3 0 0 1-3 3H5 M9 11l-4 4 4 4');
69
+ const NtdKeyTab = /* @__PURE__ */ shapeGlyph('NtdKeyTab', 'M4 12h14 M14 8l4 4-4 4 M20 6v12');
70
+ // On-screen keyboard keys (1.3.0 H1)
71
+ const NtdKeyBackspace = /* @__PURE__ */ shapeGlyph('NtdKeyBackspace', 'M21 5H9l-6 7 6 7h12a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1z M17 9l-6 6 M11 9l6 6');
72
+ const NtdKeySpace = /* @__PURE__ */ shapeGlyph('NtdKeySpace', 'M4 10v4h16v-4');
73
+ const NtdKeyCaps = /* @__PURE__ */ shapeGlyph('NtdKeyCaps', 'M12 4l-7 7h4v5h6v-5h4z M8 20h8');
74
+
75
+ export { NtdKeyBackspace, NtdKeyCaps, NtdKeyCommand, NtdKeyControl, NtdKeyEnter, NtdKeyOption, NtdKeyShift, NtdKeySpace, NtdKeyTab, NtdPadDpad, NtdPadDpadDown, NtdPadDpadLeft, NtdPadDpadRight, NtdPadDpadUp, NtdPadGenericEast, NtdPadGenericNorth, NtdPadGenericSouth, NtdPadGenericWest, NtdPadHome, NtdPadLb, NtdPadLt, NtdPadNintendoA, NtdPadNintendoB, NtdPadNintendoX, NtdPadNintendoY, NtdPadPlaystationCircle, NtdPadPlaystationCross, NtdPadPlaystationSquare, NtdPadPlaystationTriangle, NtdPadRb, NtdPadRt, NtdPadSelect, NtdPadStart, NtdPadStickLeft, NtdPadStickLeftPress, NtdPadStickRight, NtdPadStickRightPress, NtdPadXboxA, NtdPadXboxB, NtdPadXboxX, NtdPadXboxY, NtdRemoteBack, NtdRemoteMenu, NtdRemoteOk };
@@ -1,18 +1,13 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { createIcon } from '../createIcon.js';
3
+ import { paperIcon } from '../iconParts.js';
3
4
 
4
5
  /* ────────────────────────────────────────────────────────────────────────────
5
6
  LEGAL DOCUMENTS
6
7
  ───────────────────────────────────────────────────────────────────────────── */
7
- const NtdContract = /* @__PURE__ */ createIcon({
8
- displayName: 'NtdContract',
9
- paths: {
10
- 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 16h6", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsx("path", { d: "M10 20c2-1 3-2 4-2s2 1 2 2", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", fill: "none" })] })),
11
- 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 16h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("path", { d: "M10 20c2-1 3-2 4-2s2 1 2 2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
12
- 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 16h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsx("path", { d: "M10 20c2-1 3-2 4-2s2 1 2 2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", fill: "none" })] })),
13
- 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 16h6", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }), jsx("path", { d: "M10 20c2-1 3-2 4-2s2 1 2 2", stroke: "white", strokeWidth: "1", strokeLinecap: "round", fill: "none" })] })),
14
- },
15
- });
8
+ // NtdContract: NtdFile's page with two lines of text and two signature lines, left and right
9
+ // (the signature was a thick squiggle).
10
+ const NtdContract = /* @__PURE__ */ paperIcon('NtdContract', 'M7.5 12h9M7.5 15.5h9M7.5 19h3.5M13 19h3.5');
16
11
  const NtdLegalDocument = /* @__PURE__ */ createIcon({
17
12
  displayName: 'NtdLegalDocument',
18
13
  paths: {
@@ -1,5 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { createIcon } from '../createIcon.js';
3
+ import { within } from '../iconParts.js';
3
4
 
4
5
  const NtdPlay = /* @__PURE__ */ createIcon({
5
6
  displayName: 'NtdPlay',
@@ -110,22 +111,31 @@ const NtdMicrophoneOff = /* @__PURE__ */ createIcon({
110
111
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "9", y: "1", width: "6", height: "12", rx: "3", fill: primaryColor }), jsx("path", { d: "M19 10v2a7 7 0 01-14 0v-2", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsx("line", { x1: "12", y1: "19", x2: "12", y2: "23", stroke: secondaryColor, strokeWidth: "1.5" }), jsx("line", { x1: "8", y1: "23", x2: "16", y2: "23", stroke: secondaryColor, strokeWidth: "1.5" }), jsx("line", { x1: "2", y1: "2", x2: "22", y2: "22", stroke: secondaryColor, strokeWidth: "1.8" })] })),
111
112
  },
112
113
  });
114
+ // NtdMusic: the note heads are tilted ellipses whose right edge is the stem's right edge, and the
115
+ // stems end where that edge is vertical, so stem and head meet without a step (the heads stuck
116
+ // out right of the stems). The outline heads are the filled ones moved in by half a stroke, so
117
+ // their stroke meets the stem the same way.
118
+ const MUSIC_STEMS = 'M8.3 17.22V5l12-2v12.22';
113
119
  const NtdMusic = /* @__PURE__ */ createIcon({
114
120
  displayName: 'NtdMusic',
115
121
  paths: {
116
- solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 18V5l12-2v13", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("ellipse", { cx: "7", cy: "18", rx: "3.4", ry: "2.5", transform: "rotate(-22 7 18)", fill: primaryColor }), jsx("ellipse", { cx: "19", cy: "16", rx: "3.4", ry: "2.5", transform: "rotate(-22 19 16)", fill: primaryColor })] })),
117
- outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 18V5l12-2v13", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("ellipse", { cx: "7", cy: "18", rx: "3.4", ry: "2.5", transform: "rotate(-22 7 18)", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("ellipse", { cx: "19", cy: "16", rx: "3.4", ry: "2.5", transform: "rotate(-22 19 16)", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
118
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 5l12-2v13", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsx("path", { d: "M9 18V5l12-2v13", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("ellipse", { cx: "7", cy: "18", rx: "3.4", ry: "2.5", transform: "rotate(-22 7 18)", fill: primaryColor }), jsx("ellipse", { cx: "19", cy: "16", rx: "3.4", ry: "2.5", transform: "rotate(-22 19 16)", fill: primaryColor })] })),
119
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("ellipse", { cx: "7", cy: "18", rx: "3.4", ry: "2.5", transform: "rotate(-22 7 18)", fill: primaryColor }), jsx("ellipse", { cx: "7", cy: "18", rx: "3.4", ry: "2.5", transform: "rotate(-22 7 18)", fill: "white", opacity: "0.08" }), jsx("ellipse", { cx: "19", cy: "16", rx: "3.4", ry: "2.5", transform: "rotate(-22 19 16)", fill: secondaryColor }), jsx("path", { d: "M9 18V5l12-2v13", stroke: "white", strokeWidth: "1", fill: "none" })] })),
122
+ solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: MUSIC_STEMS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxs("g", { fill: primaryColor, children: [jsx("ellipse", { cx: "5.97", cy: "18", rx: "3.5", ry: "2.3", transform: "rotate(-24 5.97 18)" }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "3.5", ry: "2.3", transform: "rotate(-24 17.97 16)" })] })] })),
123
+ // the stems stop a unit higher: the square caps of `sharp` then end at the heads' edge
124
+ sharp: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M8.3 16.22V5l12-2v11.22", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxs("g", { fill: primaryColor, children: [jsx("ellipse", { cx: "5.97", cy: "18", rx: "3.5", ry: "2.3", transform: "rotate(-24 5.97 18)" }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "3.5", ry: "2.3", transform: "rotate(-24 17.97 16)" })] })] })),
125
+ outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: MUSIC_STEMS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", children: [jsx("ellipse", { cx: "5.97", cy: "18", rx: "2.5", ry: "1.3", transform: "rotate(-24 5.97 18)" }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "2.5", ry: "1.3", transform: "rotate(-24 17.97 16)" })] })] })),
126
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M8.3 5l12-2v12.22", stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none", opacity: secondaryOpacity + 0.2 }), jsx("path", { d: MUSIC_STEMS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxs("g", { fill: primaryColor, children: [jsx("ellipse", { cx: "5.97", cy: "18", rx: "3.5", ry: "2.3", transform: "rotate(-24 5.97 18)" }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "3.5", ry: "2.3", transform: "rotate(-24 17.97 16)" })] })] })),
127
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: MUSIC_STEMS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("ellipse", { cx: "5.97", cy: "18", rx: "3.5", ry: "2.3", transform: "rotate(-24 5.97 18)", fill: primaryColor }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "3.5", ry: "2.3", transform: "rotate(-24 17.97 16)", fill: secondaryColor })] })),
120
128
  },
121
129
  });
130
+ // The flap is a cut through the envelope, kept inside it: its ends meet the sides flush (the
131
+ // round caps stuck out past the corners).
122
132
  const NtdMail = /* @__PURE__ */ createIcon({
123
133
  displayName: 'NtdMail',
124
134
  paths: {
125
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: accentColor, strokeWidth: "1.5", fill: "none", opacity: accentOpacity })] })),
135
+ solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), within(uid, 'flap', jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2" }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: accentColor, strokeWidth: "1.5", fill: "none", opacity: accentOpacity }))] })),
126
136
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
127
137
  duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
128
- vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: "white", opacity: "0.1" }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" })] })),
138
+ vivid: ({ primaryColor, secondaryColor, uid }) => (jsxs(Fragment, { children: [jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: "white", opacity: "0.1" }), within(uid, 'flap', jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2" }), jsx("path", { d: "M22 6l-10 7L2 6", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }))] })),
129
139
  },
130
140
  });
131
141
  // Inbox: a tray (open box seen from the front, the dip where letters land), next to NtdMail's
@@ -139,22 +149,27 @@ const NtdInbox = /* @__PURE__ */ createIcon({
139
149
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsx("path", { d: "M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11zM4.24 12h3.23l2 3h5.06l2-3h3.23l-2.68-5.37a.5.5 0 0 0-.45-.27H7.37a.5.5 0 0 0-.45.27z", fill: primaryColor, fillRule: "evenodd" })),
140
150
  },
141
151
  });
152
+ const PHONE_HANDSET = 'M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z';
142
153
  const NtdPhone = /* @__PURE__ */ createIcon({
143
154
  displayName: 'NtdPhone',
144
155
  paths: {
145
156
  solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", fill: primaryColor })),
146
157
  outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
147
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
158
+ // Fills only, a colour per part: the ear and mouth pieces primary, the grip between them
159
+ // secondary. The handset is symmetric about (x, y) -> (24 - y, 24 - x), so the two cuts are
160
+ // mirror images, each through the corner where an end piece meets the grip.
161
+ duotone: ({ primaryColor, secondaryColor, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: PHONE_HANDSET, fill: secondaryColor }), within(uid, 'ear', jsx("polygon", { points: "0,0 13,0 13,9.5 0,10.59" }), jsx("path", { d: PHONE_HANDSET, fill: primaryColor })), within(uid, 'mouth', jsx("polygon", { points: "24,24 24,11 14.5,11 13.41,24" }), jsx("path", { d: PHONE_HANDSET, fill: primaryColor }))] })),
148
162
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", fill: primaryColor }), jsx("path", { d: "M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z", fill: "white", opacity: "0.1" })] })),
149
163
  },
150
164
  });
165
+ // The tail leaves the bubble's bottom edge 4 units in from the left (it ran down the left side).
151
166
  const NtdChat = /* @__PURE__ */ createIcon({
152
167
  displayName: 'NtdChat',
153
168
  paths: {
154
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", fill: primaryColor })),
155
- outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
156
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
157
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", fill: primaryColor }), jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z", fill: "white", opacity: "0.1" })] })),
169
+ solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: primaryColor })),
170
+ outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
171
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
172
+ vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: primaryColor }), jsx("path", { d: "M5 3h14a2 2 0 012 2v10a2 2 0 01-2 2h-8l-4 4v-4H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: "white", opacity: "0.1" })] })),
158
173
  },
159
174
  });
160
175
  /* NtdSend — the paper plane read ~20% oversized next to the rest of the set,
@@ -82,13 +82,15 @@ const NtdMenu = /* @__PURE__ */ createIcon({
82
82
  vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "5", width: "18", height: "2", rx: "1", fill: primaryColor }), jsx("rect", { x: "3", y: "5", width: "18", height: "2", rx: "1", fill: "white", opacity: "0.08" }), jsx("rect", { x: "3", y: "11", width: "18", height: "2", rx: "1", fill: secondaryColor }), jsx("rect", { x: "3", y: "17", width: "18", height: "2", rx: "1", fill: "#3B82F6" })] })),
83
83
  },
84
84
  });
85
+ // The filled cross is drawn as two strokes at twice the stroke width, like NtdCheck: it was a
86
+ // fixed outline that did not follow `strokeWidth` at all.
85
87
  const NtdClose = /* @__PURE__ */ createIcon({
86
88
  displayName: 'NtdClose',
87
89
  paths: {
88
- solid: ({ primaryColor }) => (jsx("path", { d: "M18.3 5.7a1 1 0 00-1.4 0L12 10.6 7.1 5.7a1 1 0 00-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 001.4 1.4L12 13.4l4.9 4.9a1 1 0 001.4-1.4L13.4 12l4.9-4.9a1 1 0 000-1.4z", fill: primaryColor })),
90
+ solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M18 6L6 18M6 6l12 12", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
89
91
  outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
90
92
  duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "12", cy: "12", r: "9", fill: secondaryColor, opacity: secondaryOpacity }), jsx("line", { x1: "8", y1: "8", x2: "16", y2: "16", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "16", y1: "8", x2: "8", y2: "16", stroke: primaryColor, strokeWidth: strokeWidth })] })),
91
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M18.3 5.7a1 1 0 00-1.4 0L12 10.6 7.1 5.7a1 1 0 00-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 001.4 1.4L12 13.4l4.9 4.9a1 1 0 001.4-1.4L13.4 12l4.9-4.9a1 1 0 000-1.4z", fill: primaryColor }), jsx("path", { d: "M18.3 5.7a1 1 0 00-1.4 0L12 10.6 7.1 5.7a1 1 0 00-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 001.4 1.4L12 13.4l4.9 4.9a1 1 0 001.4-1.4L13.4 12l4.9-4.9a1 1 0 000-1.4z", fill: "white", opacity: "0.1" })] })),
93
+ vivid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M18 6L6 18M6 6l12 12", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
92
94
  },
93
95
  });
94
96
  const NtdMoreHorizontal = /* @__PURE__ */ createIcon({