@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
@@ -139,245 +139,84 @@ const NtdPlaneTakeoff = /* @__PURE__ */ createIcon.createIcon({
139
139
  ] })
140
140
  }
141
141
  });
142
+ const TRAIN_BODY = { x: 4, y: 3, width: 16, height: 15, rx: 3 };
143
+ const TRAIN_WINDOWS = [7, 13];
144
+ const TRAIN_LIGHTS = [8, 16];
145
+ const TRAIN_RAILS = "M8 20l-2 2M16 20l2 2M12 20v2";
146
+ function trainFilled({ primaryColor, strokeWidth }, windows, lights, opacity) {
147
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
148
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...TRAIN_BODY, fill: primaryColor }),
149
+ TRAIN_WINDOWS.map((x) => /* @__PURE__ */ jsxRuntime.jsx(
150
+ "rect",
151
+ {
152
+ x,
153
+ y: "6",
154
+ width: "4",
155
+ height: "5",
156
+ rx: "1",
157
+ fill: windows,
158
+ opacity: windows === lights ? opacity : 1
159
+ },
160
+ x
161
+ )),
162
+ TRAIN_LIGHTS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "15", r: "1.5", fill: lights, opacity }, cx)),
163
+ /* @__PURE__ */ jsxRuntime.jsx(
164
+ "path",
165
+ {
166
+ d: TRAIN_RAILS,
167
+ stroke: primaryColor,
168
+ strokeWidth: strokeWidth * 2,
169
+ strokeLinecap: "round"
170
+ }
171
+ )
172
+ ] });
173
+ }
142
174
  const NtdTrain = /* @__PURE__ */ createIcon.createIcon({
143
175
  displayName: "NtdTrain",
144
176
  paths: {
145
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
146
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: primaryColor }),
147
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
148
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
149
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: "white" }),
150
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: "white" }),
151
- /* @__PURE__ */ jsxRuntime.jsx(
152
- "path",
153
- {
154
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
155
- stroke: primaryColor,
156
- strokeWidth: "2",
157
- strokeLinecap: "round"
158
- }
159
- )
160
- ] }),
161
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
162
- /* @__PURE__ */ jsxRuntime.jsx(
163
- "rect",
164
- {
165
- x: "4",
166
- y: "3",
167
- width: "16",
168
- height: "15",
169
- rx: "3",
170
- stroke: primaryColor,
171
- strokeWidth,
172
- fill: "none"
173
- }
174
- ),
175
- /* @__PURE__ */ jsxRuntime.jsx(
176
- "rect",
177
- {
178
- x: "7",
179
- y: "6",
180
- width: "4",
181
- height: "5",
182
- rx: "1",
183
- stroke: primaryColor,
184
- strokeWidth,
185
- fill: "none"
186
- }
187
- ),
188
- /* @__PURE__ */ jsxRuntime.jsx(
189
- "rect",
190
- {
191
- x: "13",
192
- y: "6",
193
- width: "4",
194
- height: "5",
195
- rx: "1",
196
- stroke: primaryColor,
197
- strokeWidth,
198
- fill: "none"
199
- }
200
- ),
201
- /* @__PURE__ */ jsxRuntime.jsx(
202
- "circle",
203
- {
204
- cx: "8",
205
- cy: "15",
206
- r: "1.5",
207
- stroke: primaryColor,
208
- strokeWidth,
209
- fill: "none"
210
- }
211
- ),
212
- /* @__PURE__ */ jsxRuntime.jsx(
213
- "circle",
214
- {
215
- cx: "16",
216
- cy: "15",
217
- r: "1.5",
218
- stroke: primaryColor,
219
- strokeWidth,
220
- fill: "none"
221
- }
222
- ),
223
- /* @__PURE__ */ jsxRuntime.jsx(
224
- "path",
225
- {
226
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
227
- stroke: primaryColor,
228
- strokeWidth,
229
- strokeLinecap: "round"
230
- }
231
- )
177
+ solid: (p) => trainFilled(p, p.accentColor, p.accentColor, p.accentOpacity),
178
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
179
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...TRAIN_BODY }),
180
+ TRAIN_WINDOWS.map((x) => /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: "6", width: "4", height: "5", rx: "1" }, x)),
181
+ TRAIN_LIGHTS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "15", r: "1.5" }, cx)),
182
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TRAIN_RAILS, strokeLinecap: "round" })
232
183
  ] }),
