@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
@@ -85,7 +85,11 @@ function renderGradientDef(id, preset, type, angle, animation) {
85
85
  }
86
86
  /* ── 3D filter helper ───────────────────────────────── */
87
87
  function render3dFilterDef(filterId) {
88
- return (jsxRuntime.jsxs("filter", { id: filterId, x: "-20%", y: "-20%", width: "140%", height: "140%", children: [jsxRuntime.jsx("feDropShadow", { dx: "0", dy: "1.5", stdDeviation: "1", floodOpacity: "0.35" }), jsxRuntime.jsxs("feComponentTransfer", { in: "SourceGraphic", result: "highlight", children: [jsxRuntime.jsx("feFuncR", { type: "linear", slope: "1.2", intercept: "0.1" }), jsxRuntime.jsx("feFuncG", { type: "linear", slope: "1.2", intercept: "0.1" }), jsxRuntime.jsx("feFuncB", { type: "linear", slope: "1.2", intercept: "0.1" })] }), jsxRuntime.jsx("feComposite", { operator: "in", in: "highlight", in2: "SourceGraphic", result: "highlightMask" }), jsxRuntime.jsx("feMerge", { children: jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" }) })] }));
88
+ return (
89
+ // The region is the icon's box plus a margin for the shadow, not a share of the shape's
90
+ // bounding box: a lone horizontal or vertical line (NtdMinus) has a zero-height box, and a
91
+ // filter region of 140% of zero rendered nothing.
92
+ jsxRuntime.jsxs("filter", { id: filterId, filterUnits: "userSpaceOnUse", x: "-4", y: "-4", width: "32", height: "32", children: [jsxRuntime.jsx("feDropShadow", { dx: "0", dy: "1.5", stdDeviation: "1", floodOpacity: "0.35" }), jsxRuntime.jsxs("feComponentTransfer", { in: "SourceGraphic", result: "highlight", children: [jsxRuntime.jsx("feFuncR", { type: "linear", slope: "1.2", intercept: "0.1" }), jsxRuntime.jsx("feFuncG", { type: "linear", slope: "1.2", intercept: "0.1" }), jsxRuntime.jsx("feFuncB", { type: "linear", slope: "1.2", intercept: "0.1" })] }), jsxRuntime.jsx("feComposite", { operator: "in", in: "highlight", in2: "SourceGraphic", result: "highlightMask" }), jsxRuntime.jsx("feMerge", { children: jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" }) })] }));
89
93
  }
90
94
  /* ── Cutout shape helper ──────────────────────────── */
91
95
  function renderCutoutShape(shape, fill, maskId) {
@@ -116,6 +120,8 @@ function createIcon(options) {
116
120
  var _a, _b, _c, _d, _e, _f, _g;
117
121
  const resolvedSize = typeof size === 'number' ? size : ((_a = types.SIZE_MAP[size]) !== null && _a !== void 0 ? _a : 24);
118
122
  const gradId = React.useId();
123
+ // the prefix of the ids of the clip paths the renderers draw (IconRenderProps.uid)
124
+ const uid = React.useId();
119
125
  const center = { x: 12, y: 12 }; // Default center for 24x24 viewBox
120
126
  // Use dark/light mode detection when both colors are specified
121
127
  const colorScheme = useColorScheme();
@@ -144,6 +150,7 @@ function createIcon(options) {
144
150
  strokeWidth: effectiveStrokeWidth,
145
151
  strokeLinecap,
146
152
  strokeLinejoin,
153
+ uid,
147
154
  };
148
155
  // Resolve renderer with fallback chain. `wireframe` has no authored layer
149
156
  // at all — it is a mechanical re-draw of the full `solid` construction, so
@@ -221,10 +228,11 @@ function createIcon(options) {
221
228
  variant: 'solid',
222
229
  primaryColor: 'black',
223
230
  secondaryColor: 'black',
224
- accentColor: 'black',
231
+ accentColor: 'white',
225
232
  primaryOpacity: 1,
226
233
  secondaryOpacity: 1,
227
234
  accentOpacity: 1,
235
+ uid: `${uid}m`,
228
236
  }) })] }) })), smilAnimation ? (needsSmilScaleWrapper ? (jsxRuntime.jsxs("g", { transform: `translate(${center.x}, ${center.y})`, filter: is3d ? `url(#${filterId})` : undefined, children: [jsxRuntime.jsx("g", { transform: `translate(-${center.x}, -${center.y})`, children: iconContent }), smilAnimationElements] })) : (jsxRuntime.jsxs("g", { filter: is3d ? `url(#${filterId})` : undefined, children: [iconContent, smilAnimationElements] }))) : is3d ? (jsxRuntime.jsx("g", { filter: `url(#${filterId})`, children: iconContent })) : (iconContent)] }));
229
237
  });
