@preply/ds-rn-lib 0.43.2 → 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 (41) 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/LayoutFlex/LayoutFlex.d.ts +3 -11
  4. package/dist/components/LayoutFlex/LayoutFlex.js +9 -15
  5. package/dist/components/LayoutFlexItem/LayoutFlexItem.d.ts +7 -0
  6. package/dist/components/LayoutFlexItem/LayoutFlexItem.js +16 -0
  7. package/dist/components/Text/Text.d.ts +4 -1
  8. package/dist/components/Text/Text.js +10 -5
  9. package/dist/components/index.d.ts +3 -1
  10. package/dist/components/index.js +4 -2
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +6 -2
  13. package/dist/props/index.d.ts +1 -0
  14. package/dist/props/index.js +3 -0
  15. package/dist/props/layout/hooks/useLayoutFlexItemStyle.d.ts +7 -0
  16. package/dist/props/layout/hooks/useLayoutFlexItemStyle.js +14 -0
  17. package/dist/props/layout/{useLayoutFlexStyle.d.ts → hooks/useLayoutFlexStyle.d.ts} +0 -0
  18. package/dist/props/layout/hooks/useLayoutFlexStyle.js +20 -0
  19. package/dist/props/layout/{usePaddingStyle.d.ts → hooks/usePaddingStyle.d.ts} +0 -0
  20. package/dist/props/layout/hooks/usePaddingStyle.js +24 -0
  21. package/dist/props/layout/private/constants.d.ts +5 -0
  22. package/dist/props/layout/private/constants.js +24 -0
  23. package/dist/props/typography/hooks/private/useTextColorStyle.d.ts +3 -0
  24. package/dist/props/typography/hooks/private/useTextColorStyle.js +26 -0
  25. package/dist/props/typography/hooks/private/useTextSharedStyle.d.ts +13 -0
  26. package/dist/props/typography/hooks/private/useTextSharedStyle.js +15 -0
  27. package/dist/props/typography/hooks/private/useTextVariantStyle.d.ts +11 -0
  28. package/dist/props/typography/hooks/private/useTextVariantStyle.js +58 -0
  29. package/dist/props/typography/hooks/useHeadingStyle.d.ts +2 -0
  30. package/dist/props/typography/hooks/useHeadingStyle.js +19 -0
  31. package/dist/props/typography/hooks/useTextStyle.d.ts +2 -0
  32. package/dist/props/typography/hooks/useTextStyle.js +17 -0
  33. package/dist/props/typography/index.d.ts +3 -0
  34. package/dist/props/typography/index.js +3 -0
  35. package/dist/props/typography/types.d.ts +26 -0
  36. package/dist/props/typography/types.js +2 -0
  37. package/dist/providers/TextVariantProvider.d.ts +3 -0
  38. package/dist/providers/TextVariantProvider.js +7 -0
  39. package/package.json +10 -8
  40. package/dist/props/layout/useLayoutFlexStyle.js +0 -34
  41. package/dist/props/layout/usePaddingStyle.js +0 -24
@@ -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,17 +1,9 @@
1
1
  import { LayoutGap } from '@preply/ds-core';
2
- import React from 'react';
3
- import { StyleProp, ViewStyle } from 'react-native';
4
- import { LayoutFlexStyle } from '../../props/layout/useLayoutFlexStyle';
5
- declare type ViewStyleProp = StyleProp<ViewStyle>;
2
+ import { FC } from 'react';
3
+ import { LayoutFlexStyle } from '../../props/layout/hooks/useLayoutFlexStyle';
6
4
  interface LayoutFlexProps extends LayoutFlexStyle {
7
5
  gap?: LayoutGap;
8
6
  hide?: boolean;
9
- component?: React.ReactElement<{
10
- style?: ViewStyleProp;
11
- children?: React.ReactNode;
12
- }> | React.ComponentType<{
13
- style?: ViewStyleProp;
14
- }>;
15
7
  }
16
- export declare const LayoutFlex: React.FC<LayoutFlexProps>;
8
+ export declare const LayoutFlex: FC<LayoutFlexProps>;
17
9
  export {};
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import React, { memo, Children } from 'react';
2
2
  import { View } from 'react-native';
3
- import { useLayoutFlexStyle } from '../../props/layout/useLayoutFlexStyle.js';
3
+ import { useLayoutFlexStyle } from '../../props/layout/hooks/useLayoutFlexStyle.js';
4
4
  import { ChildrenWithGap } from './private/ChildrenWithGap.js';
5
5
 