233
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
234
- /* @__PURE__ */ jsxRuntime.jsx(
235
- "rect",
236
- {
237
- x: "4",
238
- y: "3",
239
- width: "16",
240
- height: "15",
241
- rx: "3",
242
- fill: secondaryColor,
243
- opacity: secondaryOpacity
244
- }
245
- ),
246
- /* @__PURE__ */ jsxRuntime.jsx(
247
- "rect",
248
- {
249
- x: "4",
250
- y: "3",
251
- width: "16",
252
- height: "15",
253
- rx: "3",
254
- stroke: primaryColor,
255
- strokeWidth,
256
- fill: "none"
257
- }
258
- ),
259
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: primaryColor }),
260
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: primaryColor }),
261
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: primaryColor }),
262
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: primaryColor }),
263
- /* @__PURE__ */ jsxRuntime.jsx(
264
- "path",
265
- {
266
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
267
- stroke: primaryColor,
268
- strokeWidth,
269
- strokeLinecap: "round"
270
- }
271
- )
272
- ] })),
273
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
274
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: primaryColor }),
275
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "3", width: "16", height: "15", rx: "3", fill: "white", opacity: "0.08" }),
276
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "7", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
277
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "13", y: "6", width: "4", height: "5", rx: "1", fill: "white", opacity: "0.5" }),
278
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "15", r: "1.5", fill: "white" }),
279
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "16", cy: "15", r: "1.5", fill: "white" }),
280
- /* @__PURE__ */ jsxRuntime.jsx(
281
- "path",
282
- {
283
- d: "M8 20l-2 2M16 20l2 2M12 18v4",
284
- stroke: "white",
285
- strokeWidth: "1",
286
- strokeLinecap: "round"
287
- }
288
- )
289
- ] })
184
+ duotone: (p) => trainFilled(p, p.secondaryColor, p.secondaryColor, 1),
185
+ vivid: (p) => trainFilled(p, p.secondaryColor, p.accentColor, p.accentOpacity)
290
186
  }
291
187
  });
188
+ 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";
189
+ const CAR_GLASS = "M7.73 6.3H16.27L17.76 10.4H6.24Z";
190
+ 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";
191
+ const CAR_LIGHTS = [5.8, 18.2];
192
+ const CAR_GRILLE = { x: 9.2, y: 13.6, width: 5.6, height: 1.4, rx: 0.7 };
193
+ 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";
194
+ function carFilled({ primaryColor }, glass, lights, lightsOpacity) {
195
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
196
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_MIRRORS, fill: primaryColor }),
197
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_BODY, fill: primaryColor }),
198
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_WHEELS, fill: primaryColor }),
199
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_GLASS, fill: glass, opacity: glass === lights ? lightsOpacity : 1 }),
200
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { fill: lights, opacity: lightsOpacity, children: [
201
+ CAR_LIGHTS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "14.3", r: "1.3" }, cx)),
202
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...CAR_GRILLE })
203
+ ] })
204
+ ] });
205
+ }
292
206
  const NtdCar = /* @__PURE__ */ createIcon.createIcon({
293
207
  displayName: "NtdCar",
294
208
  paths: {
295
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
296
- /* @__PURE__ */ jsxRuntime.jsx(
297
- "path",
298
- {
299
- 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",
300
- fill: primaryColor
301
- }
302
- ),
303
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: "white", opacity: "0.5" }),
304
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: "white", opacity: "0.5" })
209
+ solid: (p) => carFilled(p, p.accentColor, p.accentColor, p.accentOpacity),
210
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinejoin: "round", fill: "none", children: [
211
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_MIRRORS }),
212
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_BODY }),
213
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_GLASS }),
214
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CAR_WHEELS }),
215
+ CAR_LIGHTS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "14.3", r: "1.1" }, cx)),
216
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.9 14.3h4.2", strokeLinecap: "round" })
305
217
  ] }),
