@nice2dev/icons 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/dist/cjs/NiceIconStacker.js +36 -2
- package/dist/cjs/createIcon.js +25 -6
- package/dist/cjs/iconParts.js +33 -12
- package/dist/cjs/iconValue.js +6 -1
- package/dist/cjs/icons/actions.js +86 -122
- package/dist/cjs/icons/ai.js +0 -178
- package/dist/cjs/icons/business.js +172 -120
- package/dist/cjs/icons/ecommerce.js +18 -74
- package/dist/cjs/icons/education.js +235 -487
- package/dist/cjs/icons/files.js +193 -461
- package/dist/cjs/icons/fintech.js +38 -74
- package/dist/cjs/icons/food.js +117 -194
- package/dist/cjs/icons/fun.js +176 -57
- package/dist/cjs/icons/gaming.js +2 -2
- package/dist/cjs/icons/health.js +1 -1
- package/dist/cjs/icons/index.js +32 -10
- package/dist/cjs/icons/legal.js +1 -109
- package/dist/cjs/icons/media.js +67 -8
- package/dist/cjs/icons/navigation.js +4 -4
- package/dist/cjs/icons/omniverk.js +14 -6
- package/dist/cjs/icons/realestate.js +99 -98
- package/dist/cjs/icons/roman.js +111 -0
- package/dist/cjs/icons/science.js +74 -165
- package/dist/cjs/icons/shapes.js +58 -39
- package/dist/cjs/icons/smarthome.js +18 -16
- package/dist/cjs/icons/social.js +22 -20
- package/dist/cjs/icons/sports.js +89 -159
- package/dist/cjs/icons/sustainability.js +26 -48
- package/dist/cjs/icons/travel.js +209 -477
- package/dist/cjs/icons/ui.js +140 -240
- package/dist/cjs/icons/weather.js +30 -56
- package/dist/cjs/index.js +67 -43
- package/dist/cjs/stackedIcon.js +19 -0
- package/dist/cjs/stacking.js +104 -2
- package/dist/esm/NiceIconStacker.js +37 -3
- package/dist/esm/createIcon.js +27 -8
- package/dist/esm/iconParts.js +33 -12
- package/dist/esm/iconValue.js +6 -1
- package/dist/esm/icons/actions.js +86 -122
- package/dist/esm/icons/ai.js +0 -178
- package/dist/esm/icons/business.js +172 -120
- package/dist/esm/icons/ecommerce.js +18 -74
- package/dist/esm/icons/education.js +236 -488
- package/dist/esm/icons/files.js +193 -461
- package/dist/esm/icons/fintech.js +38 -74
- package/dist/esm/icons/food.js +118 -195
- package/dist/esm/icons/fun.js +179 -60
- package/dist/esm/icons/gaming.js +2 -2
- package/dist/esm/icons/health.js +1 -1
- package/dist/esm/icons/index.js +43 -21
- package/dist/esm/icons/legal.js +1 -109
- package/dist/esm/icons/media.js +67 -8
- package/dist/esm/icons/navigation.js +4 -4
- package/dist/esm/icons/omniverk.js +15 -7
- package/dist/esm/icons/realestate.js +100 -99
- package/dist/esm/icons/roman.js +111 -0
- package/dist/esm/icons/science.js +74 -165
- package/dist/esm/icons/shapes.js +58 -39
- package/dist/esm/icons/smarthome.js +18 -16
- package/dist/esm/icons/social.js +22 -20
- package/dist/esm/icons/sports.js +89 -159
- package/dist/esm/icons/sustainability.js +26 -48
- package/dist/esm/icons/travel.js +209 -477
- package/dist/esm/icons/ui.js +140 -240
- package/dist/esm/icons/weather.js +30 -56
- package/dist/esm/index.js +45 -21
- package/dist/esm/nicetodev-icons.css +1 -1
- package/dist/esm/stackedIcon.js +19 -0
- package/dist/esm/stacking.js +105 -3
- package/dist/types/createIcon.d.ts +14 -1
- package/dist/types/iconParts.d.ts +9 -6
- package/dist/types/icons/ai.d.ts +0 -4
- package/dist/types/icons/business.d.ts +1 -0
- package/dist/types/icons/education.d.ts +2 -4
- package/dist/types/icons/files.d.ts +3 -1
- package/dist/types/icons/fintech.d.ts +1 -1
- package/dist/types/icons/fun.d.ts +23 -0
- package/dist/types/icons/index.d.ts +14 -12
- package/dist/types/icons/legal.d.ts +0 -2
- package/dist/types/icons/media.d.ts +1 -0
- package/dist/types/icons/realestate.d.ts +17 -1
- package/dist/types/icons/roman.d.ts +76 -0
- package/dist/types/icons/science.d.ts +0 -2
- package/dist/types/icons/ui.d.ts +6 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/stackedIcon.d.ts +11 -0
- package/dist/types/stacking.d.ts +48 -1
- package/dist/types/types.d.ts +17 -2
- package/package.json +2 -2
package/dist/cjs/icons/media.js
CHANGED
|
@@ -987,10 +987,11 @@ const NtdPalette = /* @__PURE__ */ createIcon.createIcon({
|
|
|
987
987
|
] })
|
|
988
988
|
}
|
|
989
989
|
});
|
|
990
|
-
const
|
|
991
|
-
const
|
|
992
|
-
const
|
|
993
|
-
const
|
|
990
|
+
const BRUSH_TURN = "rotate(45 12 12)";
|
|
991
|
+
const BRUSH_HANDLE = "M11 0.6A1 1 0 0 1 13 0.6L13.3 10.4H10.7Z";
|
|
992
|
+
const BRUSH_FERRULE = "M10.7 10.4H13.3L14.1 13.2H9.9Z";
|
|
993
|
+
const BRUSH_BRISTLES = "M9.9 13.2H14.1C14.8 15.4 15.2 18.4 12 24.2C8.8 18.4 9.2 15.4 9.9 13.2Z";
|
|
994
|
+
const BRUSH_CUTS = "M8 10.4H16M8 13.2H16";
|
|
994
995
|
function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1) {
|
|
995
996
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
996
997
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: BRUSH_HANDLE, fill: handle }),
|
|
@@ -1001,26 +1002,36 @@ function brushFilled(handle, ferrule, bristles, ferruleOpacity = 1) {
|
|
|
1001
1002
|
const NtdBrush = /* @__PURE__ */ createIcon.createIcon({
|
|
1002
1003
|
displayName: "NtdBrush",
|
|
1003
1004
|
paths: {
|
|
1004
|
-
solid: ({ primaryColor, accentColor, accentOpacity, uid }) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1005
|
+
solid: ({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: BRUSH_TURN, children: [
|
|
1005
1006
|
brushFilled(primaryColor, primaryColor, primaryColor),
|
|
1006
1007
|
iconParts.within(
|
|
1007
1008
|
uid,
|
|
1008
1009
|
"brush",
|
|
1009
1010
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}` }),
|
|
1010
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1011
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1012
|
+
"path",
|
|
1013
|
+
{
|
|
1014
|
+
d: BRUSH_CUTS,
|
|
1015
|
+
stroke: accentColor,
|
|
1016
|
+
strokeWidth: strokeWidth * 0.8,
|
|
1017
|
+
opacity: accentOpacity
|
|
1018
|
+
}
|
|
1019
|
+
)
|
|
1011
1020
|
)
|
|
1012
1021
|
] }),
|
|
1013
1022
|
outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1014
1023
|
"path",
|
|
1015
1024
|
{
|
|
1016
1025
|
d: `${BRUSH_HANDLE}${BRUSH_FERRULE}${BRUSH_BRISTLES}`,
|
|
1026
|
+
transform: BRUSH_TURN,
|
|
1017
1027
|
stroke: primaryColor,
|
|
1018
1028
|
strokeWidth,
|
|
1029
|
+
strokeLinejoin: "round",
|
|
1019
1030
|
fill: "none"
|
|
1020
1031
|
}
|
|
1021
1032
|
),
|
|
1022
|
-
duotone: ({ primaryColor, secondaryColor }) => brushFilled(primaryColor, primaryColor, secondaryColor),
|
|
1023
|
-
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity)
|
|
1033
|
+
duotone: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, primaryColor, secondaryColor) }),
|
|
1034
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxRuntime.jsx("g", { transform: BRUSH_TURN, children: brushFilled(primaryColor, accentColor, secondaryColor, accentOpacity) })
|
|
1024
1035
|
}
|
|
1025
1036
|
});
|
|
1026
1037
|
const NtdPenTool = /* @__PURE__ */ createIcon.createIcon({
|
|
@@ -1120,10 +1131,58 @@ const NtdSpline = /* @__PURE__ */ createIcon.createIcon({
|
|
|
1120
1131
|
) })
|
|
1121
1132
|
}
|
|
1122
1133
|
});
|
|
1134
|
+
const DROPPER_BULB = "M9 7V5a3 3 0 016 0v2z";
|
|
1135
|
+
const DROPPER_COLLAR = { x: 7.5, y: 7, width: 9, height: 2, rx: 0.5 };
|
|
1136
|
+
const DROPPER_TUBE = { x: 10, y: 9, width: 4, height: 8.5 };
|
|
1137
|
+
const DROPPER_TIP = "M10 17.5h4l-1.25 3.5h-1.5z";
|
|
1138
|
+
const DROPPER_LIQUID = { x: 10.9, y: 12.6, width: 2.2, height: 4.9 };
|
|
1139
|
+
const DROPPER_DROP = "M5 19.2c.9 1.1 1.4 1.8 1.4 2.4a1.4 1.4 0 01-2.8 0c0-.6.5-1.3 1.4-2.4z";
|
|
1140
|
+
const DROPPER_TURN = "rotate(45 12 12)";
|
|
1141
|
+
function dropperFilled(body, bulb, liquid, liquidOpacity) {
|
|
1142
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1143
|
+
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: DROPPER_TURN, children: [
|
|
1144
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_BULB, fill: bulb }),
|
|
1145
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...DROPPER_COLLAR, fill: body }),
|
|
1146
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...DROPPER_TUBE, fill: body }),
|
|
1147
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_TIP, fill: body }),
|
|
1148
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...DROPPER_LIQUID, fill: liquid, opacity: liquidOpacity })
|
|
1149
|
+
] }),
|
|
1150
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_DROP, fill: body })
|
|
1151
|
+
] });
|
|
1152
|
+
}
|
|
1153
|
+
const NtdEyeDropper = /* @__PURE__ */ createIcon.createIcon({
|
|
1154
|
+
displayName: "NtdEyeDropper",
|
|
1155
|
+
paths: {
|
|
1156
|
+
solid: ({ primaryColor, accentColor, accentOpacity }) => dropperFilled(primaryColor, primaryColor, accentColor, accentOpacity),
|
|
1157
|
+
outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1158
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1159
|
+
"g",
|
|
1160
|
+
{
|
|
1161
|
+
transform: DROPPER_TURN,
|
|
1162
|
+
stroke: primaryColor,
|
|
1163
|
+
strokeWidth,
|
|
1164
|
+
strokeLinejoin: "miter",
|
|
1165
|
+
fill: "none",
|
|
1166
|
+
children: [
|
|
1167
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_BULB }),
|
|
1168
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...DROPPER_COLLAR }),
|
|
1169
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...DROPPER_TUBE }),
|
|
1170
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_TIP }),
|
|
1171
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 13v3.5" })
|
|
1172
|
+
]
|
|
1173
|
+
}
|
|
1174
|
+
),
|
|
1175
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: DROPPER_DROP, stroke: primaryColor, strokeWidth, fill: "none" })
|
|
1176
|
+
] }),
|
|
1177
|
+
duotone: ({ primaryColor, secondaryColor }) => dropperFilled(primaryColor, secondaryColor, secondaryColor, 1),
|
|
1178
|
+
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => dropperFilled(primaryColor, secondaryColor, accentColor, accentOpacity)
|
|
1179
|
+
}
|
|
1180
|
+
});
|
|
1123
1181
|
exports.NtdBluetooth = NtdBluetooth;
|
|
1124
1182
|
exports.NtdBrush = NtdBrush;
|
|
1125
1183
|
exports.NtdCamera = NtdCamera;
|
|
1126
1184
|
exports.NtdChat = NtdChat;
|
|
1185
|
+
exports.NtdEyeDropper = NtdEyeDropper;
|
|
1127
1186
|
exports.NtdImage = NtdImage;
|
|
1128
1187
|
exports.NtdInbox = NtdInbox;
|
|
1129
1188
|
exports.NtdMail = NtdMail;
|
|
@@ -388,13 +388,13 @@ const NtdExternalLink = /* @__PURE__ */ createIcon.createIcon({
|
|
|
388
388
|
}
|
|
389
389
|
});
|
|
390
390
|
const REFRESH_TOP = {
|
|
391
|
-
tail: "
|
|
392
|
-
start: [
|
|
391
|
+
tail: "M5.51 9.38A7 7 0 0 1 17.98 8.37",
|
|
392
|
+
start: [5.51, 9.38],
|
|
393
393
|
head: "M14.59 8.46L17.89 12.9L21.77 8.96z"
|
|
394
394
|
};
|
|
395
395
|
const REFRESH_BOTTOM = {
|
|
396
|
-
tail: "
|
|
397
|
-
start: [
|
|
396
|
+
tail: "M18.49 14.62A7 7 0 0 1 6.02 15.63",
|
|
397
|
+
start: [18.49, 14.62],
|
|
398
398
|
head: "M9.41 15.54L6.11 11.1L2.23 15.04z"
|
|
399
399
|
};
|
|
400
400
|
function refreshArrows(top, bottom, strokeWidth, roundTail = true) {
|
|
@@ -293,14 +293,22 @@ const NtdShipment = /* @__PURE__ */ createIcon.createIcon({
|
|
|
293
293
|
});
|
|
294
294
|
const FOOD_FORK = iconParts.CUTLERY_FORK;
|
|
295
295
|
const FOOD_KNIFE = iconParts.CUTLERY_KNIFE;
|
|
296
|
-
const
|
|
296
|
+
const FOOD_PLATE = { cx: 12.25, cy: 12, r: 6.75 };
|
|
297
297
|
function placeSetting(plate, cutlery, ringWidth, filled) {
|
|
298
298
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
299
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", {
|
|
300
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
301
|
-
|
|
302
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
303
|
-
|
|
299
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { ...FOOD_PLATE, stroke: plate, strokeWidth: ringWidth, fill: "none" }),
|
|
300
|
+
filled ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${FOOD_FORK}${FOOD_KNIFE}`, fill: cutlery }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
301
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: FOOD_FORK, fill: cutlery }),
|
|
302
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
303
|
+
"path",
|
|
304
|
+
{
|
|
305
|
+
d: FOOD_KNIFE,
|
|
306
|
+
stroke: cutlery,
|
|
307
|
+
strokeWidth: ringWidth,
|
|
308
|
+
strokeLinejoin: "miter",
|
|
309
|
+
fill: "none"
|
|
310
|
+
}
|
|
311
|
+
)
|
|
304
312
|
] })
|
|
305
313
|
] });
|
|
306
314
|
}
|
|
@@ -61,12 +61,14 @@ const NtdHouse = /* @__PURE__ */ createIcon.createIcon({
|
|
|
61
61
|
});
|
|
62
62
|
const APARTMENT = { x: 4.5, y: 4, width: 15, height: 18, rx: 2 };
|
|
63
63
|
const APARTMENT_WINDOWS = [
|
|
64
|
-
{ x:
|
|
65
|
-
{ x:
|
|
66
|
-
{ x:
|
|
67
|
-
{ x:
|
|
64
|
+
{ x: 6.3, y: 7 },
|
|
65
|
+
{ x: 10.6, y: 7 },
|
|
66
|
+
{ x: 14.9, y: 7 },
|
|
67
|
+
{ x: 6.3, y: 12.2 },
|
|
68
|
+
{ x: 10.6, y: 12.2 },
|
|
69
|
+
{ x: 14.9, y: 12.2 }
|
|
68
70
|
];
|
|
69
|
-
const APARTMENT_DOOR = { x: 10.
|
|
71
|
+
const APARTMENT_DOOR = { x: 10.5, y: 18, width: 3, height: 4 };
|
|
70
72
|
const APARTMENT_DOOR_SILL = { ...APARTMENT_DOOR, height: 3.25 };
|
|
71
73
|
const NtdApartment = /* @__PURE__ */ createIcon.createIcon({
|
|
72
74
|
displayName: "NtdApartment",
|
|
@@ -76,25 +78,25 @@ const NtdApartment = /* @__PURE__ */ createIcon.createIcon({
|
|
|
76
78
|
solid: ({ primaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
77
79
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT, fill: primaryColor }),
|
|
78
80
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { fill: accentColor, opacity: accentOpacity, children: [
|
|
79
|
-
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "
|
|
81
|
+
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "2.8", height: "3", rx: "0.5" }, `${w.x}-${w.y}`)),
|
|
80
82
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT_DOOR_SILL })
|
|
81
83
|
] })
|
|
82
84
|
] }),
|
|
83
85
|
outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
|
|
84
86
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT }),
|
|
85
|
-
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "
|
|
87
|
+
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "2.8", height: "3", rx: "0.5" }, `${w.x}-${w.y}`)),
|
|
86
88
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT_DOOR })
|
|
87
89
|
] }),
|
|
88
90
|
duotone: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
89
91
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT, fill: primaryColor }),
|
|
90
92
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { fill: secondaryColor, children: [
|
|
91
|
-
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "
|
|
93
|
+
APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "2.8", height: "3", rx: "0.5" }, `${w.x}-${w.y}`)),
|
|
92
94
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT_DOOR })
|
|
93
95
|
] })
|
|
94
96
|
] }),
|
|
95
97
|
vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
96
98
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT, fill: primaryColor }),
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx("g", { fill: secondaryColor, children: APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "
|
|
99
|
+
/* @__PURE__ */ jsxRuntime.jsx("g", { fill: secondaryColor, children: APARTMENT_WINDOWS.map((w) => /* @__PURE__ */ jsxRuntime.jsx("rect", { ...w, width: "2.8", height: "3", rx: "0.5" }, `${w.x}-${w.y}`)) }),
|
|
98
100
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { ...APARTMENT_DOOR, fill: accentColor, opacity: accentOpacity })
|
|
99
101
|
] })
|
|
100
102
|
}
|
|
@@ -421,107 +423,101 @@ const NtdOfficeBuilding = /* @__PURE__ */ createIcon.createIcon({
|
|
|
421
423
|
] })
|
|
422
424
|
}
|
|
423
425
|
});
|
|
424
|
-
const
|
|
425
|
-
|
|
426
|
-
[
|
|
427
|
-
[
|
|
428
|
-
[9
|
|
426
|
+
const RACK_SLOTS = [
|
|
427
|
+
[0.9, 6, 4.2],
|
|
428
|
+
[7.8, 5.3, 3.4],
|
|
429
|
+
[0.9, 5.2, 3.6],
|
|
430
|
+
[6.9, 6.2, 4.2]
|
|
429
431
|
];
|
|
430
|
-
|
|
431
|
-
|
|
432
|
+
const round = (n) => Math.round(n * 1e3) / 1e3;
|
|
433
|
+
function rackGeometry(f, width, boxes) {
|
|
434
|
+
const heavy = width * 1.35;
|
|
435
|
+
const middle = (f.top + f.bottom) / 2;
|
|
436
|
+
const half = width / 2;
|
|
437
|
+
const lines = `M${f.left} ${f.top}V${f.floor}M${f.right} ${f.top}V${f.floor}M${f.left} ${middle}H${f.right}M${f.left} ${f.top}H${f.right}M${f.left} ${f.bottom}H${f.right}`;
|
|
438
|
+
const rect = (x, y, w, h) => `M${round(x)} ${round(y)}h${round(w)}v${round(h)}h${round(-w)}Z`;
|
|
439
|
+
const frame = [
|
|
440
|
+
rect(f.left - half, f.top - heavy / 2, width, f.floor - f.top + heavy / 2),
|
|
441
|
+
rect(f.right - half, f.top - heavy / 2, width, f.floor - f.top + heavy / 2),
|
|
442
|
+
rect(f.left - half, f.top - heavy / 2, f.right - f.left + width, heavy),
|
|
443
|
+
rect(f.left, middle - half, f.right - f.left, width),
|
|
444
|
+
rect(f.left, f.bottom - heavy / 2, f.right - f.left, heavy)
|
|
445
|
+
].join("");
|
|
446
|
+
const levels = [
|
|
447
|
+
{ floor: f.bottom - heavy / 2, ceiling: middle + half },
|
|
448
|
+
{ floor: middle - half, ceiling: f.top + heavy / 2 }
|
|
449
|
+
];
|
|
450
|
+
const scale = (f.right - f.left) / 16;
|
|
451
|
+
const rects = RACK_SLOTS.slice(0, boxes).map(([x, w, h], i) => {
|
|
452
|
+
const level = levels[Math.floor(i / 2)];
|
|
453
|
+
const gap = 0.6 * scale;
|
|
454
|
+
const bh = Math.min(h * scale, level.floor - level.ceiling - gap - 0.4 * scale);
|
|
455
|
+
return rect(f.left + half + x * scale, level.floor - gap - bh, w * scale, bh);
|
|
456
|
+
}).join("");
|
|
457
|
+
return { lines, frame, rects };
|
|
432
458
|
}
|
|
433
|
-
function
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
uid,
|
|
442
|
-
name,
|
|
443
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: rects }),
|
|
444
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: boxTapes(boxes), stroke: tape, strokeWidth: width, fill: "none" })
|
|
445
|
-
)
|
|
446
|
-
] });
|
|
447
|
-
}
|
|
448
|
-
function warehouseFilled({ primaryColor, accentColor, strokeWidth, uid }, boxes) {
|
|
459
|
+
function rackDrawing(f, boxes, frame, fill, width, outline) {
|
|
460
|
+
const g = rackGeometry(f, width, boxes);
|
|
461
|
+
if (outline) {
|
|
462
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
463
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: g.lines, stroke: frame, strokeWidth: width, strokeLinecap: "butt", fill: "none" }),
|
|
464
|
+
g.rects && /* @__PURE__ */ jsxRuntime.jsx("path", { d: g.rects, stroke: fill, strokeWidth: width, strokeLinejoin: "miter", fill: "none" })
|
|
465
|
+
] });
|
|
466
|
+
}
|
|
449
467
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
450
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d:
|
|
451
|
-
|
|
468
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: g.frame, fill: frame }),
|
|
469
|
+
g.rects && /* @__PURE__ */ jsxRuntime.jsx("path", { d: g.rects, fill })
|
|
452
470
|
] });
|
|
453
471
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
472
|
+
const SHELF_RACK = { left: 4, right: 20, top: 3, bottom: 18.5, floor: 21.5 };
|
|
473
|
+
function shelfRackIcon(displayName, boxes) {
|
|
474
|
+
return createIcon.createIcon({
|
|
475
|
+
displayName,
|
|
476
|
+
paths: {
|
|
477
|
+
solid: ({ primaryColor, strokeWidth, variant }) => variant === "wireframe" ? rackDrawing(SHELF_RACK, boxes, primaryColor, primaryColor, 1, true) : rackDrawing(SHELF_RACK, boxes, primaryColor, primaryColor, strokeWidth * 2, false),
|
|
478
|
+
outline: ({ primaryColor, strokeWidth }) => rackDrawing(SHELF_RACK, boxes, primaryColor, primaryColor, strokeWidth, true),
|
|
479
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => rackDrawing(SHELF_RACK, boxes, primaryColor, secondaryColor, strokeWidth * 2, false),
|
|
480
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => rackDrawing(SHELF_RACK, boxes, primaryColor, secondaryColor, strokeWidth * 2, false)
|
|
481
|
+
}
|
|
482
|
+
});
|
|
460
483
|
}
|
|
461
|
-
const
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
[12.4, 3.6, 3]
|
|
476
|
-
],
|
|
477
|
-
[
|
|
478
|
-
[6.2, 3.6, 3.4],
|
|
479
|
-
[11, 5.2, 4.4]
|
|
480
|
-
],
|
|
481
|
-
[
|
|
482
|
-
[6.2, 5.4, 4.6],
|
|
483
|
-
[12.8, 4.4, 3.4]
|
|
484
|
-
]
|
|
484
|
+
const NtdShelfRack = /* @__PURE__ */ shelfRackIcon("NtdShelfRack", 0);
|
|
485
|
+
const NtdShelfRackQuarter = /* @__PURE__ */ shelfRackIcon("NtdShelfRackQuarter", 1);
|
|
486
|
+
const NtdShelfRackHalf = /* @__PURE__ */ shelfRackIcon("NtdShelfRackHalf", 2);
|
|
487
|
+
const NtdShelfRackThreeQuarters = /* @__PURE__ */ shelfRackIcon(
|
|
488
|
+
"NtdShelfRackThreeQuarters",
|
|
489
|
+
3
|
|
490
|
+
);
|
|
491
|
+
const NtdShelfRackFull = /* @__PURE__ */ shelfRackIcon("NtdShelfRackFull", 4);
|
|
492
|
+
const SHELF_RACK_STEPS = [
|
|
493
|
+
NtdShelfRack,
|
|
494
|
+
NtdShelfRackQuarter,
|
|
495
|
+
NtdShelfRackHalf,
|
|
496
|
+
NtdShelfRackThreeQuarters,
|
|
497
|
+
NtdShelfRackFull
|
|
485
498
|
];
|
|
486
|
-
function
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
);
|
|
499
|
+
function shelfRackIconFor(level) {
|
|
500
|
+
const clamped = Number.isNaN(level) ? 0 : Math.min(1, Math.max(0, level));
|
|
501
|
+
return SHELF_RACK_STEPS[Math.round(clamped * 4)];
|
|
490
502
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
strokeWidth: width,
|
|
498
|
-
fill: "none"
|
|
499
|
-
}
|
|
500
|
-
);
|
|
501
|
-
}
|
|
502
|
-
function rackFilled({ primaryColor, accentColor, strokeWidth, uid }, boxes) {
|
|
503
|
-
const width = strokeWidth * 2;
|
|
503
|
+
const WAREHOUSE = "M1.5 9.2L12 3.5L22.5 9.2V21H19.5V11H4.5V21H1.5Z";
|
|
504
|
+
const WAREHOUSE_RACKS = [
|
|
505
|
+
{ left: 6.25, right: 11.25, top: 12.75, bottom: 19.25, floor: 21 },
|
|
506
|
+
{ left: 12.75, right: 17.75, top: 12.75, bottom: 19.25, floor: 21 }
|
|
507
|
+
];
|
|
508
|
+
function warehouseDrawing(hall, rackFrame, boxes, width, outline) {
|
|
504
509
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
505
|
-
|
|
506
|
-
|
|
510
|
+
outline ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: WAREHOUSE, stroke: hall, strokeWidth: width, strokeLinejoin: "miter", fill: "none" }) : /* @__PURE__ */ jsxRuntime.jsx("path", { d: WAREHOUSE, fill: hall }),
|
|
511
|
+
WAREHOUSE_RACKS.map((f) => /* @__PURE__ */ jsxRuntime.jsx("g", { children: rackDrawing(f, 4, rackFrame, boxes, outline ? width : width * 0.6, outline) }, f.left))
|
|
507
512
|
] });
|
|
508
513
|
}
|
|
509
|
-
const
|
|
510
|
-
displayName: "
|
|
514
|
+
const NtdWarehouse = /* @__PURE__ */ createIcon.createIcon({
|
|
515
|
+
displayName: "NtdWarehouse",
|
|
511
516
|
paths: {
|
|
512
|
-
solid: (
|
|
513
|
-
outline: ({ primaryColor, strokeWidth }) =>
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
rackFrame(primaryColor, strokeWidth),
|
|
517
|
-
/* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "miter", fill: "none", children: [
|
|
518
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: boxRects(boxes) }),
|
|
519
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: boxTapes(boxes) })
|
|
520
|
-
] })
|
|
521
|
-
] });
|
|
522
|
-
},
|
|
523
|
-
duotone: (props) => rackFilled(props, props.secondaryColor),
|
|
524
|
-
vivid: (props) => rackFilled(props, props.secondaryColor)
|
|
517
|
+
solid: ({ primaryColor, strokeWidth, variant }) => variant === "wireframe" ? warehouseDrawing(primaryColor, primaryColor, primaryColor, 1, true) : warehouseDrawing(primaryColor, primaryColor, primaryColor, strokeWidth * 2, false),
|
|
518
|
+
outline: ({ primaryColor, strokeWidth }) => warehouseDrawing(primaryColor, primaryColor, primaryColor, strokeWidth, true),
|
|
519
|
+
duotone: ({ primaryColor, secondaryColor, strokeWidth }) => warehouseDrawing(primaryColor, primaryColor, secondaryColor, strokeWidth * 2, false),
|
|
520
|
+
vivid: ({ primaryColor, secondaryColor, strokeWidth }) => warehouseDrawing(primaryColor, primaryColor, secondaryColor, strokeWidth * 2, false)
|
|
525
521
|
}
|
|
526
522
|
});
|
|
527
523
|
const NtdKey = /* @__PURE__ */ createIcon.createIcon({
|
|
@@ -1580,8 +1576,13 @@ exports.NtdMortgage = NtdMortgage;
|
|
|
1580
1576
|
exports.NtdOfficeBuilding = NtdOfficeBuilding;
|
|
1581
1577
|
exports.NtdPool = NtdPool;
|
|
1582
1578
|
exports.NtdShelfRack = NtdShelfRack;
|
|
1579
|
+
exports.NtdShelfRackFull = NtdShelfRackFull;
|
|
1580
|
+
exports.NtdShelfRackHalf = NtdShelfRackHalf;
|
|
1581
|
+
exports.NtdShelfRackQuarter = NtdShelfRackQuarter;
|
|
1582
|
+
exports.NtdShelfRackThreeQuarters = NtdShelfRackThreeQuarters;
|
|
1583
1583
|
exports.NtdSold = NtdSold;
|
|
1584
1584
|
exports.NtdSquareMeters = NtdSquareMeters;
|
|
1585
1585
|
exports.NtdVilla = NtdVilla;
|
|
1586
1586
|
exports.NtdWarehouse = NtdWarehouse;
|
|
1587
1587
|
exports.realestateIcons = realestateIcons;
|
|
1588
|
+
exports.shelfRackIconFor = shelfRackIconFor;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const createIcon = require("../createIcon.js");
|
|
5
|
+
const GLYPHS = {
|
|
6
|
+
I: { main: "M12 4v16", part: "M9 4h6M9 20h6", width: 9 },
|
|
7
|
+
V: { main: "M6 4l6 16", part: "M12 20l6-16", width: 16 },
|
|
8
|
+
X: { main: "M6.5 4l11 16", part: "M17.5 4l-11 16", width: 15 },
|
|
9
|
+
L: { main: "M7.5 4v16", part: "M7.5 20h9", width: 12 },
|
|
10
|
+
// an open C: a circle r 8 round (13.17, 12) cut at ±45° on the right, its glyph centred on x 12
|
|
11
|
+
C: { main: "M18.83 6.34A8 8 0 005.17 12", part: "M5.17 12a8 8 0 0013.66 5.66", width: 16.5 },
|
|
12
|
+
D: { main: "M6.5 4v16", part: "M6.5 4h3a8 8 0 010 16h-3", width: 15 },
|
|
13
|
+
M: { main: "M5 20V4l7 10", part: "M12 14l7-10v16", width: 18 }
|
|
14
|
+
};
|
|
15
|
+
function romanIcon(symbol) {
|
|
16
|
+
const g = GLYPHS[symbol];
|
|
17
|
+
const lines = (width, main, part, cap, join) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
18
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19
|
+
"path",
|
|
20
|
+
{
|
|
21
|
+
d: g.main,
|
|
22
|
+
stroke: main,
|
|
23
|
+
strokeWidth: width,
|
|
24
|
+
strokeLinecap: cap,
|
|
25
|
+
strokeLinejoin: join,
|
|
26
|
+
fill: "none"
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
+
"path",
|
|
31
|
+
{
|
|
32
|
+
d: g.part,
|
|
33
|
+
stroke: part,
|
|
34
|
+
strokeWidth: width,
|
|
35
|
+
strokeLinecap: cap,
|
|
36
|
+
strokeLinejoin: join,
|
|
37
|
+
fill: "none"
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
] });
|
|
41
|
+
const filled = (p, part, cap = "butt") => lines(2 * p.strokeWidth, p.primaryColor, part, cap, cap === "round" ? "round" : "miter");
|
|
42
|
+
return createIcon.createIcon({
|
|
43
|
+
displayName: `NtdRoman${symbol}`,
|
|
44
|
+
seriesWidth: g.width,
|
|
45
|
+
paths: {
|
|
46
|
+
solid: (p) => filled(p, p.primaryColor),
|
|
47
|
+
outline: (p) => lines(p.strokeWidth, p.primaryColor, p.primaryColor, "butt", "miter"),
|
|
48
|
+
duotone: (p) => filled(p, p.secondaryColor),
|
|
49
|
+
vivid: (p) => filled(p, p.secondaryColor),
|
|
50
|
+
sharp: (p) => filled(p, p.primaryColor, "square"),
|
|
51
|
+
rounded: (p) => filled(p, p.primaryColor, "round")
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const NtdRomanI = /* @__PURE__ */ romanIcon("I");
|
|
56
|
+
const NtdRomanV = /* @__PURE__ */ romanIcon("V");
|
|
57
|
+
const NtdRomanX = /* @__PURE__ */ romanIcon("X");
|
|
58
|
+
const NtdRomanL = /* @__PURE__ */ romanIcon("L");
|
|
59
|
+
const NtdRomanC = /* @__PURE__ */ romanIcon("C");
|
|
60
|
+
const NtdRomanD = /* @__PURE__ */ romanIcon("D");
|
|
61
|
+
const NtdRomanM = /* @__PURE__ */ romanIcon("M");
|
|
62
|
+
const SYMBOL_ICONS = {
|
|
63
|
+
I: NtdRomanI,
|
|
64
|
+
V: NtdRomanV,
|
|
65
|
+
X: NtdRomanX,
|
|
66
|
+
L: NtdRomanL,
|
|
67
|
+
C: NtdRomanC,
|
|
68
|
+
D: NtdRomanD,
|
|
69
|
+
M: NtdRomanM
|
|
70
|
+
};
|
|
71
|
+
const STEPS = [
|
|
72
|
+
[1e3, "M"],
|
|
73
|
+
[900, "CM"],
|
|
74
|
+
[500, "D"],
|
|
75
|
+
[400, "CD"],
|
|
76
|
+
[100, "C"],
|
|
77
|
+
[90, "XC"],
|
|
78
|
+
[50, "L"],
|
|
79
|
+
[40, "XL"],
|
|
80
|
+
[10, "X"],
|
|
81
|
+
[9, "IX"],
|
|
82
|
+
[5, "V"],
|
|
83
|
+
[4, "IV"],
|
|
84
|
+
[1, "I"]
|
|
85
|
+
];
|
|
86
|
+
function toRomanNumeral(n) {
|
|
87
|
+
let rest = Math.round(n);
|
|
88
|
+
if (!(rest >= 1 && rest <= 3999)) {
|
|
89
|
+
return "";
|
|
90
|
+
}
|
|
91
|
+
let out = "";
|
|
92
|
+
for (const [value, letters] of STEPS) {
|
|
93
|
+
while (rest >= value) {
|
|
94
|
+
out += letters;
|
|
95
|
+
rest -= value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
function romanNumeralIcons(n) {
|
|
101
|
+
return [...toRomanNumeral(n)].map((letter) => SYMBOL_ICONS[letter]);
|
|
102
|
+
}
|
|
103
|
+
exports.NtdRomanC = NtdRomanC;
|
|
104
|
+
exports.NtdRomanD = NtdRomanD;
|
|
105
|
+
exports.NtdRomanI = NtdRomanI;
|
|
106
|
+
exports.NtdRomanL = NtdRomanL;
|
|
107
|
+
exports.NtdRomanM = NtdRomanM;
|
|
108
|
+
exports.NtdRomanV = NtdRomanV;
|
|
109
|
+
exports.NtdRomanX = NtdRomanX;
|
|
110
|
+
exports.romanNumeralIcons = romanNumeralIcons;
|
|
111
|
+
exports.toRomanNumeral = toRomanNumeral;
|