@ecohouse/ui 0.1.3 → 0.1.5
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/README.md +33 -13
- package/dist/index.cjs +1182 -104
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +206 -5
- package/dist/index.d.ts +206 -5
- package/dist/index.js +1171 -107
- 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 +337 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +172 -0
- package/src/components/DatePicker/DatePicker.tsx +628 -0
- package/src/components/DatePicker/index.ts +7 -0
- package/src/components/Select/Select.tsx +1 -1
- package/src/components/index.ts +11 -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/CalendarOutline/CalendarOutlineIcon.tsx +25 -0
- package/src/icons/CalendarOutline/CalendarOutlineIcon.web.tsx +31 -0
- package/src/icons/CalendarOutline/calendarOutlinePath.ts +3 -0
- package/src/icons/CalendarOutline/index.ts +1 -0
- package/src/icons/ChevronLeft/ChevronLeftIcon.tsx +21 -0
- package/src/icons/ChevronLeft/ChevronLeftIcon.web.tsx +27 -0
- package/src/icons/ChevronLeft/chevronLeftPath.ts +2 -0
- package/src/icons/ChevronLeft/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 +9 -0
- package/src/icons/registry.ts +33 -3
- package/src/index.ts +30 -1
- package/src/primitives/MenuItem/MenuItem.stories.tsx +98 -0
- package/src/primitives/MenuItem/MenuItem.tsx +138 -0
- package/src/primitives/MenuItem/index.ts +2 -0
- package/src/primitives/index.ts +2 -0
- package/src/theme/colors.ts +2 -0
- package/src/theme/index.ts +2 -0
- package/src/theme/typography.ts +65 -0
- package/src/utils/dateUtils.ts +86 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,61 @@
|
|
|
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, TextStyle, View, TouchableOpacityProps, ViewProps, TextInputProps, TextInput } from 'react-native';
|
|
5
|
+
|
|
6
|
+
interface MenuItemProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
7
|
+
/** Leading icon, e.g. `<CalendarIcon size={16} />` — pass it pre-colored. */
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
label: string;
|
|
10
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Row background at rest. Defaults to transparent. */
|
|
13
|
+
backgroundColor?: string;
|
|
14
|
+
/** Row background on hover/press. Defaults to `colors.grey600`. */
|
|
15
|
+
hoverColor?: string;
|
|
16
|
+
style?: StyleProp<ViewStyle>;
|
|
17
|
+
labelStyle?: StyleProp<TextStyle>;
|
|
18
|
+
className?: string;
|
|
19
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
20
|
+
}
|
|
21
|
+
declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<View>>;
|
|
22
|
+
|
|
23
|
+
/** Data shape for an Avatar dropdown option — same fields as `MenuItem`. */
|
|
24
|
+
type AvatarMenuItem = Pick<MenuItemProps, "icon" | "label" | "disabled" | "backgroundColor" | "hoverColor"> & {
|
|
25
|
+
/** Stable identity for React keys; falls back to `label`. */
|
|
26
|
+
key?: string;
|
|
27
|
+
onPress: () => void;
|
|
28
|
+
};
|
|
29
|
+
interface AvatarProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
30
|
+
/** Logged-in user's display name. */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Shown under the name, e.g. the user's email. */
|
|
33
|
+
email?: string;
|
|
34
|
+
/** Photo URL; falls back to a placeholder icon when missing or when it fails to load. */
|
|
35
|
+
imageUrl?: string | null;
|
|
36
|
+
/** Called on every press, in addition to any menu toggling driven by `menuItems`. */
|
|
37
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
38
|
+
/** External — non-interactive. */
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/** Trailing chevron, typically used to hint a dropdown/menu. */
|
|
41
|
+
showChevron?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Account-menu options, supplied entirely by the consumer (icon, label,
|
|
44
|
+
* action, and per-item colors). When set, pressing the chip opens a
|
|
45
|
+
* dropdown listing them via `MenuItem`.
|
|
46
|
+
*/
|
|
47
|
+
menuItems?: AvatarMenuItem[];
|
|
48
|
+
/** Controlled open state for the menu. */
|
|
49
|
+
open?: boolean;
|
|
50
|
+
defaultOpen?: boolean;
|
|
51
|
+
onOpenChange?: (open: boolean) => void;
|
|
52
|
+
/** Fixed menu width; defaults to matching the chip's width. */
|
|
53
|
+
menuWidth?: number;
|
|
54
|
+
style?: StyleProp<ViewStyle>;
|
|
55
|
+
className?: string;
|
|
56
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
57
|
+
}
|
|
58
|
+
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<View>>;
|
|
5
59
|
|
|
6
60
|
type ButtonVariant = "primary" | "secondary";
|
|
7
61
|
type ButtonSize = "lg" | "sm";
|
|
@@ -37,6 +91,51 @@ interface CheckboxProps extends Omit<PressableProps, "onPress" | "disabled" | "s
|
|
|
37
91
|
}
|
|
38
92
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<View>>;
|
|
39
93
|
|
|
94
|
+
type DateRange = {
|
|
95
|
+
start: Date | null;
|
|
96
|
+
end: Date | null;
|
|
97
|
+
};
|
|
98
|
+
type DatePickerBaseProps = Omit<ViewProps, "style" | "children"> & {
|
|
99
|
+
placeholder?: string;
|
|
100
|
+
open?: boolean;
|
|
101
|
+
defaultOpen?: boolean;
|
|
102
|
+
onOpenChange?: (open: boolean) => void;
|
|
103
|
+
disabled?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* When true (default), the calendar closes after a complete selection —
|
|
106
|
+
* a single date, or both ends of a range. Set false to keep it open.
|
|
107
|
+
*/
|
|
108
|
+
closeOnSelect?: boolean;
|
|
109
|
+
minDate?: Date;
|
|
110
|
+
maxDate?: Date;
|
|
111
|
+
/** First visible month when the calendar opens; defaults to the selected value's month, else today. */
|
|
112
|
+
defaultVisibleMonth?: Date;
|
|
113
|
+
/** Monday-first full month names. Defaults to Armenian. */
|
|
114
|
+
monthNames?: string[];
|
|
115
|
+
/** Weekday abbreviations, ordered starting from `weekStartsOn`. Defaults to Armenian, Monday-first. */
|
|
116
|
+
weekdayLabels?: string[];
|
|
117
|
+
/** Formats a selected date for the trigger and day accessibility labels. Defaults to "DD.MM.YYYY". */
|
|
118
|
+
formatValue?: (date: Date) => string;
|
|
119
|
+
/** First day of the week column (0 = Sunday, 1 = Monday). Defaults to Monday. */
|
|
120
|
+
weekStartsOn?: 0 | 1;
|
|
121
|
+
style?: StyleProp<ViewStyle>;
|
|
122
|
+
className?: string;
|
|
123
|
+
};
|
|
124
|
+
type DatePickerSingleProps = DatePickerBaseProps & {
|
|
125
|
+
range?: false;
|
|
126
|
+
value?: Date | null;
|
|
127
|
+
defaultValue?: Date | null;
|
|
128
|
+
onValueChange?: (value: Date | null) => void;
|
|
129
|
+
};
|
|
130
|
+
type DatePickerRangeProps = DatePickerBaseProps & {
|
|
131
|
+
range: true;
|
|
132
|
+
value?: DateRange;
|
|
133
|
+
defaultValue?: DateRange;
|
|
134
|
+
onValueChange?: (value: DateRange) => void;
|
|
135
|
+
};
|
|
136
|
+
type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps;
|
|
137
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<View>>;
|
|
138
|
+
|
|
40
139
|
type InputSize = "lg" | "sm";
|
|
41
140
|
interface InputProps extends Omit<TextInputProps, "style" | "editable"> {
|
|
42
141
|
label?: string;
|
|
@@ -166,6 +265,12 @@ declare function BellIcon({ size, color, strokeWidth }: IconProps): react.JSX.El
|
|
|
166
265
|
|
|
167
266
|
declare function BuildingIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
168
267
|
|
|
268
|
+
/** Native — react-native-svg (peer dependency). */
|
|
269
|
+
declare function CalendarIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
270
|
+
|
|
271
|
+
/** Native — react-native-svg (peer dependency). */
|
|
272
|
+
declare function CalendarOutlineIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
273
|
+
|
|
169
274
|
declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
170
275
|
|
|
171
276
|
interface CheckIconProps {
|
|
@@ -186,18 +291,33 @@ interface ChevronDownIconProps {
|
|
|
186
291
|
/** Native — react-native-svg (peer dependency). */
|
|
187
292
|
declare function ChevronDownIcon({ size, color, strokeWidth, }: ChevronDownIconProps): react.JSX.Element;
|
|
188
293
|
|
|
294
|
+
/** Native — react-native-svg (peer dependency). */
|
|
295
|
+
declare function ChevronLeftIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
296
|
+
|
|
189
297
|
declare function ClockIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
190
298
|
|
|
191
299
|
declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
|
|
192
300
|
|
|
301
|
+
/** Native — react-native-svg (peer dependency). */
|
|
302
|
+
declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
303
|
+
|
|
304
|
+
/** Native — react-native-svg (peer dependency). */
|
|
305
|
+
declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
306
|
+
|
|
193
307
|
declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
194
308
|
|
|
195
309
|
declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
|
|
196
310
|
|
|
197
311
|
declare function KeyIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
198
312
|
|
|
313
|
+
/** Native — react-native-svg (peer dependency). */
|
|
314
|
+
declare function LayoutGridIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
315
|
+
|
|
199
316
|
declare function LinkedInIcon({ size, color }: IconProps): react.JSX.Element;
|
|
200
317
|
|
|
318
|
+
/** Native — react-native-svg (peer dependency). */
|
|
319
|
+
declare function LogOutIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
320
|
+
|
|
201
321
|
declare function MailIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
202
322
|
|
|
203
323
|
declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
@@ -212,6 +332,9 @@ interface SearchIconProps {
|
|
|
212
332
|
/** Native — react-native-svg (peer dependency). */
|
|
213
333
|
declare function SearchIcon({ size, color, strokeWidth, }: SearchIconProps): react.JSX.Element;
|
|
214
334
|
|
|
335
|
+
/** Native — react-native-svg (peer dependency). */
|
|
336
|
+
declare function SettingsIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
337
|
+
|
|
215
338
|
interface ShowIconProps {
|
|
216
339
|
size?: number;
|
|
217
340
|
color?: string;
|
|
@@ -228,36 +351,49 @@ interface UserIconProps {
|
|
|
228
351
|
/** Native — react-native-svg (peer dependency). */
|
|
229
352
|
declare function UserIcon({ size, color, strokeWidth }: UserIconProps): react.JSX.Element;
|
|
230
353
|
|
|
354
|
+
/** Native — react-native-svg (peer dependency). */
|
|
355
|
+
declare function VideoIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
356
|
+
|
|
231
357
|
declare const icons: {
|
|
232
358
|
readonly arrowRight: typeof ArrowRightIcon;
|
|
233
359
|
readonly bag: typeof BagIcon;
|
|
234
360
|
readonly bell: typeof BellIcon;
|
|
235
361
|
readonly building: typeof BuildingIcon;
|
|
362
|
+
readonly calendar: typeof CalendarIcon;
|
|
363
|
+
readonly calendarOutline: typeof CalendarOutlineIcon;
|
|
236
364
|
readonly camera: typeof CameraIcon;
|
|
237
365
|
readonly check: typeof CheckIcon;
|
|
238
366
|
readonly checkBadge: typeof CheckBadgeIcon;
|
|
239
367
|
readonly chevronDown: typeof ChevronDownIcon;
|
|
368
|
+
readonly chevronLeft: typeof ChevronLeftIcon;
|
|
240
369
|
readonly clock: typeof ClockIcon;
|
|
241
370
|
readonly facebook: typeof FacebookIcon;
|
|
371
|
+
readonly heart: typeof HeartIcon;
|
|
372
|
+
readonly helpCircle: typeof HelpCircleIcon;
|
|
242
373
|
readonly home: typeof HomeIcon;
|
|
243
374
|
readonly instagram: typeof InstagramIcon;
|
|
244
375
|
readonly key: typeof KeyIcon;
|
|
376
|
+
readonly layoutGrid: typeof LayoutGridIcon;
|
|
245
377
|
readonly linkedin: typeof LinkedInIcon;
|
|
378
|
+
readonly logOut: typeof LogOutIcon;
|
|
246
379
|
readonly mail: typeof MailIcon;
|
|
247
380
|
readonly navigate: typeof NavigateIcon;
|
|
248
381
|
readonly phone: typeof PhoneIcon;
|
|
249
382
|
readonly search: typeof SearchIcon;
|
|
383
|
+
readonly settings: typeof SettingsIcon;
|
|
250
384
|
readonly show: typeof ShowIcon;
|
|
251
385
|
readonly user: typeof UserIcon;
|
|
386
|
+
readonly video: typeof VideoIcon;
|
|
252
387
|
};
|
|
253
388
|
type IconName = keyof typeof icons;
|
|
254
389
|
declare const iconNames: IconName[];
|
|
255
390
|
declare const iconGroups: {
|
|
256
|
-
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"];
|
|
391
|
+
readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "navigate"];
|
|
392
|
+
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search", "calendar", "calendarOutline", "heart"];
|
|
393
|
+
readonly objects: readonly ["bag", "building", "clock", "user", "video"];
|
|
259
394
|
readonly communication: readonly ["mail", "phone"];
|
|
260
395
|
readonly social: readonly ["facebook", "instagram", "linkedin"];
|
|
396
|
+
readonly interface: readonly ["layoutGrid", "settings", "helpCircle", "logOut"];
|
|
261
397
|
};
|
|
262
398
|
type IconGroup = keyof typeof iconGroups;
|
|
263
399
|
declare const iconGroupNames: IconGroup[];
|
|
@@ -294,7 +430,9 @@ declare const colors: {
|
|
|
294
430
|
readonly red: "#A63E3E";
|
|
295
431
|
readonly lightGrey: "#B7B7B7";
|
|
296
432
|
readonly primaryMuted: "#B464360F";
|
|
433
|
+
readonly primaryHover: "#B4643633";
|
|
297
434
|
readonly redMuted: "#A63E3E0F";
|
|
435
|
+
readonly redHover: "#A63E3E33";
|
|
298
436
|
readonly grey0: "#767676";
|
|
299
437
|
readonly grey50: "#6E6E6E";
|
|
300
438
|
readonly grey100: "#666666";
|
|
@@ -380,6 +518,69 @@ declare const selectTypography: {
|
|
|
380
518
|
readonly letterSpacing: 0.36;
|
|
381
519
|
};
|
|
382
520
|
};
|
|
521
|
+
/** Avatar name / email / menu-item typography — 100% line-height, 0 letter-spacing. */
|
|
522
|
+
declare const avatarTypography: {
|
|
523
|
+
readonly name: {
|
|
524
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
525
|
+
readonly fontSize: 14;
|
|
526
|
+
readonly fontWeight: "600";
|
|
527
|
+
readonly lineHeight: 14;
|
|
528
|
+
readonly letterSpacing: 0;
|
|
529
|
+
};
|
|
530
|
+
readonly email: {
|
|
531
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
532
|
+
readonly fontSize: 12;
|
|
533
|
+
readonly fontWeight: "400";
|
|
534
|
+
readonly lineHeight: 12;
|
|
535
|
+
readonly letterSpacing: 0;
|
|
536
|
+
};
|
|
537
|
+
readonly menuItem: {
|
|
538
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
539
|
+
readonly fontSize: 12;
|
|
540
|
+
readonly fontWeight: "600";
|
|
541
|
+
readonly lineHeight: 12;
|
|
542
|
+
readonly letterSpacing: 0;
|
|
543
|
+
};
|
|
544
|
+
};
|
|
545
|
+
/**
|
|
546
|
+
* DatePicker typography — trigger field text plus the calendar-panel type
|
|
547
|
+
* (month heading, weekday header, day-cell numbers). No label/hint chrome —
|
|
548
|
+
* the Figma trigger is a standalone field. Figma didn't spec the month
|
|
549
|
+
* heading / day-cell number sizes, so those reuse the existing type scale
|
|
550
|
+
* for visual consistency with the rest of the kit.
|
|
551
|
+
*/
|
|
552
|
+
declare const datePickerTypography: {
|
|
553
|
+
readonly field: {
|
|
554
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
555
|
+
readonly fontSize: 12;
|
|
556
|
+
readonly fontWeight: "400";
|
|
557
|
+
readonly lineHeight: 12;
|
|
558
|
+
readonly letterSpacing: 0.36;
|
|
559
|
+
};
|
|
560
|
+
/** Calendar month/year heading — Bold, centered, White. */
|
|
561
|
+
readonly monthHeading: {
|
|
562
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
563
|
+
readonly fontSize: 14;
|
|
564
|
+
readonly fontWeight: "700";
|
|
565
|
+
readonly lineHeight: 14;
|
|
566
|
+
readonly letterSpacing: 0;
|
|
567
|
+
};
|
|
568
|
+
/** Weekday header (ԵՐ, ԵՔ, ...) — Regular, uppercase, centered, Grey/300. */
|
|
569
|
+
readonly weekday: {
|
|
570
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
571
|
+
readonly fontSize: 12;
|
|
572
|
+
readonly fontWeight: "400";
|
|
573
|
+
readonly lineHeight: 12;
|
|
574
|
+
readonly letterSpacing: 0;
|
|
575
|
+
};
|
|
576
|
+
readonly day: {
|
|
577
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
578
|
+
readonly fontSize: 14;
|
|
579
|
+
readonly fontWeight: "400";
|
|
580
|
+
readonly lineHeight: 14;
|
|
581
|
+
readonly letterSpacing: 0;
|
|
582
|
+
};
|
|
583
|
+
};
|
|
383
584
|
/** Textarea label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */
|
|
384
585
|
declare const textareaTypography: {
|
|
385
586
|
readonly label: {
|
|
@@ -405,4 +606,4 @@ declare const textareaTypography: {
|
|
|
405
606
|
};
|
|
406
607
|
};
|
|
407
608
|
|
|
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 };
|
|
609
|
+
export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DateRange, 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, MenuItem, type MenuItemProps, 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, datePickerTypography, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,61 @@
|
|
|
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, TextStyle, View, TouchableOpacityProps, ViewProps, TextInputProps, TextInput } from 'react-native';
|
|
5
|
+
|
|
6
|
+
interface MenuItemProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
7
|
+
/** Leading icon, e.g. `<CalendarIcon size={16} />` — pass it pre-colored. */
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
label: string;
|
|
10
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Row background at rest. Defaults to transparent. */
|
|
13
|
+
backgroundColor?: string;
|
|
14
|
+
/** Row background on hover/press. Defaults to `colors.grey600`. */
|
|
15
|
+
hoverColor?: string;
|
|
16
|
+
style?: StyleProp<ViewStyle>;
|
|
17
|
+
labelStyle?: StyleProp<TextStyle>;
|
|
18
|
+
className?: string;
|
|
19
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
20
|
+
}
|
|
21
|
+
declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<View>>;
|
|
22
|
+
|
|
23
|
+
/** Data shape for an Avatar dropdown option — same fields as `MenuItem`. */
|
|
24
|
+
type AvatarMenuItem = Pick<MenuItemProps, "icon" | "label" | "disabled" | "backgroundColor" | "hoverColor"> & {
|
|
25
|
+
/** Stable identity for React keys; falls back to `label`. */
|
|
26
|
+
key?: string;
|
|
27
|
+
onPress: () => void;
|
|
28
|
+
};
|
|
29
|
+
interface AvatarProps extends Omit<PressableProps, "onPress" | "disabled" | "style" | "children" | "hitSlop"> {
|
|
30
|
+
/** Logged-in user's display name. */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Shown under the name, e.g. the user's email. */
|
|
33
|
+
email?: string;
|
|
34
|
+
/** Photo URL; falls back to a placeholder icon when missing or when it fails to load. */
|
|
35
|
+
imageUrl?: string | null;
|
|
36
|
+
/** Called on every press, in addition to any menu toggling driven by `menuItems`. */
|
|
37
|
+
onPress?: (event: GestureResponderEvent) => void;
|
|
38
|
+
/** External — non-interactive. */
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/** Trailing chevron, typically used to hint a dropdown/menu. */
|
|
41
|
+
showChevron?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Account-menu options, supplied entirely by the consumer (icon, label,
|
|
44
|
+
* action, and per-item colors). When set, pressing the chip opens a
|
|
45
|
+
* dropdown listing them via `MenuItem`.
|
|
46
|
+
*/
|
|
47
|
+
menuItems?: AvatarMenuItem[];
|
|
48
|
+
/** Controlled open state for the menu. */
|
|
49
|
+
open?: boolean;
|
|
50
|
+
defaultOpen?: boolean;
|
|
51
|
+
onOpenChange?: (open: boolean) => void;
|
|
52
|
+
/** Fixed menu width; defaults to matching the chip's width. */
|
|
53
|
+
menuWidth?: number;
|
|
54
|
+
style?: StyleProp<ViewStyle>;
|
|
55
|
+
className?: string;
|
|
56
|
+
hitSlop?: PressableProps["hitSlop"];
|
|
57
|
+
}
|
|
58
|
+
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<View>>;
|
|
5
59
|
|
|
6
60
|
type ButtonVariant = "primary" | "secondary";
|
|
7
61
|
type ButtonSize = "lg" | "sm";
|
|
@@ -37,6 +91,51 @@ interface CheckboxProps extends Omit<PressableProps, "onPress" | "disabled" | "s
|
|
|
37
91
|
}
|
|
38
92
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<View>>;
|
|
39
93
|
|
|
94
|
+
type DateRange = {
|
|
95
|
+
start: Date | null;
|
|
96
|
+
end: Date | null;
|
|
97
|
+
};
|
|
98
|
+
type DatePickerBaseProps = Omit<ViewProps, "style" | "children"> & {
|
|
99
|
+
placeholder?: string;
|
|
100
|
+
open?: boolean;
|
|
101
|
+
defaultOpen?: boolean;
|
|
102
|
+
onOpenChange?: (open: boolean) => void;
|
|
103
|
+
disabled?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* When true (default), the calendar closes after a complete selection —
|
|
106
|
+
* a single date, or both ends of a range. Set false to keep it open.
|
|
107
|
+
*/
|
|
108
|
+
closeOnSelect?: boolean;
|
|
109
|
+
minDate?: Date;
|
|
110
|
+
maxDate?: Date;
|
|
111
|
+
/** First visible month when the calendar opens; defaults to the selected value's month, else today. */
|
|
112
|
+
defaultVisibleMonth?: Date;
|
|
113
|
+
/** Monday-first full month names. Defaults to Armenian. */
|
|
114
|
+
monthNames?: string[];
|
|
115
|
+
/** Weekday abbreviations, ordered starting from `weekStartsOn`. Defaults to Armenian, Monday-first. */
|
|
116
|
+
weekdayLabels?: string[];
|
|
117
|
+
/** Formats a selected date for the trigger and day accessibility labels. Defaults to "DD.MM.YYYY". */
|
|
118
|
+
formatValue?: (date: Date) => string;
|
|
119
|
+
/** First day of the week column (0 = Sunday, 1 = Monday). Defaults to Monday. */
|
|
120
|
+
weekStartsOn?: 0 | 1;
|
|
121
|
+
style?: StyleProp<ViewStyle>;
|
|
122
|
+
className?: string;
|
|
123
|
+
};
|
|
124
|
+
type DatePickerSingleProps = DatePickerBaseProps & {
|
|
125
|
+
range?: false;
|
|
126
|
+
value?: Date | null;
|
|
127
|
+
defaultValue?: Date | null;
|
|
128
|
+
onValueChange?: (value: Date | null) => void;
|
|
129
|
+
};
|
|
130
|
+
type DatePickerRangeProps = DatePickerBaseProps & {
|
|
131
|
+
range: true;
|
|
132
|
+
value?: DateRange;
|
|
133
|
+
defaultValue?: DateRange;
|
|
134
|
+
onValueChange?: (value: DateRange) => void;
|
|
135
|
+
};
|
|
136
|
+
type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps;
|
|
137
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<View>>;
|
|
138
|
+
|
|
40
139
|
type InputSize = "lg" | "sm";
|
|
41
140
|
interface InputProps extends Omit<TextInputProps, "style" | "editable"> {
|
|
42
141
|
label?: string;
|
|
@@ -166,6 +265,12 @@ declare function BellIcon({ size, color, strokeWidth }: IconProps): react.JSX.El
|
|
|
166
265
|
|
|
167
266
|
declare function BuildingIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
168
267
|
|
|
268
|
+
/** Native — react-native-svg (peer dependency). */
|
|
269
|
+
declare function CalendarIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
270
|
+
|
|
271
|
+
/** Native — react-native-svg (peer dependency). */
|
|
272
|
+
declare function CalendarOutlineIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
273
|
+
|
|
169
274
|
declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
170
275
|
|
|
171
276
|
interface CheckIconProps {
|
|
@@ -186,18 +291,33 @@ interface ChevronDownIconProps {
|
|
|
186
291
|
/** Native — react-native-svg (peer dependency). */
|
|
187
292
|
declare function ChevronDownIcon({ size, color, strokeWidth, }: ChevronDownIconProps): react.JSX.Element;
|
|
188
293
|
|
|
294
|
+
/** Native — react-native-svg (peer dependency). */
|
|
295
|
+
declare function ChevronLeftIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
296
|
+
|
|
189
297
|
declare function ClockIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
190
298
|
|
|
191
299
|
declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
|
|
192
300
|
|
|
301
|
+
/** Native — react-native-svg (peer dependency). */
|
|
302
|
+
declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
303
|
+
|
|
304
|
+
/** Native — react-native-svg (peer dependency). */
|
|
305
|
+
declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
306
|
+
|
|
193
307
|
declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
194
308
|
|
|
195
309
|
declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
|
|
196
310
|
|
|
197
311
|
declare function KeyIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
198
312
|
|
|
313
|
+
/** Native — react-native-svg (peer dependency). */
|
|
314
|
+
declare function LayoutGridIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
|
|
315
|
+
|
|
199
316
|
declare function LinkedInIcon({ size, color }: IconProps): react.JSX.Element;
|
|
200
317
|
|
|
318
|
+
/** Native — react-native-svg (peer dependency). */
|
|
319
|
+
declare function LogOutIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
320
|
+
|
|
201
321
|
declare function MailIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
202
322
|
|
|
203
323
|
declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
@@ -212,6 +332,9 @@ interface SearchIconProps {
|
|
|
212
332
|
/** Native — react-native-svg (peer dependency). */
|
|
213
333
|
declare function SearchIcon({ size, color, strokeWidth, }: SearchIconProps): react.JSX.Element;
|
|
214
334
|
|
|
335
|
+
/** Native — react-native-svg (peer dependency). */
|
|
336
|
+
declare function SettingsIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
337
|
+
|
|
215
338
|
interface ShowIconProps {
|
|
216
339
|
size?: number;
|
|
217
340
|
color?: string;
|
|
@@ -228,36 +351,49 @@ interface UserIconProps {
|
|
|
228
351
|
/** Native — react-native-svg (peer dependency). */
|
|
229
352
|
declare function UserIcon({ size, color, strokeWidth }: UserIconProps): react.JSX.Element;
|
|
230
353
|
|
|
354
|
+
/** Native — react-native-svg (peer dependency). */
|
|
355
|
+
declare function VideoIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
|
|
356
|
+
|
|
231
357
|
declare const icons: {
|
|
232
358
|
readonly arrowRight: typeof ArrowRightIcon;
|
|
233
359
|
readonly bag: typeof BagIcon;
|
|
234
360
|
readonly bell: typeof BellIcon;
|
|
235
361
|
readonly building: typeof BuildingIcon;
|
|
362
|
+
readonly calendar: typeof CalendarIcon;
|
|
363
|
+
readonly calendarOutline: typeof CalendarOutlineIcon;
|
|
236
364
|
readonly camera: typeof CameraIcon;
|
|
237
365
|
readonly check: typeof CheckIcon;
|
|
238
366
|
readonly checkBadge: typeof CheckBadgeIcon;
|
|
239
367
|
readonly chevronDown: typeof ChevronDownIcon;
|
|
368
|
+
readonly chevronLeft: typeof ChevronLeftIcon;
|
|
240
369
|
readonly clock: typeof ClockIcon;
|
|
241
370
|
readonly facebook: typeof FacebookIcon;
|
|
371
|
+
readonly heart: typeof HeartIcon;
|
|
372
|
+
readonly helpCircle: typeof HelpCircleIcon;
|
|
242
373
|
readonly home: typeof HomeIcon;
|
|
243
374
|
readonly instagram: typeof InstagramIcon;
|
|
244
375
|
readonly key: typeof KeyIcon;
|
|
376
|
+
readonly layoutGrid: typeof LayoutGridIcon;
|
|
245
377
|
readonly linkedin: typeof LinkedInIcon;
|
|
378
|
+
readonly logOut: typeof LogOutIcon;
|
|
246
379
|
readonly mail: typeof MailIcon;
|
|
247
380
|
readonly navigate: typeof NavigateIcon;
|
|
248
381
|
readonly phone: typeof PhoneIcon;
|
|
249
382
|
readonly search: typeof SearchIcon;
|
|
383
|
+
readonly settings: typeof SettingsIcon;
|
|
250
384
|
readonly show: typeof ShowIcon;
|
|
251
385
|
readonly user: typeof UserIcon;
|
|
386
|
+
readonly video: typeof VideoIcon;
|
|
252
387
|
};
|
|
253
388
|
type IconName = keyof typeof icons;
|
|
254
389
|
declare const iconNames: IconName[];
|
|
255
390
|
declare const iconGroups: {
|
|
256
|
-
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"];
|
|
391
|
+
readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "navigate"];
|
|
392
|
+
readonly actions: readonly ["show", "bell", "camera", "key", "check", "checkBadge", "search", "calendar", "calendarOutline", "heart"];
|
|
393
|
+
readonly objects: readonly ["bag", "building", "clock", "user", "video"];
|
|
259
394
|
readonly communication: readonly ["mail", "phone"];
|
|
260
395
|
readonly social: readonly ["facebook", "instagram", "linkedin"];
|
|
396
|
+
readonly interface: readonly ["layoutGrid", "settings", "helpCircle", "logOut"];
|
|
261
397
|
};
|
|
262
398
|
type IconGroup = keyof typeof iconGroups;
|
|
263
399
|
declare const iconGroupNames: IconGroup[];
|
|
@@ -294,7 +430,9 @@ declare const colors: {
|
|
|
294
430
|
readonly red: "#A63E3E";
|
|
295
431
|
readonly lightGrey: "#B7B7B7";
|
|
296
432
|
readonly primaryMuted: "#B464360F";
|
|
433
|
+
readonly primaryHover: "#B4643633";
|
|
297
434
|
readonly redMuted: "#A63E3E0F";
|
|
435
|
+
readonly redHover: "#A63E3E33";
|
|
298
436
|
readonly grey0: "#767676";
|
|
299
437
|
readonly grey50: "#6E6E6E";
|
|
300
438
|
readonly grey100: "#666666";
|
|
@@ -380,6 +518,69 @@ declare const selectTypography: {
|
|
|
380
518
|
readonly letterSpacing: 0.36;
|
|
381
519
|
};
|
|
382
520
|
};
|
|
521
|
+
/** Avatar name / email / menu-item typography — 100% line-height, 0 letter-spacing. */
|
|
522
|
+
declare const avatarTypography: {
|
|
523
|
+
readonly name: {
|
|
524
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
525
|
+
readonly fontSize: 14;
|
|
526
|
+
readonly fontWeight: "600";
|
|
527
|
+
readonly lineHeight: 14;
|
|
528
|
+
readonly letterSpacing: 0;
|
|
529
|
+
};
|
|
530
|
+
readonly email: {
|
|
531
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
532
|
+
readonly fontSize: 12;
|
|
533
|
+
readonly fontWeight: "400";
|
|
534
|
+
readonly lineHeight: 12;
|
|
535
|
+
readonly letterSpacing: 0;
|
|
536
|
+
};
|
|
537
|
+
readonly menuItem: {
|
|
538
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
539
|
+
readonly fontSize: 12;
|
|
540
|
+
readonly fontWeight: "600";
|
|
541
|
+
readonly lineHeight: 12;
|
|
542
|
+
readonly letterSpacing: 0;
|
|
543
|
+
};
|
|
544
|
+
};
|
|
545
|
+
/**
|
|
546
|
+
* DatePicker typography — trigger field text plus the calendar-panel type
|
|
547
|
+
* (month heading, weekday header, day-cell numbers). No label/hint chrome —
|
|
548
|
+
* the Figma trigger is a standalone field. Figma didn't spec the month
|
|
549
|
+
* heading / day-cell number sizes, so those reuse the existing type scale
|
|
550
|
+
* for visual consistency with the rest of the kit.
|
|
551
|
+
*/
|
|
552
|
+
declare const datePickerTypography: {
|
|
553
|
+
readonly field: {
|
|
554
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
555
|
+
readonly fontSize: 12;
|
|
556
|
+
readonly fontWeight: "400";
|
|
557
|
+
readonly lineHeight: 12;
|
|
558
|
+
readonly letterSpacing: 0.36;
|
|
559
|
+
};
|
|
560
|
+
/** Calendar month/year heading — Bold, centered, White. */
|
|
561
|
+
readonly monthHeading: {
|
|
562
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
563
|
+
readonly fontSize: 14;
|
|
564
|
+
readonly fontWeight: "700";
|
|
565
|
+
readonly lineHeight: 14;
|
|
566
|
+
readonly letterSpacing: 0;
|
|
567
|
+
};
|
|
568
|
+
/** Weekday header (ԵՐ, ԵՔ, ...) — Regular, uppercase, centered, Grey/300. */
|
|
569
|
+
readonly weekday: {
|
|
570
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
571
|
+
readonly fontSize: 12;
|
|
572
|
+
readonly fontWeight: "400";
|
|
573
|
+
readonly lineHeight: 12;
|
|
574
|
+
readonly letterSpacing: 0;
|
|
575
|
+
};
|
|
576
|
+
readonly day: {
|
|
577
|
+
readonly fontFamily: "Noto Sans Armenian";
|
|
578
|
+
readonly fontSize: 14;
|
|
579
|
+
readonly fontWeight: "400";
|
|
580
|
+
readonly lineHeight: 14;
|
|
581
|
+
readonly letterSpacing: 0;
|
|
582
|
+
};
|
|
583
|
+
};
|
|
383
584
|
/** Textarea label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */
|
|
384
585
|
declare const textareaTypography: {
|
|
385
586
|
readonly label: {
|
|
@@ -405,4 +606,4 @@ declare const textareaTypography: {
|
|
|
405
606
|
};
|
|
406
607
|
};
|
|
407
608
|
|
|
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 };
|
|
609
|
+
export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DateRange, 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, MenuItem, type MenuItemProps, 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, datePickerTypography, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
|