306
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
307
- /* @__PURE__ */ jsxRuntime.jsx(
308
- "path",
309
- {
310
- 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",
311
- stroke: primaryColor,
312
- strokeWidth,
313
- fill: "none",
314
- strokeLinecap: "round",
315
- strokeLinejoin: "round"
316
- }
317
- ),
318
- /* @__PURE__ */ jsxRuntime.jsx(
319
- "circle",
320
- {
321
- cx: "7",
322
- cy: "15",
323
- r: "1.5",
324
- stroke: primaryColor,
325
- strokeWidth,
326
- fill: "none"
327
- }
328
- ),
329
- /* @__PURE__ */ jsxRuntime.jsx(
330
- "circle",
331
- {
332
- cx: "17",
333
- cy: "15",
334
- r: "1.5",
335
- stroke: primaryColor,
336
- strokeWidth,
337
- fill: "none"
338
- }
339
- )
340
- ] }),
341
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
342
- /* @__PURE__ */ jsxRuntime.jsx(
343
- "path",
344
- {
345
- 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",
346
- fill: secondaryColor,
347
- opacity: secondaryOpacity
348
- }
349
- ),
350
- /* @__PURE__ */ jsxRuntime.jsx(
351
- "path",
352
- {
353
- 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",
354
- stroke: primaryColor,
355
- strokeWidth,
356
- fill: "none"
357
- }
358
- ),
359
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: primaryColor }),
360
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: primaryColor })
361
- ] })),
362
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
363
- /* @__PURE__ */ jsxRuntime.jsx(
364
- "path",
365
- {
366
- 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",
367
- fill: primaryColor
368
- }
369
- ),
370
- /* @__PURE__ */ jsxRuntime.jsx(
371
- "path",
372
- {
373
- 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",
374
- fill: "white",
375
- opacity: "0.08"
376
- }
377
- ),
378
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "7", cy: "15", r: "1.5", fill: "white", opacity: "0.5" }),
379
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "17", cy: "15", r: "1.5", fill: "white", opacity: "0.5" })
380
- ] })
218
+ duotone: (p) => carFilled(p, p.secondaryColor, p.secondaryColor, 1),
219
+ vivid: (p) => carFilled(p, p.secondaryColor, p.accentColor, p.accentOpacity)
381
220
  }
382
221
  });
383
222
  const BUS_BODY = { x: 3, y: 2, width: 18, height: 17, rx: 2.5 };
@@ -544,92 +383,74 @@ const NtdShip = /* @__PURE__ */ createIcon.createIcon({
544
383
  ] })
545
384
  }
546
385
  });
