@nice2dev/icons 1.3.5 → 1.3.7
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 +78 -0
- package/README.md +24 -4
- package/dist/cjs/NiceIconStacker.js +124 -58
- package/dist/cjs/client.js +5 -1
- package/dist/cjs/createIcon.js +2 -2
- package/dist/cjs/iconStack.js +113 -0
- package/dist/cjs/icons/actions.js +11 -4
- package/dist/cjs/icons/business.js +27 -17
- package/dist/cjs/icons/ecommerce.js +14 -4
- package/dist/cjs/icons/education.js +18 -11
- package/dist/cjs/icons/files.js +20 -12
- package/dist/cjs/icons/health.js +31 -15
- package/dist/cjs/icons/travel.js +4 -4
- package/dist/cjs/icons/ui.js +7 -6
- package/dist/cjs/icons/weather.js +4 -3
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/nicetodev-icons.css +1 -1
- package/dist/cjs/rsc.js +1 -1
- package/dist/cjs/stacking.js +39 -11
- package/dist/esm/NiceIconStacker.js +125 -59
- package/dist/esm/client.js +2 -1
- package/dist/esm/createIcon.js +3 -3
- package/dist/esm/iconParts.js +1 -1
- package/dist/esm/iconStack.js +106 -0
- package/dist/esm/icons/actions.js +11 -4
- package/dist/esm/icons/business.js +27 -17
- package/dist/esm/icons/ecommerce.js +14 -4
- package/dist/esm/icons/education.js +18 -11
- package/dist/esm/icons/files.js +22 -14
- package/dist/esm/icons/health.js +31 -15
- package/dist/esm/icons/media.js +1 -1
- package/dist/esm/icons/travel.js +4 -4
- package/dist/esm/icons/ui.js +7 -6
- package/dist/esm/icons/weather.js +5 -4
- package/dist/esm/index.js +2 -1
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/esm/rsc.js +1 -1
- package/dist/esm/smilAnimations.js +1 -1
- package/dist/esm/stacking.js +38 -12
- package/dist/types/NiceIconStacker.d.ts +18 -28
- package/dist/types/client.d.ts +4 -2
- package/dist/types/iconStack.d.ts +83 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/stacking.d.ts +16 -3
- package/dist/types/types.d.ts +24 -5
- package/package.json +2 -2
|
@@ -4,23 +4,30 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var createIcon = require('../createIcon.js');
|
|
5
5
|
var iconParts = require('../iconParts.js');
|
|
6
6
|
|
|
7
|
-
// The band sits
|
|
8
|
-
// sides flush (its round caps stuck out of both)
|
|
9
|
-
//
|
|
10
|
-
//
|
|
7
|
+
// The band sits a third of the way down the case (11.5; it was halfway, 12.5) and is a cut through
|
|
8
|
+
// it: kept inside the case it meets the sides flush (its round caps stuck out of both), in the
|
|
9
|
+
// outline too, where it ends on the sides' centre line. A clasp hangs from its middle: low and
|
|
10
|
+
// wide, in the accent colour like the band on the filled case (secondary in duotone), with a
|
|
11
|
+
// primary lock square in it where it had a slot showing the band through. Vivid: the clasp is all
|
|
12
|
+
// accent, without the square, which made it read as an accent ring round a primary middle.
|
|
11
13
|
const BRIEFCASE_CASE = { x: 2, y: 7, width: 20, height: 14, rx: 2 };
|
|
12
14
|
const BRIEFCASE_HANDLE = 'M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2';
|
|
15
|
+
const BRIEFCASE_BAND = 'M2 11.5h20';
|
|
13
16
|
/** The clasp over the band, hanging down from it. */
|
|
14
|
-
const BRIEFCASE_CLASP = 'M10.6
|
|
15
|
-
const BRIEFCASE_LOCK = { x: 11.2, y:
|
|
17
|
+
const BRIEFCASE_CLASP = 'M10.6 10.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';
|
|
18
|
+
const BRIEFCASE_LOCK = { x: 11.2, y: 11.6, width: 1.6, height: 1.6 };
|
|
19
|
+
/** The band, clipped to the case so it ends flush with the sides. */
|
|
20
|
+
function briefcaseBand(uid, color, width, opacity = 1) {
|
|
21
|
+
return iconParts.within(uid, 'band', jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE }), jsxRuntime.jsx("path", { d: BRIEFCASE_BAND, stroke: color, strokeWidth: width, opacity: opacity }));
|
|
22
|
+
}
|
|
16
23
|
const NtdBriefcase = /* @__PURE__ */ createIcon.createIcon({
|
|
17
24
|
displayName: 'NtdBriefcase',
|
|
18
25
|
paths: {
|
|
19
|
-
solid: (props) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: props.primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: props.primaryColor, strokeWidth: props.strokeWidth, fill: "none" }),
|
|
20
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }),
|
|
26
|
+
solid: (props) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: props.primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: props.primaryColor, strokeWidth: props.strokeWidth, fill: "none" }), briefcaseBand(props.uid, props.accentColor, props.strokeWidth * 1.5, props.accentOpacity), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: props.accentColor, opacity: props.accentOpacity }), jsxRuntime.jsx("rect", { ...BRIEFCASE_LOCK, fill: props.primaryColor })] })),
|
|
27
|
+
outline: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), briefcaseBand(uid, primaryColor, strokeWidth), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: primaryColor })] })),
|
|
21
28
|
// fills only: the case and the handle primary, the band and the clasp secondary
|
|
22
|
-
duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }),
|
|
23
|
-
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }),
|
|
29
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), briefcaseBand(uid, secondaryColor, strokeWidth * 1.5), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: secondaryColor }), jsxRuntime.jsx("rect", { ...BRIEFCASE_LOCK, fill: primaryColor })] })),
|
|
30
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BRIEFCASE_CASE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BRIEFCASE_HANDLE, stroke: secondaryColor, strokeWidth: strokeWidth, fill: "none" }), briefcaseBand(uid, secondaryColor, strokeWidth * 1.5), jsxRuntime.jsx("path", { d: BRIEFCASE_CLASP, fill: accentColor, opacity: accentOpacity })] })),
|
|
24
31
|
},
|
|
25
32
|
});
|
|
26
33
|
// NtdDollar: a line glyph, twice the stroke width in every variant but `outline`; the stem runs
|
|
@@ -115,16 +122,19 @@ const NtdTrendDown = /* @__PURE__ */ createIcon.createIcon({
|
|
|
115
122
|
},
|
|
116
123
|
});
|
|
117
124
|
// NtdPercent: the dots are rings in every variant, a hole in each (they were plain discs when
|
|
118
|
-
// filled).
|
|
119
|
-
|
|
120
|
-
const
|
|
125
|
+
// filled), 20% bigger than they were (r 3.1 with a 1.3 hole; 3 in the outline). The slash is a
|
|
126
|
+
// line glyph: twice the stroke width in every variant but `outline`.
|
|
127
|
+
const PERCENT_DOT_TOP = 'M6.5 3.4a3.1 3.1 0 100 6.2 3.1 3.1 0 100-6.2zM6.5 5.2a1.3 1.3 0 100 2.6 1.3 1.3 0 100-2.6z';
|
|
128
|
+
const PERCENT_DOT_BOTTOM = 'M17.5 14.4a3.1 3.1 0 100 6.2 3.1 3.1 0 100-6.2zM17.5 16.2a1.3 1.3 0 100 2.6 1.3 1.3 0 100-2.6z';
|
|
129
|
+
const PERCENT_SLASH = 'M19 5L5 19';
|
|
121
130
|
const NtdPercent = /* @__PURE__ */ createIcon.createIcon({
|
|
122
131
|
displayName: 'NtdPercent',
|
|
123
132
|
paths: {
|
|
124
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("
|
|
125
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("
|
|
126
|
-
|
|
127
|
-
|
|
133
|
+
solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PERCENT_SLASH, stroke: primaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: `${PERCENT_DOT_TOP}${PERCENT_DOT_BOTTOM}`, fillRule: "evenodd", fill: primaryColor })] })),
|
|
134
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PERCENT_SLASH, stroke: primaryColor, strokeWidth: strokeWidth }), jsxRuntime.jsx("circle", { cx: "6.5", cy: "6.5", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "17.5", cy: "17.5", r: "3", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
135
|
+
// fills only: the slash secondary, the rings primary
|
|
136
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PERCENT_SLASH, stroke: secondaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: `${PERCENT_DOT_TOP}${PERCENT_DOT_BOTTOM}`, fillRule: "evenodd", fill: primaryColor })] })),
|
|
137
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PERCENT_SLASH, stroke: primaryColor, strokeWidth: strokeWidth * 2 }), jsxRuntime.jsx("path", { d: PERCENT_DOT_TOP, fillRule: "evenodd", fill: primaryColor }), jsxRuntime.jsx("path", { d: PERCENT_DOT_BOTTOM, fillRule: "evenodd", fill: secondaryColor })] })),
|
|
128
138
|
},
|
|
129
139
|
});
|
|
130
140
|
// NtdInvoice: NtdFile's page with a short title, two rows of item and amount, and the total on
|
|
@@ -79,13 +79,23 @@ const NtdDiscount = /* @__PURE__ */ createIcon.createIcon({
|
|
|
79
79
|
vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "8", cy: "8", r: "2", fill: secondaryColor }), jsxRuntime.jsx("circle", { cx: "16", cy: "16", r: "2", fill: "#F59E0B" }), jsxRuntime.jsx("path", { d: "M7 17L17 7", stroke: "white", strokeWidth: "1", opacity: "0.35" })] })),
|
|
80
80
|
},
|
|
81
81
|
});
|
|
82
|
+
// NtdPromoTag: a price tag with its hole and a percent sign on it, the sign turned 45° clockwise
|
|
83
|
+
// — its slash lies across and the two dots sit above and below it. Filled, the sign is in the
|
|
84
|
+
// accent colour like the hole (vivid: the hole secondary); duotone and the outline draw it primary.
|
|
85
|
+
const PROMO_TAG = 'M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z';
|
|
86
|
+
const PROMO_PERCENT_SLASH = 'M10 13h6.4';
|
|
87
|
+
/** The percent sign's two dots, r 1.15, above and below the slash. */
|
|
88
|
+
const PROMO_PERCENT_DOTS = 'M13.2 8.95a1.15 1.15 0 100 2.3 1.15 1.15 0 100-2.3zM13.2 14.75a1.15 1.15 0 100 2.3 1.15 1.15 0 100-2.3z';
|
|
89
|
+
function promoPercent(color, width, opacity = 1) {
|
|
90
|
+
return (jsxRuntime.jsxs("g", { opacity: opacity, children: [jsxRuntime.jsx("path", { d: PROMO_PERCENT_SLASH, stroke: color, strokeWidth: width }), jsxRuntime.jsx("path", { d: PROMO_PERCENT_DOTS, fill: color })] }));
|
|
91
|
+
}
|
|
82
92
|
const NtdPromoTag = /* @__PURE__ */ createIcon.createIcon({
|
|
83
93
|
displayName: 'NtdPromoTag',
|
|
84
94
|
paths: {
|
|
85
|
-
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d:
|
|
86
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d:
|
|
87
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d:
|
|
88
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d:
|
|
95
|
+
solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PROMO_TAG, fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "7", cy: "7", r: "2", fill: accentColor, opacity: accentOpacity }), promoPercent(accentColor, strokeWidth * 1.5, accentOpacity)] })),
|
|
96
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PROMO_TAG, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "7", cy: "7", r: "1.5", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), promoPercent(primaryColor, strokeWidth)] })),
|
|
97
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PROMO_TAG, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: PROMO_TAG, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "7", cy: "7", r: "1.5", fill: primaryColor }), promoPercent(primaryColor, strokeWidth * 1.5)] })),
|
|
98
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PROMO_TAG, fill: primaryColor }), jsxRuntime.jsx("path", { d: PROMO_TAG, fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "7", cy: "7", r: "2", fill: secondaryColor }), promoPercent(accentColor, strokeWidth * 1.5, accentOpacity)] })),
|
|
89
99
|
},
|
|
90
100
|
});
|
|
91
101
|
const NtdGiftCard = /* @__PURE__ */ createIcon.createIcon({
|
|
@@ -49,23 +49,30 @@ const NtdUniversity = /* @__PURE__ */ createIcon.createIcon({
|
|
|
49
49
|
// at the bottom between the front cover and the back cover. Down the right edge it is cover, then
|
|
50
50
|
// a notch cut in 0.9 at the pages, then cover again: beside the pages only a narrow strip of cover
|
|
51
51
|
// is left (it was a 2.5 wide bar). The outline ends the pages with a line short of the edge, the back
|
|
52
|
-
// cover running on under the notch. The cover is
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
52
|
+
// cover running on under the notch. The front cover is 12.2 high (3.5 → 15.7, 20% lower than it
|
|
53
|
+
// was) and the block of pages 50% thicker (3.15, it was 2.1), the book centred in the box. The
|
|
54
|
+
// cover carries one line of title, in the accent colour when filled, in its upper third (a quarter
|
|
55
|
+
// of the way down; it was halfway); NtdBookBookmark adds a ribbon there and keeps the title
|
|
56
|
+
// halfway, below it.
|
|
57
|
+
const BOOK_SILHOUETTE = 'M7 3.5h12a1 1 0 011 1v11.2h-.9v3.15H20v.65a1 1 0 01-1 1H7a2.5 2.5 0 01-2.5-2.5V6A2.5 2.5 0 017 3.5z';
|
|
58
|
+
const BOOK_PAGES = 'M6.6 15.7h11.4v3.15H6.6a1.575 1.575 0 010-3.15z';
|
|
59
|
+
const BOOK_RIBBON = 'M9.5 3.5V8l1.75-1.3L13 8V3.5z';
|
|
60
|
+
const BOOK_TITLE = 'M9.5 6.75h6.5';
|
|
61
|
+
/** The title below NtdBookBookmark's ribbon. */
|
|
62
|
+
const BOOK_TITLE_LOW = 'M9.5 10h6.5';
|
|
63
|
+
const BOOK_OUTLINE = 'M4.5 17.5V6A2.5 2.5 0 017 3.5h12a1 1 0 011 1v10H7.5a3 3 0 000 6H20M18.7 14.5v6';
|
|
58
64
|
/** The inside of the outline, for duotone's fill under it. */
|
|
59
|
-
const BOOK_OUTLINE_FILL = 'M7
|
|
65
|
+
const BOOK_OUTLINE_FILL = 'M7 3.5h12a1 1 0 011 1v10h-1.3v6H7.5a3 3 0 01-3-3V6A2.5 2.5 0 017 3.5z';
|
|
60
66
|
/** The book, with the ribbon bookmark or without it. */
|
|
61
67
|
function bookIcon(displayName, ribbon) {
|
|
68
|
+
const title = ribbon ? BOOK_TITLE_LOW : BOOK_TITLE;
|
|
62
69
|
return createIcon.createIcon({
|
|
63
70
|
displayName,
|
|
64
71
|
paths: {
|
|
65
|
-
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsxRuntime.jsx("path", { d: BOOK_PAGES }), ribbon && jsxRuntime.jsx("path", { d: BOOK_RIBBON })] })] })),
|
|
66
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_OUTLINE
|
|
67
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_OUTLINE_FILL, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: BOOK_OUTLINE
|
|
68
|
-
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxRuntime.jsx("path", { d: BOOK_PAGES,
|
|
72
|
+
solid: ({ primaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsxRuntime.jsx("path", { d: BOOK_PAGES }), ribbon && jsxRuntime.jsx("path", { d: BOOK_RIBBON }), jsxRuntime.jsx("path", { d: title, stroke: accentColor, strokeWidth: "1.5", fill: "none" })] })] })),
|
|
73
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: `${BOOK_OUTLINE}${title}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && (jsxRuntime.jsx("path", { d: "M9.5 4v4l1.75-1.3L13 8V4", stroke: primaryColor, strokeWidth: strokeWidth * 0.75, fill: "none" }))] })),
|
|
74
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_OUTLINE_FILL, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: `${BOOK_OUTLINE}${title}`, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), ribbon && jsxRuntime.jsx("path", { d: BOOK_RIBBON, fill: primaryColor })] })),
|
|
75
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BOOK_SILHOUETTE, fill: primaryColor }), jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [jsxRuntime.jsx("path", { d: BOOK_PAGES }), jsxRuntime.jsx("path", { d: title, stroke: accentColor, strokeWidth: "1.5", fill: "none" })] }), ribbon && jsxRuntime.jsx("path", { d: BOOK_RIBBON, fill: secondaryColor })] })),
|
|
69
76
|
},
|
|
70
77
|
});
|
|
71
78
|
}
|
package/dist/cjs/icons/files.js
CHANGED
|
@@ -191,19 +191,25 @@ const NtdSmartphone = /* @__PURE__ */ createIcon.createIcon({
|
|
|
191
191
|
});
|
|
192
192
|
// NtdMonitor: the neck and the base are twice the stroke width in every variant but `outline`, and
|
|
193
193
|
// the base is 30% wider — 13 across with its caps (it was 10); it sits at 21.5 so the heavier line
|
|
194
|
-
// stays in the box. Vivid: the stand secondary (it had a fixed #3B82F6 neck).
|
|
194
|
+
// stays in the box. Vivid: the stand secondary (it had a fixed #3B82F6 neck). The stand is clipped
|
|
195
|
+
// to below the screen's bottom edge: the neck's round cap reached up over the screen, which showed
|
|
196
|
+
// through duotone's see-through screen.
|
|
195
197
|
const MONITOR_SCREEN = { x: 2, y: 3, width: 20, height: 14, rx: 2 };
|
|
196
198
|
/** Neck and base for a line twice the stroke width: base 9 long + 2 × 2 of cap = 13. */
|
|
197
199
|
const MONITOR_STAND = 'M12 17v4.5M7.5 21.5h9';
|
|
198
200
|
/** The outline's neck and base, at the stroke width: base 11 long + 2 × 1 of cap = 13. */
|
|
199
201
|
const MONITOR_STAND_LINE = 'M12 17v4M6.5 21h11';
|
|
202
|
+
/** The stand, drawn only below the screen's bottom edge (y 17). */
|
|
203
|
+
function monitorStand(uid, d, color, width) {
|
|
204
|
+
return iconParts.within(uid, 'stand', jsxRuntime.jsx("rect", { x: "0", y: "17", width: "24", height: "7" }), jsxRuntime.jsx("path", { d: d, stroke: color, strokeWidth: width }));
|
|
205
|
+
}
|
|
200
206
|
const NtdMonitor = /* @__PURE__ */ createIcon.createIcon({
|
|
201
207
|
displayName: 'NtdMonitor',
|
|
202
208
|
paths: {
|
|
203
|
-
solid: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }),
|
|
204
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }),
|
|
205
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }),
|
|
206
|
-
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }),
|
|
209
|
+
solid: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }), monitorStand(uid, MONITOR_STAND, primaryColor, strokeWidth * 2)] })),
|
|
210
|
+
outline: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), monitorStand(uid, MONITOR_STAND_LINE, primaryColor, strokeWidth)] })),
|
|
211
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), monitorStand(uid, MONITOR_STAND, primaryColor, strokeWidth * 2)] })),
|
|
212
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...MONITOR_SCREEN, fill: primaryColor }), monitorStand(uid, MONITOR_STAND, secondaryColor, strokeWidth * 2)] })),
|
|
207
213
|
},
|
|
208
214
|
});
|
|
209
215
|
// NtdCpu: filled, the body and its pins primary and the die in the accent colour (the body was a
|
|
@@ -299,12 +305,14 @@ const NtdCreditCard = /* @__PURE__ */ createIcon.createIcon({
|
|
|
299
305
|
vivid: ({ primaryColor, accentColor, accentOpacity, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...CARD_BODY, fill: primaryColor }), jsxRuntime.jsx("rect", { ...CARD_BODY, fill: "white", opacity: "0.1" }), iconParts.within(uid, 'stripe', jsxRuntime.jsx("rect", { ...CARD_BODY }), jsxRuntime.jsx("rect", { ...CARD_STRIPE, fill: "black", opacity: "0.35" })), jsxRuntime.jsx("rect", { ...CARD_SIGNATURE, fill: accentColor, opacity: accentOpacity }), jsxRuntime.jsx("rect", { ...CARD_CVV, fill: accentColor, opacity: accentOpacity })] })),
|
|
300
306
|
},
|
|
301
307
|
});
|
|
302
|
-
// NtdPieChart: filled, two sectors of one pie (r 10) pulled
|
|
303
|
-
//
|
|
304
|
-
//
|
|
305
|
-
// slice
|
|
306
|
-
|
|
307
|
-
|
|
308
|
+
// NtdPieChart: filled, two sectors of one pie (r 10) pulled 1 apart along the small one's middle
|
|
309
|
+
// — a gap between them. The larger is the three-quarter sector from the centre; it was a segment
|
|
310
|
+
// cut off by a chord, which read as an odd shape. The whole chart is turned 45° clockwise, so the
|
|
311
|
+
// slice points right (it filled the top-right quarter). The outline keeps its open arc and the
|
|
312
|
+
// slice, turned the same way. Duotone, fills only: the larger sector secondary, the slice primary;
|
|
313
|
+
// vivid the other way.
|
|
314
|
+
const PIE_REST = 'M11 12L18.07 4.93A10 10 0 1 0 18.07 19.07Z';
|
|
315
|
+
const PIE_SLICE = 'M13 12L20.07 4.93A10 10 0 0 1 20.07 19.07Z';
|
|
308
316
|
function pieFilled(rest, slice) {
|
|
309
317
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: PIE_REST, fill: rest }), jsxRuntime.jsx("path", { d: PIE_SLICE, fill: slice })] }));
|
|
310
318
|
}
|
|
@@ -312,7 +320,7 @@ const NtdPieChart = /* @__PURE__ */ createIcon.createIcon({
|
|
|
312
320
|
displayName: 'NtdPieChart',
|
|
313
321
|
paths: {
|
|
314
322
|
solid: ({ primaryColor }) => pieFilled(primaryColor, primaryColor),
|
|
315
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "
|
|
323
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M15.76 21.27A10 10 0 1 1 15.65 2.69", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: "M19.07 19.07A10 10 0 0 0 19.07 4.93L12 12z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
316
324
|
duotone: ({ primaryColor, secondaryColor }) => pieFilled(secondaryColor, primaryColor),
|
|
317
325
|
vivid: ({ primaryColor, secondaryColor }) => pieFilled(primaryColor, secondaryColor),
|
|
318
326
|
},
|
package/dist/cjs/icons/health.js
CHANGED
|
@@ -102,29 +102,45 @@ const NtdEgg = /* @__PURE__ */ createIcon.createIcon({
|
|
|
102
102
|
vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("ellipse", { cx: "12", cy: "14", rx: "7", ry: "8", fill: primaryColor }), jsxRuntime.jsx("ellipse", { cx: "12", cy: "14", rx: "7", ry: "8", fill: "white", opacity: "0.1" })] })),
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
|
-
// NtdHamburger: even layers of one width — a low domed top bun,
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
const BURGER_PATTY = { x: 2.5, y:
|
|
111
|
-
const BURGER_BOTTOM = 'M3
|
|
105
|
+
// NtdHamburger: three even layers of one width — a low domed top bun, the patty and the bottom bun
|
|
106
|
+
// — each standing apart by the same gap. (The top was a tall half circle and the bottom bun wider
|
|
107
|
+
// than everything above it; the wavy band of sauce between the bun and the patty is gone.)
|
|
108
|
+
// Duotone, fills only: the buns secondary, the patty primary; vivid the patty secondary.
|
|
109
|
+
const BURGER_TOP = 'M3 10C3 6.7 7 4 12 4s9 2.7 9 6a1 1 0 01-1 1H4a1 1 0 01-1-1z';
|
|
110
|
+
const BURGER_PATTY = { x: 2.5, y: 12.3, width: 19, height: 3.4, rx: 1.7 };
|
|
111
|
+
const BURGER_BOTTOM = 'M3 17h18v2a2 2 0 01-2 2H5a2 2 0 01-2-2z';
|
|
112
|
+
function burgerFilled(buns, patty) {
|
|
113
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BURGER_TOP, fill: buns }), jsxRuntime.jsx("rect", { ...BURGER_PATTY, fill: patty }), jsxRuntime.jsx("path", { d: BURGER_BOTTOM, fill: buns })] }));
|
|
114
|
+
}
|
|
112
115
|
const NtdHamburger = /* @__PURE__ */ createIcon.createIcon({
|
|
113
116
|
displayName: 'NtdHamburger',
|
|
114
117
|
paths: {
|
|
115
|
-
solid: ({ primaryColor
|
|
116
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BURGER_TOP, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("
|
|
117
|
-
duotone: ({ primaryColor, secondaryColor
|
|
118
|
-
vivid: ({ primaryColor, secondaryColor }) => (
|
|
118
|
+
solid: ({ primaryColor }) => burgerFilled(primaryColor, primaryColor),
|
|
119
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BURGER_TOP, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { ...BURGER_PATTY, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: BURGER_BOTTOM, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
120
|
+
duotone: ({ primaryColor, secondaryColor }) => burgerFilled(secondaryColor, primaryColor),
|
|
121
|
+
vivid: ({ primaryColor, secondaryColor }) => burgerFilled(primaryColor, secondaryColor),
|
|
119
122
|
},
|
|
120
123
|
});
|
|
124
|
+
// NtdDna: a double helix inside the box (the strands ran out of it, down to y 26) — two strands,
|
|
125
|
+
// x = 12 ± 6·cos(π(y − 2)/10), crossing at y 7 and 17, apart at the ends and in the middle; eight
|
|
126
|
+
// base pairs (it had three of odd lengths), two units apart and none near a crossing, each running
|
|
127
|
+
// exactly from strand to strand. Line glyph: the strands twice the stroke width in every variant
|
|
128
|
+
// but `outline`, the pairs at the stroke width, drawn under the strands so their ends hide in them.
|
|
129
|
+
const DNA_STRAND_A = 'M18 2C18 3.67 15.14 5.33 12 7S6 10.33 6 12S8.86 15.33 12 17S18 20.33 18 22';
|
|
130
|
+
const DNA_STRAND_B = 'M6 2C6 3.67 8.86 5.33 12 7S18 10.33 18 12S15.14 15.33 12 17S6 20.33 6 22';
|
|
131
|
+
const DNA_PAIRS = 'M6.29 3h11.42M8.47 5h7.06M8.47 9h7.06M6.29 11h11.42M6.29 13h11.42M8.47 15h7.06M8.47 19h7.06M6.29 21h11.42';
|
|
132
|
+
function dnaHelix(strandA, strandB, pairs, strand, pair) {
|
|
133
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: DNA_PAIRS, stroke: pairs, strokeWidth: pair }), jsxRuntime.jsx("path", { d: DNA_STRAND_B, stroke: strandB, strokeWidth: strand, fill: "none" }), jsxRuntime.jsx("path", { d: DNA_STRAND_A, stroke: strandA, strokeWidth: strand, fill: "none" })] }));
|
|
134
|
+
}
|
|
121
135
|
const NtdDna = /* @__PURE__ */ createIcon.createIcon({
|
|
122
136
|
displayName: 'NtdDna',
|
|
123
137
|
paths: {
|
|
124
|
-
solid: ({ primaryColor,
|
|
125
|
-
outline: ({ primaryColor, strokeWidth }) => (
|
|
126
|
-
|
|
127
|
-
|
|
138
|
+
solid: ({ primaryColor, strokeWidth }) => dnaHelix(primaryColor, primaryColor, primaryColor, strokeWidth * 2, strokeWidth),
|
|
139
|
+
outline: ({ primaryColor, strokeWidth }) => dnaHelix(primaryColor, primaryColor, primaryColor, strokeWidth, strokeWidth),
|
|
140
|
+
// the strands primary, the pairs secondary
|
|
141
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => dnaHelix(primaryColor, primaryColor, secondaryColor, strokeWidth * 2, strokeWidth),
|
|
142
|
+
// one strand primary, the other and the pairs secondary
|
|
143
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => dnaHelix(primaryColor, secondaryColor, secondaryColor, strokeWidth * 2, strokeWidth),
|
|
128
144
|
},
|
|
129
145
|
});
|
|
130
146
|
|
package/dist/cjs/icons/travel.js
CHANGED
|
@@ -46,15 +46,15 @@ const NtdCar = /* @__PURE__ */ createIcon.createIcon({
|
|
|
46
46
|
// NtdBus: seen from the front — the body with a big windscreen (its top frame 1.75, 30% less than
|
|
47
47
|
// the side view's), the driver (NtdUser's head and shoulders) in it on the left, two headlights and
|
|
48
48
|
// a bumper line below it, and the wheels as rectangles under the body (round side-view wheels
|
|
49
|
-
// read oddly)
|
|
50
|
-
// the driver primary.
|
|
49
|
+
// read oddly), showing 2 below it — low-floor (they showed 3). Filled, the windscreen, the
|
|
50
|
+
// headlights and the bumper are in the accent colour and the driver primary.
|
|
51
51
|
const BUS_BODY = { x: 3, y: 2, width: 18, height: 17, rx: 2.5 };
|
|
52
52
|
const BUS_WINDOW = { x: 4.75, y: 3.75, width: 14.5, height: 7.5, rx: 1 };
|
|
53
53
|
/** The driver, cut off by the windscreen's bottom edge. */
|
|
54
54
|
const BUS_DRIVER = 'M8.4 5.3a1.6 1.6 0 110 3.2 1.6 1.6 0 110-3.2zM5.6 11.5v-.1a2.3 2.3 0 012.3-2.3h1a2.3 2.3 0 012.3 2.3v.1z';
|
|
55
55
|
const BUS_LIGHTS = 'M6.6 13.7a1.3 1.3 0 110 2.6 1.3 1.3 0 110-2.6zM17.4 13.7a1.3 1.3 0 110 2.6 1.3 1.3 0 110-2.6z';
|
|
56
56
|
const BUS_BUMPER = 'M3 17.4h18';
|
|
57
|
-
const BUS_WHEELS = 'M5.5
|
|
57
|
+
const BUS_WHEELS = 'M5.5 18h3v2a1 1 0 01-1 1h-1a1 1 0 01-1-1zM15.5 18h3v2a1 1 0 01-1 1h-1a1 1 0 01-1-1z';
|
|
58
58
|
function busFilled({ primaryColor, uid }, glass, details, detailOpacity) {
|
|
59
59
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: BUS_WHEELS, fill: primaryColor }), jsxRuntime.jsx("rect", { ...BUS_BODY, fill: primaryColor }), jsxRuntime.jsxs("g", { opacity: detailOpacity, children: [jsxRuntime.jsx("path", { d: BUS_LIGHTS, fill: details }), iconParts.within(uid, 'body', jsxRuntime.jsx("rect", { ...BUS_BODY }), jsxRuntime.jsx("path", { d: BUS_BUMPER, stroke: details, strokeWidth: "1.2" }))] }), jsxRuntime.jsx("rect", { ...BUS_WINDOW, fill: glass }), iconParts.within(uid, 'window', jsxRuntime.jsx("rect", { ...BUS_WINDOW }), jsxRuntime.jsx("path", { d: BUS_DRIVER, fill: primaryColor }))] }));
|
|
60
60
|
}
|
|
@@ -62,7 +62,7 @@ const NtdBus = /* @__PURE__ */ createIcon.createIcon({
|
|
|
62
62
|
displayName: 'NtdBus',
|
|
63
63
|
paths: {
|
|
64
64
|
solid: (props) => busFilled(props, props.accentColor, props.accentColor, props.accentOpacity),
|
|
65
|
-
outline: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BUS_BODY, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { ...BUS_WINDOW, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), iconParts.within(uid, 'window', jsxRuntime.jsx("rect", { ...BUS_WINDOW }), jsxRuntime.jsx("path", { d: BUS_DRIVER, fill: primaryColor })), jsxRuntime.jsx("path", { d: "M6.6 14a1 1 0 110 2 1 1 0 110-2zM17.4 14a1 1 0 110 2 1 1 0 110-2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M6
|
|
65
|
+
outline: ({ primaryColor, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("rect", { ...BUS_BODY, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("rect", { ...BUS_WINDOW, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), iconParts.within(uid, 'window', jsxRuntime.jsx("rect", { ...BUS_WINDOW }), jsxRuntime.jsx("path", { d: BUS_DRIVER, fill: primaryColor })), jsxRuntime.jsx("path", { d: "M6.6 14a1 1 0 110 2 1 1 0 110-2zM17.4 14a1 1 0 110 2 1 1 0 110-2z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M6 19v1a1 1 0 001 1h1a1 1 0 001-1v-1M15 19v1a1 1 0 001 1h1a1 1 0 001-1v-1", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" })] })),
|
|
66
66
|
// fills only: the body and the driver primary, the windscreen and the details secondary
|
|
67
67
|
duotone: (props) => busFilled(props, props.secondaryColor, props.secondaryColor, 1),
|
|
68
68
|
vivid: (props) => busFilled(props, props.secondaryColor, props.accentColor, props.accentOpacity),
|
package/dist/cjs/icons/ui.js
CHANGED
|
@@ -36,9 +36,9 @@ const NtdUser = /* @__PURE__ */ createIcon.createIcon({
|
|
|
36
36
|
});
|
|
37
37
|
// NtdAdmin: NtdUser in a tie — the same head and shoulders, a knot at the collar and a blade that
|
|
38
38
|
// runs down the chest to the bottom edge, cut off there (a whole short tie with its tip read
|
|
39
|
-
// comic).
|
|
39
|
+
// comic). The tie is twice as wide as it was, knot and blade: 5.2 at the collar, 6.8 at the edge.
|
|
40
40
|
const ADMIN_BODY = 'M20.8 21.9v-2.2a4.4 4.4 0 00-4.4-4.4H7.6a4.4 4.4 0 00-4.4 4.4v2.2';
|
|
41
|
-
const ADMIN_TIE = '
|
|
41
|
+
const ADMIN_TIE = 'M9.4 15.3h5.2l-1.3 1.8 2.1 4.8H8.6l2.1-4.8z';
|
|
42
42
|
const NtdAdmin = /* @__PURE__ */ createIcon.createIcon({
|
|
43
43
|
displayName: 'NtdAdmin',
|
|
44
44
|
paths: {
|
|
@@ -216,13 +216,14 @@ const NtdCalendar = /* @__PURE__ */ createIcon.createIcon({
|
|
|
216
216
|
vivid: calendarFilled,
|
|
217
217
|
},
|
|
218
218
|
});
|
|
219
|
+
// NtdTag: the hole sits on the tag's axis close to the point (5.5, 5.5; it was 7, 7).
|
|
219
220
|
const NtdTag = /* @__PURE__ */ createIcon.createIcon({
|
|
220
221
|
displayName: 'NtdTag',
|
|
221
222
|
paths: {
|
|
222
|
-
solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "
|
|
223
|
-
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "
|
|
224
|
-
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "
|
|
225
|
-
vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "
|
|
223
|
+
solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth: _strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsxRuntime.jsx("circle", { cx: "5.5", cy: "5.5", r: "1.5", fill: accentColor, opacity: accentOpacity })] })),
|
|
224
|
+
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "5.5", cy: "5.5", r: "1", fill: primaryColor })] })),
|
|
225
|
+
duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: secondaryColor, opacity: secondaryOpacity }), jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("circle", { cx: "5.5", cy: "5.5", r: "1.5", fill: primaryColor })] })),
|
|
226
|
+
vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: primaryColor }), jsxRuntime.jsx("path", { d: "M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z", fill: "white", opacity: "0.08" }), jsxRuntime.jsx("circle", { cx: "5.5", cy: "5.5", r: "1.5", fill: secondaryColor })] })),
|
|
226
227
|
},
|
|
227
228
|
});
|
|
228
229
|
/** The backspace key: a key shape pointing left with a cross inside (delete the last character). */
|
|
@@ -122,15 +122,16 @@ const NtdTree = /* @__PURE__ */ createIcon.createIcon({
|
|
|
122
122
|
},
|
|
123
123
|
});
|
|
124
124
|
// NtdMountain: a snowcap that follows the slopes down to an edge with three uneven notches, like a
|
|
125
|
-
// price chart (it had two even ones).
|
|
126
|
-
//
|
|
125
|
+
// price chart (it had two even ones). In solid (and the variants drawn from it) the whole mountain
|
|
126
|
+
// is primary and the snow line is a cut in the accent colour, clipped to the slopes; duotone and
|
|
127
|
+
// vivid keep the snow secondary. The outline draws the snow line too.
|
|
127
128
|
const MOUNTAIN = 'M12 2L2 22h20L12 2z';
|
|
128
129
|
const MOUNTAIN_SNOW = 'M12 2L15 8L14 10.2L13.1 9.4L11.9 11L10.6 9.1L9.5 10.4L8.4 9.2Z';
|
|
129
130
|
const MOUNTAIN_SNOW_LINE = 'M8.4 9.2L9.5 10.4L10.6 9.1L11.9 11L13.1 9.4L14 10.2L15 8';
|
|
130
131
|
const NtdMountain = /* @__PURE__ */ createIcon.createIcon({
|
|
131
132
|
displayName: 'NtdMountain',
|
|
132
133
|
paths: {
|
|
133
|
-
solid: (
|
|
134
|
+
solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: MOUNTAIN, fill: primaryColor }), iconParts.within(uid, 'snow', jsxRuntime.jsx("path", { d: MOUNTAIN }), jsxRuntime.jsx("path", { d: MOUNTAIN_SNOW_LINE, stroke: accentColor, strokeOpacity: accentOpacity, strokeWidth: strokeWidth, strokeLinejoin: "miter", fill: "none" }))] })),
|
|
134
135
|
outline: ({ primaryColor, strokeWidth }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: MOUNTAIN, stroke: primaryColor, strokeWidth: strokeWidth, fill: "none" }), jsxRuntime.jsx("path", { d: MOUNTAIN_SNOW_LINE, stroke: primaryColor, strokeWidth: strokeWidth * 0.8, fill: "none" })] })),
|
|
135
136
|
duotone: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: MOUNTAIN, fill: primaryColor }), jsxRuntime.jsx("path", { d: MOUNTAIN_SNOW, fill: secondaryColor })] })),
|
|
136
137
|
vivid: ({ primaryColor, secondaryColor }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: MOUNTAIN, fill: primaryColor }), jsxRuntime.jsx("path", { d: MOUNTAIN_SNOW, fill: secondaryColor })] })),
|
package/dist/cjs/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var createIcon = require('./createIcon.js');
|
|
|
5
5
|
var smilAnimations = require('./smilAnimations.js');
|
|
6
6
|
var NiceIconPicker = require('./NiceIconPicker.js');
|
|
7
7
|
var NiceIconStacker = require('./NiceIconStacker.js');
|
|
8
|
+
var iconStack = require('./iconStack.js');
|
|
8
9
|
var animationControls = require('./animationControls.js');
|
|
9
10
|
var figmaExport = require('./figmaExport.js');
|
|
10
11
|
var navigation = require('./icons/navigation.js');
|
|
@@ -70,7 +71,10 @@ exports.generateSmilAnimation = smilAnimations.generateSmilAnimation;
|
|
|
70
71
|
exports.isSmilSupported = smilAnimations.isSmilSupported;
|
|
71
72
|
exports.NiceIconPicker = NiceIconPicker.NiceIconPicker;
|
|
72
73
|
exports.NiceIconStacker = NiceIconStacker.NiceIconStacker;
|
|
73
|
-
exports.
|
|
74
|
+
exports.NiceIconStack = iconStack.NiceIconStack;
|
|
75
|
+
exports.isValidTextBinding = iconStack.isValidTextBinding;
|
|
76
|
+
exports.niceIconStackCode = iconStack.niceIconStackCode;
|
|
77
|
+
exports.renderIconStack = iconStack.renderIconStack;
|
|
74
78
|
exports.AnimationController = animationControls.AnimationController;
|
|
75
79
|
exports.InteractiveIcon = animationControls.InteractiveIcon;
|
|
76
80
|
exports.NiceAnimationController = animationControls.AnimationController;
|