@nice2dev/icons 1.3.7 → 1.3.9

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 (99) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +33 -16
  3. package/dist/cjs/NiceIconPicker.js +289 -92
  4. package/dist/cjs/NiceIconStacker.js +137 -108
  5. package/dist/cjs/client.js +6 -0
  6. package/dist/cjs/createIcon.js +17 -4
  7. package/dist/cjs/iconHtml.js +122 -0
  8. package/dist/cjs/iconParts.js +24 -2
  9. package/dist/cjs/iconStack.js +76 -5
  10. package/dist/cjs/icons/accessibility.js +9 -8
  11. package/dist/cjs/icons/actions.js +38 -35
  12. package/dist/cjs/icons/ai.js +12 -11
  13. package/dist/cjs/icons/brand.js +2 -2
  14. package/dist/cjs/icons/business.js +14 -16
  15. package/dist/cjs/icons/devtech.js +17 -15
  16. package/dist/cjs/icons/ecommerce.js +7 -12
  17. package/dist/cjs/icons/education.js +14 -16
  18. package/dist/cjs/icons/files.js +46 -22
  19. package/dist/cjs/icons/fintech.js +2 -11
  20. package/dist/cjs/icons/food.js +12 -8
  21. package/dist/cjs/icons/fun.js +11 -11
  22. package/dist/cjs/icons/gaming.js +20 -13
  23. package/dist/cjs/icons/health.js +9 -12
  24. package/dist/cjs/icons/index.js +1 -0
  25. package/dist/cjs/icons/input.js +31 -21
  26. package/dist/cjs/icons/legal.js +11 -11
  27. package/dist/cjs/icons/media.js +24 -15
  28. package/dist/cjs/icons/navigation.js +16 -13
  29. package/dist/cjs/icons/omniverk.js +2 -7
  30. package/dist/cjs/icons/realestate.js +14 -14
  31. package/dist/cjs/icons/saas.js +0 -10
  32. package/dist/cjs/icons/science.js +12 -12
  33. package/dist/cjs/icons/shapes.js +20 -17
  34. package/dist/cjs/icons/smarthome.js +0 -11
  35. package/dist/cjs/icons/social.js +7 -6
  36. package/dist/cjs/icons/sports.js +5 -6
  37. package/dist/cjs/icons/sustainability.js +12 -11
  38. package/dist/cjs/icons/travel.js +9 -9
  39. package/dist/cjs/icons/ui.js +55 -31
  40. package/dist/cjs/icons/weather.js +8 -13
  41. package/dist/cjs/index.js +7 -0
  42. package/dist/cjs/nicetodev-icons.css +1 -1
  43. package/dist/cjs/resolver.js +1 -0
  44. package/dist/cjs/stacking.js +38 -11
  45. package/dist/esm/NiceIconPicker.js +292 -95
  46. package/dist/esm/NiceIconStacker.js +141 -112
  47. package/dist/esm/client.js +2 -1
  48. package/dist/esm/createIcon.js +18 -5
  49. package/dist/esm/iconHtml.js +117 -0
  50. package/dist/esm/iconParts.js +24 -3
  51. package/dist/esm/iconStack.js +74 -6
  52. package/dist/esm/icons/accessibility.js +9 -8
  53. package/dist/esm/icons/actions.js +39 -36
  54. package/dist/esm/icons/ai.js +12 -11
  55. package/dist/esm/icons/brand.js +2 -2
  56. package/dist/esm/icons/business.js +15 -17
  57. package/dist/esm/icons/devtech.js +17 -15
  58. package/dist/esm/icons/ecommerce.js +7 -12
  59. package/dist/esm/icons/education.js +14 -16
  60. package/dist/esm/icons/files.js +47 -23
  61. package/dist/esm/icons/fintech.js +2 -11
  62. package/dist/esm/icons/food.js +12 -8
  63. package/dist/esm/icons/fun.js +11 -11
  64. package/dist/esm/icons/gaming.js +21 -14
  65. package/dist/esm/icons/health.js +9 -12
  66. package/dist/esm/icons/index.js +1 -1
  67. package/dist/esm/icons/input.js +31 -21
  68. package/dist/esm/icons/legal.js +12 -12
  69. package/dist/esm/icons/media.js +25 -16
  70. package/dist/esm/icons/navigation.js +16 -13
  71. package/dist/esm/icons/omniverk.js +2 -7
  72. package/dist/esm/icons/realestate.js +15 -15
  73. package/dist/esm/icons/saas.js +0 -10
  74. package/dist/esm/icons/science.js +12 -12
  75. package/dist/esm/icons/shapes.js +20 -17
  76. package/dist/esm/icons/smarthome.js +0 -11
  77. package/dist/esm/icons/social.js +8 -7
  78. package/dist/esm/icons/sports.js +6 -7
  79. package/dist/esm/icons/sustainability.js +12 -11
  80. package/dist/esm/icons/travel.js +10 -10
  81. package/dist/esm/icons/ui.js +56 -33
  82. package/dist/esm/icons/weather.js +9 -14
  83. package/dist/esm/index.js +3 -2
  84. package/dist/esm/nicetodev-icons.css +1 -1
  85. package/dist/esm/resolver.js +1 -0
  86. package/dist/esm/stacking.js +36 -12
  87. package/dist/types/NiceIconPicker.d.ts +66 -20
  88. package/dist/types/NiceIconStacker.d.ts +30 -9
  89. package/dist/types/client.d.ts +4 -2
  90. package/dist/types/createIcon.d.ts +16 -2
  91. package/dist/types/iconHtml.d.ts +44 -0
  92. package/dist/types/iconParts.d.ts +8 -2
  93. package/dist/types/iconStack.d.ts +30 -3
  94. package/dist/types/icons/index.d.ts +1 -1
  95. package/dist/types/icons/ui.d.ts +1 -0
  96. package/dist/types/index.d.ts +4 -2
  97. package/dist/types/stacking.d.ts +25 -5
  98. package/dist/types/types.d.ts +11 -7
  99. package/package.json +2 -2