547
- const NtdBike = /* @__PURE__ */ createIcon.createIcon({
548
- displayName: "NtdBike",
549
- paths: {
550
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
551
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "17", r: "3", fill: primaryColor }),
552
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "19", cy: "17", r: "3", fill: primaryColor }),
553
- /* @__PURE__ */ jsxRuntime.jsx(
554
- "path",
555
- {
556
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
557
- stroke: primaryColor,
558
- strokeWidth: "2",
559
- strokeLinecap: "round",
560
- strokeLinejoin: "round",
561
- fill: "none"
562
- }
563
- )
564
- ] }),
565
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
566
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "17", r: "3", stroke: primaryColor, strokeWidth, fill: "none" }),
567
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "19", cy: "17", r: "3", stroke: primaryColor, strokeWidth, fill: "none" }),
568
- /* @__PURE__ */ jsxRuntime.jsx(
569
- "path",
570
- {
571
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
572
- stroke: primaryColor,
573
- strokeWidth,
574
- strokeLinecap: "round",
575
- strokeLinejoin: "round",
576
- fill: "none"
577
- }
578
- )
386
+ const BIKE_WHEELS = [5.4, 18.6];
387
+ 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";
388
+ const BIKE_SADDLE = "M7.3 7.9h2.9";
389
+ 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";
390
+ function bikeDrawing({ strokeWidth }, tyres, frame, accent, accentOpacity, lineWidth) {
391
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
392
+ accent && /* @__PURE__ */ jsxRuntime.jsx(
393
+ "path",
394
+ {
395
+ d: BIKE_SPOKES,
396
+ stroke: accent,
397
+ strokeWidth: strokeWidth * 0.45,
398
+ opacity: accentOpacity
399
+ }
400
+ ),
401
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx(
402
+ "circle",
403
+ {
404
+ cx,
405
+ cy: "16",
406
+ r: "3.6",
407
+ stroke: tyres,
408
+ strokeWidth: lineWidth * 0.8,
409
+ fill: "none"
410
+ },
411
+ cx
412
+ )),
413
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: frame, strokeLinecap: "round", strokeLinejoin: "round", fill: "none", children: [
414
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BIKE_FRAME, strokeWidth: lineWidth * 0.7 }),
415
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BIKE_SADDLE, strokeWidth: lineWidth })
579
416
  ] }),
580
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
417
+ accent && /* @__PURE__ */ jsxRuntime.jsxs("g", { opacity: accentOpacity, children: [
581
418
  /* @__PURE__ */ jsxRuntime.jsx(
582
419
  "circle",
583
420
  {
584
- cx: "5",
585
- cy: "17",
586
- r: "3",
587
- fill: secondaryColor,
588
- opacity: secondaryOpacity,
589
- stroke: primaryColor,
590
- strokeWidth
591
- }
592
- ),
593
- /* @__PURE__ */ jsxRuntime.jsx(
594
- "circle",
595
- {
596
- cx: "19",
597
- cy: "17",
598
- r: "3",
599
- fill: secondaryColor,
600
- opacity: secondaryOpacity,
601
- stroke: primaryColor,
602
- strokeWidth
603
- }
604
- ),
605
- /* @__PURE__ */ jsxRuntime.jsx(
606
- "path",
607
- {
608
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
609
- stroke: primaryColor,
610
- strokeWidth,
611
- strokeLinecap: "round",
612
- strokeLinejoin: "round",
421
+ cx: "10.6",
422
+ cy: "16",
423
+ r: "1.7",
424
+ stroke: accent,
425
+ strokeWidth: strokeWidth * 0.6,
613
426
  fill: "none"
614
427
  }
615
- )
616
- ] }),
617
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
618
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "17", r: "3", fill: primaryColor }),
619
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "17", r: "3", fill: "white", opacity: "0.08" }),
620
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "19", cy: "17", r: "3", fill: secondaryColor }),
621
- /* @__PURE__ */ jsxRuntime.jsx(
622
- "path",
623
- {
624
- d: "M12 17l3-7h3M12 17l-3-4h-4M12 17V9l2-2h3",
625
- stroke: "white",
626
- strokeWidth: "1",
627
- strokeLinecap: "round",
628
- strokeLinejoin: "round",
629
- fill: "none"
630
- }
631
- )
428
+ ),
429
+ BIKE_WHEELS.map((cx) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: "16", r: "0.7", fill: accent }, cx))
632
430
  ] })
