@foxford/ui 2.6.0 → 2.7.0-beta-5133c5e-20230721

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 } 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}`;
@@ -578,6 +579,243 @@ declare namespace ActionBtn {
578
579
  var displayName: string;
579
580
  }
580
581
 
582
+ interface AnchorProps extends BaseProps, Color, ResponsiveNamedProperty<'size'>, Display {
583
+ /**
584
+ * Custom CSS class name
585
+ */
586
+ as?: 'div' | 'span' | 'a' | typeof Link;
587
+ /**
588
+ * React router link to
589
+ */
590
+ to?: string;
591
+ /**
592
+ * Link href
593
+ */
594
+ href?: string;
595
+ /**
596
+ * Is display inline
597
+ * */
598
+ wrapper?: boolean;
599
+ /**
600
+ * Pseudo link has dashed bottom border
601
+ * */
602
+ pseudo?: boolean;
603
+ /**
604
+ * If link should be underlined
605
+ * */
606
+ underline?: boolean;
607
+ /**
608
+ * Primary content
609
+ */
610
+ /**
611
+ * Children react node
612
+ */
613
+ children?: React.ReactNode;
614
+ /**
615
+ * Primary content
616
+ */
617
+ content?: string;
618
+ /**
619
+ * Onclick handler
620
+ */
621
+ onClick?: () => void;
622
+ tabIndex?: number;
623
+ target?: string;
624
+ rel?: string;
625
+ /**
626
+ * Auto-generate rel. You must specify domain inside theme
627
+ */
628
+ autoRel?: boolean;
629
+ }
630
+ /**
631
+ * Расширен:
632
+ * - [`BaseProps`](#/Миксины)
633
+ * - [`Color`](#/Миксины)
634
+ * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
635
+ * - [`Display`](#/Миксины)
636
+ */
637
+ declare function Anchor(props: typeof Anchor.defaultProps & AnchorProps): JSX.Element;
638
+ declare namespace Anchor {
639
+ var displayName: string;
640
+ var defaultProps: {
641
+ display: string;
642
+ };
643
+ }
644
+
645
+ declare type ButtonStaticSize = 'xl' | 'l' | 'm' | 's' | 'xs';
646
+ declare type ButtonSize = ButtonStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
647
+ 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> {
648
+ /** Root node polymorphic type */
649
+ as?: 'div' | 'span' | 'a' | 'button' | typeof Link | typeof Anchor$1;
650
+ /** Button size */
651
+ size?: ButtonSize;
652
+ /** Button type attribute */
653
+ type?: 'button' | 'submit' | 'reset';
654
+ /** Button icons */
655
+ icon?: JSX.Element | [Nullable$1<JSX.Element>, Nullable$1<JSX.Element>];
656
+ /** Button success state */
657
+ success?: boolean;
658
+ /** Loading state */
659
+ loading?: boolean;
660
+ /** Button disabled */
661
+ disabled?: boolean;
662
+ /** Rounded border radius */
663
+ rounded?: boolean;
664
+ /** Rounded shape button */
665
+ round?: boolean;
666
+ /** Anchor target attribute */
667
+ target?: string;
668
+ /** Anchor rel attribute */
669
+ rel?: string;
670
+ /** Auto-generate rel. You must specify domain inside theme */
671
+ autoRel?: boolean;
672
+ /** Anchor href attribute */
673
+ href?: string;
674
+ /** React router Link to prop */
675
+ to?: string;
676
+ /**
677
+ * Indicates if there should not be any margin
678
+ * between this button and the previous one
679
+ */
680
+ noSpacing?: boolean;
681
+ /** Outline appearance */
682
+ outline?: boolean;
683
+ /** Content font weight */
684
+ fontWeight?: FontWeight$1;
685
+ /** Associated form */
686
+ form?: string;
687
+ /** @preset {Default} Primary appearance */
688
+ primary?: boolean;
689
+ /** @preset {Default} Secondary appearance */
690
+ secondary?: boolean;
691
+ /** @preset {Default} Inverted colors */
692
+ inverted?: boolean;
693
+ /** @preset {Brand} Base appearance */
694
+ base?: boolean;
695
+ /** @preset {Brand} Clear appearance */
696
+ clear?: boolean;
697
+ /** @preset {Brand} Black colors appearance */
698
+ black?: boolean;
699
+ /** @preset {Brand} Red colors appearance */
700
+ danger?: boolean;
701
+ /** @preset {Brand} Modifies appearance on colored background */
702
+ onColored?: boolean;
703
+ /** @deprecated Use outline */
704
+ basic?: boolean;
705
+ /** @deprecated Use children */
706
+ content?: React.ReactNode;
707
+ /** @deprecated Use ref */
708
+ innerRef?: React.LegacyRef<HTMLElement>;
709
+ /** Component's children */
710
+ children?: React.ReactNode | React.ReactNode[];
711
+ onClick?: (evt: React.SyntheticEvent<HTMLElement>) => void;
712
+ onClickCapture?: (evt: React.SyntheticEvent<HTMLElement>) => void;
713
+ onMouseEnter?: (evt: React.SyntheticEvent<HTMLElement>) => void;
714
+ onMouseLeave?: (evt: React.SyntheticEvent<HTMLElement>) => void;
715
+ }
716
+
717
+ /**
718
+ * Main button
719
+ */
720
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLElement>>;
721
+
722
+ declare type TextAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
723
+ interface TextProps extends Display$1, Color$1, ResponsiveNamedProperty$1<'size'>, BaseProps$1 {
724
+ /** Root node polymorphic type */
725
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
726
+ /** Root id attribute */
727
+ id?: string;
728
+ /** Use predefined props with low priority */
729
+ appearance?: TextAppearance;
730
+ /** Custom sizes set */
731
+ sizes?: Record<SizeLatin$1, number>;
732
+ /** Sizing units */
733
+ fontUnits?: string;
734
+ /** Font family */
735
+ fontFamily?: string;
736
+ /** Font weight */
737
+ weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
738
+ /** Font style */
739
+ fontStyle?: 'normal' | 'italic';
740
+ /** Text transform */
741
+ transform?: 'capitalize' | 'uppercase' | 'lowercase';
742
+ /** Root margin */
743
+ margin?: number | string;
744
+ /** Underlined text */
745
+ underlineLinks?: boolean;
746
+ /** Text align */
747
+ textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
748
+ /** Line height */
749
+ lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
750
+ /** Title attribute */
751
+ title?: string;
752
+ /** Component's children */
753
+ children?: React.ReactNode;
754
+ /** @deprecated Use children */
755
+ content?: string;
756
+ }
757
+ interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
758
+ Heading: (props: TextHeadingProps) => JSX.Element;
759
+ Ellipse: typeof TextEllipse;
760
+ }
761
+
762
+ declare const Text: TextComponent;
763
+
764
+ declare type AlertType = 'warning' | 'error' | 'info' | 'success';
765
+ declare type AlertSize = keyof Pick<typeof SizeLatin$1, 'l' | 's'>;
766
+ interface AlertProps extends BaseProps$1 {
767
+ /** Text of the timer cancellation button */
768
+ cancelTimerText?: string | React.ReactNode;
769
+ /** Children react node */
770
+ children?: React.ReactNode;
771
+ /** Use a colorless background */
772
+ clear?: boolean;
773
+ /** This method is taken from react-toastify library */
774
+ closeToast?(): void;
775
+ /** Icon name (for inner Icon component) */
776
+ customIcon?: keyof typeof IconNames;
777
+ /** Any custom image (e.g.: img, svg, icon from @foxford/icon-pack) */
778
+ image?: React.ReactNode;
779
+ /** Use for tablet and mobile view */
780
+ isCompact?: boolean;
781
+ /** Display a hyperlink */
782
+ link?: {
783
+ content: string | React.ReactNode;
784
+ onClick(): void;
785
+ };
786
+ linkProps?: AnchorProps;
787
+ /** Use alert without icon */
788
+ noIcon?: boolean;
789
+ /** You can cancel the action if the timer has not expired yet */
790
+ onClickCancelTimer?(): void;
791
+ /** Display the action button */
792
+ primaryAction?: {
793
+ content: string | React.ReactNode;
794
+ onClick(): void;
795
+ };
796
+ primaryActionProps?: ButtonProps;
797
+ /** Display the second action button */
798
+ secondaryAction?: {
799
+ content: string | React.ReactNode;
800
+ onClick(): void;
801
+ };
802
+ secondaryActionProps?: ButtonProps;
803
+ /** Use this to change the appearance of the alert */
804
+ size?: AlertSize;
805
+ /** Use it when you need to move text to another line in alerts without a title */
806
+ textProps?: TextProps;
807
+ textWrap?: boolean;
808
+ /** It is used in alerts with a timer. Pass the value in seconds */
809
+ timer?: number;
810
+ /** Display a title */
811
+ title?: string;
812
+ titleProps?: TextProps;
813
+ type?: AlertType;
814
+ width?: ResponsiveProperty$1;
815
+ }
816
+
817
+ declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
818
+
581
819
  declare enum CurrencyCodes {
582
820
  ALL = "ALL",
583
821
  AFN = "AFN",
@@ -753,68 +991,6 @@ declare class Amount extends PureComponent<AmountProps> {
753
991
  render(): JSX.Element;
754
992
  }
755
993
 
756
- interface AnchorProps extends BaseProps, Color, ResponsiveNamedProperty<'size'>, Display {
757
- /**
758
- * Custom CSS class name
759
- */
760
- as?: 'div' | 'span' | 'a' | typeof Link;
761
- /**
762
- * React router link to
763
- */
764
- to?: string;
765
- /**
766
- * Link href
767
- */
768
- href?: string;
769
- /**
770
- * Is display inline
771
- * */
772
- wrapper?: boolean;
773
- /**
774
- * Pseudo link has dashed bottom border
775
- * */
776
- pseudo?: boolean;
777
- /**
778
- * If link should be underlined
779
- * */
780
- underline?: boolean;
781
- /**
782
- * Primary content
783
- */
784
- /**
785
- * Children react node
786
- */
787
- children?: React.ReactNode;
788
- /**
789
- * Primary content
790
- */
791
- content?: string;
792
- /**
793
- * Onclick handler
794
- */
795
- onClick?: () => void;
796
- target?: string;
797
- rel?: string;
798
- /**
799
- * Auto-generate rel. You must specify domain inside theme
800
- */
801
- autoRel?: boolean;
802
- }
803
- /**
804
- * Расширен:
805
- * - [`BaseProps`](#/Миксины)
806
- * - [`Color`](#/Миксины)
807
- * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
808
- * - [`Display`](#/Миксины)
809
- */
810
- declare function Anchor(props: typeof Anchor.defaultProps & AnchorProps): JSX.Element;
811
- declare namespace Anchor {
812
- var displayName: string;
813
- var defaultProps: {
814
- display: string;
815
- };
816
- }
817
-
818
994
  declare type ArrowStaticSize = 'l' | 'm' | 'xs';
819
995
  declare type ArrowSize = ArrowStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
820
996
  interface ArrowProps extends BaseProps$1 {
@@ -884,48 +1060,6 @@ declare class Avatar extends PureComponent<AvatarProps> {
884
1060
  render(): JSX.Element;
885
1061
  }
886
1062
 
887
- declare type TextAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
888
- interface TextProps extends Display$1, Color$1, ResponsiveNamedProperty$1<'size'>, BaseProps$1 {
889
- /** Root node polymorphic type */
890
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
891
- /** Root id attribute */
892
- id?: string;
893
- /** Use predefined props with low priority */
894
- appearance?: TextAppearance;
895
- /** Custom sizes set */
896
- sizes?: Record<SizeLatin$1, number>;
897
- /** Sizing units */
898
- fontUnits?: string;
899
- /** Font family */
900
- fontFamily?: string;
901
- /** Font weight */
902
- weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
903
- /** Font style */
904
- fontStyle?: 'normal' | 'italic';
905
- /** Text transform */
906
- transform?: 'capitalize' | 'uppercase' | 'lowercase';
907
- /** Root margin */
908
- margin?: number | string;
909
- /** Underlined text */
910
- underlineLinks?: boolean;
911
- /** Text align */
912
- textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
913
- /** Line height */
914
- lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
915
- /** Title attribute */
916
- title?: string;
917
- /** Component's children */
918
- children?: React.ReactNode;
919
- /** @deprecated Use children */
920
- content?: string;
921
- }
922
- interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
923
- Heading: (props: TextHeadingProps) => JSX.Element;
924
- Ellipse: typeof TextEllipse;
925
- }
926
-
927
- declare const Text: TextComponent;
928
-
929
1063
  interface BadgeProps extends BaseProps, Color, Display {
930
1064
  /**
931
1065
  * Children react node
@@ -947,83 +1081,6 @@ declare namespace Badge {
947
1081
  var displayName: string;
948
1082
  }
949
1083
 
950
- declare type ButtonStaticSize = 'xl' | 'l' | 'm' | 's' | 'xs';
951
- declare type ButtonSize = ButtonStaticSize | ResponsiveProperty$1<`${number}rem` | number>;
952
- 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> {
953
- /** Root node polymorphic type */
954
- as?: 'div' | 'span' | 'a' | 'button' | typeof Link | typeof Anchor$1;
955
- /** Button size */
956
- size?: ButtonSize;
957
- /** Button type attribute */
958
- type?: 'button' | 'submit' | 'reset';
959
- /** Button icons */
960
- icon?: JSX.Element | [Nullable$1<JSX.Element>, Nullable$1<JSX.Element>];
961
- /** Button success state */
962
- success?: boolean;
963
- /** Loading state */
964
- loading?: boolean;
965
- /** Button disabled */
966
- disabled?: boolean;
967
- /** Rounded border radius */
968
- rounded?: boolean;
969
- /** Rounded shape button */
970
- round?: boolean;
971
- /** Anchor target attribute */
972
- target?: string;
973
- /** Anchor rel attribute */
974
- rel?: string;
975
- /** Auto-generate rel. You must specify domain inside theme */
976
- autoRel?: boolean;
977
- /** Anchor href attribute */
978
- href?: string;
979
- /** React router Link to prop */
980
- to?: string;
981
- /**
982
- * Indicates if there should not be any margin
983
- * between this button and the previous one
984
- */
985
- noSpacing?: boolean;
986
- /** Outline appearance */
987
- outline?: boolean;
988
- /** Content font weight */
989
- fontWeight?: FontWeight$1;
990
- /** Associated form */
991
- form?: string;
992
- /** @preset {Default} Primary appearance */
993
- primary?: boolean;
994
- /** @preset {Default} Secondary appearance */
995
- secondary?: boolean;
996
- /** @preset {Default} Inverted colors */
997
- inverted?: boolean;
998
- /** @preset {Brand} Base appearance */
999
- base?: boolean;
1000
- /** @preset {Brand} Clear appearance */
1001
- clear?: boolean;
1002
- /** @preset {Brand} Black colors appearance */
1003
- black?: boolean;
1004
- /** @preset {Brand} Red colors appearance */
1005
- danger?: boolean;
1006
- /** @preset {Brand} Modifies appearance on colored background */
1007
- onColored?: boolean;
1008
- /** @deprecated Use outline */
1009
- basic?: boolean;
1010
- /** @deprecated Use children */
1011
- content?: React.ReactNode;
1012
- /** @deprecated Use ref */
1013
- innerRef?: React.LegacyRef<HTMLElement>;
1014
- /** Component's children */
1015
- children?: React.ReactNode | React.ReactNode[];
1016
- onClick?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1017
- onClickCapture?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1018
- onMouseEnter?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1019
- onMouseLeave?: (evt: React.SyntheticEvent<HTMLElement>) => void;
1020
- }
1021
-
1022
- /**
1023
- * Main button
1024
- */
1025
- declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLElement>>;
1026
-
1027
1084
  interface ContainerProps extends BaseProps, Display, Color {
1028
1085
  /**
1029
1086
  * Primary content
@@ -2401,4 +2458,4 @@ declare namespace Select {
2401
2458
  var displayName: string;
2402
2459
  }
2403
2460
 
2404
- 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 };
2461
+ 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 };