@nice2dev/icons 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/cjs/NiceIconStacker.js +36 -2
  3. package/dist/cjs/createIcon.js +25 -6
  4. package/dist/cjs/iconParts.js +33 -12
  5. package/dist/cjs/iconValue.js +6 -1
  6. package/dist/cjs/icons/actions.js +86 -122
  7. package/dist/cjs/icons/ai.js +0 -178
  8. package/dist/cjs/icons/business.js +172 -120
  9. package/dist/cjs/icons/ecommerce.js +18 -74
  10. package/dist/cjs/icons/education.js +235 -487
  11. package/dist/cjs/icons/files.js +193 -461
  12. package/dist/cjs/icons/fintech.js +38 -74
  13. package/dist/cjs/icons/food.js +117 -194
  14. package/dist/cjs/icons/fun.js +176 -57
  15. package/dist/cjs/icons/gaming.js +2 -2
  16. package/dist/cjs/icons/health.js +1 -1
  17. package/dist/cjs/icons/index.js +32 -10
  18. package/dist/cjs/icons/legal.js +1 -109
  19. package/dist/cjs/icons/media.js +67 -8
  20. package/dist/cjs/icons/navigation.js +4 -4
  21. package/dist/cjs/icons/omniverk.js +14 -6
  22. package/dist/cjs/icons/realestate.js +99 -98
  23. package/dist/cjs/icons/roman.js +111 -0
  24. package/dist/cjs/icons/science.js +74 -165
  25. package/dist/cjs/icons/shapes.js +58 -39
  26. package/dist/cjs/icons/smarthome.js +18 -16
  27. package/dist/cjs/icons/social.js +22 -20
  28. package/dist/cjs/icons/sports.js +89 -159
  29. package/dist/cjs/icons/sustainability.js +26 -48
  30. package/dist/cjs/icons/travel.js +209 -477
  31. package/dist/cjs/icons/ui.js +140 -240
  32. package/dist/cjs/icons/weather.js +30 -56
  33. package/dist/cjs/index.js +67 -43
  34. package/dist/cjs/stackedIcon.js +19 -0
  35. package/dist/cjs/stacking.js +104 -2
  36. package/dist/esm/NiceIconStacker.js +37 -3
  37. package/dist/esm/createIcon.js +27 -8
  38. package/dist/esm/iconParts.js +33 -12
  39. package/dist/esm/iconValue.js +6 -1
  40. package/dist/esm/icons/actions.js +86 -122
  41. package/dist/esm/icons/ai.js +0 -178
  42. package/dist/esm/icons/business.js +172 -120
  43. package/dist/esm/icons/ecommerce.js +18 -74
  44. package/dist/esm/icons/education.js +236 -488
  45. package/dist/esm/icons/files.js +193 -461
  46. package/dist/esm/icons/fintech.js +38 -74
  47. package/dist/esm/icons/food.js +118 -195
  48. package/dist/esm/icons/fun.js +179 -60
  49. package/dist/esm/icons/gaming.js +2 -2
  50. package/dist/esm/icons/health.js +1 -1
  51. package/dist/esm/icons/index.js +43 -21
  52. package/dist/esm/icons/legal.js +1 -109
  53. package/dist/esm/icons/media.js +67 -8
  54. package/dist/esm/icons/navigation.js +4 -4
  55. package/dist/esm/icons/omniverk.js +15 -7
  56. package/dist/esm/icons/realestate.js +100 -99
  57. package/dist/esm/icons/roman.js +111 -0
  58. package/dist/esm/icons/science.js +74 -165
  59. package/dist/esm/icons/shapes.js +58 -39
  60. package/dist/esm/icons/smarthome.js +18 -16
  61. package/dist/esm/icons/social.js +22 -20
  62. package/dist/esm/icons/sports.js +89 -159
  63. package/dist/esm/icons/sustainability.js +26 -48
  64. package/dist/esm/icons/travel.js +209 -477
  65. package/dist/esm/icons/ui.js +140 -240
  66. package/dist/esm/icons/weather.js +30 -56
  67. package/dist/esm/index.js +45 -21
  68. package/dist/esm/nicetodev-icons.css +1 -1
  69. package/dist/esm/stackedIcon.js +19 -0
  70. package/dist/esm/stacking.js +105 -3
  71. package/dist/types/createIcon.d.ts +14 -1
  72. package/dist/types/iconParts.d.ts +9 -6
  73. package/dist/types/icons/ai.d.ts +0 -4
  74. package/dist/types/icons/business.d.ts +1 -0
  75. package/dist/types/icons/education.d.ts +2 -4
  76. package/dist/types/icons/files.d.ts +3 -1
  77. package/dist/types/icons/fintech.d.ts +1 -1
  78. package/dist/types/icons/fun.d.ts +23 -0
  79. package/dist/types/icons/index.d.ts +14 -12
  80. package/dist/types/icons/legal.d.ts +0 -2
  81. package/dist/types/icons/media.d.ts +1 -0
  82. package/dist/types/icons/realestate.d.ts +17 -1
  83. package/dist/types/icons/roman.d.ts +76 -0
  84. package/dist/types/icons/science.d.ts +0 -2
  85. package/dist/types/icons/ui.d.ts +6 -1
  86. package/dist/types/index.d.ts +2 -1
  87. package/dist/types/stackedIcon.d.ts +11 -0
  88. package/dist/types/stacking.d.ts +48 -1
  89. package/dist/types/types.d.ts +17 -2
  90. package/package.json +2 -2
