@preply/ds-web-core 0.4.3-beta.32

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 (91) hide show
  1. package/README.md +37 -0
  2. package/dist/color-scheme/classes/ColorScheme.d.ts +11 -0
  3. package/dist/color-scheme/classes/ColorScheme.js +20 -0
  4. package/dist/color-scheme/colorSchemes.d.ts +3 -0
  5. package/dist/color-scheme/colorSchemes.js +8 -0
  6. package/dist/color-scheme/constants.d.ts +2 -0
  7. package/dist/color-scheme/constants.js +4 -0
  8. package/dist/color-scheme/hocs/withColorScheme.d.ts +9 -0
  9. package/dist/color-scheme/hocs/withColorScheme.js +22 -0
  10. package/dist/color-scheme/hooks/useColorScheme.d.ts +2 -0
  11. package/dist/color-scheme/hooks/useColorScheme.js +13 -0
  12. package/dist/color-scheme/index.d.ts +9 -0
  13. package/dist/color-scheme/index.js +7 -0
  14. package/dist/color-scheme/providers/ColorSchemeProvider.d.ts +12 -0
  15. package/dist/color-scheme/providers/ColorSchemeProvider.js +13 -0
  16. package/dist/color-scheme/styles/index.module.less +15 -0
  17. package/dist/color-scheme/styles/index.module.less.js +9 -0
  18. package/dist/color-scheme/styles/mixins.less +11 -0
  19. package/dist/color-scheme/styles/mixins.less.js +8 -0
  20. package/dist/color-scheme/types.d.ts +5 -0
  21. package/dist/color-scheme/types.js +2 -0
  22. package/dist/css-module/index.d.ts +11 -0
  23. package/dist/css-module/index.js +26 -0
  24. package/dist/css-module/types.d.ts +3 -0
  25. package/dist/css-module/types.js +2 -0
  26. package/dist/dom/props/constants.d.ts +6 -0
  27. package/dist/dom/props/constants.js +5 -0
  28. package/dist/dom/props/index.d.ts +4 -0
  29. package/dist/dom/props/index.js +22 -0
  30. package/dist/external/style-inject/dist/style-inject.es.js +29 -0
  31. package/dist/index.d.ts +10 -0
  32. package/dist/index.js +25 -0
  33. package/dist/keyboard/index.d.ts +1 -0
  34. package/dist/keyboard/index.js +21 -0
  35. package/dist/layout/hooks/useLayoutClassNames.d.ts +4 -0
  36. package/dist/layout/hooks/useLayoutClassNames.js +12 -0
  37. package/dist/layout/hooks/useLayoutFlexClassNames.d.ts +4 -0
  38. package/dist/layout/hooks/useLayoutFlexClassNames.js +24 -0
  39. package/dist/layout/hooks/useLayoutGridClassNames.d.ts +4 -0
  40. package/dist/layout/hooks/useLayoutGridClassNames.js +21 -0
  41. package/dist/layout/hooks/useLayoutGridStyles.d.ts +5 -0
  42. package/dist/layout/hooks/useLayoutGridStyles.js +10 -0
  43. package/dist/layout/hooks/useLayoutStyles.d.ts +5 -0
  44. package/dist/layout/hooks/useLayoutStyles.js +9 -0
  45. package/dist/layout/index.d.ts +5 -0
  46. package/dist/layout/index.js +6 -0
  47. package/dist/layout/style/common.mixins.less +46 -0
  48. package/dist/layout/style/common.mixins.less.js +8 -0
  49. package/dist/layout/style/flex.mixins.less +33 -0
  50. package/dist/layout/style/flex.mixins.less.js +8 -0
  51. package/dist/layout/style/grid.mixins.less +5 -0
  52. package/dist/layout/style/grid.mixins.less.js +8 -0
  53. package/dist/layout/style/index.module.less +22 -0
  54. package/dist/layout/style/index.module.less.js +9 -0
  55. package/dist/location/index.d.ts +2 -0
  56. package/dist/location/index.js +5 -0
  57. package/dist/theme/classes/Theme.d.ts +18 -0
  58. package/dist/theme/classes/Theme.js +45 -0
  59. package/dist/theme/constants.d.ts +3 -0
  60. package/dist/theme/constants.js +6 -0
  61. package/dist/theme/hocs/withTheme.d.ts +9 -0
  62. package/dist/theme/hocs/withTheme.js +22 -0
  63. package/dist/theme/hooks/useSetTheme.d.ts +2 -0
  64. package/dist/theme/hooks/useSetTheme.js +10 -0
  65. package/dist/theme/hooks/useTheme.d.ts +2 -0
  66. package/dist/theme/hooks/useTheme.js +13 -0
  67. package/dist/theme/hooks/useThemes.d.ts +2 -0
  68. package/dist/theme/hooks/useThemes.js +13 -0
  69. package/dist/theme/index.d.ts +11 -0
  70. package/dist/theme/index.js +8 -0
  71. package/dist/theme/providers/ThemeProvider.d.ts +15 -0
  72. package/dist/theme/providers/ThemeProvider.js +14 -0
  73. package/dist/theme/providers/ThemesProvider.d.ts +16 -0
  74. package/dist/theme/providers/ThemesProvider.js +23 -0
  75. package/dist/theme/style/declarations.mixins.less +129 -0
  76. package/dist/theme/style/declarations.mixins.less.js +8 -0
  77. package/dist/theme/types.d.ts +11 -0
  78. package/dist/theme/types.js +2 -0
  79. package/dist/types/index.d.ts +4 -0
  80. package/dist/types/index.js +2 -0
  81. package/dist/typography/constants.d.ts +2 -0
  82. package/dist/typography/constants.js +4 -0
  83. package/dist/typography/style/mixins.less +38 -0
  84. package/dist/typography/style/mixins.less.js +8 -0
  85. package/dist/typography/types.d.ts +1 -0
  86. package/dist/typography/types.js +2 -0
  87. package/dist/url/index.d.ts +1 -0
  88. package/dist/url/index.js +17 -0
  89. package/dist/version.d.ts +1 -0
  90. package/dist/version.js +4 -0
  91. package/package.json +30 -0
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # `@preply/ds-web-core`
2
+
3
+ > Web support and context providers (React + CSS modules).
4
+
5
+ ## Using the Design System in your application or library?
6
+
7
+ Follow the instructions in [@preply/ds-workspace](../../README.md).
8
+
9
+ ## Contributing
10
+
11
+ Reach out to [#design-system-public](https://preply.slack.com/archives/C024EAEHP6V) if you think you can help and keep an eye on [DS Confluence](https://preply.atlassian.net/wiki/spaces/DS/overview) for more docs, guides, work in progress, decisions, the works.
12
+
13
+ ## Development
14
+
15
+ You probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).
16
+
17
+ For quicker - and more focused - feedback, you can also directly use the scripts in this package directory, but make sure you have first executed `yarn build` in root, or that you have the root `yarn dev` script running in the background.
18
+
19
+ ## Tooling
20
+
21
+ Details about tools and configurations in [@preply/ds-workspace](../../README.md).
22
+
23
+ ## Dependencies
24
+
25
+ **Note:** `@preply/ds-***` are declared both as direct and peer dependencies:
26
+
27
+ - to ensure `rollup` excludes them from the bundle.
28
+ - to ensure Lerna honours build sequence (does not do so for peer dependencies).
29
+
30
+ ### Dev dependencies
31
+
32
+ We only list the dependencies used directly in stories, MDX docs and tests (`@storybook/react`, `@testing-library/react`, ...).
33
+
34
+ **Do NOT add dependencies on** linting, testing, building tools unless:
35
+
36
+ - you need to require some resource in a doc file or a test.
37
+ - you need to add a very specific plugin to this package only and you want to signal the dependency loudly.
@@ -0,0 +1,11 @@
1
+ import type { ColorSchemeName } from '@preply/ds-core';
2
+ import type { CSSModule } from '../../css-module/types';
3
+ import type { ColorSchemeInterface } from '../types';
4
+ export declare class ColorScheme implements ColorSchemeInterface {
5
+ static PREFIX: string;
6
+ private styles;
7
+ private extend?;
8
+ readonly name: any;
9
+ constructor(styles: CSSModule, name: ColorSchemeName, extend?: ColorSchemeName[]);
10
+ getClassName(): string;
11
+ }
@@ -0,0 +1,20 @@
1
+ import { safeClassName } from '../../css-module/index.js';
2
+
3
+ class ColorScheme {
4
+ constructor(styles, name, extend) {
5
+ this.styles = styles;
6
+ this.name = name;
7
+ this.extend = extend;
8
+ }
9
+ getClassName() {
10
+ const extendedClasses = this.extend || [];
11
+ const classNames = [this.name, ...extendedClasses];
12
+ return classNames
13
+ .map(className => safeClassName(this.styles, `${ColorScheme.PREFIX}scheme--${className}`))
14
+ .join(' ');
15
+ }
16
+ }
17
+ ColorScheme.PREFIX = 'ds-';
18
+
19
+ export { ColorScheme };
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3JTY2hlbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xvci1zY2hlbWUvY2xhc3Nlcy9Db2xvclNjaGVtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lTmFtZSB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5cbmltcG9ydCB7IHNhZmVDbGFzc05hbWUgfSBmcm9tICcuLi8uLi9jc3MtbW9kdWxlJztcbmltcG9ydCB0eXBlIHsgQ1NTTW9kdWxlIH0gZnJvbSAnLi4vLi4vY3NzLW1vZHVsZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lSW50ZXJmYWNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQ29sb3JTY2hlbWUgaW1wbGVtZW50cyBDb2xvclNjaGVtZUludGVyZmFjZSB7XG4gICAgc3RhdGljIFBSRUZJWCA9ICdkcy0nO1xuXG4gICAgcHJpdmF0ZSBzdHlsZXM6IENTU01vZHVsZTtcbiAgICBwcml2YXRlIGV4dGVuZD86IENvbG9yU2NoZW1lTmFtZVtdO1xuICAgIHB1YmxpYyByZWFkb25seSBuYW1lO1xuXG4gICAgY29uc3RydWN0b3Ioc3R5bGVzOiBDU1NNb2R1bGUsIG5hbWU6IENvbG9yU2NoZW1lTmFtZSwgZXh0ZW5kPzogQ29sb3JTY2hlbWVOYW1lW10pIHtcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBzdHlsZXM7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuZXh0ZW5kID0gZXh0ZW5kO1xuICAgIH1cblxuICAgIGdldENsYXNzTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBleHRlbmRlZENsYXNzZXMgPSB0aGlzLmV4dGVuZCB8fCBbXTtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lcyA9IFt0aGlzLm5hbWUsIC4uLmV4dGVuZGVkQ2xhc3Nlc107XG4gICAgICAgIHJldHVybiBjbGFzc05hbWVzXG4gICAgICAgICAgICAubWFwKGNsYXNzTmFtZSA9PlxuICAgICAgICAgICAgICAgIHNhZmVDbGFzc05hbWUodGhpcy5zdHlsZXMsIGAke0NvbG9yU2NoZW1lLlBSRUZJWH1zY2hlbWUtLSR7Y2xhc3NOYW1lfWApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7TUFNYSxXQUFXO0lBT3BCLFlBQVksTUFBaUIsRUFBRSxJQUFxQixFQUFFLE1BQTBCO1FBQzVFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0tBQ3hCO0lBRUQsWUFBWTtRQUNSLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sVUFBVTthQUNaLEdBQUcsQ0FBQyxTQUFTLElBQ1YsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxXQUFXLFNBQVMsRUFBRSxDQUFDLENBQzFFO2FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2xCOztBQXBCTSxrQkFBTSxHQUFHLEtBQUs7Ozs7In0=
@@ -0,0 +1,3 @@
1
+ import { ColorScheme } from './classes/ColorScheme';
2
+ import './styles/index.module.less';
3
+ export declare const colorSchemes: ColorScheme[];
@@ -0,0 +1,8 @@
1
+ import { colorSchemeConfig } from '@preply/ds-core';
2
+ import { ColorScheme } from './classes/ColorScheme.js';
3
+
4
+ const styles = Object.keys(colorSchemeConfig).reduce((acc, scheme) => ({ ...acc, [`ds-scheme--${scheme}`]: `ds-scheme--${scheme}` }), {});
5
+ const colorSchemes = Object.entries(colorSchemeConfig).map(([name, value]) => new ColorScheme(styles, name, value.extend));
6
+
7
+ export { colorSchemes };
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JTY2hlbWVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sb3Itc2NoZW1lL2NvbG9yU2NoZW1lcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lTmFtZSB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBjb2xvclNjaGVtZUNvbmZpZyB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5cbmltcG9ydCB7IENvbG9yU2NoZW1lIH0gZnJvbSAnLi9jbGFzc2VzL0NvbG9yU2NoZW1lJztcbmltcG9ydCAnLi9zdHlsZXMvaW5kZXgubW9kdWxlLmxlc3MnO1xuXG5jb25zdCBzdHlsZXMgPSBPYmplY3Qua2V5cyhjb2xvclNjaGVtZUNvbmZpZykucmVkdWNlKFxuICAgIChhY2MsIHNjaGVtZSkgPT4gKHsgLi4uYWNjLCBbYGRzLXNjaGVtZS0tJHtzY2hlbWV9YF06IGBkcy1zY2hlbWUtLSR7c2NoZW1lfWAgfSksXG4gICAge30sXG4pO1xuXG5leHBvcnQgY29uc3QgY29sb3JTY2hlbWVzID0gT2JqZWN0LmVudHJpZXMoY29sb3JTY2hlbWVDb25maWcpLm1hcChcbiAgICAoW25hbWUsIHZhbHVlXSkgPT4gbmV3IENvbG9yU2NoZW1lKHN0eWxlcywgbmFtZSBhcyBDb2xvclNjaGVtZU5hbWUsIHZhbHVlLmV4dGVuZCksXG4pO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQ2hELENBQUMsR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxNQUFNLEVBQUUsR0FBRyxjQUFjLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFDL0UsRUFBRSxDQUNMLENBQUM7TUFFVyxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FDN0QsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBdUIsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDOzs7OyJ9
@@ -0,0 +1,2 @@
1
+ import { ColorSchemeName } from '@preply/ds-core';
2
+ export declare const COLOR_SCHEME_DEFAULT: ColorSchemeName;
@@ -0,0 +1,4 @@
1
+ const COLOR_SCHEME_DEFAULT = 'base';
2
+
3
+ export { COLOR_SCHEME_DEFAULT };
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sb3Itc2NoZW1lL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvclNjaGVtZU5hbWUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuXG5leHBvcnQgY29uc3QgQ09MT1JfU0NIRU1FX0RFRkFVTFQ6IENvbG9yU2NoZW1lTmFtZSA9ICdiYXNlJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiTUFFYSxvQkFBb0IsR0FBb0I7Ozs7In0=
@@ -0,0 +1,9 @@
1
+ import type { ColorSchemeName } from '@preply/ds-core';
2
+ import { ComponentType, FC } from 'react';
3
+ export interface ColorSchemeProps {
4
+ colorScheme: ColorSchemeName;
5
+ }
6
+ export interface WithColorSchemeProps {
7
+ colorSchemeClassName?: string;
8
+ }
9
+ export declare function withColorScheme<P>(Component: ComponentType<P>): FC<P & ColorSchemeProps>;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { useThemes } from '../../theme/hooks/useThemes.js';
3
+ import { useColorScheme } from '../hooks/useColorScheme.js';
4
+ import { ColorSchemeProvider } from '../providers/ColorSchemeProvider.js';
5
+
6
+ function withColorScheme(Component) {
7
+ const Wrapper = ({ colorScheme: colorSchemeName, ...props }) => {
8
+ const { findColorScheme } = useThemes();
9
+ const { colorScheme: currentColorScheme } = useColorScheme();
10
+ const newColorScheme = colorSchemeName && findColorScheme(colorSchemeName);
11
+ if (newColorScheme && newColorScheme !== currentColorScheme) {
12
+ return (React.createElement(ColorSchemeProvider, { colorScheme: colorSchemeName },
13
+ React.createElement(Component, Object.assign({ colorSchemeClassName: newColorScheme.getClassName() }, props))));
14
+ }
15
+ return React.createElement(Component, Object.assign({}, props));
16
+ };
17
+ Wrapper.displayName = `withColorScheme(${Component.displayName})`;
18
+ return Wrapper;
19
+ }
20
+
21
+ export { withColorScheme };
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aENvbG9yU2NoZW1lLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29sb3Itc2NoZW1lL2hvY3Mvd2l0aENvbG9yU2NoZW1lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lTmFtZSB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50VHlwZSwgRkMgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZVRoZW1lcyB9IGZyb20gJy4uLy4uL3RoZW1lL2hvb2tzL3VzZVRoZW1lcyc7XG5pbXBvcnQgeyB1c2VDb2xvclNjaGVtZSB9IGZyb20gJy4uL2hvb2tzL3VzZUNvbG9yU2NoZW1lJztcbmltcG9ydCB7IENvbG9yU2NoZW1lUHJvdmlkZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvQ29sb3JTY2hlbWVQcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JTY2hlbWVQcm9wcyB7XG4gICAgY29sb3JTY2hlbWU6IENvbG9yU2NoZW1lTmFtZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoQ29sb3JTY2hlbWVQcm9wcyB7XG4gICAgY29sb3JTY2hlbWVDbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ29sb3JTY2hlbWU8UD4oQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFA+KTogRkM8UCAmIENvbG9yU2NoZW1lUHJvcHM+IHtcbiAgICBjb25zdCBXcmFwcGVyOiBGQzxQICYgQ29sb3JTY2hlbWVQcm9wcz4gPSAoeyBjb2xvclNjaGVtZTogY29sb3JTY2hlbWVOYW1lLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZmluZENvbG9yU2NoZW1lIH0gPSB1c2VUaGVtZXMoKTtcbiAgICAgICAgY29uc3QgeyBjb2xvclNjaGVtZTogY3VycmVudENvbG9yU2NoZW1lIH0gPSB1c2VDb2xvclNjaGVtZSgpO1xuXG4gICAgICAgIGNvbnN0IG5ld0NvbG9yU2NoZW1lID0gY29sb3JTY2hlbWVOYW1lICYmIGZpbmRDb2xvclNjaGVtZShjb2xvclNjaGVtZU5hbWUpO1xuXG4gICAgICAgIGlmIChuZXdDb2xvclNjaGVtZSAmJiBuZXdDb2xvclNjaGVtZSAhPT0gY3VycmVudENvbG9yU2NoZW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxDb2xvclNjaGVtZVByb3ZpZGVyIGNvbG9yU2NoZW1lPXtjb2xvclNjaGVtZU5hbWV9PlxuICAgICAgICAgICAgICAgICAgICA8Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvclNjaGVtZUNsYXNzTmFtZT17bmV3Q29sb3JTY2hlbWUuZ2V0Q2xhc3NOYW1lKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uKHByb3BzIGFzIFApfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29sb3JTY2hlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnQgey4uLihwcm9wcyBhcyBQKX0gLz47XG4gICAgfTtcblxuICAgIFdyYXBwZXIuZGlzcGxheU5hbWUgPSBgd2l0aENvbG9yU2NoZW1lKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lfSlgO1xuICAgIHJldHVybiBXcmFwcGVyO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O1NBZWdCLGVBQWUsQ0FBSSxTQUEyQjtJQUMxRCxNQUFNLE9BQU8sR0FBNkIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLEVBQUU7UUFDakYsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUU3RCxNQUFNLGNBQWMsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNFLElBQUksY0FBYyxJQUFJLGNBQWMsS0FBSyxrQkFBa0IsRUFBRTtZQUN6RCxRQUNJLG9CQUFDLG1CQUFtQixJQUFDLFdBQVcsRUFBRSxlQUFlO2dCQUM3QyxvQkFBQyxTQUFTLGtCQUNOLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFDOUMsS0FBVyxFQUNsQixDQUNnQixFQUN4QjtTQUNMO1FBQ0QsT0FBTyxvQkFBQyxTQUFTLG9CQUFNLEtBQVcsRUFBSSxDQUFDO0tBQzFDLENBQUM7SUFFRixPQUFPLENBQUMsV0FBVyxHQUFHLG1CQUFtQixTQUFTLENBQUMsV0FBVyxHQUFHLENBQUM7SUFDbEUsT0FBTyxPQUFPLENBQUM7QUFDbkI7Ozs7In0=
@@ -0,0 +1,2 @@
1
+ import { ColorSchemeContextState } from '../providers/ColorSchemeProvider';
2
+ export declare const useColorScheme: () => ColorSchemeContextState;
@@ -0,0 +1,13 @@
1
+ import { useContext } from 'react';
2
+ import { ColorSchemeContext } from '../providers/ColorSchemeProvider.js';
3
+
4
+ const useColorScheme = () => {
5
+ const { colorScheme } = useContext(ColorSchemeContext);
6
+ if (!colorScheme) {
7
+ throw new Error('useColorScheme() must be used within a ColorSchemeProvider');
8
+ }
9
+ return { colorScheme };
10
+ };
11
+
12
+ export { useColorScheme };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ29sb3JTY2hlbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xvci1zY2hlbWUvaG9va3MvdXNlQ29sb3JTY2hlbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgQ29sb3JTY2hlbWVDb250ZXh0LCBDb2xvclNjaGVtZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9Db2xvclNjaGVtZVByb3ZpZGVyJztcblxuZXhwb3J0IGNvbnN0IHVzZUNvbG9yU2NoZW1lID0gKCk6IENvbG9yU2NoZW1lQ29udGV4dFN0YXRlID0+IHtcbiAgICBjb25zdCB7IGNvbG9yU2NoZW1lIH0gPSB1c2VDb250ZXh0KENvbG9yU2NoZW1lQ29udGV4dCk7XG4gICAgaWYgKCFjb2xvclNjaGVtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUNvbG9yU2NoZW1lKCkgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIENvbG9yU2NoZW1lUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY29sb3JTY2hlbWUgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BSWEsY0FBYyxHQUFHO0lBQzFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0tBQ2pGO0lBQ0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQzNCOzs7OyJ9
@@ -0,0 +1,9 @@
1
+ export type { ColorSchemeInterface } from './types';
2
+ export { colorSchemes } from './colorSchemes';
3
+ export { COLOR_SCHEME_DEFAULT } from './constants';
4
+ export { ColorScheme } from './classes/ColorScheme';
5
+ export type { ColorSchemeProviderProps } from './providers/ColorSchemeProvider';
6
+ export { ColorSchemeProvider } from './providers/ColorSchemeProvider';
7
+ export { useColorScheme } from './hooks/useColorScheme';
8
+ export type { ColorSchemeProps, WithColorSchemeProps } from './hocs/withColorScheme';
9
+ export { withColorScheme } from './hocs/withColorScheme';
@@ -0,0 +1,7 @@
1
+ export { colorSchemes } from './colorSchemes.js';
2
+ export { COLOR_SCHEME_DEFAULT } from './constants.js';
3
+ export { ColorScheme } from './classes/ColorScheme.js';
4
+ export { ColorSchemeProvider } from './providers/ColorSchemeProvider.js';
5
+ export { useColorScheme } from './hooks/useColorScheme.js';
6
+ export { withColorScheme } from './hocs/withColorScheme.js';
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OzsifQ==
@@ -0,0 +1,12 @@
1
+ import type { ColorSchemeName } from '@preply/ds-core';
2
+ import React from 'react';
3
+ import type { ColorSchemeInterface } from '../types';
4
+ export declare const SCHEME_DEFAULT = "base";
5
+ export interface ColorSchemeProviderProps {
6
+ colorScheme: ColorSchemeName;
7
+ }
8
+ export interface ColorSchemeContextState {
9
+ colorScheme: ColorSchemeInterface;
10
+ }
11
+ export declare const ColorSchemeContext: React.Context<ColorSchemeContextState>;
12
+ export declare const ColorSchemeProvider: React.FC<ColorSchemeProviderProps>;
@@ -0,0 +1,13 @@
1
+ import React, { createContext } from 'react';
2
+ import { useThemes } from '../../theme/hooks/useThemes.js';
3
+
4
+ const SCHEME_DEFAULT = 'base';
5
+ const ColorSchemeContext = createContext({});
6
+ const ColorSchemeProvider = ({ colorScheme: colorSchemeName, children, }) => {
7
+ const { findColorScheme } = useThemes();
8
+ const colorScheme = findColorScheme(colorSchemeName);
9
+ return (React.createElement(ColorSchemeContext.Provider, { value: { colorScheme } }, children));
10
+ };
11
+
12
+ export { ColorSchemeContext, ColorSchemeProvider, SCHEME_DEFAULT };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3JTY2hlbWVQcm92aWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbG9yLXNjaGVtZS9wcm92aWRlcnMvQ29sb3JTY2hlbWVQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xvclNjaGVtZU5hbWUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZVRoZW1lcyB9IGZyb20gJy4uLy4uL3RoZW1lL2hvb2tzL3VzZVRoZW1lcyc7XG5pbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lSW50ZXJmYWNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgU0NIRU1FX0RFRkFVTFQgPSAnYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JTY2hlbWVQcm92aWRlclByb3BzIHtcbiAgICBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWVOYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yU2NoZW1lQ29udGV4dFN0YXRlIHtcbiAgICBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWVJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBjb25zdCBDb2xvclNjaGVtZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PENvbG9yU2NoZW1lQ29udGV4dFN0YXRlPihcbiAgICB7fSBhcyBDb2xvclNjaGVtZUNvbnRleHRTdGF0ZSxcbik7XG5cbmV4cG9ydCBjb25zdCBDb2xvclNjaGVtZVByb3ZpZGVyOiBSZWFjdC5GQzxDb2xvclNjaGVtZVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgICBjb2xvclNjaGVtZTogY29sb3JTY2hlbWVOYW1lLFxuICAgIGNoaWxkcmVuLFxufSkgPT4ge1xuICAgIGNvbnN0IHsgZmluZENvbG9yU2NoZW1lIH0gPSB1c2VUaGVtZXMoKTtcblxuICAgIGNvbnN0IGNvbG9yU2NoZW1lID0gZmluZENvbG9yU2NoZW1lKGNvbG9yU2NoZW1lTmFtZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Q29sb3JTY2hlbWVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IGNvbG9yU2NoZW1lIH19PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0NvbG9yU2NoZW1lQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFNYSxjQUFjLEdBQUcsT0FBTztNQVV4QixrQkFBa0IsR0FBRyxhQUFhLENBQzNDLEVBQTZCLEVBQy9CO01BRVcsbUJBQW1CLEdBQXVDLENBQUMsRUFDcEUsV0FBVyxFQUFFLGVBQWUsRUFDNUIsUUFBUSxHQUNYO0lBQ0csTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRXhDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVyRCxRQUNJLG9CQUFDLGtCQUFrQixDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFDOUMsUUFBUSxDQUNpQixFQUNoQztBQUNOOzs7OyJ9
@@ -0,0 +1,15 @@
1
+ :global(.ds-scheme--base) {
2
+ --scheme-name: 'base';
3
+ }
4
+
5
+ :global(.ds-scheme--highlight) {
6
+ --scheme-name: 'highlight';
7
+ }
8
+
9
+ :global(.ds-scheme--banner) {
10
+ --scheme-name: 'banner';
11
+ }
12
+
13
+ :global(.ds-scheme--invert) {
14
+ --scheme-name: 'invert';
15
+ }
@@ -0,0 +1,9 @@
1
+ import styleInject from '../../external/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".ds-scheme--base {\n --scheme-name: 'base';\n}\n.ds-scheme--highlight {\n --scheme-name: 'highlight';\n}\n.ds-scheme--banner {\n --scheme-name: 'banner';\n}\n.ds-scheme--invert {\n --scheme-name: 'invert';\n}\n";
4
+ var index_module = {};
5
+ var stylesheet=".ds-scheme--base {\n --scheme-name: 'base';\n}\n.ds-scheme--highlight {\n --scheme-name: 'highlight';\n}\n.ds-scheme--banner {\n --scheme-name: 'banner';\n}\n.ds-scheme--invert {\n --scheme-name: 'invert';\n}\n";
6
+ styleInject(css_248z);
7
+
8
+ export { index_module as default, stylesheet };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbbnVsbF0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixxREFBeUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7In0=
@@ -0,0 +1,11 @@
1
+ @color-schemes: base, tutorial, banner, dark;
2
+
3
+ // DES-23: output variables instead
4
+ .color-schemes() {
5
+ each(@color-schemes, #(@scheme) {
6
+ &--scheme-@{scheme} {
7
+ .color('scheme', @scheme);
8
+ .bg-color('scheme', @scheme);
9
+ }
10
+ });
11
+ }
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../external/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "";
4
+ var stylesheet="";
5
+ styleInject(css_248z);
6
+
7
+ export { css_248z as default, stylesheet };
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbbnVsbF0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixxREFBeUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyJ9
@@ -0,0 +1,5 @@
1
+ import { ColorSchemeName } from '@preply/ds-core';
2
+ export interface ColorSchemeInterface {
3
+ name: ColorSchemeName;
4
+ getClassName(): string;
5
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,11 @@
1
+ import type { CSSModule } from './types';
2
+ declare type Concatenated = Array<string | undefined>;
3
+ declare type Conditional = {
4
+ if: boolean | undefined;
5
+ then: string | Concatenated | undefined;
6
+ };
7
+ declare type ClassName = Concatenated | Conditional | string | undefined;
8
+ export declare const safeClassName: (cssModule: CSSModule, name: string) => string;
9
+ export declare const localClasses: (cssModule: CSSModule, namespace: string, locals?: ClassName[]) => string[];
10
+ export declare const globalClasses: (globals?: ClassName[]) => string[];
11
+ export {};
@@ -0,0 +1,26 @@
1
+ const fromArray = (classname) => !classname.includes(undefined) ? classname.join('-') : undefined;
2
+ const fromObject = (classname, recurse) => classname.if ? recurse(classname.then) : undefined;
3
+ const conditionalClass = (classname) => {
4
+ if (Array.isArray(classname)) {
5
+ return fromArray(classname);
6
+ }
7
+ if (typeof classname === 'object') {
8
+ return fromObject(classname, conditionalClass);
9
+ }
10
+ return classname;
11
+ };
12
+ const safeClassName = (cssModule, name) => {
13
+ if (!cssModule[name]) {
14
+ throw new Error(`Unknow classname ${name}`);
15
+ }
16
+ return cssModule[name];
17
+ };
18
+ const localClasses = (cssModule, namespace, locals = []) => locals
19
+ .map(part => conditionalClass(part))
20
+ .filter(classname => classname)
21
+ .map(classname => `${namespace}--${classname}`)
22
+ .map(classname => safeClassName(cssModule, classname));
23
+ const globalClasses = (globals = []) => globals.map(part => conditionalClass(part)).filter(classname => classname);
24
+
25
+ export { globalClasses, localClasses, safeClassName };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jc3MtbW9kdWxlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTTW9kdWxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgQ29uY2F0ZW5hdGVkID0gQXJyYXk8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbnR5cGUgQ29uZGl0aW9uYWwgPSB7XG4gICAgaWY6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgdGhlbjogc3RyaW5nIHwgQ29uY2F0ZW5hdGVkIHwgdW5kZWZpbmVkO1xufTtcbnR5cGUgQ2xhc3NOYW1lID0gQ29uY2F0ZW5hdGVkIHwgQ29uZGl0aW9uYWwgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IGZyb21BcnJheSA9IChjbGFzc25hbWU6IENvbmNhdGVuYXRlZCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICAgICFjbGFzc25hbWUuaW5jbHVkZXModW5kZWZpbmVkKSA/IGNsYXNzbmFtZS5qb2luKCctJykgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IGZyb21PYmplY3QgPSAoY2xhc3NuYW1lOiBDb25kaXRpb25hbCwgcmVjdXJzZTogdHlwZW9mIGNvbmRpdGlvbmFsQ2xhc3MpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgICBjbGFzc25hbWUuaWYgPyByZWN1cnNlKGNsYXNzbmFtZS50aGVuKSA6IHVuZGVmaW5lZDtcblxuY29uc3QgY29uZGl0aW9uYWxDbGFzcyA9IChjbGFzc25hbWU6IENsYXNzTmFtZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xhc3NuYW1lKSkge1xuICAgICAgICByZXR1cm4gZnJvbUFycmF5KGNsYXNzbmFtZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY2xhc3NuYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZnJvbU9iamVjdChjbGFzc25hbWUsIGNvbmRpdGlvbmFsQ2xhc3MpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NuYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IHNhZmVDbGFzc05hbWUgPSAoY3NzTW9kdWxlOiBDU1NNb2R1bGUsIG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFjc3NNb2R1bGVbbmFtZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3cgY2xhc3NuYW1lICR7bmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGNzc01vZHVsZVtuYW1lXTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2NhbENsYXNzZXMgPSAoXG4gICAgY3NzTW9kdWxlOiBDU1NNb2R1bGUsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgbG9jYWxzOiBDbGFzc05hbWVbXSA9IFtdLFxuKTogc3RyaW5nW10gPT5cbiAgICBsb2NhbHNcbiAgICAgICAgLm1hcChwYXJ0ID0+IGNvbmRpdGlvbmFsQ2xhc3MocGFydCkpXG4gICAgICAgIC5maWx0ZXIoY2xhc3NuYW1lID0+IGNsYXNzbmFtZSlcbiAgICAgICAgLm1hcChjbGFzc25hbWUgPT4gYCR7bmFtZXNwYWNlfS0tJHtjbGFzc25hbWV9YClcbiAgICAgICAgLm1hcChjbGFzc25hbWUgPT4gc2FmZUNsYXNzTmFtZShjc3NNb2R1bGUsIGNsYXNzbmFtZSkpO1xuXG5leHBvcnQgY29uc3QgZ2xvYmFsQ2xhc3NlcyA9IChnbG9iYWxzOiBDbGFzc05hbWVbXSA9IFtdKTogc3RyaW5nW10gPT5cbiAgICBnbG9iYWxzLm1hcChwYXJ0ID0+IGNvbmRpdGlvbmFsQ2xhc3MocGFydCkpLmZpbHRlcihjbGFzc25hbWUgPT4gY2xhc3NuYW1lKSBhcyBzdHJpbmdbXTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQXVCLEtBQ3RDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUVyRSxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQXNCLEVBQUUsT0FBZ0MsS0FDeEUsU0FBUyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUV2RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBb0I7SUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzFCLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxVQUFVLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7S0FDbEQ7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7TUFFVyxhQUFhLEdBQUcsQ0FBQyxTQUFvQixFQUFFLElBQVk7SUFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsRUFBRTtNQUVXLFlBQVksR0FBRyxDQUN4QixTQUFvQixFQUNwQixTQUFpQixFQUNqQixTQUFzQixFQUFFLEtBRXhCLE1BQU07S0FDRCxHQUFHLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25DLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO0tBQzlCLEdBQUcsQ0FBQyxTQUFTLElBQUksR0FBRyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7S0FDOUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFO01BRWxELGFBQWEsR0FBRyxDQUFDLFVBQXVCLEVBQUUsS0FDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLFNBQVM7Ozs7In0=
@@ -0,0 +1,3 @@
1
+ export declare type CSSModule = {
2
+ [key: string]: string;
3
+ };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,6 @@
1
+ export declare const PROPS_EXTERNAL_REL: {
2
+ rel: string;
3
+ };
4
+ export declare const PROPS_EXTERNAL_TARGET: {
5
+ target: string;
6
+ };
@@ -0,0 +1,5 @@
1
+ const PROPS_EXTERNAL_REL = { rel: 'noreferrer noopener' };
2
+ const PROPS_EXTERNAL_TARGET = { target: '_blank' };
3
+
4
+ export { PROPS_EXTERNAL_REL, PROPS_EXTERNAL_TARGET };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tL3Byb3BzL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPUFNfRVhURVJOQUxfUkVMID0geyByZWw6ICdub3JlZmVycmVyIG5vb3BlbmVyJyB9O1xuZXhwb3J0IGNvbnN0IFBST1BTX0VYVEVSTkFMX1RBUkdFVCA9IHsgdGFyZ2V0OiAnX2JsYW5rJyB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUFhLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixHQUFHO01BQ3BELHFCQUFxQixHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVE7Ozs7In0=
@@ -0,0 +1,4 @@
1
+ import type { Dataset } from '@preply/ds-core';
2
+ import type { AnchorProps } from '../../types';
3
+ export declare const getDatasetProps: (dataset?: Dataset | undefined) => Dataset;
4
+ export declare const getExternalUrlProps: (url: string, opensInNewTab?: boolean | undefined) => AnchorProps;
@@ -0,0 +1,22 @@
1
+ import { isExternalUrl } from '../../url/index.js';
2
+ import { PROPS_EXTERNAL_REL, PROPS_EXTERNAL_TARGET } from './constants.js';
3
+
4
+ const getDatasetProps = (dataset) => {
5
+ if (!dataset) {
6
+ return {};
7
+ }
8
+ return Object.keys(dataset).reduce((acc, key) => {
9
+ acc[`data-${key}`] = dataset[key];
10
+ return acc;
11
+ }, {});
12
+ };
13
+ const getExternalUrlProps = (url, opensInNewTab) => {
14
+ const isExternal = isExternalUrl(url);
15
+ const propsRel = isExternal ? PROPS_EXTERNAL_REL : {};
16
+ const useExternalTarget = opensInNewTab === undefined ? isExternal : opensInNewTab;
17
+ const propsTarget = useExternalTarget ? PROPS_EXTERNAL_TARGET : {};
18
+ return { ...propsRel, ...propsTarget };
19
+ };
20
+
21
+ export { getDatasetProps, getExternalUrlProps };
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vcHJvcHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhc2V0IH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBBbmNob3JQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGlzRXh0ZXJuYWxVcmwgfSBmcm9tICcuLi8uLi91cmwnO1xuXG5pbXBvcnQgeyBQUk9QU19FWFRFUk5BTF9SRUwsIFBST1BTX0VYVEVSTkFMX1RBUkdFVCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGdldERhdGFzZXRQcm9wcyA9IChkYXRhc2V0PzogRGF0YXNldCk6IERhdGFzZXQgPT4ge1xuICAgIGlmICghZGF0YXNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhc2V0KS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGFjY1tgZGF0YS0ke2tleX1gXSA9IGRhdGFzZXRba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBEYXRhc2V0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFeHRlcm5hbFVybFByb3BzID0gKHVybDogc3RyaW5nLCBvcGVuc0luTmV3VGFiPzogYm9vbGVhbik6IEFuY2hvclByb3BzID0+IHtcbiAgICBjb25zdCBpc0V4dGVybmFsID0gaXNFeHRlcm5hbFVybCh1cmwpO1xuICAgIGNvbnN0IHByb3BzUmVsID0gaXNFeHRlcm5hbCA/IFBST1BTX0VYVEVSTkFMX1JFTCA6IHt9O1xuXG4gICAgY29uc3QgdXNlRXh0ZXJuYWxUYXJnZXQgPSBvcGVuc0luTmV3VGFiID09PSB1bmRlZmluZWQgPyBpc0V4dGVybmFsIDogb3BlbnNJbk5ld1RhYjtcbiAgICBjb25zdCBwcm9wc1RhcmdldCA9IHVzZUV4dGVybmFsVGFyZ2V0ID8gUFJPUFNfRVhURVJOQUxfVEFSR0VUIDoge307XG5cbiAgICByZXR1cm4geyAuLi5wcm9wc1JlbCwgLi4ucHJvcHNUYXJnZXQgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BT2EsZUFBZSxHQUFHLENBQUMsT0FBaUI7SUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUc7UUFDeEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxHQUFHLENBQUM7S0FDZCxFQUFFLEVBQWEsQ0FBQyxDQUFDO0FBQ3RCLEVBQUU7TUFFVyxtQkFBbUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxhQUF1QjtJQUNwRSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxHQUFHLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUV0RCxNQUFNLGlCQUFpQixHQUFHLGFBQWEsS0FBSyxTQUFTLEdBQUcsVUFBVSxHQUFHLGFBQWEsQ0FBQztJQUNuRixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFFbkUsT0FBTyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDM0M7Ozs7In0=
@@ -0,0 +1,29 @@
1
+ function styleInject(css, ref) {
2
+ if ( ref === void 0 ) ref = {};
3
+ var insertAt = ref.insertAt;
4
+
5
+ if (!css || typeof document === 'undefined') { return; }
6
+
7
+ var head = document.head || document.getElementsByTagName('head')[0];
8
+ var style = document.createElement('style');
9
+ style.type = 'text/css';
10
+
11
+ if (insertAt === 'top') {
12
+ if (head.firstChild) {
13
+ head.insertBefore(style, head.firstChild);
14
+ } else {
15
+ head.appendChild(style);
16
+ }
17
+ } else {
18
+ head.appendChild(style);
19
+ }
20
+
21
+ if (style.styleSheet) {
22
+ style.styleSheet.cssText = css;
23
+ } else {
24
+ style.appendChild(document.createTextNode(css));
25
+ }
26
+ }
27
+
28
+ export { styleInject as default };
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtaW5qZWN0LmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtaW5qZWN0L2Rpc3Qvc3R5bGUtaW5qZWN0LmVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHN0eWxlSW5qZWN0KGNzcywgcmVmKSB7XG4gIGlmICggcmVmID09PSB2b2lkIDAgKSByZWYgPSB7fTtcbiAgdmFyIGluc2VydEF0ID0gcmVmLmluc2VydEF0O1xuXG4gIGlmICghY3NzIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuOyB9XG5cbiAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuXG4gIGlmIChpbnNlcnRBdCA9PT0gJ3RvcCcpIHtcbiAgICBpZiAoaGVhZC5maXJzdENoaWxkKSB7XG4gICAgICBoZWFkLmluc2VydEJlZm9yZShzdHlsZSwgaGVhZC5maXJzdENoaWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICB9XG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R5bGVJbmplY3Q7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUMvQixFQUFFLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDakMsRUFBRSxJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO0FBQzlCO0FBQ0EsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRTtBQUMxRDtBQUNBLEVBQUUsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkUsRUFBRSxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7QUFDMUI7QUFDQSxFQUFFLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRTtBQUMxQixJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtBQUN6QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNoRCxLQUFLLE1BQU07QUFDWCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUIsS0FBSztBQUNMLEdBQUcsTUFBTTtBQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtBQUN4QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUNuQyxHQUFHLE1BQU07QUFDVCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BELEdBQUc7QUFDSDs7OzsifQ==
@@ -0,0 +1,10 @@
1
+ export { VERSION } from './version';
2
+ export * from './color-scheme';
3
+ export * from './css-module';
4
+ export * from './dom/props';
5
+ export * from './keyboard';
6
+ export * from './layout';
7
+ export * from './location';
8
+ export * from './theme';
9
+ export * from './types';
10
+ export * from './url';
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ export { VERSION } from './version.js';
2
+ export { globalClasses, localClasses, safeClassName } from './css-module/index.js';
3
+ export { getDatasetProps, getExternalUrlProps } from './dom/props/index.js';
4
+ export { mapEdgeKeyToStandard } from './keyboard/index.js';
5
+ export { currentHref, currentProtocol } from './location/index.js';
6
+ export { isExternalUrl } from './url/index.js';
7
+ export { colorSchemes } from './color-scheme/colorSchemes.js';
8
+ export { COLOR_SCHEME_DEFAULT } from './color-scheme/constants.js';
9
+ export { ColorScheme } from './color-scheme/classes/ColorScheme.js';
10
+ export { ColorSchemeProvider } from './color-scheme/providers/ColorSchemeProvider.js';
11
+ export { useColorScheme } from './color-scheme/hooks/useColorScheme.js';
12
+ export { withColorScheme } from './color-scheme/hocs/withColorScheme.js';
13
+ export { useLayoutClassNames } from './layout/hooks/useLayoutClassNames.js';
14
+ export { useLayoutFlexClassNames } from './layout/hooks/useLayoutFlexClassNames.js';
15
+ export { useLayoutGridClassNames } from './layout/hooks/useLayoutGridClassNames.js';
16
+ export { useLayoutStyles } from './layout/hooks/useLayoutStyles.js';
17
+ export { useLayoutGridStyles } from './layout/hooks/useLayoutGridStyles.js';
18
+ export { Theme } from './theme/classes/Theme.js';
19
+ export { ThemesProvider } from './theme/providers/ThemesProvider.js';
20
+ export { ThemeProvider } from './theme/providers/ThemeProvider.js';
21
+ export { useTheme } from './theme/hooks/useTheme.js';
22
+ export { useThemes } from './theme/hooks/useThemes.js';
23
+ export { useSetTheme } from './theme/hooks/useSetTheme.js';
24
+ export { withTheme } from './theme/hocs/withTheme.js';
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
@@ -0,0 +1 @@
1
+ export declare const mapEdgeKeyToStandard: (key: string) => string;
@@ -0,0 +1,21 @@
1
+ const MAP_EDGE_KEY_TO_STANDARD = {
2
+ Win: 'Meta',
3
+ Scroll: 'ScrollLock',
4
+ Spacebar: ' ',
5
+ Down: 'ArrowDown',
6
+ Left: 'ArrowLeft',
7
+ Right: 'ArrowRight',
8
+ Up: 'ArrowUp',
9
+ Del: 'Delete',
10
+ Apps: 'ContextMenu',
11
+ Esc: 'Escape',
12
+ Multiply: '*',
13
+ Add: '+',
14
+ Subtract: '-',
15
+ Decimal: '.',
16
+ Divide: '/',
17
+ };
18
+ const mapEdgeKeyToStandard = (key) => MAP_EDGE_KEY_TO_STANDARD[key] || key;
19
+
20
+ export { mapEdgeKeyToStandard };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlib2FyZC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEtleU1hcCA9IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbmNvbnN0IE1BUF9FREdFX0tFWV9UT19TVEFOREFSRDogS2V5TWFwID0ge1xuICAgIFdpbjogJ01ldGEnLFxuICAgIFNjcm9sbDogJ1Njcm9sbExvY2snLFxuICAgIFNwYWNlYmFyOiAnICcsXG4gICAgRG93bjogJ0Fycm93RG93bicsXG4gICAgTGVmdDogJ0Fycm93TGVmdCcsXG4gICAgUmlnaHQ6ICdBcnJvd1JpZ2h0JyxcbiAgICBVcDogJ0Fycm93VXAnLFxuICAgIERlbDogJ0RlbGV0ZScsXG4gICAgQXBwczogJ0NvbnRleHRNZW51JyxcbiAgICBFc2M6ICdFc2NhcGUnLFxuICAgIE11bHRpcGx5OiAnKicsXG4gICAgQWRkOiAnKycsXG4gICAgU3VidHJhY3Q6ICctJyxcbiAgICBEZWNpbWFsOiAnLicsXG4gICAgRGl2aWRlOiAnLycsXG59O1xuXG5leHBvcnQgY29uc3QgbWFwRWRnZUtleVRvU3RhbmRhcmQgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4gTUFQX0VER0VfS0VZX1RPX1NUQU5EQVJEW2tleV0gfHwga2V5O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sd0JBQXdCLEdBQVc7SUFDckMsR0FBRyxFQUFFLE1BQU07SUFDWCxNQUFNLEVBQUUsWUFBWTtJQUNwQixRQUFRLEVBQUUsR0FBRztJQUNiLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxZQUFZO0lBQ25CLEVBQUUsRUFBRSxTQUFTO0lBQ2IsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsYUFBYTtJQUNuQixHQUFHLEVBQUUsUUFBUTtJQUNiLFFBQVEsRUFBRSxHQUFHO0lBQ2IsR0FBRyxFQUFFLEdBQUc7SUFDUixRQUFRLEVBQUUsR0FBRztJQUNiLE9BQU8sRUFBRSxHQUFHO0lBQ1osTUFBTSxFQUFFLEdBQUc7Q0FDZCxDQUFDO01BRVcsb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEtBQWEsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUk7Ozs7In0=
@@ -0,0 +1,4 @@
1
+ import type { OptionalLayoutProps } from '@preply/ds-core';
2
+ declare type Hook = (props?: OptionalLayoutProps) => string[];
3
+ export declare const useLayoutClassNames: Hook;
4
+ export {};
@@ -0,0 +1,12 @@
1
+ import { useLayoutFlexClassNames } from './useLayoutFlexClassNames.js';
2
+ import { useLayoutGridClassNames } from './useLayoutGridClassNames.js';
3
+
4
+ const useLayoutClassNames = props => {
5
+ var _a, _b;
6
+ const gridClassNames = useLayoutGridClassNames(props === null || props === void 0 ? void 0 : props.layout, (_a = props) === null || _a === void 0 ? void 0 : _a.grid);
7
+ const flexClassNames = useLayoutFlexClassNames(props === null || props === void 0 ? void 0 : props.layout, (_b = props) === null || _b === void 0 ? void 0 : _b.flex);
8
+ return [...gridClassNames, ...flexClassNames];
9
+ };
10
+
11
+ export { useLayoutClassNames };
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0Q2xhc3NOYW1lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheW91dC9ob29rcy91c2VMYXlvdXRDbGFzc05hbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBPcHRpb25hbExheW91dEZsZXhQcm9wcyxcbiAgICBPcHRpb25hbExheW91dEdyaWRQcm9wcyxcbiAgICBPcHRpb25hbExheW91dFByb3BzLFxufSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuXG5pbXBvcnQgeyB1c2VMYXlvdXRGbGV4Q2xhc3NOYW1lcyB9IGZyb20gJy4vdXNlTGF5b3V0RmxleENsYXNzTmFtZXMnO1xuaW1wb3J0IHsgdXNlTGF5b3V0R3JpZENsYXNzTmFtZXMgfSBmcm9tICcuL3VzZUxheW91dEdyaWRDbGFzc05hbWVzJztcblxudHlwZSBIb29rID0gKHByb3BzPzogT3B0aW9uYWxMYXlvdXRQcm9wcykgPT4gc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRDbGFzc05hbWVzOiBIb29rID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdyaWRDbGFzc05hbWVzID0gdXNlTGF5b3V0R3JpZENsYXNzTmFtZXMoXG4gICAgICAgIHByb3BzPy5sYXlvdXQsXG4gICAgICAgIChwcm9wcyBhcyBPcHRpb25hbExheW91dEdyaWRQcm9wcyk/LmdyaWQsXG4gICAgKTtcbiAgICBjb25zdCBmbGV4Q2xhc3NOYW1lcyA9IHVzZUxheW91dEZsZXhDbGFzc05hbWVzKFxuICAgICAgICBwcm9wcz8ubGF5b3V0LFxuICAgICAgICAocHJvcHMgYXMgT3B0aW9uYWxMYXlvdXRGbGV4UHJvcHMpPy5mbGV4LFxuICAgICk7XG4gICAgcmV0dXJuIFsuLi5ncmlkQ2xhc3NOYW1lcywgLi4uZmxleENsYXNzTmFtZXNdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFXYSxtQkFBbUIsR0FBUyxLQUFLOztJQUMxQyxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FDMUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sUUFDWixLQUFpQywwQ0FBRSxJQUFJLENBQzNDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FDMUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sUUFDWixLQUFpQywwQ0FBRSxJQUFJLENBQzNDLENBQUM7SUFDRixPQUFPLENBQUMsR0FBRyxjQUFjLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztBQUNsRDs7OzsifQ==
@@ -0,0 +1,4 @@
1
+ import type { LayoutFlexProps, LayoutType } from '@preply/ds-core';
2
+ declare type Hook = (layout?: LayoutType, props?: LayoutFlexProps) => string[];
3
+ export declare const useLayoutFlexClassNames: Hook;
4
+ export {};
@@ -0,0 +1,24 @@
1
+ import { LAYOUT_GAP_DEFAULT } from '@preply/ds-core';
2
+ import { safeClassName, localClasses } from '../../css-module/index.js';
3
+ import styles from '../style/index.module.less.js';
4
+
5
+ const LAYOUT_FLEX = 'LayoutFlex';
6
+ const useLayoutFlexClassNames = (layout, props) => {
7
+ const { gap = LAYOUT_GAP_DEFAULT, nowrap, column, reverse, justifyContent, alignItems, inline, } = props || {};
8
+ return layout === 'flex'
9
+ ? [
10
+ safeClassName(styles, LAYOUT_FLEX),
11
+ ...localClasses(styles, LAYOUT_FLEX, [
12
+ ['gap', gap],
13
+ [inline ? 'inline' : undefined],
14
+ [nowrap ? 'nowrap' : undefined],
15
+ [column ? 'column' : 'row', reverse ? 'rev' : 'fwd'],
16
+ ['justify-content', justifyContent],
17
+ ['align-items', alignItems],
18
+ ]),
19
+ ]
20
+ : [];
21
+ };
22
+
23
+ export { useLayoutFlexClassNames };
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0RmxleENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRGbGV4UHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgTEFZT1VUX0dBUF9ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgbG9jYWxDbGFzc2VzLCBzYWZlQ2xhc3NOYW1lIH0gZnJvbSAnLi4vLi4vY3NzLW1vZHVsZSc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3N0eWxlL2luZGV4Lm1vZHVsZS5sZXNzJztcblxuY29uc3QgTEFZT1VUX0ZMRVggPSAnTGF5b3V0RmxleCc7XG5cbnR5cGUgSG9vayA9IChsYXlvdXQ/OiBMYXlvdXRUeXBlLCBwcm9wcz86IExheW91dEZsZXhQcm9wcykgPT4gc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRGbGV4Q2xhc3NOYW1lczogSG9vayA9IChsYXlvdXQsIHByb3BzKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBnYXAgPSBMQVlPVVRfR0FQX0RFRkFVTFQsXG4gICAgICAgIG5vd3JhcCxcbiAgICAgICAgY29sdW1uLFxuICAgICAgICByZXZlcnNlLFxuICAgICAgICBqdXN0aWZ5Q29udGVudCxcbiAgICAgICAgYWxpZ25JdGVtcyxcbiAgICAgICAgaW5saW5lLFxuICAgIH0gPSBwcm9wcyB8fCB7fTtcbiAgICByZXR1cm4gbGF5b3V0ID09PSAnZmxleCdcbiAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHNhZmVDbGFzc05hbWUoc3R5bGVzLCBMQVlPVVRfRkxFWCksXG4gICAgICAgICAgICAgIC4uLmxvY2FsQ2xhc3NlcyhzdHlsZXMsIExBWU9VVF9GTEVYLCBbXG4gICAgICAgICAgICAgICAgICBbJ2dhcCcsIGdhcF0sXG4gICAgICAgICAgICAgICAgICBbaW5saW5lID8gJ2lubGluZScgOiB1bmRlZmluZWRdLFxuICAgICAgICAgICAgICAgICAgW25vd3JhcCA/ICdub3dyYXAnIDogdW5kZWZpbmVkXSxcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW4gPyAnY29sdW1uJyA6ICdyb3cnLCByZXZlcnNlID8gJ3JldicgOiAnZndkJ10sXG4gICAgICAgICAgICAgICAgICBbJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50XSxcbiAgICAgICAgICAgICAgICAgIFsnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zXSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO01BSXBCLHVCQUF1QixHQUFTLENBQUMsTUFBTSxFQUFFLEtBQUs7SUFDdkQsTUFBTSxFQUNGLEdBQUcsR0FBRyxrQkFBa0IsRUFDeEIsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsY0FBYyxFQUNkLFVBQVUsRUFDVixNQUFNLEdBQ1QsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ2hCLE9BQU8sTUFBTSxLQUFLLE1BQU07VUFDbEI7WUFDSSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUNsQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO2dCQUNqQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7Z0JBQ1osQ0FBQyxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxHQUFHLEtBQUssRUFBRSxPQUFPLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDcEQsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUM7Z0JBQ25DLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQzthQUM5QixDQUFDO1NBQ0w7VUFDRCxFQUFFLENBQUM7QUFDYjs7OzsifQ==
@@ -0,0 +1,4 @@
1
+ import type { LayoutGridProps, LayoutType } from '@preply/ds-core';
2
+ declare type Hook = (layout?: LayoutType, props?: LayoutGridProps) => string[];
3
+ export declare const useLayoutGridClassNames: Hook;
4
+ export {};
@@ -0,0 +1,21 @@
1
+ import { LAYOUT_GAP_DEFAULT } from '@preply/ds-core';
2
+ import { safeClassName, localClasses } from '../../css-module/index.js';
3
+ import styles from '../style/index.module.less.js';
4
+
5
+ const LAYOUT_GRID = 'LayoutGrid';
6
+ const useLayoutGridClassNames = (layout, props) => {
7
+ const { gap = LAYOUT_GAP_DEFAULT, justifyContent, alignItems } = props || {};
8
+ return layout === 'grid'
9
+ ? [
10
+ safeClassName(styles, LAYOUT_GRID),
11
+ ...localClasses(styles, LAYOUT_GRID, [
12
+ ['gap', gap],
13
+ ['justify-content', justifyContent],
14
+ ['align-items', alignItems],
15
+ ]),
16
+ ]
17
+ : [];
18
+ };
19
+
20
+ export { useLayoutGridClassNames };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0R3JpZENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0R3JpZENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRHcmlkUHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgTEFZT1VUX0dBUF9ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgbG9jYWxDbGFzc2VzLCBzYWZlQ2xhc3NOYW1lIH0gZnJvbSAnLi4vLi4vY3NzLW1vZHVsZSc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3N0eWxlL2luZGV4Lm1vZHVsZS5sZXNzJztcblxuY29uc3QgTEFZT1VUX0dSSUQgPSAnTGF5b3V0R3JpZCc7XG5cbnR5cGUgSG9vayA9IChsYXlvdXQ/OiBMYXlvdXRUeXBlLCBwcm9wcz86IExheW91dEdyaWRQcm9wcykgPT4gc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRHcmlkQ2xhc3NOYW1lczogSG9vayA9IChsYXlvdXQsIHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBnYXAgPSBMQVlPVVRfR0FQX0RFRkFVTFQsIGp1c3RpZnlDb250ZW50LCBhbGlnbkl0ZW1zIH0gPSBwcm9wcyB8fCB7fTtcbiAgICByZXR1cm4gbGF5b3V0ID09PSAnZ3JpZCdcbiAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHNhZmVDbGFzc05hbWUoc3R5bGVzLCBMQVlPVVRfR1JJRCksXG4gICAgICAgICAgICAgIC4uLmxvY2FsQ2xhc3NlcyhzdHlsZXMsIExBWU9VVF9HUklELCBbXG4gICAgICAgICAgICAgICAgICBbJ2dhcCcsIGdhcF0sXG4gICAgICAgICAgICAgICAgICBbJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50XSxcbiAgICAgICAgICAgICAgICAgIFsnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zXSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO01BSXBCLHVCQUF1QixHQUFTLENBQUMsTUFBTSxFQUFFLEtBQUs7SUFDdkQsTUFBTSxFQUFFLEdBQUcsR0FBRyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxPQUFPLE1BQU0sS0FBSyxNQUFNO1VBQ2xCO1lBQ0ksYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDbEMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtnQkFDakMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO2dCQUNaLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO2dCQUNuQyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7YUFDOUIsQ0FBQztTQUNMO1VBQ0QsRUFBRSxDQUFDO0FBQ2I7Ozs7In0=
@@ -0,0 +1,5 @@
1
+ import type { LayoutGridProps } from '@preply/ds-core';
2
+ import { CSSProperties } from 'react';
3
+ declare type Hook = (props?: LayoutGridProps) => CSSProperties;
4
+ export declare const useLayoutGridStyles: Hook;
5
+ export {};
@@ -0,0 +1,10 @@
1
+ const useLayoutGridStyles = props => {
2
+ const { columns } = props || {};
3
+ const gridTemplateColumns = typeof columns === 'number' ? `repeat(${columns}, 1fr)` : columns === null || columns === void 0 ? void 0 : columns.join(' ');
4
+ return {
5
+ gridTemplateColumns,
6
+ };
7
+ };
8
+
9
+ export { useLayoutGridStyles };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0R3JpZFN0eWxlcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheW91dC9ob29rcy91c2VMYXlvdXRHcmlkU3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGF5b3V0R3JpZFByb3BzIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCc7XG5cbnR5cGUgSG9vayA9IChwcm9wcz86IExheW91dEdyaWRQcm9wcykgPT4gQ1NTUHJvcGVydGllcztcblxuZXhwb3J0IGNvbnN0IHVzZUxheW91dEdyaWRTdHlsZXM6IEhvb2sgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyBjb2x1bW5zIH0gPSBwcm9wcyB8fCB7fTtcblxuICAgIGNvbnN0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPVxuICAgICAgICB0eXBlb2YgY29sdW1ucyA9PT0gJ251bWJlcicgPyBgcmVwZWF0KCR7Y29sdW1uc30sIDFmcilgIDogY29sdW1ucz8uam9pbignICcpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucyxcbiAgICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiTUFLYSxtQkFBbUIsR0FBUyxLQUFLO0lBQzFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRWhDLE1BQU0sbUJBQW1CLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFFBQVEsR0FBRyxVQUFVLE9BQU8sUUFBUSxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakYsT0FBTztRQUNILG1CQUFtQjtLQUN0QixDQUFDO0FBQ047Ozs7In0=
@@ -0,0 +1,5 @@
1
+ import type { OptionalLayoutProps } from '@preply/ds-core';
2
+ import { CSSProperties } from 'react';
3
+ declare type Hook = (props?: OptionalLayoutProps) => CSSProperties;
4
+ export declare const useLayoutStyles: Hook;
5
+ export {};
@@ -0,0 +1,9 @@
1
+ import { useLayoutGridStyles } from './useLayoutGridStyles.js';
2
+
3
+ const useLayoutStyles = props => {
4
+ const gridStyles = useLayoutGridStyles(props.grid);
5
+ return (props === null || props === void 0 ? void 0 : props.layout) === 'grid' ? gridStyles : {};
6
+ };
7
+
8
+ export { useLayoutStyles };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0U3R5bGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5b3V0L2hvb2tzL3VzZUxheW91dFN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gICAgTGF5b3V0R3JpZFByb3BzLFxuICAgIE9wdGlvbmFsTGF5b3V0R3JpZFByb3BzLFxuICAgIE9wdGlvbmFsTGF5b3V0UHJvcHMsXG59IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyB1c2VMYXlvdXRHcmlkU3R5bGVzIH0gZnJvbSAnLi91c2VMYXlvdXRHcmlkU3R5bGVzJztcblxudHlwZSBIb29rID0gKHByb3BzPzogT3B0aW9uYWxMYXlvdXRQcm9wcykgPT4gQ1NTUHJvcGVydGllcztcblxuZXhwb3J0IGNvbnN0IHVzZUxheW91dFN0eWxlczogSG9vayA9IHByb3BzID0+IHtcbiAgICBjb25zdCBncmlkU3R5bGVzID0gdXNlTGF5b3V0R3JpZFN0eWxlcyhcbiAgICAgICAgKHByb3BzIGFzIE9wdGlvbmFsTGF5b3V0R3JpZFByb3BzKS5ncmlkIGFzIExheW91dEdyaWRQcm9wcyxcbiAgICApO1xuICAgIHJldHVybiBwcm9wcz8ubGF5b3V0ID09PSAnZ3JpZCcgPyBncmlkU3R5bGVzIDoge307XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O01BV2EsZUFBZSxHQUFTLEtBQUs7SUFDdEMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQ2pDLEtBQWlDLENBQUMsSUFBdUIsQ0FDN0QsQ0FBQztJQUNGLE9BQU8sQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxNQUFLLE1BQU0sR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3REOzs7OyJ9