huspy-icons 0.1.9 → 0.1.11

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 (46) hide show
  1. package/dist/fonts/HuspyIcons.css +94 -19
  2. package/dist/fonts/HuspyIcons.eot +0 -0
  3. package/dist/fonts/HuspyIcons.json +40 -15
  4. package/dist/fonts/HuspyIcons.ts +91 -16
  5. package/dist/fonts/HuspyIcons.ttf +0 -0
  6. package/dist/fonts/HuspyIcons.woff +0 -0
  7. package/dist/fonts/HuspyIcons.woff2 +0 -0
  8. package/dist/native/index.d.ts +1 -1
  9. package/dist/native/index.js +40 -15
  10. package/dist/native/index.js.map +1 -1
  11. package/dist/react/index.d.mts +52 -2
  12. package/dist/react/index.d.ts +52 -2
  13. package/dist/react/index.js +1547 -221
  14. package/dist/react/index.js.map +1 -1
  15. package/dist/react/index.mjs +1537 -211
  16. package/dist/react/index.mjs.map +1 -1
  17. package/package.json +1 -1
  18. package/src/native/glyphMap.ts +41 -16
  19. package/src/react/AlertTriangle.tsx +38 -0
  20. package/src/react/ArrowDown.tsx +32 -0
  21. package/src/react/ArrowDownLeft.tsx +32 -0
  22. package/src/react/ArrowDownRight.tsx +32 -0
  23. package/src/react/ArrowRight.tsx +32 -0
  24. package/src/react/ArrowUp.tsx +32 -0
  25. package/src/react/ArrowUpLeft.tsx +32 -0
  26. package/src/react/ArrowUpRight.tsx +32 -0
  27. package/src/react/Bell.tsx +32 -0
  28. package/src/react/CancelCircleSolid.tsx +26 -0
  29. package/src/react/ChevronDown.tsx +24 -0
  30. package/src/react/ChevronLeft.tsx +24 -0
  31. package/src/react/ChevronRight.tsx +24 -0
  32. package/src/react/ChevronUp.tsx +24 -0
  33. package/src/react/ExploreFilled.tsx +36 -0
  34. package/src/react/ExploreLinear.tsx +32 -0
  35. package/src/react/FileKey.tsx +44 -0
  36. package/src/react/Icon.tsx +76 -1
  37. package/src/react/Keys01.tsx +38 -0
  38. package/src/react/Mail.tsx +32 -0
  39. package/src/react/Mortgage.tsx +62 -0
  40. package/src/react/Payments.tsx +24 -0
  41. package/src/react/Rent.tsx +38 -0
  42. package/src/react/SearchX.tsx +44 -0
  43. package/src/react/Share.tsx +38 -0
  44. package/src/react/Whatsapp.tsx +26 -0
  45. package/src/react/index.ts +25 -0
  46. package/src/react/index.tsx +25 -0
@@ -1,9 +1,9 @@
1
1
  @font-face {
2
2
  font-family: "HuspyIcons";
3
- src: url(".//HuspyIcons.ttf?2631092cde08ead95d812e7c7f45014c") format("truetype"),
4
- url(".//HuspyIcons.woff?2631092cde08ead95d812e7c7f45014c") format("woff"),
5
- url(".//HuspyIcons.woff2?2631092cde08ead95d812e7c7f45014c") format("woff2"),
6
- url(".//HuspyIcons.eot?2631092cde08ead95d812e7c7f45014c#iefix") format("embedded-opentype");
3
+ src: url(".//HuspyIcons.ttf?bf42fdfa63dcbcf71c8b235689b7a45c") format("truetype"),
4
+ url(".//HuspyIcons.woff?bf42fdfa63dcbcf71c8b235689b7a45c") format("woff"),
5
+ url(".//HuspyIcons.woff2?bf42fdfa63dcbcf71c8b235689b7a45c") format("woff2"),
6
+ url(".//HuspyIcons.eot?bf42fdfa63dcbcf71c8b235689b7a45c#iefix") format("embedded-opentype");
7
7
  }
8
8
 
9
9
  .icon:before {
@@ -17,48 +17,123 @@ url(".//HuspyIcons.eot?2631092cde08ead95d812e7c7f45014c#iefix") format("embedded
17
17
  -moz-osx-font-smoothing: grayscale;
18
18
  }
19
19
 
20
- .icon.huspy-icon-user:before {
20
+ .icon.huspy-icon-whatsapp:before {
21
21
  content: "\f101";
22
22
  }
23
- .icon.huspy-icon-search:before {
23
+ .icon.huspy-icon-user:before {
24
24
  content: "\f102";
25
25
  }
26
- .icon.huspy-icon-properties-linear:before {
26
+ .icon.huspy-icon-share:before {
27
27
  content: "\f103";
28
28
  }
29
- .icon.huspy-icon-properties-filled:before {
29
+ .icon.huspy-icon-search:before {
30
30
  content: "\f104";
31
31
  }
32
- .icon.huspy-icon-leads-linear:before {
32
+ .icon.huspy-icon-search-x:before {
33
33
  content: "\f105";
34
34
  }
35
- .icon.huspy-icon-leads-filled:before {
35
+ .icon.huspy-icon-rent:before {
36
36
  content: "\f106";
37
37
  }
38
- .icon.huspy-icon-icon-slot:before {
38
+ .icon.huspy-icon-properties-linear:before {
39
39
  content: "\f107";
40
40
  }
41
- .icon.huspy-icon-home-linear:before {
41
+ .icon.huspy-icon-properties-filled:before {
42
42
  content: "\f108";
43
43
  }
44
- .icon.huspy-icon-home-filled:before {
44
+ .icon.huspy-icon-payments:before {
45
45
  content: "\f109";
46
46
  }
47
- .icon.huspy-icon-eye-visible:before {
47
+ .icon.huspy-icon-mortgage:before {
48
48
  content: "\f10a";
49
49
  }
50
- .icon.huspy-icon-eye-hidden:before {
50
+ .icon.huspy-icon-mail:before {
51
51
  content: "\f10b";
52
52
  }
53
- .icon.huspy-icon-edit:before {
53
+ .icon.huspy-icon-leads-linear:before {
54
54
  content: "\f10c";
55
55
  }
56
- .icon.huspy-icon-check:before {
56
+ .icon.huspy-icon-leads-filled:before {
57
57
  content: "\f10d";
58
58
  }
59
- .icon.huspy-icon-cancel:before {
59
+ .icon.huspy-icon-keys_01:before {
60
60
  content: "\f10e";
61
61
  }
62
- .icon.huspy-icon-arrow-left:before {
62
+ .icon.huspy-icon-icon-slot:before {
63
63
  content: "\f10f";
64
64
  }
65
+ .icon.huspy-icon-home-linear:before {
66
+ content: "\f110";
67
+ }
68
+ .icon.huspy-icon-home-filled:before {
69
+ content: "\f111";
70
+ }
71
+ .icon.huspy-icon-file-key:before {
72
+ content: "\f112";
73
+ }
74
+ .icon.huspy-icon-eye-visible:before {
75
+ content: "\f113";
76
+ }
77
+ .icon.huspy-icon-eye-hidden:before {
78
+ content: "\f114";
79
+ }
80
+ .icon.huspy-icon-explore-linear:before {
81
+ content: "\f115";
82
+ }
83
+ .icon.huspy-icon-explore-filled:before {
84
+ content: "\f116";
85
+ }
86
+ .icon.huspy-icon-edit:before {
87
+ content: "\f117";
88
+ }
89
+ .icon.huspy-icon-chevron-up:before {
90
+ content: "\f118";
91
+ }
92
+ .icon.huspy-icon-chevron-right:before {
93
+ content: "\f119";
94
+ }
95
+ .icon.huspy-icon-chevron-left:before {
96
+ content: "\f11a";
97
+ }
98
+ .icon.huspy-icon-chevron-down:before {
99
+ content: "\f11b";
100
+ }
101
+ .icon.huspy-icon-check:before {
102
+ content: "\f11c";
103
+ }
104
+ .icon.huspy-icon-cancel:before {
105
+ content: "\f11d";
106
+ }
107
+ .icon.huspy-icon-cancel-circle-solid:before {
108
+ content: "\f11e";
109
+ }
110
+ .icon.huspy-icon-bell:before {
111
+ content: "\f11f";
112
+ }
113
+ .icon.huspy-icon-arrow-up:before {
114
+ content: "\f120";
115
+ }
116
+ .icon.huspy-icon-arrow-up-right:before {
117
+ content: "\f121";
118
+ }
119
+ .icon.huspy-icon-arrow-up-left:before {
120
+ content: "\f122";
121
+ }
122
+ .icon.huspy-icon-arrow-right:before {
123
+ content: "\f123";
124
+ }
125
+ .icon.huspy-icon-arrow-left:before {
126
+ content: "\f124";
127
+ }
128
+ .icon.huspy-icon-arrow-down:before {
129
+ content: "\f125";
130
+ }
131
+ .icon.huspy-icon-arrow-down-right:before {
132
+ content: "\f126";
133
+ }
134
+ .icon.huspy-icon-arrow-down-left:before {
135
+ content: "\f127";
136
+ }
137
+ .icon.huspy-icon-alert-triangle:before {
138
+ content: "\f128";
139
+ }
Binary file
@@ -1,17 +1,42 @@
1
1
  {
2
- "user": 61697,
3
- "search": 61698,
4
- "properties-linear": 61699,
5
- "properties-filled": 61700,
6
- "leads-linear": 61701,
7
- "leads-filled": 61702,
8
- "icon-slot": 61703,
9
- "home-linear": 61704,
10
- "home-filled": 61705,
11
- "eye-visible": 61706,
12
- "eye-hidden": 61707,
13
- "edit": 61708,
14
- "check": 61709,
15
- "cancel": 61710,
16
- "arrow-left": 61711
2
+ "whatsapp": 61697,
3
+ "user": 61698,
4
+ "share": 61699,
5
+ "search": 61700,
6
+ "search-x": 61701,
7
+ "rent": 61702,
8
+ "properties-linear": 61703,
9
+ "properties-filled": 61704,
10
+ "payments": 61705,
11
+ "mortgage": 61706,
12
+ "mail": 61707,
13
+ "leads-linear": 61708,
14
+ "leads-filled": 61709,
15
+ "keys_01": 61710,
16
+ "icon-slot": 61711,
17
+ "home-linear": 61712,
18
+ "home-filled": 61713,
19
+ "file-key": 61714,
20
+ "eye-visible": 61715,
21
+ "eye-hidden": 61716,
22
+ "explore-linear": 61717,
23
+ "explore-filled": 61718,
24
+ "edit": 61719,
25
+ "chevron-up": 61720,
26
+ "chevron-right": 61721,
27
+ "chevron-left": 61722,
28
+ "chevron-down": 61723,
29
+ "check": 61724,
30
+ "cancel": 61725,
31
+ "cancel-circle-solid": 61726,
32
+ "bell": 61727,
33
+ "arrow-up": 61728,
34
+ "arrow-up-right": 61729,
35
+ "arrow-up-left": 61730,
36
+ "arrow-right": 61731,
37
+ "arrow-left": 61732,
38
+ "arrow-down": 61733,
39
+ "arrow-down-right": 61734,
40
+ "arrow-down-left": 61735,
41
+ "alert-triangle": 61736
17
42
  }
@@ -1,52 +1,127 @@
1
1
  export type HuspyIconsId =
2
+ | "whatsapp"
2
3
  | "user"
4
+ | "share"
3
5
  | "search"
6
+ | "search-x"
7
+ | "rent"
4
8
  | "properties-linear"
5
9
  | "properties-filled"
10
+ | "payments"
11
+ | "mortgage"
12
+ | "mail"
6
13
  | "leads-linear"
7
14
  | "leads-filled"
15
+ | "keys_01"
8
16
  | "icon-slot"
9
17
  | "home-linear"
10
18
  | "home-filled"
19
+ | "file-key"
11
20
  | "eye-visible"
12
21
  | "eye-hidden"
22
+ | "explore-linear"
23
+ | "explore-filled"
13
24
  | "edit"
25
+ | "chevron-up"
26
+ | "chevron-right"
27
+ | "chevron-left"
28
+ | "chevron-down"
14
29
  | "check"
15
30
  | "cancel"
16
- | "arrow-left";
31
+ | "cancel-circle-solid"
32
+ | "bell"
33
+ | "arrow-up"
34
+ | "arrow-up-right"
35
+ | "arrow-up-left"
36
+ | "arrow-right"
37
+ | "arrow-left"
38
+ | "arrow-down"
39
+ | "arrow-down-right"
40
+ | "arrow-down-left"
41
+ | "alert-triangle";
17
42
 
18
43
  export enum HuspyIcons {
44
+ Whatsapp = "whatsapp",
19
45
  User = "user",
46
+ Share = "share",
20
47
  Search = "search",
48
+ SearchX = "search-x",
49
+ Rent = "rent",
21
50
  PropertiesLinear = "properties-linear",
22
51
  PropertiesFilled = "properties-filled",
52
+ Payments = "payments",
53
+ Mortgage = "mortgage",
54
+ Mail = "mail",
23
55
  LeadsLinear = "leads-linear",
24
56
  LeadsFilled = "leads-filled",
57
+ Keys01 = "keys_01",
25
58
  IconSlot = "icon-slot",
26
59
  HomeLinear = "home-linear",
27
60
  HomeFilled = "home-filled",
61
+ FileKey = "file-key",
28
62
  EyeVisible = "eye-visible",
29
63
  EyeHidden = "eye-hidden",
64
+ ExploreLinear = "explore-linear",
65
+ ExploreFilled = "explore-filled",
30
66
  Edit = "edit",
67
+ ChevronUp = "chevron-up",
68
+ ChevronRight = "chevron-right",
69
+ ChevronLeft = "chevron-left",
70
+ ChevronDown = "chevron-down",
31
71
  Check = "check",
32
72
  Cancel = "cancel",
73
+ CancelCircleSolid = "cancel-circle-solid",
74
+ Bell = "bell",
75
+ ArrowUp = "arrow-up",
76
+ ArrowUpRight = "arrow-up-right",
77
+ ArrowUpLeft = "arrow-up-left",
78
+ ArrowRight = "arrow-right",
33
79
  ArrowLeft = "arrow-left",
80
+ ArrowDown = "arrow-down",
81
+ ArrowDownRight = "arrow-down-right",
82
+ ArrowDownLeft = "arrow-down-left",
83
+ AlertTriangle = "alert-triangle",
34
84
  }
35
85
 
36
86
  export const HUSPY_ICONS_CODEPOINTS: { [key in HuspyIcons]: string } = {
37
- [HuspyIcons.User]: "61697",
38
- [HuspyIcons.Search]: "61698",
39
- [HuspyIcons.PropertiesLinear]: "61699",
40
- [HuspyIcons.PropertiesFilled]: "61700",
41
- [HuspyIcons.LeadsLinear]: "61701",
42
- [HuspyIcons.LeadsFilled]: "61702",
43
- [HuspyIcons.IconSlot]: "61703",
44
- [HuspyIcons.HomeLinear]: "61704",
45
- [HuspyIcons.HomeFilled]: "61705",
46
- [HuspyIcons.EyeVisible]: "61706",
47
- [HuspyIcons.EyeHidden]: "61707",
48
- [HuspyIcons.Edit]: "61708",
49
- [HuspyIcons.Check]: "61709",
50
- [HuspyIcons.Cancel]: "61710",
51
- [HuspyIcons.ArrowLeft]: "61711",
87
+ [HuspyIcons.Whatsapp]: "61697",
88
+ [HuspyIcons.User]: "61698",
89
+ [HuspyIcons.Share]: "61699",
90
+ [HuspyIcons.Search]: "61700",
91
+ [HuspyIcons.SearchX]: "61701",
92
+ [HuspyIcons.Rent]: "61702",
93
+ [HuspyIcons.PropertiesLinear]: "61703",
94
+ [HuspyIcons.PropertiesFilled]: "61704",
95
+ [HuspyIcons.Payments]: "61705",
96
+ [HuspyIcons.Mortgage]: "61706",
97
+ [HuspyIcons.Mail]: "61707",
98
+ [HuspyIcons.LeadsLinear]: "61708",
99
+ [HuspyIcons.LeadsFilled]: "61709",
100
+ [HuspyIcons.Keys01]: "61710",
101
+ [HuspyIcons.IconSlot]: "61711",
102
+ [HuspyIcons.HomeLinear]: "61712",
103
+ [HuspyIcons.HomeFilled]: "61713",
104
+ [HuspyIcons.FileKey]: "61714",
105
+ [HuspyIcons.EyeVisible]: "61715",
106
+ [HuspyIcons.EyeHidden]: "61716",
107
+ [HuspyIcons.ExploreLinear]: "61717",
108
+ [HuspyIcons.ExploreFilled]: "61718",
109
+ [HuspyIcons.Edit]: "61719",
110
+ [HuspyIcons.ChevronUp]: "61720",
111
+ [HuspyIcons.ChevronRight]: "61721",
112
+ [HuspyIcons.ChevronLeft]: "61722",
113
+ [HuspyIcons.ChevronDown]: "61723",
114
+ [HuspyIcons.Check]: "61724",
115
+ [HuspyIcons.Cancel]: "61725",
116
+ [HuspyIcons.CancelCircleSolid]: "61726",
117
+ [HuspyIcons.Bell]: "61727",
118
+ [HuspyIcons.ArrowUp]: "61728",
119
+ [HuspyIcons.ArrowUpRight]: "61729",
120
+ [HuspyIcons.ArrowUpLeft]: "61730",
121
+ [HuspyIcons.ArrowRight]: "61731",
122
+ [HuspyIcons.ArrowLeft]: "61732",
123
+ [HuspyIcons.ArrowDown]: "61733",
124
+ [HuspyIcons.ArrowDownRight]: "61734",
125
+ [HuspyIcons.ArrowDownLeft]: "61735",
126
+ [HuspyIcons.AlertTriangle]: "61736",
52
127
  };
Binary file
Binary file
Binary file
@@ -4,7 +4,7 @@ import { TextProps } from 'react-native';
4
4
  /**
5
5
  * Available icon names in the HuspyIcons font
6
6
  */
7
- type IconName = 'user' | 'search' | 'properties-linear' | 'properties-filled' | 'leads-linear' | 'leads-filled' | 'icon-slot' | 'home-linear' | 'home-filled' | 'eye-visible' | 'eye-hidden' | 'edit' | 'check' | 'cancel' | 'arrow-left';
7
+ type IconName = 'whatsapp' | 'user' | 'share' | 'search' | 'search-x' | 'rent' | 'properties-linear' | 'properties-filled' | 'payments' | 'mortgage' | 'mail' | 'leads-linear' | 'leads-filled' | 'keys_01' | 'icon-slot' | 'home-linear' | 'home-filled' | 'file-key' | 'eye-visible' | 'eye-hidden' | 'explore-linear' | 'explore-filled' | 'edit' | 'chevron-up' | 'chevron-right' | 'chevron-left' | 'chevron-down' | 'check' | 'cancel' | 'cancel-circle-solid' | 'bell' | 'arrow-up' | 'arrow-up-right' | 'arrow-up-left' | 'arrow-right' | 'arrow-left' | 'arrow-down' | 'arrow-down-right' | 'arrow-down-left' | 'alert-triangle';
8
8
  /**
9
9
  * Mapping of icon names to unicode codepoints
10
10
  * Used by the Icon component to render the correct glyph
@@ -42,21 +42,46 @@ var import_react_native = require("react-native");
42
42
 
43
43
  // src/native/glyphMap.ts
44
44
  var glyphMap = {
45
- "user": 61697,
46
- "search": 61698,
47
- "properties-linear": 61699,
48
- "properties-filled": 61700,
49
- "leads-linear": 61701,
50
- "leads-filled": 61702,
51
- "icon-slot": 61703,
52
- "home-linear": 61704,
53
- "home-filled": 61705,
54
- "eye-visible": 61706,
55
- "eye-hidden": 61707,
56
- "edit": 61708,
57
- "check": 61709,
58
- "cancel": 61710,
59
- "arrow-left": 61711
45
+ "whatsapp": 61697,
46
+ "user": 61698,
47
+ "share": 61699,
48
+ "search": 61700,
49
+ "search-x": 61701,
50
+ "rent": 61702,
51
+ "properties-linear": 61703,
52
+ "properties-filled": 61704,
53
+ "payments": 61705,
54
+ "mortgage": 61706,
55
+ "mail": 61707,
56
+ "leads-linear": 61708,
57
+ "leads-filled": 61709,
58
+ "keys_01": 61710,
59
+ "icon-slot": 61711,
60
+ "home-linear": 61712,
61
+ "home-filled": 61713,
62
+ "file-key": 61714,
63
+ "eye-visible": 61715,
64
+ "eye-hidden": 61716,
65
+ "explore-linear": 61717,
66
+ "explore-filled": 61718,
67
+ "edit": 61719,
68
+ "chevron-up": 61720,
69
+ "chevron-right": 61721,
70
+ "chevron-left": 61722,
71
+ "chevron-down": 61723,
72
+ "check": 61724,
73
+ "cancel": 61725,
74
+ "cancel-circle-solid": 61726,
75
+ "bell": 61727,
76
+ "arrow-up": 61728,
77
+ "arrow-up-right": 61729,
78
+ "arrow-up-left": 61730,
79
+ "arrow-right": 61731,
80
+ "arrow-left": 61732,
81
+ "arrow-down": 61733,
82
+ "arrow-down-right": 61734,
83
+ "arrow-down-left": 61735,
84
+ "alert-triangle": 61736
60
85
  };
61
86
  var fontFamily = "HuspyIcons";
62
87
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/native/index.ts","../../src/native/Icon.tsx","../../src/native/glyphMap.ts"],"sourcesContent":["/**\n * Huspy Icons - React Native (Font-based)\n * \n * This package provides icon components for React Native using a custom font.\n * \n * @example\n * ```tsx\n * import { Icon } from 'huspy-icons/native';\n * \n * function MyComponent() {\n * return <Icon name=\"arrow-left\" size={24} color=\"#000\" />;\n * }\n * ```\n */\n\nexport { default as Icon } from './Icon';\nexport type { IconProps, IconName } from './Icon';\nexport { glyphMap, fontFamily } from './glyphMap';\n\n","import * as React from 'react';\nimport { Text, TextProps } from 'react-native';\nimport { glyphMap, fontFamily, IconName } from './glyphMap';\n\n/**\n * Props for the Icon component (React Native)\n */\nexport interface IconProps extends Omit<TextProps, 'children'> {\n /**\n * Name of the icon to display\n */\n name: IconName;\n\n /**\n * Size of the icon (default: 16)\n */\n size?: number;\n\n /**\n * Color of the icon (default: inherits from parent or 'black')\n */\n color?: string;\n}\n\n/**\n * Icon component for React Native\n *\n * Renders icons using a custom font (HuspyIcons)\n *\n * @example\n * ```tsx\n * <Icon name=\"arrow-left\" size={24} color=\"#000\" />\n * ```\n */\nconst Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) => {\n const codepoint = glyphMap[name];\n\n if (!codepoint) {\n if (__DEV__) {\n console.warn(`Icon \"${name}\" not found in HuspyIcons font`);\n }\n return null;\n }\n\n // Convert codepoint to character\n const glyph = String.fromCharCode(codepoint);\n\n return (\n <Text\n {...props}\n style={[\n {\n fontFamily: fontFamily,\n fontSize: size,\n color: color,\n // Ensure icon doesn't inherit text styles\n fontWeight: 'normal',\n fontStyle: 'normal',\n // Prevent text selection and ensure proper rendering\n includeFontPadding: false, // Android: removes extra padding\n textAlignVertical: 'center', // Android: centers the glyph vertically\n },\n style,\n ]}\n // Accessibility\n accessible\n accessibilityLabel={props.accessibilityLabel || name}\n accessibilityRole=\"image\"\n >\n {glyph}\n </Text>\n );\n};\n\nexport default Icon;\nexport type { IconName };\n","// Auto-generated by generate-font.js - do not edit manually\n// Source: icons-src/*.svg → dist/fonts/HuspyIcons.*\n\n/**\n * Available icon names in the HuspyIcons font\n */\nexport type IconName = 'user' | 'search' | 'properties-linear' | 'properties-filled' | 'leads-linear' | 'leads-filled' | 'icon-slot' | 'home-linear' | 'home-filled' | 'eye-visible' | 'eye-hidden' | 'edit' | 'check' | 'cancel' | 'arrow-left';\n\n/**\n * Mapping of icon names to unicode codepoints\n * Used by the Icon component to render the correct glyph\n */\nexport const glyphMap: Record<IconName, number> = {\n \"user\": 61697,\n \"search\": 61698,\n \"properties-linear\": 61699,\n \"properties-filled\": 61700,\n \"leads-linear\": 61701,\n \"leads-filled\": 61702,\n \"icon-slot\": 61703,\n \"home-linear\": 61704,\n \"home-filled\": 61705,\n \"eye-visible\": 61706,\n \"eye-hidden\": 61707,\n \"edit\": 61708,\n \"check\": 61709,\n \"cancel\": 61710,\n \"arrow-left\": 61711\n};\n\n/**\n * Font family name for React Native\n */\nexport const fontFamily = 'HuspyIcons';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,0BAAgC;;;ACWzB,IAAM,WAAqC;AAAA,EAChD,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAChB;AAKO,IAAM,aAAa;;;ADC1B,IAAM,OAAO,CAAC,EAAE,MAAM,OAAO,IAAI,QAAQ,QAAQ,OAAO,GAAG,MAAM,MAAiB;AAChF,QAAM,YAAY,SAAS,IAAI;AAE/B,MAAI,CAAC,WAAW;AACd,QAAI,SAAS;AACX,cAAQ,KAAK,SAAS,IAAI,gCAAgC;AAAA,IAC5D;AACA,WAAO;AAAA,EACT;AAGA,QAAM,QAAQ,OAAO,aAAa,SAAS;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,QACL;AAAA,UACE;AAAA,UACA,UAAU;AAAA,UACV;AAAA;AAAA,UAEA,YAAY;AAAA,UACZ,WAAW;AAAA;AAAA,UAEX,oBAAoB;AAAA;AAAA,UACpB,mBAAmB;AAAA;AAAA,QACrB;AAAA,QACA;AAAA,MACF;AAAA,MAEA,YAAU;AAAA,MACV,oBAAoB,MAAM,sBAAsB;AAAA,MAChD,mBAAkB;AAAA;AAAA,IAEjB;AAAA,EACH;AAEJ;AAEA,IAAO,eAAQ;","names":[]}
1
+ {"version":3,"sources":["../../src/native/index.ts","../../src/native/Icon.tsx","../../src/native/glyphMap.ts"],"sourcesContent":["/**\n * Huspy Icons - React Native (Font-based)\n * \n * This package provides icon components for React Native using a custom font.\n * \n * @example\n * ```tsx\n * import { Icon } from 'huspy-icons/native';\n * \n * function MyComponent() {\n * return <Icon name=\"arrow-left\" size={24} color=\"#000\" />;\n * }\n * ```\n */\n\nexport { default as Icon } from './Icon';\nexport type { IconProps, IconName } from './Icon';\nexport { glyphMap, fontFamily } from './glyphMap';\n\n","import * as React from 'react';\nimport { Text, TextProps } from 'react-native';\nimport { glyphMap, fontFamily, IconName } from './glyphMap';\n\n/**\n * Props for the Icon component (React Native)\n */\nexport interface IconProps extends Omit<TextProps, 'children'> {\n /**\n * Name of the icon to display\n */\n name: IconName;\n\n /**\n * Size of the icon (default: 16)\n */\n size?: number;\n\n /**\n * Color of the icon (default: inherits from parent or 'black')\n */\n color?: string;\n}\n\n/**\n * Icon component for React Native\n *\n * Renders icons using a custom font (HuspyIcons)\n *\n * @example\n * ```tsx\n * <Icon name=\"arrow-left\" size={24} color=\"#000\" />\n * ```\n */\nconst Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) => {\n const codepoint = glyphMap[name];\n\n if (!codepoint) {\n if (__DEV__) {\n console.warn(`Icon \"${name}\" not found in HuspyIcons font`);\n }\n return null;\n }\n\n // Convert codepoint to character\n const glyph = String.fromCharCode(codepoint);\n\n return (\n <Text\n {...props}\n style={[\n {\n fontFamily: fontFamily,\n fontSize: size,\n color: color,\n // Ensure icon doesn't inherit text styles\n fontWeight: 'normal',\n fontStyle: 'normal',\n // Prevent text selection and ensure proper rendering\n includeFontPadding: false, // Android: removes extra padding\n textAlignVertical: 'center', // Android: centers the glyph vertically\n },\n style,\n ]}\n // Accessibility\n accessible\n accessibilityLabel={props.accessibilityLabel || name}\n accessibilityRole=\"image\"\n >\n {glyph}\n </Text>\n );\n};\n\nexport default Icon;\nexport type { IconName };\n","// Auto-generated by generate-font.js - do not edit manually\n// Source: icons-src/*.svg → dist/fonts/HuspyIcons.*\n\n/**\n * Available icon names in the HuspyIcons font\n */\nexport type IconName = 'whatsapp' | 'user' | 'share' | 'search' | 'search-x' | 'rent' | 'properties-linear' | 'properties-filled' | 'payments' | 'mortgage' | 'mail' | 'leads-linear' | 'leads-filled' | 'keys_01' | 'icon-slot' | 'home-linear' | 'home-filled' | 'file-key' | 'eye-visible' | 'eye-hidden' | 'explore-linear' | 'explore-filled' | 'edit' | 'chevron-up' | 'chevron-right' | 'chevron-left' | 'chevron-down' | 'check' | 'cancel' | 'cancel-circle-solid' | 'bell' | 'arrow-up' | 'arrow-up-right' | 'arrow-up-left' | 'arrow-right' | 'arrow-left' | 'arrow-down' | 'arrow-down-right' | 'arrow-down-left' | 'alert-triangle';\n\n/**\n * Mapping of icon names to unicode codepoints\n * Used by the Icon component to render the correct glyph\n */\nexport const glyphMap: Record<IconName, number> = {\n \"whatsapp\": 61697,\n \"user\": 61698,\n \"share\": 61699,\n \"search\": 61700,\n \"search-x\": 61701,\n \"rent\": 61702,\n \"properties-linear\": 61703,\n \"properties-filled\": 61704,\n \"payments\": 61705,\n \"mortgage\": 61706,\n \"mail\": 61707,\n \"leads-linear\": 61708,\n \"leads-filled\": 61709,\n \"keys_01\": 61710,\n \"icon-slot\": 61711,\n \"home-linear\": 61712,\n \"home-filled\": 61713,\n \"file-key\": 61714,\n \"eye-visible\": 61715,\n \"eye-hidden\": 61716,\n \"explore-linear\": 61717,\n \"explore-filled\": 61718,\n \"edit\": 61719,\n \"chevron-up\": 61720,\n \"chevron-right\": 61721,\n \"chevron-left\": 61722,\n \"chevron-down\": 61723,\n \"check\": 61724,\n \"cancel\": 61725,\n \"cancel-circle-solid\": 61726,\n \"bell\": 61727,\n \"arrow-up\": 61728,\n \"arrow-up-right\": 61729,\n \"arrow-up-left\": 61730,\n \"arrow-right\": 61731,\n \"arrow-left\": 61732,\n \"arrow-down\": 61733,\n \"arrow-down-right\": 61734,\n \"arrow-down-left\": 61735,\n \"alert-triangle\": 61736\n};\n\n/**\n * Font family name for React Native\n */\nexport const fontFamily = 'HuspyIcons';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,0BAAgC;;;ACWzB,IAAM,WAAqC;AAAA,EAChD,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,UAAU;AAAA,EACV,uBAAuB;AAAA,EACvB,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,kBAAkB;AACpB;AAKO,IAAM,aAAa;;;ADxB1B,IAAM,OAAO,CAAC,EAAE,MAAM,OAAO,IAAI,QAAQ,QAAQ,OAAO,GAAG,MAAM,MAAiB;AAChF,QAAM,YAAY,SAAS,IAAI;AAE/B,MAAI,CAAC,WAAW;AACd,QAAI,SAAS;AACX,cAAQ,KAAK,SAAS,IAAI,gCAAgC;AAAA,IAC5D;AACA,WAAO;AAAA,EACT;AAGA,QAAM,QAAQ,OAAO,aAAa,SAAS;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,QACL;AAAA,UACE;AAAA,UACA,UAAU;AAAA,UACV;AAAA;AAAA,UAEA,YAAY;AAAA,UACZ,WAAW;AAAA;AAAA,UAEX,oBAAoB;AAAA;AAAA,UACpB,mBAAmB;AAAA;AAAA,QACrB;AAAA,QACA;AAAA,MACF;AAAA,MAEA,YAAU;AAAA,MACV,oBAAoB,MAAM,sBAAsB;AAAA,MAChD,mBAAkB;AAAA;AAAA,IAEjB;AAAA,EACH;AAEJ;AAEA,IAAO,eAAQ;","names":[]}
@@ -28,36 +28,86 @@ interface ReactIconProps extends React.SVGProps<SVGSVGElement> {
28
28
  */
29
29
  declare function resolveSize(size?: IconSize): number;
30
30
 
31
+ declare const SvgAlertTriangle: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
32
+
33
+ declare const SvgArrowDown: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
34
+
35
+ declare const SvgArrowDownLeft: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
36
+
37
+ declare const SvgArrowDownRight: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
38
+
31
39
  declare const SvgArrowLeft: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
32
40
 
41
+ declare const SvgArrowRight: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
42
+
43
+ declare const SvgArrowUp: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
44
+
45
+ declare const SvgArrowUpLeft: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
46
+
47
+ declare const SvgArrowUpRight: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
48
+
49
+ declare const SvgBell: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
50
+
33
51
  declare const SvgCancel: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
34
52
 
53
+ declare const SvgCancelCircleSolid: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
54
+
35
55
  declare const SvgCheck: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
36
56
 
57
+ declare const SvgChevronDown: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
58
+
59
+ declare const SvgChevronLeft: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
60
+
61
+ declare const SvgChevronRight: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
62
+
63
+ declare const SvgChevronUp: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
64
+
37
65
  declare const SvgEdit: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
38
66
 
67
+ declare const SvgExploreFilled: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
68
+
69
+ declare const SvgExploreLinear: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
70
+
39
71
  declare const SvgEyeHidden: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
40
72
 
41
73
  declare const SvgEyeVisible: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
42
74
 
75
+ declare const SvgFileKey: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
76
+
43
77
  declare const SvgHomeFilled: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
44
78
 
45
79
  declare const SvgHomeLinear: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
46
80
 
47
81
  declare const SvgIconSlot: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
48
82
 
83
+ declare const SvgKeys01: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
84
+
49
85
  declare const SvgLeadsFilled: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
50
86
 
51
87
  declare const SvgLeadsLinear: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
52
88
 
89
+ declare const SvgMail: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
90
+
91
+ declare const SvgMortgage: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
92
+
93
+ declare const SvgPayments: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
94
+
53
95
  declare const SvgPropertiesFilled: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
54
96
 
55
97
  declare const SvgPropertiesLinear: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
56
98
 
99
+ declare const SvgRent: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
100
+
57
101
  declare const SvgSearch: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
58
102
 
103
+ declare const SvgSearchX: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
104
+
105
+ declare const SvgShare: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
106
+
59
107
  declare const SvgUser: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
60
108
 
109
+ declare const SvgWhatsapp: ({ size, ...props }: ReactIconProps) => React$1.JSX.Element;
110
+
61
111
  /**
62
112
  * Icon imports - using dynamic imports for tree-shaking
63
113
  * Auto-generated - do not edit manually
@@ -65,7 +115,7 @@ declare const SvgUser: ({ size, ...props }: ReactIconProps) => React$1.JSX.Eleme
65
115
  /**
66
116
  * Available icon names
67
117
  */
68
- type IconName = 'arrow-left' | 'cancel' | 'check' | 'edit' | 'eye-hidden' | 'eye-visible' | 'home-filled' | 'home-linear' | 'icon-slot' | 'leads-filled' | 'leads-linear' | 'properties-filled' | 'properties-linear' | 'search' | 'user';
118
+ type IconName = 'alert-triangle' | 'arrow-down' | 'arrow-down-left' | 'arrow-down-right' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-left' | 'arrow-up-right' | 'bell' | 'cancel' | 'cancel-circle-solid' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'edit' | 'explore-filled' | 'explore-linear' | 'eye-hidden' | 'eye-visible' | 'file-key' | 'home-filled' | 'home-linear' | 'icon-slot' | 'keys01' | 'leads-filled' | 'leads-linear' | 'mail' | 'mortgage' | 'payments' | 'properties-filled' | 'properties-linear' | 'rent' | 'search' | 'search-x' | 'share' | 'user' | 'whatsapp';
69
119
  /**
70
120
  * Props for the unified Icon component
71
121
  */
@@ -80,4 +130,4 @@ interface IconProps extends Omit<ReactIconProps, 'size'> {
80
130
  */
81
131
  declare const Icon: ({ name, size, color, ...props }: IconProps) => React$1.JSX.Element | null;
82
132
 
83
- export { SvgArrowLeft as ArrowLeft, SvgCancel as Cancel, SvgCheck as Check, SvgEdit as Edit, SvgEyeHidden as EyeHidden, SvgEyeVisible as EyeVisible, SvgHomeFilled as HomeFilled, SvgHomeLinear as HomeLinear, ICON_SIZES, Icon, type IconName, type IconProps, type IconSize, type IconSizeToken, SvgIconSlot as IconSlot, SvgLeadsFilled as LeadsFilled, SvgLeadsLinear as LeadsLinear, SvgPropertiesFilled as PropertiesFilled, SvgPropertiesLinear as PropertiesLinear, type ReactIconProps, SvgSearch as Search, SvgUser as User, resolveSize };
133
+ export { SvgAlertTriangle as AlertTriangle, SvgArrowDown as ArrowDown, SvgArrowDownLeft as ArrowDownLeft, SvgArrowDownRight as ArrowDownRight, SvgArrowLeft as ArrowLeft, SvgArrowRight as ArrowRight, SvgArrowUp as ArrowUp, SvgArrowUpLeft as ArrowUpLeft, SvgArrowUpRight as ArrowUpRight, SvgBell as Bell, SvgCancel as Cancel, SvgCancelCircleSolid as CancelCircleSolid, SvgCheck as Check, SvgChevronDown as ChevronDown, SvgChevronLeft as ChevronLeft, SvgChevronRight as ChevronRight, SvgChevronUp as ChevronUp, SvgEdit as Edit, SvgExploreFilled as ExploreFilled, SvgExploreLinear as ExploreLinear, SvgEyeHidden as EyeHidden, SvgEyeVisible as EyeVisible, SvgFileKey as FileKey, SvgHomeFilled as HomeFilled, SvgHomeLinear as HomeLinear, ICON_SIZES, Icon, type IconName, type IconProps, type IconSize, type IconSizeToken, SvgIconSlot as IconSlot, SvgKeys01 as Keys01, SvgLeadsFilled as LeadsFilled, SvgLeadsLinear as LeadsLinear, SvgMail as Mail, SvgMortgage as Mortgage, SvgPayments as Payments, SvgPropertiesFilled as PropertiesFilled, SvgPropertiesLinear as PropertiesLinear, type ReactIconProps, SvgRent as Rent, SvgSearch as Search, SvgSearchX as SearchX, SvgShare as Share, SvgUser as User, SvgWhatsapp as Whatsapp, resolveSize };