@@ -137,245 +137,84 @@ const NtdPlaneTakeoff = /* @__PURE__ */ createIcon({
137
137
  ] })
138
138
  }
139
139
  });
140
+ const TRAIN_BODY = { x: 4, y: 3, width: 16, height: 15, rx: 3 };
141
+ const TRAIN_WINDOWS = [7, 13];
142
+ const TRAIN_LIGHTS = [8, 16];
143
+ const TRAIN_RAILS = "M8 20l-2 2M16 20l2 2M12 20v2";
144
+ function trainFilled({ primaryColor, strokeWidth }, windows, lights, opacity) {
145
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
146
+ /* @__PURE__ */ jsx("rect", { ...TRAIN_BODY, fill: primaryColor }),
147
+ TRAIN_WINDOWS.map((x) => /* @__PURE__ */ jsx(
148
+ "rect",
149
+ {
150
+ x,
151
+ y: "6",
152
+ width: "4",
153
+ height: "5",
154
+ rx: "1",
155
+ fill: windows,
156
+ opacity: windows === lights ? opacity : 1
157
+ },
158
+ x
159
+ )),
160
+ TRAIN_LIGHTS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "15", r: "1.5", fill: lights, opacity }, cx)),
161
+ /* @__PURE__ */ jsx(
162
+ "path",
163
+ {
164
+ d: TRAIN_RAILS,
165
+ stroke: primaryColor,
166
+ strokeWidth: strokeWidth * 2,
167
+ strokeLinecap: "round"
168
+ }
169
+ )
170
+ ] });
171
+ }
140
172
  const NtdTrain = /* @__PURE__ */ createIcon({
141
173
  displayName: "NtdTrain",
142
174
  paths: {
143
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
144
- /* @__PURE__ */ jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: primaryColor }),
145
- /* @__PURE__ */ jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
146
- /* @__PURE__ */ jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
147
- /* @__PURE__ */ jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: "white" }),
148
- /* @__PURE__ */ jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: "white" }),
149
- /* @__PURE__ */ jsx(
150
- "path",
151
- {
152
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
153
- stroke: primaryColor,
154
- strokeWidth: "2",
155
- strokeLinecap: "round"
156
- }
157
- )
158
- ] }),
159
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
160
- /* @__PURE__ */ jsx(
161
- "rect",
162
- {
163
- x: "4",
164
- y: "3",
165
- width: "16",
166
- height: "15",
167
- rx: "3",
168
- stroke: primaryColor,
169
- strokeWidth,
170
- fill: "none"
171
- }
172
- ),
173
- /* @__PURE__ */ jsx(
174
- "rect",
175
- {
176
- x: "7",
177
- y: "6",
178
- width: "4",
179
- height: "5",
180
- rx: "1",
181
- stroke: primaryColor,
182
- strokeWidth,
183
- fill: "none"
184
- }
185
- ),
186
- /* @__PURE__ */ jsx(
187
- "rect",
188
- {
189
- x: "13",
190
- y: "6",
191
- width: "4",
192
- height: "5",
193
- rx: "1",
194
- stroke: primaryColor,
195
- strokeWidth,
196
- fill: "none"
197
- }
198
- ),
199
- /* @__PURE__ */ jsx(
200
- "circle",
201
- {
202
- cx: "8",
203
- cy: "15",
204
- r: "1.5",
205
- stroke: primaryColor,
206
- strokeWidth,
207
- fill: "none"
208
- }
209
- ),
210
- /* @__PURE__ */ jsx(
211
- "circle",
212
- {
213
- cx: "16",
214
- cy: "15",
215
- r: "1.5",
216
- stroke: primaryColor,
217
- strokeWidth,
218
- fill: "none"
219
- }
220
- ),
221
- /* @__PURE__ */ jsx(
222
- "path",
223
- {
224
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
225
- stroke: primaryColor,
226
- strokeWidth,
227
- strokeLinecap: "round"
228
- }
229
- )
175
+ solid: (p) => trainFilled(p, p.accentColor, p.accentColor, p.accentOpacity),
176
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
177
+ /* @__PURE__ */ jsx("rect", { ...TRAIN_BODY }),
178
+ TRAIN_WINDOWS.map((x) => /* @__PURE__ */ jsx("rect", { x, y: "6", width: "4", height: "5", rx: "1" }, x)),
179
+ TRAIN_LIGHTS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "15", r: "1.5" }, cx)),
180
+ /* @__PURE__ */ jsx("path", { d: TRAIN_RAILS, strokeLinecap: "round" })
230
181
  ] }),