230
238
  Icon.displayName = displayName;
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var createIcon = require('./createIcon.js');
5
+
6
+ /**
7
+ * `content` drawn only inside `shape` — for accent lines that read as a cut through a shape (a
8
+ * pencil's band, a calendar's header line, an envelope's flap): clipped, they meet the shape's
9
+ * edges flush in every variant, where their round caps used to stick out of it (and `sharp` /
10
+ * `rounded` re-cap every stroke, so caps alone cannot do it).
11
+ *
12
+ * `uid` is the icon's `IconRenderProps.uid`; `name` tells the clips of one icon apart. Without a
13
+ * `uid` — a renderer called outside createIcon — the content is drawn as it is.
14
+ */
15
+ function within(uid, name, shape, content) {
16
+ if (!uid) {
17
+ return content;
18
+ }
19
+ const id = `${uid}${name}`;
20
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("clipPath", { id: id, children: shape }), jsxRuntime.jsx("g", { clipPath: `url(#${id})`, children: content })] }));
21
+ }
22
+ /** The page of every paper icon: 16 × 20, its top-right corner folded over 8. */
23
+ const PAPER = 'M12 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V10z';
24
+ const PAPER_FOLD = 'M12 2v6a2 2 0 002 2h6z';
25
+ const PAPER_FOLD_LINE = 'M12 2v8h8';
26
+ const PAPER_SHARP = 'M12 2H4v20h16V10z';
27
+ const PAPER_FOLD_SHARP = 'M12 2v8h8z';
28
+ /**
29
+ * A paper icon — NtdFile, and every document drawn on the same page (NtdFileText, NtdInvoice,
30
+ * NtdContract, …), so their pages and folds match. The fold is secondary when the page is filled;
31
+ * `text` is the document's writing, a path of strokes kept below the fold (y ≥ 11, x 7.5–16.5),
32
+ * drawn in the accent colour on a filled page and in primary on a stroked one.
33
+ */
34
+ function paperIcon(displayName, text = '') {
35
+ return createIcon.createIcon({
36
+ displayName,
37
+ paths: {
38
+ solid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PAPER, fill: primaryColor }), jsxRuntime.jsx("path", { d: PAPER_FOLD, fill: secondaryColor }), text && (jsxRuntime.jsx("path", { d: text, stroke: accentColor, strokeOpacity: accentOpacity, strokeWidth: "1.5", strokeLinecap: "round", fill: "none" }))] })),
39
+ // square at every corner, the fold included — the derived `sharp` keeps a path's arcs round
40
+ sharp: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PAPER_SHARP, fill: primaryColor }), jsxRuntime.jsx("path", { d: PAPER_FOLD_SHARP, fill: secondaryColor }), text && (jsxRuntime.jsx("path", { d: text, stroke: accentColor, strokeOpacity: accentOpacity, strokeWidth: "1.5", fill: "none" }))] })),
41
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${PAPER}${PAPER_FOLD_LINE}${text}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
42
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PAPER, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: PAPER_FOLD_SHARP, fill: primaryColor, opacity: secondaryOpacity + 0.1 }), jsxRuntime.jsx("path", { d: `${PAPER}${PAPER_FOLD_LINE}${text}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
43
+ vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PAPER, fill: primaryColor }), jsxRuntime.jsx("path", { d: PAPER, fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: PAPER_FOLD, fill: secondaryColor }), text && (jsxRuntime.jsx("path", { d: text, stroke: "white", strokeOpacity: "0.9", strokeWidth: "1.5", strokeLinecap: "round", fill: "none" }))] })),
44
+ },
45
+ });
46
+ }
47
+
48
+ exports.paperIcon = paperIcon;
49
+ exports.within = within;
@@ -15,13 +15,21 @@ const NtdAccessibility = /* @__PURE__ */ createIcon.createIcon({
15
15
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("path", { d: "M12 8c-4 0-6 1-6 2v2h3v8h2v-5h2v5h2v-8h3v-2c0-1-2-2-6-2z", fill: secondaryColor })] })),
16
16
  },
17
17
  });
18
+ // NtdWheelchair: the rider faces right, leaning back a little (it faced left and sat bolt
19
+ // upright), the arm forward on the rest, the leg out to the footrest, in a wheel that is a full
20
+ // 210° arc around the seat (it was a small ring under it).
21
+ const WC_TORSO = 'M8.2 7.4l2.2 6';
22
+ const WC_ARM = 'M9 9.4h5.6';
23
+ const WC_LEG = 'M10.4 13.4h5l2.5 6.4H21';
24
+ const WC_WHEEL = 'M5.6 10.95A5.6 5.6 0 1 0 13.25 18.6';
18
25
  const NtdWheelchair = /* @__PURE__ */ createIcon.createIcon({
19
26
  displayName: 'NtdWheelchair',
20
27
  paths: {
21
- solid: ({ primaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M10 8v6H6l-1 4h3l1-2h5a4 4 0 01-4 4 4 4 0 01-4-4H4a6 6 0 006 6 6 6 0 006-6v-8h-6z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M16 14l2 4h2l-2-4", fill: primaryColor })] })),
22
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M10 8v6H6l-1 4h3l1-2h5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntime.jsx("circle", { cx: "10", cy: "16", r: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M16 14l2 4h2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" })] })),
23
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "10", cy: "16", r: "4", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M10 8v6H6l-1 4h3l1-2h5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntime.jsx("circle", { cx: "10", cy: "16", r: "4", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M16 14l2 4h2", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" })] })),
24
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "4", r: "2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("path", { d: "M10 8v6H6l-1 4h3l1-2h5a4 4 0 01-4 4 4 4 0 01-4-4H4a6 6 0 006 6 6 6 0 006-6v-8h-6z", fill: secondaryColor }), jsxRuntime.jsx("path", { d: "M16 14l2 4h2l-2-4", fill: "#3B82F6" })] })),
28
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "8.6", cy: "3.4", r: "2.2", fill: primaryColor }), jsxRuntime.jsxs("g", { stroke: primaryColor, fill: "none", children: [jsxRuntime.jsx("path", { d: WC_TORSO, strokeWidth: strokeWidth * 1.4 }), jsxRuntime.jsx("path", { d: WC_ARM, strokeWidth: strokeWidth * 1.1 }), jsxRuntime.jsx("path", { d: WC_LEG, strokeWidth: strokeWidth * 1.3 }), jsxRuntime.jsx("path", { d: WC_WHEEL, strokeWidth: strokeWidth * 1.1 })] })] })),
29
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "8.6", cy: "3.4", r: "1.8", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: `${WC_TORSO}${WC_ARM}${WC_LEG}${WC_WHEEL}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
30
+ // fills only: the rider primary, the wheel secondary
31
+ duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: WC_WHEEL, stroke: secondaryColor, strokeWidth: strokeWidth * 1.1, fill: "none" }), jsxRuntime.jsx("circle", { cx: "8.6", cy: "3.4", r: "2.2", fill: primaryColor }), jsxRuntime.jsxs("g", { stroke: primaryColor, fill: "none", children: [jsxRuntime.jsx("path", { d: WC_TORSO, strokeWidth: strokeWidth * 1.4 }), jsxRuntime.jsx("path", { d: WC_ARM, strokeWidth: strokeWidth * 1.1 }), jsxRuntime.jsx("path", { d: WC_LEG, strokeWidth: strokeWidth * 1.3 })] })] })),
32
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: WC_WHEEL, stroke: secondaryColor, strokeWidth: strokeWidth * 1.1, fill: "none" }), jsxRuntime.jsx("circle", { cx: "8.6", cy: "3.4", r: "2.2", fill: primaryColor }), jsxRuntime.jsxs("g", { stroke: primaryColor, fill: "none", children: [jsxRuntime.jsx("path", { d: WC_TORSO, strokeWidth: strokeWidth * 1.4 }), jsxRuntime.jsx("path", { d: WC_ARM, strokeWidth: strokeWidth * 1.1 }), jsxRuntime.jsx("path", { d: WC_LEG, strokeWidth: strokeWidth * 1.3 })] })] })),
25
33
  },
26
34
  });
27
35
  const NtdBlind = /* @__PURE__ */ createIcon.createIcon({
@@ -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
  const NtdSearch = /* @__PURE__ */ createIcon.createIcon({
7
8
  displayName: 'NtdSearch',
@@ -12,13 +13,31 @@ const NtdSearch = /* @__PURE__ */ createIcon.createIcon({
12
13
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M21 21l-4.35-4.35M11 19a8 8 0 100-16 8 8 0 000 16z", stroke: primaryColor, strokeWidth: "2.2", fill: "none" }) })),
13
14
  },
14
15
  });
16
+ const EDIT_PENCIL = 'M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z';
15
17
  const NtdEdit = /* @__PURE__ */ createIcon.createIcon({
16
18
  displayName: 'NtdEdit',
17
19
  paths: {
18
- solid: ({ primaryColor, accentColor, accentOpacity }) => (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: primaryColor }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
20
+ // The band is a cut across the pencil: kept inside it, its ends meet the edges flush (its
21
+ // round caps stuck out of both sides).
22
+ 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 }))] })),
19
23
  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 })] })),
20
24
  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 })] })),
21
- vivid: ({ primaryColor, secondaryColor }) => (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: primaryColor }), jsxRuntime.jsx("path", { d: "M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M15 5l4 4", stroke: secondaryColor, strokeWidth: "1.8" })] })),
25
+ 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" }))] })),
26
+ },
27
+ });
28
+ // NtdEditDetail: NtdEdit's pencil (scaled 0.62, coordinates baked in so strokes keep their
29
+ // weight) over a square frame left open where the pencil comes out of it — the pen-to-square
30
+ // "edit details" glyph.
31
+ const EDIT_DETAIL_PENCIL = 'M18.54 2.86a1.753 1.753 0 112.48 2.48L12.65 13.71 9.24 14.64l.93-3.41L18.54 2.86z';
32
+ const EDIT_DETAIL_BAND = 'M17.3 4.1l2.48 2.48';
33
+ const EDIT_DETAIL_FRAME = 'M12 4H6a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2v-6';
34
+ const NtdEditDetail = /* @__PURE__ */ createIcon.createIcon({
35
+ displayName: 'NtdEditDetail',
36
+ paths: {
37
+ 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 }))] })),
38
+ 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" })] })),
39
+ 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" })] })),
40
+ 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" }))] })),
22
41
  },
23
42
  });
24
43
  const NtdTrash = /* @__PURE__ */ createIcon.createIcon({
@@ -30,31 +49,40 @@ const NtdTrash = /* @__PURE__ */ createIcon.createIcon({
30
49
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14H5z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M5 6l1 14a2 2 0 002 2h8a2 2 0 002-2l1-14H5z", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M3 6h18", stroke: secondaryColor, strokeWidth: "1.8" }), jsxRuntime.jsx("path", { d: "M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2", stroke: "#3B82F6", strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "10", y1: "10.5", x2: "10", y2: "17.5", stroke: "#3B82F6", strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "14", y1: "10.5", x2: "14", y2: "17.5", stroke: "#3B82F6", strokeWidth: "1.5" })] })),
31
50
  },
32
51
  });
