huspy-icons 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,60 +42,84 @@ var init_ArrowLeft = __esm({
42
42
  init_types();
43
43
  SvgArrowLeft = ({ size = 16, ...props }) => {
44
44
  const sizeValue = resolveSize(size);
45
- return /* @__PURE__ */ React.createElement("svg", { width: sizeValue, height: sizeValue, viewBox: "0 0 24 24", fill: "none", ...props }, /* @__PURE__ */ React.createElement(
46
- "path",
45
+ return /* @__PURE__ */ React.createElement(
46
+ "svg",
47
47
  {
48
- fillRule: "evenodd",
49
- clipRule: "evenodd",
50
- d: "M12.7071 4.29289C13.0976 4.68342 13.0976 5.31658 12.7071 5.70711L6.41421 12L12.7071 18.2929C13.0976 18.6834 13.0976 19.3166 12.7071 19.7071C12.3166 20.0976 11.6834 20.0976 11.2929 19.7071L4.29289 12.7071C3.90237 12.3166 3.90237 11.6834 4.29289 11.2929L11.2929 4.29289C11.6834 3.90237 12.3166 3.90237 12.7071 4.29289Z",
51
- fill: "currentColor"
52
- }
53
- ), /* @__PURE__ */ React.createElement(
54
- "path",
55
- {
56
- fillRule: "evenodd",
57
- clipRule: "evenodd",
58
- d: "M4 12C4 11.4477 4.44772 11 5 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H5C4.44772 13 4 12.5523 4 12Z",
59
- fill: "currentColor"
60
- }
61
- ));
48
+ width: sizeValue,
49
+ height: sizeValue,
50
+ viewBox: "0 0 24 24",
51
+ fill: "none",
52
+ xmlns: "http://www.w3.org/2000/svg",
53
+ ...props
54
+ },
55
+ /* @__PURE__ */ React.createElement(
56
+ "path",
57
+ {
58
+ fillRule: "evenodd",
59
+ clipRule: "evenodd",
60
+ d: "M12.7071 4.29289C13.0976 4.68342 13.0976 5.31658 12.7071 5.70711L6.41421 12L12.7071 18.2929C13.0976 18.6834 13.0976 19.3166 12.7071 19.7071C12.3166 20.0976 11.6834 20.0976 11.2929 19.7071L4.29289 12.7071C3.90237 12.3166 3.90237 11.6834 4.29289 11.2929L11.2929 4.29289C11.6834 3.90237 12.3166 3.90237 12.7071 4.29289Z",
61
+ fill: "currentColor"
62
+ }
63
+ ),
64
+ /* @__PURE__ */ React.createElement(
65
+ "path",
66
+ {
67
+ fillRule: "evenodd",
68
+ clipRule: "evenodd",
69
+ d: "M4 12C4 11.4477 4.44772 11 5 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H5C4.44772 13 4 12.5523 4 12Z",
70
+ fill: "currentColor"
71
+ }
72
+ )
73
+ );
62
74
  };
63
75
  ArrowLeft_default = SvgArrowLeft;
64
76
  }
65
77
  });
66
78
 
67
- // src/react/ArrowUpRight.tsx
68
- var ArrowUpRight_exports = {};
69
- __export(ArrowUpRight_exports, {
70
- default: () => ArrowUpRight_default
79
+ // src/react/Cancel.tsx
80
+ var Cancel_exports = {};
81
+ __export(Cancel_exports, {
82
+ default: () => Cancel_default
71
83
  });
72
84
  import * as React2 from "react";
73
- var SvgArrowUpRight, ArrowUpRight_default;
74
- var init_ArrowUpRight = __esm({
75
- "src/react/ArrowUpRight.tsx"() {
85
+ var SvgCancel, Cancel_default;
86
+ var init_Cancel = __esm({
87
+ "src/react/Cancel.tsx"() {
76
88
  "use strict";
77
89
  init_types();
78
- SvgArrowUpRight = ({ size = 16, ...props }) => {
90
+ SvgCancel = ({ size = 16, ...props }) => {
79
91
  const sizeValue = resolveSize(size);
80
- return /* @__PURE__ */ React2.createElement("svg", { width: sizeValue, height: sizeValue, viewBox: "0 0 24 24", fill: "none", ...props }, /* @__PURE__ */ React2.createElement(
81
- "path",
82
- {
83
- fillRule: "evenodd",
84
- clipRule: "evenodd",
85
- d: "M6 7C6 6.44772 6.44772 6 7 6H17C17.5523 6 18 6.44772 18 7V17C18 17.5523 17.5523 18 17 18C16.4477 18 16 17.5523 16 17V8H7C6.44772 8 6 7.55228 6 7Z",
86
- fill: "currentColor"
87
- }
88
- ), /* @__PURE__ */ React2.createElement(
89
- "path",
92
+ return /* @__PURE__ */ React2.createElement(
93
+ "svg",
90
94
  {
91
- fillRule: "evenodd",
92
- clipRule: "evenodd",
93
- d: "M17.7071 6.29289C18.0976 6.68342 18.0976 7.31658 17.7071 7.70711L7.70711 17.7071C7.31658 18.0976 6.68342 18.0976 6.29289 17.7071C5.90237 17.3166 5.90237 16.6834 6.29289 16.2929L16.2929 6.29289C16.6834 5.90237 17.3166 5.90237 17.7071 6.29289Z",
94
- fill: "currentColor"
95
- }
96
- ));
95
+ width: sizeValue,
96
+ height: sizeValue,
97
+ viewBox: "0 0 24 24",
98
+ fill: "none",
99
+ xmlns: "http://www.w3.org/2000/svg",
100
+ ...props
101
+ },
102
+ /* @__PURE__ */ React2.createElement(
103
+ "path",
104
+ {
105
+ fillRule: "evenodd",
106
+ clipRule: "evenodd",
107
+ d: "M18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289Z",
108
+ fill: "currentColor"
109
+ }
110
+ ),
111
+ /* @__PURE__ */ React2.createElement(
112
+ "path",
113
+ {
114
+ fillRule: "evenodd",
115
+ clipRule: "evenodd",
116
+ d: "M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z",
117
+ fill: "currentColor"
118
+ }
119
+ )
120
+ );
97
121
  };
98
- ArrowUpRight_default = SvgArrowUpRight;
122
+ Cancel_default = SvgCancel;
99
123
  }
100
124
  });
101
125
 
@@ -112,26 +136,140 @@ var init_Check = __esm({
112
136
  init_types();
113
137
  SvgCheck = ({ size = 16, ...props }) => {
114
138
  const sizeValue = resolveSize(size);
115
- return /* @__PURE__ */ React3.createElement("svg", { width: sizeValue, height: sizeValue, viewBox: "0 0 24 24", fill: "none", ...props }, /* @__PURE__ */ React3.createElement(
116
- "path",
139
+ return /* @__PURE__ */ React3.createElement(
140
+ "svg",
117
141
  {
118
- fillRule: "evenodd",
119
- clipRule: "evenodd",
120
- d: "M20.7071 5.29289C21.0976 5.68342 21.0976 6.31658 20.7071 6.70711L9.70711 17.7071C9.31658 18.0976 8.68342 18.0976 8.29289 17.7071L3.29289 12.7071C2.90237 12.3166 2.90237 11.6834 3.29289 11.2929C3.68342 10.9024 4.31658 10.9024 4.70711 11.2929L9 15.5858L19.2929 5.29289C19.6834 4.90237 20.3166 4.90237 20.7071 5.29289Z",
121
- fill: "currentColor"
122
- }
123
- ));
142
+ width: sizeValue,
143
+ height: sizeValue,
144
+ viewBox: "0 0 16 16",
145
+ fill: "none",
146
+ xmlns: "http://www.w3.org/2000/svg",
147
+ ...props
148
+ },
149
+ /* @__PURE__ */ React3.createElement(
150
+ "path",
151
+ {
152
+ fillRule: "evenodd",
153
+ clipRule: "evenodd",
154
+ d: "M13.8047 3.52858C14.0651 3.78892 14.0651 4.21103 13.8047 4.47138L6.4714 11.8047C6.21106 12.0651 5.78894 12.0651 5.5286 11.8047L2.19526 8.47138C1.93491 8.21103 1.93491 7.78892 2.19526 7.52858C2.45561 7.26823 2.87772 7.26823 3.13807 7.52858L6 10.3905L12.8619 3.52858C13.1223 3.26823 13.5444 3.26823 13.8047 3.52858Z",
155
+ fill: "currentColor"
156
+ }
157
+ )
158
+ );
124
159
  };
125
160
  Check_default = SvgCheck;
126
161
  }
127
162
  });
128
163
 
164
+ // src/react/EyeHidden.tsx
165
+ var EyeHidden_exports = {};
166
+ __export(EyeHidden_exports, {
167
+ default: () => EyeHidden_default
168
+ });
169
+ import * as React4 from "react";
170
+ var SvgEyeHidden, EyeHidden_default;
171
+ var init_EyeHidden = __esm({
172
+ "src/react/EyeHidden.tsx"() {
173
+ "use strict";
174
+ init_types();
175
+ SvgEyeHidden = ({ size = 16, ...props }) => {
176
+ const sizeValue = resolveSize(size);
177
+ return /* @__PURE__ */ React4.createElement(
178
+ "svg",
179
+ {
180
+ width: sizeValue,
181
+ height: sizeValue,
182
+ viewBox: "0 0 24 24",
183
+ fill: "none",
184
+ xmlns: "http://www.w3.org/2000/svg",
185
+ ...props
186
+ },
187
+ /* @__PURE__ */ React4.createElement(
188
+ "path",
189
+ {
190
+ fillRule: "evenodd",
191
+ clipRule: "evenodd",
192
+ d: "M2.02994 11.7575C2.61883 9.4019 5.4549 5 12.0001 5C18.5453 5 21.3813 9.4019 21.9702 11.7575L22.0285 11.9907L21.9745 12.2249C21.3836 14.7852 18.5247 19 12.0001 19C5.42044 19 2.6206 14.4091 2.03532 12.2631L1.96655 12.011L2.02994 11.7575ZM4.04308 11.9886C4.61202 13.6329 6.83349 17 12.0001 17C17.2425 17 19.4283 13.8356 19.9639 12.0101C19.4182 10.2828 17.2104 7 12.0001 7C6.81136 7 4.60029 10.2556 4.04308 11.9886Z",
193
+ fill: "currentColor"
194
+ }
195
+ ),
196
+ /* @__PURE__ */ React4.createElement(
197
+ "path",
198
+ {
199
+ fillRule: "evenodd",
200
+ clipRule: "evenodd",
201
+ d: "M12.0001 10C10.8955 10 10.0001 10.8954 10.0001 12C10.0001 13.1046 10.8955 14 12.0001 14C13.1046 14 14.0001 13.1046 14.0001 12C14.0001 10.8954 13.1046 10 12.0001 10ZM8.00008 12C8.00008 9.79086 9.79094 8 12.0001 8C14.2092 8 16.0001 9.79086 16.0001 12C16.0001 14.2091 14.2092 16 12.0001 16C9.79094 16 8.00008 14.2091 8.00008 12Z",
202
+ fill: "currentColor"
203
+ }
204
+ ),
205
+ /* @__PURE__ */ React4.createElement(
206
+ "path",
207
+ {
208
+ fillRule: "evenodd",
209
+ clipRule: "evenodd",
210
+ d: "M20.7072 3.29289C21.0977 3.68342 21.0977 4.31658 20.7072 4.70711L4.70719 20.7071C4.31666 21.0976 3.6835 21.0976 3.29297 20.7071C2.90245 20.3166 2.90245 19.6834 3.29297 19.2929L19.293 3.29289C19.6835 2.90237 20.3167 2.90237 20.7072 3.29289Z",
211
+ fill: "currentColor"
212
+ }
213
+ )
214
+ );
215
+ };
216
+ EyeHidden_default = SvgEyeHidden;
217
+ }
218
+ });
219
+
220
+ // src/react/EyeVisible.tsx
221
+ var EyeVisible_exports = {};
222
+ __export(EyeVisible_exports, {
223
+ default: () => EyeVisible_default
224
+ });
225
+ import * as React5 from "react";
226
+ var SvgEyeVisible, EyeVisible_default;
227
+ var init_EyeVisible = __esm({
228
+ "src/react/EyeVisible.tsx"() {
229
+ "use strict";
230
+ init_types();
231
+ SvgEyeVisible = ({ size = 16, ...props }) => {
232
+ const sizeValue = resolveSize(size);
233
+ return /* @__PURE__ */ React5.createElement(
234
+ "svg",
235
+ {
236
+ width: sizeValue,
237
+ height: sizeValue,
238
+ viewBox: "0 0 24 24",
239
+ fill: "none",
240
+ xmlns: "http://www.w3.org/2000/svg",
241
+ ...props
242
+ },
243
+ /* @__PURE__ */ React5.createElement(
244
+ "path",
245
+ {
246
+ fillRule: "evenodd",
247
+ clipRule: "evenodd",
248
+ d: "M2.02994 11.7575C2.61883 9.4019 5.4549 5 12.0001 5C18.5453 5 21.3813 9.4019 21.9702 11.7575L22.0285 11.9906L21.9745 12.2249C21.3836 14.7852 18.5247 19 12.0001 19C5.42044 19 2.6206 14.4091 2.03532 12.2631L1.96655 12.011L2.02994 11.7575ZM4.04308 11.9886C4.61202 13.6329 6.83349 17 12.0001 17C17.2425 17 19.4283 13.8356 19.9639 12.0101C19.4182 10.2828 17.2104 7 12.0001 7C6.81136 7 4.60029 10.2556 4.04308 11.9886Z",
249
+ fill: "currentColor"
250
+ }
251
+ ),
252
+ /* @__PURE__ */ React5.createElement(
253
+ "path",
254
+ {
255
+ fillRule: "evenodd",
256
+ clipRule: "evenodd",
257
+ d: "M12.0001 10C10.8955 10 10.0001 10.8954 10.0001 12C10.0001 13.1046 10.8955 14 12.0001 14C13.1046 14 14.0001 13.1046 14.0001 12C14.0001 10.8954 13.1046 10 12.0001 10ZM8.00008 12C8.00008 9.79086 9.79094 8 12.0001 8C14.2092 8 16.0001 9.79086 16.0001 12C16.0001 14.2091 14.2092 16 12.0001 16C9.79094 16 8.00008 14.2091 8.00008 12Z",
258
+ fill: "currentColor"
259
+ }
260
+ )
261
+ );
262
+ };
263
+ EyeVisible_default = SvgEyeVisible;
264
+ }
265
+ });
266
+
129
267
  // src/react/IconSlot.tsx
130
268
  var IconSlot_exports = {};
131
269
  __export(IconSlot_exports, {
132
270
  default: () => IconSlot_default
133
271
  });
134
- import * as React4 from "react";
272
+ import * as React6 from "react";
135
273
  var SvgIconSlot, IconSlot_default;
136
274
  var init_IconSlot = __esm({
137
275
  "src/react/IconSlot.tsx"() {
@@ -139,45 +277,162 @@ var init_IconSlot = __esm({
139
277
  init_types();
140
278
  SvgIconSlot = ({ size = 16, ...props }) => {
141
279
  const sizeValue = resolveSize(size);
142
- return /* @__PURE__ */ React4.createElement("svg", { width: sizeValue, height: sizeValue, viewBox: "0 0 15 15", fill: "none", ...props }, /* @__PURE__ */ React4.createElement(
143
- "path",
280
+ return /* @__PURE__ */ React6.createElement(
281
+ "svg",
144
282
  {
145
- d: "M13.3333 7.33333C13.3333 4.01962 10.647 1.33333 7.33333 1.33333C4.01962 1.33333 1.33333 4.01962 1.33333 7.33333C1.33333 10.647 4.01962 13.3333 7.33333 13.3333C10.647 13.3333 13.3333 10.647 13.3333 7.33333ZM14.6667 7.33333C14.6667 11.3834 11.3834 14.6667 7.33333 14.6667C3.28325 14.6667 0 11.3834 0 7.33333C0 3.28325 3.28325 0 7.33333 0C11.3834 0 14.6667 3.28325 14.6667 7.33333Z",
146
- fill: "currentColor"
147
- }
148
- ));
283
+ width: sizeValue,
284
+ height: sizeValue,
285
+ viewBox: "0 0 24 24",
286
+ fill: "none",
287
+ xmlns: "http://www.w3.org/2000/svg",
288
+ ...props
289
+ },
290
+ /* @__PURE__ */ React6.createElement(
291
+ "path",
292
+ {
293
+ d: "M21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12Z",
294
+ fill: "currentColor"
295
+ }
296
+ )
297
+ );
149
298
  };
150
299
  IconSlot_default = SvgIconSlot;
151
300
  }
152
301
  });
153
302
 
303
+ // src/react/Search.tsx
304
+ var Search_exports = {};
305
+ __export(Search_exports, {
306
+ default: () => Search_default
307
+ });
308
+ import * as React7 from "react";
309
+ var SvgSearch, Search_default;
310
+ var init_Search = __esm({
311
+ "src/react/Search.tsx"() {
312
+ "use strict";
313
+ init_types();
314
+ SvgSearch = ({ size = 16, ...props }) => {
315
+ const sizeValue = resolveSize(size);
316
+ return /* @__PURE__ */ React7.createElement(
317
+ "svg",
318
+ {
319
+ width: sizeValue,
320
+ height: sizeValue,
321
+ viewBox: "0 0 24 24",
322
+ fill: "none",
323
+ xmlns: "http://www.w3.org/2000/svg",
324
+ ...props
325
+ },
326
+ /* @__PURE__ */ React7.createElement(
327
+ "path",
328
+ {
329
+ fillRule: "evenodd",
330
+ clipRule: "evenodd",
331
+ d: "M11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4ZM2 11C2 6.02944 6.02944 2 11 2C15.9706 2 20 6.02944 20 11C20 15.9706 15.9706 20 11 20C6.02944 20 2 15.9706 2 11Z",
332
+ fill: "currentColor"
333
+ }
334
+ ),
335
+ /* @__PURE__ */ React7.createElement(
336
+ "path",
337
+ {
338
+ fillRule: "evenodd",
339
+ clipRule: "evenodd",
340
+ d: "M15.9929 15.9929C16.3834 15.6024 17.0166 15.6024 17.4071 15.9929L21.7071 20.2929C22.0976 20.6834 22.0976 21.3166 21.7071 21.7071C21.3166 22.0976 20.6834 22.0976 20.2929 21.7071L15.9929 17.4071C15.6024 17.0166 15.6024 16.3834 15.9929 15.9929Z",
341
+ fill: "currentColor"
342
+ }
343
+ )
344
+ );
345
+ };
346
+ Search_default = SvgSearch;
347
+ }
348
+ });
349
+
350
+ // src/react/User.tsx
351
+ var User_exports = {};
352
+ __export(User_exports, {
353
+ default: () => User_default
354
+ });
355
+ import * as React8 from "react";
356
+ var SvgUser, User_default;
357
+ var init_User = __esm({
358
+ "src/react/User.tsx"() {
359
+ "use strict";
360
+ init_types();
361
+ SvgUser = ({ size = 16, ...props }) => {
362
+ const sizeValue = resolveSize(size);
363
+ return /* @__PURE__ */ React8.createElement(
364
+ "svg",
365
+ {
366
+ width: sizeValue,
367
+ height: sizeValue,
368
+ viewBox: "0 0 24 24",
369
+ fill: "none",
370
+ xmlns: "http://www.w3.org/2000/svg",
371
+ ...props
372
+ },
373
+ /* @__PURE__ */ React8.createElement(
374
+ "path",
375
+ {
376
+ fillRule: "evenodd",
377
+ clipRule: "evenodd",
378
+ d: "M5.46447 15.4645C6.40215 14.5268 7.67392 14 9 14H15C16.3261 14 17.5979 14.5268 18.5355 15.4645C19.4732 16.4021 20 17.6739 20 19V21C20 21.5523 19.5523 22 19 22C18.4477 22 18 21.5523 18 21V19C18 18.2044 17.6839 17.4413 17.1213 16.8787C16.5587 16.3161 15.7956 16 15 16H9C8.20435 16 7.44129 16.3161 6.87868 16.8787C6.31607 17.4413 6 18.2043 6 19V21C6 21.5523 5.55228 22 5 22C4.44772 22 4 21.5523 4 21V19C4 17.6739 4.52678 16.4021 5.46447 15.4645Z",
379
+ fill: "currentColor"
380
+ }
381
+ ),
382
+ /* @__PURE__ */ React8.createElement(
383
+ "path",
384
+ {
385
+ fillRule: "evenodd",
386
+ clipRule: "evenodd",
387
+ d: "M12 4C10.3431 4 9 5.34315 9 7C9 8.65685 10.3431 10 12 10C13.6569 10 15 8.65685 15 7C15 5.34315 13.6569 4 12 4ZM7 7C7 4.23858 9.23858 2 12 2C14.7614 2 17 4.23858 17 7C17 9.76142 14.7614 12 12 12C9.23858 12 7 9.76142 7 7Z",
388
+ fill: "currentColor"
389
+ }
390
+ )
391
+ );
392
+ };
393
+ User_default = SvgUser;
394
+ }
395
+ });
396
+
154
397
  // src/react/index.ts
155
398
  init_ArrowLeft();
156
- init_ArrowUpRight();
399
+ init_Cancel();
157
400
  init_Check();
401
+ init_EyeHidden();
402
+ init_EyeVisible();
158
403
  init_IconSlot();
404
+ init_Search();
405
+ init_User();
159
406
 
160
407
  // src/react/Icon.tsx
161
- import * as React5 from "react";
408
+ import * as React9 from "react";
162
409
  function loadIcon(name) {
163
410
  switch (name) {
164
411
  case "arrow-left":
165
412
  return Promise.resolve().then(() => (init_ArrowLeft(), ArrowLeft_exports)).then((m) => m.default);
166
- case "arrow-up-right":
167
- return Promise.resolve().then(() => (init_ArrowUpRight(), ArrowUpRight_exports)).then((m) => m.default);
413
+ case "cancel":
414
+ return Promise.resolve().then(() => (init_Cancel(), Cancel_exports)).then((m) => m.default);
168
415
  case "check":
169
416
  return Promise.resolve().then(() => (init_Check(), Check_exports)).then((m) => m.default);
417
+ case "eye-hidden":
418
+ return Promise.resolve().then(() => (init_EyeHidden(), EyeHidden_exports)).then((m) => m.default);
419
+ case "eye-visible":
420
+ return Promise.resolve().then(() => (init_EyeVisible(), EyeVisible_exports)).then((m) => m.default);
170
421
  case "icon-slot":
171
422
  return Promise.resolve().then(() => (init_IconSlot(), IconSlot_exports)).then((m) => m.default);
423
+ case "search":
424
+ return Promise.resolve().then(() => (init_Search(), Search_exports)).then((m) => m.default);
425
+ case "user":
426
+ return Promise.resolve().then(() => (init_User(), User_exports)).then((m) => m.default);
172
427
  default:
173
428
  return Promise.reject(new Error(`Icon "${name}" not found`));
174
429
  }
175
430
  }
176
431
  var Icon = ({ name, size = 16, color, ...props }) => {
177
- const [IconComponent, setIconComponent] = React5.useState(null);
178
- const [loading, setLoading] = React5.useState(true);
179
- const [error, setError] = React5.useState(null);
180
- React5.useEffect(() => {
432
+ const [IconComponent, setIconComponent] = React9.useState(null);
433
+ const [loading, setLoading] = React9.useState(true);
434
+ const [error, setError] = React9.useState(null);
435
+ React9.useEffect(() => {
181
436
  setLoading(true);
182
437
  setError(null);
183
438
  loadIcon(name).then((Component) => {
@@ -196,7 +451,7 @@ var Icon = ({ name, size = 16, color, ...props }) => {
196
451
  return null;
197
452
  }
198
453
  const style = color ? { ...props.style, color } : props.style;
199
- return /* @__PURE__ */ React5.createElement(IconComponent, { size, ...props, style });
454
+ return /* @__PURE__ */ React9.createElement(IconComponent, { size, ...props, style });
200
455
  };
201
456
  var Icon_default = Icon;
202
457
 
@@ -204,11 +459,15 @@ var Icon_default = Icon;
204
459
  init_types();
205
460
  export {
206
461
  ArrowLeft_default as ArrowLeft,
207
- ArrowUpRight_default as ArrowUpRight,
462
+ Cancel_default as Cancel,
208
463
  Check_default as Check,
464
+ EyeHidden_default as EyeHidden,
465
+ EyeVisible_default as EyeVisible,
209
466
  ICON_SIZES,
210
467
  Icon_default as Icon,
211
468
  IconSlot_default as IconSlot,
469
+ Search_default as Search,
470
+ User_default as User,
212
471
  resolveSize
213
472
  };
214
473
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/types.ts","../../src/react/ArrowLeft.tsx","../../src/react/ArrowUpRight.tsx","../../src/react/Check.tsx","../../src/react/IconSlot.tsx","../../src/react/index.ts","../../src/react/Icon.tsx"],"sourcesContent":["export type IconSize = number | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Icon size presets\n */\nexport const ICON_SIZES = {\n xs: 8,\n sm: 12,\n md: 16,\n lg: 20,\n xl: 24,\n} as const;\n\n/**\n * Icon size token type\n */\nexport type IconSizeToken = keyof typeof ICON_SIZES;\n\n/**\n * Props for React (web) icons\n */\nexport interface ReactIconProps extends React.SVGProps<SVGSVGElement> {\n size?: IconSize;\n}\n\n/**\n * Props for React Native icons\n */\nexport interface NativeIconProps {\n size?: IconSize;\n width?: number;\n height?: number;\n color?: string;\n style?: any;\n}\n\n/**\n * Resolves an icon size to a numeric value\n * @param size - Size value or token\n * @returns Numeric size in pixels\n */\nexport function resolveSize(size: IconSize = 'lg'): number {\n if (typeof size === 'number') {\n return size;\n }\n \n return ICON_SIZES[size] ?? ICON_SIZES.lg;\n}\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgArrowLeft = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg width={sizeValue} height={sizeValue} viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.7071 4.29289C13.0976 4.68342 13.0976 5.31658 12.7071 5.70711L6.41421 12L12.7071 18.2929C13.0976 18.6834 13.0976 19.3166 12.7071 19.7071C12.3166 20.0976 11.6834 20.0976 11.2929 19.7071L4.29289 12.7071C3.90237 12.3166 3.90237 11.6834 4.29289 11.2929L11.2929 4.29289C11.6834 3.90237 12.3166 3.90237 12.7071 4.29289Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4 12C4 11.4477 4.44772 11 5 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H5C4.44772 13 4 12.5523 4 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgArrowLeft;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgArrowUpRight = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg width={sizeValue} height={sizeValue} viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 7C6 6.44772 6.44772 6 7 6H17C17.5523 6 18 6.44772 18 7V17C18 17.5523 17.5523 18 17 18C16.4477 18 16 17.5523 16 17V8H7C6.44772 8 6 7.55228 6 7Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.7071 6.29289C18.0976 6.68342 18.0976 7.31658 17.7071 7.70711L7.70711 17.7071C7.31658 18.0976 6.68342 18.0976 6.29289 17.7071C5.90237 17.3166 5.90237 16.6834 6.29289 16.2929L16.2929 6.29289C16.6834 5.90237 17.3166 5.90237 17.7071 6.29289Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgArrowUpRight;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgCheck = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg width={sizeValue} height={sizeValue} viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.7071 5.29289C21.0976 5.68342 21.0976 6.31658 20.7071 6.70711L9.70711 17.7071C9.31658 18.0976 8.68342 18.0976 8.29289 17.7071L3.29289 12.7071C2.90237 12.3166 2.90237 11.6834 3.29289 11.2929C3.68342 10.9024 4.31658 10.9024 4.70711 11.2929L9 15.5858L19.2929 5.29289C19.6834 4.90237 20.3166 4.90237 20.7071 5.29289Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgCheck;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgIconSlot = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg width={sizeValue} height={sizeValue} viewBox=\"0 0 15 15\" fill=\"none\" {...props}>\n <path\n d=\"M13.3333 7.33333C13.3333 4.01962 10.647 1.33333 7.33333 1.33333C4.01962 1.33333 1.33333 4.01962 1.33333 7.33333C1.33333 10.647 4.01962 13.3333 7.33333 13.3333C10.647 13.3333 13.3333 10.647 13.3333 7.33333ZM14.6667 7.33333C14.6667 11.3834 11.3834 14.6667 7.33333 14.6667C3.28325 14.6667 0 11.3834 0 7.33333C0 3.28325 3.28325 0 7.33333 0C11.3834 0 14.6667 3.28325 14.6667 7.33333Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgIconSlot;\n","// Auto-generated exports\nexport { default as ArrowLeft } from './ArrowLeft';\nexport { default as ArrowUpRight } from './ArrowUpRight';\nexport { default as Check } from './Check';\nexport { default as IconSlot } from './IconSlot';\n\n// Unified Icon component\nexport { default as Icon } from './Icon';\nexport type { IconName, IconProps } from './Icon';\n\n // Export types\nexport type {\n IconSize,\n IconSizeToken,\n ReactIconProps,\n} from '../shared/types';\n\nexport { ICON_SIZES, resolveSize } from '../shared/types';\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\n\n/**\n * Icon imports - using dynamic imports for tree-shaking\n * Auto-generated - do not edit manually\n */\n// Icon: arrow-left\n// Icon: arrow-up-right\n// Icon: check\n// Icon: icon-slot\n\n/**\n * Available icon names\n */\nexport type IconName = 'arrow-left' | 'arrow-up-right' | 'check' | 'icon-slot';\n\n/**\n * Props for the unified Icon component\n */\nexport interface IconProps extends Omit<ReactIconProps, 'size'> {\n name: IconName;\n size?: ReactIconProps['size'];\n color?: string;\n}\n\n/**\n * Loads an icon component dynamically\n * This pattern allows bundlers to tree-shake unused icons\n * \n * Icons use default exports (export default SvgIconName),\n * so we access .default from the dynamic import result\n */\nfunction loadIcon(name: IconName): Promise<React.ComponentType<any>> {\n switch (name) {\n case 'arrow-left':\n return import('./ArrowLeft').then(m => m.default);\n case 'arrow-up-right':\n return import('./ArrowUpRight').then(m => m.default);\n case 'check':\n return import('./Check').then(m => m.default);\n case 'icon-slot':\n return import('./IconSlot').then(m => m.default);\n default:\n return Promise.reject(new Error(`Icon \"${name}\" not found`));\n }\n}\n\n/**\n * Unified Icon component that renders icons by name\n * Uses dynamic imports for tree-shaking support\n */\nconst Icon = ({ name, size = 16, color, ...props }: IconProps) => {\n const [IconComponent, setIconComponent] = React.useState<React.ComponentType<any> | null>(null);\n const [loading, setLoading] = React.useState(true);\n const [error, setError] = React.useState<string | null>(null);\n\n React.useEffect(() => {\n setLoading(true);\n setError(null);\n \n loadIcon(name)\n .then((Component) => {\n setIconComponent(() => Component);\n setLoading(false);\n })\n .catch((err) => {\n console.warn(err.message);\n setError(err.message);\n setLoading(false);\n });\n }, [name]);\n\n if (loading) {\n return null; // Consider showing a placeholder\n }\n\n if (error || !IconComponent) {\n return null;\n }\n\n // Apply color via style prop if provided (SVGs use fill=\"currentColor\")\n const style = color \n ? { ...props.style, color } \n : props.style;\n\n return <IconComponent size={size} {...props} style={style} />;\n};\n\nexport default Icon;"],"mappings":"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","names":["React","React","React","React"]}
1
+ {"version":3,"sources":["../../src/shared/types.ts","../../src/react/ArrowLeft.tsx","../../src/react/Cancel.tsx","../../src/react/Check.tsx","../../src/react/EyeHidden.tsx","../../src/react/EyeVisible.tsx","../../src/react/IconSlot.tsx","../../src/react/Search.tsx","../../src/react/User.tsx","../../src/react/index.ts","../../src/react/Icon.tsx"],"sourcesContent":["export type IconSize = number | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Icon size presets\n */\nexport const ICON_SIZES = {\n xs: 8,\n sm: 12,\n md: 16,\n lg: 20,\n xl: 24,\n} as const;\n\n/**\n * Icon size token type\n */\nexport type IconSizeToken = keyof typeof ICON_SIZES;\n\n/**\n * Props for React (web) icons\n */\nexport interface ReactIconProps extends React.SVGProps<SVGSVGElement> {\n size?: IconSize;\n}\n\n/**\n * Props for React Native icons\n */\nexport interface NativeIconProps {\n size?: IconSize;\n width?: number;\n height?: number;\n color?: string;\n style?: any;\n}\n\n/**\n * Resolves an icon size to a numeric value\n * @param size - Size value or token\n * @returns Numeric size in pixels\n */\nexport function resolveSize(size: IconSize = 'lg'): number {\n if (typeof size === 'number') {\n return size;\n }\n \n return ICON_SIZES[size] ?? ICON_SIZES.lg;\n}\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgArrowLeft = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.7071 4.29289C13.0976 4.68342 13.0976 5.31658 12.7071 5.70711L6.41421 12L12.7071 18.2929C13.0976 18.6834 13.0976 19.3166 12.7071 19.7071C12.3166 20.0976 11.6834 20.0976 11.2929 19.7071L4.29289 12.7071C3.90237 12.3166 3.90237 11.6834 4.29289 11.2929L11.2929 4.29289C11.6834 3.90237 12.3166 3.90237 12.7071 4.29289Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4 12C4 11.4477 4.44772 11 5 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H5C4.44772 13 4 12.5523 4 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgArrowLeft;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgCancel = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgCancel;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgCheck = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.8047 3.52858C14.0651 3.78892 14.0651 4.21103 13.8047 4.47138L6.4714 11.8047C6.21106 12.0651 5.78894 12.0651 5.5286 11.8047L2.19526 8.47138C1.93491 8.21103 1.93491 7.78892 2.19526 7.52858C2.45561 7.26823 2.87772 7.26823 3.13807 7.52858L6 10.3905L12.8619 3.52858C13.1223 3.26823 13.5444 3.26823 13.8047 3.52858Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgCheck;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgEyeHidden = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.02994 11.7575C2.61883 9.4019 5.4549 5 12.0001 5C18.5453 5 21.3813 9.4019 21.9702 11.7575L22.0285 11.9907L21.9745 12.2249C21.3836 14.7852 18.5247 19 12.0001 19C5.42044 19 2.6206 14.4091 2.03532 12.2631L1.96655 12.011L2.02994 11.7575ZM4.04308 11.9886C4.61202 13.6329 6.83349 17 12.0001 17C17.2425 17 19.4283 13.8356 19.9639 12.0101C19.4182 10.2828 17.2104 7 12.0001 7C6.81136 7 4.60029 10.2556 4.04308 11.9886Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0001 10C10.8955 10 10.0001 10.8954 10.0001 12C10.0001 13.1046 10.8955 14 12.0001 14C13.1046 14 14.0001 13.1046 14.0001 12C14.0001 10.8954 13.1046 10 12.0001 10ZM8.00008 12C8.00008 9.79086 9.79094 8 12.0001 8C14.2092 8 16.0001 9.79086 16.0001 12C16.0001 14.2091 14.2092 16 12.0001 16C9.79094 16 8.00008 14.2091 8.00008 12Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.7072 3.29289C21.0977 3.68342 21.0977 4.31658 20.7072 4.70711L4.70719 20.7071C4.31666 21.0976 3.6835 21.0976 3.29297 20.7071C2.90245 20.3166 2.90245 19.6834 3.29297 19.2929L19.293 3.29289C19.6835 2.90237 20.3167 2.90237 20.7072 3.29289Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgEyeHidden;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgEyeVisible = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.02994 11.7575C2.61883 9.4019 5.4549 5 12.0001 5C18.5453 5 21.3813 9.4019 21.9702 11.7575L22.0285 11.9906L21.9745 12.2249C21.3836 14.7852 18.5247 19 12.0001 19C5.42044 19 2.6206 14.4091 2.03532 12.2631L1.96655 12.011L2.02994 11.7575ZM4.04308 11.9886C4.61202 13.6329 6.83349 17 12.0001 17C17.2425 17 19.4283 13.8356 19.9639 12.0101C19.4182 10.2828 17.2104 7 12.0001 7C6.81136 7 4.60029 10.2556 4.04308 11.9886Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0001 10C10.8955 10 10.0001 10.8954 10.0001 12C10.0001 13.1046 10.8955 14 12.0001 14C13.1046 14 14.0001 13.1046 14.0001 12C14.0001 10.8954 13.1046 10 12.0001 10ZM8.00008 12C8.00008 9.79086 9.79094 8 12.0001 8C14.2092 8 16.0001 9.79086 16.0001 12C16.0001 14.2091 14.2092 16 12.0001 16C9.79094 16 8.00008 14.2091 8.00008 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgEyeVisible;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgIconSlot = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgIconSlot;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgSearch = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4ZM2 11C2 6.02944 6.02944 2 11 2C15.9706 2 20 6.02944 20 11C20 15.9706 15.9706 20 11 20C6.02944 20 2 15.9706 2 11Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.9929 15.9929C16.3834 15.6024 17.0166 15.6024 17.4071 15.9929L21.7071 20.2929C22.0976 20.6834 22.0976 21.3166 21.7071 21.7071C21.3166 22.0976 20.6834 22.0976 20.2929 21.7071L15.9929 17.4071C15.6024 17.0166 15.6024 16.3834 15.9929 15.9929Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgSearch;\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\nimport { resolveSize } from '../shared/types';\n\nconst SvgUser = ({ size = 16, ...props }: ReactIconProps) => {\n const sizeValue = resolveSize(size);\n \n return (\n <svg\n width={sizeValue} height={sizeValue}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.46447 15.4645C6.40215 14.5268 7.67392 14 9 14H15C16.3261 14 17.5979 14.5268 18.5355 15.4645C19.4732 16.4021 20 17.6739 20 19V21C20 21.5523 19.5523 22 19 22C18.4477 22 18 21.5523 18 21V19C18 18.2044 17.6839 17.4413 17.1213 16.8787C16.5587 16.3161 15.7956 16 15 16H9C8.20435 16 7.44129 16.3161 6.87868 16.8787C6.31607 17.4413 6 18.2043 6 19V21C6 21.5523 5.55228 22 5 22C4.44772 22 4 21.5523 4 21V19C4 17.6739 4.52678 16.4021 5.46447 15.4645Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 4C10.3431 4 9 5.34315 9 7C9 8.65685 10.3431 10 12 10C13.6569 10 15 8.65685 15 7C15 5.34315 13.6569 4 12 4ZM7 7C7 4.23858 9.23858 2 12 2C14.7614 2 17 4.23858 17 7C17 9.76142 14.7614 12 12 12C9.23858 12 7 9.76142 7 7Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgUser;\n","// Auto-generated exports\nexport { default as ArrowLeft } from './ArrowLeft';\nexport { default as Cancel } from './Cancel';\nexport { default as Check } from './Check';\nexport { default as EyeHidden } from './EyeHidden';\nexport { default as EyeVisible } from './EyeVisible';\nexport { default as IconSlot } from './IconSlot';\nexport { default as Search } from './Search';\nexport { default as User } from './User';\n\n// Unified Icon component\nexport { default as Icon } from './Icon';\nexport type { IconName, IconProps } from './Icon';\n\n // Export types\nexport type {\n IconSize,\n IconSizeToken,\n ReactIconProps,\n} from '../shared/types';\n\nexport { ICON_SIZES, resolveSize } from '../shared/types';\n","import * as React from 'react';\nimport type { ReactIconProps } from '../shared/types';\n\n/**\n * Icon imports - using dynamic imports for tree-shaking\n * Auto-generated - do not edit manually\n */\n// Icon: arrow-left\n// Icon: cancel\n// Icon: check\n// Icon: eye-hidden\n// Icon: eye-visible\n// Icon: icon-slot\n// Icon: search\n// Icon: user\n\n/**\n * Available icon names\n */\nexport type IconName = 'arrow-left' | 'cancel' | 'check' | 'eye-hidden' | 'eye-visible' | 'icon-slot' | 'search' | 'user';\n\n/**\n * Props for the unified Icon component\n */\nexport interface IconProps extends Omit<ReactIconProps, 'size'> {\n name: IconName;\n size?: ReactIconProps['size'];\n color?: string;\n}\n\n/**\n * Loads an icon component dynamically\n * This pattern allows bundlers to tree-shake unused icons\n * \n * Icons use default exports (export default SvgIconName),\n * so we access .default from the dynamic import result\n */\nfunction loadIcon(name: IconName): Promise<React.ComponentType<any>> {\n switch (name) {\n case 'arrow-left':\n return import('./ArrowLeft').then(m => m.default);\n case 'cancel':\n return import('./Cancel').then(m => m.default);\n case 'check':\n return import('./Check').then(m => m.default);\n case 'eye-hidden':\n return import('./EyeHidden').then(m => m.default);\n case 'eye-visible':\n return import('./EyeVisible').then(m => m.default);\n case 'icon-slot':\n return import('./IconSlot').then(m => m.default);\n case 'search':\n return import('./Search').then(m => m.default);\n case 'user':\n return import('./User').then(m => m.default);\n default:\n return Promise.reject(new Error(`Icon \"${name}\" not found`));\n }\n}\n\n/**\n * Unified Icon component that renders icons by name\n * Uses dynamic imports for tree-shaking support\n */\nconst Icon = ({ name, size = 16, color, ...props }: IconProps) => {\n const [IconComponent, setIconComponent] = React.useState<React.ComponentType<any> | null>(null);\n const [loading, setLoading] = React.useState(true);\n const [error, setError] = React.useState<string | null>(null);\n\n React.useEffect(() => {\n setLoading(true);\n setError(null);\n \n loadIcon(name)\n .then((Component) => {\n setIconComponent(() => Component);\n setLoading(false);\n })\n .catch((err) => {\n console.warn(err.message);\n setError(err.message);\n setLoading(false);\n });\n }, [name]);\n\n if (loading) {\n return null; // Consider showing a placeholder\n }\n\n if (error || !IconComponent) {\n return null;\n }\n\n // Apply color via style prop if provided (SVGs use fill=\"currentColor\")\n const style = color \n ? { ...props.style, color } \n : props.style;\n\n return <IconComponent size={size} {...props} style={style} />;\n};\n\nexport default Icon;"],"mappings":"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","names":["React","React","React","React","React","React","React","React"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huspy-icons",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Cross-platform icon package for Huspy - React and React Native compatible",
5
5
  "author": "Huspy",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { Text, TextProps, Platform } from 'react-native';
2
+ import { Text, TextProps } from 'react-native';
3
3
  import { glyphMap, fontFamily, IconName } from './glyphMap';
4
4
 
5
5
  /**
@@ -10,12 +10,12 @@ export interface IconProps extends Omit<TextProps, 'children'> {
10
10
  * Name of the icon to display
11
11
  */
12
12
  name: IconName;
13
-
13
+
14
14
  /**
15
15
  * Size of the icon (default: 16)
16
16
  */
17
17
  size?: number;
18
-
18
+
19
19
  /**
20
20
  * Color of the icon (default: inherits from parent or 'black')
21
21
  */
@@ -24,9 +24,9 @@ export interface IconProps extends Omit<TextProps, 'children'> {
24
24
 
25
25
  /**
26
26
  * Icon component for React Native
27
- *
27
+ *
28
28
  * Renders icons using a custom font (HuspyIcons)
29
- *
29
+ *
30
30
  * @example
31
31
  * ```tsx
32
32
  * <Icon name="arrow-left" size={24} color="#000" />
@@ -34,17 +34,17 @@ export interface IconProps extends Omit<TextProps, 'children'> {
34
34
  */
35
35
  const Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) => {
36
36
  const codepoint = glyphMap[name];
37
-
37
+
38
38
  if (!codepoint) {
39
39
  if (__DEV__) {
40
40
  console.warn(`Icon "${name}" not found in HuspyIcons font`);
41
41
  }
42
42
  return null;
43
43
  }
44
-
44
+
45
45
  // Convert codepoint to character
46
46
  const glyph = String.fromCharCode(codepoint);
47
-
47
+
48
48
  return (
49
49
  <Text
50
50
  {...props}
@@ -56,6 +56,9 @@ const Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) =
56
56
  // Ensure icon doesn't inherit text styles
57
57
  fontWeight: 'normal',
58
58
  fontStyle: 'normal',
59
+ // Prevent text selection and ensure proper rendering
60
+ includeFontPadding: false, // Android: removes extra padding
61
+ textAlignVertical: 'center', // Android: centers the glyph vertically
59
62
  },
60
63
  style,
61
64
  ]}
@@ -71,4 +74,3 @@ const Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) =
71
74
 
72
75
  export default Icon;
73
76
  export type { IconName };
74
-