@nice2dev/icons 1.3.1 → 1.3.3
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 +87 -0
- package/dist/cjs/createIcon.js +0 -1
- package/dist/cjs/iconParts.js +33 -1
- package/dist/cjs/icons/actions.js +74 -61
- package/dist/cjs/icons/business.js +63 -27
- package/dist/cjs/icons/education.js +31 -11
- package/dist/cjs/icons/files.js +55 -17
- package/dist/cjs/icons/media.js +51 -20
- package/dist/cjs/icons/navigation.js +24 -7
- package/dist/cjs/icons/omniverk.js +2 -1
- package/dist/cjs/icons/realestate.js +45 -10
- package/dist/cjs/icons/science.js +10 -6
- package/dist/cjs/icons/shapes.js +30 -8
- package/dist/cjs/icons/social.js +3 -9
- package/dist/cjs/icons/travel.js +20 -4
- package/dist/cjs/icons/ui.js +41 -35
- package/dist/cjs/icons/weather.js +5 -4
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/esm/createIcon.js +0 -1
- package/dist/esm/iconParts.js +33 -3
- package/dist/esm/icons/actions.js +76 -63
- package/dist/esm/icons/business.js +64 -28
- package/dist/esm/icons/education.js +31 -11
- package/dist/esm/icons/files.js +55 -17
- package/dist/esm/icons/media.js +51 -20
- package/dist/esm/icons/navigation.js +24 -7
- package/dist/esm/icons/omniverk.js +2 -1
- package/dist/esm/icons/realestate.js +45 -10
- package/dist/esm/icons/science.js +10 -6
- package/dist/esm/icons/shapes.js +30 -8
- package/dist/esm/icons/social.js +3 -9
- package/dist/esm/icons/travel.js +20 -4
- package/dist/esm/icons/ui.js +42 -36
- package/dist/esm/icons/weather.js +5 -4
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/types/iconParts.d.ts +13 -1
- package/dist/types/types.d.ts +4 -0
- package/package.json +2 -2
|
@@ -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,8 +97,9 @@ 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
|
});
|
|
86
105
|
const NtdShare = /* @__PURE__ */ createIcon({
|
|
@@ -101,24 +120,28 @@ const NtdCopy = /* @__PURE__ */ createIcon({
|
|
|
101
120
|
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
121
|
},
|
|
103
122
|
});
|
|
123
|
+
/** NtdClipboard's two lines of text, high on the board (they sat below its middle). */
|
|
124
|
+
const CLIPBOARD_TEXT = 'M8 11h8M8 14.5h5';
|
|
104
125
|
const NtdClipboard = /* @__PURE__ */ createIcon({
|
|
105
126
|
displayName: 'NtdClipboard',
|
|
106
127
|
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("
|
|
128
|
+
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 })] })),
|
|
129
|
+
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 })] })),
|
|
130
|
+
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 })] })),
|
|
131
|
+
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
132
|
},
|
|
112
133
|
});
|
|
113
134
|
// 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`.
|
|
135
|
+
// `solid` reads bold next to `outline` and still follows `strokeWidth`. Plus, check and close
|
|
136
|
+
// split their two strokes between the colours in duotone and vivid (no backing disc); vivid adds
|
|
137
|
+
// the crossing of the plus and the close in the accent colour.
|
|
115
138
|
const NtdPlus = /* @__PURE__ */ createIcon({
|
|
116
139
|
displayName: 'NtdPlus',
|
|
117
140
|
paths: {
|
|
118
141
|
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
|
|
119
142
|
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 5v14M5 12h14", stroke: primaryColor, strokeWidth: strokeWidth })),
|
|
120
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
121
|
-
vivid: ({ primaryColor, strokeWidth }) => (
|
|
143
|
+
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 })] })),
|
|
144
|
+
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
145
|
},
|
|
123
146
|
});
|
|
124
147
|
const NtdMinus = /* @__PURE__ */ createIcon({
|
|
@@ -135,8 +158,8 @@ const NtdCheck = /* @__PURE__ */ createIcon({
|
|
|
135
158
|
paths: {
|
|
136
159
|
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth * 2 })),
|
|
137
160
|
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M20 6L9 17l-5-5", stroke: primaryColor, strokeWidth: strokeWidth })),
|
|
138
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
139
|
-
vivid: ({ primaryColor, strokeWidth }) => (
|
|
161
|
+
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 })] })),
|
|
162
|
+
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
163
|
},
|
|
141
164
|
});
|
|
142
165
|
const NtdFilter = /* @__PURE__ */ createIcon({
|
|
@@ -166,52 +189,38 @@ const NtdPrint = /* @__PURE__ */ createIcon({
|
|
|
166
189
|
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
190
|
},
|
|
168
191
|
});
|
|
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
|
-
});
|
|
192
|
+
const NtdZoomIn = /* @__PURE__ */ lensIcon('NtdZoomIn', 'M11 8v6M8 11h6');
|
|
193
|
+
const NtdZoomOut = /* @__PURE__ */ lensIcon('NtdZoomOut', 'M8 11h6');
|
|
187
194
|
/* NtdUndo / NtdRedo — the old glyph was two arcs of different radii whose ends
|
|
188
195
|
never met the arrow, which read as a fish rather than a rotation. Redrawn as
|
|
189
196
|
one semicircular loop (r 5.5 about 13.5,14 — mirrored to 10.5,14 for redo)
|
|
190
197
|
plus a chevron whose apex lands exactly on the tail start, so the arrow and
|
|
191
198
|
the tail close. `solid` fills the head so it is no longer byte-identical to
|
|
192
199
|
`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
|
|
200
|
+
of the apex, keeping the stroke cap from poking past the tip — duotone and
|
|
201
|
+
vivid too. Every variant but `outline` draws the tail at twice the stroke
|
|
202
|
+
width. */
|
|
194
203
|
const NtdUndo = /* @__PURE__ */ createIcon({
|
|
195
204
|
displayName: 'NtdUndo',
|
|
196
205
|
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 })] })),
|
|
206
|
+
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
207
|
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
208
|
// Two-tone by PART, not by a backing blob: arrowhead in primary, tail in
|
|
200
209
|
// secondary, both at full strength. (The old version put a secondary disc
|
|
201
210
|
// behind the curve, which read as "a ball in the middle"; a washed-out tail
|
|
202
211
|
// 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,
|
|
212
|
+
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 })] })),
|
|
213
|
+
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
214
|
},
|
|
206
215
|
});
|
|
207
216
|
const NtdRedo = /* @__PURE__ */ createIcon({
|
|
208
217
|
displayName: 'NtdRedo',
|
|
209
218
|
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 })] })),
|
|
219
|
+
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
220
|
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
221
|
// Mirror of NtdUndo: arrowhead primary, tail secondary — no backing disc.
|
|
213
|
-
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "
|
|
214
|
-
vivid: ({ primaryColor,
|
|
222
|
+
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 })] })),
|
|
223
|
+
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
224
|
},
|
|
216
225
|
});
|
|
217
226
|
// Reply: the arrow turns back to the left at a right angle (the "corner-up-left" of a message
|
|
@@ -225,14 +234,15 @@ const NtdReply = /* @__PURE__ */ createIcon({
|
|
|
225
234
|
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
235
|
},
|
|
227
236
|
});
|
|
237
|
+
// A line glyph: twice the stroke width in every variant but `outline`.
|
|
228
238
|
const NtdLink = /* @__PURE__ */ createIcon({
|
|
229
239
|
displayName: 'NtdLink',
|
|
230
240
|
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" })),
|
|
241
|
+
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
242
|
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
243
|
// 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,
|
|
244
|
+
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" })] })),
|
|
245
|
+
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
246
|
},
|
|
237
247
|
});
|
|
238
248
|
// NtdSettings: a gear whose eight teeth have flat tops, in every variant but `rounded`, which
|
|
@@ -254,22 +264,25 @@ const NtdSettings = /* @__PURE__ */ createIcon({
|
|
|
254
264
|
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
265
|
},
|
|
256
266
|
});
|
|
267
|
+
// NtdLogIn / NtdLogOut: a line glyph, twice the stroke width in every variant but `outline`. The
|
|
268
|
+
// shaft stops 2 short of the arrowhead's point, so the square caps of `sharp` stay inside it.
|
|
269
|
+
// Duotone and vivid split it like NtdDownload: the arrow primary, the door frame secondary.
|
|
257
270
|
const NtdLogIn = /* @__PURE__ */ createIcon({
|
|
258
271
|
displayName: 'NtdLogIn',
|
|
259
272
|
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:
|
|
273
|
+
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" })),
|
|
274
|
+
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" })),
|
|
275
|
+
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" })] })),
|
|
276
|
+
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
277
|
},
|
|
265
278
|
});
|
|
266
279
|
const NtdLogOut = /* @__PURE__ */ createIcon({
|
|
267
280
|
displayName: 'NtdLogOut',
|
|
268
281
|
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:
|
|
282
|
+
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" })),
|
|
283
|
+
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" })),
|
|
284
|
+
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" })] })),
|
|
285
|
+
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
286
|
},
|
|
274
287
|
});
|
|
275
288
|
const NtdLock = /* @__PURE__ */ createIcon({
|
|
@@ -1,51 +1,66 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { createIcon } from '../createIcon.js';
|
|
3
|
-
import { paperIcon, within } from '../iconParts.js';
|
|
3
|
+
import { paperIcon, within, detailColor } 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,
|
|
7
|
+
// secondary on the filled case (the accent colour in vivid, its third colour).
|
|
7
8
|
const BRIEFCASE_CASE = { x: 2, y: 7, width: 20, height: 14, rx: 2 };
|
|
8
9
|
const BRIEFCASE_HANDLE = 'M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2';
|
|
9
10
|
/** The clasp over the band, hanging down from it, with its slot (even-odd). */
|
|
10
|
-
const BRIEFCASE_CLASP = '
|
|
11
|
-
const BRIEFCASE_SLOT = 'M11.
|
|
11
|
+
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';
|
|
12
|
+
const BRIEFCASE_SLOT = 'M11.2 13.2h1.6v.9h-1.6z';
|
|
12
13
|
const NtdBriefcase = /* @__PURE__ */ createIcon({
|
|
13
14
|
displayName: 'NtdBriefcase',
|
|
14
15
|
paths: {
|
|
15
|
-
solid: (
|
|
16
|
+
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}${BRIEFCASE_SLOT}`, fillRule: "evenodd", fill: detailColor(props) })] })),
|
|
16
17
|
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
|
-
|
|
18
|
+
// fills only: the case and the handle primary, the band and the clasp secondary
|
|
19
|
+
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}${BRIEFCASE_SLOT}`, fillRule: "evenodd", fill: secondaryColor })] })),
|
|
20
|
+
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}${BRIEFCASE_SLOT}`, fillRule: "evenodd", fill: accentColor, opacity: accentOpacity })] })),
|
|
19
21
|
},
|
|
20
22
|
});
|
|
23
|
+
// NtdDollar: a line glyph, twice the stroke width in every variant but `outline`; the stem runs
|
|
24
|
+
// 2.5 → 21.5 there, so its caps stay inside the box at that width.
|
|
25
|
+
const DOLLAR_S = 'M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6';
|
|
26
|
+
const DOLLAR_STEM = 'M12 2.5v19';
|
|
21
27
|
const NtdDollar = /* @__PURE__ */ createIcon({
|
|
22
28
|
displayName: 'NtdDollar',
|
|
23
29
|
paths: {
|
|
24
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
25
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
26
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
27
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("
|
|
30
|
+
solid: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${DOLLAR_STEM}${DOLLAR_S}`, stroke: primaryColor, strokeWidth: strokeWidth * 2, fill: "none" })),
|
|
31
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `M12 1v22${DOLLAR_S}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
32
|
+
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 })] })),
|
|
33
|
+
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
34
|
},
|
|
29
35
|
});
|
|
36
|
+
// NtdWallet: a body, the back pocket rising above it on a slant (it runs under the body, so the
|
|
37
|
+
// two meet without a seam — the old top stroke stopped short of the body), and a clasp pocket cut
|
|
38
|
+
// into the right side with its stud. Filled, the pocket is in the accent colour.
|
|
39
|
+
const WALLET_BODY = { x: 2, y: 6.5, width: 20, height: 14.5, rx: 2.5 };
|
|
40
|
+
const WALLET_BACK = 'M4.5 8L16 3.5a1 1 0 011.3.95V8z';
|
|
41
|
+
const WALLET_POCKET = 'M22 10.5h-4.5a2.5 2.5 0 000 5H22z';
|
|
42
|
+
const WALLET_POCKET_LINE = 'M22 10.5h-4.5a2.5 2.5 0 000 5H22';
|
|
30
43
|
const NtdWallet = /* @__PURE__ */ createIcon({
|
|
31
44
|
displayName: 'NtdWallet',
|
|
32
45
|
paths: {
|
|
33
|
-
solid: ({ primaryColor, accentColor, accentOpacity,
|
|
34
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
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 })] })),
|
|
47
|
+
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 })] })),
|
|
48
|
+
// fills only: the body primary, the back pocket and the clasp pocket secondary
|
|
49
|
+
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 })] })),
|
|
50
|
+
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
51
|
},
|
|
38
52
|
});
|
|
39
|
-
// NtdReceipt: two rows of description and amount, then the total on its own on the right.
|
|
53
|
+
// NtdReceipt: two rows of description and amount, then the total on its own on the right. The
|
|
54
|
+
// amounts end at 18.4, right by the edge; the descriptions run 7 → 13.5.
|
|
40
55
|
const RECEIPT = 'M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2H4z';
|
|
41
|
-
const RECEIPT_TEXT = 'M7
|
|
56
|
+
const RECEIPT_TEXT = 'M7 7.5h6.5M16.4 7.5h2M7 11.5h6.5M16.4 11.5h2M14.4 15.5h4';
|
|
42
57
|
const NtdReceipt = /* @__PURE__ */ createIcon({
|
|
43
58
|
displayName: 'NtdReceipt',
|
|
44
59
|
paths: {
|
|
45
60
|
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
61
|
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
62
|
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:
|
|
63
|
+
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
64
|
},
|
|
50
65
|
});
|
|
51
66
|
const NtdBank = /* @__PURE__ */ createIcon({
|
|
@@ -57,22 +72,43 @@ const NtdBank = /* @__PURE__ */ createIcon({
|
|
|
57
72
|
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
73
|
},
|
|
59
74
|
});
|
|
75
|
+
// NtdTrendUp / NtdTrendDown: line glyphs, twice the stroke width in every variant but `outline`,
|
|
76
|
+
// drawn 2 in from the box at that width. The line's last leg stops 0.35 × the line width short of
|
|
77
|
+
// the head's corner on each axis — run into the corner, its square cap stuck out in `sharp`.
|
|
78
|
+
function trendUp(back) {
|
|
79
|
+
return { line: `M3 16l5-5 4 4L${21 - back} ${6 + back}`, head: 'M15 6h6v6' };
|
|
80
|
+
}
|
|
81
|
+
function trendDown(back) {
|
|
82
|
+
return { line: `M3 8l5 5 4-4L${21 - back} ${18 - back}`, head: 'M15 18h6v-6' };
|
|
83
|
+
}
|
|
84
|
+
function trendArrow(shape, line, head, strokeWidth) {
|
|
85
|
+
const width = strokeWidth * 2;
|
|
86
|
+
const s = shape(width * 0.35);
|
|
87
|
+
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" })] }));
|
|
88
|
+
}
|
|
89
|
+
function trendOutline(shape) {
|
|
90
|
+
return ({ primaryColor, strokeWidth }) => {
|
|
91
|
+
const s = shape(0);
|
|
92
|
+
return (jsx("path", { d: `${s.line}${s.head}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }));
|
|
93
|
+
};
|
|
94
|
+
}
|
|
60
95
|
const NtdTrendUp = /* @__PURE__ */ createIcon({
|
|
61
96
|
displayName: 'NtdTrendUp',
|
|
62
97
|
paths: {
|
|
63
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
64
|
-
outline: (
|
|
65
|
-
|
|
66
|
-
|
|
98
|
+
solid: ({ primaryColor, strokeWidth }) => trendArrow(trendUp, primaryColor, primaryColor, strokeWidth),
|
|
99
|
+
outline: trendOutline(trendUp),
|
|
100
|
+
// the line secondary, the head primary
|
|
101
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendUp, secondaryColor, primaryColor, strokeWidth),
|
|
102
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendUp, primaryColor, secondaryColor, strokeWidth),
|
|
67
103
|
},
|
|
68
104
|
});
|
|
69
105
|
const NtdTrendDown = /* @__PURE__ */ createIcon({
|
|
70
106
|
displayName: 'NtdTrendDown',
|
|
71
107
|
paths: {
|
|
72
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
73
|
-
outline: (
|
|
74
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
75
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
108
|
+
solid: ({ primaryColor, strokeWidth }) => trendArrow(trendDown, primaryColor, primaryColor, strokeWidth),
|
|
109
|
+
outline: trendOutline(trendDown),
|
|
110
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendDown, secondaryColor, primaryColor, strokeWidth),
|
|
111
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => trendArrow(trendDown, primaryColor, secondaryColor, strokeWidth),
|
|
76
112
|
},
|
|
77
113
|
});
|
|
78
114
|
// NtdPercent: the dots are rings in every variant, a hole in each (they were plain discs when
|
|
@@ -89,8 +125,8 @@ const NtdPercent = /* @__PURE__ */ createIcon({
|
|
|
89
125
|
},
|
|
90
126
|
});
|
|
91
127
|
// 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
|
|
128
|
+
// its own at the bottom right, as on a receipt: the items from 7 to 11.5, the amounts out to 17.
|
|
129
|
+
const NtdInvoice = /* @__PURE__ */ paperIcon('NtdInvoice', 'M7 7h3M7 12.5h4.5M14.3 12.5h2.7M7 15.5h4.5M14.3 15.5h2.7M13 19h4');
|
|
94
130
|
/** @deprecated A second invoice next to {@link NtdInvoice} — use that. */
|
|
95
131
|
const NtdInvoiceDoc = NtdInvoice;
|
|
96
132
|
const NtdStore = /* @__PURE__ */ createIcon({
|