@ecohouse/ui 0.1.32 → 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 (68) hide show
  1. package/dist/index.cjs +30063 -607
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +173 -10
  4. package/dist/index.d.ts +173 -10
  5. package/dist/index.js +29989 -547
  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 +119 -46
  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/Select/Select.tsx +5 -2
  22. package/src/components/Sidebar/Sidebar.tsx +42 -12
  23. package/src/components/StepPager/StepPager.tsx +150 -0
  24. package/src/components/StepPager/index.ts +2 -0
  25. package/src/components/ToggleRow/ToggleRow.stories.tsx +46 -0
  26. package/src/components/ToggleRow/ToggleRow.tsx +121 -0
  27. package/src/components/ToggleRow/index.ts +2 -0
  28. package/src/components/VerificationCodeInput/VerificationCodeInput.tsx +80 -60
  29. package/src/components/index.ts +15 -0
  30. package/src/icons/Ban/BanIcon.tsx +15 -0
  31. package/src/icons/Ban/banPath.ts +2 -0
  32. package/src/icons/Ban/index.ts +1 -0
  33. package/src/icons/CameraFilled/CameraFilledIcon.tsx +15 -0
  34. package/src/icons/CameraFilled/CameraFilledIcon.web.tsx +21 -0
  35. package/src/icons/CameraFilled/cameraFilledPath.ts +2 -0
  36. package/src/icons/CameraFilled/index.ts +1 -0
  37. package/src/icons/Fullscreen/FullscreenIcon.tsx +21 -0
  38. package/src/icons/Fullscreen/fullscreenPath.ts +2 -0
  39. package/src/icons/Fullscreen/index.ts +1 -0
  40. package/src/icons/Headset/HeadsetIcon.tsx +26 -0
  41. package/src/icons/Headset/HeadsetIcon.web.tsx +25 -0
  42. package/src/icons/Headset/headsetPath.ts +6 -0
  43. package/src/icons/Headset/index.ts +1 -0
  44. package/src/icons/Hide/HideIcon.tsx +21 -0
  45. package/src/icons/Hide/HideIcon.web.tsx +27 -0
  46. package/src/icons/Hide/hidePath.ts +3 -0
  47. package/src/icons/Hide/index.ts +1 -0
  48. package/src/icons/Home/homePath.ts +1 -1
  49. package/src/icons/MenuLines/MenuLinesIcon.tsx +20 -0
  50. package/src/icons/MenuLines/MenuLinesIcon.web.tsx +26 -0
  51. package/src/icons/MenuLines/index.ts +1 -0
  52. package/src/icons/MenuLines/menuLinesPath.ts +3 -0
  53. package/src/icons/Sort/SortIcon.tsx +3 -3
  54. package/src/icons/Sort/SortIcon.web.tsx +2 -2
  55. package/src/icons/Sort/sortPath.ts +3 -2
  56. package/src/icons/VideoOff/VideoOffIcon.tsx +21 -0
  57. package/src/icons/VideoOff/VideoOffIcon.web.tsx +27 -0
  58. package/src/icons/VideoOff/index.ts +1 -0
  59. package/src/icons/VideoOff/videoOffPath.ts +2 -0
  60. package/src/icons/ZoomOut/ZoomOutIcon.tsx +21 -0
  61. package/src/icons/ZoomOut/index.ts +1 -0
  62. package/src/icons/ZoomOut/zoomOutPath.ts +2 -0
  63. package/src/icons/index.ts +8 -0
  64. package/src/icons/registry.ts +23 -0
  65. package/src/index.ts +20 -0
  66. package/src/theme/colors.test.ts +1 -1
  67. package/src/theme/typography.ts +4 -4
  68. package/src/utils/popoverAlign.ts +85 -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
  }
@@ -185,6 +192,9 @@ declare function GooglePlayIcon({ size }: IconProps): react.JSX.Element;
185
192
 
186
193
  declare function BagIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
187
194
 
195
+ /** Filled prohibition / deactivated mark (28×28 viewBox). */
196
+ declare function BanIcon({ size, color }: IconProps): react.JSX.Element;
197
+
188
198
  declare function BellIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
189
199
 
190
200
  declare function BuildingIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
@@ -197,6 +207,9 @@ declare function CalendarOutlineIcon({ size, color, strokeWidth, }: IconProps):
197
207
 
198
208
  declare function CameraIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
199
209
 
210
+ /** Native — filled camera, 32×32 viewBox. */
211
+ declare function CameraFilledIcon({ size, color }: IconProps): react.JSX.Element;
212
+
200
213
  interface CheckIconProps {
201
214
  size?: number;
202
215
  color?: string;
@@ -251,14 +264,22 @@ declare function FacebookIcon({ size, color }: IconProps): react.JSX.Element;
251
264
  /** Native — react-native-svg (peer dependency). */
252
265
  declare function FiltersIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
253
266
 
267
+ /** Four-corner fullscreen / maximize control (24×24 viewBox). */
268
+ declare function FullscreenIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
269
+
254
270
  /** Native — react-native-svg (peer dependency). */
255
271
  declare function HeartIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
256
272
 
273
+ declare function HeadsetIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
274
+
257
275
  declare function GlobeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
258
276
 
259
277
  /** Native — react-native-svg (peer dependency). */
260
278
  declare function HelpCircleIcon({ size, color, strokeWidth, }: IconProps): react.JSX.Element;
261
279
 
280
+ /** Native — react-native-svg (peer dependency). */
281
+ declare function HideIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
282
+
262
283
  declare function HomeIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
263
284
 
264
285
  declare function InstagramIcon({ size, color }: IconProps): react.JSX.Element;
@@ -298,6 +319,8 @@ interface MenuIconProps extends IconProps {
298
319
  }
299
320
  declare function MenuIcon({ size, color, strokeWidth, open, }: MenuIconProps): react.JSX.Element;
300
321
 
322
+ declare function MenuLinesIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
323
+
301
324
  declare function MinusIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
302
325
 
303
326
  declare function NavigateIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
@@ -332,7 +355,7 @@ declare function ShowIcon({ size, color, strokeWidth }: ShowIconProps): react.JS
332
355
  /** Native — react-native-svg (peer dependency). */
333
356
  declare function SidebarIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
334
357
 
335
- /** Native react-native-svg (peer dependency). */
358
+ /** Bidirectional sort (20×20 viewBox). */
336
359
  declare function SortIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
337
360
 
338
361
  interface StarIconProps extends IconProps {
@@ -361,17 +384,25 @@ declare function UsersAltIcon({ size, color }: IconProps): react.JSX.Element;
361
384
  /** Native — react-native-svg (peer dependency). */
362
385
  declare function VideoIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
363
386
 
387
+ /** Video / camera off (24×24 viewBox). */
388
+ declare function VideoOffIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
389
+
390
+ /** Exit-fullscreen / zoom-out corners control (24×24 viewBox). */
391
+ declare function ZoomOutIcon({ size, color, strokeWidth }: IconProps): react.JSX.Element;
392
+
364
393
  declare const icons: {
365
394
  readonly alertTriangle: typeof AlertTriangleIcon;
366
395
  readonly areaExpand: typeof AreaExpandIcon;
367
396
  readonly apple: typeof AppleIcon;
368
397
  readonly arrowRight: typeof ArrowRightIcon;
369
398
  readonly bag: typeof BagIcon;
399
+ readonly ban: typeof BanIcon;
370
400
  readonly bell: typeof BellIcon;
371
401
  readonly building: typeof BuildingIcon;
372
402
  readonly calendar: typeof CalendarIcon;
373
403
  readonly calendarOutline: typeof CalendarOutlineIcon;
374
404
  readonly camera: typeof CameraIcon;
405
+ readonly cameraFilled: typeof CameraFilledIcon;
375
406
  readonly check: typeof CheckIcon;
376
407
  readonly checkBadge: typeof CheckBadgeIcon;
377
408
  readonly checkSuccess: typeof CheckSuccessIcon;
@@ -388,11 +419,14 @@ declare const icons: {
388
419
  readonly cardLocation: typeof CardLocationIcon;
389
420
  readonly facebook: typeof FacebookIcon;
390
421
  readonly filters: typeof FiltersIcon;
422
+ readonly fullscreen: typeof FullscreenIcon;
391
423
  readonly guests: typeof GuestsIcon;
392
424
  readonly heart: typeof HeartIcon;
425
+ readonly headset: typeof HeadsetIcon;
393
426
  readonly globe: typeof GlobeIcon;
394
427
  readonly googlePlay: typeof GooglePlayIcon;
395
428
  readonly helpCircle: typeof HelpCircleIcon;
429
+ readonly hide: typeof HideIcon;
396
430
  readonly home: typeof HomeIcon;
397
431
  readonly instagram: typeof InstagramIcon;
398
432
  readonly key: typeof KeyIcon;
@@ -408,6 +442,7 @@ declare const icons: {
408
442
  readonly mapCollapse: typeof MapCollapseIcon;
409
443
  readonly mapExpand: typeof MapExpandIcon;
410
444
  readonly menu: typeof MenuIcon;
445
+ readonly menuLines: typeof MenuLinesIcon;
411
446
  readonly minus: typeof MinusIcon;
412
447
  readonly navigate: typeof NavigateIcon;
413
448
  readonly noSmoking: typeof NoSmokingIcon;
@@ -433,14 +468,16 @@ declare const icons: {
433
468
  readonly user: typeof UserIcon;
434
469
  readonly usersAlt: typeof UsersAltIcon;
435
470
  readonly video: typeof VideoIcon;
471
+ readonly videoOff: typeof VideoOffIcon;
436
472
  readonly whatsApp: typeof WhatsAppIcon;
473
+ readonly zoomOut: typeof ZoomOutIcon;
437
474
  };
438
475
  type IconName = keyof typeof icons;
439
476
  declare const iconNames: IconName[];
440
477
  declare const iconGroups: {
441
- readonly navigation: readonly ["arrowRight", "chevronDown", "chevronLeft", "home", "listView", "locationPin", "locationUser", "mapCollapse", "mapExpand", "mapView", "menu", "navigate"];
442
- readonly actions: readonly ["show", "alertTriangle", "bell", "camera", "key", "check", "checkBadge", "checkSuccess", "copy", "download", "search", "calendar", "calendarOutline", "close", "edit", "ratingStar", "saveHeart", "share", "filters", "heart", "star", "starFilled", "minus", "plus", "refresh", "refundStatus", "sort"];
443
- readonly objects: readonly ["bag", "bathrooms", "bedrooms", "building", "cardLocation", "clock", "clockFilled", "guests", "lock", "noSmoking", "paw", "qrCode", "quietHours", "trash", "user", "usersAlt", "video", "whatsApp"];
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"];
480
+ readonly objects: readonly ["bag", "bathrooms", "bedrooms", "building", "cardLocation", "clock", "clockFilled", "guests", "lock", "noSmoking", "paw", "qrCode", "quietHours", "trash", "user", "usersAlt", "video", "videoOff", "whatsApp"];
444
481
  readonly communication: readonly ["mail", "phone"];
445
482
  readonly social: readonly ["apple", "facebook", "googlePlay", "instagram", "linkedin"];
446
483
  readonly interface: readonly ["areaExpand", "globe", "layoutGrid", "sidebar", "settings", "helpCircle", "logOut", "tooltipArrow"];
@@ -496,6 +533,24 @@ interface PaginationDotsProps extends Omit<ViewProps, "style" | "children"> {
496
533
  */
497
534
  declare const PaginationDots: react.ForwardRefExoticComponent<PaginationDotsProps & react.RefAttributes<View>>;
498
535
 
536
+ interface StepPagerProps extends Omit<ViewProps, "style" | "children"> {
537
+ /** Zero-based active step index. */
538
+ index: number;
539
+ /** Total number of steps. */
540
+ count: number;
541
+ onPrevious?: () => void;
542
+ onNext?: () => void;
543
+ previousAccessibilityLabel?: string;
544
+ nextAccessibilityLabel?: string;
545
+ style?: StyleProp<ViewStyle>;
546
+ className?: string;
547
+ }
548
+ /**
549
+ * Compact prev / current-of-total / next control (e.g. camera fullscreen pager).
550
+ * Fixed 121×48 pill, 12 gap/padding, 77 radius.
551
+ */
552
+ declare const StepPager: react.ForwardRefExoticComponent<StepPagerProps & react.RefAttributes<View>>;
553
+
499
554
  interface InfoTileProps extends Omit<ViewProps, "style" | "children"> {
500
555
  title: string;
501
556
  /** Optional supporting line under the title. */
@@ -514,6 +569,41 @@ interface InfoTileProps extends Omit<ViewProps, "style" | "children"> {
514
569
  */
515
570
  declare const InfoTile: react.ForwardRefExoticComponent<InfoTileProps & react.RefAttributes<View>>;
516
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
+
517
607
  interface StepListProps extends Omit<ViewProps, "style" | "children"> {
518
608
  /** Step descriptions, numbered automatically from 1. */
519
609
  steps: string[];
@@ -593,6 +683,12 @@ interface SidebarProps extends Omit<ViewProps, "style" | "children"> {
593
683
  collapsed?: boolean;
594
684
  defaultCollapsed?: boolean;
595
685
  onCollapsedChange?: (collapsed: boolean) => void;
686
+ /** When false, hides the expand/collapse control. Defaults to `true`. */
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;
596
692
  style?: StyleProp<ViewStyle>;
597
693
  className?: string;
598
694
  }
@@ -640,7 +736,7 @@ interface StatCardProps extends Omit<ViewProps, "style" | "children"> {
640
736
  }
641
737
  declare const StatCard: react.ForwardRefExoticComponent<StatCardProps & react.RefAttributes<View>>;
642
738
 
643
- type ButtonVariant = "primary" | "secondary";
739
+ type ButtonVariant = "primary" | "secondary" | "danger";
644
740
  type ButtonSize = "lg" | "sm";
645
741
  interface ButtonProps extends Omit<TouchableOpacityProps, "onPress" | "disabled" | "style" | "children"> {
646
742
  title?: string;
@@ -717,6 +813,11 @@ type DatePickerBaseProps = Omit<ViewProps, "style" | "children"> & {
717
813
  weekStartsOn?: 0 | 1;
718
814
  /** Styles the calendar popup independently from the trigger width. */
719
815
  calendarStyle?: StyleProp<ViewStyle>;
816
+ /**
817
+ * When true, only the calendar panel is rendered (no field/trigger).
818
+ * Use with controlled `open` for icon-button / popover hosts.
819
+ */
820
+ hideTrigger?: boolean;
720
821
  style?: StyleProp<ViewStyle>;
721
822
  className?: string;
722
823
  };
@@ -746,6 +847,23 @@ interface FloatingActionButtonProps extends Omit<TouchableOpacityProps, "onPress
746
847
  }
747
848
  declare const FloatingActionButton: react.ForwardRefExoticComponent<FloatingActionButtonProps & react.RefAttributes<react_native.View>>;
748
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
+
749
867
  type StatefulIcon = ReactNode | IconComponent;
750
868
 
751
869
  type InputSize = "lg" | "sm";
@@ -790,6 +908,8 @@ interface VerificationCodeInputProps extends Omit<ViewProps, "children" | "style
790
908
  /** Called when Enter/submit is pressed from a cell. */
791
909
  onSubmit?: (value: string) => void;
792
910
  error?: boolean;
911
+ /** Shown under the cells when `error` is true. */
912
+ errorMessage?: string;
793
913
  disabled?: boolean;
794
914
  autoFocus?: boolean;
795
915
  /** Localized accessible name for each zero-based cell index. */
@@ -831,6 +951,8 @@ type SelectBaseProps = Omit<ViewProps, "style" | "children"> & {
831
951
  loading?: boolean;
832
952
  /** Text shown when no options match. */
833
953
  emptyText?: string;
954
+ /** Override color for the selected value text in the trigger. */
955
+ valueColor?: string;
834
956
  style?: StyleProp<ViewStyle>;
835
957
  className?: string;
836
958
  };
@@ -883,6 +1005,24 @@ interface ToggleProps extends Omit<PressableProps, "onPress" | "disabled" | "sty
883
1005
  }
884
1006
  declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<react_native.View>>;
885
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
+
886
1026
  interface RatingInputProps extends Omit<ViewProps, "style" | "children"> {
887
1027
  value?: number;
888
1028
  defaultValue?: number;
@@ -1125,7 +1265,7 @@ declare const inputTypography: {
1125
1265
  readonly fontFamily: "Noto Sans Armenian";
1126
1266
  readonly fontSize: 12;
1127
1267
  readonly fontWeight: "400";
1128
- readonly lineHeight: 12;
1268
+ readonly lineHeight: 16;
1129
1269
  readonly letterSpacing: 0.36;
1130
1270
  };
1131
1271
  readonly hint: {
@@ -1149,7 +1289,7 @@ declare const selectTypography: {
1149
1289
  readonly fontFamily: "Noto Sans Armenian";
1150
1290
  readonly fontSize: 12;
1151
1291
  readonly fontWeight: "400";
1152
- readonly lineHeight: 12;
1292
+ readonly lineHeight: 16;
1153
1293
  readonly letterSpacing: 0.36;
1154
1294
  };
1155
1295
  readonly hint: {
@@ -1173,7 +1313,7 @@ declare const avatarTypography: {
1173
1313
  readonly fontFamily: "Noto Sans Armenian";
1174
1314
  readonly fontSize: 12;
1175
1315
  readonly fontWeight: "400";
1176
- readonly lineHeight: 12;
1316
+ readonly lineHeight: 14;
1177
1317
  readonly letterSpacing: 0;
1178
1318
  };
1179
1319
  readonly menuItem: {
@@ -1257,7 +1397,7 @@ declare const textareaTypography: {
1257
1397
  readonly fontFamily: "Noto Sans Armenian";
1258
1398
  readonly fontSize: 12;
1259
1399
  readonly fontWeight: "400";
1260
- readonly lineHeight: 12;
1400
+ readonly lineHeight: 16;
1261
1401
  readonly letterSpacing: 0.36;
1262
1402
  };
1263
1403
  readonly hint: {
@@ -1279,4 +1419,27 @@ declare function abbreviateMonthName(monthName: string, letterCount?: number): s
1279
1419
  /** "15 Հուլ 2026" — day + abbreviated month + year for range triggers. */
1280
1420
  declare function formatDateDayShortMonth(date: Date, monthNames: string[], letterCount?: number): string;
1281
1421
 
1282
- 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, 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, 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, QrCodeIcon, QuietHoursIcon, Range, type RangeProps, type RangeValue, RatingInput, type RatingInputProps, RatingStarIcon, RefreshIcon, RefundStatusIcon, 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, Textarea, type TextareaProps, Toggle, type ToggleProps, TooltipArrowIcon, TrashIcon, UserIcon, UsersAltIcon, VerificationCodeInput, type VerificationCodeInputHandle, type VerificationCodeInputProps, VideoIcon, WhatsAppIcon, abbreviateMonthName, avatarTypography, badgeTypography, buttonTypography, colors, commentCardTypography, counterTypography, datePickerTypography, defaultLanguageOptions, fonts, formatDate, formatDateDayShortMonth, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, languageSwitcherTypography, ratingTypography, segmentedToggleTypography, selectTypography, statCardTypography, textareaTypography };
1422
+ type PopoverAlign = "center" | "start" | "end";
1423
+ type ResolvePopoverAlignOptions = {
1424
+ /** Trigger element bounds in viewport coordinates. */
1425
+ triggerRect: Pick<DOMRect, "left" | "right" | "width">;
1426
+ /** Popover panel width in px. */
1427
+ panelWidth: number;
1428
+ /** Viewport width in px. */
1429
+ viewportWidth: number;
1430
+ /** Minimum gap from the viewport edges. Defaults to 8. */
1431
+ padding?: number;
1432
+ /**
1433
+ * `auto` (default): prefer center, then end (opens left), then start (opens right).
1434
+ * Fixed values force that alignment.
1435
+ */
1436
+ preferred?: PopoverAlign | "auto";
1437
+ };
1438
+ /**
1439
+ * Picks horizontal popover alignment so the panel stays in view.
1440
+ * Preference for `auto`: center → start (rightward) → end (leftward)
1441
+ * when the trigger sits near the left edge (common for card actions).
1442
+ */
1443
+ declare function resolvePopoverAlign({ triggerRect, panelWidth, viewportWidth, padding, preferred, }: ResolvePopoverAlignOptions): PopoverAlign;
1444
+
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 };