@@ -16,6 +16,74 @@ function stackParentId(layers, layer) {
16
16
  function stackChildrenOf(layers, id) {
17
17
  return layers.filter((l) => l !== layers[0] && stackParentId(layers, l) === id);
18
18
  }
19
+ /** An icon's name as people read it: the export name without `Ntd` — `NtdAlertBell` → `AlertBell`. */
20
+ function iconDisplayName(name) {
21
+ return name.replace(/^Ntd(?=[A-Z0-9])/, '');
22
+ }
23
+ /** A short id no layer of the stack has yet: `'1'`, `'2'`… (1.3.9 — it was the icon name and a timestamp). */
24
+ function nextStackLayerId(layers) {
25
+ const taken = new Set(layers.map((l) => l.id));
26
+ let n = layers.length + 1;
27
+ while (taken.has(String(n))) {
28
+ n += 1;
29
+ }
30
+ return String(n);
31
+ }
32
+ /**
33
+ * Puts an icon on the stack (1.3.9): into layer `into` (the base when absent or unknown), or as the
34
+ * base of an empty stack. Returns the new layers and the new layer's id.
35
+ */
36
+ function addStackLayer(layers, icon, into) {
37
+ const id = nextStackLayerId(layers);
38
+ const parent = layers.find((l) => l.id === into);
39
+ const layer = {
40
+ id,
41
+ icon: icon.icon,
42
+ ...(icon.variant ? { variant: icon.variant } : {}),
43
+ ...(parent && parent !== layers[0] ? { parent: parent.id } : {}),
44
+ };
45
+ return { layers: [...layers, layer], id };
46
+ }
47
+ /**
48
+ * Takes a layer off the stack (1.3.9; NiceIconStacker's own until then): what sat in it moves up
49
+ * into its parent, and a removed base hands over to its first child.
50
+ */
51
+ function removeStackLayer(layers, id) {
52
+ const base = layers[0];
53
+ if (!base) {
54
+ return [];
55
+ }
56
+ if (id !== base.id) {
57
+ const gone = layers.find((l) => l.id === id);
58
+ const up = gone ? stackParentId(layers, gone) : undefined;
59
+ return layers
60
+ .filter((l) => l.id !== id)
61
+ .map((l) => (l.parent === id ? { ...l, parent: up === base.id ? undefined : up } : l));
62
+ }
63
+ const [heir, ...siblings] = stackChildrenOf(layers, base.id);
64
+ if (!heir) {
65
+ return [];
66
+ }
67
+ const newBase = {
68
+ ...heir,
69
+ parent: undefined,
70
+ align: undefined,
71
+ size: undefined,
72
+ rotation: undefined,
73
+ offsetX: undefined,
74
+ offsetY: undefined,
75
+ };
76
+ return [
77
+ newBase,
78
+ ...layers
79
+ .filter((l) => l.id !== base.id && l.id !== heir.id)
80
+ .map((l) => siblings.includes(l)
81
+ ? { ...l, parent: heir.id }
82
+ : l.parent === heir.id
83
+ ? { ...l, parent: undefined }
84
+ : l),
85
+ ];
86
+ }
19
87
  const COLOR_PROPS = ['primaryColor', 'secondaryColor', 'accentColor', 'textColor'];
20
88
  /** The stack as JSX: every layer wrapping the layers that sit in it, text innermost. */
21
89
  function niceIconStackCode(layers) {
@@ -25,11 +93,11 @@ function niceIconStackCode(layers) {
25
93
  }
26
94
  const bound = layers.filter((l) => isValidTextBinding(l.textBinding));
27
95
  const write = (layer, parent, indent) => {
28
- var _a;
29
96
  const attrs = [
30
- parent ? `stackAlign="${(_a = layer.align) !== null && _a !== void 0 ? _a : 'center'}"` : '',
97
+ // the parent's own spot is the default (1.3.8), so only another position is written
98
+ parent && layer.align && layer.align !== 'perfect' ? `stackAlign="${layer.align}"` : '',
31
99
  parent && layer.size !== undefined ? `stackSize={${layer.size}}` : '',
32
- parent && layer.rotation ? `stackRotation={${layer.rotation}}` : '',
100
+ parent && layer.rotation !== undefined ? `stackRotation={${layer.rotation}}` : '',
33
101
  parent && layer.offsetX ? `stackOffsetX={${layer.offsetX}}` : '',
34
102
  parent && layer.offsetY ? `stackOffsetY={${layer.offsetY}}` : '',
35
103
  layer.variant && layer.variant !== (parent === null || parent === void 0 ? void 0 : parent.variant) ? `variant="${layer.variant}"` : '',
@@ -61,7 +129,7 @@ function niceIconStackCode(layers) {
61
129
  function renderIconStack(layers, icons, { baseProps, values } = {}) {
62
130
  const resolve = (name) => (typeof icons === 'function' ? icons(name) : icons[name]);
63
131
  const draw = (layer, parent) => {
64
- var _a, _b;
132
+ var _a;
65
133
  const Icon = resolve(layer.icon);
66
134
  if (!Icon) {
67
135
  return null;
@@ -87,7 +155,7 @@ function renderIconStack(layers, icons, { baseProps, values } = {}) {
87
155
  inner,
88
156
  text));
89
157
  }
90
- return (React.createElement(Icon, { ...own, key: layer.id, stackAlign: (_b = layer.align) !== null && _b !== void 0 ? _b : 'center', stackSize: layer.size, stackRotation: layer.rotation, stackOffsetX: layer.offsetX, stackOffsetY: layer.offsetY, variant: layer.variant !== parent.variant ? layer.variant : undefined },
158
+ return (React.createElement(Icon, { ...own, key: layer.id, stackAlign: layer.align, stackSize: layer.size, stackRotation: layer.rotation, stackOffsetX: layer.offsetX, stackOffsetY: layer.offsetY, variant: layer.variant !== parent.variant ? layer.variant : undefined },
91
159
  inner,
92
160
  text));
93
161
  };
@@ -106,8 +174,11 @@ if (process.env.NODE_ENV !== 'production') {
106
174
  }
107
175
 
108
176
  exports.NiceIconStack = NiceIconStack;
177
+ exports.addStackLayer = addStackLayer;
178
+ exports.iconDisplayName = iconDisplayName;
109
179
  exports.isValidTextBinding = isValidTextBinding;
110
180
  exports.niceIconStackCode = niceIconStackCode;
181
+ exports.removeStackLayer = removeStackLayer;
111
182
  exports.renderIconStack = renderIconStack;
112
183
  exports.stackChildrenOf = stackChildrenOf;
113
184
  exports.stackParentId = stackParentId;
@@ -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
  UNIVERSAL ACCESS
@@ -49,7 +50,7 @@ const NtdDeaf = /* @__PURE__ */ createIcon.createIcon({
49
50
  paths: {
50
51
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M10 5a5 5 0 015 5c0 2-1 3-2 4s-2 2-2 4v2", stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M7 8a3 3 0 013-3", stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M4 4l16 16", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" })] })),
51
52
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M10 5a5 5 0 015 5c0 2-1 3-2 4s-2 2-2 4v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M7 8a3 3 0 013-3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M4 4l16 16", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
52
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "10", r: "6", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M10 5a5 5 0 015 5c0 2-1 3-2 4s-2 2-2 4v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M7 8a3 3 0 013-3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M4 4l16 16", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
53
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "10", r: "6", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M10 5a5 5 0 015 5c0 2-1 3-2 4s-2 2-2 4v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M7 8a3 3 0 013-3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M4 4l16 16", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
53
54
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M10 5a5 5 0 015 5c0 2-1 3-2 4s-2 2-2 4v2", stroke: primaryColor, strokeWidth: "2", fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M7 8a3 3 0 013-3", stroke: secondaryColor, strokeWidth: "1.8", fill: "none", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M4 4l16 16", stroke: "#3B82F6", strokeWidth: "1.5", strokeLinecap: "round" })] })),
54
55
  },
55
56
  });
@@ -58,7 +59,7 @@ const NtdSignLanguage = /* @__PURE__ */ createIcon.createIcon({
58
59
  paths: {
59
60
  solid: ({ primaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", fill: primaryColor }) })),
60
61
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }) })),
61
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" })] })),
62
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" })] }))),
62
63
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M8 13V7a2 2 0 014 0v2M12 9V6a2 2 0 014 0v3M16 9V7a2 2 0 014 0v6c0 4-3 7-7 7h-1c-3 0-6-2-6-5v-2a2 2 0 014 0v1", fill: "white", opacity: "0.1" })] })),
63
64
  },
