@ecohouse/ui 0.1.33 → 0.1.34

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 (45) hide show
  1. package/dist/index.cjs +29640 -471
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +101 -4
  4. package/dist/index.d.ts +101 -4
  5. package/dist/index.js +29568 -407
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/components/AccordionItem/AccordionItem.stories.tsx +54 -0
  9. package/src/components/AccordionItem/AccordionItem.tsx +220 -0
  10. package/src/components/AccordionItem/index.ts +2 -0
  11. package/src/components/AccountHeader/AccountHeader.tsx +34 -29
  12. package/src/components/Button/Button.stories.tsx +10 -1
  13. package/src/components/Button/Button.tsx +32 -3
  14. package/src/components/ContactInfoCard/ContactInfoCard.stories.tsx +30 -0
  15. package/src/components/ContactInfoCard/ContactInfoCard.tsx +141 -0
  16. package/src/components/ContactInfoCard/index.ts +2 -0
  17. package/src/components/DatePicker/DatePicker.tsx +4 -1
  18. package/src/components/Modal/Modal.stories.tsx +100 -0
  19. package/src/components/Modal/Modal.tsx +165 -0
  20. package/src/components/Modal/index.ts +2 -0
  21. package/src/components/Sidebar/Sidebar.tsx +19 -3
  22. package/src/components/ToggleRow/ToggleRow.stories.tsx +46 -0
  23. package/src/components/ToggleRow/ToggleRow.tsx +121 -0
  24. package/src/components/ToggleRow/index.ts +2 -0
  25. package/src/components/VerificationCodeInput/VerificationCodeInput.tsx +80 -60
  26. package/src/components/index.ts +12 -0
  27. package/src/icons/CameraFilled/CameraFilledIcon.tsx +15 -0
  28. package/src/icons/CameraFilled/CameraFilledIcon.web.tsx +21 -0
  29. package/src/icons/CameraFilled/cameraFilledPath.ts +2 -0
  30. package/src/icons/CameraFilled/index.ts +1 -0
  31. package/src/icons/Headset/HeadsetIcon.tsx +26 -0
  32. package/src/icons/Headset/HeadsetIcon.web.tsx +25 -0
  33. package/src/icons/Headset/headsetPath.ts +6 -0
  34. package/src/icons/Headset/index.ts +1 -0
  35. package/src/icons/Hide/HideIcon.tsx +21 -0
  36. package/src/icons/Hide/HideIcon.web.tsx +27 -0
  37. package/src/icons/Hide/hidePath.ts +3 -0
  38. package/src/icons/Hide/index.ts +1 -0
  39. package/src/icons/MenuLines/MenuLinesIcon.tsx +20 -0
  40. package/src/icons/MenuLines/MenuLinesIcon.web.tsx +26 -0
  41. package/src/icons/MenuLines/index.ts +1 -0
  42. package/src/icons/MenuLines/menuLinesPath.ts +3 -0
  43. package/src/icons/index.ts +4 -0
  44. package/src/icons/registry.ts +11 -0
  45. package/src/index.ts +12 -0
package/dist/index.d.cts CHANGED
@@ -156,6 +156,13 @@ interface AccountHeaderProps extends Omit<ViewProps, "style" | "children"> {
156
156
  menuAccessibilityLabel?: string;
157
157
  /** Accessible name for notifications. Defaults to `"Notifications"`. */
158
158
  notificationsAccessibilityLabel?: string;
159
+ /**
160
+ * Web CSS class for the menu control (hide on desktop via `#account-header-menu` /
161
+ * `.account-header-menu` while keeping it mounted to avoid a mobile refresh flash).
162
+ */
163
+ menuClassName?: string;
164
+ /** Optional title style override (e.g. mobile 14px from the web app). */
165
+ titleStyle?: StyleProp<TextStyle>;
159
166
  style?: StyleProp<ViewStyle>;
160
167
  className?: string;
161
168
  }
@@ -200,6 +207,9 @@ declare function CalendarOutlineIcon({ size, color, strokeWidth, }: IconProps):
200
207
 
201
208
  declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
202
209
 
