@nice2dev/icons 1.4.2 → 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 +53 -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
@@ -110,124 +110,59 @@ const NtdUser = /* @__PURE__ */ createIcon.createIcon({
110
110
  }
111
111
  });
112
112
  const ADMIN_BODY = "M20.8 21.9v-2.2a4.4 4.4 0 00-4.4-4.4H7.6a4.4 4.4 0 00-4.4 4.4v2.2";
113
- const ADMIN_TIE = "M9.4 15.3h5.2l-1.3 1.8 2.1 4.8H8.6l2.1-4.8z";
114
- const NtdAdmin = /* @__PURE__ */ createIcon.createIcon({
115
- displayName: "NtdAdmin",
113
+ const ADMIN_SHIRT = "M8.6 15.3h6.8L12 21.9z";
114
+ const ADMIN_TIE = "M10.8 15.3h2.4l-.5 1.3h-1.4zM11.3 16.85h1.4l.4 2.35L12 20.4l-1.1-1.2z";
115
+ function userTieFilled(head, body, shirt, shirtOpacity, tie) {
116
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
117
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7.6", r: "4.4", fill: head }),
118
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY, fill: body }),
119
+ shirt && /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_SHIRT, fill: shirt, opacity: shirtOpacity }),
120
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_TIE, fill: tie })
121
+ ] });
122
+ }
123
+ const NtdUserTie = /* @__PURE__ */ createIcon.createIcon({
124
+ displayName: "NtdUserTie",
116
125
  paths: {
117
- solid: ({ primaryColor, accentColor, accentOpacity }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
118
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7.6", r: "4.4", fill: primaryColor }),
119
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY, fill: primaryColor }),
120
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_TIE, fill: accentColor, opacity: accentOpacity })
121
- ] }),
126
+ solid: ({ primaryColor, accentColor, accentOpacity }) => userTieFilled(primaryColor, primaryColor, accentColor, accentOpacity, primaryColor),
122
127
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
123
- /* @__PURE__ */ jsxRuntime.jsx(
124
- "circle",
125
- {
126
- cx: "12",
127
- cy: "7.6",
128
- r: "4.4",
129
- stroke: primaryColor,
130
- strokeWidth,
131
- fill: "none"
132
- }
133
- ),
134
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY, stroke: primaryColor, strokeWidth, fill: "none" }),
135
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_TIE, fill: primaryColor })
136
- ] }),
137
- // as NtdUser: fills only, the head (and the tie) primary, the shoulders secondary
138
- duotone: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
139
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7.6", r: "4.4", fill: primaryColor }),
140
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY, fill: secondaryColor }),
128
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
129
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7.6", r: "4.4" }),
130
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY }),
131
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8.6 15.3L12 21.9l3.4-6.6", strokeLinejoin: "miter" })
132
+ ] }),
141
133
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_TIE, fill: primaryColor })
142
134
  ] }),
143
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
144
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7.6", r: "4.4", fill: primaryColor }),
145
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_BODY, fill: secondaryColor }),
146
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: ADMIN_TIE, fill: primaryColor })
147
- ] })
135
+ duotone: ({ primaryColor, secondaryColor }) => userTieFilled(primaryColor, secondaryColor, null, 1, primaryColor),
136
+ vivid: ({ primaryColor, secondaryColor, accentColor, accentOpacity }) => userTieFilled(primaryColor, secondaryColor, accentColor, accentOpacity, primaryColor)
148
137
  }
149
138
  });