52
+ // NtdSave: a 3.5" floppy — the clipped corner, a wide metal shutter at the top edge with its
53
+ // window, a large label at the bottom. Every part sits inside the body, so no variant pokes out.
54
+ const FLOPPY_BODY = 'M5 3h11.6L21 7.4V19a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2z';
55
+ /** The shutter with its window cut out (even-odd). */
56
+ const FLOPPY_SHUTTER = 'M7 3h9.2v4.8a.8.8 0 01-.8.8H7.8a.8.8 0 01-.8-.8zM12.6 4.4v2.8h2V4.4z';
57
+ const FLOPPY_LABEL = 'M6.8 10.6h10.4a1 1 0 011 1v7a1 1 0 01-1 1H6.8a1 1 0 01-1-1v-7a1 1 0 011-1z';
33
58
  const NtdSave = /* @__PURE__ */ createIcon.createIcon({
34
59
  displayName: 'NtdSave',
35
60
  paths: {
36
- solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "7", y: "13", width: "10", height: "6", rx: "1", fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "6", height: "5", rx: "0.5", fill: accentColor, opacity: accentOpacity * 0.5 })] })),
37
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "7", y: "13", width: "10", height: "6", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 3v4h8V3", stroke: primaryColor, strokeWidth: strokeWidth })] })),
38
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M5 3h11l5 5v11a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { x: "7", y: "13", width: "10", height: "6", rx: "1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M7 3v4h8V3", stroke: primaryColor, strokeWidth: strokeWidth })] })),
39
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "7", y: "13", width: "10", height: "6", rx: "1", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "6", height: "5", rx: "0.5", fill: "#3B82F6" })] })),
61
+ solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: FLOPPY_BODY, fill: primaryColor }), jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsxRuntime.jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd" }), jsxRuntime.jsx("path", { d: FLOPPY_LABEL })] })] })),
62
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: `${FLOPPY_BODY}M7.5 3v4h8V3M12.6 4.8v1${FLOPPY_LABEL}`, stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "round", fill: "none" })),
63
+ // fills only: the body secondary, the shutter and the label primary
64
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: FLOPPY_BODY, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsxs("g", { fill: primaryColor, children: [jsxRuntime.jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd" }), jsxRuntime.jsx("path", { d: FLOPPY_LABEL })] })] })),
65
+ vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: FLOPPY_BODY, fill: primaryColor }), jsxRuntime.jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd", fill: "#CBD5E1" }), jsxRuntime.jsx("path", { d: FLOPPY_LABEL, fill: "white" }), jsxRuntime.jsx("path", { d: "M5.8 13.2h12.4v-1.6a1 1 0 00-1-1H6.8a1 1 0 00-1 1z", fill: secondaryColor })] })),
40
66
  },
41
67
  });
68
+ // The shaft stops 2 short of the arrowhead's point: with the square caps of `sharp`, a shaft that
69
+ // ran to the point stuck out of it.
42
70
  const NtdDownload = /* @__PURE__ */ createIcon.createIcon({
43
71
  displayName: 'NtdDownload',
44
72
  paths: {
45
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3", stroke: primaryColor, strokeWidth: strokeWidth })),
46
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3", stroke: primaryColor, strokeWidth: strokeWidth })),
47
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "15", width: "18", height: "6", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3", stroke: primaryColor, strokeWidth: strokeWidth })] })),
48
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3", stroke: primaryColor, strokeWidth: "2.2" }) })),
73
+ 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 })),
74
+ 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 })),
75
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "15", width: "18", height: "6", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), 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 })] })),
76
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: 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 }) })),
49
77
  },
50
78
  });
51
79
  const NtdUpload = /* @__PURE__ */ createIcon.createIcon({
52
80
  displayName: 'NtdUpload',
53
81
  paths: {
54
- 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 3v12", stroke: primaryColor, strokeWidth: strokeWidth })),
55
- 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 3v12", stroke: primaryColor, strokeWidth: strokeWidth })),
56
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "15", width: "18", height: "6", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 3v12", stroke: primaryColor, strokeWidth: strokeWidth })] })),
57
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 3v12", stroke: primaryColor, strokeWidth: "2.2" }) })),
82
+ 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 })),
83
+ 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 })),
84
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "3", y: "15", width: "18", height: "6", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), 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 })] })),
85
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: 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 }) })),
58
86
  },
59
87
  });
60
88
  const NtdShare = /* @__PURE__ */ createIcon.createIcon({
@@ -84,31 +112,33 @@ const NtdClipboard = /* @__PURE__ */ createIcon.createIcon({
84
112
  vivid: ({ primaryColor, secondaryColor }) => (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("path", { d: "M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: secondaryColor, stroke: secondaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12", stroke: "white", strokeWidth: "1", opacity: "0.4" }), jsxRuntime.jsx("line", { x1: "8", y1: "15.5", x2: "13", y2: "15.5", stroke: "white", strokeWidth: "1", opacity: "0.4" })] })),
85
113
  },
86
114
  });
115
+ // The stroke glyphs (plus, minus, check, the arrows) are twice the stroke width when filled, so
116
+ // `solid` reads bold next to `outline` and still follows `strokeWidth`.
87
117
  const NtdPlus = /* @__PURE__ */ createIcon.createIcon({
88
118
  displayName: 'NtdPlus',
89
119
  paths: {
90
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 1.25 })),
120
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
91
121
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth })),
92
122
  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: "M12 8v8M8 12h8", stroke: primaryColor, strokeWidth: strokeWidth })] })),
93
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: "2.2" }) })),
123
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 }) })),
94
124
  },
95
125
  });
96
126
  const NtdMinus = /* @__PURE__ */ createIcon.createIcon({
97
127
  displayName: 'NtdMinus',
98
128
  paths: {
99
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 1.25 })),
129
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
100
130
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth })),
101
131
  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 })] })),
102
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: "2.2" }) })),
132
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 }) })),
103
133
  },
104
134
  });
105
135
  const NtdCheck = /* @__PURE__ */ createIcon.createIcon({
106
136
  displayName: 'NtdCheck',
107
137
  paths: {
108
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth * 1.25 })),
138
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
109
139
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth })),
110
140
  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: "M17 8l-6.5 6.5L7 11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
