@ecohouse/ui 0.1.16 → 0.1.17

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 (39) hide show
  1. package/dist/index.cjs +401 -81
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +57 -5
  4. package/dist/index.d.ts +57 -5
  5. package/dist/index.js +346 -45
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/icons/CottageCard/CottageCardIcons.tsx +106 -0
  9. package/src/icons/CottageCard/CottageCardIcons.web.tsx +105 -0
  10. package/src/icons/CottageCard/cottageCardPaths.ts +23 -0
  11. package/src/icons/CottageCard/index.ts +9 -0
  12. package/src/icons/CottageDetail/CottageDetailIcons.tsx +106 -0
  13. package/src/icons/CottageDetail/CottageDetailIcons.web.tsx +105 -0
  14. package/src/icons/CottageDetail/cottageDetailPaths.ts +26 -0
  15. package/src/icons/CottageDetail/index.ts +11 -0
  16. package/src/icons/Filters/FiltersIcon.tsx +21 -0
  17. package/src/icons/Filters/FiltersIcon.web.tsx +27 -0
  18. package/src/icons/Filters/filtersPath.ts +2 -0
  19. package/src/icons/Filters/index.ts +1 -0
  20. package/src/icons/ListView/ListViewIcon.tsx +21 -0
  21. package/src/icons/ListView/ListViewIcon.web.tsx +27 -0
  22. package/src/icons/ListView/index.ts +1 -0
  23. package/src/icons/ListView/listViewPath.ts +3 -0
  24. package/src/icons/LocationPin/LocationPinIcon.tsx +21 -0
  25. package/src/icons/LocationPin/LocationPinIcon.web.tsx +27 -0
  26. package/src/icons/LocationPin/index.ts +1 -0
  27. package/src/icons/LocationPin/locationPinPath.ts +3 -0
  28. package/src/icons/MapView/MapViewIcon.tsx +21 -0
  29. package/src/icons/MapView/MapViewIcon.web.tsx +27 -0
  30. package/src/icons/MapView/index.ts +1 -0
  31. package/src/icons/MapView/mapViewPath.ts +3 -0
  32. package/src/icons/Sort/SortIcon.tsx +21 -0
  33. package/src/icons/Sort/SortIcon.web.tsx +27 -0
  34. package/src/icons/Sort/index.ts +1 -0
  35. package/src/icons/Sort/sortPath.ts +2 -0
  36. package/src/icons/index.ts +23 -0
  37. package/src/icons/registry.ts +85 -3
  38. package/src/icons/types.ts +2 -0
  39. package/src/index.ts +19 -0
@@ -0,0 +1,21 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import { LOCATION_PIN_PATH } from "./locationPinPath";
3
+ import { colors } from "../../theme";
4
+ import type { IconProps } from "../types";
5
+
6
+ export { LOCATION_PIN_PATH } from "./locationPinPath";
7
+
8
+ /** Native — react-native-svg (peer dependency). */
9
+ export function LocationPinIcon({ size = 20, color = colors.grey200, strokeWidth = 2 }: IconProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 20 20" fill="none">
12
+ <Path
13
+ d={LOCATION_PIN_PATH}
14
+ stroke={color}
15
+ strokeWidth={strokeWidth}
16
+ strokeLinecap="round"
17
+ strokeLinejoin="round"
18
+ />
19
+ </Svg>
20
+ );
21
+ }
@@ -0,0 +1,27 @@
1
+ import { LOCATION_PIN_PATH } from "./locationPinPath";
2
+ import { colors } from "../../theme";
3
+ import type { IconProps } from "../types";
4
+
5
+ /** Web / Storybook — plain SVG (no react-native-svg). */
6
+ export function LocationPinIcon({ size = 20, color = colors.grey200, strokeWidth = 2 }: IconProps) {
7
+ return (
8
+ <svg
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 20 20"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ aria-hidden
15
+ >
16
+ <path
17
+ d={LOCATION_PIN_PATH}
18
+ stroke={color}
19
+ strokeWidth={strokeWidth}
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ />
23
+ </svg>
24
+ );
25
+ }
26
+
27
+ export { LOCATION_PIN_PATH } from "./locationPinPath";
@@ -0,0 +1 @@
1
+ export { LocationPinIcon, LOCATION_PIN_PATH } from "./LocationPinIcon";
@@ -0,0 +1,3 @@
1
+ /** Location pin icon path — 20×20 viewBox. */
2
+ export const LOCATION_PIN_PATH =
3
+ "M4.16675 8.26904C4.16675 12.3122 7.70381 15.6558 9.26941 16.9377C9.49347 17.1211 9.60684 17.214 9.774 17.261C9.90417 17.2977 10.0957 17.2977 10.2259 17.261C10.3934 17.2139 10.506 17.122 10.7309 16.9378C12.2965 15.6559 15.8333 12.3126 15.8333 8.26941C15.8333 6.73932 15.2188 5.27171 14.1248 4.18977C13.0309 3.10783 11.5472 2.5 10.0001 2.5C8.45305 2.5 6.96925 3.10792 5.87529 4.18986C4.78133 5.2718 4.16675 6.73895 4.16675 8.26904ZM8.33341 7.5C8.33341 8.42047 9.07961 9.16667 10.0001 9.16667C10.9206 9.16667 11.6667 8.42047 11.6667 7.5C11.6667 6.57953 10.9206 5.83333 10.0001 5.83333C9.07961 5.83333 8.33341 6.57953 8.33341 7.5Z";
@@ -0,0 +1,21 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import { MAP_VIEW_PATH } from "./mapViewPath";
3
+ import { colors } from "../../theme";
4
+ import type { IconProps } from "../types";
5
+
6
+ export { MAP_VIEW_PATH } from "./mapViewPath";
7
+
8
+ /** Native — react-native-svg (peer dependency). */
9
+ export function MapViewIcon({ size = 20, color = colors.grey400, strokeWidth = 2 }: IconProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 20 20" fill="none">
12
+ <Path
13
+ d={MAP_VIEW_PATH}
14
+ stroke={color}
15
+ strokeWidth={strokeWidth}
16
+ strokeLinecap="round"
17
+ strokeLinejoin="round"
18
+ />
19
+ </Svg>
20
+ );
21
+ }
@@ -0,0 +1,27 @@
1
+ import { MAP_VIEW_PATH } from "./mapViewPath";
2
+ import { colors } from "../../theme";
3
+ import type { IconProps } from "../types";
4
+
5
+ /** Web / Storybook — plain SVG (no react-native-svg). */
6
+ export function MapViewIcon({ size = 20, color = colors.grey400, strokeWidth = 2 }: IconProps) {
7
+ return (
8
+ <svg
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 20 20"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ aria-hidden
15
+ >
16
+ <path
17
+ d={MAP_VIEW_PATH}
18
+ stroke={color}
19
+ strokeWidth={strokeWidth}
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ />
23
+ </svg>
24
+ );
25
+ }
26
+
27
+ export { MAP_VIEW_PATH } from "./mapViewPath";
@@ -0,0 +1 @@
1
+ export { MapViewIcon, MAP_VIEW_PATH } from "./MapViewIcon";
@@ -0,0 +1,3 @@
1
+ /** Folded map icon path — 20×20 viewBox. */
2
+ export const MAP_VIEW_PATH =
3
+ "M13.3332 4.99984L7.49984 1.6665L1.6665 4.99984V18.3332L7.49984 14.9998M13.3332 4.99984L18.3332 1.6665V14.9998L13.3332 18.3332L7.49984 14.9998M7.49984 14.9998V1.6665M13.3332 18.3332V4.99984";
@@ -0,0 +1,21 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import { SORT_PATH } from "./sortPath";
3
+ import { colors } from "../../theme";
4
+ import type { IconProps } from "../types";
5
+
6
+ export { SORT_PATH } from "./sortPath";
7
+
8
+ /** Native — react-native-svg (peer dependency). */
9
+ export function SortIcon({ size = 12, color = colors.grey150, strokeWidth = 1.5 }: IconProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 12 12" fill="none">
12
+ <Path
13
+ d={SORT_PATH}
14
+ stroke={color}
15
+ strokeWidth={strokeWidth}
16
+ strokeLinecap="round"
17
+ strokeLinejoin="round"
18
+ />
19
+ </Svg>
20
+ );
21
+ }
@@ -0,0 +1,27 @@
1
+ import { SORT_PATH } from "./sortPath";
2
+ import { colors } from "../../theme";
3
+ import type { IconProps } from "../types";
4
+
5
+ /** Web / Storybook — plain SVG (no react-native-svg). */
6
+ export function SortIcon({ size = 12, color = colors.grey150, strokeWidth = 1.5 }: IconProps) {
7
+ return (
8
+ <svg
9
+ width={size}
10
+ height={size}
11
+ viewBox="0 0 12 12"
12
+ fill="none"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ aria-hidden
15
+ >
16
+ <path
17
+ d={SORT_PATH}
18
+ stroke={color}
19
+ strokeWidth={strokeWidth}
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ />
23
+ </svg>
24
+ );
25
+ }
26
+
27
+ export { SORT_PATH } from "./sortPath";
@@ -0,0 +1 @@
1
+ export { SortIcon, SORT_PATH } from "./SortIcon";
@@ -0,0 +1,2 @@
1
+ /** Bidirectional sort icon path — 12×12 viewBox. */
2
+ export const SORT_PATH = "M3.5 2V10M5.5 8L3.5 10L1.5 8M8.5 10V2M10.5 4L8.5 2L6.5 4";
@@ -17,7 +17,26 @@ export { CheckBadgeIcon } from "./CheckBadge";
17
17
  export { ChevronDownIcon } from "./ChevronDown";
18
18
  export { ChevronLeftIcon } from "./ChevronLeft";
19
19
  export { ClockIcon } from "./Clock";
20
+ export {
21
+ BathroomsIcon,
22
+ BedroomsIcon,
23
+ CardLocationIcon,
24
+ GuestsIcon,
25
+ RatingStarIcon,
26
+ SaveHeartIcon,
27
+ } from "./CottageCard";
28
+ export {
29
+ AreaExpandIcon,
30
+ CheckSuccessIcon,
31
+ ClockFilledIcon,
32
+ CopyIcon,
33
+ QrCodeIcon,
34
+ ShareIcon,
35
+ TooltipArrowIcon,
36
+ WhatsAppIcon,
37
+ } from "./CottageDetail";
20
38
  export { FacebookIcon } from "./Facebook";
39
+ export { FiltersIcon } from "./Filters";
21
40
  export { HeartIcon } from "./Heart";
22
41
  export { GlobeIcon } from "./Globe";
23
42
  export { HelpCircleIcon } from "./HelpCircle";
@@ -26,8 +45,11 @@ export { InstagramIcon } from "./Instagram";
26
45
  export { KeyIcon } from "./Key";
27
46
  export { LayoutGridIcon } from "./LayoutGrid";
28
47
  export { LinkedInIcon } from "./LinkedIn";
48
+ export { ListViewIcon } from "./ListView";
49
+ export { LocationPinIcon } from "./LocationPin";
29
50
  export { LogOutIcon } from "./LogOut";
30
51
  export { MailIcon } from "./Mail";
52
+ export { MapViewIcon } from "./MapView";
31
53
  export { MenuIcon } from "./Menu";
32
54
  export type { MenuIconProps } from "./Menu";
33
55
  export { NavigateIcon } from "./Navigate";
@@ -38,6 +60,7 @@ export { SearchIcon } from "./Search";
38
60
  export { SettingsIcon } from "./Settings";
39
61
  export { ShowIcon } from "./Show";
40
62
  export { SidebarIcon } from "./Sidebar";
63
+ export { SortIcon } from "./Sort";
41
64
  export { StarIcon } from "./Star";
42
65
  export { StarFilledIcon } from "./StarFilled";
43
66
  export { UserIcon } from "./User";
@@ -10,7 +10,26 @@ import { CheckBadgeIcon } from "./CheckBadge";
10
10
  import { ChevronDownIcon } from "./ChevronDown";
11
11
  import { ChevronLeftIcon } from "./ChevronLeft";
12
12
  import { ClockIcon } from "./Clock";
13
+ import {
14
+ BathroomsIcon,
15
+ BedroomsIcon,
16
+ CardLocationIcon,
17
+ GuestsIcon,
18
+ RatingStarIcon,
19
+ SaveHeartIcon,
20
+ } from "./CottageCard";
21
+ import {
22
+ AreaExpandIcon,
23
+ CheckSuccessIcon,
24
+ ClockFilledIcon,
25
+ CopyIcon,
26
+ QrCodeIcon,
27
+ ShareIcon,
28
+ TooltipArrowIcon,
29
+ WhatsAppIcon,
30
+ } from "./CottageDetail";
13
31
  import { FacebookIcon } from "./Facebook";
32
+ import { FiltersIcon } from "./Filters";
14
33
  import { HeartIcon } from "./Heart";
15
34
  import { GlobeIcon } from "./Globe";
16
35
  import { HelpCircleIcon } from "./HelpCircle";
@@ -19,8 +38,11 @@ import { InstagramIcon } from "./Instagram";
19
38
  import { KeyIcon } from "./Key";
20
39
  import { LayoutGridIcon } from "./LayoutGrid";
21
40
  import { LinkedInIcon } from "./LinkedIn";
41
+ import { ListViewIcon } from "./ListView";
42
+ import { LocationPinIcon } from "./LocationPin";
22
43
  import { LogOutIcon } from "./LogOut";
23
44
  import { MailIcon } from "./Mail";
45
+ import { MapViewIcon } from "./MapView";
24
46
  import { MenuIcon } from "./Menu";
25
47
  import { MinusIcon } from "./Minus";
26
48
  import { NavigateIcon } from "./Navigate";
@@ -30,6 +52,7 @@ import { SearchIcon } from "./Search";
30
52
  import { SettingsIcon } from "./Settings";
31
53
  import { ShowIcon } from "./Show";
32
54
  import { SidebarIcon } from "./Sidebar";
55
+ import { SortIcon } from "./Sort";
33
56
  import { StarIcon } from "./Star";
34
57
  import { StarFilledIcon } from "./StarFilled";
35
58
  import { UserIcon } from "./User";
@@ -38,6 +61,7 @@ import { VideoIcon } from "./Video";
38
61
  import type { IconComponent } from "./types";
39
62
 
40
63
  export const icons = {
64
+ areaExpand: AreaExpandIcon,
41
65
  arrowRight: ArrowRightIcon,
42
66
  bag: BagIcon,
43
67
  bell: BellIcon,
@@ -47,10 +71,18 @@ export const icons = {
47
71
  camera: CameraIcon,
48
72
  check: CheckIcon,
49
73
  checkBadge: CheckBadgeIcon,
74
+ checkSuccess: CheckSuccessIcon,
50
75
  chevronDown: ChevronDownIcon,
51
76
  chevronLeft: ChevronLeftIcon,
52
77
  clock: ClockIcon,
78
+ clockFilled: ClockFilledIcon,
79
+ copy: CopyIcon,
80
+ bathrooms: BathroomsIcon,
81
+ bedrooms: BedroomsIcon,
82
+ cardLocation: CardLocationIcon,
53
83
  facebook: FacebookIcon,
84
+ filters: FiltersIcon,
85
+ guests: GuestsIcon,
54
86
  heart: HeartIcon,
55
87
  globe: GlobeIcon,
56
88
  helpCircle: HelpCircleIcon,
@@ -59,22 +91,32 @@ export const icons = {
59
91
  key: KeyIcon,
60
92
  layoutGrid: LayoutGridIcon,
61
93
  linkedin: LinkedInIcon,
94
+ listView: ListViewIcon,
95
+ locationPin: LocationPinIcon,
62
96
  logOut: LogOutIcon,
63
97
  mail: MailIcon,
98
+ mapView: MapViewIcon,
64
99
  menu: MenuIcon,
65
100
  minus: MinusIcon,
66
101
  navigate: NavigateIcon,
67
102
  phone: PhoneIcon,
103
+ qrCode: QrCodeIcon,
104
+ ratingStar: RatingStarIcon,
68
105
  plus: PlusIcon,
69
106
  search: SearchIcon,
107
+ saveHeart: SaveHeartIcon,
108
+ share: ShareIcon,
70
109
  settings: SettingsIcon,
71
110
  show: ShowIcon,
72
111
  sidebar: SidebarIcon,
112
+ sort: SortIcon,
73
113
  star: StarIcon,
74
114
  starFilled: StarFilledIcon,
115
+ tooltipArrow: TooltipArrowIcon,
75
116
  user: UserIcon,
76
117
  usersAlt: UsersAltIcon,
77
118
  video: VideoIcon,
119
+ whatsApp: WhatsAppIcon,
78
120
  } as const satisfies Record<string, IconComponent>;
79
121
 
80
122
  export type IconName = keyof typeof icons;
@@ -82,7 +124,17 @@ export type IconName = keyof typeof icons;
82
124
  export const iconNames = Object.keys(icons) as IconName[];
83
125
 
84
126
  export const iconGroups = {
85
- navigation: ["arrowRight", "chevronDown", "chevronLeft", "home", "menu", "navigate"],
127
+ navigation: [
128
+ "arrowRight",
129
+ "chevronDown",
130
+ "chevronLeft",
131
+ "home",
132
+ "listView",
133
+ "locationPin",
134
+ "mapView",
135
+ "menu",
136
+ "navigate",
137
+ ],
86
138
  actions: [
87
139
  "show",
88
140
  "bell",
@@ -90,19 +142,49 @@ export const iconGroups = {
90
142
  "key",
91
143
  "check",
92
144
  "checkBadge",
145
+ "checkSuccess",
146
+ "copy",
93
147
  "search",
94
148
  "calendar",
95
149
  "calendarOutline",
150
+ "ratingStar",
151
+ "saveHeart",
152
+ "share",
153
+ "filters",
96
154
  "heart",
97
155
  "star",
98
156
  "starFilled",
99
157
  "minus",
100
158
  "plus",
159
+ "sort",
160
+ ],
161
+ objects: [
162
+ "bag",
163
+ "bathrooms",
164
+ "bedrooms",
165
+ "building",
166
+ "cardLocation",
167
+ "clock",
168
+ "clockFilled",
169
+ "guests",
170
+ "qrCode",
171
+ "user",
172
+ "usersAlt",
173
+ "video",
174
+ "whatsApp",
101
175
  ],
102
- objects: ["bag", "building", "clock", "user", "usersAlt", "video"],
103
176
  communication: ["mail", "phone"],
104
177
  social: ["facebook", "instagram", "linkedin"],
105
- interface: ["globe", "layoutGrid", "sidebar", "settings", "helpCircle", "logOut"],
178
+ interface: [
179
+ "areaExpand",
180
+ "globe",
181
+ "layoutGrid",
182
+ "sidebar",
183
+ "settings",
184
+ "helpCircle",
185
+ "logOut",
186
+ "tooltipArrow",
187
+ ],
106
188
  } as const satisfies Record<string, readonly IconName[]>;
107
189
 
108
190
  export type IconGroup = keyof typeof iconGroups;
@@ -4,6 +4,8 @@ export interface IconProps {
4
4
  size?: number;
5
5
  color?: string;
6
6
  strokeWidth?: number;
7
+ fillOpacity?: number;
8
+ secondaryColor?: string;
7
9
  }
8
10
 
9
11
  export type IconComponent = ComponentType<IconProps>;
package/src/index.ts CHANGED
@@ -78,7 +78,22 @@ export {
78
78
  ChevronDownIcon,
79
79
  ChevronLeftIcon,
80
80
  ClockIcon,
81
+ BathroomsIcon,
82
+ BedroomsIcon,
83
+ CardLocationIcon,
84
+ GuestsIcon,
85
+ RatingStarIcon,
86
+ SaveHeartIcon,
87
+ AreaExpandIcon,
88
+ CheckSuccessIcon,
89
+ ClockFilledIcon,
90
+ CopyIcon,
91
+ QrCodeIcon,
92
+ ShareIcon,
93
+ TooltipArrowIcon,
94
+ WhatsAppIcon,
81
95
  FacebookIcon,
96
+ FiltersIcon,
82
97
  HeartIcon,
83
98
  GlobeIcon,
84
99
  HelpCircleIcon,
@@ -87,8 +102,11 @@ export {
87
102
  KeyIcon,
88
103
  LayoutGridIcon,
89
104
  LinkedInIcon,
105
+ ListViewIcon,
106
+ LocationPinIcon,
90
107
  LogOutIcon,
91
108
  MailIcon,
109
+ MapViewIcon,
92
110
  MenuIcon,
93
111
  MinusIcon,
94
112
  NavigateIcon,
@@ -98,6 +116,7 @@ export {
98
116
  SettingsIcon,
99
117
  ShowIcon,
100
118
  SidebarIcon,
119
+ SortIcon,
101
120
  StarIcon,
102
121
  StarFilledIcon,
103
122
  UserIcon,