@cleartrip/ct-design-typography 4.0.0-TEST.1 → 5.0.0

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 (36) hide show
  1. package/README.md +169 -0
  2. package/dist/Typography.d.ts +2 -2
  3. package/dist/Typography.d.ts.map +1 -1
  4. package/dist/Typography.native.d.ts +6 -0
  5. package/dist/Typography.native.d.ts.map +1 -0
  6. package/dist/constants.d.ts +53 -0
  7. package/dist/constants.d.ts.map +1 -0
  8. package/dist/ct-design-typography.browser.cjs.js +1 -1
  9. package/dist/ct-design-typography.browser.cjs.js.map +1 -1
  10. package/dist/ct-design-typography.browser.esm.js +1 -1
  11. package/dist/ct-design-typography.browser.esm.js.map +1 -1
  12. package/dist/ct-design-typography.cjs.js +55 -175
  13. package/dist/ct-design-typography.cjs.js.map +1 -1
  14. package/dist/ct-design-typography.esm.js +55 -175
  15. package/dist/ct-design-typography.esm.js.map +1 -1
  16. package/dist/ct-design-typography.umd.js +1702 -221
  17. package/dist/ct-design-typography.umd.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/style.d.ts +119 -1026
  21. package/dist/style.d.ts.map +1 -1
  22. package/dist/type.d.ts +6 -57
  23. package/dist/type.d.ts.map +1 -1
  24. package/package.json +14 -8
  25. package/src/Typography.native.tsx +109 -0
  26. package/src/Typography.tsx +122 -0
  27. package/src/constants.ts +53 -0
  28. package/src/index.ts +4 -0
  29. package/src/style.ts +306 -0
  30. package/src/type.ts +94 -0
  31. package/dist/StyledTypography/index.d.ts +0 -2
  32. package/dist/StyledTypography/index.d.ts.map +0 -1
  33. package/dist/StyledTypography/style.d.ts +0 -7
  34. package/dist/StyledTypography/style.d.ts.map +0 -1
  35. package/dist/StyledTypography/type.d.ts +0 -19
  36. package/dist/StyledTypography/type.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../packages/components/Typography/src/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAmB,mBAAmB,EAAqB,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAExG,eAAO,MAAM,oBAAoB,UAAW,KAAK,WAAW,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkKhF,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAChC,KAAK,SACL,mBAAmB,cACd,OAAO,iBACJ,OAAO;;;;CA8FvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,KAAK,SAAS,mBAAmB,WAmE1E,CAAC;AAEF,eAAO,MAAM,kBAAkB,eAAgB,MAAM;;;;;;;;;;CAWpD,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAAW,KAAK,WAAW,qBAAqB,iBAAiB,OAAO,qCAmBhH,CAAC;AAEF,eAAO,MAAM,mBAAmB;WAYvB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC"}
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../packages/components/Typography/src/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,EAAE,SAAS,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKhF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,KAAK,EAAE,OAAO,mBAAmB,WAmE1E,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM;aAGvB,SAAS,CAAC,SAAS,CAAC;;;;;;;;;CAQjD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,KAAK,EAAE,SAAS,qBAAqB,EAAE,eAAe,OAAO,qCAmBhH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,iEAOjC;IACD,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;;;eAMqD,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;;;;eAAtB,SAAS,CAAC,WAAW,CAAC;;;;;;CAE3E,CAAC"}
package/dist/type.d.ts CHANGED
@@ -1,78 +1,27 @@
1
1
  import { ReactNode } from 'react';
2
- import { HtmlCompositeAttributes, Styles } from '@cleartrip/ct-design-types';
3
- import { CSSProperties } from 'react';
4
- export declare enum TypographyVariant {
5
- HD1 = "HD1",
6
- HD2 = "HD2",
7
- HD3 = "HD3",
8
- HM1 = "HM1",
9
- HM2 = "HM2",
10
- HM3 = "HM3",
11
- HM4 = "HM4",
12
- B1 = "B1",
13
- B2 = "B2",
14
- B3 = "B3",
15
- B3CAPS = "B3CAPS",
16
- B4 = "B4",
17
- B4CAPS = "B4CAPS",
18
- P1 = "P1",
19
- P2 = "P2",
20
- P3 = "P3",
21
- L1 = "L1",
22
- L2 = "L2",
23
- L3 = "L3",
24
- OVERLINE = "OVERLINE",
25
- TAG = "TAG"
26
- }
2
+ import { TextStyle, Styles } from '@cleartrip/ct-design-types';
3
+ import { TypographyVariant, TypographyColor } from './constants';
27
4
  export type TypographyVariantType = `${TypographyVariant}`;
28
- export declare enum TypographyColor {
29
- PRIMARY = "primary",
30
- SECONDARY = "secondary",
31
- TERTIARY = "tertiary",
32
- HEADING = "heading",
33
- SUBHEADING = "subheading",
34
- SUCCESS = "success",
35
- ALERT = "alert",
36
- WARNING = "warning",
37
- WARNING500 = "warning500",
38
- DISABLED = "disabled",
39
- LINK = "link",
40
- NEUTRAL = "neutral",
41
- LINK2 = "link2",
42
- PRIMARY2 = "primary2",
43
- SECONDARY2 = "secondary2",
44
- GRAPETINI = "grapetini900",
45
- PINA_COLADA750 = "pinacolada750",
46
- CORALPINK = "coralpink",
47
- NEUTRAL50 = "neutral50",
48
- ALERT500 = "alert500",
49
- BRAND = "brand"
50
- }
51
5
  export type TypographyColorType = `${TypographyColor}`;
52
6
  export type TypographyNodeElementType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'li';
53
7
  export interface TypographyStyleConfigProps {
54
- root?: Styles[];
8
+ root?: TextStyle[];
55
9
  container?: Styles[];
56
10
  }
57
- export interface OwnTypographyProps {
58
- children?: ReactNode;
11
+ export interface ITypography {
12
+ children: ReactNode;
59
13
  variant: TypographyVariantType;
60
14
  color?: TypographyColorType;
61
15
  isUnderlined?: boolean;
62
16
  isStriked?: boolean;
63
17
  isClickable?: boolean;
64
18
  onClick?: () => void;
65
- className?: string;
66
- containerClassName?: string;
67
19
  colorCode?: string;
68
20
  showInItalics?: boolean;
69
- width?: string;
21
+ width?: TextStyle['width'];
70
22
  lineClamp?: number;
71
23
  isDisabled?: boolean;
72
24
  componentNode?: TypographyNodeElementType;
73
- css?: CSSProperties;
74
25
  styleConfig?: TypographyStyleConfigProps;
75
26
  }
76
- export interface TypographyProps extends HtmlCompositeAttributes<OwnTypographyProps, 'P' | 'Heading' | 'Span' | 'Div' | 'LI'>, OwnTypographyProps {
77
- }
78
27
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../packages/components/Typography/src/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,oBAAY,iBAAiB;IAC3B,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,qBAAqB,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAE3D,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,SAAS,iBAAiB;IAC1B,cAAc,kBAAkB;IAChC,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,mBAAmB,GAAG,GAAG,eAAe,EAAE,CAAC;AAEvD,MAAM,MAAM,yBAAyB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9G,MAAM,WAAW,0BAA0B;IAIzC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAIjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,OAAO,EAAE,qBAAqB,CAAC;IAK/B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAK5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,SAAS,CAAC,EAAE,OAAO,CAAC;IAMpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAMrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,OAAO,CAAC;IAKxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAM1C,GAAG,CAAC,EAAE,aAAa,CAAC;IAMpB,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C;AAED,MAAM,WAAW,eACf,SAAQ,uBAAuB,CAAC,kBAAkB,EAAE,GAAG,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,EAC1F,kBAAkB;CAAG"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../packages/components/Typography/src/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG,GAAG,eAAe,EAAE,CAAC;AAEvD,MAAM,MAAM,yBAAyB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9G,MAAM,WAAW,0BAA0B;IAIzC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAInB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAI1B,QAAQ,EAAE,SAAS,CAAC;IAKpB,OAAO,EAAE,qBAAqB,CAAC;IAK/B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAK5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAKrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,OAAO,CAAC;IAKxB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAK3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAK1C,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@cleartrip/ct-design-typography",
3
- "version": "4.0.0-TEST.1",
3
+ "version": "5.0.0",
4
4
  "description": "Typography component with enhanced styleConfig support for RNW compatibility",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/ct-design-typography.cjs.js",
7
+ "react-native": "src/index.ts",
7
8
  "jsnext:main": "dist/ct-design-typography.esm.js",
8
9
  "module": "dist/ct-design-typography.esm.js",
9
10
  "sideEffects": false,
@@ -12,16 +13,19 @@
12
13
  "./dist/ct-design-typography.cjs.js": "./dist/ct-design-typography.browser.cjs.js"
13
14
  },
14
15
  "files": [
15
- "dist"
16
+ "dist",
17
+ "src"
16
18
  ],
17
19
  "dependencies": {
18
20
  "@emotion/react": "^11.14.0",
19
21
  "@emotion/styled": "^11.14.0",
20
- "@cleartrip/ct-design-types": "4.0.0-TEST.1",
21
- "@cleartrip/ct-design-theme": "4.0.0-TEST.1",
22
- "@cleartrip/ct-design-conditional-wrap": "4.0.0-TEST.1",
23
- "@cleartrip/ct-design-container": "4.0.0-TEST.1",
24
- "@cleartrip/ct-design-style-manager": "4.0.0-TEST.1"
22
+ "@cleartrip/ct-design-theme": "5.0.0",
23
+ "@cleartrip/ct-design-types": "5.0.0",
24
+ "@cleartrip/ct-design-conditional-wrap": "5.0.0",
25
+ "@cleartrip/ct-design-container": "5.0.0",
26
+ "@cleartrip/ct-design-style-manager": "5.0.0",
27
+ "@cleartrip/ct-design-event-propagation": "5.0.0",
28
+ "@cleartrip/ct-design-common-utils": "5.0.0"
25
29
  },
26
30
  "devDependencies": {
27
31
  "@emotion/babel-plugin": "^11.12.0"
@@ -38,6 +42,8 @@
38
42
  "scripts": {
39
43
  "watch-package": "rollup -c -w",
40
44
  "build-package": "rollup -c",
41
- "build-package:clean": "rm -rf dist && rollup -c"
45
+ "build-package:clean": "rm -rf dist && rollup -c",
46
+ "publish-package:local": "yalc publish --no-scripts",
47
+ "publish-package:local:registry": "pnpm publish --registry http://localhost:4873 --no-git-checks --access public"
42
48
  }
43
49
  }