64
65
  });
@@ -76,7 +77,7 @@ const NtdAudioDescription = /* @__PURE__ */ createIcon.createIcon({
76
77
  paths: {
77
78
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsxRuntime.jsx("text", { x: "7", y: "15", fill: "white", fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "AD" })] })),
78
79
  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("text", { x: "7", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "AD" })] })),
79
- 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("text", { x: "7", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "AD" })] })),
80
+ duotone: iconParts.swapDuotone(({ 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("text", { x: "7", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "AD" })] }))),
80
81
  vivid: ({ primaryColor, secondaryColor: _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.1" })] })),
81
82
  },
82
83
  });
@@ -85,7 +86,7 @@ const NtdClosedCaptions = /* @__PURE__ */ createIcon.createIcon({
85
86
  paths: {
86
87
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", fill: primaryColor }), jsxRuntime.jsx("text", { x: "6", y: "15", fill: "white", fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "CC" })] })),
87
88
  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("text", { x: "6", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "CC" })] })),
88
- 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("text", { x: "6", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "CC" })] })),
89
+ duotone: iconParts.swapDuotone(({ 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("text", { x: "6", y: "15", fill: primaryColor, fontSize: "8", fontWeight: "bold", fontFamily: "system-ui", children: "CC" })] }))),
89
90
  vivid: ({ primaryColor, secondaryColor: _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.1" })] })),
90
91
  },
91
92
  });