431
+ ] });
432
+ }
433
+ const NtdBike = /* @__PURE__ */ createIcon.createIcon({
434
+ displayName: "NtdBike",
435
+ paths: {
436
+ solid: (p) => bikeDrawing(
437
+ p,
438
+ p.primaryColor,
439
+ p.primaryColor,
440
+ p.accentColor,
441
+ p.accentOpacity,
442
+ p.strokeWidth * 2
443
+ ),
444
+ outline: (p) => bikeDrawing(p, p.primaryColor, p.primaryColor, null, 1, p.strokeWidth * 1.25),
445
+ duotone: (p) => bikeDrawing(p, p.secondaryColor, p.primaryColor, null, 1, p.strokeWidth * 2),
446
+ vivid: (p) => bikeDrawing(
447
+ p,
448
+ p.primaryColor,
449
+ p.secondaryColor,
450
+ p.accentColor,
451
+ p.accentOpacity,
452
+ p.strokeWidth * 2
453
+ )
633
454
  }
634
455
  });
635
456
  const NtdTaxi = /* @__PURE__ */ createIcon.createIcon({
@@ -970,107 +791,65 @@ const NtdPassport = /* @__PURE__ */ createIcon.createIcon({
970
791
  ] })
971
792
  }
972
793
  });
794
+ 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";
795
+ const TICKET_PERFORATION = "M7 7.6V16.4";
796
+ const TICKET_TEXT = "M9.6 12.6h5.6M9.6 15h3.6";
797
+ const TICKET_TITLE = "M9.6 9.6h7.2";
798
+ const TICKET_BARS = [
799
+ [18.4, 0.6],
800
+ [19.4, 0.4],
801
+ [20.2, 0.8],
802
+ [21.4, 0.4]
803
+ ];
804
+ function ticketDetails(color, width, opacity = 1) {
805
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { opacity, children: [
806
+ /* @__PURE__ */ jsxRuntime.jsx(
807
+ "path",
808
+ {
809
+ d: TICKET_PERFORATION,
810
+ stroke: color,
811
+ strokeWidth: width,
812
+ strokeDasharray: "1.2 0.8",
813
+ fill: "none"
814
+ }
815
+ ),
816
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "4", cy: "12", r: "1.5", stroke: color, strokeWidth: width, fill: "none" }),
817
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TICKET_TITLE, stroke: color, strokeWidth: width * 1.6, strokeLinecap: "round" }),
818
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TICKET_TEXT, stroke: color, strokeWidth: width, strokeLinecap: "round" }),
819
+ TICKET_BARS.map(([x, w]) => /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: "9", width: w, height: "6.4", fill: color }, x))
820
+ ] });
821
+ }
822
+ function ticketFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, stub, details) {
823
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
824
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TICKET, fill: primaryColor }),
825
+ stub !== primaryColor && iconParts.within(
826
+ uid,
827
+ "stub",
828
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "0", y: "0", width: "7", height: "24" }),
829
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: TICKET, fill: stub })
830
+ ),
831
+ details && ticketDetails(accentColor, strokeWidth * 0.8, accentOpacity)
832
+ ] });
833
+ }
973
834
  const NtdTicket = /* @__PURE__ */ createIcon.createIcon({
974
835
  displayName: "NtdTicket",
975
836
  paths: {
976
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
977
- /* @__PURE__ */ jsxRuntime.jsx(
978
- "path",
979
- {
980
- 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",
981
- fill: primaryColor
982
- }
983
- ),
984
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 6v12", stroke: "white", strokeWidth: "1.5", strokeDasharray: "2 2" }),
985
- /* @__PURE__ */ jsxRuntime.jsx(
986
- "path",
987
- {
988
- d: "M13 10h5M13 14h4",
989
- stroke: "white",
990
- strokeWidth: "1.5",
991
- strokeLinecap: "round",
992
- opacity: "0.5"
993
- }
994
- )
995
- ] }),
837
+ solid: (p) => ticketFilled(p, p.primaryColor, true),
996
838
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
997
839
  /* @__PURE__ */ jsxRuntime.jsx(
998
840
  "path",
999
841
  {
1000
- 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",
842
+ d: TICKET,
1001
843
  stroke: primaryColor,
1002
844
  strokeWidth,
845
+ strokeLinejoin: "round",
1003
846
  fill: "none"
1004
847
  }
1005
848
  ),