210
+ /** Native — filled camera, 32×32 viewBox. */
211
+ declare function CameraFilledIcon({ size, color }: IconProps): react.JSX.Element;
212
+
203
213
  interface CheckIconProps {
204
214
  size?: number;
205
215
  color?: string;
@@ -260,11 +270,16 @@ declare function FullscreenIcon({ size, color, strokeWidth }: IconProps): react.
260
270
  /** Native — react-native-svg (peer dependency). */
261
271
  declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
262
272
 
273
+ declare function HeadsetIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
274
+
263
275
  declare function GlobeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
264
276
 
265
277
  /** Native — react-native-svg (peer dependency). */
266
278
  declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
267
279
 
280
+ /** Native — react-native-svg (peer dependency). */
281
+ declare function HideIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
282
+
268
283
  declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
269
284
 
270
285
  declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
@@ -304,6 +319,8 @@ interface MenuIconProps extends IconProps {
304
319
  }
305
320
  declare function MenuIcon({ size, color, strokeWidth, open, }: MenuIconProps): react.JSX.Element;
306
321
 
322
+ declare function MenuLinesIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
323
+
307
324
  declare function MinusIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
308
325
 
309
326
  declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
@@ -385,6 +402,7 @@ declare const icons: {
385
402
  readonly calendar: typeof CalendarIcon;
386
403
  readonly calendarOutline: typeof CalendarOutlineIcon;
387
404
  readonly camera: typeof CameraIcon;
405
+ readonly cameraFilled: typeof CameraFilledIcon;
388
406
  readonly check: typeof CheckIcon;
389
407
  readonly checkBadge: typeof CheckBadgeIcon;
390
408
  readonly checkSuccess: typeof CheckSuccessIcon;
@@ -404,9 +422,11 @@ declare const icons: {
404
422
  readonly fullscreen: typeof FullscreenIcon;
405
423
  readonly guests: typeof GuestsIcon;
406
424
  readonly heart: typeof HeartIcon;
425
+ readonly headset: typeof HeadsetIcon;
407
426
  readonly globe: typeof GlobeIcon;
408
427
  readonly googlePlay: typeof GooglePlayIcon;
409
428
  readonly helpCircle: typeof HelpCircleIcon;
429
+ readonly hide: typeof HideIcon;
410
430
  readonly home: typeof HomeIcon;
411
431
  readonly instagram: typeof InstagramIcon;
412
432
  readonly key: typeof KeyIcon;
@@ -422,6 +442,7 @@ declare const icons: {
422
442
  readonly mapCollapse: typeof MapCollapseIcon;
423
443
  readonly mapExpand: typeof MapExpandIcon;
424
444
  readonly menu: typeof MenuIcon;
445
+ readonly menuLines: typeof MenuLinesIcon;
425
446
  readonly minus: typeof MinusIcon;
426
447
  readonly navigate: typeof NavigateIcon;
427
448
  readonly noSmoking: typeof NoSmokingIcon;
@@ -454,8 +475,8 @@ declare const icons: {
454
475
  type IconName = keyof typeof icons;
455
476
  declare const iconNames: IconName[];
456
477
  declare const iconGroups: {
457
- readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "listView", "locationPin", "locationUser", "mapCollapse", "mapExpand", "mapView", "menu", "navigate"];
458
- readonly actions: readonly ["show", "alertTriangle", "ban", "bell", "camera", "key", "check", "checkBadge", "checkSuccess", "copy", "download", "search", "calendar", "calendarOutline", "close", "edit", "ratingStar", "saveHeart", "share", "filters", "fullscreen", "heart", "zoomOut", "star", "starFilled", "minus", "plus", "refresh", "refundStatus", "sort"];
478
+ readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "listView", "locationPin", "locationUser", "mapCollapse", "mapExpand", "mapView", "menu", "menuLines", "navigate"];
479
+ readonly actions: readonly ["show", "hide", "alertTriangle", "ban", "bell", "camera", "key", "check", "checkBadge", "checkSuccess", "copy", "download", "search", "calendar", "calendarOutline", "close", "edit", "ratingStar", "saveHeart", "share", "filters", "fullscreen", "heart", "headset", "zoomOut", "star", "starFilled", "minus", "plus", "refresh", "refundStatus", "sort"];
459
480
  readonly objects: readonly ["bag", "bathrooms", "bedrooms", "building", "cardLocation", "clock", "clockFilled", "guests", "lock", "noSmoking", "paw", "qrCode", "quietHours", "trash", "user", "usersAlt", "video", "videoOff", "whatsApp"];
460
481
  readonly communication: readonly ["mail", "phone"];
461
482
  readonly social: readonly ["apple", "facebook", "googlePlay", "instagram", "linkedin"];
@@ -548,6 +569,41 @@ interface InfoTileProps extends Omit<ViewProps, "style" | "children"> {
548
569
  */
549
570
  declare const InfoTile: react.ForwardRefExoticComponent<InfoTileProps & react.RefAttributes<View>>;
550
571
 
572
+ interface ContactInfoCardProps extends Omit<ViewProps, "style" | "children"> {
573
+ title: string;
574
+ value: string;
575
+ icon: IconComponent;
576
+ iconProps?: Omit<IconProps, "size">;
577
+ iconSize?: number;
578
+ /** Icon slot fill. Defaults to `#E38E5E0F`. */
579
+ iconSlotBackgroundColor?: string;
580
+ style?: StyleProp<ViewStyle>;
581
+ className?: string;
582
+ }
583
+ /**
584
+ * Support contact strip — icon slot + title/value.
585
+ * Mobile: height 78, padding 16, gap 16, radius 20.
586
+ * Desktop: height 96, padding 24, gap 24, radius 20.
587
+ */
588
+ declare const ContactInfoCard: react.ForwardRefExoticComponent<ContactInfoCardProps & react.RefAttributes<View>>;
589
+
590
+ interface AccordionItemProps extends Omit<ViewProps, "style" | "children"> {
591
+ title: string;
592
+ /** Expanded body text. */
593
+ children: string;
594
+ open?: boolean;
595
+ defaultOpen?: boolean;
596
+ onOpenChange?: (open: boolean) => void;
597
+ style?: StyleProp<ViewStyle>;
598
+ className?: string;
599
+ }
600
+ /**
601
+ * FAQ / accordion row — grey700 card.
602
+ * Mobile: radius 16, padding 16/12, body 12px.
603
+ * Desktop: radius 24, padding 16/24, body 14px.
604
+ */
605
+ declare const AccordionItem: react.ForwardRefExoticComponent<AccordionItemProps & react.RefAttributes<View>>;
606
+
551
607
  interface StepListProps extends Omit<ViewProps, "style" | "children"> {
552
608
  /** Step descriptions, numbered automatically from 1. */
553
609
  steps: string[];
@@ -629,6 +685,10 @@ interface SidebarProps extends Omit<ViewProps, "style" | "children"> {
629
685
  onCollapsedChange?: (collapsed: boolean) => void;
630
686
  /** When false, hides the expand/collapse control. Defaults to `true`. */
631
687
  showCollapseToggle?: boolean;
688
+ /** When set, shows a close control in the header (e.g. mobile drawer). */
689
+ onClose?: () => void;
690
+ /** Accessible label for the close control. Defaults to `"Close"`. */
691
+ closeAccessibilityLabel?: string;
632
692
  style?: StyleProp<ViewStyle>;
633
693
  className?: string;
634
694
  }
@@ -676,7 +736,7 @@ interface StatCardProps extends Omit<ViewProps, "style" | "children"> {
676
736
  }
677
737
  declare const StatCard: react.ForwardRefExoticComponent<StatCardProps & react.RefAttributes<View>>;
678
738
 
679
- type ButtonVariant = "primary" | "secondary";
739
+ type ButtonVariant = "primary" | "secondary" | "danger";
680
740
  type ButtonSize = "lg" | "sm";
681
741
  interface ButtonProps extends Omit<TouchableOpacityProps, "onPress" | "disabled" | "style" | "children"> {
682
742
  title?: string;
@@ -787,6 +847,23 @@ interface FloatingActionButtonProps extends Omit<TouchableOpacityProps, "onPress
787
847
  }
788
848
  declare const FloatingActionButton: react.ForwardRefExoticComponent<FloatingActionButtonProps & react.RefAttributes<react_native.View>>;
789
849
 
850
+ interface ModalProps {
851
+ /** Controls visibility. */
852
+ open: boolean;
853
+ /** Called on backdrop press, Escape / Android back, or explicit close. */
854
+ onClose: () => void;
855
+ children: ReactNode;
856
+ /** Close when the dimmed backdrop is pressed. Defaults to `true`. */
857
+ closeOnBackdropPress?: boolean;
858
+ /** Accessible name for the backdrop control. Defaults to `"Close"`. */
859
+ backdropAccessibilityLabel?: string;
860
+ /** Style for the centered content wrapper around `children`. */
861
+ contentStyle?: StyleProp<ViewStyle>;
862
+ /** Web CSS class applied to the content wrapper. */
863
+ className?: string;
864
+ }
865
+ declare const Modal: react.ForwardRefExoticComponent<ModalProps & react.RefAttributes<View>>;
866
+
790
867
  type StatefulIcon = ReactNode | IconComponent;
791
868
 
792
869
  type InputSize = "lg" | "sm";
@@ -831,6 +908,8 @@ interface VerificationCodeInputProps extends Omit<ViewProps, "children" | "style
831
908
  /** Called when Enter/submit is pressed from a cell. */
832
909
  onSubmit?: (value: string) => void;
833
910
  error?: boolean;
911
+ /** Shown under the cells when `error` is true. */
912
+ errorMessage?: string;
834
913
  disabled?: boolean;
835
914
  autoFocus?: boolean;
836
915
  /** Localized accessible name for each zero-based cell index. */
@@ -926,6 +1005,24 @@ interface ToggleProps extends Omit<PressableProps, "onPress" | "disabled" | "sty
926
1005
  }
927
1006
  declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<react_native.View>>;
928
1007
 
1008
+ interface ToggleRowProps extends Omit<ViewProps, "style" | "children"> {
1009
+ label: string;
1010
+ value?: boolean;
1011
+ defaultValue?: boolean;
1012
+ onValueChange?: (value: boolean) => void;
1013
+ disabled?: boolean;
1014
+ /** When false, hides the bottom border. Defaults to true. */
1015
+ showBorder?: boolean;
1016
+ style?: StyleProp<ViewStyle>;
1017
+ className?: string;
1018
+ }
1019
+ /**
1020
+ * Settings toggle line — label left, switch right.
1021
+ * Mobile: height 57, padding 16/12, label 12px.
1022
+ * Desktop: height 65, padding 20/12, label 14px.
1023
+ */
1024
+ declare const ToggleRow: react.ForwardRefExoticComponent<ToggleRowProps & react.RefAttributes<View>>;
1025
+
929
1026
  interface RatingInputProps extends Omit<ViewProps, "style" | "children"> {
930
1027
  value?: number;
931
1028
  defaultValue?: number;
@@ -1345,4 +1442,4 @@ type ResolvePopoverAlignOptions = {
1345
1442
  */
1346
1443
  declare function resolvePopoverAlign({ triggerRect, panelWidth, viewportWidth, padding, preferred, }: ResolvePopoverAlignOptions): PopoverAlign;
1347
1444
 
1348
- export { AccountHeader, type AccountHeaderProps, AlertTriangleIcon, Amenity, AmenityIcon, type AmenityIconProps, type AmenityName, type AmenityProps, type AmenityVariant, AppleIcon, AreaExpandIcon, ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, AvatarSimple, type AvatarSimpleProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BanIcon, BathroomsIcon, BedroomsIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CardLocationIcon, CheckBadgeIcon, CheckIcon, CheckSuccessIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockFilledIcon, ClockIcon, CloseIcon, CommentCard, type CommentCardProps, CopyIcon, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DatePickerVariant, type DateRange, DownloadIcon, EditIcon, FacebookIcon, FavoritesButton, type FavoritesButtonProps, FiltersIcon, FloatingActionButton, type FloatingActionButtonProps, FullscreenIcon, GlobeIcon, GooglePlayIcon, type GreyStep, GuestsIcon, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, InfoTile, type InfoTileProps, Input, type InputIcon, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, ListViewIcon, LocationPinIcon, LocationUserIcon, LockIcon, LogOutIcon, MailIcon, MapCollapseIcon, MapExpandIcon, MapViewIcon, MenuIcon, type MenuIconProps, MenuItem, type MenuItemProps, MinusIcon, NavigateIcon, NoSmokingIcon, PaginationDots, type PaginationDotsProps, PawIcon, PhoneIcon, PlusIcon, type PopoverAlign, QrCodeIcon, QuietHoursIcon, Range, type RangeProps, type RangeValue, RatingInput, type RatingInputProps, RatingStarIcon, RefreshIcon, RefundStatusIcon, type ResolvePopoverAlignOptions, SaveHeartIcon, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectIcon, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShareIcon, ShowIcon, Sidebar, SidebarIcon, type SidebarItem, type SidebarProps, type SidebarUser, SortIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, StepList, type StepListProps, StepPager, type StepPagerProps, Textarea, type TextareaProps, Toggle, type ToggleProps, TooltipArrowIcon, TrashIcon, UserIcon, UsersAltIcon, VerificationCodeInput, type VerificationCodeInputHandle, type VerificationCodeInputProps, VideoIcon, VideoOffIcon, WhatsAppIcon, ZoomOutIcon, abbreviateMonthName, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, formatDate, formatDateDayShortMonth, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, resolvePopoverAlign, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
1445
+ export { AccordionItem, type AccordionItemProps, AccountHeader, type AccountHeaderProps, AlertTriangleIcon, Amenity, AmenityIcon, type AmenityIconProps, type AmenityName, type AmenityProps, type AmenityVariant, AppleIcon, AreaExpandIcon, ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, AvatarSimple, type AvatarSimpleProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BanIcon, BathroomsIcon, BedroomsIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraFilledIcon, CameraIcon, CardLocationIcon, CheckBadgeIcon, CheckIcon, CheckSuccessIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockFilledIcon, ClockIcon, CloseIcon, CommentCard, type CommentCardProps, ContactInfoCard, type ContactInfoCardProps, CopyIcon, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DatePickerVariant, type DateRange, DownloadIcon, EditIcon, FacebookIcon, FavoritesButton, type FavoritesButtonProps, FiltersIcon, FloatingActionButton, type FloatingActionButtonProps, FullscreenIcon, GlobeIcon, GooglePlayIcon, type GreyStep, GuestsIcon, HeadsetIcon, HeartIcon, HelpCircleIcon, HideIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, InfoTile, type InfoTileProps, Input, type InputIcon, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, ListViewIcon, LocationPinIcon, LocationUserIcon, LockIcon, LogOutIcon, MailIcon, MapCollapseIcon, MapExpandIcon, MapViewIcon, MenuIcon, type MenuIconProps, MenuItem, type MenuItemProps, MenuLinesIcon, MinusIcon, Modal, type ModalProps, NavigateIcon, NoSmokingIcon, PaginationDots, type PaginationDotsProps, PawIcon, PhoneIcon, PlusIcon, type PopoverAlign, QrCodeIcon, QuietHoursIcon, Range, type RangeProps, type RangeValue, RatingInput, type RatingInputProps, RatingStarIcon, RefreshIcon, RefundStatusIcon, type ResolvePopoverAlignOptions, SaveHeartIcon, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectIcon, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShareIcon, ShowIcon, Sidebar, SidebarIcon, type SidebarItem, type SidebarProps, type SidebarUser, SortIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, StepList, type StepListProps, StepPager, type StepPagerProps, Textarea, type TextareaProps, Toggle, type ToggleProps, ToggleRow, type ToggleRowProps, TooltipArrowIcon, TrashIcon, UserIcon, UsersAltIcon, VerificationCodeInput, type VerificationCodeInputHandle, type VerificationCodeInputProps, VideoIcon, VideoOffIcon, WhatsAppIcon, ZoomOutIcon, abbreviateMonthName, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, formatDate, formatDateDayShortMonth, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, resolvePopoverAlign, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
package/dist/index.d.ts CHANGED
@@ -156,6 +156,13 @@ interface AccountHeaderProps extends Omit<ViewProps, "style" | "children"> {
156
156
  menuAccessibilityLabel?: string;
157
157
  /** Accessible name for notifications. Defaults to `"Notifications"`. */
158
158
  notificationsAccessibilityLabel?: string;
159
+ /**
160
+ * Web CSS class for the menu control (hide on desktop via `#account-header-menu` /
161
+ * `.account-header-menu` while keeping it mounted to avoid a mobile refresh flash).
162
+ */
163
+ menuClassName?: string;
164
+ /** Optional title style override (e.g. mobile 14px from the web app). */
165
+ titleStyle?: StyleProp<TextStyle>;
159
166
  style?: StyleProp<ViewStyle>;
160
167
  className?: string;
161
168
  }
@@ -200,6 +207,9 @@ declare function CalendarOutlineIcon({ size, color, strokeWidth, }: IconProps):
200
207
 
201
208
  declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
202
209
 
210
+ /** Native — filled camera, 32×32 viewBox. */
211
+ declare function CameraFilledIcon({ size, color }: IconProps): react.JSX.Element;
212
+
203
213
  interface CheckIconProps {
204
214
  size?: number;
205
215
  color?: string;
@@ -260,11 +270,16 @@ declare function FullscreenIcon({ size, color, strokeWidth }: IconProps): react.
260
270
  /** Native — react-native-svg (peer dependency). */
261
271
  declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
262
272
 
273
+ declare function HeadsetIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
274
+
263
275
  declare function GlobeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
264
276
 
265
277
  /** Native — react-native-svg (peer dependency). */
266
278
  declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
267
279
 
280
+ /** Native — react-native-svg (peer dependency). */
281
+ declare function HideIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
282
+
268
283
  declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
269
284
 
270
285
  declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
@@ -304,6 +319,8 @@ interface MenuIconProps extends IconProps {
304
319
  }
305
320
  declare function MenuIcon({ size, color, strokeWidth, open, }: MenuIconProps): react.JSX.Element;
306
321
 
322
+ declare function MenuLinesIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
323
+
307
324
  declare function MinusIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
308
325
 
309
326
  declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
@@ -385,6 +402,7 @@ declare const icons: {
385
402
  readonly calendar: typeof CalendarIcon;
386
403
  readonly calendarOutline: typeof CalendarOutlineIcon;
387
404
  readonly camera: typeof CameraIcon;
405
+ readonly cameraFilled: typeof CameraFilledIcon;
388
406
  readonly check: typeof CheckIcon;
389
407
  readonly checkBadge: typeof CheckBadgeIcon;
390
408
  readonly checkSuccess: typeof CheckSuccessIcon;
@@ -404,9 +422,11 @@ declare const icons: {
404
422
  readonly fullscreen: typeof FullscreenIcon;
405
423
  readonly guests: typeof GuestsIcon;
406
424
  readonly heart: typeof HeartIcon;
425
+ readonly headset: typeof HeadsetIcon;
407
426
  readonly globe: typeof GlobeIcon;
408
427
  readonly googlePlay: typeof GooglePlayIcon;
409
428
  readonly helpCircle: typeof HelpCircleIcon;
429
+ readonly hide: typeof HideIcon;
410
430
  readonly home: typeof HomeIcon;
411
431
  readonly instagram: typeof InstagramIcon;
412
432
  readonly key: typeof KeyIcon;
@@ -422,6 +442,7 @@ declare const icons: {
422
442
  readonly mapCollapse: typeof MapCollapseIcon;
423
443
  readonly mapExpand: typeof MapExpandIcon;
424
444
  readonly menu: typeof MenuIcon;
445
+ readonly menuLines: typeof MenuLinesIcon;
425
446
  readonly minus: typeof MinusIcon;
426
447
  readonly navigate: typeof NavigateIcon;
427
448
  readonly noSmoking: typeof NoSmokingIcon;
@@ -454,8 +475,8 @@ declare const icons: {
454
475
  type IconName = keyof typeof icons;
455
476
  declare const iconNames: IconName[];
456
477
  declare const iconGroups: {
457
- readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "listView", "locationPin", "locationUser", "mapCollapse", "mapExpand", "mapView", "menu", "navigate"];
458
- readonly actions: readonly ["show", "alertTriangle", "ban", "bell", "camera", "key", "check", "checkBadge", "checkSuccess", "copy", "download", "search", "calendar", "calendarOutline", "close", "edit", "ratingStar", "saveHeart", "share", "filters", "fullscreen", "heart", "zoomOut", "star", "starFilled", "minus", "plus", "refresh", "refundStatus", "sort"];
478
+ readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "listView", "locationPin", "locationUser", "mapCollapse", "mapExpand", "mapView", "menu", "menuLines", "navigate"];
479
+ readonly actions: readonly ["show", "hide", "alertTriangle", "ban", "bell", "camera", "key", "check", "checkBadge", "checkSuccess", "copy", "download", "search", "calendar", "calendarOutline", "close", "edit", "ratingStar", "saveHeart", "share", "filters", "fullscreen", "heart", "headset", "zoomOut", "star", "starFilled", "minus", "plus", "refresh", "refundStatus", "sort"];
459
480
  readonly objects: readonly ["bag", "bathrooms", "bedrooms", "building", "cardLocation", "clock", "clockFilled", "guests", "lock", "noSmoking", "paw", "qrCode", "quietHours", "trash", "user", "usersAlt", "video", "videoOff", "whatsApp"];
460
481
  readonly communication: readonly ["mail", "phone"];
461
482
  readonly social: readonly ["apple", "facebook", "googlePlay", "instagram", "linkedin"];
@@ -548,6 +569,41 @@ interface InfoTileProps extends Omit<ViewProps, "style" | "children"> {
548
569
  */
549
570
  declare const InfoTile: react.ForwardRefExoticComponent<InfoTileProps & react.RefAttributes<View>>;
550
571
 
572
+ interface ContactInfoCardProps extends Omit<ViewProps, "style" | "children"> {
573
+ title: string;
574
+ value: string;
575
+ icon: IconComponent;
576
+ iconProps?: Omit<IconProps, "size">;
577
+ iconSize?: number;
578
+ /** Icon slot fill. Defaults to `#E38E5E0F`. */
579
+ iconSlotBackgroundColor?: string;
580
+ style?: StyleProp<ViewStyle>;
581
+ className?: string;
582
+ }
583
+ /**
584
+ * Support contact strip — icon slot + title/value.
585
+ * Mobile: height 78, padding 16, gap 16, radius 20.
586
+ * Desktop: height 96, padding 24, gap 24, radius 20.
587
+ */
588
+ declare const ContactInfoCard: react.ForwardRefExoticComponent<ContactInfoCardProps & react.RefAttributes<View>>;
589
+
590
+ interface AccordionItemProps extends Omit<ViewProps, "style" | "children"> {
591
+ title: string;
592
+ /** Expanded body text. */
593
+ children: string;
594
+ open?: boolean;
595
+ defaultOpen?: boolean;
596
+ onOpenChange?: (open: boolean) => void;
597
+ style?: StyleProp<ViewStyle>;
598
+ className?: string;
599
+ }
600
+ /**
601
+ * FAQ / accordion row — grey700 card.
602
+ * Mobile: radius 16, padding 16/12, body 12px.
603
+ * Desktop: radius 24, padding 16/24, body 14px.
604
+ */
605
+ declare const AccordionItem: react.ForwardRefExoticComponent<AccordionItemProps & react.RefAttributes<View>>;
606
+
551
607
  interface StepListProps extends Omit<ViewProps, "style" | "children"> {
552
608
  /** Step descriptions, numbered automatically from 1. */
553
609
  steps: string[];
@@ -629,6 +685,10 @@ interface SidebarProps extends Omit<ViewProps, "style" | "children"> {
629
685
  onCollapsedChange?: (collapsed: boolean) => void;
630
686
  /** When false, hides the expand/collapse control. Defaults to `true`. */
631
687
  showCollapseToggle?: boolean;
688
+ /** When set, shows a close control in the header (e.g. mobile drawer). */
689
+ onClose?: () => void;
690
+ /** Accessible label for the close control. Defaults to `"Close"`. */
691
+ closeAccessibilityLabel?: string;
632
692
  style?: StyleProp<ViewStyle>;
633
693
  className?: string;
634
694
  }
@@ -676,7 +736,7 @@ interface StatCardProps extends Omit<ViewProps, "style" | "children"> {
676
736
  }
677
737
  declare const StatCard: react.ForwardRefExoticComponent<StatCardProps & react.RefAttributes<View>>;
678
738
 
679
- type ButtonVariant = "primary" | "secondary";
739
+ type ButtonVariant = "primary" | "secondary" | "danger";
680
740
  type ButtonSize = "lg" | "sm";
681
741
  interface ButtonProps extends Omit<TouchableOpacityProps, "onPress" | "disabled" | "style" | "children"> {
682
742
  title?: string;
@@ -787,6 +847,23 @@ interface FloatingActionButtonProps extends Omit<TouchableOpacityProps, "onPress
787
847
  }
788
848
  declare const FloatingActionButton: react.ForwardRefExoticComponent<FloatingActionButtonProps & react.RefAttributes<react_native.View>>;
789
849
 
850
+ interface ModalProps {
851
+ /** Controls visibility. */
852
+ open: boolean;
853
+ /** Called on backdrop press, Escape / Android back, or explicit close. */
854
+ onClose: () => void;
855
+ children: ReactNode;
856
+ /** Close when the dimmed backdrop is pressed. Defaults to `true`. */
857
+ closeOnBackdropPress?: boolean;
858
+ /** Accessible name for the backdrop control. Defaults to `"Close"`. */
859
+ backdropAccessibilityLabel?: string;
860
+ /** Style for the centered content wrapper around `children`. */
861
+ contentStyle?: StyleProp<ViewStyle>;
862
+ /** Web CSS class applied to the content wrapper. */
863
+ className?: string;
864
+ }
865
+ declare const Modal: react.ForwardRefExoticComponent<ModalProps & react.RefAttributes<View>>;
866
+
790
867
  type StatefulIcon = ReactNode | IconComponent;
791
868
 
792
869
  type InputSize = "lg" | "sm";
@@ -831,6 +908,8 @@ interface VerificationCodeInputProps extends Omit<ViewProps, "children" | "style
831
908
  /** Called when Enter/submit is pressed from a cell. */
832
909
  onSubmit?: (value: string) => void;
833
910
  error?: boolean;
911
+ /** Shown under the cells when `error` is true. */
912
+ errorMessage?: string;
834
913
  disabled?: boolean;
835
914
  autoFocus?: boolean;
836
915
  /** Localized accessible name for each zero-based cell index. */
@@ -926,6 +1005,24 @@ interface ToggleProps extends Omit<PressableProps, "onPress" | "disabled" | "sty
926
1005
  }
927
1006
  declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<react_native.View>>;
928
1007
 
1008
+ interface ToggleRowProps extends Omit<ViewProps, "style" | "children"> {
1009
+ label: string;
1010
+ value?: boolean;
1011
+ defaultValue?: boolean;
1012
+ onValueChange?: (value: boolean) => void;
1013
+ disabled?: boolean;
1014
+ /** When false, hides the bottom border. Defaults to true. */
1015
+ showBorder?: boolean;
1016
+ style?: StyleProp<ViewStyle>;
1017
+ className?: string;
1018
+ }
1019
+ /**
1020
+ * Settings toggle line — label left, switch right.
1021
+ * Mobile: height 57, padding 16/12, label 12px.
1022
+ * Desktop: height 65, padding 20/12, label 14px.
1023
+ */
1024
+ declare const ToggleRow: react.ForwardRefExoticComponent<ToggleRowProps & react.RefAttributes<View>>;
1025
+
929
1026
  interface RatingInputProps extends Omit<ViewProps, "style" | "children"> {
930
1027
  value?: number;
931
1028
  defaultValue?: number;
@@ -1345,4 +1442,4 @@ type ResolvePopoverAlignOptions = {
1345
1442
  */
1346
1443
  declare function resolvePopoverAlign({ triggerRect, panelWidth, viewportWidth, padding, preferred, }: ResolvePopoverAlignOptions): PopoverAlign;
1347
1444
 
1348
- export { AccountHeader, type AccountHeaderProps, AlertTriangleIcon, Amenity, AmenityIcon, type AmenityIconProps, type AmenityName, type AmenityProps, type AmenityVariant, AppleIcon, AreaExpandIcon, ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, AvatarSimple, type AvatarSimpleProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BanIcon, BathroomsIcon, BedroomsIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraIcon, CardLocationIcon, CheckBadgeIcon, CheckIcon, CheckSuccessIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockFilledIcon, ClockIcon, CloseIcon, CommentCard, type CommentCardProps, CopyIcon, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DatePickerVariant, type DateRange, DownloadIcon, EditIcon, FacebookIcon, FavoritesButton, type FavoritesButtonProps, FiltersIcon, FloatingActionButton, type FloatingActionButtonProps, FullscreenIcon, GlobeIcon, GooglePlayIcon, type GreyStep, GuestsIcon, HeartIcon, HelpCircleIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, InfoTile, type InfoTileProps, Input, type InputIcon, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, ListViewIcon, LocationPinIcon, LocationUserIcon, LockIcon, LogOutIcon, MailIcon, MapCollapseIcon, MapExpandIcon, MapViewIcon, MenuIcon, type MenuIconProps, MenuItem, type MenuItemProps, MinusIcon, NavigateIcon, NoSmokingIcon, PaginationDots, type PaginationDotsProps, PawIcon, PhoneIcon, PlusIcon, type PopoverAlign, QrCodeIcon, QuietHoursIcon, Range, type RangeProps, type RangeValue, RatingInput, type RatingInputProps, RatingStarIcon, RefreshIcon, RefundStatusIcon, type ResolvePopoverAlignOptions, SaveHeartIcon, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectIcon, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShareIcon, ShowIcon, Sidebar, SidebarIcon, type SidebarItem, type SidebarProps, type SidebarUser, SortIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, StepList, type StepListProps, StepPager, type StepPagerProps, Textarea, type TextareaProps, Toggle, type ToggleProps, TooltipArrowIcon, TrashIcon, UserIcon, UsersAltIcon, VerificationCodeInput, type VerificationCodeInputHandle, type VerificationCodeInputProps, VideoIcon, VideoOffIcon, WhatsAppIcon, ZoomOutIcon, abbreviateMonthName, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, formatDate, formatDateDayShortMonth, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, resolvePopoverAlign, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
1445
+ export { AccordionItem, type AccordionItemProps, AccountHeader, type AccountHeaderProps, AlertTriangleIcon, Amenity, AmenityIcon, type AmenityIconProps, type AmenityName, type AmenityProps, type AmenityVariant, AppleIcon, AreaExpandIcon, ArrowRightIcon, Avatar, type AvatarMenuItem, type AvatarProps, AvatarSimple, type AvatarSimpleProps, BRAND_LOGO_COLORS, BRAND_LOGO_DEFAULT_HEIGHT, BRAND_LOGO_DEFAULT_WIDTH, Badge, type BadgeProps, type BadgeVariant, BagIcon, BanIcon, BathroomsIcon, BedroomsIcon, BellIcon, BrandLogo, type BrandLogoProps, type BrandLogoVariant, BuildingIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CalendarIcon, CalendarOutlineIcon, CameraFilledIcon, CameraIcon, CardLocationIcon, CheckBadgeIcon, CheckIcon, CheckSuccessIcon, Checkbox, type CheckboxProps, type CheckboxVariant, ChevronDownIcon, ChevronLeftIcon, ClockFilledIcon, ClockIcon, CloseIcon, CommentCard, type CommentCardProps, ContactInfoCard, type ContactInfoCardProps, CopyIcon, Counter, type CounterProps, DatePicker, type DatePickerProps, type DatePickerRangeProps, type DatePickerSingleProps, type DatePickerVariant, type DateRange, DownloadIcon, EditIcon, FacebookIcon, FavoritesButton, type FavoritesButtonProps, FiltersIcon, FloatingActionButton, type FloatingActionButtonProps, FullscreenIcon, GlobeIcon, GooglePlayIcon, type GreyStep, GuestsIcon, HeadsetIcon, HeartIcon, HelpCircleIcon, HideIcon, HomeIcon, Icon, type IconByNameProps, type IconComponent, type IconGroup, type IconName, type IconProps, InfoTile, type InfoTileProps, Input, type InputIcon, type InputProps, type InputSize, InstagramIcon, KeyIcon, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, LayoutGridIcon, LinkedInIcon, ListViewIcon, LocationPinIcon, LocationUserIcon, LockIcon, LogOutIcon, MailIcon, MapCollapseIcon, MapExpandIcon, MapViewIcon, MenuIcon, type MenuIconProps, MenuItem, type MenuItemProps, MenuLinesIcon, MinusIcon, Modal, type ModalProps, NavigateIcon, NoSmokingIcon, PaginationDots, type PaginationDotsProps, PawIcon, PhoneIcon, PlusIcon, type PopoverAlign, QrCodeIcon, QuietHoursIcon, Range, type RangeProps, type RangeValue, RatingInput, type RatingInputProps, RatingStarIcon, RefreshIcon, RefundStatusIcon, type ResolvePopoverAlignOptions, SaveHeartIcon, SearchIcon, SegmentedToggle, type SegmentedToggleOption, type SegmentedToggleProps, Select, type SelectIcon, type SelectMultipleProps, type SelectOption, type SelectProps, type SelectSingleProps, SettingsIcon, ShareIcon, ShowIcon, Sidebar, SidebarIcon, type SidebarItem, type SidebarProps, type SidebarUser, SortIcon, StarFilledIcon, StarIcon, type StarIconProps, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, StepList, type StepListProps, StepPager, type StepPagerProps, Textarea, type TextareaProps, Toggle, type ToggleProps, ToggleRow, type ToggleRowProps, TooltipArrowIcon, TrashIcon, UserIcon, UsersAltIcon, VerificationCodeInput, type VerificationCodeInputHandle, type VerificationCodeInputProps, VideoIcon, VideoOffIcon, WhatsAppIcon, ZoomOutIcon, abbreviateMonthName, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, formatDate, formatDateDayShortMonth, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, resolvePopoverAlign, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };