@nice2dev/icons 1.3.3 → 1.3.5
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 +75 -0
- package/README.md +43 -4
- package/dist/cjs/NiceIconStacker.js +120 -0
- package/dist/cjs/client.js +3 -0
- package/dist/cjs/createIcon.js +25 -4
- package/dist/cjs/figmaExport.js +1 -0
- package/dist/cjs/iconParts.js +6 -5
- package/dist/cjs/icons/actions.js +36 -7
- package/dist/cjs/icons/ai.js +3 -0
- package/dist/cjs/icons/business.js +8 -7
- package/dist/cjs/icons/education.js +18 -14
- package/dist/cjs/icons/files.js +34 -15
- package/dist/cjs/icons/index.js +3 -2
- package/dist/cjs/icons/media.js +41 -15
- package/dist/cjs/icons/navigation.js +8 -6
- package/dist/cjs/icons/realestate.js +5 -2
- package/dist/cjs/icons/shapes.js +18 -14
- package/dist/cjs/icons/sustainability.js +2 -11
- package/dist/cjs/icons/travel.js +15 -14
- package/dist/cjs/icons/ui.js +47 -6
- package/dist/cjs/icons/weather.js +3 -0
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/cjs/stacking.js +100 -0
- package/dist/esm/NiceIconStacker.js +117 -0
- package/dist/esm/client.js +1 -0
- package/dist/esm/createIcon.js +26 -5
- package/dist/esm/figmaExport.js +1 -0
- package/dist/esm/iconParts.js +6 -5
- package/dist/esm/icons/actions.js +36 -7
- package/dist/esm/icons/ai.js +3 -1
- package/dist/esm/icons/business.js +9 -8
- package/dist/esm/icons/education.js +18 -14
- package/dist/esm/icons/files.js +34 -15
- package/dist/esm/icons/index.js +5 -5
- package/dist/esm/icons/media.js +41 -15
- package/dist/esm/icons/navigation.js +8 -6
- package/dist/esm/icons/realestate.js +5 -2
- package/dist/esm/icons/shapes.js +19 -14
- package/dist/esm/icons/sustainability.js +2 -10
- package/dist/esm/icons/travel.js +15 -14
- package/dist/esm/icons/ui.js +47 -7
- package/dist/esm/icons/weather.js +3 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/esm/stacking.js +92 -0
- package/dist/types/NiceIconStacker.d.ts +50 -0
- package/dist/types/client.d.ts +2 -0
- package/dist/types/createIcon.d.ts +5 -0
- package/dist/types/iconParts.d.ts +2 -1
- package/dist/types/icons/ai.d.ts +2 -0
- package/dist/types/icons/index.d.ts +5 -5
- package/dist/types/icons/shapes.d.ts +0 -1
- package/dist/types/icons/sustainability.d.ts +0 -1
- package/dist/types/icons/ui.d.ts +1 -0
- package/dist/types/icons/weather.d.ts +2 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/stacking.d.ts +41 -0
- package/dist/types/types.d.ts +31 -3
- package/package.json +2 -2
|
@@ -102,22 +102,51 @@ const NtdUpload = /* @__PURE__ */ createIcon({
|
|
|
102
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 })] })),
|
|
103
103
|
},
|
|
104
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
|
+
}
|
|
105
113
|
const NtdShare = /* @__PURE__ */ createIcon({
|
|
106
114
|
displayName: 'NtdShare',
|
|
107
115
|
paths: {
|
|
108
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
116
|
+
solid: ({ primaryColor, strokeWidth }) => shareFilled(primaryColor, primaryColor, strokeWidth),
|
|
109
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 })] })),
|
|
110
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
111
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
118
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => shareFilled(primaryColor, secondaryColor, strokeWidth),
|
|
119
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => shareFilled(primaryColor, secondaryColor, strokeWidth),
|
|
112
120
|
},
|
|
113
121
|
});
|
|
122
|
+
// NtdCopy: the front sheet at the top right (it was at the bottom right), the back one showing at
|
|
123
|
+
// the bottom left as a line that stops 1 short of the front — closer than before. The gap is
|
|
124
|
+
// worked out from the stroke width, so it stays the same at any weight; `sharp` draws the back
|
|
125
|
+
// sheet with square corners (the derived one kept their arcs). Duotone, fills only: the back sheet
|
|
126
|
+
// secondary under the primary front one; vivid: the back line secondary.
|
|
127
|
+
const COPY_FRONT = { x: 8.5, y: 3, width: 12.5, height: 12.5, rx: 2.5 };
|
|
128
|
+
const COPY_BACK = { x: 3, y: 8.5, width: 12.5, height: 12.5, rx: 2.5 };
|
|
129
|
+
/** What shows of the back sheet: its edges outside the front one, `gap` short of it. */
|
|
130
|
+
function copyBack(gap, square = false) {
|
|
131
|
+
const top = COPY_FRONT.x - gap;
|
|
132
|
+
const right = COPY_FRONT.y + COPY_FRONT.height + gap;
|
|
133
|
+
return square
|
|
134
|
+
? `M${top} 8.5H3V21h12.5V${right}`
|
|
135
|
+
: `M${top} 8.5H5.5a2.5 2.5 0 00-2.5 2.5v7.5a2.5 2.5 0 002.5 2.5h7.5a2.5 2.5 0 002.5-2.5V${right}`;
|
|
136
|
+
}
|
|
137
|
+
/** The front sheet filled and the back one as a line 1 short of it (past its round cap). */
|
|
138
|
+
function copyFilled(front, back, strokeWidth, square = false) {
|
|
139
|
+
return (jsxs(Fragment, { children: [jsx("rect", { ...COPY_FRONT, fill: front }), jsx("path", { d: copyBack(1 + strokeWidth / 2, square), stroke: back, strokeWidth: strokeWidth, fill: "none" })] }));
|
|
140
|
+
}
|
|
114
141
|
const NtdCopy = /* @__PURE__ */ createIcon({
|
|
115
142
|
displayName: 'NtdCopy',
|
|
116
143
|
paths: {
|
|
117
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
144
|
+
solid: ({ primaryColor, strokeWidth }) => copyFilled(primaryColor, primaryColor, strokeWidth),
|
|
145
|
+
sharp: ({ primaryColor, strokeWidth }) => copyFilled(primaryColor, primaryColor, strokeWidth, true),
|
|
146
|
+
// both sheets stroked: the back line stops 1 short of the front sheet's line
|
|
147
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...COPY_FRONT, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: copyBack(1 + strokeWidth), stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
148
|
+
duotone: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { ...COPY_BACK, fill: secondaryColor }), jsx("rect", { ...COPY_FRONT, fill: primaryColor })] })),
|
|
149
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => copyFilled(primaryColor, secondaryColor, strokeWidth),
|
|
121
150
|
},
|
|
122
151
|
});
|
|
123
152
|
/** NtdClipboard's two lines of text, high on the board (they sat below its middle). */
|
package/dist/esm/icons/ai.js
CHANGED
|
@@ -130,6 +130,8 @@ const NtdSparkle = /* @__PURE__ */ createIcon({
|
|
|
130
130
|
vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8L12 2z", fill: primaryColor }), jsx("path", { d: "M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8L12 2z", fill: "white", opacity: "0.1" })] })),
|
|
131
131
|
},
|
|
132
132
|
});
|
|
133
|
+
/** @deprecated The same four-pointed star as {@link NtdSparkle} — use that. */
|
|
134
|
+
const NtdStar4 = NtdSparkle;
|
|
133
135
|
const NtdMagicWand = /* @__PURE__ */ createIcon({
|
|
134
136
|
displayName: 'NtdMagicWand',
|
|
135
137
|
paths: {
|
|
@@ -170,4 +172,4 @@ const aiIcons = {
|
|
|
170
172
|
NtdPrompt,
|
|
171
173
|
};
|
|
172
174
|
|
|
173
|
-
export { NtdBrain, NtdChatbot, NtdDataset, NtdDeepLearning, NtdGradient, NtdInference, NtdMagicWand, NtdModel, NtdNeuralNetwork, NtdPrompt, NtdRobot, NtdSparkle, NtdTensor, NtdTraining, NtdVoiceAssistant, aiIcons };
|
|
175
|
+
export { NtdBrain, NtdChatbot, NtdDataset, NtdDeepLearning, NtdGradient, NtdInference, NtdMagicWand, NtdModel, NtdNeuralNetwork, NtdPrompt, NtdRobot, NtdSparkle, NtdStar4, NtdTensor, NtdTraining, NtdVoiceAssistant, aiIcons };
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { createIcon } from '../createIcon.js';
|
|
3
|
-
import { paperIcon, within
|
|
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: low and wide,
|
|
7
|
-
//
|
|
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.
|
|
8
9
|
const BRIEFCASE_CASE = { x: 2, y: 7, width: 20, height: 14, rx: 2 };
|
|
9
10
|
const BRIEFCASE_HANDLE = 'M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2';
|
|
10
|
-
/** The clasp over the band, hanging down from it
|
|
11
|
+
/** The clasp over the band, hanging down from it. */
|
|
11
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';
|
|
12
|
-
const
|
|
13
|
+
const BRIEFCASE_LOCK = { x: 11.2, y: 12.6, width: 1.6, height: 1.6 };
|
|
13
14
|
const NtdBriefcase = /* @__PURE__ */ createIcon({
|
|
14
15
|
displayName: 'NtdBriefcase',
|
|
15
16
|
paths: {
|
|
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:
|
|
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 })] })),
|
|
17
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 })] })),
|
|
18
19
|
// 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:
|
|
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:
|
|
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 })] })),
|
|
21
22
|
},
|
|
22
23
|
});
|
|
23
24
|
// NtdDollar: a line glyph, twice the stroke width in every variant but `outline`; the stem runs
|
|
@@ -44,14 +44,17 @@ const NtdUniversity = /* @__PURE__ */ createIcon({
|
|
|
44
44
|
LEARNING TOOLS
|
|
45
45
|
───────────────────────────────────────────────────────────────────────────── */
|
|
46
46
|
// NtdBook: a closed book, not a page — the rounded spine on the left, the block of pages showing
|
|
47
|
-
// at the bottom between the front cover and the
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
// can sit on it;
|
|
51
|
-
|
|
52
|
-
const
|
|
47
|
+
// at the bottom between the front cover and the back cover. Down the right edge it is cover, then
|
|
48
|
+
// a notch cut in 0.9 at the pages, then cover again: beside the pages only a narrow strip of cover
|
|
49
|
+
// is left (it was a 2.5 wide bar). The outline ends the pages with a line short of the edge, the back
|
|
50
|
+
// cover running on under the notch. The cover is plain, so another glyph can sit on it;
|
|
51
|
+
// NtdBookBookmark adds a ribbon.
|
|
52
|
+
const BOOK_SILHOUETTE = 'M7 2h12a1 1 0 011 1v14.2h-.9v2.1H20v.7a1 1 0 01-1 1H7a2.5 2.5 0 01-2.5-2.5v-14A2.5 2.5 0 017 2z';
|
|
53
|
+
const BOOK_PAGES = 'M6.6 17.2h11.4v2.1H6.6a1.05 1.05 0 010-2.1z';
|
|
53
54
|
const BOOK_RIBBON = 'M9.5 2v6.5l1.75-1.3L13 8.5V2z';
|
|
54
|
-
const BOOK_OUTLINE = 'M4.5 18.5v-14A2.5 2.5 0 017 2h12a1 1 0 011
|
|
55
|
+
const BOOK_OUTLINE = 'M4.5 18.5v-14A2.5 2.5 0 017 2h12a1 1 0 011 1v13H7a2.5 2.5 0 000 5h13M18.7 16v5';
|
|
56
|
+
/** The inside of the outline, for duotone's fill under it. */
|
|
57
|
+
const BOOK_OUTLINE_FILL = 'M7 2h12a1 1 0 011 1v13h-1.3v5H7a2.5 2.5 0 01-2.5-2.5v-14A2.5 2.5 0 017 2z';
|
|
55
58
|
/** The book, with the ribbon bookmark or without it. */
|
|
56
59
|
function bookIcon(displayName, ribbon) {
|
|
57
60
|
return createIcon({
|
|
@@ -59,7 +62,7 @@ function bookIcon(displayName, ribbon) {
|
|
|
59
62
|
paths: {
|
|
60
63
|
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsx("path", { d: BOOK_PAGES }), ribbon && jsx("path", { d: BOOK_RIBBON })] })] })),
|
|
61
64
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_OUTLINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && (jsx("path", { d: "M9.5 2.5v6l1.75-1.3L13 8.5v-6", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }))] })),
|
|
62
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d:
|
|
65
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_OUTLINE_FILL, fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: BOOK_OUTLINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && jsx("path", { d: BOOK_RIBBON, fill: primaryColor })] })),
|
|
63
66
|
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsx("path", { d: BOOK_PAGES, fill: accentColor, opacity: accentOpacity }), ribbon && jsx("path", { d: BOOK_RIBBON, fill: secondaryColor })] })),
|
|
64
67
|
},
|
|
65
68
|
});
|
|
@@ -76,12 +79,13 @@ const NtdOpenBook = /* @__PURE__ */ createIcon({
|
|
|
76
79
|
},
|
|
77
80
|
});
|
|
78
81
|
// NtdNotebook: a cover with short binder rings across its left edge (they stuck out further) and
|
|
79
|
-
// three lines of writing — in the accent colour when filled, as the outline draws them.
|
|
80
|
-
//
|
|
81
|
-
// the writing
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
const
|
|
82
|
+
// three lines of writing — in the accent colour when filled, as the outline draws them. The cover
|
|
83
|
+
// is 16.5 × 19 (it was 15 × 20, tall and slim for an exercise book). Duotone, fills only: the
|
|
84
|
+
// cover primary, the rings and the writing secondary; vivid: the rings secondary, the writing in
|
|
85
|
+
// the accent colour.
|
|
86
|
+
const NOTEBOOK_COVER = { x: 4.5, y: 2.5, width: 16.5, height: 19, rx: 2 };
|
|
87
|
+
const NOTEBOOK_RINGS = 'M3 6h3M3 10h3M3 14h3M3 18h3';
|
|
88
|
+
const NOTEBOOK_TEXT = 'M9 7.5h8.5M9 11.5h8.5M9 15.5h4.5';
|
|
85
89
|
const NtdNotebook = /* @__PURE__ */ createIcon({
|
|
86
90
|
displayName: 'NtdNotebook',
|
|
87
91
|
paths: {
|
package/dist/esm/icons/files.js
CHANGED
|
@@ -151,12 +151,12 @@ const NtdGrid = /* @__PURE__ */ createIcon({
|
|
|
151
151
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1.5", fill: primaryColor }), jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1.5", fill: "white", opacity: "0.08" }), jsx("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1.5", fill: secondaryColor }), jsx("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1.5", fill: "#3B82F6" }), jsx("rect", { x: "14", y: "14", width: "7", height: "7", rx: "1.5", fill: "#F59E0B" })] })),
|
|
152
152
|
},
|
|
153
153
|
});
|
|
154
|
-
// NtdList: in every variant but `outline` the lines are 1.5 × the stroke width and the dots r
|
|
155
|
-
//
|
|
154
|
+
// NtdList: in every variant but `outline` the lines are 1.5 × the stroke width and the dots r 1.7
|
|
155
|
+
// (r 2.25 was too big, a quarter smaller); the lines start at 9 to keep clear of the dots.
|
|
156
156
|
// Duotone and vivid: the lines primary, the dots secondary.
|
|
157
157
|
const LIST_LINES = 'M9 6h12M9 12h12M9 18h12';
|
|
158
158
|
function listFilled(lines, dots, strokeWidth) {
|
|
159
|
-
return (jsxs(Fragment, { children: [jsx("path", { d: LIST_LINES, stroke: lines, strokeWidth: strokeWidth * 1.5 }), jsxs("g", { fill: dots, children: [jsx("circle", { cx: "3.75", cy: "6", r: "
|
|
159
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: LIST_LINES, stroke: lines, strokeWidth: strokeWidth * 1.5 }), jsxs("g", { fill: dots, children: [jsx("circle", { cx: "3.75", cy: "6", r: "1.7" }), jsx("circle", { cx: "3.75", cy: "12", r: "1.7" }), jsx("circle", { cx: "3.75", cy: "18", r: "1.7" })] })] }));
|
|
160
160
|
}
|
|
161
161
|
const NtdList = /* @__PURE__ */ createIcon({
|
|
162
162
|
displayName: 'NtdList',
|
|
@@ -176,22 +176,32 @@ const NtdTable = /* @__PURE__ */ createIcon({
|
|
|
176
176
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: primaryColor, opacity: "0.15", stroke: primaryColor, strokeWidth: "2" }), jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: "white", opacity: "0.1" }), jsx("line", { x1: "3", y1: "9", x2: "21", y2: "9", stroke: secondaryColor, strokeWidth: "1.8" }), jsx("line", { x1: "3", y1: "15", x2: "21", y2: "15", stroke: "#3B82F6", strokeWidth: "1.5" }), jsx("line", { x1: "9", y1: "3", x2: "9", y2: "21", stroke: "#3B82F6", strokeWidth: "1.5" })] })),
|
|
177
177
|
},
|
|
178
178
|
});
|
|
179
|
+
// NtdSmartphone: filled, the case stays a primary frame round a screen in the accent colour, and
|
|
180
|
+
// the button is a primary dot on the screen — bigger and lower than the accent dot it was.
|
|
179
181
|
const NtdSmartphone = /* @__PURE__ */ createIcon({
|
|
180
182
|
displayName: 'NtdSmartphone',
|
|
181
183
|
paths: {
|
|
182
|
-
solid: ({ primaryColor, accentColor, accentOpacity
|
|
184
|
+
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", fill: primaryColor }), jsx("rect", { x: "6.5", y: "3.5", width: "11", height: "17", rx: "0.75", fill: accentColor, opacity: accentOpacity }), jsx("circle", { cx: "12", cy: "18.4", r: "1.25", fill: primaryColor })] })),
|
|
183
185
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "12", y1: "18", x2: "12.01", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
184
186
|
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("line", { x1: "12", y1: "18", x2: "12.01", y2: "18", stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
185
187
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", fill: primaryColor }), jsx("rect", { x: "5", y: "2", width: "14", height: "20", rx: "2", fill: "white", opacity: "0.1" }), jsx("line", { x1: "12", y1: "18", x2: "12.01", y2: "18", stroke: secondaryColor, strokeWidth: "1.8" })] })),
|
|
186
188
|
},
|
|
187
189
|
});
|
|
190
|
+
// NtdMonitor: the neck and the base are twice the stroke width in every variant but `outline`, and
|
|
191
|
+
// the base is 30% wider — 13 across with its caps (it was 10); it sits at 21.5 so the heavier line
|
|
192
|
+
// stays in the box. Vivid: the stand secondary (it had a fixed #3B82F6 neck).
|
|
193
|
+
const MONITOR_SCREEN = { x: 2, y: 3, width: 20, height: 14, rx: 2 };
|
|
194
|
+
/** Neck and base for a line twice the stroke width: base 9 long + 2 × 2 of cap = 13. */
|
|
195
|
+
const MONITOR_STAND = 'M12 17v4.5M7.5 21.5h9';
|
|
196
|
+
/** The outline's neck and base, at the stroke width: base 11 long + 2 × 1 of cap = 13. */
|
|
197
|
+
const MONITOR_STAND_LINE = 'M12 17v4M6.5 21h11';
|
|
188
198
|
const NtdMonitor = /* @__PURE__ */ createIcon({
|
|
189
199
|
displayName: 'NtdMonitor',
|
|
190
200
|
paths: {
|
|
191
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", {
|
|
192
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", {
|
|
193
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", {
|
|
194
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", {
|
|
201
|
+
solid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }), jsx("path", { d: MONITOR_STAND, stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
202
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: MONITOR_STAND_LINE, stroke: primaryColor, strokeWidth: strokeWidth })] })),
|
|
203
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...MONITOR_SCREEN, fill: secondaryColor, opacity: secondaryOpacity }), jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: MONITOR_STAND, stroke: primaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
204
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }), jsx("path", { d: MONITOR_STAND, stroke: secondaryColor, strokeWidth: strokeWidth * 2 })] })),
|
|
195
205
|
},
|
|
196
206
|
});
|
|
197
207
|
// NtdCpu: filled, the body and its pins primary and the die in the accent colour (the body was a
|
|
@@ -228,11 +238,11 @@ const NtdKey = /* @__PURE__ */ createIcon({
|
|
|
228
238
|
},
|
|
229
239
|
});
|
|
230
240
|
// NtdAward: the ribbon has a secondary inside within its primary edge (it was open, so the page
|
|
231
|
-
// showed through), and goes under the medal. The inside is the ribbon inset by
|
|
232
|
-
//
|
|
233
|
-
// colour.
|
|
241
|
+
// showed through), and goes under the medal. The inside is the ribbon inset by 1.5 — between the
|
|
242
|
+
// half stroke it filled to before (too full) and the 2 after (too small). Duotone is the same;
|
|
243
|
+
// vivid draws the ribbon's edge in the accent colour.
|
|
234
244
|
const AWARD_RIBBON = 'M8.21 13.89L7 23l5-3 5 3-1.21-9.12';
|
|
235
|
-
const AWARD_RIBBON_INNER = '
|
|
245
|
+
const AWARD_RIBBON_INNER = 'M9.67 14.3L8.9 20.11L12 18.25L15.1 20.11L14.32 14.3z';
|
|
236
246
|
function awardFilled({ primaryColor, secondaryColor, strokeWidth }, ribbonEdge) {
|
|
237
247
|
return (jsxs(Fragment, { children: [jsx("path", { d: AWARD_RIBBON, fill: ribbonEdge, stroke: ribbonEdge, strokeWidth: strokeWidth }), jsx("path", { d: AWARD_RIBBON_INNER, fill: secondaryColor }), jsx("circle", { cx: "12", cy: "8", r: "7", fill: primaryColor })] }));
|
|
238
248
|
}
|
|
@@ -287,13 +297,22 @@ const NtdCreditCard = /* @__PURE__ */ createIcon({
|
|
|
287
297
|
vivid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [jsx("rect", { ...CARD_BODY, fill: primaryColor }), jsx("rect", { ...CARD_BODY, fill: "white", opacity: "0.1" }), within(uid, 'stripe', jsx("rect", { ...CARD_BODY }), jsx("rect", { ...CARD_STRIPE, fill: "black", opacity: "0.35" })), jsx("rect", { ...CARD_SIGNATURE, fill: accentColor, opacity: accentOpacity }), jsx("rect", { ...CARD_CVV, fill: accentColor, opacity: accentOpacity })] })),
|
|
288
298
|
},
|
|
289
299
|
});
|
|
300
|
+
// NtdPieChart: filled, two sectors of one pie (r 10) pulled 0.7 apart along the small one's
|
|
301
|
+
// diagonal — a gap between them. The larger is the three-quarter sector from the centre; it was a
|
|
302
|
+
// segment cut off by a chord, which read as an odd shape. The outline keeps its open arc and the
|
|
303
|
+
// slice. Duotone, fills only: the larger sector secondary, the slice primary; vivid the other way.
|
|
304
|
+
const PIE_REST = 'M11.3 12.7V2.7A10 10 0 1 0 21.3 12.7Z';
|
|
305
|
+
const PIE_SLICE = 'M12.7 11.3V1.3A10 10 0 0 1 22.7 11.3Z';
|
|
306
|
+
function pieFilled(rest, slice) {
|
|
307
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: PIE_REST, fill: rest }), jsx("path", { d: PIE_SLICE, fill: slice })] }));
|
|
308
|
+
}
|
|
290
309
|
const NtdPieChart = /* @__PURE__ */ createIcon({
|
|
291
310
|
displayName: 'NtdPieChart',
|
|
292
311
|
paths: {
|
|
293
|
-
solid: ({ primaryColor
|
|
312
|
+
solid: ({ primaryColor }) => pieFilled(primaryColor, primaryColor),
|
|
294
313
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M21.21 15.89A10 10 0 118 2.83", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsx("path", { d: "M22 12A10 10 0 0012 2v10h10z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
295
|
-
duotone: ({ primaryColor, secondaryColor
|
|
296
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
314
|
+
duotone: ({ primaryColor, secondaryColor }) => pieFilled(secondaryColor, primaryColor),
|
|
315
|
+
vivid: ({ primaryColor, secondaryColor }) => pieFilled(primaryColor, secondaryColor),
|
|
297
316
|
},
|
|
298
317
|
});
|
|
299
318
|
const NtdBarChart = /* @__PURE__ */ createIcon({
|
package/dist/esm/icons/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export { NtdArrowDown, NtdArrowLeft, NtdArrowRight, NtdArrowUp, NtdChevronDown, NtdChevronLeft, NtdChevronRight, NtdChevronUp, NtdClose, NtdExternalLink, NtdMenu, NtdMoreHorizontal, NtdMoreVertical, NtdRefresh } from './navigation.js';
|
|
2
2
|
export { NtdCheck, NtdClipboard, NtdCopy, NtdDownload, NtdEdit, NtdEditDetail, NtdFilter, NtdGroup, NtdLink, NtdLock, NtdLogIn, NtdLogOut, NtdMinus, NtdPlus, NtdPrint, NtdRedo, NtdReply, NtdSave, NtdSearch, NtdSettings, NtdShare, NtdSort, NtdTrash, NtdUndo, NtdUngroup, NtdUnlock, NtdUpload, NtdZoomIn, NtdZoomOut } from './actions.js';
|
|
3
|
-
export { NtdAdmin, NtdBackspace, NtdBell, NtdBookmark, NtdCalendar, NtdClock, NtdCursor, NtdError, NtdEye, NtdEyeOff, NtdFlag, NtdGlobe, NtdHeart, NtdHelp, NtdHome, NtdInfo, NtdMap, NtdMoon, NtdPin, NtdShield, NtdStar, NtdSuccess, NtdSun, NtdTag, NtdThumbDown, NtdThumbUp, NtdUser, NtdUsers, NtdWarning, NtdWireframe } from './ui.js';
|
|
4
|
-
export { NtdBiodegradable, NtdCarbonFootprint, NtdCo2, NtdCompost, NtdEcoFriendly, NtdEvCharger,
|
|
3
|
+
export { NtdAdmin, NtdBackspace, NtdBell, NtdBookmark, NtdCalendar, NtdClock, NtdCursor, NtdError, NtdEye, NtdEyeOff, NtdFlag, NtdGlobe, NtdHeart, NtdHelp, NtdHome, NtdHourglass, NtdInfo, NtdMap, NtdMoon, NtdPin, NtdShield, NtdStar, NtdSuccess, NtdSun, NtdTag, NtdThumbDown, NtdThumbUp, NtdUser, NtdUsers, NtdWarning, NtdWireframe } from './ui.js';
|
|
4
|
+
export { NtdBiodegradable, NtdCarbonFootprint, NtdCo2, NtdCompost, NtdEcoFriendly, NtdEvCharger, NtdNetZero, NtdOrganic, NtdPlantTree, NtdRecycle, NtdSolarPanel, NtdTrashSort, NtdWildlife, NtdWindTurbine, sustainabilityIcons } from './sustainability.js';
|
|
5
5
|
export { NtdAccessibility, NtdAssistiveTech, NtdAudioDescription, NtdBlind, NtdBraille, NtdClosedCaptions, NtdDeaf, NtdDyslexia, NtdEasyRead, NtdHearingAid, NtdScreenReader, NtdSignLanguage, NtdWheelchair, accessibilityIcons } from './accessibility.js';
|
|
6
6
|
export { NtdAudit, NtdCcpa, NtdCertified, NtdCompliance, NtdContract, NtdCookieConsent, NtdCopyright, NtdGdpr, NtdLegalDocument, NtdPatent, NtdPrivacyPolicy, NtdTermsOfService, NtdTrademark, legalIcons } from './legal.js';
|
|
7
7
|
export { NtdBluetooth, NtdBrush, NtdCamera, NtdChat, NtdImage, NtdInbox, NtdMail, NtdMicrophone, NtdMicrophoneOff, NtdMusic, NtdNotification, NtdPalette, NtdPause, NtdPenTool, NtdPhone, NtdPlay, NtdSend, NtdSkipBack, NtdSkipForward, NtdSpline, NtdStop, NtdVideo, NtdVolume, NtdVolumeMute, NtdWifi } from './media.js';
|
|
8
8
|
export { NtdActivity, NtdArchive, NtdAward, NtdBarChart, NtdCart, NtdCloud, NtdCloudDownload, NtdCloudUpload, NtdCode, NtdCoffee, NtdCpu, NtdCreditCard, NtdDatabase, NtdFile, NtdFileText, NtdFolder, NtdFolderOpen, NtdGit, NtdGrid, NtdKey, NtdLayers, NtdList, NtdMonitor, NtdPackage, NtdPieChart, NtdShoppingCart, NtdSmartphone, NtdTable, NtdTarget, NtdTerminal, NtdTruck } from './files.js';
|
|
9
9
|
export { NtdCrown, NtdDice, NtdDumpsterFire, NtdGamepadOldschool, NtdGhost, NtdLightning, NtdPartyPopper, NtdPuzzle, NtdRocket, NtdSad, NtdSkull, NtdSmile, NtdSmiley, NtdTrophy, NtdZap } from './fun.js';
|
|
10
|
-
export { NtdAnchor, NtdBug, NtdCompass, NtdDroplet, NtdFeather, NtdFire, NtdFlower, NtdLeaf, NtdMountain, NtdRain, NtdSnow, NtdSnowflake, NtdSunrise, NtdSunset, NtdThermometer, NtdThunderstorm, NtdTree, NtdUmbrella, NtdWave, NtdWind } from './weather.js';
|
|
11
|
-
export { NtdAngleBisector, NtdArrowDownCircle, NtdArrowLeftCircle, NtdArrowRightCircle, NtdArrowUpCircle, NtdCircle, NtdCornerDownLeft, NtdCornerDownRight, NtdCornerUpLeft, NtdCornerUpRight, NtdCross, NtdDiamond, NtdHexagon, NtdMaximize, NtdMidpoint, NtdMinimize, NtdMove, NtdOctagon, NtdParallel, NtdPentagon, NtdPerpendicular, NtdPoint, NtdRepeat, NtdSegment, NtdShuffle, NtdSquare,
|
|
10
|
+
export { NtdAnchor, NtdBug, NtdCompass, NtdDroplet, NtdFeather, NtdFire, NtdFlower, NtdHydropower, NtdLeaf, NtdMountain, NtdRain, NtdSnow, NtdSnowflake, NtdSunrise, NtdSunset, NtdThermometer, NtdThunderstorm, NtdTree, NtdUmbrella, NtdWave, NtdWind } from './weather.js';
|
|
11
|
+
export { NtdAngleBisector, NtdArrowDownCircle, NtdArrowLeftCircle, NtdArrowRightCircle, NtdArrowUpCircle, NtdCircle, NtdCornerDownLeft, NtdCornerDownRight, NtdCornerUpLeft, NtdCornerUpRight, NtdCross, NtdDiamond, NtdHexagon, NtdMaximize, NtdMidpoint, NtdMinimize, NtdMove, NtdOctagon, NtdParallel, NtdPentagon, NtdPerpendicular, NtdPoint, NtdRepeat, NtdSegment, NtdShuffle, NtdSquare, NtdTriangle } from './shapes.js';
|
|
12
12
|
export { NtdBank, NtdBarcode, NtdBriefcase, NtdCalculator, NtdClipboardCheck, NtdCoins, NtdDollar, NtdInvoice, NtdInvoiceDoc, NtdKanban, NtdMilestone, NtdPercent, NtdPiggyBank, NtdPresentation, NtdReceipt, NtdStore, NtdTrendDown, NtdTrendUp, NtdWallet } from './business.js';
|
|
13
13
|
export { NtdAtSign, NtdBellRing, NtdBubble, NtdMegaphone, NtdPhoneOff, NtdQrCode, NtdThumbsDown, NtdThumbsUp } from './social.js';
|
|
14
14
|
export { NtdAIBrain, NtdAstroLogo, NtdBattery, NtdBlueprint, NtdBrackets, NtdBugDev, NtdBunLogo, NtdComponent, NtdDataMesh, NtdDenoLogo, NtdDeploy, NtdFeatureFlag, NtdFlow, NtdForge, NtdGateway, NtdGitBranch, NtdGitCommit, NtdGitMerge, NtdHash, NtdNeural, NtdNextJsLogo, NtdNodes, NtdPipeline, NtdPrototype, NtdQwikLogo, NtdServer, NtdSlash, NtdSolidJsLogo, NtdSvelteLogo, NtdTauriLogo, NtdViteLogo } from './devtech.js';
|
|
@@ -19,7 +19,7 @@ export { NtdDoorbell, NtdMotionSensor, NtdRouter, NtdSmartBulb, NtdSmartCamera,
|
|
|
19
19
|
export { NtdApple, NtdBandaid, NtdCake, NtdDna, NtdEgg, NtdGlass, NtdHamburger, NtdHeartPulse, NtdPill, NtdPizza, NtdStethoscope, NtdSyringe, NtdWeight } from './health.js';
|
|
20
20
|
export { NtdNiceToDev, NtdOmniVerk, NtdOmniVerkAnimated, NtdOmniVerkBadge, NtdOmniVerkLogo, NtdOmniVerkSpinner, NtdOmniVerkWatermark } from './brand.js';
|
|
21
21
|
export { NtdDice as NtdDiceGaming, NtdDiscord, NtdGamepad, NtdGamepadController, NtdHealthBar, NtdJoystick, NtdLeaderboard, NtdPotion, NtdShield as NtdShieldGaming, NtdStar as NtdStarGaming, NtdSword, NtdTrophy as NtdTrophyGaming, NtdTwitch, NtdVrHeadset, NtdXpBar, NtdYoutubeLive, gamingIcons } from './gaming.js';
|
|
22
|
-
export { NtdVoiceAssistant as NtdAIAssistant, NtdBrain, NtdChatbot, NtdDataset, NtdDeepLearning, NtdGradient, NtdInference, NtdMagicWand, NtdModel, NtdNeuralNetwork, NtdPrompt, NtdRobot, NtdSparkle, NtdTensor, NtdTraining, aiIcons } from './ai.js';
|
|
22
|
+
export { NtdVoiceAssistant as NtdAIAssistant, NtdBrain, NtdChatbot, NtdDataset, NtdDeepLearning, NtdGradient, NtdInference, NtdMagicWand, NtdModel, NtdNeuralNetwork, NtdPrompt, NtdRobot, NtdSparkle, NtdStar4, NtdTensor, NtdTraining, aiIcons } from './ai.js';
|
|
23
23
|
export { NtdBackpack, NtdBook, NtdBookBookmark, NtdCalculator as NtdCalculatorEdu, NtdCertificate, NtdDiploma, NtdExam, NtdFlashcard, NtdGraduationCap, NtdNotebook, NtdOnlineCourse, NtdOpenBook, NtdPen, NtdPencil, NtdQuiz, NtdSchool, NtdUniversity, NtdWebinar, educationIcons } from './education.js';
|
|
24
24
|
export { NtdAtom, NtdBeaker, NtdDna as NtdDnaScience, NtdExperiment, NtdFlask, NtdHypothesis, NtdMagnet, NtdMicroscope, NtdMolecule, NtdPeriodictable, NtdPetriDish, NtdPlanet, NtdResearch, NtdRocket as NtdRocketScience, NtdTelescope, NtdTestTube, scienceIcons } from './science.js';
|
|
25
25
|
export { NtdApartment, NtdBathroom, NtdBedroom, NtdCondo, NtdFloorPlan, NtdForRent, NtdForSale, NtdGarage, NtdHouse as NtdHouseRealEstate, NtdKey as NtdKeyRealEstate, NtdMortgage, NtdOfficeBuilding, NtdPool, NtdSold, NtdSquareMeters, NtdVilla, NtdWarehouse, realestateIcons } from './realestate.js';
|
package/dist/esm/icons/media.js
CHANGED
|
@@ -131,17 +131,30 @@ const NtdMicrophoneOff = /* @__PURE__ */ createIcon({
|
|
|
131
131
|
// NtdMusic: the note heads are tilted ellipses whose right edge is the stem's right edge, and the
|
|
132
132
|
// stems end where that edge is vertical, so stem and head meet without a step (the heads stuck
|
|
133
133
|
// out right of the stems). The outline heads are the filled ones moved in by half a stroke, so
|
|
134
|
-
// their stroke meets the stem the same way.
|
|
134
|
+
// their stroke meets the stem the same way. Every variant but `outline` draws the stems and the
|
|
135
|
+
// beam twice the stroke width; the stems move left by the extra half width, so their right edge
|
|
136
|
+
// stays on the heads' (9.3 and 21.3), and the beam drops half a unit to keep a mitred corner in
|
|
137
|
+
// the box.
|
|
135
138
|
const MUSIC_STEMS = 'M8.3 17.22V5l12-2v12.22';
|
|
139
|
+
/** The stems and the beam for a line `width` wide; `sharp` stops them half a width higher. */
|
|
140
|
+
function musicStems(width, sharp = false) {
|
|
141
|
+
const left = 9.3 - width / 2;
|
|
142
|
+
const right = 21.3 - width / 2;
|
|
143
|
+
const end = sharp ? width / 2 : 0;
|
|
144
|
+
return `M${left} ${17.22 - end}V5.5L${right} 3.5V${15.22 - end}`;
|
|
145
|
+
}
|
|
146
|
+
function musicFilled(stems, heads, strokeWidth, sharp = false) {
|
|
147
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: musicStems(strokeWidth * 2, sharp), stroke: stems, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("ellipse", { cx: "5.97", cy: "18", rx: "3.5", ry: "2.3", transform: "rotate(-24 5.97 18)", fill: heads[0] }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "3.5", ry: "2.3", transform: "rotate(-24 17.97 16)", fill: heads[1] })] }));
|
|
148
|
+
}
|
|
136
149
|
const NtdMusic = /* @__PURE__ */ createIcon({
|
|
137
150
|
displayName: 'NtdMusic',
|
|
138
151
|
paths: {
|
|
139
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
140
|
-
// the
|
|
141
|
-
sharp: ({ primaryColor, strokeWidth }) => (
|
|
152
|
+
solid: ({ primaryColor, strokeWidth }) => musicFilled(primaryColor, [primaryColor, primaryColor], strokeWidth),
|
|
153
|
+
// the square caps of `sharp` then end at the heads' edge
|
|
154
|
+
sharp: ({ primaryColor, strokeWidth }) => musicFilled(primaryColor, [primaryColor, primaryColor], strokeWidth, true),
|
|
142
155
|
outline: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: MUSIC_STEMS, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", children: [jsx("ellipse", { cx: "5.97", cy: "18", rx: "2.5", ry: "1.3", transform: "rotate(-24 5.97 18)" }), jsx("ellipse", { cx: "17.97", cy: "16", rx: "2.5", ry: "1.3", transform: "rotate(-24 17.97 16)" })] })] })),
|
|
143
|
-
duotone: ({ primaryColor,
|
|
144
|
-
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (
|
|
156
|
+
duotone: ({ primaryColor, strokeWidth }) => musicFilled(primaryColor, [primaryColor, primaryColor], strokeWidth),
|
|
157
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => musicFilled(primaryColor, [primaryColor, secondaryColor], strokeWidth),
|
|
145
158
|
},
|
|
146
159
|
});
|
|
147
160
|
// The flap is a cut through the envelope, kept inside it: its ends meet the sides flush (the
|
|
@@ -221,12 +234,13 @@ const NtdNotification = /* @__PURE__ */ createIcon({
|
|
|
221
234
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9z", fill: primaryColor }), jsx("path", { d: "M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "18", cy: "4", r: "3.5", fill: secondaryColor }), jsx("path", { d: "M13.73 21a2 2 0 01-3.46 0", stroke: "white", strokeWidth: "1" })] })),
|
|
222
235
|
},
|
|
223
236
|
});
|
|
224
|
-
// NtdWifi: three arcs round the dot (r
|
|
237
|
+
// NtdWifi: three arcs round the dot (r 5.2 / 9.5 / 13.8 about 12,19.5, ±45°), 1.5 × the stroke
|
|
225
238
|
// width in every variant but `outline` — half again as heavy. Concentric, so the heavier arcs keep
|
|
226
|
-
// even gaps, and small enough that the outer one's square caps in `sharp` stay in the box.
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
const
|
|
239
|
+
// even gaps, and small enough that the outer one's square caps in `sharp` stay in the box. The
|
|
240
|
+
// inner arc sits further from the dot (it was r 4.4) and the arcs closer together, the outer one
|
|
241
|
+
// where it was. Duotone and vivid: the dot and the inner arc primary, the outer arcs secondary.
|
|
242
|
+
const WIFI_INNER = 'M8.32 15.82A5.2 5.2 0 0 1 15.68 15.82';
|
|
243
|
+
const WIFI_OUTER = 'M5.28 12.78A9.5 9.5 0 0 1 18.72 12.78M2.24 9.74A13.8 13.8 0 0 1 21.76 9.74';
|
|
230
244
|
function wifiFilled(near, far, strokeWidth) {
|
|
231
245
|
return (jsxs(Fragment, { children: [jsx("path", { d: WIFI_OUTER, stroke: far, strokeWidth: strokeWidth * 1.5, fill: "none" }), jsx("path", { d: WIFI_INNER, stroke: near, strokeWidth: strokeWidth * 1.5, fill: "none" }), jsx("circle", { cx: "12", cy: "19.5", r: "1.5", fill: near })] }));
|
|
232
246
|
}
|
|
@@ -258,13 +272,25 @@ const NtdPalette = /* @__PURE__ */ createIcon({
|
|
|
258
272
|
vivid: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 3a9 9 0 100 18h1a2 2 0 000-4h-1a2 2 0 110-4h1a3 3 0 103-3 3 3 0 01-3-3V6a3 3 0 00-1-3z", fill: primaryColor, opacity: "0.25" }), jsx("path", { d: "M12 3a9 9 0 100 18h1a2 2 0 000-4h-1a2 2 0 110-4h1a3 3 0 103-3 3 3 0 01-3-3V6a3 3 0 00-1-3z", fill: "white", opacity: "0.08" }), jsx("circle", { cx: "7", cy: "9", r: "1.2", fill: secondaryColor }), jsx("circle", { cx: "10", cy: "7", r: "1.2", fill: "#8B5CF6" }), jsx("circle", { cx: "7", cy: "13", r: "1.2", fill: "#EF4444" })] })),
|
|
259
273
|
},
|
|
260
274
|
});
|
|
275
|
+
// NtdBrush: a paintbrush lying at 45° — a tapering handle with a round end, the metal ferrule, and
|
|
276
|
+
// the bristles swelling out of it to a point at the bottom left (it was a pencil-like wedge with a
|
|
277
|
+
// blob). Filled, the ferrule is set off from the handle and the bristles by two accent cuts.
|
|
278
|
+
// Duotone, fills only: the handle and the ferrule primary, the bristles secondary; vivid puts the
|
|
279
|
+
// ferrule in the accent colour.
|
|
280
|
+
const BRUSH_HANDLE = 'M19.35 2.81A1.3 1.3 0 0 1 21.19 4.65L13.91 12.49L11.51 10.09Z';
|
|
281
|
+
const BRUSH_FERRULE = 'M11.08 9.67L14.33 12.92L11.36 15.89L8.11 12.64Z';
|
|
282
|
+
const BRUSH_BRISTLES = 'M8.11 12.64L11.36 15.89C9.95 18.43 7.76 20.49 2.81 21.19C3.51 16.24 5.57 14.05 8.11 12.64Z';
|
|
283
|
+
const BRUSH_CUTS = 'M10.37 8.96L15.04 13.63M7.4 11.93L12.07 16.6';
|
|
284
|
+
function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1) {
|
|
285
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: BRUSH_HANDLE, fill: handle }), jsx("path", { d: BRUSH_FERRULE, fill: ferrule, opacity: ferruleOpacity }), jsx("path", { d: BRUSH_BRISTLES, fill: bristles })] }));
|
|
286
|
+
}
|
|
261
287
|
const NtdBrush = /* @__PURE__ */ createIcon({
|
|
262
288
|
displayName: 'NtdBrush',
|
|
263
289
|
paths: {
|
|
264
|
-
solid: ({ primaryColor,
|
|
265
|
-
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d:
|
|
266
|
-
duotone: ({ primaryColor, secondaryColor
|
|
267
|
-
vivid: ({ primaryColor, secondaryColor
|
|
290
|
+
solid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxs(Fragment, { children: [brushFilled(primaryColor, primaryColor, primaryColor), within(uid, 'brush', jsx("path", { d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}` }), jsx("path", { d: BRUSH_CUTS, stroke: accentColor, strokeWidth: "1", opacity: accentOpacity }))] })),
|
|
291
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
292
|
+
duotone: ({ primaryColor, secondaryColor }) => brushFilled(primaryColor, primaryColor, secondaryColor),
|
|
293
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity),
|
|
268
294
|
},
|
|
269
295
|
});
|
|
270
296
|
const NtdPenTool = /* @__PURE__ */ createIcon({
|
|
@@ -124,15 +124,17 @@ const NtdExternalLink = /* @__PURE__ */ createIcon({
|
|
|
124
124
|
});
|
|
125
125
|
// NtdRefresh: two arcs round 12,12 (r 7), each ending in a filled head — a line glyph twice the
|
|
126
126
|
// stroke width in every variant but `outline`. The tail stops inside its head, so no cap sticks
|
|
127
|
-
// out of it in `sharp` (the old tails ran into the heads' corners).
|
|
128
|
-
// arrow
|
|
127
|
+
// out of it in `sharp` (the old tails ran into the heads' corners). Each head (7.2 wide, 4.2 long)
|
|
128
|
+
// points along the chord to the start of the other arrow's tail, with a clear gap before it — the
|
|
129
|
+
// bigger heads pointed past the tails and nearly touched them. Duotone and vivid: the top arrow
|
|
130
|
+
// primary, the bottom one secondary.
|
|
129
131
|
const REFRESH_TOP = {
|
|
130
|
-
tail: '
|
|
131
|
-
head: '
|
|
132
|
+
tail: 'M6.34 7.89A7 7 0 0 1 17.98 8.37',
|
|
133
|
+
head: 'M14.59 8.46L17.89 12.9L21.77 8.96z',
|
|
132
134
|
};
|
|
133
135
|
const REFRESH_BOTTOM = {
|
|
134
|
-
tail: '
|
|
135
|
-
head: '
|
|
136
|
+
tail: 'M17.66 16.11A7 7 0 0 1 6.02 15.63',
|
|
137
|
+
head: 'M9.41 15.54L6.11 11.1L2.23 15.04z',
|
|
136
138
|
};
|
|
137
139
|
function refreshArrows(top, bottom, strokeWidth) {
|
|
138
140
|
return (jsxs(Fragment, { children: [jsx("path", { d: REFRESH_TOP.tail, stroke: top, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: REFRESH_TOP.head, fill: top }), jsx("path", { d: REFRESH_BOTTOM.tail, stroke: bottom, strokeWidth: strokeWidth * 2, fill: "none" }), jsx("path", { d: REFRESH_BOTTOM.head, fill: bottom })] }));
|
|
@@ -26,11 +26,14 @@ const APARTMENT_WINDOWS = [
|
|
|
26
26
|
{ x: 14, y: 13 },
|
|
27
27
|
];
|
|
28
28
|
const APARTMENT_DOOR = { x: 10, y: 18, width: 4, height: 4 };
|
|
29
|
+
/** The door of the solid variants: it stops short of the ground, leaving a thin primary sill. */
|
|
30
|
+
const APARTMENT_DOOR_SILL = { ...APARTMENT_DOOR, height: 3.25 };
|
|
29
31
|
const NtdApartment = /* @__PURE__ */ createIcon({
|
|
30
32
|
displayName: 'NtdApartment',
|
|
31
33
|
paths: {
|
|
32
|
-
// the windows and the door filled in the accent colour, no frames (round 33)
|
|
33
|
-
|
|
34
|
+
// the windows and the door filled in the accent colour, no frames (round 33), a sill under the
|
|
35
|
+
// door (round 34)
|
|
36
|
+
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { ...APARTMENT, fill: primaryColor }), jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [APARTMENT_WINDOWS.map((w) => (jsx("rect", { ...w, width: "3", height: "3", rx: "0.5" }, `${w.x}-${w.y}`))), jsx("rect", { ...APARTMENT_DOOR_SILL })] })] })),
|
|
34
37
|
outline: ({ primaryColor, strokeWidth }) => (jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth, fill: "none", children: [jsx("rect", { ...APARTMENT }), APARTMENT_WINDOWS.map((w) => (jsx("rect", { ...w, width: "3", height: "3", rx: "0.5" }, `${w.x}-${w.y}`))), jsx("rect", { ...APARTMENT_DOOR })] })),
|
|
35
38
|
duotone: ({ primaryColor, secondaryColor }) => (jsxs(Fragment, { children: [jsx("rect", { ...APARTMENT, fill: primaryColor }), jsxs("g", { fill: secondaryColor, children: [APARTMENT_WINDOWS.map((w) => (jsx("rect", { ...w, width: "3", height: "3", rx: "0.5" }, `${w.x}-${w.y}`))), jsx("rect", { ...APARTMENT_DOOR })] })] })),
|
|
36
39
|
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxs(Fragment, { children: [jsx("rect", { ...APARTMENT, fill: primaryColor }), jsx("g", { fill: secondaryColor, children: APARTMENT_WINDOWS.map((w) => (jsx("rect", { ...w, width: "3", height: "3", rx: "0.5" }, `${w.x}-${w.y}`))) }), jsx("rect", { ...APARTMENT_DOOR, fill: accentColor, opacity: accentOpacity })] })),
|
package/dist/esm/icons/shapes.js
CHANGED
|
@@ -65,6 +65,8 @@ const TRIANGLE_LINE = 'M12 4.24L20.38 21H3.62Z';
|
|
|
65
65
|
const TRIANGLE_ROUND = 'M9.76 6.47A2.5 2.5 0 0 1 14.24 6.47L20.19 18.38A2.5 2.5 0 0 1 17.95 22L6.05 22A2.5 2.5 0 0 1 3.81 18.38Z';
|
|
66
66
|
const NtdTriangle = /* @__PURE__ */ createIcon({
|
|
67
67
|
displayName: 'NtdTriangle',
|
|
68
|
+
// text children centre on the centroid, low in the box (stacking, 1.3.5)
|
|
69
|
+
textCenter: [12, 15.3],
|
|
68
70
|
paths: {
|
|
69
71
|
solid: ({ primaryColor }) => jsx("polygon", { points: "12,2 22,22 2,22", fill: primaryColor }),
|
|
70
72
|
rounded: ({ primaryColor }) => jsx("path", { d: TRIANGLE_ROUND, fill: primaryColor }),
|
|
@@ -124,15 +126,6 @@ const NtdCross = /* @__PURE__ */ createIcon({
|
|
|
124
126
|
rounded: ({ primaryColor }) => (jsx("path", { d: "M10.5 2h3a1.5 1.5 0 011.5 1.5V8a1 1 0 001 1h4.5a1.5 1.5 0 011.5 1.5v3a1.5 1.5 0 01-1.5 1.5H16a1 1 0 00-1 1v4.5a1.5 1.5 0 01-1.5 1.5h-3A1.5 1.5 0 019 20.5V16a1 1 0 00-1-1H3.5A1.5 1.5 0 012 13.5v-3A1.5 1.5 0 013.5 9H8a1 1 0 001-1V3.5A1.5 1.5 0 0110.5 2z", fill: primaryColor })),
|
|
125
127
|
},
|
|
126
128
|
});
|
|
127
|
-
const NtdStar4 = /* @__PURE__ */ createIcon({
|
|
128
|
-
displayName: 'NtdStar4',
|
|
129
|
-
paths: {
|
|
130
|
-
solid: ({ primaryColor, strokeWidth: _strokeWidth }) => (jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: primaryColor })),
|
|
131
|
-
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
132
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: secondaryColor, opacity: secondaryOpacity }), jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
133
|
-
vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxs(Fragment, { children: [jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: primaryColor }), jsx("path", { d: "M12 2l2.5 7.5L22 12l-7.5 2.5L12 22l-2.5-7.5L2 12l7.5-2.5z", fill: "white", opacity: "0.1" })] })),
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
129
|
// The four corner arrows: the tail's level run sits at the height of the arrowhead's tip, so the
|
|
137
130
|
// two meet (it ran 2 units off the tip and the head looked stuck on beside the tail). It stops 2
|
|
138
131
|
// short of the tip: with the square caps of `sharp` it stuck out of the point. The filled variants
|
|
@@ -238,13 +231,25 @@ const NtdMove = /* @__PURE__ */ createIcon({
|
|
|
238
231
|
vivid: ({ primaryColor, strokeWidth }) => (jsxs(Fragment, { children: [jsx("path", { d: moveShape(strokeWidth), fill: primaryColor }), jsx("path", { d: moveShape(strokeWidth), fill: "white", opacity: "0.1" })] })),
|
|
239
232
|
},
|
|
240
233
|
});
|
|
234
|
+
// NtdRepeat: two hooked arrows, a line glyph twice the stroke width in every variant but `outline`
|
|
235
|
+
// — redrawn tighter (shafts at y 6 and 18, heads 3 long) so the heavier lines stay in the box. As
|
|
236
|
+
// in NtdMaximize, each shaft stops 0.35 × the line width short of its head's point, so the square
|
|
237
|
+
// cap of `sharp` stays inside the head (it stuck out of both points). Duotone and vivid: one arrow
|
|
238
|
+
// primary, the other secondary (vivid had a fixed #3B82F6 head).
|
|
239
|
+
const REPEAT_HEADS = ['M17 3L20 6L17 9', 'M7 21L4 18L7 15'];
|
|
240
|
+
const REPEAT_OUTLINE = 'M17 1l4 4-4 4M3 11V9a4 4 0 014-4h14M7 23l-4-4 4-4M21 13v2a4 4 0 01-4 4H3';
|
|
241
|
+
function repeatArrows(first, second, strokeWidth) {
|
|
242
|
+
const width = strokeWidth * 2;
|
|
243
|
+
const back = width * 0.35;
|
|
244
|
+
return (jsxs(Fragment, { children: [jsx("path", { d: `${REPEAT_HEADS[0]}M4 10V9a3 3 0 013-3H${20 - back}`, stroke: first, strokeWidth: width, fill: "none" }), jsx("path", { d: `${REPEAT_HEADS[1]}M20 14v1a3 3 0 01-3 3H${4 + back}`, stroke: second, strokeWidth: width, fill: "none" })] }));
|
|
245
|
+
}
|
|
241
246
|
const NtdRepeat = /* @__PURE__ */ createIcon({
|
|
242
247
|
displayName: 'NtdRepeat',
|
|
243
248
|
paths: {
|
|
244
|
-
solid: ({ primaryColor, strokeWidth }) => (
|
|
245
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
246
|
-
duotone: ({ primaryColor, secondaryColor,
|
|
247
|
-
vivid: ({ primaryColor, secondaryColor
|
|
249
|
+
solid: ({ primaryColor, strokeWidth }) => repeatArrows(primaryColor, primaryColor, strokeWidth),
|
|
250
|
+
outline: ({ primaryColor, strokeWidth }) => (jsx("path", { d: REPEAT_OUTLINE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })),
|
|
251
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => repeatArrows(primaryColor, secondaryColor, strokeWidth),
|
|
252
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => repeatArrows(primaryColor, secondaryColor, strokeWidth),
|
|
248
253
|
},
|
|
249
254
|
});
|
|
250
255
|
const NtdShuffle = /* @__PURE__ */ createIcon({
|
|
@@ -318,4 +323,4 @@ const NtdAngleBisector = /* @__PURE__ */ createIcon({
|
|
|
318
323
|
},
|
|
319
324
|
});
|
|
320
325
|
|
|
321
|
-
export { NtdAngleBisector, NtdArrowDownCircle, NtdArrowLeftCircle, NtdArrowRightCircle, NtdArrowUpCircle, NtdCircle, NtdCornerDownLeft, NtdCornerDownRight, NtdCornerUpLeft, NtdCornerUpRight, NtdCross, NtdDiamond, NtdHexagon, NtdMaximize, NtdMidpoint, NtdMinimize, NtdMove, NtdOctagon, NtdParallel, NtdPentagon, NtdPerpendicular, NtdPoint, NtdRepeat, NtdSegment, NtdShuffle, NtdSquare,
|
|
326
|
+
export { NtdAngleBisector, NtdArrowDownCircle, NtdArrowLeftCircle, NtdArrowRightCircle, NtdArrowUpCircle, NtdCircle, NtdCornerDownLeft, NtdCornerDownRight, NtdCornerUpLeft, NtdCornerUpRight, NtdCross, NtdDiamond, NtdHexagon, NtdMaximize, NtdMidpoint, NtdMinimize, NtdMove, NtdOctagon, NtdParallel, NtdPentagon, NtdPerpendicular, NtdPoint, NtdRepeat, NtdSegment, NtdShuffle, NtdSquare, NtdTriangle };
|