1006
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 6v12", stroke: primaryColor, strokeWidth, strokeDasharray: "2 2" }),
1007
- /* @__PURE__ */ jsxRuntime.jsx(
1008
- "path",
1009
- {
1010
- d: "M13 10h5M13 14h4",
1011
- stroke: primaryColor,
1012
- strokeWidth,
1013
- strokeLinecap: "round"
1014
- }
1015
- )
849
+ ticketDetails(primaryColor, strokeWidth)
1016
850
  ] }),
1017
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1018
- /* @__PURE__ */ jsxRuntime.jsx(
1019
- "path",
1020
- {
1021
- 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",
1022
- fill: secondaryColor,
1023
- opacity: secondaryOpacity
1024
- }
1025
- ),
1026
- /* @__PURE__ */ jsxRuntime.jsx(
1027
- "path",
1028
- {
1029
- 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",
1030
- stroke: primaryColor,
1031
- strokeWidth,
1032
- fill: "none"
1033
- }
1034
- ),
1035
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 6v12", stroke: primaryColor, strokeWidth, strokeDasharray: "2 2" }),
1036
- /* @__PURE__ */ jsxRuntime.jsx(
1037
- "path",
1038
- {
1039
- d: "M13 10h5M13 14h4",
1040
- stroke: primaryColor,
1041
- strokeWidth,
1042
- strokeLinecap: "round"
1043
- }
1044
- )
1045
- ] })),
1046
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1047
- /* @__PURE__ */ jsxRuntime.jsx(
1048
- "path",
1049
- {
1050
- 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",
1051
- fill: primaryColor
1052
- }
1053
- ),
1054
- /* @__PURE__ */ jsxRuntime.jsx(
1055
- "path",
1056
- {
1057
- 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",
1058
- fill: "white",
1059
- opacity: "0.1"
1060
- }
1061
- ),
1062
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 6v12", stroke: "white", strokeWidth: "1.8", strokeDasharray: "2 2" }),
1063
- /* @__PURE__ */ jsxRuntime.jsx(
1064
- "path",
1065
- {
1066
- d: "M13 10h5M13 14h4",
1067
- stroke: "white",
1068
- strokeWidth: "1.5",
1069
- strokeLinecap: "round",
1070
- opacity: "0.5"
1071
- }
1072
- )
1073
- ] })
851
+ duotone: (p) => ticketFilled(p, p.secondaryColor, false),
852
+ vivid: (p) => ticketFilled(p, p.secondaryColor, true)
1074
853
  }
1075
854
  });
1076
855
  const NtdHotel = /* @__PURE__ */ createIcon.createIcon({
@@ -1206,94 +985,47 @@ const NtdHotel = /* @__PURE__ */ createIcon.createIcon({
1206
985
  ] })
1207
986
  }
1208
987
  });
