@ecohouse/ui 0.1.7 → 0.1.9

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.d.cts CHANGED
@@ -20,6 +20,27 @@ interface MenuItemProps extends Omit<PressableProps, "onPress" | "disabled" | "s
20
20
  }
21
21
  declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<View>>;
22
22
 
23
+ type BrandLogoVariant = "white" | "brand";
24
+ interface BrandLogoProps {
25
+ /** White for dark surfaces, or the Cortel brand color for light surfaces. */
26
+ variant?: BrandLogoVariant;
27
+ /** Rendered width. Defaults to 62; setting only width preserves the original ratio. */
28
+ width?: number;
29
+ /** Rendered height. Defaults to 86; setting only height preserves the original ratio. */
30
+ height?: number;
31
+ /** Accessible name announced for the logo. */
32
+ accessibilityLabel?: string;
33
+ }
34
+ declare const BRAND_LOGO_DEFAULT_WIDTH = 62;
35
+ declare const BRAND_LOGO_DEFAULT_HEIGHT = 86;
36
+ declare const BRAND_LOGO_COLORS: {
37
+ readonly white: "#FFFFFF";
38
+ readonly brand: "#B76533";
39
+ };
40
+
41
+ /** Native Cortel Booking brand mark. */
42
+ declare function BrandLogo({ variant, width, height, accessibilityLabel, }: BrandLogoProps): react.JSX.Element;
43
+
23
44
  /** Data shape for an Avatar dropdown option — same fields as `MenuItem`. */
