@preply/ds-rn-lib 0.44.0 → 0.45.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 (29) hide show
  1. package/dist/components/Heading/Heading.d.ts +6 -0
  2. package/dist/components/Heading/Heading.js +14 -0
  3. package/dist/components/Text/Text.d.ts +2 -7
  4. package/dist/components/Text/Text.js +2 -3
  5. package/dist/components/index.d.ts +2 -1
  6. package/dist/components/index.js +3 -2
  7. package/dist/index.js +4 -2
  8. package/dist/props/index.d.ts +1 -1
  9. package/dist/props/index.js +2 -1
  10. package/dist/props/typography/hooks/{useTextColorStyle.d.ts → private/useTextColorStyle.d.ts} +1 -1
  11. package/dist/props/typography/hooks/private/useTextColorStyle.js +26 -0
  12. package/dist/props/typography/hooks/private/useTextSharedStyle.d.ts +13 -0
  13. package/dist/props/typography/hooks/private/useTextSharedStyle.js +15 -0
  14. package/dist/props/typography/hooks/private/useTextVariantStyle.d.ts +11 -0
  15. package/dist/props/typography/hooks/private/useTextVariantStyle.js +58 -0
  16. package/dist/props/typography/hooks/useHeadingStyle.d.ts +2 -0
  17. package/dist/props/typography/hooks/useHeadingStyle.js +19 -0
  18. package/dist/props/typography/hooks/useTextStyle.d.ts +2 -10
  19. package/dist/props/typography/hooks/useTextStyle.js +9 -9
  20. package/dist/props/typography/index.d.ts +2 -0
  21. package/dist/props/typography/index.js +2 -1
  22. package/dist/props/typography/types.d.ts +26 -0
  23. package/dist/props/typography/types.js +2 -0
  24. package/dist/providers/TextVariantProvider.d.ts +2 -1
  25. package/dist/providers/TextVariantProvider.js +1 -1
  26. package/package.json +8 -8
  27. package/dist/props/typography/hooks/useTextColorStyle.js +0 -26
  28. package/dist/props/typography/hooks/useTextVariantStyle.d.ts +0 -10
  29. package/dist/props/typography/hooks/useTextVariantStyle.js +0 -59
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { HeadingStyleProps, TextCommonProps } from '../../props/typography';
3
+ interface HeadingProps extends TextCommonProps, HeadingStyleProps {
4
+ }
5
+ export declare const Heading: FC<HeadingProps>;
6
+ export {};
@@ -0,0 +1,14 @@
1
+ import React, { memo } from 'react';
2
+ import { Text } from 'react-native';
3
+ import { TextVariantProvider } from '../../providers/TextVariantProvider.js';
4
+ import { useHeadingStyle } from '../../props/typography/hooks/useHeadingStyle.js';
5
+
6
+ const HeadingBase = ({ level, large = false, accent, color, centered, children, ...rest }) => {
7
+ const computedStyles = useHeadingStyle({ level, large, accent, color, centered });
8
+ return (React.createElement(TextVariantProvider, { value: computedStyles },
9
+ React.createElement(Text, Object.assign({ style: computedStyles }, rest), children)));
10
+ };
11
+ const Heading = memo(HeadingBase);
12
+
13
+ export { Heading };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGluZy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSGVhZGluZy9IZWFkaW5nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUZXh0IGFzIFJOVGV4dCB9IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5cbmltcG9ydCB7IHVzZUhlYWRpbmdTdHlsZSB9IGZyb20gJy4uLy4uL3Byb3BzJztcbmltcG9ydCB7IEhlYWRpbmdTdHlsZVByb3BzLCBUZXh0Q29tbW9uUHJvcHMgfSBmcm9tICcuLi8uLi9wcm9wcy90eXBvZ3JhcGh5JztcbmltcG9ydCB7IFRleHRWYXJpYW50UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVGV4dFZhcmlhbnRQcm92aWRlcic7XG5cbmludGVyZmFjZSBIZWFkaW5nUHJvcHMgZXh0ZW5kcyBUZXh0Q29tbW9uUHJvcHMsIEhlYWRpbmdTdHlsZVByb3BzIHt9XG5cbmNvbnN0IEhlYWRpbmdCYXNlOiBGQzxIZWFkaW5nUHJvcHM+ID0gKHtcbiAgICBsZXZlbCxcbiAgICBsYXJnZSA9IGZhbHNlLFxuICAgIGFjY2VudCxcbiAgICBjb2xvcixcbiAgICBjZW50ZXJlZCxcbiAgICBjaGlsZHJlbixcbiAgICAuLi5yZXN0XG59KSA9PiB7XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZXMgPSB1c2VIZWFkaW5nU3R5bGUoeyBsZXZlbCwgbGFyZ2UsIGFjY2VudCwgY29sb3IsIGNlbnRlcmVkIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRWYXJpYW50UHJvdmlkZXIgdmFsdWU9e2NvbXB1dGVkU3R5bGVzfT5cbiAgICAgICAgICAgIDxSTlRleHQgc3R5bGU9e2NvbXB1dGVkU3R5bGVzfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9STlRleHQ+XG4gICAgICAgIDwvVGV4dFZhcmlhbnRQcm92aWRlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEhlYWRpbmc6IEZDPEhlYWRpbmdQcm9wcz4gPSBtZW1vKEhlYWRpbmdCYXNlKTtcbiJdLCJuYW1lcyI6WyJSTlRleHQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsTUFBTSxXQUFXLEdBQXFCLENBQUMsRUFDbkMsS0FBSyxFQUNMLEtBQUssR0FBRyxLQUFLLEVBQ2IsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLEdBQUcsSUFBSSxFQUNWO0lBQ0csTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFbEYsUUFDSSxvQkFBQyxtQkFBbUIsSUFBQyxLQUFLLEVBQUUsY0FBYztRQUN0QyxvQkFBQ0EsSUFBTSxrQkFBQyxLQUFLLEVBQUUsY0FBYyxJQUFNLElBQUksR0FDbEMsUUFBUSxDQUNKLENBQ1MsRUFDeEI7QUFDTixDQUFDLENBQUM7TUFFVyxPQUFPLEdBQXFCLElBQUksQ0FBQyxXQUFXOzs7OyJ9
@@ -1,11 +1,6 @@
1
- import { ColorName, TextAccent, TextVariant } from '@preply/ds-core';
2
1
  import { FC } from 'react';