1209
- const NtdBeach = /* @__PURE__ */ createIcon.createIcon({
1210
- displayName: "NtdBeach",
1211
- paths: {
1212
- solid: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1213
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1214
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth: "2", strokeLinecap: "round" }),
1215
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z", fill: primaryColor }),
1216
- /* @__PURE__ */ jsxRuntime.jsx(
1217
- "path",
1218
- {
1219
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1220
- stroke: primaryColor,
1221
- strokeWidth: "2",
1222
- strokeLinecap: "round",
1223
- fill: "none"
1224
- }
1225
- )
1226
- ] }),
1227
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1228
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "6", r: "4", stroke: primaryColor, strokeWidth, fill: "none" }),
1229
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
1230
- /* @__PURE__ */ jsxRuntime.jsx(
1231
- "path",
1232
- {
1233
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1234
- stroke: primaryColor,
1235
- strokeWidth,
1236
- fill: "none"
1237
- }
1238
- ),
1239
- /* @__PURE__ */ jsxRuntime.jsx(
1240
- "path",
1241
- {
1242
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1243
- stroke: primaryColor,
1244
- strokeWidth,
1245
- strokeLinecap: "round",
1246
- fill: "none"
1247
- }
1248
- )
988
+ const BEACH_SUN = { cx: 18.6, cy: 4.4, r: 2.6 };
989
+ const BEACH_CANOPY = "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z";
990
+ const BEACH_RIBS = "M12 8L9 14M12 8L15 14";
991
+ const BEACH_POLE = "M12 8v14";
992
+ const BEACH_GROUND = "M2 22c3-2 6-3 10-3s7 1 10 3";
993
+ function beachFilled({ primaryColor, accentColor, accentOpacity, strokeWidth, uid }, sun, ribs) {
994
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
995
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { ...BEACH_SUN, fill: sun }),
996
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth: strokeWidth * 1.3, strokeLinecap: "round", fill: "none", children: [
997
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_POLE }),
998
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_GROUND })
1249
999
  ] }),
1250
- duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1251
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1252
- /* @__PURE__ */ jsxRuntime.jsx(
1253
- "path",
1254
- {
1255
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1256
- fill: secondaryColor,
1257
- opacity: secondaryOpacity
1258
- }
1259
- ),
1260
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8v14", stroke: primaryColor, strokeWidth, strokeLinecap: "round" }),
1261
- /* @__PURE__ */ jsxRuntime.jsx(
1262
- "path",
1263
- {
1264
- d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z",
1265
- stroke: primaryColor,
1266
- strokeWidth,
1267
- fill: "none"
1268
- }
1269
- ),
1000
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_CANOPY, fill: primaryColor }),
1001
+ ribs && iconParts.within(
1002
+ uid,
1003
+ "canopy",
1004
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_CANOPY }),
1270
1005
  /* @__PURE__ */ jsxRuntime.jsx(
1271
1006
  "path",
1272
1007
  {
1273
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1274
- stroke: primaryColor,
1275
- strokeWidth,
1276
- strokeLinecap: "round",
1277
- fill: "none"
1008
+ d: BEACH_RIBS,
1009
+ stroke: accentColor,
1010
+ strokeWidth: strokeWidth * 0.6,
1011
+ opacity: accentOpacity
1278
1012
  }
1279
1013
  )
1014
+ )
1015
+ ] });
1016
+ }
1017
+ const NtdBeach = /* @__PURE__ */ createIcon.createIcon({
1018
+ displayName: "NtdBeach",
1019
+ paths: {
1020
+ solid: (p) => beachFilled(p, p.primaryColor, true),
1021
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinecap: "round", fill: "none", children: [
1022
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { ...BEACH_SUN }),
1023
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 14v8" }),
1024
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_CANOPY, strokeLinejoin: "round" }),
1025
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: BEACH_GROUND })
1280
1026
  ] }),
1281
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1282
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "6", r: "4", fill: primaryColor }),
1283
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "18", cy: "6", r: "4", fill: "white", opacity: "0.08" }),
1284
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8c4 0 8 3 8 6H4c0-3 4-6 8-6z", fill: secondaryColor }),
1285
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8v14", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }),
1286
- /* @__PURE__ */ jsxRuntime.jsx(
1287
- "path",
1288
- {
1289
- d: "M2 22c3-2 6-3 10-3s7 1 10 3",
1290
- stroke: "white",
1291
- strokeWidth: "1",
1292
- strokeLinecap: "round",
1293
- fill: "none"
1294
- }
1295
- )
1296
- ] })
1027
+ duotone: (p) => beachFilled(p, p.secondaryColor, false),
1028
+ vivid: (p) => beachFilled(p, p.secondaryColor, true)
1297
1029
  }
1298
1030
  });
1299
1031
  const NtdCamping = /* @__PURE__ */ createIcon.createIcon({