24
45
  type AvatarMenuItem = Pick<MenuItemProps, "icon" | "label" | "disabled" | "backgroundColor" | "hoverColor"> & {
25
46
  /** Stable identity for React keys; falls back to `label`. */
@@ -114,6 +135,8 @@ declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
114
135
  /** Native — react-native-svg (peer dependency). */
115
136
  declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
116
137
 
138
+ declare function GlobeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
139
+
117
140
  /** Native — react-native-svg (peer dependency). */
118
141
  declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
119
142
 
@@ -204,6 +227,7 @@ declare const icons: {
204
227
  readonly clock: typeof ClockIcon;
205
228
  readonly facebook: typeof FacebookIcon;
206
229
  readonly heart: typeof HeartIcon;
230
+ readonly globe: typeof GlobeIcon;
207
231
  readonly helpCircle: typeof HelpCircleIcon;
208
232
  readonly home: typeof HomeIcon;
209
233
  readonly instagram: typeof InstagramIcon;
@@ -234,7 +258,7 @@ declare const iconGroups: {
234
258
  readonly objects: readonly ["bag", "building", "clock", "user", "usersAlt", "video"];
235
259
  readonly communication: readonly ["mail", "phone"];
236
260
  readonly social: readonly ["facebook", "instagram", "linkedin"];
237
- readonly interface: readonly ["layoutGrid", "sidebar", "settings", "helpCircle", "logOut"];
261
+ readonly interface: readonly ["globe", "layoutGrid", "sidebar", "settings", "helpCircle", "logOut"];
238
262
  };
239
263
  type IconGroup = keyof typeof iconGroups;
240
264
  declare const iconGroupNames: IconGroup[];
@@ -287,6 +311,38 @@ interface SegmentedToggleProps extends Omit<ViewProps, "style" | "children"> {
287
311
  }
288
312
  declare const SegmentedToggle: react.ForwardRefExoticComponent<SegmentedToggleProps & react.RefAttributes<View>>;
289
313
 
314
+ interface LanguageOption {
315
+ /** Stable locale identifier, such as `hy`, `en`, or `ru`. */
316
+ value: string;
317
+ /** Short label shown in the trigger and menu. */
318
+ label: string;
319
+ }
320
+ interface LanguageSwitcherProps extends Omit<ViewProps, "style" | "children"> {
321
+ options?: readonly LanguageOption[];
322
+ value?: string;
323
+ defaultValue?: string;
324
+ onValueChange?: (value: string) => void;
325
+ open?: boolean;
326
+ defaultOpen?: boolean;
327
+ onOpenChange?: (open: boolean) => void;
328
+ disabled?: boolean;
329
+ accessibilityLabel?: string;
330
+ style?: StyleProp<ViewStyle>;
331
+ className?: string;
332
+ hitSlop?: PressableProps["hitSlop"];
333
+ }
334
+ declare const defaultLanguageOptions: readonly [{
335
+ readonly value: "hy";
336
+ readonly label: "Հայ";
337
+ }, {
338
+ readonly value: "en";
339
+ readonly label: "Eng";
340
+ }, {
341
+ readonly value: "ru";
342
+ readonly label: "Рус";
343
+ }];
344
+ declare const LanguageSwitcher: react.ForwardRefExoticComponent<LanguageSwitcherProps & react.RefAttributes<View>>;
345
+
290
346
  interface StatCardProps extends Omit<ViewProps, "style" | "children"> {
291
347
  label: string;
292
348
  icon: IconComponent;
@@ -615,6 +671,14 @@ declare const segmentedToggleTypography: {
615
671
  readonly lineHeight: 14;
616
672
  readonly letterSpacing: 0;
617
673
  };
674
+ /** Language switcher trigger and option labels — SemiBold 14. */
675
+ declare const languageSwitcherTypography: {
676
+ readonly fontFamily: "Noto Sans Armenian";
677
+ readonly fontSize: 14;
678
+ readonly fontWeight: "600";
679
+ readonly lineHeight: 19;
680
+ readonly letterSpacing: 0;
681
+ };
618
682
  /** Counter value — Bold 14, line-height 100%, letter-spacing 0. */
619
683
  declare const counterTypography: {
620
684
  readonly fontFamily: "Noto Sans Armenian";
@@ -798,4 +862,4 @@ declare const textareaTypography: {
798
862
  };
799
863
  };
800
864
 
801
- export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, Badge, type BadgeProps, type BadgeVariant, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, CommentCard, type CommentCardProps, Counter, type CounterProps, 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, MinusIcon, NavigateIcon, PhoneIcon, PlusIcon, RatingInput, type RatingInputProps, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, SidebarIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, UsersAltIcon, VideoIcon, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, ratingTypography, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
865
+ export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, CommentCard, type CommentCardProps, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DateRange, FacebookIcon, GlobeIcon, type GreyStep, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, LogOutIcon, MailIcon, MenuItem, type MenuItemProps, MinusIcon, NavigateIcon, PhoneIcon, PlusIcon, RatingInput, type RatingInputProps, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, SidebarIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, UsersAltIcon, VideoIcon, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
package/dist/index.d.ts CHANGED
@@ -20,6 +20,27 @@ interface MenuItemProps extends Omit<PressableProps, "onPress" | "disabled" | "s
20
20
  }
21
21
  declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<View>>;
22
22
 
23
+ type BrandLogoVariant = "white" | "brand";
24
+ interface BrandLogoProps {
25
+ /** White for dark surfaces, or the Cortel brand color for light surfaces. */
26
+ variant?: BrandLogoVariant;
27
+ /** Rendered width. Defaults to 62; setting only width preserves the original ratio. */
28
+ width?: number;
29
+ /** Rendered height. Defaults to 86; setting only height preserves the original ratio. */
30
+ height?: number;
31
+ /** Accessible name announced for the logo. */
32
+ accessibilityLabel?: string;
33
+ }
34
+ declare const BRAND_LOGO_DEFAULT_WIDTH = 62;
35
+ declare const BRAND_LOGO_DEFAULT_HEIGHT = 86;
36
+ declare const BRAND_LOGO_COLORS: {
37
+ readonly white: "#FFFFFF";
38
+ readonly brand: "#B76533";
39
+ };
40
+
41
+ /** Native Cortel Booking brand mark. */
42
+ declare function BrandLogo({ variant, width, height, accessibilityLabel, }: BrandLogoProps): react.JSX.Element;
43
+
23
44
  /** Data shape for an Avatar dropdown option — same fields as `MenuItem`. */
24
45
  type AvatarMenuItem = Pick<MenuItemProps, "icon" | "label" | "disabled" | "backgroundColor" | "hoverColor"> & {
25
46
  /** Stable identity for React keys; falls back to `label`. */
@@ -114,6 +135,8 @@ declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
114
135
  /** Native — react-native-svg (peer dependency). */
115
136
  declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
116
137
 
138
+ declare function GlobeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
139
+
117
140
  /** Native — react-native-svg (peer dependency). */
118
141
  declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
119
142
 
@@ -204,6 +227,7 @@ declare const icons: {
204
227
  readonly clock: typeof ClockIcon;
205
228
  readonly facebook: typeof FacebookIcon;
206
229
  readonly heart: typeof HeartIcon;
230
+ readonly globe: typeof GlobeIcon;
207
231
  readonly helpCircle: typeof HelpCircleIcon;
208
232
  readonly home: typeof HomeIcon;
209
233
  readonly instagram: typeof InstagramIcon;
@@ -234,7 +258,7 @@ declare const iconGroups: {
234
258
  readonly objects: readonly ["bag", "building", "clock", "user", "usersAlt", "video"];
235
259
  readonly communication: readonly ["mail", "phone"];
236
260
  readonly social: readonly ["facebook", "instagram", "linkedin"];
237
- readonly interface: readonly ["layoutGrid", "sidebar", "settings", "helpCircle", "logOut"];
261
+ readonly interface: readonly ["globe", "layoutGrid", "sidebar", "settings", "helpCircle", "logOut"];
238
262
  };
239
263
  type IconGroup = keyof typeof iconGroups;
240
264
  declare const iconGroupNames: IconGroup[];
@@ -287,6 +311,38 @@ interface SegmentedToggleProps extends Omit<ViewProps, "style" | "children"> {
287
311
  }
288
312
  declare const SegmentedToggle: react.ForwardRefExoticComponent<SegmentedToggleProps & react.RefAttributes<View>>;
289
313
 
314
+ interface LanguageOption {
315
+ /** Stable locale identifier, such as `hy`, `en`, or `ru`. */
316
+ value: string;
317
+ /** Short label shown in the trigger and menu. */
318
+ label: string;
319
+ }
320
+ interface LanguageSwitcherProps extends Omit<ViewProps, "style" | "children"> {
321
+ options?: readonly LanguageOption[];
322
+ value?: string;
323
+ defaultValue?: string;
324
+ onValueChange?: (value: string) => void;
325
+ open?: boolean;
326
+ defaultOpen?: boolean;
327
+ onOpenChange?: (open: boolean) => void;
328
+ disabled?: boolean;
329
+ accessibilityLabel?: string;
330
+ style?: StyleProp<ViewStyle>;
331
+ className?: string;
332
+ hitSlop?: PressableProps["hitSlop"];
333
+ }
334
+ declare const defaultLanguageOptions: readonly [{
335
+ readonly value: "hy";
336
+ readonly label: "Հայ";
337
+ }, {
338
+ readonly value: "en";
339
+ readonly label: "Eng";
340
+ }, {
341
+ readonly value: "ru";
342
+ readonly label: "Рус";
343
+ }];
344
+ declare const LanguageSwitcher: react.ForwardRefExoticComponent<LanguageSwitcherProps & react.RefAttributes<View>>;
345
+
290
346
  interface StatCardProps extends Omit<ViewProps, "style" | "children"> {
291
347
  label: string;
292
348
  icon: IconComponent;
@@ -615,6 +671,14 @@ declare const segmentedToggleTypography: {
615
671
  readonly lineHeight: 14;
616
672
  readonly letterSpacing: 0;
617
673
  };
674
+ /** Language switcher trigger and option labels — SemiBold 14. */
675
+ declare const languageSwitcherTypography: {
676
+ readonly fontFamily: "Noto Sans Armenian";
677
+ readonly fontSize: 14;
678
+ readonly fontWeight: "600";
679
+ readonly lineHeight: 19;
680
+ readonly letterSpacing: 0;
681
+ };
618
682
  /** Counter value — Bold 14, line-height 100%, letter-spacing 0. */
619
683
  declare const counterTypography: {
620
684
  readonly fontFamily: "Noto Sans Armenian";
@@ -798,4 +862,4 @@ declare const textareaTypography: {
798
862
  };
799
863
  };
800
864
 
801
- export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, Badge, type BadgeProps, type BadgeVariant, BagIcon, BellIcon, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, CommentCard, type CommentCardProps, Counter, type CounterProps, 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, MinusIcon, NavigateIcon, PhoneIcon, PlusIcon, RatingInput, type RatingInputProps, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, SidebarIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, UsersAltIcon, VideoIcon, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, ratingTypography, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
865
+ export { ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockIcon, CommentCard, type CommentCardProps, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DateRange, FacebookIcon, GlobeIcon, type GreyStep, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, Input, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, LogOutIcon, MailIcon, MenuItem, type MenuItemProps, MinusIcon, NavigateIcon, PhoneIcon, PlusIcon, RatingInput, type RatingInputProps, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShowIcon, SidebarIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, Textarea, type TextareaProps, Toggle, type ToggleProps, UserIcon, UsersAltIcon, VideoIcon, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };