@ecohouse/ui 0.1.3 → 0.1.4
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.
- package/dist/index.cjs +497 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +102 -4
- package/dist/index.d.ts +102 -4
- package/dist/index.js +491 -78
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Avatar/Avatar.stories.tsx +133 -0
- package/src/components/Avatar/Avatar.tsx +389 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Select/Select.tsx +1 -1
- package/src/components/index.ts +3 -0
- package/src/icons/Calendar/CalendarIcon.tsx +21 -0
- package/src/icons/Calendar/CalendarIcon.web.tsx +27 -0
- package/src/icons/Calendar/calendarPath.ts +3 -0
- package/src/icons/Calendar/index.ts +1 -0
- package/src/icons/Heart/HeartIcon.tsx +23 -0
- package/src/icons/Heart/HeartIcon.web.tsx +29 -0
- package/src/icons/Heart/heartPath.ts +3 -0
- package/src/icons/Heart/index.ts +1 -0
- package/src/icons/HelpCircle/HelpCircleIcon.tsx +25 -0
- package/src/icons/HelpCircle/HelpCircleIcon.web.tsx +31 -0
- package/src/icons/HelpCircle/helpCirclePath.ts +3 -0
- package/src/icons/HelpCircle/index.ts +1 -0
- package/src/icons/LayoutGrid/LayoutGridIcon.tsx +25 -0
- package/src/icons/LayoutGrid/LayoutGridIcon.web.tsx +31 -0
- package/src/icons/LayoutGrid/index.ts +1 -0
- package/src/icons/LayoutGrid/layoutGridPath.ts +3 -0
- package/src/icons/LogOut/LogOutIcon.tsx +21 -0
- package/src/icons/LogOut/LogOutIcon.web.tsx +27 -0
- package/src/icons/LogOut/index.ts +1 -0
- package/src/icons/LogOut/logOutPath.ts +3 -0
- package/src/icons/Settings/SettingsIcon.tsx +21 -0
- package/src/icons/Settings/SettingsIcon.web.tsx +27 -0
- package/src/icons/Settings/index.ts +1 -0
- package/src/icons/Settings/settingsPath.ts +3 -0
- package/src/icons/Video/VideoIcon.tsx +24 -0
- package/src/icons/Video/VideoIcon.web.tsx +30 -0
- package/src/icons/Video/index.ts +1 -0
- package/src/icons/Video/videoPath.ts +5 -0
- package/src/icons/index.ts +7 -0
- package/src/icons/registry.ts +17 -2
- package/src/index.ts +11 -1
- package/src/theme/colors.ts +1 -0
- package/src/theme/index.ts +1 -0
- package/src/theme/typography.ts +25 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,51 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ComponentType } from 'react';
|
|
3
3
|
import * as react_native from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { PressableProps, GestureResponderEvent, StyleProp, ViewStyle, View, TouchableOpacityProps, TextStyle, TextInputProps, TextInput, ViewProps } from 'react-native';
|
|
5
|
+
|
|
6
|
+
interface AvatarMenuItem {
|
|
7
|
+
/** Stable identity for React keys / hover tracking; falls back to `label`. */
|
|
8
|
+
key?: string;
|
|
9
|
+
/** Leading icon, e.g. `<CalendarIcon />` — pass it pre-colored. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
label: string;
|
|
12
|
+
onPress: () => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Row background at rest. Defaults to transparent. */
|
|
15
|
+
backgroundColor?: string;
|
|
16
|
+
/** Row background on hover/press. Defaults to `colors.grey600`. */
|
|
17
|
+
hoverColor?: string;
|
|
18
|
+
}
|
|
19
|
+
interface AvatarProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
20
|
+
/** Logged-in user's display name. */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Shown under the name, e.g. the user's email. */
|
|
23
|
+
email?: string;
|
|
24
|
+
/** Photo URL; falls back to a placeholder icon when missing or when it fails to load. */
|
|
25
|
+
imageUrl?: string | null;
|
|
26
|
+
/** Called on every press, in addition to any menu toggling driven by `menuItems`. */
|
|
27
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
28
|
+
/** External — non-interactive. */
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
/** Trailing chevron, typically used to hint a dropdown/menu. */
|
|
31
|
+
showChevron?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Account-menu options, supplied entirely by the consumer (icon, label,
|
|
34
|
+
* action, and per-item colors). When set, pressing the chip opens a
|
|
35
|
+
* dropdown listing them.
|
|
36
|
+
*/
|
|
37
|
+
menuItems?: AvatarMenuItem[];
|
|
38
|
+
/** Controlled open state for the menu. */
|
|
39
|
+
open?: boolean;
|
|
40
|
+
defaultOpen?: boolean;
|
|
41
|
+
onOpenChange?: (open: boolean) => void;
|
|
42
|
+
/** Fixed menu width; defaults to matching the chip's width. */
|
|
43
|
+
menuWidth?: number;
|
|
44
|
+
style?: StyleProp<ViewStyle>;
|
|
45
|
+
className?: string;
|
|
46
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
47
|
+
}
|
|
48
|
+
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<View>>;
|
|
5
49
|
|
|
6
50
|
type ButtonVariant = "primary" | "secondary";
|
|
7
51
|
type ButtonSize = "lg" | "sm";
|
|
@@ -166,6 +210,9 @@ declare function BellIcon({ size, color, strokeWidth }: IconProps): react.JSX.El
|
|
|
166
210
|
|
|
167
211
|
declare function BuildingIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
168
212
|
|
|
213
|
+
/** Native — react-native-svg (peer dependency). */
|
|
214
|
+
declare function CalendarIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
215
|
+
|
|
169
216
|
declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
170
217
|
|
|
171
218
|
interface CheckIconProps {
|
|
@@ -190,14 +237,26 @@ declare function ClockIcon({ size, color, strokeWidth }: IconProps): react.JSX.E
|
|
|
190
237
|
|
|
191
238
|
declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
|
|
192
239
|
|
|
240
|
+
/** Native — react-native-svg (peer dependency). */
|
|
241
|
+
declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
242
|
+
|
|
243
|
+
/** Native — react-native-svg (peer dependency). */
|
|
244
|
+
declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
245
|
+
|
|
193
246
|
declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
194
247
|
|
|
195
248
|
declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
|
|
196
249
|
|
|
197
250
|
declare function KeyIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
198
251
|
|
|
252
|
+
/** Native — react-native-svg (peer dependency). */
|
|
253
|
+
declare function LayoutGridIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
254
|
+
|
|
199
255
|
declare function LinkedInIcon({ size, color }: IconProps): react.JSX.Element;
|
|
200
256
|
|
|
257
|
+
/** Native — react-native-svg (peer dependency). */
|
|
258
|
+
declare function LogOutIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
259
|
+
|
|
201
260
|
declare function MailIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
202
261
|
|
|
203
262
|
declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
@@ -212,6 +271,9 @@ interface SearchIconProps {
|
|
|
212
271
|
/** Native — react-native-svg (peer dependency). */
|
|
213
272
|
declare function SearchIcon({ size, color, strokeWidth, }: SearchIconProps): react.JSX.Element;
|
|
214
273
|
|
|
274
|
+
/** Native — react-native-svg (peer dependency). */
|
|
275
|
+
declare function SettingsIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
276
|
+
|
|
215
277
|
interface ShowIconProps {
|
|
216
278
|
size?: number;
|
|
217
279
|
color?: string;
|
|
@@ -228,36 +290,47 @@ interface UserIconProps {
|
|
|
228
290
|
/** Native — react-native-svg (peer dependency). */
|
|
229
291
|
declare function UserIcon({ size, color, strokeWidth }: UserIconProps): react.JSX.Element;
|
|
230
292
|
|
|
293
|
+
/** Native — react-native-svg (peer dependency). */
|
|
294
|
+
declare function VideoIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
295
|
+
|
|
231
296
|
declare const icons: {
|
|
232
297
|
readonly arrowRight: typeof ArrowRightIcon;
|
|
233
298
|
readonly bag: typeof BagIcon;
|
|
234
299
|
readonly bell: typeof BellIcon;
|
|
235
300
|
readonly building: typeof BuildingIcon;
|
|
301
|
+
readonly calendar: typeof CalendarIcon;
|
|
236
302
|
readonly camera: typeof CameraIcon;
|
|
237
303
|
readonly check: typeof CheckIcon;
|
|
238
304
|
readonly checkBadge: typeof CheckBadgeIcon;
|
|
239
305
|
readonly chevronDown: typeof ChevronDownIcon;
|
|
240
306
|
readonly clock: typeof ClockIcon;
|
|
241
307
|
readonly facebook: typeof FacebookIcon;
|
|
308
|
+
readonly heart: typeof HeartIcon;
|
|
309
|
+
readonly helpCircle: typeof HelpCircleIcon;
|
|
242
310
|
readonly home: typeof HomeIcon;
|
|
243
311
|
readonly instagram: typeof InstagramIcon;
|
|
244
312
|
readonly key: typeof KeyIcon;
|
|
313
|
+
readonly layoutGrid: typeof LayoutGridIcon;
|
|
245
314
|
readonly linkedin: typeof LinkedInIcon;
|
|
315
|
+
readonly logOut: typeof LogOutIcon;
|
|
246
316
|
readonly mail: typeof MailIcon;
|
|
247
317
|
readonly navigate: typeof NavigateIcon;
|
|
248
318
|
readonly phone: typeof PhoneIcon;
|
|
249
319
|
readonly search: typeof SearchIcon;
|
|
320
|
+
readonly settings: typeof SettingsIcon;
|
|
250
321
|
readonly show: typeof ShowIcon;
|
|
251
322
|
readonly user: typeof UserIcon;
|
|
323
|
+
readonly video: typeof VideoIcon;
|
|
252
324
|
};
|
|
253
325
|
type IconName = keyof typeof icons;
|
|
254
326
|
declare const iconNames: IconName[];
|
|
255
327
|
declare const iconGroups: {
|
|
256
328
|
readonly navigation: readonly ["arrowRight", "chevronDown", "home", "navigate"];
|
|
257
|
-
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search"];
|
|
258
|
-
readonly objects: readonly ["bag", "building", "clock", "user"];
|
|
329
|
+
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search", "calendar", "heart"];
|
|
330
|
+
readonly objects: readonly ["bag", "building", "clock", "user", "video"];
|
|
259
331
|
readonly communication: readonly ["mail", "phone"];
|
|
260
332
|
readonly social: readonly ["facebook", "instagram", "linkedin"];
|
|
333
|
+
readonly interface: readonly ["layoutGrid", "settings", "helpCircle", "logOut"];
|
|
261
334
|
};
|
|
262
335
|
type IconGroup = keyof typeof iconGroups;
|
|
263
336
|
declare const iconGroupNames: IconGroup[];
|
|
@@ -295,6 +368,7 @@ declare const colors: {
|
|
|
295
368
|
readonly lightGrey: "#B7B7B7";
|
|
296
369
|
readonly primaryMuted: "#B464360F";
|
|
297
370
|
readonly redMuted: "#A63E3E0F";
|
|
371
|
+
readonly redHover: "#A63E3E33";
|
|
298
372
|
readonly grey0: "#767676";
|
|
299
373
|
readonly grey50: "#6E6E6E";
|
|
300
374
|
readonly grey100: "#666666";
|
|
@@ -380,6 +454,30 @@ declare const selectTypography: {
|
|
|
380
454
|
readonly letterSpacing: 0.36;
|
|
381
455
|
};
|
|
382
456
|
};
|
|
457
|
+
/** Avatar name / email / menu-item typography — 100% line-height, 0 letter-spacing. */
|
|
458
|
+
declare const avatarTypography: {
|
|
459
|
+
readonly name: {
|
|
460
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
461
|
+
readonly fontSize: 14;
|
|
462
|
+
readonly fontWeight: "600";
|
|
463
|
+
readonly lineHeight: 14;
|
|
464
|
+
readonly letterSpacing: 0;
|
|
465
|
+
};
|
|
466
|
+
readonly email: {
|
|
467
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
468
|
+
readonly fontSize: 12;
|
|
469
|
+
readonly fontWeight: "400";
|
|
470
|
+
readonly lineHeight: 12;
|
|
471
|
+
readonly letterSpacing: 0;
|
|
472
|
+
};
|
|
473
|
+
readonly menuItem: {
|
|
474
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
475
|
+
readonly fontSize: 12;
|
|
476
|
+
readonly fontWeight: "600";
|
|
477
|
+
readonly lineHeight: 12;
|
|
478
|
+
readonly letterSpacing: 0;
|
|
479
|
+
};
|
|
480
|
+
};
|
|
383
481
|
/** Textarea label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */
|
|
384
482
|
declare const textareaTypography: {
|
|
385
483
|
readonly label: {
|
|
@@ -405,4 +503,4 @@ declare const textareaTypography: {
|
|
|
405
503
|
};
|
|
406
504
|
};
|
|
407
505
|
|
|
408
|
-
export { ArrowRightIcon, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ClockIcon, FacebookIcon, type GreyStep, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, LinkedInIcon, MailIcon, NavigateIcon, PhoneIcon, SearchIcon, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, ShowIcon, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, buttonTypography, colors, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|
|
506
|
+
export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ClockIcon, FacebookIcon, type GreyStep, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, LayoutGridIcon, LinkedInIcon, LogOutIcon, MailIcon, NavigateIcon, PhoneIcon, SearchIcon, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, VideoIcon, avatarTypography, buttonTypography, colors, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,51 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ComponentType } from 'react';
|
|
3
3
|
import * as react_native from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { PressableProps, GestureResponderEvent, StyleProp, ViewStyle, View, TouchableOpacityProps, TextStyle, TextInputProps, TextInput, ViewProps } from 'react-native';
|
|
5
|
+
|
|
6
|
+
interface AvatarMenuItem {
|
|
7
|
+
/** Stable identity for React keys / hover tracking; falls back to `label`. */
|
|
8
|
+
key?: string;
|
|
9
|
+
/** Leading icon, e.g. `<CalendarIcon />` — pass it pre-colored. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
label: string;
|
|
12
|
+
onPress: () => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Row background at rest. Defaults to transparent. */
|
|
15
|
+
backgroundColor?: string;
|
|
16
|
+
/** Row background on hover/press. Defaults to `colors.grey600`. */
|
|
17
|
+
hoverColor?: string;
|
|
18
|
+
}
|
|
19
|
+
interface AvatarProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
20
|
+
/** Logged-in user's display name. */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Shown under the name, e.g. the user's email. */
|
|
23
|
+
email?: string;
|
|
24
|
+
/** Photo URL; falls back to a placeholder icon when missing or when it fails to load. */
|
|
25
|
+
imageUrl?: string | null;
|
|
26
|
+
/** Called on every press, in addition to any menu toggling driven by `menuItems`. */
|
|
27
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
28
|
+
/** External — non-interactive. */
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
/** Trailing chevron, typically used to hint a dropdown/menu. */
|
|
31
|
+
showChevron?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Account-menu options, supplied entirely by the consumer (icon, label,
|
|
34
|
+
* action, and per-item colors). When set, pressing the chip opens a
|
|
35
|
+
* dropdown listing them.
|
|
36
|
+
*/
|
|
37
|
+
menuItems?: AvatarMenuItem[];
|
|
38
|
+
/** Controlled open state for the menu. */
|
|
39
|
+
open?: boolean;
|
|
40
|
+
defaultOpen?: boolean;
|
|
41
|
+
onOpenChange?: (open: boolean) => void;
|
|
42
|
+
/** Fixed menu width; defaults to matching the chip's width. */
|
|
43
|
+
menuWidth?: number;
|
|
44
|
+
style?: StyleProp<ViewStyle>;
|
|
45
|
+
className?: string;
|
|
46
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
47
|
+
}
|
|
48
|
+
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<View>>;
|
|
5
49
|
|
|
6
50
|
type ButtonVariant = "primary" | "secondary";
|
|
7
51
|
type ButtonSize = "lg" | "sm";
|
|
@@ -166,6 +210,9 @@ declare function BellIcon({ size, color, strokeWidth }: IconProps): react.JSX.El
|
|
|
166
210
|
|
|
167
211
|
declare function BuildingIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
168
212
|
|
|
213
|
+
/** Native — react-native-svg (peer dependency). */
|
|
214
|
+
declare function CalendarIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
215
|
+
|
|
169
216
|
declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
170
217
|
|
|
171
218
|
interface CheckIconProps {
|
|
@@ -190,14 +237,26 @@ declare function ClockIcon({ size, color, strokeWidth }: IconProps): react.JSX.E
|
|
|
190
237
|
|
|
191
238
|
declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
|
|
192
239
|
|
|
240
|
+
/** Native — react-native-svg (peer dependency). */
|
|
241
|
+
declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
242
|
+
|
|
243
|
+
/** Native — react-native-svg (peer dependency). */
|
|
244
|
+
declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
245
|
+
|
|
193
246
|
declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
194
247
|
|
|
195
248
|
declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
|
|
196
249
|
|
|
197
250
|
declare function KeyIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
198
251
|
|
|
252
|
+
/** Native — react-native-svg (peer dependency). */
|
|
253
|
+
declare function LayoutGridIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
254
|
+
|
|
199
255
|
declare function LinkedInIcon({ size, color }: IconProps): react.JSX.Element;
|
|
200
256
|
|
|
257
|
+
/** Native — react-native-svg (peer dependency). */
|
|
258
|
+
declare function LogOutIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
259
|
+
|
|
201
260
|
declare function MailIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
202
261
|
|
|
203
262
|
declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
@@ -212,6 +271,9 @@ interface SearchIconProps {
|
|
|
212
271
|
/** Native — react-native-svg (peer dependency). */
|
|
213
272
|
declare function SearchIcon({ size, color, strokeWidth, }: SearchIconProps): react.JSX.Element;
|
|
214
273
|
|
|
274
|
+
/** Native — react-native-svg (peer dependency). */
|
|
275
|
+
declare function SettingsIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
276
|
+
|
|
215
277
|
interface ShowIconProps {
|
|
216
278
|
size?: number;
|
|
217
279
|
color?: string;
|
|
@@ -228,36 +290,47 @@ interface UserIconProps {
|
|
|
228
290
|
/** Native — react-native-svg (peer dependency). */
|
|
229
291
|
declare function UserIcon({ size, color, strokeWidth }: UserIconProps): react.JSX.Element;
|
|
230
292
|
|
|
293
|
+
/** Native — react-native-svg (peer dependency). */
|
|
294
|
+
declare function VideoIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
295
|
+
|
|
231
296
|
declare const icons: {
|
|
232
297
|
readonly arrowRight: typeof ArrowRightIcon;
|
|
233
298
|
readonly bag: typeof BagIcon;
|
|
234
299
|
readonly bell: typeof BellIcon;
|
|
235
300
|
readonly building: typeof BuildingIcon;
|
|
301
|
+
readonly calendar: typeof CalendarIcon;
|
|
236
302
|
readonly camera: typeof CameraIcon;
|
|
237
303
|
readonly check: typeof CheckIcon;
|
|
238
304
|
readonly checkBadge: typeof CheckBadgeIcon;
|
|
239
305
|
readonly chevronDown: typeof ChevronDownIcon;
|
|
240
306
|
readonly clock: typeof ClockIcon;
|
|
241
307
|
readonly facebook: typeof FacebookIcon;
|
|
308
|
+
readonly heart: typeof HeartIcon;
|
|
309
|
+
readonly helpCircle: typeof HelpCircleIcon;
|
|
242
310
|
readonly home: typeof HomeIcon;
|
|
243
311
|
readonly instagram: typeof InstagramIcon;
|
|
244
312
|
readonly key: typeof KeyIcon;
|
|
313
|
+
readonly layoutGrid: typeof LayoutGridIcon;
|
|
245
314
|
readonly linkedin: typeof LinkedInIcon;
|
|
315
|
+
readonly logOut: typeof LogOutIcon;
|
|
246
316
|
readonly mail: typeof MailIcon;
|
|
247
317
|
readonly navigate: typeof NavigateIcon;
|
|
248
318
|
readonly phone: typeof PhoneIcon;
|
|
249
319
|
readonly search: typeof SearchIcon;
|
|
320
|
+
readonly settings: typeof SettingsIcon;
|
|
250
321
|
readonly show: typeof ShowIcon;
|
|
251
322
|
readonly user: typeof UserIcon;
|
|
323
|
+
readonly video: typeof VideoIcon;
|
|
252
324
|
};
|
|
253
325
|
type IconName = keyof typeof icons;
|
|
254
326
|
declare const iconNames: IconName[];
|
|
255
327
|
declare const iconGroups: {
|
|
256
328
|
readonly navigation: readonly ["arrowRight", "chevronDown", "home", "navigate"];
|
|
257
|
-
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search"];
|
|
258
|
-
readonly objects: readonly ["bag", "building", "clock", "user"];
|
|
329
|
+
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search", "calendar", "heart"];
|
|
330
|
+
readonly objects: readonly ["bag", "building", "clock", "user", "video"];
|
|
259
331
|
readonly communication: readonly ["mail", "phone"];
|
|
260
332
|
readonly social: readonly ["facebook", "instagram", "linkedin"];
|
|
333
|
+
readonly interface: readonly ["layoutGrid", "settings", "helpCircle", "logOut"];
|
|
261
334
|
};
|
|
262
335
|
type IconGroup = keyof typeof iconGroups;
|
|
263
336
|
declare const iconGroupNames: IconGroup[];
|
|
@@ -295,6 +368,7 @@ declare const colors: {
|
|
|
295
368
|
readonly lightGrey: "#B7B7B7";
|
|
296
369
|
readonly primaryMuted: "#B464360F";
|
|
297
370
|
readonly redMuted: "#A63E3E0F";
|
|
371
|
+
readonly redHover: "#A63E3E33";
|
|
298
372
|
readonly grey0: "#767676";
|
|
299
373
|
readonly grey50: "#6E6E6E";
|
|
300
374
|
readonly grey100: "#666666";
|
|
@@ -380,6 +454,30 @@ declare const selectTypography: {
|
|
|
380
454
|
readonly letterSpacing: 0.36;
|
|
381
455
|
};
|
|
382
456
|
};
|
|
457
|
+
/** Avatar name / email / menu-item typography — 100% line-height, 0 letter-spacing. */
|
|
458
|
+
declare const avatarTypography: {
|
|
459
|
+
readonly name: {
|
|
460
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
461
|
+
readonly fontSize: 14;
|
|
462
|
+
readonly fontWeight: "600";
|
|
463
|
+
readonly lineHeight: 14;
|
|
464
|
+
readonly letterSpacing: 0;
|
|
465
|
+
};
|
|
466
|
+
readonly email: {
|
|
467
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
468
|
+
readonly fontSize: 12;
|
|
469
|
+
readonly fontWeight: "400";
|
|
470
|
+
readonly lineHeight: 12;
|
|
471
|
+
readonly letterSpacing: 0;
|
|
472
|
+
};
|
|
473
|
+
readonly menuItem: {
|
|
474
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
475
|
+
readonly fontSize: 12;
|
|
476
|
+
readonly fontWeight: "600";
|
|
477
|
+
readonly lineHeight: 12;
|
|
478
|
+
readonly letterSpacing: 0;
|
|
479
|
+
};
|
|
480
|
+
};
|
|
383
481
|
/** Textarea label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */
|
|
384
482
|
declare const textareaTypography: {
|
|
385
483
|
readonly label: {
|
|
@@ -405,4 +503,4 @@ declare const textareaTypography: {
|
|
|
405
503
|
};
|
|
406
504
|
};
|
|
407
505
|
|
|
408
|
-
export { ArrowRightIcon, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ClockIcon, FacebookIcon, type GreyStep, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, LinkedInIcon, MailIcon, NavigateIcon, PhoneIcon, SearchIcon, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, ShowIcon, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, buttonTypography, colors, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|
|
506
|
+
export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ClockIcon, FacebookIcon, type GreyStep, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, LayoutGridIcon, LinkedInIcon, LogOutIcon, MailIcon, NavigateIcon, PhoneIcon, SearchIcon, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, VideoIcon, avatarTypography, buttonTypography, colors, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|