231
- duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
232
- /* @__PURE__ */ jsx(
233
- "rect",
234
- {
235
- x: "4",
236
- y: "3",
237
- width: "16",
238
- height: "15",
239
- rx: "3",
240
- fill: secondaryColor,
241
- opacity: secondaryOpacity
242
- }
243
- ),
244
- /* @__PURE__ */ jsx(
245
- "rect",
246
- {
247
- x: "4",
248
- y: "3",
249
- width: "16",
250
- height: "15",
251
- rx: "3",
252
- stroke: primaryColor,
253
- strokeWidth,
254
- fill: "none"
255
- }
256
- ),
257
- /* @__PURE__ */ jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: primaryColor }),
258
- /* @__PURE__ */ jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: primaryColor }),
259
- /* @__PURE__ */ jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: primaryColor }),
260
- /* @__PURE__ */ jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: primaryColor }),
261
- /* @__PURE__ */ jsx(
262
- "path",
263
- {
264
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
265
- stroke: primaryColor,
266
- strokeWidth,
267
- strokeLinecap: "round"
268
- }
269
- )
270
- ] })),
271
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
272
- /* @__PURE__ */ jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: primaryColor }),
273
- /* @__PURE__ */ jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: "white", opacity: "0.08" }),
274
- /* @__PURE__ */ jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
275
- /* @__PURE__ */ jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
276
- /* @__PURE__ */ jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: "white" }),
277
- /* @__PURE__ */ jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: "white" }),
278
- /* @__PURE__ */ jsx(
279
- "path",
280
- {
281
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
282
- stroke: "white",
283
- strokeWidth: "1",
284
- strokeLinecap: "round"
285
- }
286
- )
287
- ] })
182
+ duotone: (p) => trainFilled(p, p.secondaryColor, p.secondaryColor, 1),
183
+ vivid: (p) => trainFilled(p, p.secondaryColor, p.accentColor, p.accentOpacity)
288
184
  }
289
185
  });