6
- const LayoutFlex = React.memo(({ gap, padding, nowrap, direction, justifyContent, alignItems, hide, children, component, }) => {
6
+ const LayoutFlexBase = ({ gap, padding, nowrap, direction, justifyContent, alignItems, hide, children, }) => {
7
7
  const style = useLayoutFlexStyle({
8
8
  padding,
9
9
  direction,
@@ -14,17 +14,11 @@ const LayoutFlex = React.memo(({ gap, padding, nowrap, direction, justifyContent
14
14
  if (hide) {
15
15
  return null;
16
16
  }
17
- const content = !gap || React.Children.count(children) === 1 ? (children) : (React.createElement(ChildrenWithGap, { gap: gap, direction: direction }, children));
18
- if (component && React.isValidElement(component)) {
19
- return React.cloneElement(component, {
20
- ...component.props,
21
- style: [component.props.style, style],
22
- children: content,
23
- });
24
- }
25
- const Component = component !== null && component !== void 0 ? component : View;
26
- return React.createElement(Component, { style: style }, content);
27
- });
17
+ const content = !gap || Children.count(children) === 1 ? (children) : (React.createElement(ChildrenWithGap, { gap: gap, direction: direction }, children));
18
+ return React.createElement(View, { style: style }, content);
19
+ };
20
+ const LayoutFlex = memo(LayoutFlexBase);
21
+ LayoutFlex.displayName = 'LayoutFlex';
28
22
 
29
23
  export { LayoutFlex };
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0RmxleC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF5b3V0RmxleC9MYXlvdXRGbGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXRHYXAgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFN0eWxlUHJvcCwgVmlldywgVmlld1N0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgTGF5b3V0RmxleFN0eWxlLCB1c2VMYXlvdXRGbGV4U3R5bGUgfSBmcm9tICcuLi8uLi9wcm9wcy9sYXlvdXQvdXNlTGF5b3V0RmxleFN0eWxlJztcblxuaW1wb3J0IHsgQ2hpbGRyZW5XaXRoR2FwIH0gZnJvbSAnLi9wcml2YXRlL0NoaWxkcmVuV2l0aEdhcCc7XG5cbnR5cGUgVmlld1N0eWxlUHJvcCA9IFN0eWxlUHJvcDxWaWV3U3R5bGU+O1xuXG5pbnRlcmZhY2UgTGF5b3V0RmxleFByb3BzIGV4dGVuZHMgTGF5b3V0RmxleFN0eWxlIHtcbiAgICBnYXA/OiBMYXlvdXRHYXA7XG4gICAgaGlkZT86IGJvb2xlYW47XG4gICAgY29tcG9uZW50PzpcbiAgICAgICAgfCBSZWFjdC5SZWFjdEVsZW1lbnQ8eyBzdHlsZT86IFZpZXdTdHlsZVByb3A7IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH0+XG4gICAgICAgIHwgUmVhY3QuQ29tcG9uZW50VHlwZTx7IHN0eWxlPzogVmlld1N0eWxlUHJvcCB9Pjtcbn1cblxuZXhwb3J0IGNvbnN0IExheW91dEZsZXg6IFJlYWN0LkZDPExheW91dEZsZXhQcm9wcz4gPSBSZWFjdC5tZW1vKFxuICAgICh7XG4gICAgICAgIGdhcCxcbiAgICAgICAgcGFkZGluZyxcbiAgICAgICAgbm93cmFwLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGp1c3RpZnlDb250ZW50LFxuICAgICAgICBhbGlnbkl0ZW1zLFxuICAgICAgICBoaWRlLFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50LFxuICAgIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB1c2VMYXlvdXRGbGV4U3R5bGUoe1xuICAgICAgICAgICAgcGFkZGluZyxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIGFsaWduSXRlbXMsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudCxcbiAgICAgICAgICAgIG5vd3JhcCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGhpZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGVudCA9XG4gICAgICAgICAgICAhZ2FwIHx8IFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSA/IChcbiAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8Q2hpbGRyZW5XaXRoR2FwIGdhcD17Z2FwfSBkaXJlY3Rpb249e2RpcmVjdGlvbn0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L0NoaWxkcmVuV2l0aEdhcD5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjb21wb25lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIC4uLmNvbXBvbmVudC5wcm9wcyxcbiAgICAgICAgICAgICAgICBzdHlsZTogW2NvbXBvbmVudC5wcm9wcy5zdHlsZSwgc3R5bGVdLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBjb250ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBDb21wb25lbnQgPSBjb21wb25lbnQgPz8gVmlldztcbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnQgc3R5bGU9e3N0eWxlfT57Y29udGVudH08L0NvbXBvbmVudD47XG4gICAgfSxcbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7TUFrQmEsVUFBVSxHQUE4QixLQUFLLENBQUMsSUFBSSxDQUMzRCxDQUFDLEVBQ0csR0FBRyxFQUNILE9BQU8sRUFDUCxNQUFNLEVBQ04sU0FBUyxFQUNULGNBQWMsRUFDZCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLEdBQ1o7SUFDRyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztRQUM3QixPQUFPO1FBQ1AsU0FBUztRQUNULFVBQVU7UUFDVixjQUFjO1FBQ2QsTUFBTTtLQUNULENBQUMsQ0FBQztJQUVILElBQUksSUFBSSxFQUFFO1FBQ04sT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sT0FBTyxHQUNULENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFDeEMsUUFBUSxLQUVSLG9CQUFDLGVBQWUsSUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQzFDLFFBQVEsQ0FDSyxDQUNyQixDQUFDO0lBRU4sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUM5QyxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO1lBQ2pDLEdBQUcsU0FBUyxDQUFDLEtBQUs7WUFDbEIsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxPQUFPO1NBQ3BCLENBQUMsQ0FBQztLQUNOO0lBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksSUFBSSxDQUFDO0lBQ3BDLE9BQU8sb0JBQUMsU0FBUyxJQUFDLEtBQUssRUFBRSxLQUFLLElBQUcsT0FBTyxDQUFhLENBQUM7QUFDMUQsQ0FBQzs7OzsifQ==
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0RmxleC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF5b3V0RmxleC9MYXlvdXRGbGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXRHYXAgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IENoaWxkcmVuLCBGQywgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuXG5pbXBvcnQgeyBMYXlvdXRGbGV4U3R5bGUsIHVzZUxheW91dEZsZXhTdHlsZSB9IGZyb20gJy4uLy4uL3Byb3BzL2xheW91dC9ob29rcy91c2VMYXlvdXRGbGV4U3R5bGUnO1xuXG5pbXBvcnQgeyBDaGlsZHJlbldpdGhHYXAgfSBmcm9tICcuL3ByaXZhdGUvQ2hpbGRyZW5XaXRoR2FwJztcblxuaW50ZXJmYWNlIExheW91dEZsZXhQcm9wcyBleHRlbmRzIExheW91dEZsZXhTdHlsZSB7XG4gICAgZ2FwPzogTGF5b3V0R2FwO1xuICAgIGhpZGU/OiBib29sZWFuO1xufVxuXG5jb25zdCBMYXlvdXRGbGV4QmFzZTogRkM8TGF5b3V0RmxleFByb3BzPiA9ICh7XG4gICAgZ2FwLFxuICAgIHBhZGRpbmcsXG4gICAgbm93cmFwLFxuICAgIGRpcmVjdGlvbixcbiAgICBqdXN0aWZ5Q29udGVudCxcbiAgICBhbGlnbkl0ZW1zLFxuICAgIGhpZGUsXG4gICAgY2hpbGRyZW4sXG59KSA9PiB7XG4gICAgY29uc3Qgc3R5bGUgPSB1c2VMYXlvdXRGbGV4U3R5bGUoe1xuICAgICAgICBwYWRkaW5nLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGFsaWduSXRlbXMsXG4gICAgICAgIGp1c3RpZnlDb250ZW50LFxuICAgICAgICBub3dyYXAsXG4gICAgfSk7XG5cbiAgICBpZiAoaGlkZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50ID1cbiAgICAgICAgIWdhcCB8fCBDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDEgPyAoXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICApIDogKFxuICAgICAgICAgICAgPENoaWxkcmVuV2l0aEdhcCBnYXA9e2dhcH0gZGlyZWN0aW9uPXtkaXJlY3Rpb259PlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvQ2hpbGRyZW5XaXRoR2FwPlxuICAgICAgICApO1xuXG4gICAgcmV0dXJuIDxWaWV3IHN0eWxlPXtzdHlsZX0+e2NvbnRlbnR9PC9WaWV3Pjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXRGbGV4OiBGQzxMYXlvdXRGbGV4UHJvcHM+ID0gbWVtbyhMYXlvdXRGbGV4QmFzZSk7XG5cbkxheW91dEZsZXguZGlzcGxheU5hbWUgPSAnTGF5b3V0RmxleCc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFhQSxNQUFNLGNBQWMsR0FBd0IsQ0FBQyxFQUN6QyxHQUFHLEVBQ0gsT0FBTyxFQUNQLE1BQU0sRUFDTixTQUFTLEVBQ1QsY0FBYyxFQUNkLFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxHQUNYO0lBQ0csTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDN0IsT0FBTztRQUNQLFNBQVM7UUFDVCxVQUFVO1FBQ1YsY0FBYztRQUNkLE1BQU07S0FDVCxDQUFDLENBQUM7SUFFSCxJQUFJLElBQUksRUFBRTtRQUNOLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLE9BQU8sR0FDVCxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFDbEMsUUFBUSxLQUVSLG9CQUFDLGVBQWUsSUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQzFDLFFBQVEsQ0FDSyxDQUNyQixDQUFDO0lBRU4sT0FBTyxvQkFBQyxJQUFJLElBQUMsS0FBSyxFQUFFLEtBQUssSUFBRyxPQUFPLENBQVEsQ0FBQztBQUNoRCxDQUFDLENBQUM7TUFFVyxVQUFVLEdBQXdCLElBQUksQ0FBQyxjQUFjLEVBQUU7QUFFcEUsVUFBVSxDQUFDLFdBQVcsR0FBRyxZQUFZOzs7OyJ9
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { LayoutFlexItemStyle } from '../../props/layout/hooks/useLayoutFlexItemStyle';
3
+ interface LayoutFlexItemProps extends LayoutFlexItemStyle {
4
+ hide?: boolean;
5
+ }
6
+ export declare const LayoutFlexItem: FC<LayoutFlexItemProps>;
7
+ export {};
@@ -0,0 +1,16 @@
1
+ import React, { memo } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useLayoutFlexItemStyle } from '../../props/layout/hooks/useLayoutFlexItemStyle.js';
4
+
5
+ const LayoutFlexItemBase = ({ children, alignSelf, stretch, hide }) => {
6
+ const style = useLayoutFlexItemStyle({ alignSelf, stretch });
7
+ if (hide) {
8
+ return null;
9
+ }
10
+ return React.createElement(View, { style: style }, children);
11
+ };
12
+ const LayoutFlexItem = memo(LayoutFlexItemBase);
13
+ LayoutFlexItem.displayName = 'LayoutFlexItem';
14
+
15
+ export { LayoutFlexItem };
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0RmxleEl0ZW0uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xheW91dEZsZXhJdGVtL0xheW91dEZsZXhJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHtcbiAgICBMYXlvdXRGbGV4SXRlbVN0eWxlLFxuICAgIHVzZUxheW91dEZsZXhJdGVtU3R5bGUsXG59IGZyb20gJy4uLy4uL3Byb3BzL2xheW91dC9ob29rcy91c2VMYXlvdXRGbGV4SXRlbVN0eWxlJztcblxuaW50ZXJmYWNlIExheW91dEZsZXhJdGVtUHJvcHMgZXh0ZW5kcyBMYXlvdXRGbGV4SXRlbVN0eWxlIHtcbiAgICBoaWRlPzogYm9vbGVhbjtcbn1cblxuY29uc3QgTGF5b3V0RmxleEl0ZW1CYXNlOiBGQzxMYXlvdXRGbGV4SXRlbVByb3BzPiA9ICh7IGNoaWxkcmVuLCBhbGlnblNlbGYsIHN0cmV0Y2gsIGhpZGUgfSkgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gdXNlTGF5b3V0RmxleEl0ZW1TdHlsZSh7IGFsaWduU2VsZiwgc3RyZXRjaCB9KTtcblxuICAgIGlmIChoaWRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiA8VmlldyBzdHlsZT17c3R5bGV9PntjaGlsZHJlbn08L1ZpZXc+O1xufTtcblxuZXhwb3J0IGNvbnN0IExheW91dEZsZXhJdGVtOiBGQzxMYXlvdXRGbGV4SXRlbVByb3BzPiA9IG1lbW8oTGF5b3V0RmxleEl0ZW1CYXNlKTtcblxuTGF5b3V0RmxleEl0ZW0uZGlzcGxheU5hbWUgPSAnTGF5b3V0RmxleEl0ZW0nO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFZQSxNQUFNLGtCQUFrQixHQUE0QixDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ3ZGLE1BQU0sS0FBSyxHQUFHLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFN0QsSUFBSSxJQUFJLEVBQUU7UUFDTixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsT0FBTyxvQkFBQyxJQUFJLElBQUMsS0FBSyxFQUFFLEtBQUssSUFBRyxRQUFRLENBQVEsQ0FBQztBQUNqRCxDQUFDLENBQUM7TUFFVyxjQUFjLEdBQTRCLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtBQUVoRixjQUFjLENBQUMsV0FBVyxHQUFHLGdCQUFnQjs7OzsifQ==
@@ -1,3 +1,6 @@
1
1
  import { FC } from 'react';
2
- import { TextProps } from 'react-native';
2
+ import { TextCommonProps, TextStyleProps } from '../../props/typography';
3
+ interface TextProps extends TextCommonProps, TextStyleProps {
4
+ }
3
5
  export declare const Text: FC<TextProps>;
6
+ export {};
@@ -1,9 +1,14 @@
1
- import React from 'react';
1
+ import React, { memo } from 'react';
2
2
  import { Text as Text$1 } from 'react-native';
3
+ import { TextVariantProvider } from '../../providers/TextVariantProvider.js';
4
+ import { useTextStyle } from '../../props/typography/hooks/useTextStyle.js';
3
5
 
4
- const Text = props => {
5
- return React.createElement(Text$1, Object.assign({}, props));
6
- };
6
+ const TextBase = ({ variant, accent, color, centered, children, ...rest }) => {
7
+ const computedStyles = useTextStyle({ variant, accent, color, centered });
8
+ return (React.createElement(TextVariantProvider, { value: computedStyles },
9
+ React.createElement(Text$1, Object.assign({ style: computedStyles }, rest), children)));
10
+ };
11
+ const Text = memo(TextBase);
7
12
 
8
13
  export { Text };
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGV4dC9UZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUZXh0IGFzIFJOVGV4dCwgVGV4dFByb3BzIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuZXhwb3J0IGNvbnN0IFRleHQ6IEZDPFRleHRQcm9wcz4gPSBwcm9wcyA9PiB7XG4gICAgcmV0dXJuIDxSTlRleHQgey4uLnByb3BzfSAvPjtcbn07XG4iXSwibmFtZXMiOlsiUk5UZXh0Il0sIm1hcHBpbmdzIjoiOzs7TUFHYSxJQUFJLEdBQWtCLEtBQUs7SUFDcEMsT0FBTyxvQkFBQ0EsTUFBTSxvQkFBSyxLQUFLLEVBQUksQ0FBQztBQUNqQzs7OzsifQ==
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGV4dC9UZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUZXh0IGFzIFJOVGV4dCB9IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5cbmltcG9ydCB7IHVzZVRleHRTdHlsZSB9IGZyb20gJy4uLy4uL3Byb3BzJztcbmltcG9ydCB7IFRleHRDb21tb25Qcm9wcywgVGV4dFN0eWxlUHJvcHMgfSBmcm9tICcuLi8uLi9wcm9wcy90eXBvZ3JhcGh5JztcbmltcG9ydCB7IFRleHRWYXJpYW50UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVGV4dFZhcmlhbnRQcm92aWRlcic7XG5cbmludGVyZmFjZSBUZXh0UHJvcHMgZXh0ZW5kcyBUZXh0Q29tbW9uUHJvcHMsIFRleHRTdHlsZVByb3BzIHt9XG5cbmNvbnN0IFRleHRCYXNlOiBGQzxUZXh0UHJvcHM+ID0gKHsgdmFyaWFudCwgYWNjZW50LCBjb2xvciwgY2VudGVyZWQsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IHVzZVRleHRTdHlsZSh7IHZhcmlhbnQsIGFjY2VudCwgY29sb3IsIGNlbnRlcmVkIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRWYXJpYW50UHJvdmlkZXIgdmFsdWU9e2NvbXB1dGVkU3R5bGVzfT5cbiAgICAgICAgICAgIDxSTlRleHQgc3R5bGU9e2NvbXB1dGVkU3R5bGVzfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9STlRleHQ+XG4gICAgICAgIDwvVGV4dFZhcmlhbnRQcm92aWRlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFRleHQ6IEZDPFRleHRQcm9wcz4gPSBtZW1vKFRleHRCYXNlKTtcbiJdLCJuYW1lcyI6WyJSTlRleHQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsTUFBTSxRQUFRLEdBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFO0lBQ3BGLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFMUUsUUFDSSxvQkFBQyxtQkFBbUIsSUFBQyxLQUFLLEVBQUUsY0FBYztRQUN0QyxvQkFBQ0EsTUFBTSxrQkFBQyxLQUFLLEVBQUUsY0FBYyxJQUFNLElBQUksR0FDbEMsUUFBUSxDQUNKLENBQ1MsRUFDeEI7QUFDTixDQUFDLENBQUM7TUFFVyxJQUFJLEdBQWtCLElBQUksQ0FBQyxRQUFROzs7OyJ9
@@ -1,2 +1,4 @@
1
- export { Text } from './Text/Text';
1
+ export { Heading } from './Heading/Heading';
2
2
  export { LayoutFlex } from './LayoutFlex/LayoutFlex';
3
+ export { LayoutFlexItem } from './LayoutFlexItem/LayoutFlexItem';
4
+ export { Text } from './Text/Text';
@@ -1,3 +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
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
3
+ export { LayoutFlexItem } from './LayoutFlexItem/LayoutFlexItem.js';
4
+ export { Text } from './Text/Text.js';
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7In0=
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './components';
2
+ export * from './props';
package/dist/index.js CHANGED
@@ -1,3 +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
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
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';
6
+ export { useTextStyle } from './props/typography/hooks/useTextStyle.js';
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OzsifQ==
@@ -0,0 +1 @@
1
+ export { useHeadingStyle, useTextStyle } from './typography';
@@ -0,0 +1,3 @@
1
+ export { useHeadingStyle } from './typography/hooks/useHeadingStyle.js';
2
+ export { useTextStyle } from './typography/hooks/useTextStyle.js';
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
@@ -0,0 +1,7 @@
1
+ import { LayoutAlignSelf } from '@preply/ds-core';
2
+ import { ViewStyle } from 'react-native';
3
+ export interface LayoutFlexItemStyle {
4
+ stretch?: boolean;
5
+ alignSelf?: LayoutAlignSelf;
6
+ }
7
+ export declare function useLayoutFlexItemStyle({ alignSelf, stretch, }: LayoutFlexItemStyle): Pick<ViewStyle, 'alignSelf' | 'flex'>;
@@ -0,0 +1,14 @@
1
+ import { useMemo } from 'react';
2
+ import { alignSelfMap } from '../private/constants.js';
3
+
4
+ function useLayoutFlexItemStyle({ alignSelf, stretch, }) {
5
+ return useMemo(() => {
6
+ return {
7
+ ...(alignSelf ? { alignSelf: alignSelfMap[alignSelf] } : {}),
8
+ ...(stretch ? { flex: 1 } : {}),
9
+ };
10
+ }, [alignSelf, stretch]);
11
+ }
12
+
13
+ export { useLayoutFlexItemStyle };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleEl0ZW1TdHlsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3BzL2xheW91dC9ob29rcy91c2VMYXlvdXRGbGV4SXRlbVN0eWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExheW91dEFsaWduU2VsZiB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVmlld1N0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgYWxpZ25TZWxmTWFwIH0gZnJvbSAnLi4vcHJpdmF0ZS9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dEZsZXhJdGVtU3R5bGUge1xuICAgIHN0cmV0Y2g/OiBib29sZWFuO1xuICAgIGFsaWduU2VsZj86IExheW91dEFsaWduU2VsZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUxheW91dEZsZXhJdGVtU3R5bGUoe1xuICAgIGFsaWduU2VsZixcbiAgICBzdHJldGNoLFxufTogTGF5b3V0RmxleEl0ZW1TdHlsZSk6IFBpY2s8Vmlld1N0eWxlLCAnYWxpZ25TZWxmJyB8ICdmbGV4Jz4ge1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLihhbGlnblNlbGYgPyB7IGFsaWduU2VsZjogYWxpZ25TZWxmTWFwW2FsaWduU2VsZl0gfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihzdHJldGNoID8geyBmbGV4OiAxIH0gOiB7fSksXG4gICAgICAgIH07XG4gICAgfSwgW2FsaWduU2VsZiwgc3RyZXRjaF0pO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztTQVdnQixzQkFBc0IsQ0FBQyxFQUNuQyxTQUFTLEVBQ1QsT0FBTyxHQUNXO0lBQ2xCLE9BQU8sT0FBTyxDQUFDO1FBQ1gsT0FBTztZQUNILElBQUksU0FBUyxHQUFHLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUM1RCxJQUFJLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDbEMsQ0FBQztLQUNMLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM3Qjs7OzsifQ==
@@ -0,0 +1,20 @@
1
+ import { useMemo } from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import { alignItemsMap, justifyContentMap } from '../private/constants.js';
4
+ import { usePaddingStyle } from './usePaddingStyle.js';
5
+
6
+ function useLayoutFlexStyle({ padding, direction, nowrap, alignItems, justifyContent, }) {
7
+ const paddingStyle = usePaddingStyle(padding);
8
+ const flexStyle = useMemo(() => {
9
+ return {
10
+ ...(direction ? { flexDirection: direction } : {}),
11
+ ...(nowrap ? { flexWrap: 'nowrap' } : {}),
12
+ ...(alignItems ? { alignItems: alignItemsMap[alignItems] } : {}),
13
+ ...(justifyContent ? { justifyContent: justifyContentMap[justifyContent] } : {}),
14
+ };
15
+ }, [alignItems, direction, justifyContent, nowrap]);
16
+ return useMemo(() => StyleSheet.flatten([paddingStyle, flexStyle]), [paddingStyle, flexStyle]);
17
+ }
18
+
19
+ export { useLayoutFlexStyle };
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvbGF5b3V0L2hvb2tzL3VzZUxheW91dEZsZXhTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIExheW91dEFsaWduSXRlbXMsXG4gICAgTGF5b3V0RmxleERpcmVjdGlvbixcbiAgICBMYXlvdXRKdXN0aWZ5Q29udGVudCxcbiAgICBMYXlvdXRQYWRkaW5nLFxuICAgIFNob3J0SGFuZCxcbn0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGbGV4U3R5bGUsIFN0eWxlUHJvcCwgU3R5bGVTaGVldCwgVmlld1N0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgYWxpZ25JdGVtc01hcCwganVzdGlmeUNvbnRlbnRNYXAgfSBmcm9tICcuLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IHVzZVBhZGRpbmdTdHlsZSB9IGZyb20gJy4vdXNlUGFkZGluZ1N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRGbGV4U3R5bGUge1xuICAgIHBhZGRpbmc/OiBTaG9ydEhhbmQ8TGF5b3V0UGFkZGluZz47XG4gICAgbm93cmFwPzogYm9vbGVhbjtcbiAgICBkaXJlY3Rpb24/OiBMYXlvdXRGbGV4RGlyZWN0aW9uO1xuICAgIGp1c3RpZnlDb250ZW50PzogTGF5b3V0SnVzdGlmeUNvbnRlbnQ7XG4gICAgYWxpZ25JdGVtcz86IExheW91dEFsaWduSXRlbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXlvdXRGbGV4U3R5bGUoe1xuICAgIHBhZGRpbmcsXG4gICAgZGlyZWN0aW9uLFxuICAgIG5vd3JhcCxcbiAgICBhbGlnbkl0ZW1zLFxuICAgIGp1c3RpZnlDb250ZW50LFxufTogTGF5b3V0RmxleFN0eWxlKTogU3R5bGVQcm9wPFZpZXdTdHlsZT4ge1xuICAgIGNvbnN0IHBhZGRpbmdTdHlsZSA9IHVzZVBhZGRpbmdTdHlsZShwYWRkaW5nKTtcblxuICAgIGNvbnN0IGZsZXhTdHlsZTogRmxleFN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi4oZGlyZWN0aW9uID8geyBmbGV4RGlyZWN0aW9uOiBkaXJlY3Rpb24gfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihub3dyYXAgPyB7IGZsZXhXcmFwOiAnbm93cmFwJyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGFsaWduSXRlbXMgPyB7IGFsaWduSXRlbXM6IGFsaWduSXRlbXNNYXBbYWxpZ25JdGVtc10gfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihqdXN0aWZ5Q29udGVudCA/IHsganVzdGlmeUNvbnRlbnQ6IGp1c3RpZnlDb250ZW50TWFwW2p1c3RpZnlDb250ZW50XSB9IDoge30pLFxuICAgICAgICB9O1xuICAgIH0sIFthbGlnbkl0ZW1zLCBkaXJlY3Rpb24sIGp1c3RpZnlDb250ZW50LCBub3dyYXBdKTtcblxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IFN0eWxlU2hlZXQuZmxhdHRlbihbcGFkZGluZ1N0eWxlLCBmbGV4U3R5bGVdKSwgW3BhZGRpbmdTdHlsZSwgZmxleFN0eWxlXSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7U0FzQmdCLGtCQUFrQixDQUFDLEVBQy9CLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEdBQ0E7SUFDZCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUMsTUFBTSxTQUFTLEdBQWMsT0FBTyxDQUFDO1FBQ2pDLE9BQU87WUFDSCxJQUFJLFNBQVMsR0FBRyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDbEQsSUFBSSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksVUFBVSxHQUFHLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNoRSxJQUFJLGNBQWMsR0FBRyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUNuRixDQUFDO0tBQ0wsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEQsT0FBTyxPQUFPLENBQUMsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNuRzs7OzsifQ==
@@ -0,0 +1,24 @@
1
+ import { normalizeShorthand, root } from '@preply/ds-core';
2
+ import { createStyleSheet, useStyleSheet } from '@preply/ds-rn-core';
3
+ import { useMemo } from 'react';
4
+
5
+ function usePaddingStyle(padding) {
6
+ const rawStyles = useMemo(() => {
7
+ if (!padding) {
8
+ return createStyleSheet({ padding: {} });
9
+ }
10
+ const [top, right, bottom, left] = normalizeShorthand(padding);
11
+ return createStyleSheet({
12
+ padding: {
13
+ paddingTop: root.space[top],
14
+ paddingRight: root.space[right],
15
+ paddingBottom: root.space[bottom],
16
+ paddingLeft: root.space[left],
17
+ },
18
+ });
19
+ }, [padding === null || padding === void 0 ? void 0 : padding.toString()]);
20
+ return useStyleSheet(rawStyles).padding;
21
+ }
22
+
23
+ export { usePaddingStyle };
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFkZGluZ1N0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvbGF5b3V0L2hvb2tzL3VzZVBhZGRpbmdTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXRQYWRkaW5nLCBTaG9ydEhhbmQsIG5vcm1hbGl6ZVNob3J0aGFuZCwgcm9vdCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVTdHlsZVNoZWV0LCB1c2VTdHlsZVNoZWV0IH0gZnJvbSAnQHByZXBseS9kcy1ybi1jb3JlJztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VQYWRkaW5nU3R5bGUocGFkZGluZz86IFNob3J0SGFuZDxMYXlvdXRQYWRkaW5nPik6IHtcbiAgICBwYWRkaW5nVG9wPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHBhZGRpbmdCb3R0b20/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgcGFkZGluZ1JpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHBhZGRpbmdMZWZ0Pzogc3RyaW5nIHwgbnVtYmVyO1xufSB7XG4gICAgY29uc3QgcmF3U3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghcGFkZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0eWxlU2hlZXQoeyBwYWRkaW5nOiB7fSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdID0gbm9ybWFsaXplU2hvcnRoYW5kKHBhZGRpbmcpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVTdHlsZVNoZWV0KHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiByb290LnNwYWNlW3RvcF0sXG4gICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiByb290LnNwYWNlW3JpZ2h0XSxcbiAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiByb290LnNwYWNlW2JvdHRvbV0sXG4gICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHJvb3Quc3BhY2VbbGVmdF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9LCBbcGFkZGluZz8udG9TdHJpbmcoKV0pO1xuXG4gICAgcmV0dXJuIHVzZVN0eWxlU2hlZXQocmF3U3R5bGVzKS5wYWRkaW5nO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7U0FJZ0IsZUFBZSxDQUFDLE9BQWtDO0lBTTlELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELE9BQU8sZ0JBQWdCLENBQUM7WUFDcEIsT0FBTyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNoQztTQUNKLENBQUMsQ0FBQztLQUNOLEVBQUUsQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUUxQixPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDNUM7Ozs7In0=
@@ -0,0 +1,5 @@
1
+ import { LayoutAlignItems, LayoutAlignSelf, LayoutJustifyContent } from '@preply/ds-core';
2
+ import { ViewStyle } from 'react-native';
3
+ export declare const alignItemsMap: Record<LayoutAlignItems, ViewStyle['alignItems']>;
4
+ export declare const alignSelfMap: Record<LayoutAlignSelf, ViewStyle['alignSelf']>;
5
+ export declare const justifyContentMap: Record<LayoutJustifyContent, ViewStyle['justifyContent']>;
@@ -0,0 +1,24 @@
1
+ const alignItemsMap = {
2
+ start: 'flex-start',
3
+ end: 'flex-end',
4
+ center: 'center',
5
+ stretch: 'stretch',
6
+ baseline: 'baseline',
7
+ };
8
+ const alignSelfMap = {
9
+ start: 'flex-start',
10
+ end: 'flex-end',
11
+ center: 'center',
12
+ stretch: 'stretch',
13
+ };
14
+ const justifyContentMap = {
15
+ start: 'flex-start',
16
+ end: 'flex-end',
17
+ center: 'center',
18
+ 'space-between': 'space-between',
19
+ 'space-around': 'space-around',
20
+ 'space-evenly': 'space-evenly',
21
+ };
22
+
23
+ export { alignItemsMap, alignSelfMap, justifyContentMap };
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvbGF5b3V0L3ByaXZhdGUvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExheW91dEFsaWduSXRlbXMsIExheW91dEFsaWduU2VsZiwgTGF5b3V0SnVzdGlmeUNvbnRlbnQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgVmlld1N0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuZXhwb3J0IGNvbnN0IGFsaWduSXRlbXNNYXA6IFJlY29yZDxMYXlvdXRBbGlnbkl0ZW1zLCBWaWV3U3R5bGVbJ2FsaWduSXRlbXMnXT4gPSB7XG4gICAgc3RhcnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICBlbmQ6ICdmbGV4LWVuZCcsXG4gICAgY2VudGVyOiAnY2VudGVyJyxcbiAgICBzdHJldGNoOiAnc3RyZXRjaCcsXG4gICAgYmFzZWxpbmU6ICdiYXNlbGluZScsXG59O1xuXG5leHBvcnQgY29uc3QgYWxpZ25TZWxmTWFwOiBSZWNvcmQ8TGF5b3V0QWxpZ25TZWxmLCBWaWV3U3R5bGVbJ2FsaWduU2VsZiddPiA9IHtcbiAgICBzdGFydDogJ2ZsZXgtc3RhcnQnLFxuICAgIGVuZDogJ2ZsZXgtZW5kJyxcbiAgICBjZW50ZXI6ICdjZW50ZXInLFxuICAgIHN0cmV0Y2g6ICdzdHJldGNoJyxcbn07XG5cbmV4cG9ydCBjb25zdCBqdXN0aWZ5Q29udGVudE1hcDogUmVjb3JkPExheW91dEp1c3RpZnlDb250ZW50LCBWaWV3U3R5bGVbJ2p1c3RpZnlDb250ZW50J10+ID0ge1xuICAgIHN0YXJ0OiAnZmxleC1zdGFydCcsXG4gICAgZW5kOiAnZmxleC1lbmQnLFxuICAgIGNlbnRlcjogJ2NlbnRlcicsXG4gICAgJ3NwYWNlLWJldHdlZW4nOiAnc3BhY2UtYmV0d2VlbicsXG4gICAgJ3NwYWNlLWFyb3VuZCc6ICdzcGFjZS1hcm91bmQnLFxuICAgICdzcGFjZS1ldmVubHknOiAnc3BhY2UtZXZlbmx5Jyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik1BR2EsYUFBYSxHQUFzRDtJQUM1RSxLQUFLLEVBQUUsWUFBWTtJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0VBQ3RCO01BRVcsWUFBWSxHQUFvRDtJQUN6RSxLQUFLLEVBQUUsWUFBWTtJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0VBQ3BCO01BRVcsaUJBQWlCLEdBQThEO0lBQ3hGLEtBQUssRUFBRSxZQUFZO0lBQ25CLEdBQUcsRUFBRSxVQUFVO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsY0FBYyxFQUFFLGNBQWM7SUFDOUIsY0FBYyxFQUFFLGNBQWM7Ozs7OyJ9
@@ -0,0 +1,3 @@
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 | import("react-native").OpaqueColorValue | undefined;
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==
@@ -0,0 +1,2 @@
1
+ import { TextStyle, TextStyleProps } from '..';
2
+ export declare const useTextStyle: ({ variant, accent, color, centered, }?: TextStyleProps) => TextStyle;
@@ -0,0 +1,17 @@
1
+ import { text } from '@preply/ds-core';
2
+ import { TEXT_VARIANT_RN_DEFAULT } from '@preply/ds-rn-core';
3
+ import { useMemo } from 'react';
4
+ import { useTextSharedStyle } from './private/useTextSharedStyle.js';
5
+ import { useTextVariantStyle } from './private/useTextVariantStyle.js';
6
+
7
+ const useTextStyle = ({ variant = TEXT_VARIANT_RN_DEFAULT, accent, color, centered, } = {}) => {
8
+ const variantRawStyles = text.variant[variant];
9
+ const variantStyle = useTextVariantStyle(variantRawStyles);
10
+ const textSharedStyle = useTextSharedStyle({ accent, color, centered });
11
+ return useMemo(() => {
12
+ return { ...variantStyle, ...textSharedStyle };
13
+ }, [textSharedStyle, variantStyle]);
14
+ };
15
+
16
+ export { useTextStyle };
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcHMvdHlwb2dyYXBoeS9ob29rcy91c2VUZXh0U3R5bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGV4dCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCB9IGZyb20gJ0BwcmVwbHkvZHMtcm4tY29yZSc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBUZXh0U3R5bGUsIFRleHRTdHlsZVByb3BzIH0gZnJvbSAnLi4nO1xuXG5pbXBvcnQgeyB1c2VUZXh0U2hhcmVkU3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFNoYXJlZFN0eWxlJztcbmltcG9ydCB7IHVzZVRleHRWYXJpYW50U3R5bGUgfSBmcm9tICcuL3ByaXZhdGUvdXNlVGV4dFZhcmlhbnRTdHlsZSc7XG5cbmV4cG9ydCBjb25zdCB1c2VUZXh0U3R5bGUgPSAoe1xuICAgIHZhcmlhbnQgPSBURVhUX1ZBUklBTlRfUk5fREVGQVVMVCxcbiAgICBhY2NlbnQsXG4gICAgY29sb3IsXG4gICAgY2VudGVyZWQsXG59OiBUZXh0U3R5bGVQcm9wcyA9IHt9KTogVGV4dFN0eWxlID0+IHtcbiAgICBjb25zdCB2YXJpYW50UmF3U3R5bGVzID0gdGV4dC52YXJpYW50W3ZhcmlhbnRdO1xuICAgIGNvbnN0IHZhcmlhbnRTdHlsZSA9IHVzZVRleHRWYXJpYW50U3R5bGUodmFyaWFudFJhd1N0eWxlcyk7XG4gICAgY29uc3QgdGV4dFNoYXJlZFN0eWxlID0gdXNlVGV4dFNoYXJlZFN0eWxlKHsgYWNjZW50LCBjb2xvciwgY2VudGVyZWQgfSk7XG5cbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLnZhcmlhbnRTdHlsZSwgLi4udGV4dFNoYXJlZFN0eWxlIH07XG4gICAgfSwgW3RleHRTaGFyZWRTdHlsZSwgdmFyaWFudFN0eWxlXSk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztNQVNhLFlBQVksR0FBRyxDQUFDLEVBQ3pCLE9BQU8sR0FBRyx1QkFBdUIsRUFDakMsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLE1BQ1EsRUFBRTtJQUNsQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV4RSxPQUFPLE9BQU8sQ0FBQztRQUNYLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLGVBQWUsRUFBRSxDQUFDO0tBQ2xELEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN4Qzs7OzsifQ==
@@ -0,0 +1,3 @@
1
+ export { useHeadingStyle } from './hooks/useHeadingStyle';
2
+ export { useTextStyle } from './hooks/useTextStyle';
3
+ export type { HeadingStyleProps, TextCommonProps, TextStyleProps, TextVariantStyle, TextStyle, } from './types';
@@ -0,0 +1,3 @@
1
+ export { useHeadingStyle } from './hooks/useHeadingStyle.js';
2
+ export { useTextStyle } from './hooks/useTextStyle.js';
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=
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { TextStyle } from '../props/typography';
3
+ export declare const TextVariantProvider: React.Provider<TextStyle | null>;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+
3
+ const TextVariantContext = React.createContext(null);
4
+ const TextVariantProvider = TextVariantContext.Provider;
5
+
6
+ export { TextVariantProvider };
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.43.2",
3
+ "version": "0.45.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -18,23 +18,25 @@
18
18
  "dev": "run build:rollup -w"
19
19
  },
20
20
  "dependencies": {
21
- "@preply/ds-core": "0.43.2",
22
- "@preply/ds-rn-core": "0.43.2",
23
- "@preply/ds-rn-root": "0.43.2"
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.43.2",
27
- "@preply/ds-rn-core": "0.43.2",
28
- "@preply/ds-rn-root": "0.43.2",
26
+ "@preply/ds-core": "0.45.0",
27
+ "@preply/ds-core-types": "0.43.2",
28
+ "@preply/ds-rn-core": "0.45.0",
29
+ "@preply/ds-rn-root": "0.45.0",
29
30
  "react": "^16.8.3",
30
31
  "react-native": "^0.63.4"
31
32
  },
32
33
  "devDependencies": {
34
+ "@testing-library/jest-native": "4.0.12",
33
35
  "@testing-library/react-native": "^9.1.0",
34
36
  "metro-react-native-babel-preset": "^0.59.0",
35
37
  "react": "16.8.3",
36
38
  "react-native": "^0.63.4",
37
39
  "react-test-renderer": "16.8.3"
38
40
  },
39
- "gitHead": "e93cea4c45ddb12062fb8dfe40204cc8c4abb805"
41
+ "gitHead": "03d6ddbd1905f16d4ab455162cd178410904a8bd"
40
42
  }
@@ -1,34 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { StyleSheet } from 'react-native';
3
- import { usePaddingStyle } from './usePaddingStyle.js';
4
-
5
- const alignItemsMap = {
6
- start: 'flex-start',
7
- end: 'flex-end',
8
- center: 'center',
9
- stretch: 'stretch',
10
- baseline: 'baseline',
11
- };
12
- const justifyContentMap = {
13
- start: 'flex-start',
14
- end: 'flex-end',
15
- center: 'center',
16
- 'space-between': 'space-between',
17
- 'space-around': 'space-around',
18
- 'space-evenly': 'space-evenly',
19
- };
20
- function useLayoutFlexStyle({ padding, direction, nowrap, alignItems, justifyContent, }) {
21
- const paddingStyle = usePaddingStyle(padding);
22
- const flexStyle = useMemo(() => {
23
- return {
24
- ...(direction ? { flexDirection: direction } : {}),
25
- ...(nowrap ? { flexWrap: 'nowrap' } : {}),
26
- ...(alignItems ? { alignItems: alignItemsMap[alignItems] } : {}),
27
- ...(justifyContent ? { justifyContent: justifyContentMap[justifyContent] } : {}),
28
- };
29
- }, [alignItems, direction, justifyContent, nowrap]);
30
- return useMemo(() => StyleSheet.flatten([paddingStyle, flexStyle]), [paddingStyle, flexStyle]);
31
- }
32
-
33
- export { useLayoutFlexStyle };
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleFN0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvcHMvbGF5b3V0L3VzZUxheW91dEZsZXhTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIExheW91dEFsaWduSXRlbXMsXG4gICAgTGF5b3V0RmxleERpcmVjdGlvbixcbiAgICBMYXlvdXRKdXN0aWZ5Q29udGVudCxcbiAgICBMYXlvdXRQYWRkaW5nLFxuICAgIFNob3J0SGFuZCxcbn0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGbGV4U3R5bGUsIFN0eWxlUHJvcCwgU3R5bGVTaGVldCwgVmlld1N0eWxlIH0gZnJvbSAncmVhY3QtbmF0aXZlJztcblxuaW1wb3J0IHsgdXNlUGFkZGluZ1N0eWxlIH0gZnJvbSAnLi91c2VQYWRkaW5nU3R5bGUnO1xuXG5jb25zdCBhbGlnbkl0ZW1zTWFwOiBSZWNvcmQ8TGF5b3V0QWxpZ25JdGVtcywgVmlld1N0eWxlWydhbGlnbkl0ZW1zJ10+ID0ge1xuICAgIHN0YXJ0OiAnZmxleC1zdGFydCcsXG4gICAgZW5kOiAnZmxleC1lbmQnLFxuICAgIGNlbnRlcjogJ2NlbnRlcicsXG4gICAgc3RyZXRjaDogJ3N0cmV0Y2gnLFxuICAgIGJhc2VsaW5lOiAnYmFzZWxpbmUnLFxufTtcblxuY29uc3QganVzdGlmeUNvbnRlbnRNYXA6IFJlY29yZDxMYXlvdXRKdXN0aWZ5Q29udGVudCwgVmlld1N0eWxlWydqdXN0aWZ5Q29udGVudCddPiA9IHtcbiAgICBzdGFydDogJ2ZsZXgtc3RhcnQnLFxuICAgIGVuZDogJ2ZsZXgtZW5kJyxcbiAgICBjZW50ZXI6ICdjZW50ZXInLFxuICAgICdzcGFjZS1iZXR3ZWVuJzogJ3NwYWNlLWJldHdlZW4nLFxuICAgICdzcGFjZS1hcm91bmQnOiAnc3BhY2UtYXJvdW5kJyxcbiAgICAnc3BhY2UtZXZlbmx5JzogJ3NwYWNlLWV2ZW5seScsXG59O1xuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRGbGV4U3R5bGUge1xuICAgIHBhZGRpbmc/OiBTaG9ydEhhbmQ8TGF5b3V0UGFkZGluZz47XG4gICAgbm93cmFwPzogYm9vbGVhbjtcbiAgICBkaXJlY3Rpb24/OiBMYXlvdXRGbGV4RGlyZWN0aW9uO1xuICAgIGp1c3RpZnlDb250ZW50PzogTGF5b3V0SnVzdGlmeUNvbnRlbnQ7XG4gICAgYWxpZ25JdGVtcz86IExheW91dEFsaWduSXRlbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXlvdXRGbGV4U3R5bGUoe1xuICAgIHBhZGRpbmcsXG4gICAgZGlyZWN0aW9uLFxuICAgIG5vd3JhcCxcbiAgICBhbGlnbkl0ZW1zLFxuICAgIGp1c3RpZnlDb250ZW50LFxufTogTGF5b3V0RmxleFN0eWxlKTogU3R5bGVQcm9wPFZpZXdTdHlsZT4ge1xuICAgIGNvbnN0IHBhZGRpbmdTdHlsZSA9IHVzZVBhZGRpbmdTdHlsZShwYWRkaW5nKTtcblxuICAgIGNvbnN0IGZsZXhTdHlsZTogRmxleFN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi4oZGlyZWN0aW9uID8geyBmbGV4RGlyZWN0aW9uOiBkaXJlY3Rpb24gfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihub3dyYXAgPyB7IGZsZXhXcmFwOiAnbm93cmFwJyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGFsaWduSXRlbXMgPyB7IGFsaWduSXRlbXM6IGFsaWduSXRlbXNNYXBbYWxpZ25JdGVtc10gfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihqdXN0aWZ5Q29udGVudCA/IHsganVzdGlmeUNvbnRlbnQ6IGp1c3RpZnlDb250ZW50TWFwW2p1c3RpZnlDb250ZW50XSB9IDoge30pLFxuICAgICAgICB9O1xuICAgIH0sIFthbGlnbkl0ZW1zLCBkaXJlY3Rpb24sIGp1c3RpZnlDb250ZW50LCBub3dyYXBdKTtcblxuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IFN0eWxlU2hlZXQuZmxhdHRlbihbcGFkZGluZ1N0eWxlLCBmbGV4U3R5bGVdKSwgW3BhZGRpbmdTdHlsZSwgZmxleFN0eWxlXSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVlBLE1BQU0sYUFBYSxHQUFzRDtJQUNyRSxLQUFLLEVBQUUsWUFBWTtJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0NBQ3ZCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUE4RDtJQUNqRixLQUFLLEVBQUUsWUFBWTtJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLGVBQWUsRUFBRSxlQUFlO0lBQ2hDLGNBQWMsRUFBRSxjQUFjO0lBQzlCLGNBQWMsRUFBRSxjQUFjO0NBQ2pDLENBQUM7U0FTYyxrQkFBa0IsQ0FBQyxFQUMvQixPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsY0FBYyxHQUNBO0lBQ2QsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLE1BQU0sU0FBUyxHQUFjLE9BQU8sQ0FBQztRQUNqQyxPQUFPO1lBQ0gsSUFBSSxTQUFTLEdBQUcsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2xELElBQUksTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFVBQVUsR0FBRyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDaEUsSUFBSSxjQUFjLEdBQUcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDbkYsQ0FBQztLQUNMLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDbkc7Ozs7In0=
@@ -1,24 +0,0 @@
1
- import { normalizeShorthand, root } from '@preply/ds-core';
2
- import { createStyleSheet, useStyleSheet } from '@preply/ds-rn-core';
3
- import { useMemo } from 'react';
4
-
5
- function usePaddingStyle(padding) {
6
- const rawStyles = useMemo(() => {
7
- if (!padding) {
8
- return createStyleSheet({ padding: {} });
9
- }
10
- const [top, right, bottom, left] = normalizeShorthand(padding);
11
- return createStyleSheet({
12
- padding: {
13
- paddingTop: root.space[top],
14
- paddingRight: root.space[right],
15
- paddingBottom: root.space[bottom],
16
- paddingLeft: root.space[left],
17
- },
18
- });
19
- }, [padding === null || padding === void 0 ? void 0 : padding.toString()]);
20
- return useStyleSheet(rawStyles).padding;
21
- }
22
-
23
- export { usePaddingStyle };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFkZGluZ1N0eWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvcHMvbGF5b3V0L3VzZVBhZGRpbmdTdHlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXRQYWRkaW5nLCBTaG9ydEhhbmQsIG5vcm1hbGl6ZVNob3J0aGFuZCwgcm9vdCB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVTdHlsZVNoZWV0LCB1c2VTdHlsZVNoZWV0IH0gZnJvbSAnQHByZXBseS9kcy1ybi1jb3JlJztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VQYWRkaW5nU3R5bGUocGFkZGluZz86IFNob3J0SGFuZDxMYXlvdXRQYWRkaW5nPik6IHtcbiAgICBwYWRkaW5nVG9wPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHBhZGRpbmdCb3R0b20/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgcGFkZGluZ1JpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHBhZGRpbmdMZWZ0Pzogc3RyaW5nIHwgbnVtYmVyO1xufSB7XG4gICAgY29uc3QgcmF3U3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICghcGFkZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0eWxlU2hlZXQoeyBwYWRkaW5nOiB7fSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdID0gbm9ybWFsaXplU2hvcnRoYW5kKHBhZGRpbmcpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVTdHlsZVNoZWV0KHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiByb290LnNwYWNlW3RvcF0sXG4gICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiByb290LnNwYWNlW3JpZ2h0XSxcbiAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiByb290LnNwYWNlW2JvdHRvbV0sXG4gICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHJvb3Quc3BhY2VbbGVmdF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9LCBbcGFkZGluZz8udG9TdHJpbmcoKV0pO1xuXG4gICAgcmV0dXJuIHVzZVN0eWxlU2hlZXQocmF3U3R5bGVzKS5wYWRkaW5nO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7U0FJZ0IsZUFBZSxDQUFDLE9BQWtDO0lBTTlELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELE9BQU8sZ0JBQWdCLENBQUM7WUFDcEIsT0FBTyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNoQztTQUNKLENBQUMsQ0FBQztLQUNOLEVBQUUsQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUUxQixPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDNUM7Ozs7In0=