@@ -97,7 +98,7 @@ const NtdDyslexia = /* @__PURE__ */ createIcon.createIcon({
97
98
  paths: {
98
99
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M8 7h8M8 11h6M8 15h4", stroke: "white", strokeWidth: "2", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M16 15l-2 2M14 15l2 2", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" })] })),
99
100
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 7h8M8 11h6M8 15h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M16 15l-2 2M14 15l2 2", stroke: primaryColor, strokeWidth: "1.5", strokeLinecap: "round" })] })),
100
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 7h8M8 11h6M8 15h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M16 15l-2 2M14 15l2 2", stroke: primaryColor, strokeWidth: "1.5", strokeLinecap: "round" })] })),
101
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 7h8M8 11h6M8 15h4", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M16 15l-2 2M14 15l2 2", stroke: primaryColor, strokeWidth: "1.5", strokeLinecap: "round" })] }))),
101
102
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M8 7h8M8 11h6M8 15h4", stroke: "white", strokeWidth: "1.8", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M16 15l-2 2M14 15l2 2", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" })] })),
102
103
  },
103
104
  });
@@ -106,7 +107,7 @@ const NtdEasyRead = /* @__PURE__ */ createIcon.createIcon({
106
107
  paths: {
107
108
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M6 8h5v5H6zM13 8h5M13 11h4M6 16h12M6 19h8", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" })] })),
108
109
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "6", y: "8", width: "5", height: "5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M13 8h5M13 11h4M6 16h12M6 19h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
109
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "6", y: "8", width: "5", height: "5", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M13 8h5M13 11h4M6 16h12M6 19h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] })),
110
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "6", y: "8", width: "5", height: "5", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M13 8h5M13 11h4M6 16h12M6 19h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" })] }))),
110
111
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "2", width: "20", height: "20", rx: "2", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M6 8h5v5H6zM13 8h5M13 11h4M6 16h12M6 19h8", stroke: "white", strokeWidth: "1.8", strokeLinecap: "round" })] })),
111
112
  },
112
113
  });
@@ -118,7 +119,7 @@ const NtdScreenReader = /* @__PURE__ */ createIcon.createIcon({
118
119
  paths: {
119
120
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M8 18h8M10 18v2M14 18v2M8 20h8", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M8 7h2M8 10h4M8 13h6", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "16", cy: "7", r: "1.5", fill: "white" }), jsxRuntime.jsx("path", { d: "M14 7c0-1.5 1-2.5 2-2.5s2 1 2 2.5", stroke: "white", strokeWidth: "1", fill: "none" })] })),
120
121
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 18h8M10 18v2M14 18v2M8 20h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M8 7h2M8 10h4M8 13h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "16", cy: "7", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M14 7c0-1.5 1-2.5 2-2.5s2 1 2 2.5", stroke: primaryColor, strokeWidth: "1", fill: "none" })] })),
121
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 18h8M10 18v2M14 18v2M8 20h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M8 7h2M8 10h4M8 13h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "16", cy: "7", r: "1.5", fill: primaryColor })] })),
122
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M8 18h8M10 18v2M14 18v2M8 20h8", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M8 7h2M8 10h4M8 13h6", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "16", cy: "7", r: "1.5", fill: primaryColor })] }))),
122
123
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "14", rx: "2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "16", cy: "7", r: "1.5", fill: "white" }), jsxRuntime.jsx("path", { d: "M8 18h8M10 18v2M14 18v2M8 20h8", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M8 7h2M8 10h4M8 13h6", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }), jsxRuntime.jsx("path", { d: "M14 7c0-1.5 1-2.5 2-2.5s2 1 2 2.5", stroke: "white", strokeWidth: "1", fill: "none" })] })),
123
124
  },
