@foxford/ui 2.6.1 → 2.7.0-beta-aed7670-20230811

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/dts/index.d.ts CHANGED
@@ -2,16 +2,16 @@
2
2
  import * as styled_components from 'styled-components';
3
3
  import { DefaultTheme, FlattenSimpleInterpolation, CSSObject, SimpleInterpolation, css } from 'styled-components';
4
4
  import * as react from 'react';
5
- import { PureComponent, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';
6
- import { Link, NavLink } from 'react-router-dom';
7
- import { ResponsiveProperty as ResponsiveProperty$1, ResponsiveNamedProperty as ResponsiveNamedProperty$1 } from 'mixins/responsive-property';
5
+ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, PureComponent } from 'react';
6
+ import { ResponsiveNamedProperty as ResponsiveNamedProperty$1, ResponsiveProperty as ResponsiveProperty$1 } from 'mixins/responsive-property';
8
7
  import { BaseProps as BaseProps$1, Nullable as Nullable$1, FontWeight as FontWeight$1, InputField as InputField$1 } from 'shared/interfaces';
8
+ import { SizeLatin as SizeLatin$1 } from 'shared/enums/sizeLatin';
9
+ import { Link, NavLink } from 'react-router-dom';
9
10
  import { Display as Display$1 } from 'mixins/display';
10
11
  import { Color as Color$1 } from 'mixins/color';
11
- import { SizeLatin as SizeLatin$1 } from 'shared/enums/sizeLatin';
12
+ import { Anchor as Anchor$1 } from 'components/Anchor';
12
13
  import { TextHeadingProps } from 'components/Text.Heading';
13
14
  import { TextEllipse } from 'components/Text.Ellipse';
14
- import { Anchor as Anchor$1 } from 'components/Anchor';
15
15
  import { Classes } from 'react-modal';
16
16
  import * as rc_scrollbars_lib_Scrollbars_types from 'rc-scrollbars/lib/Scrollbars/types';
17
17
  import * as rc_scrollbars from 'rc-scrollbars';
@@ -209,7 +209,8 @@ declare enum ColorNames {
209
209
  grey = "grey",
210
210
  darkgrey = "darkgrey",
211
211
  lightgrey = "lightgrey",
212
- superlightgrey = "superlightgrey"
212
+ superlightgrey = "superlightgrey",
213
+ transparent = "transparent"
213
214
  }
214
215
 
215
216
  declare type ColorPropsProperties = 'color' | 'fontColor' | `${string}Color` | `color${string}`;
@@ -574,6 +575,243 @@ declare namespace ActionBtn {
574
575
  var displayName: string;
575
576
  }
576
577
 