@@ -0,0 +1,109 @@
1
+ import React, { forwardRef } from 'react';
2
+
3
+ import { Text } from 'react-native';
4
+ import { useStyles } from '@cleartrip/ct-design-style-manager';
5
+ import { useNativeMergeStyles } from '@cleartrip/ct-design-style-manager';
6
+ import { getAccessibilityProps } from '@cleartrip/ct-design-common-utils';
7
+ import EventCollectorProvider, { useMergeEvents } from '@cleartrip/ct-design-event-propagation';
8
+ import { useTriggerEvents } from '@cleartrip/ct-design-event-propagation';
9
+ import Conditional from '@cleartrip/ct-design-conditional-wrap';
10
+
11
+ import { ITypography, TypographyVariantType } from './type';
12
+ import { TypographyColor } from './constants';
13
+ import { getTypographyStyles } from './style';
14
+
15
+ const getTextType = (variant: TypographyVariantType) => {
16
+ const variantMapper = {
17
+ HD1: 'h1',
18
+ HD2: 'h2',
19
+ HD3: 'h3',
20
+ HM1: 'h1',
21
+ HM2: 'h2',
22
+ HM3: 'h3',
23
+ HM4: 'h4',
24
+ B1: 'p',
25
+ B2: 'p',
26
+ B3: 'p',
27
+ B4: 'p',
28
+ P1: 'p',
29
+ P2: 'p',
30
+ P3: 'p',
31
+ P4: 'p',
32
+ L1: 'p',
33
+ L2: 'p',
34
+ L3: 'p',
35
+ OVERLINE: 'p',
36
+ M4BOLD: 'p',
37
+ WRAPPER: 'wrapper',
38
+ };
39
+ return variantMapper[variant as keyof typeof variantMapper] as keyof HTMLElementTagNameMap;
40
+ };
41
+
42
+ const Typography = forwardRef<Text, ITypography>(
43
+ (
44
+ {
45
+ children,
46
+ color = TypographyColor.PRIMARY,
47
+ variant,
48
+ styleConfig,
49
+ isStriked = false,
50
+ lineClamp,
51
+ onClick,
52
+ isDisabled = false,
53
+ colorCode = '',
54
+ }: ITypography,
55
+ ref: React.ForwardedRef<Text>,
56
+ ) => {
57
+ const accessibilityProps = getAccessibilityProps(getTextType(variant));
58
+
59
+ const typographyStyles = useStyles(
60
+ (theme) => {
61
+ return {
62
+ root: getTypographyStyles({
63
+ theme: theme,
64
+ color,
65
+ variant,
66
+ isStriked,
67
+ lineClamp,
68
+ colorCode,
69
+ }),
70
+ };
71
+ },
72
+ [color, variant, isStriked, colorCode],
73
+ );
74
+
75
+ const { root: rootStyles = [] } = styleConfig || {};
76
+
77
+ const mergedTypographyStyles = useNativeMergeStyles(
78
+ [typographyStyles.root, ...rootStyles],
79
+ [typographyStyles, styleConfig?.root],
80
+ );
81
+
82
+ const mergedEvents = useMergeEvents({ onClick: [onClick] });
83
+ const { onClick: onClickEvent } = useTriggerEvents(mergedEvents);
84
+
85
+ return (
86
+ <Conditional
87
+ condition={!!onClick}
88
+ wrap={(children) => <EventCollectorProvider value={mergedEvents}>{children}</EventCollectorProvider>}
89
+ >
90
+ <Text
91
+ ref={ref}
92
+ {...accessibilityProps}
93
+ style={mergedTypographyStyles}
94
+ numberOfLines={lineClamp}
95
+ onPress={onClick ? onClickEvent : undefined}
96
+ allowFontScaling={false}
97
+ suppressHighlighting
98
+ disabled={isDisabled}
99
+ >
100
+ {children}
101
+ </Text>
102
+ </Conditional>
103
+ );
104
+ },
105
+ );
106
+
107
+ Typography.displayName = 'Typography';
108
+
109
+ export default Typography;
@@ -0,0 +1,122 @@
1
+ import React, { useMemo } from 'react';
2
+ import { useTheme } from '@cleartrip/ct-design-theme';
3
+ import { useStyles, useWebMergeStyles } from '@cleartrip/ct-design-style-manager';
4
+ import { Container, IContainer } from '@cleartrip/ct-design-container';
5
+ import ConditionalWrap from '@cleartrip/ct-design-conditional-wrap';
6
+ import { getLineClampStyles, getTypographyStyles } from './style';
7
+ import { TypographyVariantType, ITypography, TypographyNodeElementType } from './type';
8
+ import { TypographyColor } from './constants';
9
+ import { css } from '@emotion/css';
10
+
11
+ const getTextType = (variant: TypographyVariantType): TypographyNodeElementType => {
12
+ const variantMapper = {
13
+ HD1: 'h1',
14
+ HD2: 'h2',
15
+ HD3: 'h3',
16
+ HM1: 'h1',
17
+ HM2: 'h2',
18
+ HM3: 'h3',
19
+ HM4: 'h4',
20
+ B1: 'p',
21
+ B2: 'p',
22
+ B3: 'p',
23
+ B4: 'p',
24
+ P1: 'p',
25
+ P2: 'p',
26
+ P3: 'p',
27
+ P4: 'p',
28
+ L1: 'p',
29
+ L2: 'p',
30
+ L3: 'p',
31
+ B4CAPS: 'p',
32
+ OVERLINE: 'p',
33
+ B3CAPS: 'p',
34
+ M4BOLD: 'p',
35
+ TAG: 'p',
36
+ };
37
+ return variantMapper[variant];
38
+ };
39
+
40
+ const Typography: React.FC<ITypography> = ({
41
+ children = null,
42
+ variant,
43
+ color = TypographyColor.PRIMARY,
44
+ isClickable,
45
+ isStriked = false,
46
+ isUnderlined = false,
47
+ onClick,
48
+ colorCode = '',
49
+ showInItalics = false,
50
+ lineClamp,
51
+ componentNode,
52
+ isDisabled = false,
53
+ styleConfig = {},
54
+ }) => {
55
+ const theme = useTheme();
56
+ const parsedIsClickable = typeof isClickable === 'boolean' ? isClickable : !!onClick;
57
+
58
+ const typographyStyles = useStyles(
59
+ (theme) => {
60
+ return {
61
+ root: getTypographyStyles({
62
+ theme: theme,
63
+ variant,
64
+ color,
65
+ isClickable: parsedIsClickable,
66
+ isStriked,
67
+ isUnderlined,
68
+ colorCode,
69
+ showInItalics,
70
+ lineClamp,
71
+ isDisabled,
72
+ }),
73
+ };
74
+ },
75
+ [
76
+ variant,
77
+ color,
78
+ parsedIsClickable,
79
+ isStriked,
80
+ isUnderlined,
81
+ colorCode,
82
+ showInItalics,
83
+ lineClamp,
84
+ isDisabled,
85
+ theme,
86
+ ],
87
+ );
88
+
89
+ const { root: customRootStyles = [], container: customContainerStyles = [] } = styleConfig || {};
90
+
91
+ const clampClass = useMemo(() => {
92
+ return css(getLineClampStyles(lineClamp));
93
+ }, [lineClamp]);
94
+
95
+ const mergedRootStyles = useWebMergeStyles(
96
+ [typographyStyles.root, clampClass, ...customRootStyles],
97
+ [typographyStyles.root, clampClass, customRootStyles],
98
+ );
99
+
100
+ const ComponentToRender = componentNode || getTextType(variant);
101
+
102
+ const containerAsSupportedValues: readonly IContainer['as'][] = ['p', 'main', 'section', 'article', 'div'] as const;
103
+ const containerAs: IContainer['as'] =
104
+ componentNode && (containerAsSupportedValues as readonly string[]).includes(componentNode)
105
+ ? (componentNode as IContainer['as'])
106
+ : 'div';
107
+
108
+ return (
109
+ <ConditionalWrap
110
+ condition={parsedIsClickable}
111
+ wrap={(children) => (
112
+ <Container onClick={onClick} styleConfig={{ root: customContainerStyles }} as={containerAs}>
113
+ {children}
114
+ </Container>
115
+ )}
116
+ >
117
+ <ComponentToRender className={mergedRootStyles}>{children}</ComponentToRender>
118
+ </ConditionalWrap>
119
+ );
120
+ };
121
+
122
+ export default Typography;
@@ -0,0 +1,53 @@
1
+ export enum TypographyVariant {
2
+ HD1 = 'HD1',
3
+ HD2 = 'HD2',
4
+ HD3 = 'HD3',
5
+ HM1 = 'HM1',
6
+ HM2 = 'HM2',
7
+ HM3 = 'HM3',
8
+ HM4 = 'HM4',
9
+ B1 = 'B1',
10
+ B2 = 'B2',
11
+ B3 = 'B3',
12
+ B3CAPS = 'B3CAPS',
13
+ B4 = 'B4',
14
+ B4CAPS = 'B4CAPS',
15
+ P1 = 'P1',
16
+ P2 = 'P2',
17
+ P3 = 'P3',
18
+ P4 = 'P4',
19
+ L1 = 'L1',
20
+ L2 = 'L2',
21
+ L3 = 'L3',
22
+ OVERLINE = 'OVERLINE',
23
+ TAG = 'TAG',
24
+ M4BOLD = 'M4BOLD',
25
+ WRAPPER = 'WRAPPER',
26
+ }
27
+
28
+ export enum TypographyColor {
29
+ PRIMARY = 'primary',
30
+ SECONDARY = 'secondary',
31
+ TERTIARY = 'tertiary',
32
+ HEADING = 'heading',
33
+ SUBHEADING = 'subheading',
34
+ SUCCESS = 'success',
35
+ ALERT = 'alert',
36
+ WARNING = 'warning',
37
+ DISABLED = 'disabled',
38
+ LINK = 'link',
39
+ NEUTRAL = 'neutral',
40
+ LINK2 = 'link2',
41
+ PRIMARY2 = 'primary2',
42
+ SECONDARY2 = 'secondary2',
43
+ GRAPETINI = 'grapetini900',
44
+ PINA_COLADA750 = 'pinacolada750',
45
+ BRAND = 'brand',
46
+ ALERT500 = 'alert500',
47
+ NEUTRAL50 = 'neutral50',
48
+ MARGARITA750 = 'margarita750',
49
+ GREEN100 = 'green100',
50
+ RED100 = 'red100',
51
+ CORALPINK = 'coralpink',
52
+ WARNING500 = 'warning500',
53
+ }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { default as Typography } from './Typography';
2
+ export type * from './type';
3
+ export * from './constants';
4
+ export { getTypographyStyles, getTypographyVariant } from './style';