@nice2dev/icons 1.3.2 → 1.3.4
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.
- package/CHANGELOG.md +122 -0
- package/README.md +12 -4
- package/dist/cjs/createIcon.js +4 -2
- package/dist/cjs/figmaExport.js +1 -0
- package/dist/cjs/iconParts.js +34 -1
- package/dist/cjs/icons/actions.js +85 -64
- package/dist/cjs/icons/business.js +65 -28
- package/dist/cjs/icons/education.js +37 -13
- package/dist/cjs/icons/files.js +58 -18
- package/dist/cjs/icons/index.js +1 -0
- package/dist/cjs/icons/media.js +87 -30
- package/dist/cjs/icons/navigation.js +26 -7
- package/dist/cjs/icons/omniverk.js +2 -1
- package/dist/cjs/icons/realestate.js +48 -10
- package/dist/cjs/icons/science.js +10 -6
- package/dist/cjs/icons/shapes.js +46 -12
- package/dist/cjs/icons/social.js +3 -9
- package/dist/cjs/icons/travel.js +21 -4
- package/dist/cjs/icons/ui.js +80 -39
- package/dist/cjs/icons/weather.js +5 -4
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/esm/createIcon.js +4 -2
- package/dist/esm/figmaExport.js +1 -0
- package/dist/esm/iconParts.js +34 -3
- package/dist/esm/icons/actions.js +87 -66
- package/dist/esm/icons/business.js +65 -28
- package/dist/esm/icons/education.js +37 -13
- package/dist/esm/icons/files.js +58 -18
- package/dist/esm/icons/index.js +1 -1
- package/dist/esm/icons/media.js +87 -30
- package/dist/esm/icons/navigation.js +26 -7
- package/dist/esm/icons/omniverk.js +2 -1
- package/dist/esm/icons/realestate.js +48 -10
- package/dist/esm/icons/science.js +10 -6
- package/dist/esm/icons/shapes.js +46 -12
- package/dist/esm/icons/social.js +3 -9
- package/dist/esm/icons/travel.js +21 -4
- package/dist/esm/icons/ui.js +81 -41
- package/dist/esm/icons/weather.js +5 -4
- package/dist/esm/index.js +1 -1
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/types/iconParts.d.ts +14 -1
- package/dist/types/icons/index.d.ts +1 -1
- package/dist/types/icons/ui.d.ts +1 -0
- package/dist/types/types.d.ts +12 -3
- package/package.json +2 -2
package/dist/esm/iconParts.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { jsxs, Fragment
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { createIcon } from './createIcon.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* The colour of a detail drawn in secondary on a filled shape (a floppy's label, a ribbon): the
|
|
6
|
+
* secondary colour, but the accent colour in the cutout's mask — there secondary is cut out with
|
|
7
|
+
* the shape and the detail would vanish, while the accent draws in the cut.
|
|
8
|
+
*/
|
|
9
|
+
function detailColor({ variant, secondaryColor, accentColor }) {
|
|
10
|
+
return variant === 'cutout' ? accentColor : secondaryColor;
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* `content` drawn only inside `shape` — for accent lines that read as a cut through a shape (a
|
|
6
14
|
* pencil's band, a calendar's header line, an envelope's flap): clipped, they meet the shape's
|
|
@@ -17,6 +25,29 @@ function within(uid, name, shape, content) {
|
|
|
17
25
|
const id = `${uid}${name}`;
|
|
18
26
|
return (jsxs(Fragment, { children: [jsx("clipPath", { id: id, children: shape }), jsx("g", { clipPath: `url(#${id})`, children: content })] }));
|
|
19
27
|
}
|
|
28
|
+
const BELL = 'M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9z';
|
|
29
|
+
/** The clapper: a half disc r 3 under the bell (it was a thin arc). */
|
|
30
|
+
const BELL_CLAPPER = 'M9 18.5h6a3 3 0 01-6 0z';
|
|
31
|
+
const BELL_CLAPPER_LINE = 'M9 19a3 3 0 006 0';
|
|
32
|
+
/** NtdBellRing's ring marks, either side of the crown. */
|
|
33
|
+
const BELL_RINGS = 'M2 4l1.5 1.5M22 4l-1.5 1.5';
|
|
34
|
+
/**
|
|
35
|
+
* NtdBell and NtdBellRing, so the two share one bell; `ringing` adds the ring marks. Duotone and
|
|
36
|
+
* vivid are fills only: the bell primary, the clapper secondary. The marks are primary on the solid
|
|
37
|
+
* bell, secondary in duotone and in the accent colour in vivid.
|
|
38
|
+
*/
|
|
39
|
+
function bellIcon(displayName, ringing) {
|
|
40
|
+
const parts = ({ primaryColor, strokeWidth }, detail, rings, ringsOpacity = 1) => (jsxs(Fragment, { children: [jsx("path", { d: BELL, fill: primaryColor }), jsx("path", { d: BELL_CLAPPER, fill: detail }), ringing && (jsx("path", { d: BELL_RINGS, stroke: rings, strokeWidth: strokeWidth, opacity: ringsOpacity }))] }));
|
|
41
|
+
return createIcon({
|
|
42
|
+
displayName,
|
|
43
|
+
paths: {
|
|
44
|
+
solid: (props) => parts(props, props.primaryColor, props.primaryColor),
|
|
45
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${BELL}${BELL_CLAPPER_LINE}${ringing ? BELL_RINGS : ''}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
46
|
+
duotone: (props) => parts(props, props.secondaryColor, props.secondaryColor),
|
|
47
|
+
vivid: (props) => parts(props, props.secondaryColor, props.accentColor, props.accentOpacity),
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
20
51
|
/** The page of every paper icon: 16 × 20, its top-right corner folded over 8. */
|
|
21
52
|
const PAPER = 'M12 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V10z';
|
|
22
53
|
const PAPER_FOLD = 'M12 2v6a2 2 0 002 2h6z';
|
|
@@ -26,7 +57,7 @@ const PAPER_FOLD_SHARP = 'M12 2v8h8z';
|
|
|
26
57
|
/**
|
|
27
58
|
* A paper icon — NtdFile, and every document drawn on the same page (NtdFileText, NtdInvoice,
|
|
28
59
|
* NtdContract, …), so their pages and folds match. The fold is secondary when the page is filled;
|
|
29
|
-
* `text` is the document's writing, a path of strokes kept below the fold (y ≥ 11, x 7
|
|
60
|
+
* `text` is the document's writing, a path of strokes kept below the fold (y ≥ 11, x 7–17),
|
|
30
61
|
* drawn in the accent colour on a filled page and in primary on a stroked one.
|
|
31
62
|
*/
|
|
32
63
|
function paperIcon(displayName, text = '') {
|
|
@@ -43,4 +74,4 @@ function paperIcon(displayName, text = '') {
|
|
|
43
74
|
});
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
export { paperIcon, within };
|
|
77
|
+
export { bellIcon, detailColor, paperIcon, within };
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { createIcon } from '../createIcon.js';
|
|
3
|
-
import { within } from '../iconParts.js';
|
|
3
|
+
import { within, detailColor } from '../iconParts.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
/** The magnifier's lens (r 8 about 11,11) and its handle. */
|
|
6
|
+
const LENS = 'M11 19a8 8 0 100-16 8 8 0 000 16z';
|
|
7
|
+
const LENS_HANDLE = 'M21 21l-4.35-4.35';
|
|
8
|
+
/**
|
|
9
|
+
* The magnifier of NtdSearch, NtdZoomIn and NtdZoomOut, so the three share one lens and handle;
|
|
10
|
+
* `glyph` is drawn inside the lens. A line glyph: twice the stroke width in every variant but
|
|
11
|
+
* `outline`. Duotone fills the lens in secondary, vivid draws the handle and the glyph in it.
|
|
12
|
+
*/
|
|
13
|
+
function lensIcon(displayName, glyph = '') {
|
|
14
|
+
return createIcon({
|
|
15
|
+
displayName,
|
|
16
|
+
paths: {
|
|
17
|
+
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
|
|
18
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
19
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: LENS, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: `${LENS_HANDLE}${LENS}${glyph}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
20
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: LENS, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: `${LENS_HANDLE}${glyph}`, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const NtdSearch = /* @__PURE__ */ lensIcon('NtdSearch');
|
|
14
25
|
const EDIT_PENCIL = 'M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z';
|
|
15
26
|
const NtdEdit = /* @__PURE__ */ createIcon({
|
|
16
27
|
displayName: 'NtdEdit',
|
|
@@ -53,16 +64,22 @@ const FLOPPY_BODY = 'M5 3h11.6L21 7.4V19a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012
|
|
|
53
64
|
/** The shutter with its window cut out (even-odd). */
|
|
54
65
|
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';
|
|
55
66
|
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';
|
|
67
|
+
/** The label's top band — vivid's third colour. */
|
|
68
|
+
const FLOPPY_LABEL_BAND = 'M5.8 13.2h12.4v-1.6a1 1 0 00-1-1H6.8a1 1 0 00-1 1z';
|
|
56
69
|
const NtdSave = /* @__PURE__ */ createIcon({
|
|
57
70
|
displayName: 'NtdSave',
|
|
58
71
|
paths: {
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
// the shutter and the label in secondary (the accent is usually black or the page colour)
|
|
73
|
+
solid: (props) => (jsxs(Fragment, { children: [jsx("path", { d: FLOPPY_BODY, fill: props.primaryColor }), jsxs("g", { fill: detailColor(props), children: [jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd" }), jsx("path", { d: FLOPPY_LABEL })] })] })),
|
|
74
|
+
// the wireframe's construction — body, shutter with its window, label — at the stroke width
|
|
75
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${FLOPPY_BODY}${FLOPPY_SHUTTER}${FLOPPY_LABEL}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
61
76
|
// fills only: the body secondary, the shutter and the label primary
|
|
62
77
|
duotone: ({ primaryColor, secondaryColor, secondaryOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: FLOPPY_BODY, fill: secondaryColor, opacity: secondaryOpacity }), jsxs("g", { fill: primaryColor, children: [jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd" }), jsx("path", { d: FLOPPY_LABEL })] })] })),
|
|
63
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: FLOPPY_BODY, fill: primaryColor }), jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd"
|
|
78
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: FLOPPY_BODY, fill: primaryColor }), jsxs("g", { fill: secondaryColor, children: [jsx("path", { d: FLOPPY_SHUTTER, fillRule: "evenodd" }), jsx("path", { d: FLOPPY_LABEL })] }), jsx("path", { d: FLOPPY_LABEL_BAND, fill: accentColor, opacity: accentOpacity })] })),
|
|
64
79
|
},
|
|
65
80
|
});
|
|
81
|
+
/** The tray of NtdDownload and NtdUpload. */
|
|
82
|
+
const TRAY = 'M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4';
|
|
66
83
|
// The shaft stops 2 short of the arrowhead's point: with the square caps of `sharp`, a shaft that
|
|
67
84
|
// ran to the point stuck out of it.
|
|
68
85
|
const NtdDownload = /* @__PURE__ */ createIcon({
|
|
@@ -70,8 +87,9 @@ const NtdDownload = /* @__PURE__ */ createIcon({
|
|
|
70
87
|
paths: {
|
|
71
88
|
solid: ({ primaryColor, strokeWidth }) => (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 })),
|
|
72
89
|
outline: ({ primaryColor, strokeWidth }) => (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 })),
|
|
73
|
-
|
|
74
|
-
|
|
90
|
+
// the arrow primary, the tray secondary — a colour split, no filled tray
|
|
91
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
92
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M7 10l5 5 5-5M12 13V3", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
75
93
|
},
|
|
76
94
|
});
|
|
77
95
|
const NtdUpload = /* @__PURE__ */ createIcon({
|
|
@@ -79,17 +97,26 @@ const NtdUpload = /* @__PURE__ */ createIcon({
|
|
|
79
97
|
paths: {
|
|
80
98
|
solid: ({ primaryColor, strokeWidth }) => (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 })),
|
|
81
99
|
outline: ({ primaryColor, strokeWidth }) => (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 })),
|
|
82
|
-
|
|
83
|
-
|
|
100
|
+
// as NtdDownload: the arrow primary, the tray secondary
|
|
101
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
102
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: TRAY, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M17 8l-5-5-5 5M12 5v10", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
84
103
|
},
|
|
85
104
|
});
|
|
105
|
+
// NtdShare: three nodes joined by two links, the links twice the stroke width in every variant but
|
|
106
|
+
// `outline`. Duotone and vivid, fills only: the nodes primary, the links secondary (vivid had a
|
|
107
|
+
// fixed #3B82F6 node and white links that vanished on a light page).
|
|
108
|
+
const SHARE_NODES = 'M18 2a3 3 0 110 6 3 3 0 110-6zM6 9a3 3 0 110 6 3 3 0 110-6zM18 16a3 3 0 110 6 3 3 0 110-6z';
|
|
109
|
+
const SHARE_LINKS = 'M8.59 13.51L15.42 17.49M15.41 6.51L8.59 10.49';
|
|
110
|
+
function shareFilled(nodes, links, strokeWidth) {
|
|
111
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: SHARE_LINKS, stroke: links, strokeWidth: strokeWidth * 2 }), jsx("path", { d: SHARE_NODES, fill: nodes })] }));
|
|
112
|
+
}
|
|
86
113
|
const NtdShare = /* @__PURE__ */ createIcon({
|
|
87
114
|
displayName: 'NtdShare',
|
|
88
115
|
paths: {
|
|
89
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
116
|
+
solid: ({ primaryColor, strokeWidth }) => shareFilled(primaryColor, primaryColor, strokeWidth),
|
|
90
117
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "18", cy: "5", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }), jsx("circle", { cx: "6", cy: "12", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }), jsx("circle", { cx: "18", cy: "19", r: "2.5", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }), jsx("line", { x1: "8.59", y1: "13.51", x2: "15.42", y2: "17.49", stroke: primaryColor, strokeWidth: strokeWidth * 0.75 }), jsx("line", { x1: "15.41", y1: "6.51", x2: "8.59", y2: "10.49", stroke: primaryColor, strokeWidth: strokeWidth * 0.75 })] })),
|
|
91
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
92
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
118
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => shareFilled(primaryColor, secondaryColor, strokeWidth),
|
|
119
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => shareFilled(primaryColor, secondaryColor, strokeWidth),
|
|
93
120
|
},
|
|
94
121
|
});
|
|
95
122
|
const NtdCopy = /* @__PURE__ */ createIcon({
|
|
@@ -101,24 +128,28 @@ const NtdCopy = /* @__PURE__ */ createIcon({
|
|
|
101
128
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "9", y: "9", width: "12", height: "12", rx: "2.5", fill: primaryColor }), jsx("rect", { x: "9", y: "9", width: "12", height: "12", rx: "2.5", fill: "white", opacity: "0.1" }), jsx("path", { d: "M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1", stroke: secondaryColor, strokeWidth: "1.8" })] })),
|
|
102
129
|
},
|
|
103
130
|
});
|
|
131
|
+
/** NtdClipboard's two lines of text, high on the board (they sat below its middle). */
|
|
132
|
+
const CLIPBOARD_TEXT = 'M8 11h8M8 14.5h5';
|
|
104
133
|
const NtdClipboard = /* @__PURE__ */ createIcon({
|
|
105
134
|
displayName: 'NtdClipboard',
|
|
106
135
|
paths: {
|
|
107
|
-
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [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 }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: primaryColor, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsx("
|
|
108
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [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" }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("
|
|
109
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "4", width: "16", height: "18", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), 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" }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("
|
|
110
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [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 }), jsx("
|
|
136
|
+
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [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 }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: primaryColor, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity }), jsx("path", { d: CLIPBOARD_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
|
|
137
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [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" }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: CLIPBOARD_TEXT, stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
138
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "4", y: "4", width: "16", height: "18", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), 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" }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: CLIPBOARD_TEXT, stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
139
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [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 }), jsx("rect", { x: "8", y: "2", width: "8", height: "3.5", rx: "1.5", fill: secondaryColor, stroke: secondaryColor, strokeWidth: "1.5" }), jsx("path", { d: CLIPBOARD_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })] })),
|
|
111
140
|
},
|
|
112
141
|
});
|
|
113
142
|
// The stroke glyphs (plus, minus, check, the arrows) are twice the stroke width when filled, so
|
|
114
|
-
// `solid` reads bold next to `outline` and still follows `strokeWidth`.
|
|
143
|
+
// `solid` reads bold next to `outline` and still follows `strokeWidth`. Plus, check and close
|
|
144
|
+
// split their two strokes between the colours in duotone and vivid (no backing disc); vivid adds
|
|
145
|
+
// the crossing of the plus and the close in the accent colour.
|
|
115
146
|
const NtdPlus = /* @__PURE__ */ createIcon({
|
|
116
147
|
displayName: 'NtdPlus',
|
|
117
148
|
paths: {
|
|
118
149
|
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
|
|
119
150
|
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth })),
|
|
120
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
121
|
-
vivid: ({ primaryColor, strokeWidth }) => (
|
|
151
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5 12h14", stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M12 5v14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
152
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5 12h14", stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M12 5v14", stroke: primaryColor, strokeWidth: strokeWidth * 2 }), jsx("rect", { x: 12 - strokeWidth, y: 12 - strokeWidth, width: strokeWidth * 2, height: strokeWidth * 2, fill: accentColor, opacity: accentOpacity })] })),
|
|
122
153
|
},
|
|
123
154
|
});
|
|
124
155
|
const NtdMinus = /* @__PURE__ */ createIcon({
|
|
@@ -135,8 +166,8 @@ const NtdCheck = /* @__PURE__ */ createIcon({
|
|
|
135
166
|
paths: {
|
|
136
167
|
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
|
|
137
168
|
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth })),
|
|
138
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
139
|
-
vivid: ({ primaryColor, strokeWidth }) => (
|
|
169
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 17l-5-5", stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M20 6L9 17", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
170
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 17l-5-5", stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsx("path", { d: "M20 6L9 17", stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
140
171
|
},
|
|
141
172
|
});
|
|
142
173
|
const NtdFilter = /* @__PURE__ */ createIcon({
|
|
@@ -166,52 +197,38 @@ const NtdPrint = /* @__PURE__ */ createIcon({
|
|
|
166
197
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [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 }), 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" }), jsx("path", { d: "M6 9V3h12v6", stroke: secondaryColor, strokeWidth: "2", fill: secondaryColor }), jsx("rect", { x: "6", y: "15", width: "12", height: "7", rx: "1", fill: "#3B82F6" }), jsx("line", { x1: "9", y1: "18", x2: "15", y2: "18", stroke: "white", strokeWidth: "1", opacity: "0.35" })] })),
|
|
167
198
|
},
|
|
168
199
|
});
|
|
169
|
-
const NtdZoomIn = /* @__PURE__ */
|
|
170
|
-
|
|
171
|
-
paths: {
|
|
172
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "11", y1: "8", x2: "11", y2: "14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
173
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "11", y1: "8", x2: "11", y2: "14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
174
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "7", fill: secondaryColor, opacity: secondaryOpacity }), jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "11", y1: "8", x2: "11", y2: "14", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
175
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: secondaryColor, strokeWidth: "1.8" }), jsx("line", { x1: "11", y1: "8", x2: "11", y2: "14", stroke: "#3B82F6", strokeWidth: "1.5" }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: secondaryColor, strokeWidth: "1.5" })] })),
|
|
176
|
-
},
|
|
177
|
-
});
|
|
178
|
-
const NtdZoomOut = /* @__PURE__ */ createIcon({
|
|
179
|
-
displayName: 'NtdZoomOut',
|
|
180
|
-
paths: {
|
|
181
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
182
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
183
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "7", fill: secondaryColor, opacity: secondaryOpacity }), jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: primaryColor, strokeWidth: strokeWidth }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
184
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("circle", { cx: "11", cy: "11", r: "8", stroke: primaryColor, strokeWidth: "2", fill: "none" }), jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65", stroke: secondaryColor, strokeWidth: "1.8" }), jsx("line", { x1: "8", y1: "11", x2: "14", y2: "11", stroke: "#3B82F6", strokeWidth: "1.5" })] })),
|
|
185
|
-
},
|
|
186
|
-
});
|
|
200
|
+
const NtdZoomIn = /* @__PURE__ */ lensIcon('NtdZoomIn', 'M11 8v6M8 11h6');
|
|
201
|
+
const NtdZoomOut = /* @__PURE__ */ lensIcon('NtdZoomOut', 'M8 11h6');
|
|
187
202
|
/* NtdUndo / NtdRedo — the old glyph was two arcs of different radii whose ends
|
|
188
203
|
never met the arrow, which read as a fish rather than a rotation. Redrawn as
|
|
189
204
|
one semicircular loop (r 5.5 about 13.5,14 — mirrored to 10.5,14 for redo)
|
|
190
205
|
plus a chevron whose apex lands exactly on the tail start, so the arrow and
|
|
191
206
|
the tail close. `solid` fills the head so it is no longer byte-identical to
|
|
192
207
|
`outline`; the tail then starts at the head's back edge (9.5 / 14.5) instead
|
|
193
|
-
of the apex, keeping the stroke cap from poking past the tip
|
|
208
|
+
of the apex, keeping the stroke cap from poking past the tip — duotone and
|
|
209
|
+
vivid too. Every variant but `outline` draws the tail at twice the stroke
|
|
210
|
+
width. */
|
|
194
211
|
const NtdUndo = /* @__PURE__ */ createIcon({
|
|
195
212
|
displayName: 'NtdUndo',
|
|
196
213
|
paths: {
|
|
197
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
|
|
214
|
+
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
|
|
198
215
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
199
216
|
// Two-tone by PART, not by a backing blob: arrowhead in primary, tail in
|
|
200
217
|
// secondary, both at full strength. (The old version put a secondary disc
|
|
201
218
|
// behind the curve, which read as "a ball in the middle"; a washed-out tail
|
|
202
219
|
// would likewise miss the point — this is a colour split, not an underlay.)
|
|
203
|
-
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "
|
|
204
|
-
vivid: ({ primaryColor,
|
|
220
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
|
|
221
|
+
vivid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9.5 8.5H13.5a5.5 5.5 0 1 1 0 11H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M9.5 4L5 8.5l4.5 4.5z", fill: primaryColor })] })),
|
|
205
222
|
},
|
|
206
223
|
});
|
|
207
224
|
const NtdRedo = /* @__PURE__ */ createIcon({
|
|
208
225
|
displayName: 'NtdRedo',
|
|
209
226
|
paths: {
|
|
210
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
|
|
227
|
+
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
|
|
211
228
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M19 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
212
229
|
// Mirror of NtdUndo: arrowhead primary, tail secondary — no backing disc.
|
|
213
|
-
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "
|
|
214
|
-
vivid: ({ primaryColor,
|
|
230
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
|
|
231
|
+
vivid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M14.5 8.5H10.5a5.5 5.5 0 1 0 0 11H15", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M14.5 4L19 8.5l-4.5 4.5z", fill: primaryColor })] })),
|
|
215
232
|
},
|
|
216
233
|
});
|
|
217
234
|
// Reply: the arrow turns back to the left at a right angle (the "corner-up-left" of a message
|
|
@@ -225,14 +242,15 @@ const NtdReply = /* @__PURE__ */ createIcon({
|
|
|
225
242
|
vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M20 18v-2a4 4 0 0 0-4-4H8", stroke: primaryColor, strokeWidth: "2.2", fill: "none" }), jsx("path", { d: "M9 7L4 12l5 5z", fill: primaryColor })] })),
|
|
226
243
|
},
|
|
227
244
|
});
|
|
245
|
+
// A line glyph: twice the stroke width in every variant but `outline`.
|
|
228
246
|
const NtdLink = /* @__PURE__ */ createIcon({
|
|
229
247
|
displayName: 'NtdLink',
|
|
230
248
|
paths: {
|
|
231
|
-
solid: ({ primaryColor, strokeWidth }) => (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" })),
|
|
249
|
+
solid: ({ primaryColor, strokeWidth }) => (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" })),
|
|
232
250
|
outline: ({ primaryColor, strokeWidth }) => (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" })),
|
|
233
251
|
// one ring per colour: the right link primary, the left one secondary
|
|
234
|
-
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [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" }), 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" })] })),
|
|
235
|
-
vivid: ({ primaryColor,
|
|
252
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [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" }), 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" })] })),
|
|
253
|
+
vivid: ({ primaryColor, strokeWidth }) => (jsx(Fragment, { children: 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" }) })),
|
|
236
254
|
},
|
|
237
255
|
});
|
|
238
256
|
// NtdSettings: a gear whose eight teeth have flat tops, in every variant but `rounded`, which
|
|
@@ -254,22 +272,25 @@ const NtdSettings = /* @__PURE__ */ createIcon({
|
|
|
254
272
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: `${GEAR}${GEAR_HOLE}`, fillRule: "evenodd", fill: primaryColor }), jsx("path", { d: `${GEAR_HUB}${GEAR_HOLE}`, fillRule: "evenodd", fill: secondaryColor })] })),
|
|
255
273
|
},
|
|
256
274
|
});
|
|
275
|
+
// NtdLogIn / NtdLogOut: a line glyph, twice the stroke width in every variant but `outline`. The
|
|
276
|
+
// shaft stops 2 short of the arrowhead's point, so the square caps of `sharp` stay inside it.
|
|
277
|
+
// Duotone and vivid split it like NtdDownload: the arrow primary, the door frame secondary.
|
|
257
278
|
const NtdLogIn = /* @__PURE__ */ createIcon({
|
|
258
279
|
displayName: 'NtdLogIn',
|
|
259
280
|
paths: {
|
|
260
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
261
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
262
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
263
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke:
|
|
281
|
+
solid: ({ primaryColor, strokeWidth }) => (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" })),
|
|
282
|
+
outline: ({ primaryColor, strokeWidth }) => (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" })),
|
|
283
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
284
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M9 7l5 5-5 5M12 12H3", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
264
285
|
},
|
|
265
286
|
});
|
|
266
287
|
const NtdLogOut = /* @__PURE__ */ createIcon({
|
|
267
288
|
displayName: 'NtdLogOut',
|
|
268
289
|
paths: {
|
|
269
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
270
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
271
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
272
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke:
|
|
290
|
+
solid: ({ primaryColor, strokeWidth }) => (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" })),
|
|
291
|
+
outline: ({ primaryColor, strokeWidth }) => (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" })),
|
|
292
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
293
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4", stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: "M15 7l5 5-5 5M18 12H9", stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })] })),
|
|
273
294
|
},
|
|
274
295
|
});
|
|
275
296
|
const NtdLock = /* @__PURE__ */ createIcon({
|
|
@@ -3,49 +3,65 @@ import { createIcon } from '../createIcon.js';
|
|
|
3
3
|
import { paperIcon, within } from '../iconParts.js';
|
|
4
4
|
|
|
5
5
|
// The band sits halfway down the case and is a cut through it: kept inside the case it meets the
|
|
6
|
-
// sides flush (its round caps stuck out of both). A clasp hangs from its middle
|
|
6
|
+
// sides flush (its round caps stuck out of both). A clasp hangs from its middle: low and wide, in
|
|
7
|
+
// the accent colour like the band on the filled case (secondary in duotone), with a primary lock
|
|
8
|
+
// square in it where it had a slot showing the band through.
|
|
7
9
|
const BRIEFCASE_CASE = { x: 2, y: 7, width: 20, height: 14, rx: 2 };
|
|
8
10
|
const BRIEFCASE_HANDLE = 'M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2';
|
|
9
|
-
/** The clasp over the band, hanging down from it
|
|
10
|
-
const BRIEFCASE_CLASP = '
|
|
11
|
-
const
|
|
11
|
+
/** The clasp over the band, hanging down from it. */
|
|
12
|
+
const BRIEFCASE_CLASP = 'M10.6 11.3h2.8a.8.8 0 01.8.8v2.6a.8.8 0 01-.8.8h-2.8a.8.8 0 01-.8-.8v-2.6a.8.8 0 01.8-.8z';
|
|
13
|
+
const BRIEFCASE_LOCK = { x: 11.2, y: 12.6, width: 1.6, height: 1.6 };
|
|
12
14
|
const NtdBriefcase = /* @__PURE__ */ createIcon({
|
|
13
15
|
displayName: 'NtdBriefcase',
|
|
14
16
|
paths: {
|
|
15
|
-
solid: (
|
|
17
|
+
solid: (props) => (jsxs(Fragment, { children: [jsx("rect", { ...BRIEFCASE_CASE, fill: props.primaryColor }), jsx("path", { d: BRIEFCASE_HANDLE, stroke: props.primaryColor, strokeWidth: props.strokeWidth, fill: "none" }), within(props.uid, 'band', jsx("rect", { ...BRIEFCASE_CASE }), jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: props.accentColor, strokeWidth: "1.5", opacity: props.accentOpacity })), jsx("path", { d: BRIEFCASE_CLASP, fill: props.accentColor, opacity: props.accentOpacity }), jsx("rect", { ...BRIEFCASE_LOCK, fill: props.primaryColor })] })),
|
|
16
18
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...BRIEFCASE_CASE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: primaryColor, strokeWidth: "1.5" }), jsx("path", { d: BRIEFCASE_CLASP, fill: primaryColor })] })),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
// fills only: the case and the handle primary, the band and the clasp secondary
|
|
20
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => (jsxs(Fragment, { children: [jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), within(uid, 'band', jsx("rect", { ...BRIEFCASE_CASE }), jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: secondaryColor, strokeWidth: "1.5" })), jsx("path", { d: BRIEFCASE_CLASP, fill: secondaryColor }), jsx("rect", { ...BRIEFCASE_LOCK, fill: primaryColor })] })),
|
|
21
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxs(Fragment, { children: [jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsx("path", { d: BRIEFCASE_HANDLE, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }), within(uid, 'band', jsx("rect", { ...BRIEFCASE_CASE }), jsx("line", { x1: "2", y1: "12.5", x2: "22", y2: "12.5", stroke: secondaryColor, strokeWidth: "1.5" })), jsx("path", { d: BRIEFCASE_CLASP, fill: accentColor, opacity: accentOpacity }), jsx("rect", { ...BRIEFCASE_LOCK, fill: primaryColor })] })),
|
|
19
22
|
},
|
|
20
23
|
});
|
|
24
|
+
// NtdDollar: a line glyph, twice the stroke width in every variant but `outline`; the stem runs
|
|
25
|
+
// 2.5 → 21.5 there, so its caps stay inside the box at that width.
|
|
26
|
+
const DOLLAR_S = 'M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6';
|
|
27
|
+
const DOLLAR_STEM = 'M12 2.5v19';
|
|
21
28
|
const NtdDollar = /* @__PURE__ */ createIcon({
|
|
22
29
|
displayName: 'NtdDollar',
|
|
23
30
|
paths: {
|
|
24
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
25
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
26
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
27
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("
|
|
31
|
+
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${DOLLAR_STEM}${DOLLAR_S}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
|
|
32
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `M12 1v22${DOLLAR_S}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
33
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: DOLLAR_S, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: DOLLAR_STEM, stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
34
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: DOLLAR_S, stroke: secondaryColor, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: DOLLAR_STEM, stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
28
35
|
},
|
|
29
36
|
});
|
|
37
|
+
// NtdWallet: a body, the back pocket rising above it on a slant (it runs under the body, so the
|
|
38
|
+
// two meet without a seam — the old top stroke stopped short of the body), and a clasp pocket cut
|
|
39
|
+
// into the right side with its stud. Filled, the pocket is in the accent colour.
|
|
40
|
+
const WALLET_BODY = { x: 2, y: 6.5, width: 20, height: 14.5, rx: 2.5 };
|
|
41
|
+
const WALLET_BACK = 'M4.5 8L16 3.5a1 1 0 011.3.95V8z';
|
|
42
|
+
const WALLET_POCKET = 'M22 10.5h-4.5a2.5 2.5 0 000 5H22z';
|
|
43
|
+
const WALLET_POCKET_LINE = 'M22 10.5h-4.5a2.5 2.5 0 000 5H22';
|
|
30
44
|
const NtdWallet = /* @__PURE__ */ createIcon({
|
|
31
45
|
displayName: 'NtdWallet',
|
|
32
46
|
paths: {
|
|
33
|
-
solid: ({ primaryColor, accentColor, accentOpacity,
|
|
34
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: WALLET_BACK, fill: primaryColor }), jsx("rect", { ...WALLET_BODY, fill: primaryColor }), within(uid, 'pocket', jsx("rect", { ...WALLET_BODY }), jsx("path", { d: WALLET_POCKET, fill: accentColor, opacity: accentOpacity })), jsx("circle", { cx: "17.6", cy: "13", r: "1.1", fill: primaryColor })] })),
|
|
48
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M4.5 6.5L16 3.5a1 1 0 011.3.95V6.5", stroke: primaryColor, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" }), jsx("rect", { ...WALLET_BODY, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: WALLET_POCKET_LINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("circle", { cx: "17.6", cy: "13", r: "1.1", fill: primaryColor })] })),
|
|
49
|
+
// fills only: the body primary, the back pocket and the clasp pocket secondary
|
|
50
|
+
duotone: ({ primaryColor, secondaryColor, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: WALLET_BACK, fill: secondaryColor }), jsx("rect", { ...WALLET_BODY, fill: primaryColor }), within(uid, 'pocket', jsx("rect", { ...WALLET_BODY }), jsx("path", { d: WALLET_POCKET, fill: secondaryColor })), jsx("circle", { cx: "17.6", cy: "13", r: "1.1", fill: primaryColor })] })),
|
|
51
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [jsx("path", { d: WALLET_BACK, fill: secondaryColor }), jsx("rect", { ...WALLET_BODY, fill: primaryColor }), within(uid, 'pocket', jsx("rect", { ...WALLET_BODY }), jsx("path", { d: WALLET_POCKET, fill: accentColor, opacity: accentOpacity })), jsx("circle", { cx: "17.6", cy: "13", r: "1.1", fill: secondaryColor })] })),
|
|
37
52
|
},
|
|
38
53
|
});
|
|
39
|
-
// NtdReceipt: two rows of description and amount, then the total on its own on the right.
|
|
54
|
+
// NtdReceipt: two rows of description and amount, then the total on its own on the right. The
|
|
55
|
+
// amounts end at 18.4, right by the edge; the descriptions run 7 → 13.5.
|
|
40
56
|
const RECEIPT = 'M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z';
|
|
41
|
-
const RECEIPT_TEXT = 'M7
|
|
57
|
+
const RECEIPT_TEXT = 'M7 7.5h6.5M16.4 7.5h2M7 11.5h6.5M16.4 11.5h2M14.4 15.5h4';
|
|
42
58
|
const NtdReceipt = /* @__PURE__ */ createIcon({
|
|
43
59
|
displayName: 'NtdReceipt',
|
|
44
60
|
paths: {
|
|
45
61
|
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: RECEIPT, fill: primaryColor }), jsx("path", { d: RECEIPT_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity, fill: "none" })] })),
|
|
46
62
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: RECEIPT, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: RECEIPT_TEXT, stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
|
|
47
63
|
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: RECEIPT, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: RECEIPT, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: RECEIPT_TEXT, stroke: primaryColor, strokeWidth: "1.5", fill: "none" })] })),
|
|
48
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: RECEIPT, fill: primaryColor }), jsx("path", { d:
|
|
64
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: RECEIPT, fill: primaryColor }), jsx("path", { d: RECEIPT_TEXT, stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity, fill: "none" }), jsx("path", { d: "M14.4 15.5h4", stroke: secondaryColor, strokeWidth: "1.8" })] })),
|
|
49
65
|
},
|
|
50
66
|
});
|
|
51
67
|
const NtdBank = /* @__PURE__ */ createIcon({
|
|
@@ -57,22 +73,43 @@ const NtdBank = /* @__PURE__ */ createIcon({
|
|
|
57
73
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("polygon", { points: "12,2 2,9 22,9", fill: primaryColor }), jsx("polygon", { points: "12,2 2,9 22,9", fill: "white", opacity: "0.08" }), jsx("rect", { x: "2", y: "18", width: "20", height: "2", rx: "0.5", fill: secondaryColor }), jsx("rect", { x: "5", y: "9", width: "2", height: "9", fill: "#3B82F6" }), jsx("rect", { x: "9", y: "9", width: "2", height: "9", fill: "#10B981" }), jsx("rect", { x: "13", y: "9", width: "2", height: "9", fill: "#F59E0B" }), jsx("rect", { x: "17", y: "9", width: "2", height: "9", fill: "#F59E0B" })] })),
|
|
58
74
|
},
|
|
59
75
|
});
|
|
76
|
+
// NtdTrendUp / NtdTrendDown: line glyphs, twice the stroke width in every variant but `outline`,
|
|
77
|
+
// drawn 2 in from the box at that width. The line's last leg stops 0.35 × the line width short of
|
|
78
|
+
// the head's corner on each axis — run into the corner, its square cap stuck out in `sharp`.
|
|
79
|
+
function trendUp(back) {
|
|
80
|
+
return { line: `M3 16l5-5 4 4L${21 - back} ${6 + back}`, head: 'M15 6h6v6' };
|
|
81
|
+
}
|
|
82
|
+
function trendDown(back) {
|
|
83
|
+
return { line: `M3 8l5 5 4-4L${21 - back} ${18 - back}`, head: 'M15 18h6v-6' };
|
|
84
|
+
}
|
|
85
|
+
function trendArrow(shape, line, head, strokeWidth) {
|
|
86
|
+
const width = strokeWidth * 2;
|
|
87
|
+
const s = shape(width * 0.35);
|
|
88
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: s.line, stroke: line, strokeWidth: width, fill: "none" }), jsx("path", { d: s.head, stroke: head, strokeWidth: width, fill: "none" })] }));
|
|
89
|
+
}
|
|
90
|
+
function trendOutline(shape) {
|
|
91
|
+
return ({ primaryColor, strokeWidth }) => {
|
|
92
|
+
const s = shape(0);
|
|
93
|
+
return (jsx("path", { d: `${s.line}${s.head}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }));
|
|
94
|
+
};
|
|
95
|
+
}
|
|
60
96
|
const NtdTrendUp = /* @__PURE__ */ createIcon({
|
|
61
97
|
displayName: 'NtdTrendUp',
|
|
62
98
|
paths: {
|
|
63
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
64
|
-
outline: (
|
|
65
|
-
|
|
66
|
-
|
|
99
|
+
solid: ({ primaryColor, strokeWidth }) => trendArrow(trendUp, primaryColor, primaryColor, strokeWidth),
|
|
100
|
+
outline: trendOutline(trendUp),
|
|
101
|
+
// the line secondary, the head primary
|
|
102
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendUp, secondaryColor, primaryColor, strokeWidth),
|
|
103
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendUp, primaryColor, secondaryColor, strokeWidth),
|
|
67
104
|
},
|
|
68
105
|
});
|
|
69
106
|
const NtdTrendDown = /* @__PURE__ */ createIcon({
|
|
70
107
|
displayName: 'NtdTrendDown',
|
|
71
108
|
paths: {
|
|
72
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
73
|
-
outline: (
|
|
74
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
75
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
109
|
+
solid: ({ primaryColor, strokeWidth }) => trendArrow(trendDown, primaryColor, primaryColor, strokeWidth),
|
|
110
|
+
outline: trendOutline(trendDown),
|
|
111
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendDown, secondaryColor, primaryColor, strokeWidth),
|
|
112
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendDown, primaryColor, secondaryColor, strokeWidth),
|
|
76
113
|
},
|
|
77
114
|
});
|
|
78
115
|
// NtdPercent: the dots are rings in every variant, a hole in each (they were plain discs when
|
|
@@ -89,8 +126,8 @@ const NtdPercent = /* @__PURE__ */ createIcon({
|
|
|
89
126
|
},
|
|
90
127
|
});
|
|
91
128
|
// NtdInvoice: NtdFile's page with a short title, two rows of item and amount, and the total on
|
|
92
|
-
// its own at the bottom right, as on a receipt.
|
|
93
|
-
const NtdInvoice = /* @__PURE__ */ paperIcon('NtdInvoice', 'M7
|
|
129
|
+
// its own at the bottom right, as on a receipt: the items from 7 to 11.5, the amounts out to 17.
|
|
130
|
+
const NtdInvoice = /* @__PURE__ */ paperIcon('NtdInvoice', 'M7 7h3M7 12.5h4.5M14.3 12.5h2.7M7 15.5h4.5M14.3 15.5h2.7M13 19h4');
|
|
94
131
|
/** @deprecated A second invoice next to {@link NtdInvoice} — use that. */
|
|
95
132
|
const NtdInvoiceDoc = NtdInvoice;
|
|
96
133
|
const NtdStore = /* @__PURE__ */ createIcon({
|