3
- import { TextProps as RNTextProps } from 'react-native';
4
- interface TextProps extends Pick<RNTextProps, 'adjustsFontSizeToFit' | 'lineBreakMode' | 'numberOfLines' | 'testID'> {
5
- variant?: TextVariant;
6
- accent?: TextAccent;
7
- color?: ColorName;
8
- centered?: boolean;
2
+ import { TextCommonProps, TextStyleProps } from '../../props/typography';
3
+ interface TextProps extends TextCommonProps, TextStyleProps {
9
4
  }
10
5
  export declare const Text: FC<TextProps>;
11
6
  export {};
@@ -1,4 +1,3 @@
1
- import { TEXT_VARIANT_RN_DEFAULT } from '@preply/ds-rn-core';
2
1
  import React, { memo } from 'react';
3
2
  import { Text as Text$1 } from 'react-native';
4
3
  import { TextVariantProvider } from '../../providers/TextVariantProvider.js';
@@ -6,10 +5,10 @@ import { useTextStyle } from '../../props/typography/hooks/useTextStyle.js';
6
5
 
7
6
  const TextBase = ({ variant, accent, color, centered, children, ...rest }) => {
8
7
  const computedStyles = useTextStyle({ variant, accent, color, centered });
9
- return (React.createElement(TextVariantProvider, { value: variant !== null && variant !== void 0 ? variant : TEXT_VARIANT_RN_DEFAULT },
8
+ return (React.createElement(TextVariantProvider, { value: computedStyles },
10
9
  React.createElement(Text$1, Object.assign({ style: computedStyles }, rest), children)));
11
10
  };
12
11
  const Text = memo(TextBase);
13
12
 
14
13
  export { Text };
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGV4dC9UZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvck5hbWUsIFRleHRBY2NlbnQsIFRleHRWYXJpYW50IH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IFRFWFRfVkFSSUFOVF9STl9ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1ybi1jb3JlJztcbmltcG9ydCBSZWFjdCwgeyBGQywgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRleHQgYXMgUk5UZXh0LCBUZXh0UHJvcHMgYXMgUk5UZXh0UHJvcHMgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuXG5pbXBvcnQgeyB1c2VUZXh0U3R5bGUgfSBmcm9tICcuLi8uLi9wcm9wcyc7XG5pbXBvcnQgeyBUZXh0VmFyaWFudFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL1RleHRWYXJpYW50UHJvdmlkZXInO1xuXG5pbnRlcmZhY2UgVGV4dFByb3BzXG4gICAgZXh0ZW5kcyBQaWNrPFxuICAgICAgICBSTlRleHRQcm9wcyxcbiAgICAgICAgJ2FkanVzdHNGb250U2l6ZVRvRml0JyB8ICdsaW5lQnJlYWtNb2RlJyB8ICdudW1iZXJPZkxpbmVzJyB8ICd0ZXN0SUQnXG4gICAgPiB7XG4gICAgdmFyaWFudD86IFRleHRWYXJpYW50O1xuICAgIGFjY2VudD86IFRleHRBY2NlbnQ7XG4gICAgY29sb3I/OiBDb2xvck5hbWU7XG4gICAgY2VudGVyZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBUZXh0QmFzZTogRkM8VGV4dFByb3BzPiA9ICh7IHZhcmlhbnQsIGFjY2VudCwgY29sb3IsIGNlbnRlcmVkLCBjaGlsZHJlbiwgLi4ucmVzdCB9KSA9PiB7XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZXMgPSB1c2VUZXh0U3R5bGUoeyB2YXJpYW50LCBhY2NlbnQsIGNvbG9yLCBjZW50ZXJlZCB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxUZXh0VmFyaWFudFByb3ZpZGVyIHZhbHVlPXt2YXJpYW50ID8/IFRFWFRfVkFSSUFOVF9STl9ERUZBVUxUfT5cbiAgICAgICAgICAgIDxSTlRleHQgc3R5bGU9e2NvbXB1dGVkU3R5bGVzfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9STlRleHQ+XG4gICAgICAgIDwvVGV4dFZhcmlhbnRQcm92aWRlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFRleHQ6IEZDPFRleHRQcm9wcz4gPSBtZW1vKFRleHRCYXNlKTtcbiJdLCJuYW1lcyI6WyJSTlRleHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQW1CQSxNQUFNLFFBQVEsR0FBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUU7SUFDcEYsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUUxRSxRQUNJLG9CQUFDLG1CQUFtQixJQUFDLEtBQUssRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSx1QkFBdUI7UUFDMUQsb0JBQUNBLE1BQU0sa0JBQUMsS0FBSyxFQUFFLGNBQWMsSUFBTSxJQUFJLEdBQ2xDLFFBQVEsQ0FDSixDQUNTLEVBQ3hCO0FBQ04sQ0FBQyxDQUFDO01BRVcsSUFBSSxHQUFrQixJQUFJLENBQUMsUUFBUTs7OzsifQ==
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGV4dC9UZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUZXh0IGFzIFJOVGV4dCB9IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5cbmltcG9ydCB7IHVzZVRleHRTdHlsZSB9IGZyb20gJy4uLy4uL3Byb3BzJztcbmltcG9ydCB7IFRleHRDb21tb25Qcm9wcywgVGV4dFN0eWxlUHJvcHMgfSBmcm9tICcuLi8uLi9wcm9wcy90eXBvZ3JhcGh5JztcbmltcG9ydCB7IFRleHRWYXJpYW50UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVGV4dFZhcmlhbnRQcm92aWRlcic7XG5cbmludGVyZmFjZSBUZXh0UHJvcHMgZXh0ZW5kcyBUZXh0Q29tbW9uUHJvcHMsIFRleHRTdHlsZVByb3BzIHt9XG5cbmNvbnN0IFRleHRCYXNlOiBGQzxUZXh0UHJvcHM+ID0gKHsgdmFyaWFudCwgYWNjZW50LCBjb2xvciwgY2VudGVyZWQsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IHVzZVRleHRTdHlsZSh7IHZhcmlhbnQsIGFjY2VudCwgY29sb3IsIGNlbnRlcmVkIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRWYXJpYW50UHJvdmlkZXIgdmFsdWU9e2NvbXB1dGVkU3R5bGVzfT5cbiAgICAgICAgICAgIDxSTlRleHQgc3R5bGU9e2NvbXB1dGVkU3R5bGVzfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9STlRleHQ+XG4gICAgICAgIDwvVGV4dFZhcmlhbnRQcm92aWRlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFRleHQ6IEZDPFRleHRQcm9wcz4gPSBtZW1vKFRleHRCYXNlKTtcbiJdLCJuYW1lcyI6WyJSTlRleHQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsTUFBTSxRQUFRLEdBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFO0lBQ3BGLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFMUUsUUFDSSxvQkFBQyxtQkFBbUIsSUFBQyxLQUFLLEVBQUUsY0FBYztRQUN0QyxvQkFBQ0EsTUFBTSxrQkFBQyxLQUFLLEVBQUUsY0FBYyxJQUFNLElBQUksR0FDbEMsUUFBUSxDQUNKLENBQ1MsRUFDeEI7QUFDTixDQUFDLENBQUM7TUFFVyxJQUFJLEdBQWtCLElBQUksQ0FBQyxRQUFROzs7OyJ9
@@ -1,3 +1,4 @@
1
- export { Text } from './Text/Text';
1
+ export { Heading } from './Heading/Heading';
2
2
  export { LayoutFlex } from './LayoutFlex/LayoutFlex';
3
3
  export { LayoutFlexItem } from './LayoutFlexItem/LayoutFlexItem';
4
+ export { Text } from './Text/Text';
@@ -1,4 +1,5 @@
1
- export { Text } from './Text/Text.js';
1
+ export { Heading } from './Heading/Heading.js';
2
2
  export { LayoutFlex } from './LayoutFlex/LayoutFlex.js';
3
3
  export { LayoutFlexItem } from './LayoutFlexItem/LayoutFlexItem.js';
4
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzsifQ==
4
+ export { Text } from './Text/Text.js';
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7In0=
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- export { Text } from './components/Text/Text.js';
1
+ export { Heading } from './components/Heading/Heading.js';
2
2
  export { LayoutFlex } from './components/LayoutFlex/LayoutFlex.js';
3
3
  export { LayoutFlexItem } from './components/LayoutFlexItem/LayoutFlexItem.js';
4
+ export { Text } from './components/Text/Text.js';
5
+ export { useHeadingStyle } from './props/typography/hooks/useHeadingStyle.js';
4
6
  export { useTextStyle } from './props/typography/hooks/useTextStyle.js';
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7In0=
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OzsifQ==
@@ -1 +1 @@
1
- export { useTextStyle } from './typography';
1
+ export { useHeadingStyle, useTextStyle } from './typography';
@@ -1,2 +1,3 @@
1
+ export { useHeadingStyle } from './typography/hooks/useHeadingStyle.js';
1
2
  export { useTextStyle } from './typography/hooks/useTextStyle.js';
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
@@ -1,3 +1,3 @@
1
1
  export declare const useTextColorStyle: (color?: "gray-100" | "gray-200" | "gray-300" | "gray-400" | "gray-500" | "gray-600" | "teal-100" | "teal-200" | "teal-300" | "teal-400" | "teal-500" | "green-100" | "green-200" | "green-300" | "green-400" | "green-500" | "yellow-100" | "yellow-200" | "yellow-300" | "yellow-400" | "yellow-500" | "red-100" | "red-200" | "red-300" | "red-400" | "red-500" | "blue-100" | "blue-200" | "blue-300" | "blue-400" | "blue-500" | "magenta-100" | "magenta-200" | "magenta-300" | "magenta-400" | "magenta-500" | undefined, accent?: "primary" | "secondary" | "branded" | "positive" | undefined) => {
2
- color: string;
2
+ color: string | import("react-native").OpaqueColorValue | undefined;
3
3
  };
@@ -0,0 +1,26 @@
1
+ import { content, root, scheme } from '@preply/ds-core';
2
+ import { useToken } from '@preply/ds-rn-core';
3
+
4
+ const useTextColorStyle = (color, accent) => {
5
+ var _a;
6
+ let token;
7
+ if (accent) {
8
+ token = content[accent].color;
9
+ }
10
+ else if (color) {
11
+ const [name, step] = color.split('-');
12
+ if (!step) {
13
+ token = root.palette[name];
14
+ }
15
+ else {
16
+ token = (_a = root.palette[name]) === null || _a === void 0 ? void 0 : _a[step];
17
+ }
18
+ }
19
+ if (!token) {
20
+ token = scheme.color;
21
+ }
22
+ return { color: String(useToken(token)) };
23
+ };
24
+
25
+ export { useTextColorStyle };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dENvbG9yU3R5bGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm9wcy90eXBvZ3JhcGh5L2hvb2tzL3ByaXZhdGUvdXNlVGV4dENvbG9yU3R5bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JOYW1lLCBUZXh0QWNjZW50LCBjb250ZW50LCByb290LCBzY2hlbWUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUtdHlwZXMnO1xuaW1wb3J0IHsgdXNlVG9rZW4gfSBmcm9tICdAcHJlcGx5L2RzLXJuLWNvcmUnO1xuaW1wb3J0IHsgVGV4dFN0eWxlIGFzIFJOVGV4dFN0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRDb2xvclN0eWxlID0gKFxuICAgIGNvbG9yPzogQ29sb3JOYW1lLFxuICAgIGFjY2VudD86IFRleHRBY2NlbnQsXG4pOiB7IGNvbG9yOiBSTlRleHRTdHlsZVsnY29sb3InXSB9ID0+IHtcbiAgICBsZXQgdG9rZW46IFRva2VuIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGFjY2VudCkge1xuICAgICAgICB0b2tlbiA9IGNvbnRlbnRbYWNjZW50XS5jb2xvcjtcbiAgICB9IGVsc2UgaWYgKGNvbG9yKSB7XG4gICAgICAgIGNvbnN0IFtuYW1lLCBzdGVwXSA9IGNvbG9yLnNwbGl0KCctJyk7XG4gICAgICAgIGlmICghc3RlcCkge1xuICAgICAgICAgICAgdG9rZW4gPSByb290LnBhbGV0dGVbbmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJvb3QucGFsZXR0ZVtuYW1lXT8uW3N0ZXBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgICB0b2tlbiA9IHNjaGVtZS5jb2xvcjtcbiAgICB9XG5cbiAgICByZXR1cm4geyBjb2xvcjogU3RyaW5nKHVzZVRva2VuKHRva2VuKSkgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BS2EsaUJBQWlCLEdBQUcsQ0FDN0IsS0FBaUIsRUFDakIsTUFBbUI7O0lBRW5CLElBQUksS0FBd0IsQ0FBQztJQUU3QixJQUFJLE1BQU0sRUFBRTtRQUNSLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDO0tBQ2pDO1NBQU0sSUFBSSxLQUFLLEVBQUU7UUFDZCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDSCxLQUFLLFNBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQUcsSUFBSSxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDUixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUN4QjtJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDOUM7Ozs7In0=
@@ -0,0 +1,13 @@
1
+ import { ColorName, TextAccent } from '@preply/ds-core';
2
+ import { TextStyle as RNTextStyle } from 'react-native';
3
+ interface UseTextSharedStyleParams {
4
+ accent?: TextAccent;
5
+ color?: ColorName;
6
+ centered?: boolean;
7
+ }
8
+ interface UseTextSharedStyleResponse {
9
+ color: RNTextStyle['color'];
10
+ textAlign: RNTextStyle['textAlign'];
11
+ }
12
+ export declare const useTextSharedStyle: ({ accent, color, centered, }: UseTextSharedStyleParams) => UseTextSharedStyleResponse;
13
+ export {};
@@ -0,0 +1,15 @@
1
+ import { useMemo } from 'react';
2
+ import { useTextColorStyle } from './useTextColorStyle.js';
3
+
4
+ const useTextSharedStyle = ({ accent, color, centered, }) => {
5
+ const colorStyle = useTextColorStyle(color, accent);
6
+ return useMemo(() => {
7
+ const centeredStyle = {
8
+ textAlign: centered ? 'center' : 'left',
9
+ };
10
+ return { ...colorStyle, ...centeredStyle };
11
+ }, [centered, colorStyle]);
12
+ };
13
+
14
+ export { useTextSharedStyle };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFNoYXJlZFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvcHMvdHlwb2dyYXBoeS9ob29rcy9wcml2YXRlL3VzZVRleHRTaGFyZWRTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvck5hbWUsIFRleHRBY2NlbnQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRleHRTdHlsZSBhcyBSTlRleHRTdHlsZSB9IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5cbmltcG9ydCB7IHVzZVRleHRDb2xvclN0eWxlIH0gZnJvbSAnLi91c2VUZXh0Q29sb3JTdHlsZSc7XG5cbmludGVyZmFjZSBVc2VUZXh0U2hhcmVkU3R5bGVQYXJhbXMge1xuICAgIGFjY2VudD86IFRleHRBY2NlbnQ7XG4gICAgY29sb3I/OiBDb2xvck5hbWU7XG4gICAgY2VudGVyZWQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVXNlVGV4dFNoYXJlZFN0eWxlUmVzcG9uc2Uge1xuICAgIGNvbG9yOiBSTlRleHRTdHlsZVsnY29sb3InXTtcbiAgICB0ZXh0QWxpZ246IFJOVGV4dFN0eWxlWyd0ZXh0QWxpZ24nXTtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVRleHRTaGFyZWRTdHlsZSA9ICh7XG4gICAgYWNjZW50LFxuICAgIGNvbG9yLFxuICAgIGNlbnRlcmVkLFxufTogVXNlVGV4dFNoYXJlZFN0eWxlUGFyYW1zKTogVXNlVGV4dFNoYXJlZFN0eWxlUmVzcG9uc2UgPT4ge1xuICAgIGNvbnN0IGNvbG9yU3R5bGUgPSB1c2VUZXh0Q29sb3JTdHlsZShjb2xvciwgYWNjZW50KTtcblxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2VudGVyZWRTdHlsZTogeyB0ZXh0QWxpZ246IFJOVGV4dFN0eWxlWyd0ZXh0QWxpZ24nXSB9ID0ge1xuICAgICAgICAgICAgdGV4dEFsaWduOiBjZW50ZXJlZCA/ICdjZW50ZXInIDogJ2xlZnQnLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4geyAuLi5jb2xvclN0eWxlLCAuLi5jZW50ZXJlZFN0eWxlIH07XG4gICAgfSwgW2NlbnRlcmVkLCBjb2xvclN0eWxlXSk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQWlCYSxrQkFBa0IsR0FBRyxDQUFDLEVBQy9CLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxHQUNlO0lBQ3ZCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVwRCxPQUFPLE9BQU8sQ0FBQztRQUNYLE1BQU0sYUFBYSxHQUE0QztZQUMzRCxTQUFTLEVBQUUsUUFBUSxHQUFHLFFBQVEsR0FBRyxNQUFNO1NBQzFDLENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztLQUM5QyxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDL0I7Ozs7In0=
@@ -0,0 +1,11 @@
1
+ import { Token } from '@preply/ds-core-types';
2
+ import { TextVariantStyle } from '../..';
3
+ interface VariantRawStyles {
4
+ fontSize: Token;
5
+ fontWeight: Token;
6
+ lineHeight: Token;
7
+ letterSpacing: Token;
8
+ fontStyle: Token;
9
+ }
10
+ export declare const useTextVariantStyle: (variantRawStyles: VariantRawStyles) => TextVariantStyle;
11
+ export {};
@@ -0,0 +1,58 @@
1
+ import { root } from '@preply/ds-core';
2
+ import { useStyleSheet } from '@preply/ds-rn-core';
3
+ import { useMemo } from 'react';
4
+
5
+ const fontFamilyRawStyle = {
6
+ fontFamily: root.text.base.typeface,
7
+ };
8
+ const isItalic = (fontStyle) => {
9
+ return fontStyle === 'italic' || fontStyle === 'oblique 10deg';
10
+ };
11
+ const getFontWeightString = (fontWeight, fontStyle) => {
12
+ switch (fontWeight) {
13
+ case 'normal':
14
+ case '400': {
15
+ return isItalic(fontStyle) ? '' : 'Regular';
16
+ }
17
+ case '500': {
18
+ return 'Medium';
19
+ }
20
+ case 'bold':
21
+ case '700': {
22
+ return 'Bold';
23
+ }
24
+ default: {
25
+ return isItalic(fontStyle) ? '' : 'Regular';
26
+ }
27
+ }
28
+ };
29
+ const getFontStyleString = (fontStyle) => {
30
+ return isItalic(fontStyle) ? 'Italic' : '';
31
+ };
32
+ const getFontFamily = (fontFamily, fontWeight, fontStyle) => {
33
+ const fontWeightString = getFontWeightString(fontWeight, fontStyle);
34
+ const fontStyleString = getFontStyleString(fontStyle);
35
+ return `${fontFamily}-${fontWeightString}${fontStyleString}`;
36
+ };
37
+ const useTextVariantStyle = (variantRawStyles) => {
38
+ const styles = useStyleSheet({
39
+ fontFamily: fontFamilyRawStyle,
40
+ variant: variantRawStyles,
41
+ });
42
+ return useMemo(() => ({
43
+ fontFamily: getFontFamily(styles.fontFamily.fontFamily, String(styles.variant.fontWeight), styles.variant.fontStyle),
44
+ fontSize: styles.variant.fontSize,
45
+ letterSpacing: styles.variant.letterSpacing,
46
+ lineHeight: styles.variant.lineHeight,
47
+ }), [
48
+ styles.fontFamily.fontFamily,
49
+ styles.variant.fontSize,
50
+ styles.variant.fontStyle,
51
+ styles.variant.fontWeight,
52
+ styles.variant.letterSpacing,
53
+ styles.variant.lineHeight,
54
+ ]);
55
+ };
56
+
57
+ export { useTextVariantStyle };
58
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFZhcmlhbnRTdHlsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3BzL3R5cG9ncmFwaHkvaG9va3MvcHJpdmF0ZS91c2VUZXh0VmFyaWFudFN0eWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJvb3QgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUtdHlwZXMnO1xuaW1wb3J0IHsgdXNlU3R5bGVTaGVldCB9IGZyb20gJ0BwcmVwbHkvZHMtcm4tY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVGV4dFN0eWxlIGFzIFJOVGV4dFN0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgVGV4dFZhcmlhbnRTdHlsZSB9IGZyb20gJy4uLy4uJztcblxuaW50ZXJmYWNlIFZhcmlhbnRSYXdTdHlsZXMge1xuICAgIGZvbnRTaXplOiBUb2tlbjtcbiAgICBmb250V2VpZ2h0OiBUb2tlbjtcbiAgICBsaW5lSGVpZ2h0OiBUb2tlbjtcbiAgICBsZXR0ZXJTcGFjaW5nOiBUb2tlbjtcbiAgICBmb250U3R5bGU6IFRva2VuO1xufVxuXG5jb25zdCBmb250RmFtaWx5UmF3U3R5bGUgPSB7XG4gICAgZm9udEZhbWlseTogcm9vdC50ZXh0LmJhc2UudHlwZWZhY2UsXG59O1xuXG5jb25zdCBpc0l0YWxpYyA9IChmb250U3R5bGU6IFJOVGV4dFN0eWxlWydmb250U3R5bGUnXSB8ICdvYmxpcXVlIDEwZGVnJykgPT4ge1xuICAgIHJldHVybiBmb250U3R5bGUgPT09ICdpdGFsaWMnIHx8IGZvbnRTdHlsZSA9PT0gJ29ibGlxdWUgMTBkZWcnO1xufTtcblxuY29uc3QgZ2V0Rm9udFdlaWdodFN0cmluZyA9IChcbiAgICBmb250V2VpZ2h0OiBSTlRleHRTdHlsZVsnZm9udFdlaWdodCddLFxuICAgIGZvbnRTdHlsZTogUk5UZXh0U3R5bGVbJ2ZvbnRTdHlsZSddLFxuKTogc3RyaW5nID0+IHtcbiAgICBzd2l0Y2ggKGZvbnRXZWlnaHQpIHtcbiAgICAgICAgY2FzZSAnbm9ybWFsJzpcbiAgICAgICAgY2FzZSAnNDAwJzoge1xuICAgICAgICAgICAgcmV0dXJuIGlzSXRhbGljKGZvbnRTdHlsZSkgPyAnJyA6ICdSZWd1bGFyJztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICc1MDAnOiB7XG4gICAgICAgICAgICByZXR1cm4gJ01lZGl1bSc7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnYm9sZCc6XG4gICAgICAgIGNhc2UgJzcwMCc6IHtcbiAgICAgICAgICAgIHJldHVybiAnQm9sZCc7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcmV0dXJuIGlzSXRhbGljKGZvbnRTdHlsZSkgPyAnJyA6ICdSZWd1bGFyJztcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmNvbnN0IGdldEZvbnRTdHlsZVN0cmluZyA9IChmb250U3R5bGU6IFJOVGV4dFN0eWxlWydmb250U3R5bGUnXSk6IHN0cmluZyA9PiB7XG4gICAgcmV0dXJuIGlzSXRhbGljKGZvbnRTdHlsZSkgPyAnSXRhbGljJyA6ICcnO1xufTtcblxuY29uc3QgZ2V0Rm9udEZhbWlseSA9IChcbiAgICBmb250RmFtaWx5OiBSTlRleHRTdHlsZVsnZm9udEZhbWlseSddLFxuICAgIGZvbnRXZWlnaHQ6IFJOVGV4dFN0eWxlWydmb250V2VpZ2h0J10sXG4gICAgZm9udFN0eWxlOiBSTlRleHRTdHlsZVsnZm9udFN0eWxlJ10sXG4pOiBSTlRleHRTdHlsZVsnZm9udEZhbWlseSddID0+IHtcbiAgICBjb25zdCBmb250V2VpZ2h0U3RyaW5nID0gZ2V0Rm9udFdlaWdodFN0cmluZyhmb250V2VpZ2h0LCBmb250U3R5bGUpO1xuICAgIGNvbnN0IGZvbnRTdHlsZVN0cmluZyA9IGdldEZvbnRTdHlsZVN0cmluZyhmb250U3R5bGUpO1xuXG4gICAgcmV0dXJuIGAke2ZvbnRGYW1pbHl9LSR7Zm9udFdlaWdodFN0cmluZ30ke2ZvbnRTdHlsZVN0cmluZ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRWYXJpYW50U3R5bGUgPSAodmFyaWFudFJhd1N0eWxlczogVmFyaWFudFJhd1N0eWxlcyk6IFRleHRWYXJpYW50U3R5bGUgPT4ge1xuICAgIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlU2hlZXQoe1xuICAgICAgICBmb250RmFtaWx5OiBmb250RmFtaWx5UmF3U3R5bGUsXG4gICAgICAgIHZhcmlhbnQ6IHZhcmlhbnRSYXdTdHlsZXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IGdldEZvbnRGYW1pbHkoXG4gICAgICAgICAgICAgICAgc3R5bGVzLmZvbnRGYW1pbHkuZm9udEZhbWlseSxcbiAgICAgICAgICAgICAgICBTdHJpbmcoc3R5bGVzLnZhcmlhbnQuZm9udFdlaWdodCkgYXMgUk5UZXh0U3R5bGVbJ2ZvbnRXZWlnaHQnXSxcbiAgICAgICAgICAgICAgICBzdHlsZXMudmFyaWFudC5mb250U3R5bGUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9udFNpemU6IHN0eWxlcy52YXJpYW50LmZvbnRTaXplLFxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogc3R5bGVzLnZhcmlhbnQubGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6IHN0eWxlcy52YXJpYW50LmxpbmVIZWlnaHQsXG4gICAgICAgIH0pLFxuICAgICAgICBbXG4gICAgICAgICAgICBzdHlsZXMuZm9udEZhbWlseS5mb250RmFtaWx5LFxuICAgICAgICAgICAgc3R5bGVzLnZhcmlhbnQuZm9udFNpemUsXG4gICAgICAgICAgICBzdHlsZXMudmFyaWFudC5mb250U3R5bGUsXG4gICAgICAgICAgICBzdHlsZXMudmFyaWFudC5mb250V2VpZ2h0LFxuICAgICAgICAgICAgc3R5bGVzLnZhcmlhbnQubGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgIHN0eWxlcy52YXJpYW50LmxpbmVIZWlnaHQsXG4gICAgICAgIF0sXG4gICAgKTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWdCQSxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO0NBQ3RDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQXFEO0lBQ25FLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FDeEIsVUFBcUMsRUFDckMsU0FBbUM7SUFFbkMsUUFBUSxVQUFVO1FBQ2QsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLEtBQUssRUFBRTtZQUNSLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDL0M7UUFDRCxLQUFLLEtBQUssRUFBRTtZQUNSLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssRUFBRTtZQUNSLE9BQU8sTUFBTSxDQUFDO1NBQ2pCO1FBQ0QsU0FBUztZQUNMLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDL0M7S0FDSjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFtQztJQUMzRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQ2xCLFVBQXFDLEVBQ3JDLFVBQXFDLEVBQ3JDLFNBQW1DO0lBRW5DLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXRELE9BQU8sR0FBRyxVQUFVLElBQUksZ0JBQWdCLEdBQUcsZUFBZSxFQUFFLENBQUM7QUFDakUsQ0FBQyxDQUFDO01BRVcsbUJBQW1CLEdBQUcsQ0FBQyxnQkFBa0M7SUFDbEUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3pCLFVBQVUsRUFBRSxrQkFBa0I7UUFDOUIsT0FBTyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FDVixPQUFPO1FBQ0gsVUFBVSxFQUFFLGFBQWEsQ0FDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBOEIsRUFDOUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQzNCO1FBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUTtRQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1FBQzNDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7S0FDeEMsQ0FBQyxFQUNGO1FBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1FBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUTtRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVM7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYTtRQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7S0FDNUIsQ0FDSixDQUFDO0FBQ047Ozs7In0=
@@ -0,0 +1,2 @@
1
+ import { HeadingStyleProps, TextStyle } from '..';
2
+ export declare const useHeadingStyle: ({ level, large, accent, color, centered, }: HeadingStyleProps) => TextStyle;
@@ -0,0 +1,19 @@
1
+ import { heading, root } from '@preply/ds-core';
2
+ import { useMemo } from 'react';
3
+ import { useTextSharedStyle } from './private/useTextSharedStyle.js';
4
+ import { useTextVariantStyle } from './private/useTextVariantStyle.js';
5
+
6
+ const useHeadingStyle = ({ level, large = false, accent, color, centered, }) => {
7
+ const variantRawStyles = heading.level[level][large ? 'large' : 'normal'];
8
+ const variantStyle = useTextVariantStyle({
9
+ ...variantRawStyles,
10
+ fontStyle: root.text.style.normal,
11
+ });
12
+ const textSharedStyle = useTextSharedStyle({ accent, color, centered });
13
+ return useMemo(() => {
14
+ return { ...variantStyle, ...textSharedStyle };
15
+ }, [textSharedStyle, variantStyle]);
16
+ };
17
+
18
+ export { useHeadingStyle };
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSGVhZGluZ1N0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvdHlwb2dyYXBoeS9ob29rcy91c2VIZWFkaW5nU3R5bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGVhZGluZywgcm9vdCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBIZWFkaW5nU3R5bGVQcm9wcywgVGV4dFN0eWxlIH0gZnJvbSAnLi4nO1xuXG5pbXBvcnQgeyB1c2VUZXh0U2hhcmVkU3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFNoYXJlZFN0eWxlJztcbmltcG9ydCB7IHVzZVRleHRWYXJpYW50U3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFZhcmlhbnRTdHlsZSc7XG5cbmV4cG9ydCBjb25zdCB1c2VIZWFkaW5nU3R5bGUgPSAoe1xuICAgIGxldmVsLFxuICAgIGxhcmdlID0gZmFsc2UsXG4gICAgYWNjZW50LFxuICAgIGNvbG9yLFxuICAgIGNlbnRlcmVkLFxufTogSGVhZGluZ1N0eWxlUHJvcHMpOiBUZXh0U3R5bGUgPT4ge1xuICAgIGNvbnN0IHZhcmlhbnRSYXdTdHlsZXMgPSBoZWFkaW5nLmxldmVsW2xldmVsXVtsYXJnZSA/ICdsYXJnZScgOiAnbm9ybWFsJ107XG4gICAgY29uc3QgdmFyaWFudFN0eWxlID0gdXNlVGV4dFZhcmlhbnRTdHlsZSh7XG4gICAgICAgIC4uLnZhcmlhbnRSYXdTdHlsZXMsXG4gICAgICAgIGZvbnRTdHlsZTogcm9vdC50ZXh0LnN0eWxlLm5vcm1hbCxcbiAgICB9KTtcbiAgICBjb25zdCB0ZXh0U2hhcmVkU3R5bGUgPSB1c2VUZXh0U2hhcmVkU3R5bGUoeyBhY2NlbnQsIGNvbG9yLCBjZW50ZXJlZCB9KTtcblxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4udmFyaWFudFN0eWxlLCAuLi50ZXh0U2hhcmVkU3R5bGUgfTtcbiAgICB9LCBbdGV4dFNoYXJlZFN0eWxlLCB2YXJpYW50U3R5bGVdKTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7TUFRYSxlQUFlLEdBQUcsQ0FBQyxFQUM1QixLQUFLLEVBQ0wsS0FBSyxHQUFHLEtBQUssRUFDYixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsR0FDUTtJQUNoQixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMxRSxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztRQUNyQyxHQUFHLGdCQUFnQjtRQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtLQUNwQyxDQUFDLENBQUM7SUFDSCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV4RSxPQUFPLE9BQU8sQ0FBQztRQUNYLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQ2xELEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN4Qzs7OzsifQ==
@@ -1,10 +1,2 @@
1
- import { ColorName, TextAccent, TextVariant } from '@preply/ds-core';
2
- import { TextStyle } from 'react-native';
3
- interface UseTextStyleParams {
4
- variant?: TextVariant;
5
- accent?: TextAccent;
6
- color?: ColorName;
7
- centered?: boolean;
8
- }
9
- export declare const useTextStyle: ({ variant, accent, color, centered, }?: UseTextStyleParams) => TextStyle;
10
- export {};
1
+ import { TextStyle, TextStyleProps } from '..';
2
+ export declare const useTextStyle: ({ variant, accent, color, centered, }?: TextStyleProps) => TextStyle;
@@ -1,17 +1,17 @@
1
+ import { text } from '@preply/ds-core';
1
2
  import { TEXT_VARIANT_RN_DEFAULT } from '@preply/ds-rn-core';
2
3
  import { useMemo } from 'react';
3
- import { StyleSheet } from 'react-native';
4
- import { useTextColorStyle } from './useTextColorStyle.js';
5
- import { useTextVariantStyle } from './useTextVariantStyle.js';
4
+ import { useTextSharedStyle } from './private/useTextSharedStyle.js';
5
+ import { useTextVariantStyle } from './private/useTextVariantStyle.js';
6
6
 
7
7
  const useTextStyle = ({ variant = TEXT_VARIANT_RN_DEFAULT, accent, color, centered, } = {}) => {
8
- const variantStyle = useTextVariantStyle(variant);
9
- const colorStyle = useTextColorStyle(color, accent);
8
+ const variantRawStyles = text.variant[variant];
9
+ const variantStyle = useTextVariantStyle(variantRawStyles);
10
+ const textSharedStyle = useTextSharedStyle({ accent, color, centered });
10
11
  return useMemo(() => {
11
- const centeredStyle = { textAlign: centered ? 'center' : 'left' };
12
- return StyleSheet.flatten([variantStyle, colorStyle, centeredStyle]);
13
- }, [centered, colorStyle, variantStyle]);
12
+ return { ...variantStyle, ...textSharedStyle };
13
+ }, [textSharedStyle, variantStyle]);
14
14
  };
15
15
 
16
16
  export { useTextStyle };
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvdHlwb2dyYXBoeS9ob29rcy91c2VUZXh0U3R5bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JOYW1lLCBUZXh0QWNjZW50LCBUZXh0VmFyaWFudCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCB9IGZyb20gJ0BwcmVwbHkvZHMtcm4tY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU3R5bGVTaGVldCwgVGV4dFN0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgdXNlVGV4dENvbG9yU3R5bGUgfSBmcm9tICcuL3VzZVRleHRDb2xvclN0eWxlJztcbmltcG9ydCB7IHVzZVRleHRWYXJpYW50U3R5bGUgfSBmcm9tICcuL3VzZVRleHRWYXJpYW50U3R5bGUnO1xuXG5pbnRlcmZhY2UgVXNlVGV4dFN0eWxlUGFyYW1zIHtcbiAgICB2YXJpYW50PzogVGV4dFZhcmlhbnQ7XG4gICAgYWNjZW50PzogVGV4dEFjY2VudDtcbiAgICBjb2xvcj86IENvbG9yTmFtZTtcbiAgICBjZW50ZXJlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCB1c2VUZXh0U3R5bGUgPSAoe1xuICAgIHZhcmlhbnQgPSBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCxcbiAgICBhY2NlbnQsXG4gICAgY29sb3IsXG4gICAgY2VudGVyZWQsXG59OiBVc2VUZXh0U3R5bGVQYXJhbXMgPSB7fSk6IFRleHRTdHlsZSA9PiB7XG4gICAgY29uc3QgdmFyaWFudFN0eWxlID0gdXNlVGV4dFZhcmlhbnRTdHlsZSh2YXJpYW50KTtcbiAgICBjb25zdCBjb2xvclN0eWxlID0gdXNlVGV4dENvbG9yU3R5bGUoY29sb3IsIGFjY2VudCk7XG5cbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNlbnRlcmVkU3R5bGU6IFRleHRTdHlsZSA9IHsgdGV4dEFsaWduOiBjZW50ZXJlZCA/ICdjZW50ZXInIDogJ2xlZnQnIH07XG4gICAgICAgIHJldHVybiBTdHlsZVNoZWV0LmZsYXR0ZW4oW3ZhcmlhbnRTdHlsZSwgY29sb3JTdHlsZSwgY2VudGVyZWRTdHlsZV0pO1xuICAgIH0sIFtjZW50ZXJlZCwgY29sb3JTdHlsZSwgdmFyaWFudFN0eWxlXSk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztNQWVhLFlBQVksR0FBRyxDQUFDLEVBQ3pCLE9BQU8sR0FBRyx1QkFBdUIsRUFDakMsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLE1BQ1ksRUFBRTtJQUN0QixNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFcEQsT0FBTyxPQUFPLENBQUM7UUFDWCxNQUFNLGFBQWEsR0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzdFLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztLQUN4RSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQzdDOzs7OyJ9
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvdHlwb2dyYXBoeS9ob29rcy91c2VUZXh0U3R5bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGV4dCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCB9IGZyb20gJ0BwcmVwbHkvZHMtcm4tY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBUZXh0U3R5bGUsIFRleHRTdHlsZVByb3BzIH0gZnJvbSAnLi4nO1xuXG5pbXBvcnQgeyB1c2VUZXh0U2hhcmVkU3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFNoYXJlZFN0eWxlJztcbmltcG9ydCB7IHVzZVRleHRWYXJpYW50U3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFZhcmlhbnRTdHlsZSc7XG5cbmV4cG9ydCBjb25zdCB1c2VUZXh0U3R5bGUgPSAoe1xuICAgIHZhcmlhbnQgPSBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCxcbiAgICBhY2NlbnQsXG4gICAgY29sb3IsXG4gICAgY2VudGVyZWQsXG59OiBUZXh0U3R5bGVQcm9wcyA9IHt9KTogVGV4dFN0eWxlID0+IHtcbiAgICBjb25zdCB2YXJpYW50UmF3U3R5bGVzID0gdGV4dC52YXJpYW50W3ZhcmlhbnRdO1xuICAgIGNvbnN0IHZhcmlhbnRTdHlsZSA9IHVzZVRleHRWYXJpYW50U3R5bGUodmFyaWFudFJhd1N0eWxlcyk7XG4gICAgY29uc3QgdGV4dFNoYXJlZFN0eWxlID0gdXNlVGV4dFNoYXJlZFN0eWxlKHsgYWNjZW50LCBjb2xvciwgY2VudGVyZWQgfSk7XG5cbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLnZhcmlhbnRTdHlsZSwgLi4udGV4dFNoYXJlZFN0eWxlIH07XG4gICAgfSwgW3RleHRTaGFyZWRTdHlsZSwgdmFyaWFudFN0eWxlXSk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztNQVNhLFlBQVksR0FBRyxDQUFDLEVBQ3pCLE9BQU8sR0FBRyx1QkFBdUIsRUFDakMsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLE1BQ1EsRUFBRTtJQUNsQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV4RSxPQUFPLE9BQU8sQ0FBQztRQUNYLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQ2xELEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN4Qzs7OzsifQ==
@@ -1 +1,3 @@
1
+ export { useHeadingStyle } from './hooks/useHeadingStyle';
1
2
  export { useTextStyle } from './hooks/useTextStyle';
3
+ export type { HeadingStyleProps, TextCommonProps, TextStyleProps, TextVariantStyle, TextStyle, } from './types';
@@ -1,2 +1,3 @@
1
+ export { useHeadingStyle } from './hooks/useHeadingStyle.js';
1
2
  export { useTextStyle } from './hooks/useTextStyle.js';
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
@@ -0,0 +1,26 @@
1
+ import { ColorName, HeadingLevel, TextAccent, TextVariant } from '@preply/ds-core';
2
+ import { TextStyle as RNTextStyle, TextProps } from 'react-native';
3
+ interface TextStyleCommonProps {
4
+ accent?: TextAccent;
5
+ color?: ColorName;
6
+ centered?: boolean;
7
+ }
8
+ export interface TextStyleProps extends TextStyleCommonProps {
9
+ variant?: TextVariant;
10
+ }
11
+ export interface HeadingStyleProps extends TextStyleCommonProps {
12
+ level: HeadingLevel;
13
+ large?: boolean;
14
+ }
15
+ export interface TextVariantStyle {
16
+ fontFamily: RNTextStyle['fontFamily'];
17
+ fontSize: RNTextStyle['fontSize'];
18
+ letterSpacing: RNTextStyle['letterSpacing'];
19
+ lineHeight: RNTextStyle['lineHeight'];
20
+ }
21
+ export interface TextStyle extends TextVariantStyle {
22
+ color: RNTextStyle['color'];
23
+ textAlign: RNTextStyle['textAlign'];
24
+ }
25
+ export declare type TextCommonProps = Pick<TextProps, 'adjustsFontSizeToFit' | 'lineBreakMode' | 'numberOfLines' | 'testID'>;
26
+ export {};
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
- export declare const TextVariantProvider: React.Provider<"xs" | "s" | "s-italic" | "s-medium" | "s-medium-italic" | "s-bold" | "s-bold-italic" | "m" | "m-italic" | "m-medium" | "m-medium-italic" | "m-bold" | "m-bold-italic" | "l" | "l-italic" | "l-medium" | "l-medium-italic" | "xl" | "xl-italic" | "xl-medium" | "xl-medium-italic" | null>;
2
+ import { TextStyle } from '../props/typography';
3
+ export declare const TextVariantProvider: React.Provider<TextStyle | null>;
@@ -4,4 +4,4 @@ const TextVariantContext = React.createContext(null);
4
4
  const TextVariantProvider = TextVariantContext.Provider;
5
5
 
6
6
  export { TextVariantProvider };
7
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dFZhcmlhbnRQcm92aWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9UZXh0VmFyaWFudFByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0VmFyaWFudCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUZXh0VmFyaWFudENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PFRleHRWYXJpYW50IHwgbnVsbD4obnVsbCk7XG5cbmV4cG9ydCBjb25zdCBUZXh0VmFyaWFudFByb3ZpZGVyID0gVGV4dFZhcmlhbnRDb250ZXh0LlByb3ZpZGVyO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFxQixJQUFJLENBQUMsQ0FBQztNQUU1RCxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQzs7OzsifQ==
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dFZhcmlhbnRQcm92aWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9UZXh0VmFyaWFudFByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBUZXh0U3R5bGUgfSBmcm9tICcuLi9wcm9wcy90eXBvZ3JhcGh5JztcblxuY29uc3QgVGV4dFZhcmlhbnRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxUZXh0U3R5bGUgfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IFRleHRWYXJpYW50UHJvdmlkZXIgPSBUZXh0VmFyaWFudENvbnRleHQuUHJvdmlkZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQW1CLElBQUksQ0FBQyxDQUFDO01BRTFELG1CQUFtQixHQUFHLGtCQUFrQixDQUFDOzs7OyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@preply/ds-rn-lib",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -18,15 +18,15 @@
18
18
  "dev": "run build:rollup -w"
19
19
  },