186
+ const CAR_BODY = "M2.5 13a2 2 0 012-2h.32L6.48 6.03A1.5 1.5 0 017.9 5h8.2a1.5 1.5 0 011.42 1.03L19.18 11h.32a2 2 0 012 2v3a2 2 0 01-2 2h-15a2 2 0 01-2-2z";
187
+ const CAR_GLASS = "M7.73 6.3H16.27L17.76 10.4H6.24Z";
188
+ const CAR_MIRRORS = "M3.35 9.3h2.1v1.5h-2.1a.75.75 0 010-1.5zM18.55 9.3h2.1a.75.75 0 010 1.5h-2.1z";
189
+ const CAR_LIGHTS = [5.8, 18.2];
190
+ const CAR_GRILLE = { x: 9.2, y: 13.6, width: 5.6, height: 1.4, rx: 0.7 };
191
+ const CAR_WHEELS = "M4.2 18.6h3.4v1.6a.8.8 0 01-.8.8H5a.8.8 0 01-.8-.8zM16.4 18.6h3.4v1.6a.8.8 0 01-.8.8h-1.8a.8.8 0 01-.8-.8z";
192
+ function carFilled({ primaryColor }, glass, lights, lightsOpacity) {
193
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
194
+ /* @__PURE__ */ jsx("path", { d: CAR_MIRRORS, fill: primaryColor }),
195
+ /* @__PURE__ */ jsx("path", { d: CAR_BODY, fill: primaryColor }),
196
+ /* @__PURE__ */ jsx("path", { d: CAR_WHEELS, fill: primaryColor }),
197
+ /* @__PURE__ */ jsx("path", { d: CAR_GLASS, fill: glass, opacity: glass === lights ? lightsOpacity : 1 }),
198
+ /* @__PURE__ */ jsxs("g", { fill: lights, opacity: lightsOpacity, children: [
199
+ CAR_LIGHTS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "14.3", r: "1.3" }, cx)),
200
+ /* @__PURE__ */ jsx("rect", { ...CAR_GRILLE })
201
+ ] })
202
+ ] });
203
+ }
290
204
  const NtdCar = /* @__PURE__ */ createIcon({
291
205
  displayName: "NtdCar",
292
206
  paths: {
293
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
294
- /* @__PURE__ */ jsx(
295
- "path",
296
- {
297
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
298
- fill: primaryColor
299
- }
300
- ),
301
- /* @__PURE__ */ jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: "white", opacity: "0.5" }),
302
- /* @__PURE__ */ jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: "white", opacity: "0.5" })
207
+ solid: (p) => carFilled(p, p.accentColor, p.accentColor, p.accentOpacity),
208
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "round", fill: "none", children: [
209
+ /* @__PURE__ */ jsx("path", { d: CAR_MIRRORS }),
210
+ /* @__PURE__ */ jsx("path", { d: CAR_BODY }),
211
+ /* @__PURE__ */ jsx("path", { d: CAR_GLASS }),
212
+ /* @__PURE__ */ jsx("path", { d: CAR_WHEELS }),
213
+ CAR_LIGHTS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "14.3", r: "1.1" }, cx)),
214
+ /* @__PURE__ */ jsx("path", { d: "M9.9 14.3h4.2", strokeLinecap: "round" })
303
215
  ] }),
304
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
305
- /* @__PURE__ */ jsx(
306
- "path",
307
- {
308
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
309
- stroke: primaryColor,
310
- strokeWidth,
311
- fill: "none",
312
- strokeLinecap: "round",
313
- strokeLinejoin: "round"
314
- }
315
- ),
316
- /* @__PURE__ */ jsx(
317
- "circle",
318
- {
319
- cx: "7",
320
- cy: "15",
321
- r: "1.5",
322
- stroke: primaryColor,
323
- strokeWidth,
324
- fill: "none"
325
- }
326
- ),
327
- /* @__PURE__ */ jsx(
328
- "circle",
329
- {
330
- cx: "17",
331
- cy: "15",
332
- r: "1.5",
333
- stroke: primaryColor,
334
- strokeWidth,
335
- fill: "none"
336
- }
337
- )
338
- ] }),
339
- duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
340
- /* @__PURE__ */ jsx(
341
- "path",
342
- {
343
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
344
- fill: secondaryColor,
345
- opacity: secondaryOpacity
346
- }
347
- ),
348
- /* @__PURE__ */ jsx(
349
- "path",
350
- {
351
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
352
- stroke: primaryColor,
353
- strokeWidth,
354
- fill: "none"
355
- }
356
- ),
357
- /* @__PURE__ */ jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: primaryColor }),
358
- /* @__PURE__ */ jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: primaryColor })
359
- ] })),
360
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
361
- /* @__PURE__ */ jsx(
362
- "path",
363
- {
364
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
365
- fill: primaryColor
366
- }
367
- ),
368
- /* @__PURE__ */ jsx(
369
- "path",
370
- {
371
- d: "M5 11l2-5h10l2 5M3 14v4a1 1 0 001 1h2a1 1 0 001-1v-1h10v1a1 1 0 001 1h2a1 1 0 001-1v-4a2 2 0 00-2-2H5a2 2 0 00-2 2z",
372
- fill: "white",
373
- opacity: "0.08"
374
- }
375
- ),
376
- /* @__PURE__ */ jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: "white", opacity: "0.5" }),
377
- /* @__PURE__ */ jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: "white", opacity: "0.5" })
378
- ] })
216
+ duotone: (p) => carFilled(p, p.secondaryColor, p.secondaryColor, 1),
217
+ vivid: (p) => carFilled(p, p.secondaryColor, p.accentColor, p.accentOpacity)
379
218
  }
380
219
  });
381
220
  const BUS_BODY = { x: 3, y: 2, width: 18, height: 17, rx: 2.5 };
@@ -542,92 +381,74 @@ const NtdShip = /* @__PURE__ */ createIcon({
542
381
  ] })
543
382
  }
544
383
  });
545
- const NtdBike = /* @__PURE__ */ createIcon({
546
- displayName: "NtdBike",
547
- paths: {
548
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
549
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "17", r: "3", fill: primaryColor }),
550
- /* @__PURE__ */ jsx("circle", { cx: "19", cy: "17", r: "3", fill: primaryColor }),
551
- /* @__PURE__ */ jsx(
552
- "path",
553
- {
554
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
555
- stroke: primaryColor,
556
- strokeWidth: "2",
557
- strokeLinecap: "round",
558
- strokeLinejoin: "round",
559
- fill: "none"
560
- }
561
- )
562
- ] }),
563
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
564
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "17", r: "3", stroke: primaryColor, strokeWidth, fill: "none" }),
565
- /* @__PURE__ */ jsx("circle", { cx: "19", cy: "17", r: "3", stroke: primaryColor, strokeWidth, fill: "none" }),
566
- /* @__PURE__ */ jsx(
567
- "path",
568
- {
569
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
570
- stroke: primaryColor,
571
- strokeWidth,
572
- strokeLinecap: "round",
573
- strokeLinejoin: "round",
574
- fill: "none"
575
- }
576
- )
384
+ const BIKE_WHEELS = [5.4, 18.6];
385
+ const BIKE_FRAME = "M5.4 16L9 9.6H15.84M10.6 16L9 9.6M10.6 16H5.4M10.6 16L16.79 11.8M15.5 8.8L18.6 16M15.5 8.8L15.1 7.2H17.6M9 9.6L8.7 8.1";
386
+ const BIKE_SADDLE = "M7.3 7.9h2.9";
387
+ const BIKE_SPOKES = "M2.7 16h5.4M4.05 13.66l2.7 4.68M6.75 13.66l-2.7 4.68M15.9 16h5.4M17.25 13.66l2.7 4.68M19.95 13.66l-2.7 4.68";
388
+ function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineWidth) {
389
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
390
+ accent && /* @__PURE__ */ jsx(
391
+ "path",
392
+ {
393
+ d: BIKE_SPOKES,
394
+ stroke: accent,
395
+ strokeWidth: strokeWidth * 0.45,
396
+ opacity: accentOpacity
397
+ }
398
+ ),
399
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx(
400
+ "circle",
401
+ {
402
+ cx,
403
+ cy: "16",
404
+ r: "3.6",
405
+ stroke: tyres,
406
+ strokeWidth: lineWidth * 0.8,
407
+ fill: "none"
408
+ },
409
+ cx
410
+ )),
411
+ /* @__PURE__ */ jsxs("g", { stroke: frame, strokeLinecap: "round", strokeLinejoin: "round", fill: "none", children: [
412
+ /* @__PURE__ */ jsx("path", { d: BIKE_FRAME, strokeWidth: lineWidth * 0.7 }),
413
+ /* @__PURE__ */ jsx("path", { d: BIKE_SADDLE, strokeWidth: lineWidth })
577
414
  ] }),
578
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
415
+ accent && /* @__PURE__ */ jsxs("g", { opacity: accentOpacity, children: [
579
416
  /* @__PURE__ */ jsx(
580
417
  "circle",
581
418
  {
582
- cx: "5",
583
- cy: "17",
584
- r: "3",
585
- fill: secondaryColor,
586
- opacity: secondaryOpacity,
587
- stroke: primaryColor,
588
- strokeWidth
589
- }
590
- ),
591
- /* @__PURE__ */ jsx(
592
- "circle",
593
- {
594
- cx: "19",
595
- cy: "17",
596
- r: "3",
597
- fill: secondaryColor,
598
- opacity: secondaryOpacity,
599
- stroke: primaryColor,
600
- strokeWidth
601
- }
602
- ),
603
- /* @__PURE__ */ jsx(
604
- "path",
605
- {
606
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
607
- stroke: primaryColor,
608
- strokeWidth,
609
- strokeLinecap: "round",
610
- strokeLinejoin: "round",
419
+ cx: "10.6",
420
+ cy: "16",
421
+ r: "1.7",
422
+ stroke: accent,
423
+ strokeWidth: strokeWidth * 0.6,
611
424
  fill: "none"
612
425
  }
613
- )
614
- ] }),
615
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
616
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "17", r: "3", fill: primaryColor }),
617
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "17", r: "3", fill: "white", opacity: "0.08" }),
618
- /* @__PURE__ */ jsx("circle", { cx: "19", cy: "17", r: "3", fill: secondaryColor }),
619
- /* @__PURE__ */ jsx(
620
- "path",
621
- {
622
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
623
- stroke: "white",
624
- strokeWidth: "1",
625
- strokeLinecap: "round",
626
- strokeLinejoin: "round",
627
- fill: "none"
628
- }
629
- )
426
+ ),
427
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsx("circle", { cx, cy: "16", r: "0.7", fill: accent }, cx))
630
428
  ] })
429
+ ] });
430
+ }
431
+ const NtdBike = /* @__PURE__ */ createIcon({
432
+ displayName: "NtdBike",
433
+ paths: {
434
+ solid: (p) => bikeDrawing(
435
+ p,
436
+ p.primaryColor,
437
+ p.primaryColor,
438
+ p.accentColor,
439
+ p.accentOpacity,
440
+ p.strokeWidth * 2
441
+ ),
442
+ outline: (p) => bikeDrawing(p, p.primaryColor, p.primaryColor, null, 1, p.strokeWidth * 1.25),
443
+ duotone: (p) => bikeDrawing(p, p.secondaryColor, p.primaryColor, null, 1, p.strokeWidth * 2),
444
+ vivid: (p) => bikeDrawing(
445
+ p,
446
+ p.primaryColor,
447
+ p.secondaryColor,
448
+ p.accentColor,
449
+ p.accentOpacity,
450
+ p.strokeWidth * 2
451
+ )
631
452
  }
632
453
  });
633
454
  const NtdTaxi = /* @__PURE__ */ createIcon({
@@ -968,107 +789,65 @@ const NtdPassport = /* @__PURE__ */ createIcon({
968
789
  ] })
969
790
  }
970
791
  });
792
+ const TICKET = "M2.5 6H6a1 1 0 002 0H21.5A1.5 1.5 0 0123 7.5V16.5A1.5 1.5 0 0121.5 18H8a1 1 0 00-2 0H2.5A1.5 1.5 0 011 16.5V7.5A1.5 1.5 0 012.5 6Z";
793
+ const TICKET_PERFORATION = "M7 7.6V16.4";
794
+ const TICKET_TEXT = "M9.6 12.6h5.6M9.6 15h3.6";
795
+ const TICKET_TITLE = "M9.6 9.6h7.2";
796
+ const TICKET_BARS = [
797
+ [18.4, 0.6],
798
+ [19.4, 0.4],
799
+ [20.2, 0.8],
800
+ [21.4, 0.4]
801
+ ];
802
+ function ticketDetails(color, width, opacity = 1) {
803
+ return /* @__PURE__ */ jsxs("g", { opacity, children: [
804
+ /* @__PURE__ */ jsx(
805
+ "path",
806
+ {
807
+ d: TICKET_PERFORATION,
808
+ stroke: color,
809
+ strokeWidth: width,
810
+ strokeDasharray: "1.2 0.8",
811
+ fill: "none"
812
+ }
813
+ ),
814
+ /* @__PURE__ */ jsx("circle", { cx: "4", cy: "12", r: "1.5", stroke: color, strokeWidth: width, fill: "none" }),
815
+ /* @__PURE__ */ jsx("path", { d: TICKET_TITLE, stroke: color, strokeWidth: width * 1.6, strokeLinecap: "round" }),
816
+ /* @__PURE__ */ jsx("path", { d: TICKET_TEXT, stroke: color, strokeWidth: width, strokeLinecap: "round" }),
817
+ TICKET_BARS.map(([x, w]) => /* @__PURE__ */ jsx("rect", { x, y: "9", width: w, height: "6.4", fill: color }, x))
818
+ ] });
819
+ }
820
+ function ticketFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, stub, details) {
821
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
822
+ /* @__PURE__ */ jsx("path", { d: TICKET, fill: primaryColor }),
823
+ stub !== primaryColor && within(
824
+ uid,
825
+ "stub",
826
+ /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: "7", height: "24" }),
827
+ /* @__PURE__ */ jsx("path", { d: TICKET, fill: stub })
828
+ ),
829
+ details && ticketDetails(accentColor, strokeWidth * 0.8, accentOpacity)
830
+ ] });
831
+ }
971
832
  const NtdTicket = /* @__PURE__ */ createIcon({
972
833
  displayName: "NtdTicket",
973
834
  paths: {
974
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
975
- /* @__PURE__ */ jsx(
976
- "path",
977
- {
978
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
979
- fill: primaryColor
980
- }
981
- ),
982
- /* @__PURE__ */ jsx("path", { d: "M9 6v12", stroke: "white", strokeWidth: "1.5", strokeDasharray: "2 2" }),
983
- /* @__PURE__ */ jsx(
984
- "path",
985
- {
986
- d: "M13 10h5M13 14h4",
987
- stroke: "white",
988
- strokeWidth: "1.5",
989
- strokeLinecap: "round",
990
- opacity: "0.5"
991
- }
992
- )
993
- ] }),
835
+ solid: (p) => ticketFilled(p, p.primaryColor, true),
994
836
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
995
837
  /* @__PURE__ */ jsx(
996
838
  "path",
997
839
  {
998
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
840
+ d: TICKET,
999
841
  stroke: primaryColor,
1000
842
  strokeWidth,
843
+ strokeLinejoin: "round",
1001
844
  fill: "none"
1002
845
  }
1003
846
  ),
1004
- /* @__PURE__ */ jsx("path", { d: "M9 6v12", stroke: primaryColor, strokeWidth, strokeDasharray: "2 2" }),
1005
- /* @__PURE__ */ jsx(
1006
- "path",
1007
- {
1008
- d: "M13 10h5M13 14h4",
1009
- stroke: primaryColor,
1010
- strokeWidth,
1011
- strokeLinecap: "round"
1012
- }
1013
- )
847
+ ticketDetails(primaryColor, strokeWidth)
1014
848
  ] }),
1015
- duotone: swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1016
- /* @__PURE__ */ jsx(
1017
- "path",
1018
- {
1019
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
1020
- fill: secondaryColor,
1021
- opacity: secondaryOpacity
1022
- }
1023
- ),
1024
- /* @__PURE__ */ jsx(
1025
- "path",
1026
- {
1027
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
1028
- stroke: primaryColor,
1029
- strokeWidth,
1030
- fill: "none"
1031
- }
1032
- ),
1033
- /* @__PURE__ */ jsx("path", { d: "M9 6v12", stroke: primaryColor, strokeWidth, strokeDasharray: "2 2" }),
1034
- /* @__PURE__ */ jsx(
1035
- "path",
1036
- {
1037
- d: "M13 10h5M13 14h4",
1038
- stroke: primaryColor,
1039
- strokeWidth,
1040
- strokeLinecap: "round"
1041
- }
1042
- )
1043
- ] })),
1044
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1045
- /* @__PURE__ */ jsx(
1046
- "path",
1047
- {
1048
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
1049
- fill: primaryColor
1050
- }
1051
- ),
1052
- /* @__PURE__ */ jsx(
1053
- "path",
1054
- {
1055
- d: "M4 6h16a2 2 0 012 2v2a2 2 0 000 4v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2a2 2 0 000-4V8a2 2 0 012-2z",
1056
- fill: "white",
1057
- opacity: "0.1"
1058
- }
1059
- ),
1060
- /* @__PURE__ */ jsx("path", { d: "M9 6v12", stroke: "white", strokeWidth: "1.8", strokeDasharray: "2 2" }),
1061
- /* @__PURE__ */ jsx(
1062
- "path",
1063
- {
1064
- d: "M13 10h5M13 14h4",
1065
- stroke: "white",
1066
- strokeWidth: "1.5",
1067
- strokeLinecap: "round",
1068
- opacity: "0.5"
1069
- }
1070
- )
1071
- ] })
849
+ duotone: (p) => ticketFilled(p, p.secondaryColor, false),
850
+ vivid: (p) => ticketFilled(p, p.secondaryColor, true)
1072
851
  }
1073
852
  });
1074
853
  const NtdHotel = /* @__PURE__ */ createIcon({
@@ -1204,94 +983,47 @@ const NtdHotel = /* @__PURE__ */ createIcon({
1204
983
  ] })
1205
984
  }
1206
985
  });