578
+ interface AnchorProps extends BaseProps, Color, ResponsiveNamedProperty<'size'>, Display {
579
+ /**
580
+ * Custom CSS class name
581
+ */
582
+ as?: 'div' | 'span' | 'a' | typeof Link;
583
+ /**
584
+ * React router link to
585
+ */
586
+ to?: string;
587
+ /**
588
+ * Link href
589
+ */
590
+ href?: string;
591
+ /**
592
+ * Is display inline
593
+ * */
594
+ wrapper?: boolean;
595
+ /**
596
+ * Pseudo link has dashed bottom border
597
+ * */
598
+ pseudo?: boolean;
599
+ /**
600
+ * If link should be underlined
601
+ * */
602
+ underline?: boolean;
603
+ /**
604
+ * Primary content
605
+ */
606
+ /**
607
+ * Children react node
608
+ */
609
+ children?: React.ReactNode;
610
+ /**
611
+ * Primary content
612
+ */
613
+ content?: string;
614
+ /**
615
+ * Onclick handler
616
+ */
617
+ onClick?: () => void;
618
+ tabIndex?: number;
619
+ target?: string;
620
+ rel?: string;
621
+ /**
622
+ * Auto-generate rel. You must specify domain inside theme
623
+ */
624
+ autoRel?: boolean;
625
+ }
626
+ /**
627
+ * Расширен:
628
+ * - [`BaseProps`](#/Миксины)
629
+ * - [`Color`](#/Миксины)
630
+ * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
631
+ * - [`Display`](#/Миксины)
632
+ */
633
+ declare function Anchor(props: typeof Anchor.defaultProps & AnchorProps): JSX.Element;
634
+ declare namespace Anchor {
635
+ var displayName: string;
636
+ var defaultProps: {
637
+ display: string;
638
+ };
639
+ }
640
+
641
+ declare type ButtonStaticSize = 'xl' | 'l' | 'm' | 's' | 'xs';
642
+ declare type ButtonSize = ButtonStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
643
+ interface ButtonProps extends BaseProps$1, Display$1, Color$1, Color$1<'fontColor'>, ResponsiveNamedProperty$1<'padding'>, ResponsiveNamedProperty$1<'paddingTop'>, ResponsiveNamedProperty$1<'paddingRight'>, ResponsiveNamedProperty$1<'paddingBottom'>, ResponsiveNamedProperty$1<'paddingLeft'>, ResponsiveNamedProperty$1<'margin'>, ResponsiveNamedProperty$1<'marginTop'>, ResponsiveNamedProperty$1<'marginRight'>, ResponsiveNamedProperty$1<'marginBottom'>, ResponsiveNamedProperty$1<'marginLeft'>, ResponsiveNamedProperty$1<'fontSize'>, ResponsiveNamedProperty$1<'fluid', boolean>, ResponsiveNamedProperty$1<'width', 'auto' | 'l' | 'm' | 's' | 'xs' | number>, ResponsiveNamedProperty$1<'height', 'l' | 'm' | 's' | 'xs' | number> {
644
+ /** Root node polymorphic type */
645
+ as?: 'div' | 'span' | 'a' | 'button' | typeof Link | typeof Anchor$1;
646
+ /** Button size */
647
+ size?: ButtonSize;
648
+ /** Button type attribute */
649
+ type?: 'button' | 'submit' | 'reset';
650
+ /** Button icons */
651
+ icon?: JSX.Element | [Nullable$1<JSX.Element>, Nullable$1<JSX.Element>];
652
+ /** Button success state */
653
+ success?: boolean;
654
+ /** Loading state */
655
+ loading?: boolean;
656
+ /** Button disabled */
657
+ disabled?: boolean;
658
+ /** Rounded border radius */
659
+ rounded?: boolean;
660
+ /** Rounded shape button */
661
+ round?: boolean;
662
+ /** Anchor target attribute */
663
+ target?: string;
664
+ /** Anchor rel attribute */
665
+ rel?: string;
666
+ /** Auto-generate rel. You must specify domain inside theme */
667
+ autoRel?: boolean;
668
+ /** Anchor href attribute */
669
+ href?: string;
670
+ /** React router Link to prop */
671
+ to?: string;
672
+ /**
673
+ * Indicates if there should not be any margin
674
+ * between this button and the previous one
675
+ */
676
+ noSpacing?: boolean;
677
+ /** Outline appearance */
678
+ outline?: boolean;
679
+ /** Content font weight */
680
+ fontWeight?: FontWeight$1;
681
+ /** Associated form */
682
+ form?: string;
683
+ /** @preset {Default} Primary appearance */
684
+ primary?: boolean;
685
+ /** @preset {Default} Secondary appearance */
686
+ secondary?: boolean;
687
+ /** @preset {Default} Inverted colors */
688
+ inverted?: boolean;
689
+ /** @preset {Brand} Base appearance */
690
+ base?: boolean;
691
+ /** @preset {Brand} Clear appearance */
692
+ clear?: boolean;
693
+ /** @preset {Brand} Black colors appearance */
694
+ black?: boolean;
695
+ /** @preset {Brand} Red colors appearance */
696
+ danger?: boolean;
697
+ /** @preset {Brand} Modifies appearance on colored background */
698
+ onColored?: boolean;
699
+ /** @deprecated Use outline */
700
+ basic?: boolean;
701
+ /** @deprecated Use children */
702
+ content?: React.ReactNode;
703
+ /** @deprecated Use ref */
704
+ innerRef?: React.LegacyRef<HTMLElement>;
705
+ /** Component's children */
706
+ children?: React.ReactNode | React.ReactNode[];
707
+ onClick?: (evt: React.SyntheticEvent<HTMLElement>) => void;
708
+ onClickCapture?: (evt: React.SyntheticEvent<HTMLElement>) => void;
709
+ onMouseEnter?: (evt: React.SyntheticEvent<HTMLElement>) => void;
710
+ onMouseLeave?: (evt: React.SyntheticEvent<HTMLElement>) => void;
711
+ }
712
+
713
+ /**
714
+ * Main button
715
+ */
716
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLElement>>;
717
+
718
+ declare type TextAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
719
+ interface TextProps extends Display$1, Color$1, ResponsiveNamedProperty$1<'size'>, BaseProps$1 {
720
+ /** Root node polymorphic type */
721
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
722
+ /** Root id attribute */
723
+ id?: string;
724
+ /** Use predefined props with low priority */
725
+ appearance?: TextAppearance;
726
+ /** Custom sizes set */
727
+ sizes?: Record<SizeLatin$1, number>;
728
+ /** Sizing units */
729
+ fontUnits?: string;
730
+ /** Font family */
731
+ fontFamily?: string;
732
+ /** Font weight */
733
+ weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
734
+ /** Font style */
735
+ fontStyle?: 'normal' | 'italic';
736
+ /** Text transform */
737
+ transform?: 'capitalize' | 'uppercase' | 'lowercase';
738
+ /** Root margin */
739
+ margin?: number | string;
740
+ /** Underlined text */
741
+ underlineLinks?: boolean;
742
+ /** Text align */
743
+ textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
744
+ /** Line height */
745
+ lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
746
+ /** Title attribute */
747
+ title?: string;
748
+ /** Component's children */
749
+ children?: React.ReactNode;
750
+ /** @deprecated Use children */
751
+ content?: string;
752
+ }
753
+ interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
754
+ Heading: (props: TextHeadingProps) => JSX.Element;
755
+ Ellipse: typeof TextEllipse;
756
+ }
757
+
758
+ declare const Text: TextComponent;
759
+
760
+ declare type AlertType = 'warning' | 'error' | 'info' | 'success';
761
+ declare type AlertSize = keyof Pick<typeof SizeLatin$1, 'l' | 's'>;
762
+ interface AlertProps extends BaseProps$1 {
763
+ /** Text of the timer cancellation button */
764
+ cancelTimerText?: string | React.ReactNode;
765
+ /** Children react node */
766
+ children?: React.ReactNode;
767
+ /** Use a colorless background */
768
+ clear?: boolean;
769
+ /** This method is taken from react-toastify library */
770
+ closeToast?(): void;
771
+ /** Icon name (for inner Icon component) */
772
+ customIcon?: keyof typeof IconNames;
773
+ /** Any custom image (e.g.: img, svg, icon from @foxford/icon-pack) */
774
+ image?: React.ReactNode;
775
+ /** Use for tablet and mobile view */
776
+ isCompact?: boolean;
777
+ /** Display a hyperlink */
778
+ link?: {
779
+ content: string | React.ReactNode;
780
+ onClick(): void;
781
+ };
782
+ linkProps?: AnchorProps;
783
+ /** Use alert without icon */
784
+ noIcon?: boolean;
785
+ /** You can cancel the action if the timer has not expired yet */
786
+ onClickCancelTimer?(): void;
787
+ /** Display the action button */
788
+ primaryAction?: {
789
+ content: string | React.ReactNode;
790
+ onClick(): void;
791
+ };
792
+ primaryActionProps?: ButtonProps;
793
+ /** Display the second action button */
794
+ secondaryAction?: {
795
+ content: string | React.ReactNode;
796
+ onClick(): void;
797
+ };
798
+ secondaryActionProps?: ButtonProps;
799
+ /** Use this to change the appearance of the alert */
800
+ size?: AlertSize;
801
+ /** Use it when you need to move text to another line in alerts without a title */
802
+ textProps?: TextProps;
803
+ textWrap?: boolean;
804
+ /** It is used in alerts with a timer. Pass the value in seconds */
805
+ timer?: number;
806
+ /** Display a title */
807
+ title?: string;
808
+ titleProps?: TextProps;
809
+ type?: AlertType;
810
+ width?: ResponsiveProperty$1;
811
+ }
812
+
813
+ declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
814
+
577
815
  declare enum CurrencyCodes {
578
816
  ALL = "ALL",
579
817
  AFN = "AFN",
@@ -749,68 +987,6 @@ declare class Amount extends PureComponent<AmountProps> {
749
987
  render(): JSX.Element;
750
988
  }
751
989
 
752
- interface AnchorProps extends BaseProps, Color, ResponsiveNamedProperty<'size'>, Display {
753
- /**
754
- * Custom CSS class name
755
- */
756
- as?: 'div' | 'span' | 'a' | typeof Link;
757
- /**
758
- * React router link to
759
- */
760
- to?: string;
761
- /**
762
- * Link href
763
- */
764
- href?: string;
765
- /**
766
- * Is display inline
767
- * */
768
- wrapper?: boolean;
769
- /**
770
- * Pseudo link has dashed bottom border
771
- * */
772
- pseudo?: boolean;
773
- /**
774
- * If link should be underlined
775
- * */
776
- underline?: boolean;
777
- /**
778
- * Primary content
779
- */
780
- /**
781
- * Children react node
782
- */
783
- children?: React.ReactNode;
784
- /**
785
- * Primary content
786
- */
787
- content?: string;
788
- /**
789
- * Onclick handler
790
- */
791
- onClick?: () => void;
792
- target?: string;
793
- rel?: string;
794
- /**
795
- * Auto-generate rel. You must specify domain inside theme
796
- */
797
- autoRel?: boolean;
798
- }
799
- /**
800
- * Расширен:
801
- * - [`BaseProps`](#/Миксины)
802
- * - [`Color`](#/Миксины)
803
- * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
804
- * - [`Display`](#/Миксины)
805
- */
806
- declare function Anchor(props: typeof Anchor.defaultProps & AnchorProps): JSX.Element;
807
- declare namespace Anchor {
808
- var displayName: string;
809
- var defaultProps: {
810
- display: string;
811
- };
812
- }
813
-
814
990
  declare type ArrowStaticSize = 'l' | 'm' | 'xs';
815
991
  declare type ArrowSize = ArrowStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
816
992
  interface ArrowProps extends BaseProps$1 {
@@ -880,48 +1056,6 @@ declare class Avatar extends PureComponent<AvatarProps> {
880
1056
  render(): JSX.Element;
881
1057
  }
882
1058
 
883
- declare type TextAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
884
- interface TextProps extends Display$1, Color$1, ResponsiveNamedProperty$1<'size'>, BaseProps$1 {
885
- /** Root node polymorphic type */
886
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
887
- /** Root id attribute */
888
- id?: string;
889
- /** Use predefined props with low priority */
890
- appearance?: TextAppearance;
891
- /** Custom sizes set */
892
- sizes?: Record<SizeLatin$1, number>;
893
- /** Sizing units */
894
- fontUnits?: string;
895
- /** Font family */
896
- fontFamily?: string;
897
- /** Font weight */
898
- weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
899
- /** Font style */
900
- fontStyle?: 'normal' | 'italic';
901
- /** Text transform */
902
- transform?: 'capitalize' | 'uppercase' | 'lowercase';
903
- /** Root margin */
904
- margin?: number | string;
905
- /** Underlined text */
906
- underlineLinks?: boolean;
907
- /** Text align */
908
- textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
909
- /** Line height */
910
- lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
911
- /** Title attribute */
912
- title?: string;
913
- /** Component's children */
914
- children?: React.ReactNode;
915
- /** @deprecated Use children */
916
- content?: string;
917
- }
918
- interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
919
- Heading: (props: TextHeadingProps) => JSX.Element;
920
- Ellipse: typeof TextEllipse;
921
- }
922
-
923
- declare const Text: TextComponent;
924
-
925
1059
  interface BadgeProps extends BaseProps, Color, Display {
926
1060
  /**
927
1061
  * Children react node
@@ -943,83 +1077,6 @@ declare namespace Badge {
943
1077
  var displayName: string;
944
1078
  }
945
1079
 
946
- declare type ButtonStaticSize = 'xl' | 'l' | 'm' | 's' | 'xs';
947
- declare type ButtonSize = ButtonStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
948
- interface ButtonProps extends BaseProps$1, Display$1, Color$1, Color$1<'fontColor'>, ResponsiveNamedProperty$1<'padding'>, ResponsiveNamedProperty$1<'paddingTop'>, ResponsiveNamedProperty$1<'paddingRight'>, ResponsiveNamedProperty$1<'paddingBottom'>, ResponsiveNamedProperty$1<'paddingLeft'>, ResponsiveNamedProperty$1<'margin'>, ResponsiveNamedProperty$1<'marginTop'>, ResponsiveNamedProperty$1<'marginRight'>, ResponsiveNamedProperty$1<'marginBottom'>, ResponsiveNamedProperty$1<'marginLeft'>, ResponsiveNamedProperty$1<'fontSize'>, ResponsiveNamedProperty$1<'fluid', boolean>, ResponsiveNamedProperty$1<'width', 'auto' | 'l' | 'm' | 's' | 'xs' | number>, ResponsiveNamedProperty$1<'height', 'l' | 'm' | 's' | 'xs' | number> {
949
- /** Root node polymorphic type */
950
- as?: 'div' | 'span' | 'a' | 'button' | typeof Link | typeof Anchor$1;
951
- /** Button size */
952
- size?: ButtonSize;
953
- /** Button type attribute */
954
- type?: 'button' | 'submit' | 'reset';
955
- /** Button icons */
956
- icon?: JSX.Element | [Nullable$1<JSX.Element>, Nullable$1<JSX.Element>];
957
- /** Button success state */
958
- success?: boolean;
959
- /** Loading state */
960
- loading?: boolean;
961
- /** Button disabled */
962
- disabled?: boolean;
963
- /** Rounded border radius */
964
- rounded?: boolean;
965
- /** Rounded shape button */
966
- round?: boolean;
967
- /** Anchor target attribute */
968
- target?: string;
969
- /** Anchor rel attribute */
970
- rel?: string;
971
- /** Auto-generate rel. You must specify domain inside theme */
972
- autoRel?: boolean;
973
- /** Anchor href attribute */
974
- href?: string;
975
- /** React router Link to prop */
976
- to?: string;
977
- /**
978
- * Indicates if there should not be any margin
979
- * between this button and the previous one
980
- */
981
- noSpacing?: boolean;
982
- /** Outline appearance */
983
- outline?: boolean;
984
- /** Content font weight */
985
- fontWeight?: FontWeight$1;
986
- /** Associated form */
987
- form?: string;
988
- /** @preset {Default} Primary appearance */
989
- primary?: boolean;
990
- /** @preset {Default} Secondary appearance */
991
- secondary?: boolean;
992
- /** @preset {Default} Inverted colors */
993
- inverted?: boolean;
994
- /** @preset {Brand} Base appearance */
995
- base?: boolean;
996
- /** @preset {Brand} Clear appearance */
997
- clear?: boolean;
998
- /** @preset {Brand} Black colors appearance */
999
- black?: boolean;
1000
- /** @preset {Brand} Red colors appearance */
1001
- danger?: boolean;
1002
- /** @preset {Brand} Modifies appearance on colored background */
1003
- onColored?: boolean;
1004
- /** @deprecated Use outline */
1005
- basic?: boolean;
1006
- /** @deprecated Use children */
1007
- content?: React.ReactNode;
1008
- /** @deprecated Use ref */
1009
- innerRef?: React.LegacyRef<HTMLElement>;
1010
- /** Component's children */
1011
- children?: React.ReactNode | React.ReactNode[];
1012
- onClick?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1013
- onClickCapture?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1014
- onMouseEnter?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1015
- onMouseLeave?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1016
- }
1017
-
1018
- /**
1019
- * Main button
1020
- */
1021
- declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLElement>>;
1022
-
1023
1080
  interface ContainerProps extends BaseProps, Display, Color {
1024
1081
  /**
1025
1082
  * Primary content
@@ -2368,4 +2425,4 @@ declare namespace Select {
2368
2425
  var displayName: string;
2369
2426
  }
2370
2427
 
2371
- export { ActionBtn, Amount, Anchor, Arrow, Avatar, Badge, BaseProps, Button, COUNTRY_DATA, CURRENCY_MAP, Checkbox, ColorNames, Container, ContextMenu, CurrencyCodes, DEFAULT_MASK, FontWeight, HEX, INITIAL_MASK, Icon, Input, InputField, Modal, Nullable, Paper, Progress, RGB, RGBA, Radio, withThemeScrollable as Scrollable, Section, Select, Separator, Spacer, Spinner, Switcher, Tabs, Tag, Text, Textarea, ThemeMode, ThemeName, ThemePreset, ThemeProvider, Tooltip, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, defaultIcons, desktopFirst, mobileFirst, motherDarkTheme, motherLightTheme, property, responsiveNamedProperty, responsiveProperty, screenL, screenM, screenMaxL, screenMaxM, screenMaxS, screenMaxXl, screenMaxXs, screenMaxXxs, screenMinL, screenMinM, screenMinS, screenMinXl, screenMinXs, screenRetina, screenS, screenXl, screenXs, teenDarkTheme, teenLightTheme, defaultTheme as theme, vAlign };
2428
+ export { ActionBtn, Alert, Amount, Anchor, Arrow, Avatar, Badge, BaseProps, Button, COUNTRY_DATA, CURRENCY_MAP, Checkbox, ColorNames, Container, ContextMenu, CurrencyCodes, DEFAULT_MASK, FontWeight, HEX, INITIAL_MASK, Icon, Input, InputField, Modal, Nullable, Paper, Progress, RGB, RGBA, Radio, withThemeScrollable as Scrollable, Section, Select, Separator, Spacer, Spinner, Switcher, Tabs, Tag, Text, Textarea, ThemeMode, ThemeName, ThemePreset, ThemeProvider, Tooltip, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, defaultIcons, desktopFirst, mobileFirst, motherDarkTheme, motherLightTheme, property, responsiveNamedProperty, responsiveProperty, screenL, screenM, screenMaxL, screenMaxM, screenMaxS, screenMaxXl, screenMaxXs, screenMaxXxs, screenMinL, screenMinM, screenMinS, screenMinXl, screenMinXs, screenRetina, screenS, screenXl, screenXs, teenDarkTheme, teenLightTheme, defaultTheme as theme, vAlign };