20
20
  "dependencies": {
21
- "@preply/ds-core": "0.44.0",
22
- "@preply/ds-rn-core": "0.44.0",
23
- "@preply/ds-rn-root": "0.44.0"
21
+ "@preply/ds-core": "0.45.0",
22
+ "@preply/ds-rn-core": "0.45.0",
23
+ "@preply/ds-rn-root": "0.45.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@preply/ds-core": "0.44.0",
26
+ "@preply/ds-core": "0.45.0",
27
27
  "@preply/ds-core-types": "0.43.2",
28
- "@preply/ds-rn-core": "0.44.0",
29
- "@preply/ds-rn-root": "0.44.0",
28
+ "@preply/ds-rn-core": "0.45.0",
29
+ "@preply/ds-rn-root": "0.45.0",
30
30
  "react": "^16.8.3",
31
31
  "react-native": "^0.63.4"
32
32
  },
@@ -38,5 +38,5 @@
38
38
  "react-native": "^0.63.4",
39
39
  "react-test-renderer": "16.8.3"
40
40
  },
41
- "gitHead": "85a7ecf5f64730399b1645e7dbf3459536534534"
41
+ "gitHead": "03d6ddbd1905f16d4ab455162cd178410904a8bd"
42
42
  }
@@ -1,26 +0,0 @@
1
- import { content, root, scheme } from '@preply/ds-core';
2
- import { useToken } from '@preply/ds-rn-core';
3
-
4
- const useTextColorStyle = (color, accent) => {
5
- var _a;
6
- let token;
7
- if (accent) {
8
- token = content[accent].color;
9
- }
10
- else if (color) {
11
- const [name, step] = color.split('-');
12
- if (!step) {
13
- token = root.palette[name];
14
- }
15
- else {
16
- token = (_a = root.palette[name]) === null || _a === void 0 ? void 0 : _a[step];
17
- }
18
- }
19
- if (!token) {
20
- token = scheme.color;
21
- }
22
- return { color: String(useToken(token)) };
23
- };
24
-
25
- export { useTextColorStyle };
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dENvbG9yU3R5bGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9wcy90eXBvZ3JhcGh5L2hvb2tzL3VzZVRleHRDb2xvclN0eWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yTmFtZSwgVGV4dEFjY2VudCwgY29udGVudCwgcm9vdCwgc2NoZW1lIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlLXR5cGVzJztcbmltcG9ydCB7IHVzZVRva2VuIH0gZnJvbSAnQHByZXBseS9kcy1ybi1jb3JlJztcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRDb2xvclN0eWxlID0gKGNvbG9yPzogQ29sb3JOYW1lLCBhY2NlbnQ/OiBUZXh0QWNjZW50KTogeyBjb2xvcjogc3RyaW5nIH0gPT4ge1xuICAgIGxldCB0b2tlbjogVG9rZW4gfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoYWNjZW50KSB7XG4gICAgICAgIHRva2VuID0gY29udGVudFthY2NlbnRdLmNvbG9yO1xuICAgIH0gZWxzZSBpZiAoY29sb3IpIHtcbiAgICAgICAgY29uc3QgW25hbWUsIHN0ZXBdID0gY29sb3Iuc3BsaXQoJy0nKTtcbiAgICAgICAgaWYgKCFzdGVwKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJvb3QucGFsZXR0ZVtuYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRva2VuID0gcm9vdC5wYWxldHRlW25hbWVdPy5bc3RlcF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgIHRva2VuID0gc2NoZW1lLmNvbG9yO1xuICAgIH1cblxuICAgIHJldHVybiB7IGNvbG9yOiBTdHJpbmcodXNlVG9rZW4odG9rZW4pKSB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFJYSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsTUFBbUI7O0lBQ3BFLElBQUksS0FBd0IsQ0FBQztJQUU3QixJQUFJLE1BQU0sRUFBRTtRQUNSLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDO0tBQ2pDO1NBQU0sSUFBSSxLQUFLLEVBQUU7UUFDZCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDSCxLQUFLLFNBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQUcsSUFBSSxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDUixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUN4QjtJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDOUM7Ozs7In0=
@@ -1,10 +0,0 @@
1
- import { TextVariant } from '@preply/ds-core';
2
- import { TextStyle } from 'react-native';
3
- interface TextVariantStyle {
4
- fontFamily: TextStyle['fontFamily'];
5
- fontSize: TextStyle['fontSize'];
6
- letterSpacing: TextStyle['letterSpacing'];
7
- lineHeight: TextStyle['lineHeight'];
8
- }
9
- export declare const useTextVariantStyle: (variant: TextVariant) => TextVariantStyle;
10
- export {};
@@ -1,59 +0,0 @@
1
- import { root, text } from '@preply/ds-core';
2
- import { useStyleSheet } from '@preply/ds-rn-core';
3
- import { useMemo } from 'react';
4
-
5
- const fontFamilyRawStyle = {
6
- fontFamily: root.text.base.typeface,
7
- };
8
- const isItalic = (fontStyle) => {
9
- return fontStyle === 'italic' || fontStyle === 'oblique 10deg';
10
- };
11
- const getFontWeightString = (fontWeight, fontStyle) => {
12
- switch (fontWeight) {
13
- case 'normal':
14
- case '400': {
15
- return isItalic(fontStyle) ? '' : 'Regular';
16
- }
17
- case '500': {
18
- return 'Medium';
19
- }
20
- case 'bold':
21
- case '700': {
22
- return 'Bold';
23
- }
24
- default: {
25
- return isItalic(fontStyle) ? '' : 'Regular';
26
- }
27
- }
28
- };
29
- const getFontStyleString = (fontStyle) => {
30
- return isItalic(fontStyle) ? 'Italic' : '';
31
- };
32
- const getFontFamily = (fontFamily, fontWeight, fontStyle) => {
33
- const fontWeightString = getFontWeightString(fontWeight, fontStyle);
34
- const fontStyleString = getFontStyleString(fontStyle);
35
- return `${fontFamily}-${fontWeightString}${fontStyleString}`;
36
- };
37
- const useTextVariantStyle = (variant) => {
38
- const textVariant = text.variant[variant];
39
- const styles = useStyleSheet({
40
- fontFamily: fontFamilyRawStyle,
41
- variant: textVariant,
42
- });
43
- return useMemo(() => ({
44
- fontFamily: getFontFamily(styles.fontFamily.fontFamily, String(styles.variant.fontWeight), styles.variant.fontStyle),
45
- fontSize: styles.variant.fontSize,
46
- letterSpacing: styles.variant.letterSpacing,
47
- lineHeight: styles.variant.lineHeight,
48
- }), [
49
- styles.fontFamily.fontFamily,
50
- styles.variant.fontSize,
51
- styles.variant.fontStyle,
52
- styles.variant.fontWeight,
53
- styles.variant.letterSpacing,
54
- styles.variant.lineHeight,
55
- ]);
56
- };
57
-
58
- export { useTextVariantStyle };
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFZhcmlhbnRTdHlsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3BzL3R5cG9ncmFwaHkvaG9va3MvdXNlVGV4dFZhcmlhbnRTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0VmFyaWFudCwgcm9vdCwgdGV4dCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyB1c2VTdHlsZVNoZWV0IH0gZnJvbSAnQHByZXBseS9kcy1ybi1jb3JlJztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUZXh0U3R5bGUgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuXG5pbnRlcmZhY2UgVGV4dFZhcmlhbnRTdHlsZSB7XG4gICAgZm9udEZhbWlseTogVGV4dFN0eWxlWydmb250RmFtaWx5J107XG4gICAgZm9udFNpemU6IFRleHRTdHlsZVsnZm9udFNpemUnXTtcbiAgICBsZXR0ZXJTcGFjaW5nOiBUZXh0U3R5bGVbJ2xldHRlclNwYWNpbmcnXTtcbiAgICBsaW5lSGVpZ2h0OiBUZXh0U3R5bGVbJ2xpbmVIZWlnaHQnXTtcbn1cblxuY29uc3QgZm9udEZhbWlseVJhd1N0eWxlID0ge1xuICAgIGZvbnRGYW1pbHk6IHJvb3QudGV4dC5iYXNlLnR5cGVmYWNlLFxufTtcblxuY29uc3QgaXNJdGFsaWMgPSAoZm9udFN0eWxlOiBUZXh0U3R5bGVbJ2ZvbnRTdHlsZSddIHwgJ29ibGlxdWUgMTBkZWcnKSA9PiB7XG4gICAgcmV0dXJuIGZvbnRTdHlsZSA9PT0gJ2l0YWxpYycgfHwgZm9udFN0eWxlID09PSAnb2JsaXF1ZSAxMGRlZyc7XG59O1xuXG5jb25zdCBnZXRGb250V2VpZ2h0U3RyaW5nID0gKFxuICAgIGZvbnRXZWlnaHQ6IFRleHRTdHlsZVsnZm9udFdlaWdodCddLFxuICAgIGZvbnRTdHlsZTogVGV4dFN0eWxlWydmb250U3R5bGUnXSxcbik6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoIChmb250V2VpZ2h0KSB7XG4gICAgICAgIGNhc2UgJ25vcm1hbCc6XG4gICAgICAgIGNhc2UgJzQwMCc6IHtcbiAgICAgICAgICAgIHJldHVybiBpc0l0YWxpYyhmb250U3R5bGUpID8gJycgOiAnUmVndWxhcic7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnNTAwJzoge1xuICAgICAgICAgICAgcmV0dXJuICdNZWRpdW0nO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2JvbGQnOlxuICAgICAgICBjYXNlICc3MDAnOiB7XG4gICAgICAgICAgICByZXR1cm4gJ0JvbGQnO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBpc0l0YWxpYyhmb250U3R5bGUpID8gJycgOiAnUmVndWxhcic7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBnZXRGb250U3R5bGVTdHJpbmcgPSAoZm9udFN0eWxlOiBUZXh0U3R5bGVbJ2ZvbnRTdHlsZSddKTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gaXNJdGFsaWMoZm9udFN0eWxlKSA/ICdJdGFsaWMnIDogJyc7XG59O1xuXG5jb25zdCBnZXRGb250RmFtaWx5ID0gKFxuICAgIGZvbnRGYW1pbHk6IFRleHRTdHlsZVsnZm9udEZhbWlseSddLFxuICAgIGZvbnRXZWlnaHQ6IFRleHRTdHlsZVsnZm9udFdlaWdodCddLFxuICAgIGZvbnRTdHlsZTogVGV4dFN0eWxlWydmb250U3R5bGUnXSxcbik6IFRleHRTdHlsZVsnZm9udEZhbWlseSddID0+IHtcbiAgICBjb25zdCBmb250V2VpZ2h0U3RyaW5nID0gZ2V0Rm9udFdlaWdodFN0cmluZyhmb250V2VpZ2h0LCBmb250U3R5bGUpO1xuICAgIGNvbnN0IGZvbnRTdHlsZVN0cmluZyA9IGdldEZvbnRTdHlsZVN0cmluZyhmb250U3R5bGUpO1xuXG4gICAgcmV0dXJuIGAke2ZvbnRGYW1pbHl9LSR7Zm9udFdlaWdodFN0cmluZ30ke2ZvbnRTdHlsZVN0cmluZ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRWYXJpYW50U3R5bGUgPSAodmFyaWFudDogVGV4dFZhcmlhbnQpOiBUZXh0VmFyaWFudFN0eWxlID0+IHtcbiAgICBjb25zdCB0ZXh0VmFyaWFudCA9IHRleHQudmFyaWFudFt2YXJpYW50XTtcblxuICAgIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlU2hlZXQoe1xuICAgICAgICBmb250RmFtaWx5OiBmb250RmFtaWx5UmF3U3R5bGUsXG4gICAgICAgIHZhcmlhbnQ6IHRleHRWYXJpYW50LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZU1lbW8oXG4gICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICBmb250RmFtaWx5OiBnZXRGb250RmFtaWx5KFxuICAgICAgICAgICAgICAgIHN0eWxlcy5mb250RmFtaWx5LmZvbnRGYW1pbHksXG4gICAgICAgICAgICAgICAgU3RyaW5nKHN0eWxlcy52YXJpYW50LmZvbnRXZWlnaHQpIGFzIFRleHRTdHlsZVsnZm9udFdlaWdodCddLFxuICAgICAgICAgICAgICAgIHN0eWxlcy52YXJpYW50LmZvbnRTdHlsZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb250U2l6ZTogc3R5bGVzLnZhcmlhbnQuZm9udFNpemUsXG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiBzdHlsZXMudmFyaWFudC5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgbGluZUhlaWdodDogc3R5bGVzLnZhcmlhbnQubGluZUhlaWdodCxcbiAgICAgICAgfSksXG4gICAgICAgIFtcbiAgICAgICAgICAgIHN0eWxlcy5mb250RmFtaWx5LmZvbnRGYW1pbHksXG4gICAgICAgICAgICBzdHlsZXMudmFyaWFudC5mb250U2l6ZSxcbiAgICAgICAgICAgIHN0eWxlcy52YXJpYW50LmZvbnRTdHlsZSxcbiAgICAgICAgICAgIHN0eWxlcy52YXJpYW50LmZvbnRXZWlnaHQsXG4gICAgICAgICAgICBzdHlsZXMudmFyaWFudC5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgc3R5bGVzLnZhcmlhbnQubGluZUhlaWdodCxcbiAgICAgICAgXSxcbiAgICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBWUEsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtDQUN0QyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxTQUFtRDtJQUNqRSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLGVBQWUsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQ3hCLFVBQW1DLEVBQ25DLFNBQWlDO0lBRWpDLFFBQVEsVUFBVTtRQUNkLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxLQUFLLEVBQUU7WUFDUixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1NBQy9DO1FBQ0QsS0FBSyxLQUFLLEVBQUU7WUFDUixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUNELEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxLQUFLLEVBQUU7WUFDUixPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUNELFNBQVM7WUFDTCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1NBQy9DO0tBQ0o7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBaUM7SUFDekQsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNsQixVQUFtQyxFQUNuQyxVQUFtQyxFQUNuQyxTQUFpQztJQUVqQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwRSxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV0RCxPQUFPLEdBQUcsVUFBVSxJQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRSxDQUFDO0FBQ2pFLENBQUMsQ0FBQztNQUVXLG1CQUFtQixHQUFHLENBQUMsT0FBb0I7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUxQyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUM7UUFDekIsVUFBVSxFQUFFLGtCQUFrQjtRQUM5QixPQUFPLEVBQUUsV0FBVztLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FDVixPQUFPO1FBQ0gsVUFBVSxFQUFFLGFBQWEsQ0FDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBNEIsRUFDNUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQzNCO1FBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUTtRQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1FBQzNDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7S0FDeEMsQ0FBQyxFQUNGO1FBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1FBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUTtRQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVM7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYTtRQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7S0FDNUIsQ0FDSixDQUFDO0FBQ047Ozs7In0=