1207
- const NtdBeach = /* @__PURE__ */ createIcon({
1208
- displayName: "NtdBeach",
1209
- paths: {
1210
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1211
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1212
- /* @__PURE__ */ jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }),
1213
- /* @__PURE__ */ jsx("path", { d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z", fill: primaryColor }),
1214
- /* @__PURE__ */ jsx(
1215
- "path",
1216
- {
1217
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1218
- stroke: primaryColor,
1219
- strokeWidth: "2",
1220
- strokeLinecap: "round",
1221
- fill: "none"
1222
- }
1223
- )
1224
- ] }),
1225
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1226
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "6", r: "4", stroke: primaryColor, strokeWidth, fill: "none" }),
1227
- /* @__PURE__ */ jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
1228
- /* @__PURE__ */ jsx(
1229
- "path",
1230
- {
1231
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1232
- stroke: primaryColor,
1233
- strokeWidth,
1234
- fill: "none"
1235
- }
1236
- ),
1237
- /* @__PURE__ */ jsx(
1238
- "path",
1239
- {
1240
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1241
- stroke: primaryColor,
1242
- strokeWidth,
1243
- strokeLinecap: "round",
1244
- fill: "none"
1245
- }
1246
- )
986
+ const BEACH_SUN = { cx: 18.6, cy: 4.4, r: 2.6 };
987
+ const BEACH_CANOPY = "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z";
988
+ const BEACH_RIBS = "M12 8L9 14M12 8L15 14";
989
+ const BEACH_POLE = "M12 8v14";
990
+ const BEACH_GROUND = "M2 22c3-2 6-3 10-3s7 1 10 3";
991
+ function beachFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, sun, ribs) {
992
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
993
+ /* @__PURE__ */ jsx("circle", { ...BEACH_SUN, fill: sun }),
994
+ /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth * 1.3, strokeLinecap: "round", fill: "none", children: [
995
+ /* @__PURE__ */ jsx("path", { d: BEACH_POLE }),
996
+ /* @__PURE__ */ jsx("path", { d: BEACH_GROUND })
1247
997
  ] }),
1248
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1249
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1250
- /* @__PURE__ */ jsx(
1251
- "path",
1252
- {
1253
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1254
- fill: secondaryColor,
1255
- opacity: secondaryOpacity
1256
- }
1257
- ),
1258
- /* @__PURE__ */ jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
1259
- /* @__PURE__ */ jsx(
1260
- "path",
1261
- {
1262
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1263
- stroke: primaryColor,
1264
- strokeWidth,
1265
- fill: "none"
1266
- }
1267
- ),
998
+ /* @__PURE__ */ jsx("path", { d: BEACH_CANOPY, fill: primaryColor }),
999
+ ribs && within(
1000
+ uid,
1001
+ "canopy",
1002
+ /* @__PURE__ */ jsx("path", { d: BEACH_CANOPY }),
1268
1003
  /* @__PURE__ */ jsx(
1269
1004
  "path",
1270
1005
  {
1271
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1272
- stroke: primaryColor,
1273
- strokeWidth,
1274
- strokeLinecap: "round",
1275
- fill: "none"
1006
+ d: BEACH_RIBS,
1007
+ stroke: accentColor,
1008
+ strokeWidth: strokeWidth * 0.6,
1009
+ opacity: accentOpacity
1276
1010
  }
1277
1011
  )
1012
+ )
1013
+ ] });
1014
+ }
1015
+ const NtdBeach = /* @__PURE__ */ createIcon({
1016
+ displayName: "NtdBeach",
1017
+ paths: {
1018
+ solid: (p) => beachFilled(p, p.primaryColor, true),
1019
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinecap: "round", fill: "none", children: [
1020
+ /* @__PURE__ */ jsx("circle", { ...BEACH_SUN }),
1021
+ /* @__PURE__ */ jsx("path", { d: "M12 14v8" }),
1022
+ /* @__PURE__ */ jsx("path", { d: BEACH_CANOPY, strokeLinejoin: "round" }),
1023
+ /* @__PURE__ */ jsx("path", { d: BEACH_GROUND })
1278
1024
  ] }),
1279
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1280
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1281
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "6", r: "4", fill: "white", opacity: "0.08" }),
1282
- /* @__PURE__ */ jsx("path", { d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z", fill: secondaryColor }),
1283
- /* @__PURE__ */ jsx("path", { d: "M12 8v14", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }),
1284
- /* @__PURE__ */ jsx(
1285
- "path",
1286
- {
1287
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1288
- stroke: "white",
1289
- strokeWidth: "1",
1290
- strokeLinecap: "round",
1291
- fill: "none"
1292
- }
1293
- )
1294
- ] })
1025
+ duotone: (p) => beachFilled(p, p.secondaryColor, false),
1026
+ vivid: (p) => beachFilled(p, p.secondaryColor, true)
1295
1027
  }
1296
1028
  });
1297
1029
  const NtdCamping = /* @__PURE__ */ createIcon({