124
125
  });
@@ -136,7 +137,7 @@ const NtdAssistiveTech = /* @__PURE__ */ createIcon.createIcon({
136
137
  paths: {
137
138
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M12 6v2M12 16v2M6 12h2M16 12h2", stroke: "white", strokeWidth: "2", strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: "white" })] })),
138
139
  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 6v2M12 16v2M6 12h2M16 12h2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
139
- 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 6v2M12 16v2M6 12h2M16 12h2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] })),
140
+ duotone: iconParts.swapDuotone(({ 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 6v2M12 16v2M6 12h2M16 12h2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round" }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] }))),
140
141
  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("circle", { cx: "12", cy: "12", r: "3", fill: "white" }), jsxRuntime.jsx("path", { d: "M12 6v2M12 16v2M6 12h2M16 12h2", stroke: "white", strokeWidth: "1", strokeLinecap: "round" })] })),
141
142
  },
142
143
  });
@@ -10,7 +10,8 @@ const LENS_HANDLE = 'M21 21l-4.35-4.35';
10
10
  /**
11
11
  * The magnifier of NtdSearch, NtdZoomIn and NtdZoomOut, so the three share one lens and handle;
12
12
  * `glyph` is drawn inside the lens. A line glyph: twice the stroke width in every variant but
13
- * `outline`. Duotone fills the lens in secondary, vivid draws the handle and the glyph in it.
13
+ * `outline`. Duotone and vivid draw the handle and the glyph in secondary; duotone fills the lens
14
+ * primary under them (1.3.8: the larger area primary — it was a secondary tint under primary lines).
14
15
  */
15
16
  function lensIcon(displayName, glyph = '') {
16
17
  return createIcon.createIcon({
@@ -18,7 +19,7 @@ function lensIcon(displayName, glyph = '') {
18
19
  paths: {
19
20
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
20
21
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
21
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: LENS, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
22
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: LENS, fill: primaryColor, stroke: primaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: `${LENS_HANDLE}${glyph}`, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
22
23
  vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: LENS, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: `${LENS_HANDLE}${glyph}`, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
23
24
  },
24
25
  });
@@ -32,7 +33,6 @@ const NtdEdit = /* @__PURE__ */ createIcon.createIcon({
32
33
  // round caps stuck out of both sides).
33
34
  solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: EDIT_PENCIL, fill: primaryColor }), iconParts.within(uid, 'band', jsxRuntime.jsx("path", { d: EDIT_PENCIL }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }))] })),
34
35
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: primaryColor, strokeWidth: strokeWidth })] })),
35
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: primaryColor, strokeWidth: strokeWidth })] })),
36
36
  vivid: ({ primaryColor, secondaryColor, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: EDIT_PENCIL, fill: primaryColor }), jsxRuntime.jsx("path", { d: EDIT_PENCIL, fill: "white", opacity: "0.1" }), iconParts.within(uid, 'band', jsxRuntime.jsx("path", { d: EDIT_PENCIL }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: secondaryColor, strokeWidth: "1.8" }))] })),
37
37
  },
38
38
  });
@@ -47,24 +47,22 @@ const NtdEditDetail = /* @__PURE__ */ createIcon.createIcon({
47
47
  paths: {
48
48
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: EDIT_DETAIL_FRAME, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL, fill: primaryColor }), iconParts.within(uid, 'band', jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_BAND, stroke: accentColor, strokeWidth: "1.1", opacity: accentOpacity }))] })),
49
49
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: EDIT_DETAIL_FRAME, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
50
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_FRAME, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
51
50
  vivid: ({ primaryColor, secondaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: EDIT_DETAIL_FRAME, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL, fill: primaryColor }), iconParts.within(uid, 'band', jsxRuntime.jsx("path", { d: EDIT_DETAIL_PENCIL }), jsxRuntime.jsx("path", { d: EDIT_DETAIL_BAND, stroke: secondaryColor, strokeWidth: "1.3" }))] })),
52
51
  },
53
52
  });
54
53
  // NtdTrash: the lid overhangs the bin by 1 a side (16 across; it was 18) and the handle is 6 by 3
55
- // (it was 8 by 4). Vivid: the lid and the handle secondary, the grooves accent (they were a fixed
56
- // #3B82F6).
57
- const TRASH_LID = 'M4 6h16';
54
+ // (it was 8 by 4). The lid is flat with its ends bent down, as round as the bin's bottom corners
55
+ // (r 2). Vivid: the lid and the handle secondary, the grooves accent (they were a fixed #3B82F6).
56
+ const TRASH_LID = 'M4 8a2 2 0 012-2h12a2 2 0 012 2';
58
57
  const TRASH_HANDLE = 'M9 6V4.5a1.5 1.5 0 011.5-1.5h3a1.5 1.5 0 011.5 1.5V6';
59
58
  const TRASH_BIN = 'M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14H5z';
60
59
  const TRASH_GROOVES = 'M10 10.5v7M14 10.5v7';
61
60
  const NtdTrash = /* @__PURE__ */ createIcon.createIcon({
62
61
  displayName: 'NtdTrash',
63
62
  paths: {
64
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_LID, stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_BIN, fill: primaryColor }), jsxRuntime.jsx("line", { x1: "10", y1: "10.5", x2: "10", y2: "17.5", stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "14", y1: "10.5", x2: "14", y2: "17.5", stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity })] })),
65
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_LID, stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_GROOVES, stroke: primaryColor, strokeWidth: strokeWidth })] })),
66
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_BIN, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: TRASH_LID, stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_GROOVES, stroke: primaryColor, strokeWidth: strokeWidth })] })),
67
- vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_BIN, fill: primaryColor }), jsxRuntime.jsx("path", { d: TRASH_LID, stroke: secondaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_GROOVES, stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity })] })),
63
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_LID, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_BIN, fill: primaryColor }), jsxRuntime.jsx("line", { x1: "10", y1: "10.5", x2: "10", y2: "17.5", stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "14", y1: "10.5", x2: "14", y2: "17.5", stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity })] })),
64
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_LID, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_GROOVES, stroke: primaryColor, strokeWidth: strokeWidth })] })),
65
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRASH_BIN, fill: primaryColor }), jsxRuntime.jsx("path", { d: TRASH_LID, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_HANDLE, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: TRASH_GROOVES, stroke: accentColor, strokeWidth: strokeWidth * 0.7, opacity: accentOpacity })] })),
68
66
  },
69
67
  });
70
68
  // NtdSave: a 3.5" floppy — the clipped corner, a wide metal shutter at the top edge with its
@@ -96,8 +94,9 @@ const NtdDownload = /* @__PURE__ */ createIcon.createIcon({
96
94
  paths: {
97
95
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
98
96
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth })),
99
- // the arrow primary, the tray secondary — a colour split, no filled tray
100
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
97
+ // the tray primary, the arrow secondary — a colour split, no filled tray (swapped in 1.3.8:
98
+ // the larger part primary)
99
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] }))),
101
100
  vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
102
101
  },
103
102
  });
@@ -106,8 +105,8 @@ const NtdUpload = /* @__PURE__ */ createIcon.createIcon({
106
105
  paths: {
107
106
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
108
107
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth })),
109
- // as NtdDownload: the arrow primary, the tray secondary
110
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
108
+ // as NtdDownload: the tray primary, the arrow secondary
109
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] }))),
111
110
  vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: "M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
112
111
  },
113
112
  });
@@ -162,10 +161,12 @@ const NtdCopy = /* @__PURE__ */ createIcon.createIcon({
162
161
  const CLIPBOARD_TEXT = 'M8 11h8M8 14.5h5';
163
162
  const NtdClipboard = /* @__PURE__ */ createIcon.createIcon({
164
163
  displayName: 'NtdClipboard',
164
+ perfectStackX: 12,
165
+ perfectStackY: 12.5,
166
+ perfectStackSize: 0.5,
165
167
  paths: {
166
168
  solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: primaryColor, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsxRuntime.jsx("path", { d: CLIPBOARD_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
167
169
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: CLIPBOARD_TEXT, stroke: primaryColor, strokeWidth: strokeWidth })] })),
168
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "18", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: CLIPBOARD_TEXT, stroke: primaryColor, strokeWidth: strokeWidth })] })),
169
170
  vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: secondaryColor, stroke: secondaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("path", { d: CLIPBOARD_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
170
171
  },
171
172
  });
@@ -187,7 +188,7 @@ const NtdMinus = /* @__PURE__ */ createIcon.createIcon({
187
188
  paths: {
188
189
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
189
190
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth })),
190
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M8 12h8", stroke: primaryColor, strokeWidth: strokeWidth })] })),
191
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M8 12h8", stroke: primaryColor, strokeWidth: strokeWidth })] }))),
191
192
  vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 }) })),
192
193
  },
193
194
  });
@@ -205,7 +206,7 @@ const NtdFilter = /* @__PURE__ */ createIcon.createIcon({
205
206
  paths: {
206
207
  solid: ({ primaryColor }) => jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", fill: primaryColor }),
207
208
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
208
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
209
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] }))),
209
210
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M21 4H3l7 8.5v4.5l4 2.5v-7L21 4z", fill: "white", opacity: "0.1" })] })),
210
211
  },
211
212
  });
@@ -214,7 +215,7 @@ const NtdSort = /* @__PURE__ */ createIcon.createIcon({
214
215
  paths: {
215
216
  solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "5", width: "16", height: "2", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "11", width: "11", height: "2", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "17", width: "6", height: "2", rx: "1", fill: primaryColor })] })),
216
217
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "4", y1: "6", x2: "20", y2: "6", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "4", y1: "12", x2: "15", y2: "12", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "4", y1: "18", x2: "10", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
217
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "4", y1: "6", x2: "20", y2: "6", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "4", y1: "12", x2: "15", y2: "12", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.3 }), jsxRuntime.jsx("line", { x1: "4", y1: "18", x2: "10", y2: "18", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity })] })),
218
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "4", y1: "6", x2: "20", y2: "6", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "4", y1: "12", x2: "15", y2: "12", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.3 }), jsxRuntime.jsx("line", { x1: "4", y1: "18", x2: "10", y2: "18", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity })] }))),
218
219
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "4", y: "5", width: "16", height: "2", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "5", width: "16", height: "2", rx: "1", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "4", y: "11", width: "11", height: "2", rx: "1", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "4", y: "17", width: "6", height: "2", rx: "1", fill: "#3B82F6" })] })),
219
220
  },
220
221
  });
@@ -223,7 +224,6 @@ const NtdPrint = /* @__PURE__ */ createIcon.createIcon({
223
224
  paths: {
224
225
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 9h16a2 2 0 012 2v5a2 2 0 01-2 2H4a2 2 0 01-2-2v-5a2 2 0 012-2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M6 9V3h12v6", stroke: primaryColor, strokeWidth: strokeWidth, fill: accentColor, opacity: accentOpacity * 0.5 }), jsxRuntime.jsx("rect", { x: "6", y: "15", width: "12", height: "7", rx: "1", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "9", y1: "18", x2: "15", y2: "18", stroke: primaryColor, strokeWidth: "1", opacity: "0.15" })] })),
225
226
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M6 9V3h12v6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M6 18H4a2 2 0 01-2-2v-5a2 2 0 012-2h16a2 2 0 012 2v5a2 2 0 01-2 2h-2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "6", y: "15", width: "12", height: "7", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
226
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "9", width: "20", height: "9", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M6 9V3h12v6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M6 18H4a2 2 0 01-2-2v-5a2 2 0 012-2h16a2 2 0 012 2v5a2 2 0 01-2 2h-2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "6", y: "15", width: "12", height: "7", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
227
227
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 9h16a2 2 0 012 2v5a2 2 0 01-2 2H4a2 2 0 01-2-2v-5a2 2 0 012-2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M4 9h16a2 2 0 012 2v5a2 2 0 01-2 2H4a2 2 0 01-2-2v-5a2 2 0 012-2z", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("path", { d: "M6 9V3h12v6", stroke: secondaryColor, strokeWidth: "2", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "6", y: "15", width: "12", height: "7", rx: "1", fill: "#3B82F6" }), jsxRuntime.jsx("line", { x1: "9", y1: "18", x2: "15", y2: "18", stroke: "white", strokeWidth: "1", opacity: "0.35" })] })),
228
228
  },
229
229
  });
@@ -243,11 +243,12 @@ const NtdUndo = /* @__PURE__ */ createIcon.createIcon({
243
243
  paths: {
244
244
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
245
245
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
246
- // Two-tone by PART, not by a backing blob: arrowhead in primary, tail in
247
- // secondary, both at full strength. (The old version put a secondary disc
246
+ // Two-tone by PART, not by a backing blob: the tail in primary, the arrowhead
247
+ // in secondary (swapped in 1.3.8: the larger part primary), both at full
248
+ // strength. (The old version put a secondary disc
248
249
  // behind the curve, which read as "a ball in the middle"; a washed-out tail
249
250
  // would likewise miss the point — this is a colour split, not an underlay.)
250
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
251
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] }))),
251
252
  vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
252
253
  },
253
254
  });
@@ -256,8 +257,8 @@ const NtdRedo = /* @__PURE__ */ createIcon.createIcon({
256
257
  paths: {
257
258
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
258
259
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
259
- // Mirror of NtdUndo: arrowhead primary, tail secondary — no backing disc.
260
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
260
+ // Mirror of NtdUndo: tail primary, arrowhead secondary — no backing disc.
261
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] }))),
261
262
  vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
262
263
  },
263
264
  });
@@ -278,8 +279,8 @@ const NtdLink = /* @__PURE__ */ createIcon.createIcon({
278
279
  paths: {
279
280
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
280
281
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
281
- // one ring per colour: the right link primary, the left one secondary
282
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
282
+ // one ring per colour: the left link primary, the right one secondary (swapped in 1.3.8)
283
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] }))),
283
284
  vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }) })),
284
285
  },
285
286
  });
@@ -297,20 +298,21 @@ const NtdSettings = /* @__PURE__ */ createIcon.createIcon({
297
298
  solid: ({ primaryColor }) => (jsxRuntime.jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })),
298
299
  rounded: ({ primaryColor }) => (jsxRuntime.jsx("path", { d: `${GEAR_ROUND}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })),
299
300
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${GEAR}M12 9a3 3 0 100 6 3 3 0 100-6z`, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" })),
300
- // fills only: the gear secondary, its hub primary
301
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: `${GEAR_HUB}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })] })),
301
+ // fills only: the gear primary, its hub secondary (swapped in 1.3.8: the larger part primary)
302
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: `${GEAR_HUB}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })] }))),
302
303
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor }), jsxRuntime.jsx("path", { d: `${GEAR_HUB}${GEAR_HOLE}`, fillRule: "evenodd", fill: secondaryColor })] })),
303
304
  },
304
305
  });
305
306
  // NtdLogIn / NtdLogOut: a line glyph, twice the stroke width in every variant but `outline`. The
306
307
  // shaft stops 2 short of the arrowhead's point, so the square caps of `sharp` stay inside it.
307
- // Duotone and vivid split it like NtdDownload: the arrow primary, the door frame secondary.
308
+ // Vivid splits it like NtdDownload: the arrow primary, the door frame secondary; duotone the other
309
+ // way round, the larger frame primary (1.3.8).
308
310
  const NtdLogIn = /* @__PURE__ */ createIcon.createIcon({
309
311
  displayName: 'NtdLogIn',
310
312
  paths: {
311
313
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
312
314
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4M9 7l5 5-5 5M14 12H3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
313
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
315
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] }))),
314
316
  vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
315
317
  },
316
318
  });
@@ -319,16 +321,18 @@ const NtdLogOut = /* @__PURE__ */ createIcon.createIcon({
319
321
  paths: {
320
322
  solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
321
323
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M15 7l5 5-5 5M20 12H9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
322
- duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
324
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] }))),
323
325
  vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsxRuntime.jsx("path", { d: "M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
324
326
  },
325
327
  });
326
328
  const NtdLock = /* @__PURE__ */ createIcon.createIcon({
327
329
  displayName: 'NtdLock',
330
+ perfectStackX: 12,
331
+ perfectStackY: 16.5,
332
+ perfectStackSize: 0.35,
328
333
  paths: {
329
334
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0110 0v4", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: accentColor, opacity: accentOpacity })] })),
330
335
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0110 0v4", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: primaryColor })] })),
331
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0110 0v4", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: primaryColor })] })),
332
336
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: "#3B82F6" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0110 0v4", stroke: "white", strokeWidth: "1" })] })),
333
337
  },
334
338
  });
@@ -337,7 +341,6 @@ const NtdUnlock = /* @__PURE__ */ createIcon.createIcon({
337
341
  paths: {
338
342
  solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 019.9-1", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: accentColor, opacity: accentOpacity })] })),
339
343
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 019.9-1", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: primaryColor })] })),
340
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 019.9-1", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: primaryColor })] })),
341
344
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2.5", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "12", cy: "15.5", r: "1.5", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "11.25", y: "16.5", width: "1.5", height: "2", rx: "0.5", fill: "#3B82F6" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 019.9-1", stroke: "white", strokeWidth: "1" })] })),
342
345
  },
343
346
  });
@@ -357,7 +360,7 @@ const NtdUngroup = /* @__PURE__ */ createIcon.createIcon({
357
360
  paths: {
358
361
  solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1", fill: primaryColor })] })),
359
362
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M3 3h8v8H3zM13 13h8v8h-8z", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" })),
360
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "8", height: "8", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "13", y: "13", width: "8", height: "8", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M3 3h8v8H3zM13 13h8v8h-8z", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" })] })),
363
+ duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "8", height: "8", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "13", y: "13", width: "8", height: "8", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M3 3h8v8H3zM13 13h8v8h-8z", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" })] }))),
361
364
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1", fill: "white", opacity: "0.1" })] })),
362
365
  },
363
366
  });