111
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: "2.2" }) })),
141
+ vivid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth * 2 }) })),
112
142
  },
113
143
  });
114
144
  const NtdFilter = /* @__PURE__ */ createIcon.createIcon({
@@ -202,17 +232,28 @@ const NtdLink = /* @__PURE__ */ createIcon.createIcon({
202
232
  paths: {
203
233
  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, fill: "none" })),
204
234
  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" })),
205
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, 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, fill: "none", opacity: secondaryOpacity + 0.2 }), 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" })] })),
235
+ // one ring per colour: the right link primary, the left one secondary
236
+ 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, 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, fill: "none" })] })),
206
237
  vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (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: "2.2", fill: "none" }) })),
207
238
  },
208
239
  });
240
+ // NtdSettings: a gear whose eight teeth have flat tops, in every variant but `rounded`, which
241
+ // keeps the round-toothed gear it used to draw everywhere.
242
+ const GEAR = 'M9.95 4.58L10.55 1.7L13.45 1.7L14.05 4.58A7.7 7.7 0 0 1 15.8 5.3L18.26 3.69L20.31 5.74L18.7 8.2A7.7 7.7 0 0 1 19.42 9.95L22.3 10.55L22.3 13.45L19.42 14.05A7.7 7.7 0 0 1 18.7 15.8L20.31 18.26L18.26 20.31L15.8 18.7A7.7 7.7 0 0 1 14.05 19.42L13.45 22.3L10.55 22.3L9.95 19.42A7.7 7.7 0 0 1 8.2 18.7L5.74 20.31L3.69 18.26L5.3 15.8A7.7 7.7 0 0 1 4.58 14.05L1.7 13.45L1.7 10.55L4.58 9.95A7.7 7.7 0 0 1 5.3 8.2L3.69 5.74L5.74 3.69L8.2 5.3A7.7 7.7 0 0 1 9.95 4.58Z';
243
+ const GEAR_ROUND = 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 8.68a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.6a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z';
244
+ /** The axle hole, r 3.2. */
245
+ const GEAR_HOLE = 'M12 8.8a3.2 3.2 0 100 6.4 3.2 3.2 0 100-6.4z';
246
+ /** The hub around the hole, r 5 — duotone and vivid only. */
247
+ const GEAR_HUB = 'M12 7a5 5 0 100 10 5 5 0 100-10z';
209
248
  const NtdSettings = /* @__PURE__ */ createIcon.createIcon({
210
249
  displayName: 'NtdSettings',
211
250
  paths: {
212
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 8.68a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.6a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
213
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 8.68a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.6a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
214
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 8.68a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.6a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z", fill: secondaryColor, opacity: secondaryOpacity, stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor })] })),
215
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 8.68a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.6a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" })] })),
251
+ solid: ({ primaryColor }) => (jsxRuntime.jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })),
252
+ rounded: ({ primaryColor }) => (jsxRuntime.jsx("path", { d: `${GEAR_ROUND}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor })),
253
+ 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" })),
254
+ // fills only: the gear secondary, its hub primary
255
+ 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 })] })),
256
+ 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 })] })),
216
257
  },
217
258
  });
218
259
  const NtdLogIn = /* @__PURE__ */ createIcon.createIcon({
@@ -277,6 +318,7 @@ exports.NtdClipboard = NtdClipboard;
277
318
  exports.NtdCopy = NtdCopy;
278
319
  exports.NtdDownload = NtdDownload;
279
320
  exports.NtdEdit = NtdEdit;
321
+ exports.NtdEditDetail = NtdEditDetail;
280
322
  exports.NtdFilter = NtdFilter;
281
323
  exports.NtdGroup = NtdGroup;
282
324
  exports.NtdLink = NtdLink;
@@ -2,14 +2,22 @@
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
 
7
+ // The band sits halfway down the case and is a cut through it: kept inside the case it meets the
8
+ // sides flush (its round caps stuck out of both). A clasp hangs from its middle.
9
+ const BRIEFCASE_CASE = { x: 2, y: 7, width: 20, height: 14, rx: 2 };
10
+ const BRIEFCASE_HANDLE = 'M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2';
11
+ /** The clasp over the band, hanging down from it, with its slot (even-odd). */
12
+ const BRIEFCASE_CLASP = 'M11.2 11.2h1.6a.8.8 0 01.8.8v3.4a.8.8 0 01-.8.8h-1.6a.8.8 0 01-.8-.8V12a.8.8 0 01.8-.8z';
13
+ const BRIEFCASE_SLOT = 'M11.4 13.6h1.2v1.2h-1.2z';
6
14
  const NtdBriefcase = /* @__PURE__ */ createIcon.createIcon({
7
15
  displayName: 'NtdBriefcase',
8
16
  paths: {
9
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "13", x2: "22", y2: "13", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity * 0.5 })] })),
10
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "13", x2: "22", y2: "13", stroke: primaryColor, strokeWidth: "1.5" })] })),
11
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "13", x2: "22", y2: "13", stroke: primaryColor, strokeWidth: "1.5" })] })),
12
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: "M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2", stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "13", x2: "22", y2: "13", stroke: "#3B82F6", strokeWidth: "1.5" })] })),
17
+ solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [iconParts.within(uid, 'band', jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE }), jsxRuntime.jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: accentColor, strokeWidth: "1.5" })), jsxRuntime.jsx("path", { d: `${BRIEFCASE_CLASP}${BRIEFCASE_SLOT}`, fillRule: "evenodd" })] })] })),
18
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: primaryColor })] })),
19
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: primaryColor })] })),
20
+ vivid: ({ primaryColor, secondaryColor, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: secondaryColor, strokeWidth: "1.8", fill: "none" }), iconParts.within(uid, 'band', jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE }), jsxRuntime.jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: secondaryColor, strokeWidth: "1.5" })), jsxRuntime.jsx("path", { d: `${BRIEFCASE_CLASP}${BRIEFCASE_SLOT}`, fillRule: "evenodd", fill: secondaryColor })] })),
13
21
  },
14
22
  });
15
23
  const NtdDollar = /* @__PURE__ */ createIcon.createIcon({
@@ -30,22 +38,25 @@ const NtdWallet = /* @__PURE__ */ createIcon.createIcon({
30
38
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "5", width: "20", height: "16", rx: "2", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "5", width: "20", height: "16", rx: "2", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "18", cy: "13", r: "1.5", fill: secondaryColor }), jsxRuntime.jsx("path", { d: "M2 5a2 2 0 012-2h12l4 4", stroke: "white", strokeWidth: "1", fill: "none" })] })),
31
39
  },
32
40
  });
41
+ // NtdReceipt: two rows of description and amount, then the total on its own on the right.
42
+ const RECEIPT = 'M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z';
43
+ const RECEIPT_TEXT = 'M7.5 7.5h5M15.5 7.5h2M7.5 11.5h5M15.5 11.5h2M13.5 15.5h4';
33
44
  const NtdReceipt = /* @__PURE__ */ createIcon.createIcon({
34
45
  displayName: 'NtdReceipt',
35
46
  paths: {
36
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", fill: primaryColor }), jsxRuntime.jsx("line", { x1: "8", y1: "8", x2: "16", y2: "8", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "8", y1: "16", x2: "12", y2: "16", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
37
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "8", y1: "8", x2: "16", y2: "8", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "16", x2: "12", y2: "16", stroke: primaryColor, strokeWidth: "1.5" })] })),
38
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "8", y1: "8", x2: "16", y2: "8", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "16", x2: "12", y2: "16", stroke: primaryColor, strokeWidth: "1.5" })] })),
39
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z", fill: "white", opacity: "0.1" }), jsxRuntime.jsx("line", { x1: "8", y1: "8", x2: "16", y2: "8", stroke: secondaryColor, strokeWidth: "1.8" }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12", stroke: "#3B82F6", strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "16", x2: "12", y2: "16", stroke: "#3B82F6", strokeWidth: "1.5" })] })),
47
+ solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: RECEIPT, fill: primaryColor }), jsxRuntime.jsx("path", { d: RECEIPT_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity, fill: "none" })] })),
48
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: RECEIPT, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: RECEIPT_TEXT, stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
49
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: RECEIPT, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: RECEIPT, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: RECEIPT_TEXT, stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
50
+ vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: RECEIPT, fill: primaryColor }), jsxRuntime.jsx("path", { d: RECEIPT, fill: "white", opacity: "0.1" }), jsxRuntime.jsx("path", { d: RECEIPT_TEXT, stroke: "white", strokeOpacity: "0.9", strokeWidth: "1.5", fill: "none" }), jsxRuntime.jsx("path", { d: "M13.5 15.5h4", stroke: secondaryColor, strokeWidth: "1.8" })] })),
40
51
  },
41
52
  });
42
53
  const NtdBank = /* @__PURE__ */ createIcon.createIcon({
43
54
  displayName: 'NtdBank',
44
55
  paths: {
45
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "18", width: "20", height: "2", rx: "0.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "5", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "13", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "17", y: "9", width: "2", height: "9", fill: primaryColor })] })),
46
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "18", x2: "22", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "6", y1: "9", x2: "6", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "10", y1: "9", x2: "10", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "14", y1: "9", x2: "14", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "18", y1: "9", x2: "18", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
47
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "18", x2: "22", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "6", y1: "9", x2: "6", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "10", y1: "9", x2: "10", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "14", y1: "9", x2: "14", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "18", y1: "9", x2: "18", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
48
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", fill: primaryColor }), jsxRuntime.jsx("polygon", { points: "12,4 2,9 22,9", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "2", y: "18", width: "20", height: "2", rx: "0.5", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "5", y: "9", width: "2", height: "9", fill: "#3B82F6" }), jsxRuntime.jsx("rect", { x: "9", y: "9", width: "2", height: "9", fill: "#10B981" }), jsxRuntime.jsx("rect", { x: "13", y: "9", width: "2", height: "9", fill: "#F59E0B" }), jsxRuntime.jsx("rect", { x: "17", y: "9", width: "2", height: "9", fill: "#F59E0B" })] })),
56
+ solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "18", width: "20", height: "2", rx: "0.5", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "5", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "13", y: "9", width: "2", height: "9", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "17", y: "9", width: "2", height: "9", fill: primaryColor })] })),
57
+ outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "18", x2: "22", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "6", y1: "9", x2: "6", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "10", y1: "9", x2: "10", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "14", y1: "9", x2: "14", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "18", y1: "9", x2: "18", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
58
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "2", y1: "18", x2: "22", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "6", y1: "9", x2: "6", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "10", y1: "9", x2: "10", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "14", y1: "9", x2: "14", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "18", y1: "9", x2: "18", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
59
+ vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", fill: primaryColor }), jsxRuntime.jsx("polygon", { points: "12,2 2,9 22,9", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "2", y: "18", width: "20", height: "2", rx: "0.5", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "5", y: "9", width: "2", height: "9", fill: "#3B82F6" }), jsxRuntime.jsx("rect", { x: "9", y: "9", width: "2", height: "9", fill: "#10B981" }), jsxRuntime.jsx("rect", { x: "13", y: "9", width: "2", height: "9", fill: "#F59E0B" }), jsxRuntime.jsx("rect", { x: "17", y: "9", width: "2", height: "9", fill: "#F59E0B" })] })),
49
60
  },
50
61
  });
51
62
  const NtdTrendUp = /* @__PURE__ */ createIcon.createIcon({
@@ -66,24 +77,24 @@ const NtdTrendDown = /* @__PURE__ */ createIcon.createIcon({
66
77
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polyline", { points: "23,18 13.5,8.5 8.5,13.5 1,6", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsxRuntime.jsx("polyline", { points: "17,18 23,18 23,12", stroke: secondaryColor, strokeWidth: "2", fill: "none" })] })),
67
78
  },
68
79
  });
80
+ // NtdPercent: the dots are rings in every variant, a hole in each (they were plain discs when
81
+ // filled).
82
+ const PERCENT_DOT_TOP = 'M6.5 3.9a2.6 2.6 0 100 5.2 2.6 2.6 0 100-5.2zM6.5 5.4a1.1 1.1 0 100 2.2 1.1 1.1 0 100-2.2z';
83
+ const PERCENT_DOT_BOTTOM = 'M17.5 14.9a2.6 2.6 0 100 5.2 2.6 2.6 0 100-5.2zM17.5 16.4a1.1 1.1 0 100 2.2 1.1 1.1 0 100-2.2z';
69
84
  const NtdPercent = /* @__PURE__ */ createIcon.createIcon({
70
85
  displayName: 'NtdPercent',
71
86
  paths: {
72
- solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "17.5", cy: "17.5", r: "2.5", fill: primaryColor })] })),
87
+ solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: `${PERCENT_DOT_TOP}${PERCENT_DOT_BOTTOM}`, fillRule: "evenodd", fill: primaryColor })] })),
73
88
  outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "17.5", cy: "17.5", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
74
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "17.5", cy: "17.5", r: "2.5", fill: primaryColor })] })),
75
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "2.5", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "2.5", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "17.5", cy: "17.5", r: "2.5", fill: secondaryColor }), jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: "white", strokeWidth: "1" })] })),
76
- },
77
- });
78
- const NtdInvoice = /* @__PURE__ */ createIcon.createIcon({
79
- displayName: 'NtdInvoice',
80
- paths: {
81
- solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M14 2v6h6", fill: primaryColor, opacity: 0.6 }), jsxRuntime.jsx("line", { x1: "8", y1: "13", x2: "12", y2: "13", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsxRuntime.jsx("line", { x1: "14", y1: "13", x2: "16", y2: "13", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity * 0.6 })] })),
82
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M14 2v6h6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "8", y1: "13", x2: "12", y2: "13", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "14", y1: "13", x2: "16", y2: "13", stroke: primaryColor, strokeWidth: "1.5" })] })),
83
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M14 2v6h6", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("line", { x1: "8", y1: "13", x2: "12", y2: "13", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17", stroke: primaryColor, strokeWidth: "1.5" })] })),
84
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("path", { d: "M14 2v6h6", fill: secondaryColor }), jsxRuntime.jsx("line", { x1: "8", y1: "13", x2: "12", y2: "13", stroke: "white", strokeWidth: "1", opacity: "0.4" }), jsxRuntime.jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17", stroke: "white", strokeWidth: "1", opacity: "0.4" }), jsxRuntime.jsx("line", { x1: "14", y1: "13", x2: "16", y2: "13", stroke: "white", strokeWidth: "1", opacity: "0.4" })] })),
89
+ duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: secondaryColor, strokeWidth: strokeWidth, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("path", { d: `${PERCENT_DOT_TOP}${PERCENT_DOT_BOTTOM}`, fillRule: "evenodd", fill: primaryColor })] })),
90
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "19", y1: "5", x2: "5", y2: "19", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { d: PERCENT_DOT_TOP, fillRule: "evenodd", fill: primaryColor }), jsxRuntime.jsx("path", { d: PERCENT_DOT_BOTTOM, fillRule: "evenodd", fill: secondaryColor })] })),
85
91
  },
86
92
  });
93
+ // NtdInvoice: NtdFile's page with a short title, two rows of item and amount, and the total on
94
+ // its own at the bottom right, as on a receipt.
95
+ const NtdInvoice = /* @__PURE__ */ iconParts.paperIcon('NtdInvoice', 'M7.5 7h2.5M7.5 12.5h3.3M13.8 12.5h2.7M7.5 15.5h3.3M13.8 15.5h2.7M12.5 19h4');
96
+ /** @deprecated A second invoice next to {@link NtdInvoice} — use that. */
97
+ const NtdInvoiceDoc = NtdInvoice;
87
98
  const NtdStore = /* @__PURE__ */ createIcon.createIcon({
88
99
  displayName: 'NtdStore',
89
100
  paths: {
@@ -93,13 +104,31 @@ const NtdStore = /* @__PURE__ */ createIcon.createIcon({
93
104
  vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 9l1-5h16l1 5", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M3 9l1-5h16l1 5", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "5", y: "14", width: "14", height: "8", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "17", width: "6", height: "5", fill: "#3B82F6" }), jsxRuntime.jsx("path", { d: "M3 9h18", stroke: "white", strokeWidth: "1" }), jsxRuntime.jsx("path", { d: "M3 9c0 1.66 1.34 3 3 3s3-1.34 3-3", stroke: "white", strokeWidth: "1", fill: "none" }), jsxRuntime.jsx("path", { d: "M9 9c0 1.66 1.34 3 3 3s3-1.34 3-3", stroke: "white", strokeWidth: "1", fill: "none" }), jsxRuntime.jsx("path", { d: "M15 9c0 1.66 1.34 3 3 3s3-1.34 3-3", stroke: "white", strokeWidth: "1", fill: "none" })] })),
94
105
  },
95
106
  });
107
+ // NtdBarcode: eleven bars, 0.8–1.6 wide, like a real code (six bars up to 3 wide read as a few
108
+ // fat stripes). [x, width] per bar, from 2 to 22; the widest ones are the 1.6.
109
+ const BARCODE_BARS = [
110
+ [2, 1.2],
111
+ [4, 0.8],
112
+ [5.6, 1.6],
113
+ [8, 0.8],
114
+ [10, 1.2],
115
+ [12, 0.8],
116
+ [13.6, 0.8],
117
+ [15.6, 1.6],
118
+ [18, 0.8],
119
+ [19.6, 0.8],
120
+ [21.2, 0.8],
121
+ ];
96
122
  const NtdBarcode = /* @__PURE__ */ createIcon.createIcon({
97
123
  displayName: 'NtdBarcode',
98
124
  paths: {
99
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "2", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "6", y: "4", width: "1", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "4", width: "2", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "13", y: "4", width: "1", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "15", y: "4", width: "3", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "20", y: "4", width: "2", height: "16", fill: primaryColor })] })),
100
- outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: "3", y1: "4", x2: "3", y2: "20", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "7", y1: "4", x2: "7", y2: "20", stroke: primaryColor, strokeWidth: "1.5" }), jsxRuntime.jsx("line", { x1: "10", y1: "4", x2: "10", y2: "20", stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("line", { x1: "13.5", y1: "4", x2: "13.5", y2: "20", stroke: primaryColor, strokeWidth: "1" }), jsxRuntime.jsx("line", { x1: "16.5", y1: "4", x2: "16.5", y2: "20", stroke: primaryColor, strokeWidth: "3" }), jsxRuntime.jsx("line", { x1: "21", y1: "4", x2: "21", y2: "20", stroke: primaryColor, strokeWidth: strokeWidth })] })),
101
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "6", y: "4", width: "1", height: "16", fill: secondaryColor, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("rect", { x: "13", y: "4", width: "1", height: "16", fill: secondaryColor, opacity: secondaryOpacity + 0.2 }), jsxRuntime.jsx("rect", { x: "2", y: "4", width: "2", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "4", width: "2", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "15", y: "4", width: "3", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "20", y: "4", width: "2", height: "16", fill: primaryColor })] })),
102
- vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { x: "2", y: "4", width: "2", height: "16", fill: primaryColor }), jsxRuntime.jsx("rect", { x: "2", y: "4", width: "2", height: "16", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("rect", { x: "6", y: "4", width: "1", height: "16", fill: secondaryColor }), jsxRuntime.jsx("rect", { x: "9", y: "4", width: "2", height: "16", fill: "#3B82F6" }), jsxRuntime.jsx("rect", { x: "13", y: "4", width: "1", height: "16", fill: "#10B981" }), jsxRuntime.jsx("rect", { x: "15", y: "4", width: "3", height: "16", fill: "#F59E0B" }), jsxRuntime.jsx("rect", { x: "20", y: "4", width: "2", height: "16", fill: "#F59E0B" })] })),
125
+ // lines, not rects: the wireframe then draws one thin line per bar rather than the outlines of
126
+ // 0.8-wide boxes, which run together; the square caps end every bar at 4 and 20
127
+ solid: ({ primaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: BARCODE_BARS.map(([x, w]) => (jsxRuntime.jsx("line", { x1: x + w / 2, y1: 4 + w / 2, x2: x + w / 2, y2: 20 - w / 2, stroke: primaryColor, strokeWidth: w, strokeLinecap: "square" }, x))) })),
128
+ outline: ({ primaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: BARCODE_BARS.map(([x, w]) => (jsxRuntime.jsx("line", { x1: x + w / 2, y1: 4 + w / 2, x2: x + w / 2, y2: 20 - w / 2, stroke: primaryColor, strokeWidth: w }, x))) })),
129
+ // every other bar in secondary
130
+ duotone: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: BARCODE_BARS.map(([x, w], i) => (jsxRuntime.jsx("rect", { x: x, y: "4", width: w, height: "16", fill: i % 2 ? secondaryColor : primaryColor }, x))) })),
131
+ vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: BARCODE_BARS.map(([x, w], i) => (jsxRuntime.jsx("rect", { x: x, y: "4", width: w, height: "16", fill: i % 3 === 1 ? secondaryColor : primaryColor }, x))) })),
103
132
  },
104
133
  });
105
134
  const NtdCalculator = /* @__PURE__ */ createIcon.createIcon({
@@ -175,6 +204,7 @@ exports.NtdClipboardCheck = NtdClipboardCheck;
175
204
  exports.NtdCoins = NtdCoins;
176
205
  exports.NtdDollar = NtdDollar;
177
206
  exports.NtdInvoice = NtdInvoice;
207
+ exports.NtdInvoiceDoc = NtdInvoiceDoc;
178
208
  exports.NtdKanban = NtdKanban;
179
209
  exports.NtdMilestone = NtdMilestone;
180
210
  exports.NtdPercent = NtdPercent;