139
+ const USERS_FRONT_HEAD = { cx: 12, cy: 8, r: 3.75 };
140
+ const USERS_FRONT_BODY = "M18 21.5v-2.25a3.75 3.75 0 00-3.75-3.75h-4.5A3.75 3.75 0 006 19.25v2.25";
141
+ const USERS_BACK_HEADS = [
142
+ { cx: 4.75, cy: 7, r: 2.5 },
143
+ { cx: 19.25, cy: 7, r: 2.5 }
144
+ ];
145
+ const USERS_BACK_BODIES = "M5.25 13.25H3.5A2.75 2.75 0 00.75 16v3.25M18.75 13.25h1.75a2.75 2.75 0 012.75 2.75v3.25";
146
+ function usersFilled(front, back) {
147
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
148
+ USERS_BACK_HEADS.map((h) => /* @__PURE__ */ jsxRuntime.jsx("circle", { ...h, fill: back }, h.cx)),
149
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${USERS_BACK_BODIES.replace("v3.25M", "v3.25h4.5zM")}h-4.5z`, fill: back }),
150
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { ...USERS_FRONT_HEAD, fill: front }),
151
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: `${USERS_FRONT_BODY}z`, fill: front })
152
+ ] });
153
+ }
150
154
  const NtdUsers = /* @__PURE__ */ createIcon.createIcon({
151
155
  displayName: "NtdUsers",
152
156
  paths: {
153
- solid: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
154
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4", fill: primaryColor }),
155
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2", fill: primaryColor }),
156
- /* @__PURE__ */ jsxRuntime.jsx(
157
- "path",
158
- {
159
- d: "M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",
160
- stroke: primaryColor,
161
- strokeWidth,
162
- fill: "none"
163
- }
164
- )
157
+ solid: ({ primaryColor }) => usersFilled(primaryColor, primaryColor),
158
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, fill: "none", children: [
159
+ USERS_BACK_HEADS.map((h) => /* @__PURE__ */ jsxRuntime.jsx("circle", { ...h }, h.cx)),
160
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: USERS_BACK_BODIES }),
161
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { ...USERS_FRONT_HEAD }),
162
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: USERS_FRONT_BODY })
165
163
  ] }),
166
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
167
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4", stroke: primaryColor, strokeWidth, fill: "none" }),
168
- /* @__PURE__ */ jsxRuntime.jsx(
169
- "path",
170
- {
171
- d: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2",
172
- stroke: primaryColor,
173
- strokeWidth,
174
- fill: "none"
175
- }
176
- ),
177
- /* @__PURE__ */ jsxRuntime.jsx(
178
- "path",
179
- {
180
- d: "M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",
181
- stroke: primaryColor,
182
- strokeWidth,
183
- fill: "none"
184
- }
185
- )
186
- ] }),
187
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
188
- /* @__PURE__ */ jsxRuntime.jsx(
189
- "path",
190
- {
191
- d: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2",
192
- fill: secondaryColor,
193
- opacity: secondaryOpacity
194
- }
195
- ),
196
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4", fill: primaryColor }),
197
- /* @__PURE__ */ jsxRuntime.jsx(
198
- "path",
199
- {
200
- d: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2",
201
- stroke: primaryColor,
202
- strokeWidth,
203
- fill: "none"
204
- }
205
- ),
206
- /* @__PURE__ */ jsxRuntime.jsx(
207
- "path",
208
- {
209
- d: "M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",
210
- stroke: secondaryColor,
211
- strokeWidth,
212
- fill: "none",
213
- opacity: secondaryOpacity + 0.2
214
- }
215
- )
216
- ] })),
217
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
218
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4", fill: primaryColor }),
219
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4", fill: "white", opacity: "0.08" }),
220
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2", fill: secondaryColor }),
221
- /* @__PURE__ */ jsxRuntime.jsx(
222
- "path",
223
- {
224
- d: "M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",
225
- stroke: "white",
226
- strokeWidth: "1",
227
- fill: "none"
228
- }
229
- )
230
- ] })
164
+ duotone: ({ primaryColor, secondaryColor }) => usersFilled(primaryColor, secondaryColor),
165
+ vivid: ({ primaryColor, secondaryColor }) => usersFilled(primaryColor, secondaryColor)
231
166
  }
232
167
  });
233
168
  const HEART = "M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z";
@@ -791,56 +726,78 @@ const NtdHourglass = /* @__PURE__ */ createIcon.createIcon({
791
726
  const CALENDAR_PAGE = { x: 3, y: 4, width: 18, height: 18, rx: 2 };
792
727
  const CALENDAR_HEAD_BAND = "M3 4h18v5.5H3z";
793
728
  const CALENDAR_RINGS = "M16 2v4M8 2v4";
794
- function calendarFilled({
795
- primaryColor,
796
- secondaryColor,
797
- accentColor,
798
- accentOpacity,
799
- strokeWidth,
800
- uid
801
- }) {
802
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
729
+ const CALENDAR_DETAILS = {
730
+ month: [11.5, 14.75, 18].flatMap(
731
+ (y) => [4.75, 8.75, 12.75, 16.75].map((x) => ({ x, y, w: 2.5, h: 2 }))
732
+ ),
733
+ week: [6, 9, 12, 15, 18].map((cx) => ({ x: cx - 0.75, y: 11.75, w: 1.5, h: 8 })),
734
+ day: [12, 15.25, 18.5].map((y) => ({ x: 6, y: y - 0.75, w: 12, h: 1.5 }))
735
+ };
736
+ function calendarDetails(kind, fill, opacity = 1) {
737
+ return CALENDAR_DETAILS[kind].map((d) => /* @__PURE__ */ jsxRuntime.jsx(
738
+ "rect",
739
+ {
740
+ x: d.x,
741
+ y: d.y,
742
+ width: d.w,
743
+ height: d.h,
744
+ fill,
745
+ opacity
746
+ },
747
+ `${d.x}-${d.y}`
748
+ ));
749
+ }
750
+ function calendarIcon(displayName, kind) {
751
+ const filled = ({
752
+ primaryColor,
753
+ secondaryColor,
754
+ accentColor,
755
+ accentOpacity,
756
+ strokeWidth,
757
+ uid,
758
+ stacked
759
+ }, two, details) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
803
760
  /* @__PURE__ */ jsxRuntime.jsx("rect", { ...CALENDAR_PAGE, fill: primaryColor }),
804
761
  iconParts.within(
805
762
  uid,
806
763
  "header",
807
764
  /* @__PURE__ */ jsxRuntime.jsx("rect", { ...CALENDAR_PAGE }),
808
765
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
809
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: CALENDAR_HEAD_BAND, fill: secondaryColor }),
766
+ two && /* @__PURE__ */ jsxRuntime.jsx("path", { d: CALENDAR_HEAD_BAND, fill: secondaryColor }),
810
767
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 9.5h18", stroke: accentColor, strokeWidth: "1.5", opacity: accentOpacity })
811
768
  ] })
812
769
  ),
813
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: CALENDAR_RINGS, stroke: secondaryColor, strokeWidth: strokeWidth * 1.6 })
770
+ /* @__PURE__ */ jsxRuntime.jsx(
771
+ "path",
772
+ {
773
+ d: CALENDAR_RINGS,
774
+ stroke: two ? secondaryColor : primaryColor,
775
+ strokeWidth: strokeWidth * 1.6
776
+ }
777
+ ),
778
+ !stacked && calendarDetails(kind, details, details === accentColor ? accentOpacity : 1)
814
779
  ] });
780
+ return createIcon.createIcon({
781
+ displayName,
782
+ perfectStackX: 12,
783
+ perfectStackY: 15.75,
784
+ perfectStackSize: 0.55,
785
+ paths: {
786
+ solid: (p) => filled(p, false, p.accentColor),
787
+ outline: ({ primaryColor, strokeWidth, stacked }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
788
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { ...CALENDAR_PAGE, stroke: primaryColor, strokeWidth, fill: "none" }),
789
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: CALENDAR_RINGS, stroke: primaryColor, strokeWidth: strokeWidth * 1.6 }),
790
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 9.5h18", stroke: primaryColor, strokeWidth }),
791
+ !stacked && calendarDetails(kind, primaryColor)
792
+ ] }),
793
+ duotone: (p) => filled(p, true, p.secondaryColor),
794
+ vivid: (p) => filled(p, true, p.accentColor)
795
+ }
796
+ });
815
797
  }
816
- const NtdCalendar = /* @__PURE__ */ createIcon.createIcon({
817
- displayName: "NtdCalendar",
818
- perfectStackX: 12,
819
- perfectStackY: 13,
820
- perfectStackSize: 0.55,
821
- paths: {
822
- solid: calendarFilled,
823
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
824
- /* @__PURE__ */ jsxRuntime.jsx(
825
- "rect",
826
- {
827
- x: "3",
828
- y: "4",
829
- width: "18",
830
- height: "18",
831
- rx: "2",
832
- stroke: primaryColor,
833
- strokeWidth,
834
- fill: "none"
835
- }
836
- ),
837
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: CALENDAR_RINGS, stroke: primaryColor, strokeWidth: strokeWidth * 1.6 }),
838
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 9.5h18", stroke: primaryColor, strokeWidth })
839
- ] }),
840
- duotone: calendarFilled,
841
- vivid: calendarFilled
842
- }
843
- });
798
+ const NtdCalendar = /* @__PURE__ */ calendarIcon("NtdCalendar", "month");
799
+ const NtdCalendarWeek = /* @__PURE__ */ calendarIcon("NtdCalendarWeek", "week");
800
+ const NtdCalendarDay = /* @__PURE__ */ calendarIcon("NtdCalendarDay", "day");
844
801
  const NtdTag = /* @__PURE__ */ createIcon.createIcon({
845
802
  displayName: "NtdTag",
846
803
  perfectStackX: 12.5,
@@ -1033,11 +990,11 @@ const NtdBookmark = /* @__PURE__ */ createIcon.createIcon({
1033
990
  sharp: ({ primaryColor }) => /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 21l-7-5-7 5V3h14v18z", fill: primaryColor })
1034
991
  }
1035
992
  });
1036
- const FLAG_CLOTH = "M4 4.5s1-1 4-1 5 2 8 2 4-1 4-1v11s-1 1-4 1-5-2-8-2-4 1-4 1z";
993
+ const FLAG_CLOTH = "M4 3.5s1-1 4-1 5 2 8 2 4-1 4-1v11s-1 1-4 1-5-2-8-2-4 1-4 1z";
1037
994
  const NtdFlag = /* @__PURE__ */ createIcon.createIcon({
1038
995
  displayName: "NtdFlag",
1039
996
  perfectStackX: 12,
1040
- perfectStackY: 10,
997
+ perfectStackY: 9,
1041
998
  perfectStackSize: 0.35,
1042
999
  paths: {
1043
1000
  solid: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -1242,76 +1199,37 @@ const NtdShield = /* @__PURE__ */ createIcon.createIcon({
1242
1199
  }
1243
1200
  });
1244
1201
  const GLOBE_GRID = "M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10A15.3 15.3 0 0112 2z";
1202
+ function globeLines(color, width) {
1203
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1204
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", stroke: color, strokeWidth: width, fill: "none" }),
1205
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: GLOBE_GRID, stroke: color, strokeWidth: width, fill: "none" })
1206
+ ] });
1207
+ }
1208
+ function globeFilled(disc, grid, width, uid) {
1209
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1210
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: disc }),
1211
+ iconParts.within(
1212
+ uid,
1213
+ "grid",
1214
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
1215
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: GLOBE_GRID, stroke: grid, strokeWidth: width, fill: "none" })
1216
+ )
1217
+ ] });
1218
+ }
1245
1219
  const NtdGlobe = /* @__PURE__ */ createIcon.createIcon({
1246
1220
  displayName: "NtdGlobe",
1247
1221
  paths: {
1248
- // a filled globe with its grid in the accent colour, kept inside the disc (it was the
1249
- // outline's rings, unfilled). The grid is 1.5x the stroke in the filled variants, but stays
1250
- // at 0.75x in the cutout, which is drawn from this layer too.
1251
- solid: ({ variant, primaryColor, accentColor, accentOpacity, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1252
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }),
1253
- iconParts.within(
1254
- uid,
1255
- "grid",
1256
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
1257
- /* @__PURE__ */ jsxRuntime.jsx(
1258
- "path",
1259
- {
1260
- d: GLOBE_GRID,
1261
- stroke: accentColor,
1262
- strokeWidth: strokeWidth * (variant === "cutout" ? 0.75 : 1.5),
1263
- opacity: accentOpacity,
1264
- fill: "none"
1265
- }
1266
- )
1267
- )
1268
- ] }),
1269
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1270
- /* @__PURE__ */ jsxRuntime.jsx(
1271
- "circle",
1272
- {
1273
- cx: "12",
1274
- cy: "12",
1275
- r: "10",
1276
- stroke: primaryColor,
1277
- strokeWidth,
1278
- fill: "none"
1279
- }
1280
- ),
1281
- /* @__PURE__ */ jsxRuntime.jsx(
1282
- "path",
1283
- {
1284
- d: "M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10A15.3 15.3 0 0112 2z",
1285
- stroke: primaryColor,
1286
- strokeWidth,
1287
- fill: "none"
1288
- }
1289
- )
1290
- ] }),
1291
- vivid: ({ primaryColor, secondaryColor, strokeWidth, uid }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1292
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: primaryColor }),
1293
- iconParts.within(
1294
- uid,
1295
- "grid",
1296
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
1297
- /* @__PURE__ */ jsxRuntime.jsx(
1298
- "path",
1299
- {
1300
- d: GLOBE_GRID,
1301
- stroke: secondaryColor,
1302
- strokeWidth: strokeWidth * 1.5,
1303
- fill: "none"
1304
- }
1305
- )
1306
- )
1307
- ] })
1222
+ solid: ({ primaryColor, strokeWidth }) => globeLines(primaryColor, strokeWidth * 2),
1223
+ outline: ({ primaryColor, strokeWidth }) => globeLines(primaryColor, strokeWidth),
1224
+ duotone: ({ primaryColor, secondaryColor, strokeWidth, uid }) => globeFilled(secondaryColor, primaryColor, strokeWidth * 1.5, uid),
1225
+ vivid: ({ primaryColor, secondaryColor, strokeWidth, uid }) => globeFilled(secondaryColor, primaryColor, strokeWidth * 1.5, uid)
1308
1226
  }
1309
1227
  });
1310
1228
  const MAP = "M1.5 5.5L8 3l8 2.5L22.5 3v15.5L16 21l-8-2.5L1.5 21z";
1311
1229
  const MAP_MIDDLE = "M8 3l8 2.5V21l-8-2.5z";
1312
1230
  const MAP_FOLDS = "M8 3v15.5M16 5.5V21";
1313
1231
  const MAP_ROUTE = "M4 17c2.5-.5 2.5-4.5 5.5-4.5s3 3 5.5 2c1.5-.6 2-2.2 2.4-3.2";
1314
- const MAP_X = "M17.4 6.9l3.2 3.2M20.6 6.9l-3.2 3.2";
1232
+ const MAP_X = "M18 6.9l3.2 3.2M21.2 6.9l-3.2 3.2";
1315
1233
  function mapMarks(route, mark, width) {
1316
1234
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1317
1235
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1319,8 +1237,8 @@ function mapMarks(route, mark, width) {
1319
1237
  {
1320
1238
  d: MAP_ROUTE,
1321
1239
  stroke: route,
1322
- strokeWidth: width,
1323
- strokeDasharray: `1.2 ${1.2 + width}`,
1240
+ strokeWidth: width * 0.75,
1241
+ strokeDasharray: `1.2 ${1.2 + width * 0.75}`,
1324
1242
  fill: "none"
1325
1243
  }
1326
1244
  ),
@@ -1409,54 +1327,34 @@ function pinIcon(displayName, dot) {
1409
1327
  }
1410
1328
  const NtdPin = /* @__PURE__ */ pinIcon("NtdPin", false);
1411
1329
  const NtdMapPin = /* @__PURE__ */ pinIcon("NtdMapPin", true);
1330
+ const SUN_RAYS = "M12 1v2.6M12 20.4V23M1 12h2.6M20.4 12H23M4.22 4.22l1.84 1.84M17.94 17.94l1.84 1.84M4.22 19.78l1.84-1.84M17.94 6.06l1.84-1.84";
1412
1331
  const NtdSun = /* @__PURE__ */ createIcon.createIcon({
1413
1332
  displayName: "NtdSun",
1414
1333
  paths: {
1415
1334
  solid: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1416
1335
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: primaryColor }),
1417
- /* @__PURE__ */ jsxRuntime.jsx(
1418
- "path",
1419
- {
1420
- d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42",
1421
- stroke: primaryColor,
1422
- strokeWidth
1423
- }
1424
- )
1336
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SUN_RAYS, stroke: primaryColor, strokeWidth: strokeWidth * 1.5 })
1425
1337
  ] }),
1426
1338
  outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1427
1339
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", stroke: primaryColor, strokeWidth, fill: "none" }),
1428
- /* @__PURE__ */ jsxRuntime.jsx(
1429
- "path",
1430
- {
1431
- d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42",
1432
- stroke: primaryColor,
1433
- strokeWidth
1434
- }
1435
- )
1340
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SUN_RAYS, stroke: primaryColor, strokeWidth })
1436
1341
  ] }),
1437
1342
  duotone: ({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1438
1343
  /* @__PURE__ */ jsxRuntime.jsx(
1439
1344
  "path",
1440
1345
  {
1441
- d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42",
1346
+ d: SUN_RAYS,
1442
1347
  stroke: secondaryColor,
1443
- strokeWidth,
1348
+ strokeWidth: strokeWidth * 1.5,
1444
1349
  opacity: secondaryOpacity + 0.2
1445
1350
  }
1446
1351
  ),
1447
1352
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: primaryColor })
1448
1353
  ] }),
1449
- vivid: ({ primaryColor, secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1354
+ vivid: ({ primaryColor, secondaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1450
1355
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: primaryColor }),
1451
1356
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "5", fill: "white", opacity: "0.1" }),
1452
- /* @__PURE__ */ jsxRuntime.jsx(
1453
- "path",
1454
- {
1455
- d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42",
1456
- stroke: secondaryColor,
1457
- strokeWidth: "1.8"
1458
- }
1459
- )
1357
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: SUN_RAYS, stroke: secondaryColor, strokeWidth: strokeWidth * 1.5 })
1460
1358
  ] })
1461
1359
  }
1462
1360
  });
@@ -1589,11 +1487,12 @@ const NtdWireframe = /* @__PURE__ */ createIcon.createIcon({
1589
1487
  ] })
1590
1488
  }
1591
1489
  });
1592
- exports.NtdAdmin = NtdAdmin;
1593
1490
  exports.NtdBackspace = NtdBackspace;
1594
1491
  exports.NtdBell = NtdBell;
1595
1492
  exports.NtdBookmark = NtdBookmark;
1596
1493
  exports.NtdCalendar = NtdCalendar;
1494
+ exports.NtdCalendarDay = NtdCalendarDay;
1495
+ exports.NtdCalendarWeek = NtdCalendarWeek;
1597
1496
  exports.NtdClock = NtdClock;
1598
1497
  exports.NtdCursor = NtdCursor;
1599
1498
  exports.NtdError = NtdError;
@@ -1618,6 +1517,7 @@ exports.NtdTag = NtdTag;
1618
1517
  exports.NtdThumbDown = NtdThumbDown;
1619
1518
  exports.NtdThumbUp = NtdThumbUp;
1620
1519
  exports.NtdUser = NtdUser;
1520
+ exports.NtdUserTie = NtdUserTie;
1621
1521
  exports.NtdUsers = NtdUsers;
1622
1522
  exports.NtdWarning = NtdWarning;
1623
1523
  exports.NtdWireframe = NtdWireframe;
@@ -570,61 +570,35 @@ const NtdUmbrella = /* @__PURE__ */ createIcon.createIcon({
570
570
  ] })
571
571
  }
572
572
  });
573
- const NtdLeaf = /* @__PURE__ */ createIcon.createIcon({
574
- displayName: "NtdLeaf",
575
- paths: {
576
- solid: ({ primaryColor, strokeWidth: _strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
577
- "path",
578
- {
579
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
580
- fill: primaryColor
581
- }
582
- ) }),
583
- outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
573
+ const LEAF = "M6.2 17.8C6.2 9 12 2.8 21.2 2.8C21.2 12 15 17.8 6.2 17.8Z";
574
+ const LEAF_STALK = "M7 17L3 21";
575
+ const LEAF_MIDRIB = "M6.2 17.8L17.6 6.4";
576
+ function leafFilled({ primaryColor, accentColor, accentOpacity, strokeWidth }, stalk, midrib) {
577
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
578
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: LEAF_STALK, stroke: stalk, strokeWidth: strokeWidth * 1.6, strokeLinecap: "round" }),
579
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: LEAF, fill: primaryColor }),
580
+ midrib && /* @__PURE__ */ jsxRuntime.jsx(
584
581
  "path",
585
582
  {
586
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
587
- stroke: primaryColor,
588
- strokeWidth,
589
- fill: "none"
583
+ d: LEAF_MIDRIB,
584
+ stroke: accentColor,
585
+ strokeWidth: strokeWidth * 0.6,
586
+ strokeLinecap: "round",
587
+ opacity: accentOpacity
590
588
  }
591
- ) }),
592
- duotone: iconParts.swapDuotone(({ primaryColor, secondaryColor, secondaryOpacity, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
593
- /* @__PURE__ */ jsxRuntime.jsx(
594
- "path",
595
- {
596
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
597
- fill: secondaryColor,
598
- opacity: secondaryOpacity
599
- }
600
- ),
601
- /* @__PURE__ */ jsxRuntime.jsx(
602
- "path",
603
- {
604
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
605
- stroke: primaryColor,
606
- strokeWidth,
607
- fill: "none"
608
- }
609
- )
610
- ] })),
611
- vivid: ({ primaryColor, secondaryColor: _secondaryColor }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
612
- /* @__PURE__ */ jsxRuntime.jsx(
613
- "path",
614
- {
615
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
616
- fill: primaryColor
617
- }
618
- ),
619
- /* @__PURE__ */ jsxRuntime.jsx(
620
- "path",
621
- {
622
- d: "M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 2-8 2.25-13 3.25S2 11.5 2 13.5s1.75 3.75 1.75 3.75",
623
- fill: "white",
624
- opacity: "0.1"
625
- }
626
- )
627
- ] })
589
+ )
590
+ ] });
591
+ }
592
+ const NtdLeaf = /* @__PURE__ */ createIcon.createIcon({
593
+ displayName: "NtdLeaf",
594
+ paths: {
595
+ solid: (p) => leafFilled(p, p.primaryColor, true),
596
+ outline: ({ primaryColor, strokeWidth }) => /* @__PURE__ */ jsxRuntime.jsxs("g", { stroke: primaryColor, strokeWidth, strokeLinecap: "round", fill: "none", children: [
597
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: LEAF, strokeLinejoin: "round" }),
598
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.2 17.8L3 21M6.2 17.8L16.4 7.6" })
599
+ ] }),
600
+ duotone: (p) => leafFilled(p, p.secondaryColor, false),
601
+ vivid: (p) => leafFilled(p, p.secondaryColor, true)
628
602
  }
629
603
  });
630
604
  const NtdFlower = /* @__PURE__ */ createIcon.createIcon({
@@ -687,8 +661,8 @@ const NtdTree = /* @__PURE__ */ createIcon.createIcon({
687
661
  }
688
662
  });
689
663
  const MOUNTAIN = "M12 2L2 22h20L12 2z";
690
- const MOUNTAIN_SNOW = "M12 2L15 8L14 10.2L13.1 9.4L11.9 11L10.6 9.1L9.5 10.4L8.4 9.2Z";
691
- const MOUNTAIN_SNOW_LINE = "M8.4 9.2L9.5 10.4L10.6 9.1L11.9 11L13.1 9.4L14 10.2L15 8";
664
+ const MOUNTAIN_SNOW = "M12 2L16.6 11.2L14.6 12.3L12.7 14.1L10.7 12L8.9 13.7L7 12Z";
665
+ const MOUNTAIN_SNOW_LINE = "M7 12L8.9 13.7L10.7 12L12.7 14.1L14.6 12.3L16.6 11.2";
692
666
  const NtdMountain = /* @__PURE__ */ createIcon.createIcon({
693
667
  displayName: "NtdMountain",
694
668
  paths: {
@@ -704,7 +678,7 @@ const NtdMountain = /* @__PURE__ */ createIcon.createIcon({
704
678
  d: MOUNTAIN_SNOW_LINE,
705
679
  stroke: accentColor,
706
680
  strokeOpacity: accentOpacity,
707
- strokeWidth,
681
+ strokeWidth: strokeWidth * 0.7,
708
682
  strokeLinejoin: "miter",
709
683
  fill: "none"
710
684
  }
@@ -718,7 +692,7 @@ const NtdMountain = /* @__PURE__ */ createIcon.createIcon({
718
692
  {
719
693
  d: MOUNTAIN_SNOW_LINE,
720
694
  stroke: primaryColor,
721
- strokeWidth: strokeWidth * 0.8,
695
+ strokeWidth: strokeWidth * 0.6,
722
696
  fill: "none"
723
697
  }
724
698
  )