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

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 +119 -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
@@ -0,0 +1,5 @@
1
+ export { useLayoutClassNames } from './hooks/useLayoutClassNames';
2
+ export { useLayoutFlexClassNames } from './hooks/useLayoutFlexClassNames';
3
+ export { useLayoutGridClassNames } from './hooks/useLayoutGridClassNames';
4
+ export { useLayoutStyles } from './hooks/useLayoutStyles';
5
+ export { useLayoutGridStyles } from './hooks/useLayoutGridStyles';
@@ -0,0 +1,6 @@
1
+ export { useLayoutClassNames } from './hooks/useLayoutClassNames.js';
2
+ export { useLayoutFlexClassNames } from './hooks/useLayoutFlexClassNames.js';
3
+ export { useLayoutGridClassNames } from './hooks/useLayoutGridClassNames.js';
4
+ export { useLayoutStyles } from './hooks/useLayoutStyles.js';
5
+ export { useLayoutGridStyles } from './hooks/useLayoutGridStyles.js';
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OyJ9
@@ -0,0 +1,46 @@
1
+ @layout-gap: none, small, base, medium, large;
2
+ @justify-content: center, start, end, space-between, space-around, space-evenly;
3
+ @align-content: center, space-between, space-around, space-evenly, stretch;
4
+ @justify-items: start, center, end, stretch;
5
+ @align-items: center, start, end, stretch, baseline;
6
+
7
+ .layout-gap() {
8
+ each(@layout-gap, {
9
+ &--gap-@{value} {
10
+ @token: 'gap-@{value}';
11
+ .gap('layout', @token);
12
+ }
13
+ });
14
+ }
15
+
16
+ .layout-justify-content() {
17
+ each(@justify-content, {
18
+ &--justify-content-@{value} {
19
+ justify-content: @value;
20
+ }
21
+ });
22
+ }
23
+
24
+ .layout-align-content() {
25
+ each(@align-content, {
26
+ &--align-content-@{value} {
27
+ align-content: @value;
28
+ }
29
+ });
30
+ }
31
+
32
+ .layout-justify-items() {
33
+ each(@justify-items, {
34
+ &--justify-items-@{value} {
35
+ justify-items: @value;
36
+ }
37
+ });
38
+ }
39
+
40
+ .layout-align-items() {
41
+ each(@align-items, {
42
+ &--align-items-@{value} {
43
+ align-items: @value;
44
+ }
45
+ });
46
+ }
@@ -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,33 @@
1
+ @import '../../theme/style/declarations.mixins.less';
2
+
3
+ .flex-base() {
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ }
7
+
8
+ .flex-wrap() {
9
+ &--nowrap {
10
+ flex-wrap: nowrap;
11
+ }
12
+ }
13
+
14
+ .flex-inline() {
15
+ &--inline {
16
+ display: inline-flex;
17
+ }
18
+ }
19
+
20
+ .flex-direction() {
21
+ &--row-fwd {
22
+ flex-direction: row;
23
+ }
24
+ &--row-rev {
25
+ flex-direction: row-reverse;
26
+ }
27
+ &--column-fwd {
28
+ flex-direction: column;
29
+ }
30
+ &--column-rev {
31
+ flex-direction: column-reverse;
32
+ }
33
+ }
@@ -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 '../../theme/style/declarations.mixins.less';
2
+
3
+ .grid-base() {
4
+ display: grid;
5
+ }
@@ -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,22 @@
1
+ @import './common.mixins.less';
2
+ @import './flex.mixins.less';
3
+ @import './grid.mixins.less';
4
+
5
+ .LayoutFlex {
6
+ .flex-base();
7
+ .flex-wrap();
8
+ .flex-inline();
9
+ .layout-gap();
10
+ .flex-direction();
11
+ .layout-justify-content();
12
+ .layout-align-items();
13
+ }
14
+
15
+ .LayoutGrid {
16
+ .grid-base();
17
+ .layout-gap();
18
+ .layout-justify-content();
19
+ .layout-align-content();
20
+ .layout-justify-items();
21
+ .layout-align-items();
22
+ }
@@ -0,0 +1,9 @@
1
+ import styleInject from '../../external/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "._15uGWh {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n._3rnoor {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n._1_IXQm {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n._1eu8AB {\n grid-gap: var(--layout--gap-none--space);\n gap: var(--layout--gap-none--space);\n}\n._3yYLRc {\n grid-gap: var(--layout--gap-small--space);\n gap: var(--layout--gap-small--space);\n}\n._1nDuVC {\n grid-gap: var(--layout--gap-base--space);\n gap: var(--layout--gap-base--space);\n}\n.ZknBAf {\n grid-gap: var(--layout--gap-medium--space);\n gap: var(--layout--gap-medium--space);\n}\n._1WqO9Z {\n grid-gap: var(--layout--gap-large--space);\n gap: var(--layout--gap-large--space);\n}\n.X4eHUe {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n._3_M_4w {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n._2ByMq1 {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n._3_8VIk {\n -webkit-box-orient: vertical;\n -webkit-box-direction: reverse;\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n}\n._3Aw3T1 {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n._10X-3Q {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: start;\n}\n._33a0v9 {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: end;\n}\n._3qMVGq {\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n._2REBgi {\n -ms-flex-pack: distribute;\n justify-content: space-around;\n}\n._3zq1C_ {\n -webkit-box-pack: space-evenly;\n -ms-flex-pack: space-evenly;\n justify-content: space-evenly;\n}\n.hUFwKI {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n._1BOjPg {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n._3AQmNs {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: end;\n}\n._3orDH1 {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.qh7on_ {\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n._1C0eq8 {\n display: grid;\n}\n._3JhbNt {\n grid-gap: var(--layout--gap-none--space);\n gap: var(--layout--gap-none--space);\n}\n.yQz5G0 {\n grid-gap: var(--layout--gap-small--space);\n gap: var(--layout--gap-small--space);\n}\n.sj0cbB {\n grid-gap: var(--layout--gap-base--space);\n gap: var(--layout--gap-base--space);\n}\n._22Ohoz {\n grid-gap: var(--layout--gap-medium--space);\n gap: var(--layout--gap-medium--space);\n}\n._16o5et {\n grid-gap: var(--layout--gap-large--space);\n gap: var(--layout--gap-large--space);\n}\n._25SpXB {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n._3GDeqz {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: start;\n}\n._2-jaGe {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: end;\n}\n._3lGct7 {\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n._2wHTdX {\n -ms-flex-pack: distribute;\n justify-content: space-around;\n}\n._1BVKaN {\n -webkit-box-pack: space-evenly;\n -ms-flex-pack: space-evenly;\n justify-content: space-evenly;\n}\n._3QOaa3 {\n -ms-flex-line-pack: center;\n align-content: center;\n}\n._2pBQs3 {\n -ms-flex-line-pack: justify;\n align-content: space-between;\n}\n.gTA891 {\n -ms-flex-line-pack: distribute;\n align-content: space-around;\n}\n._H9jFl {\n -ms-flex-line-pack: space-evenly;\n align-content: space-evenly;\n}\n._2pB881 {\n -ms-flex-line-pack: stretch;\n align-content: stretch;\n}\n.ctOm0o {\n justify-items: start;\n}\n._3ZqB_F {\n justify-items: center;\n}\n.Ya0UyE {\n justify-items: end;\n}\n._180uXD {\n justify-items: stretch;\n}\n._1nyAA2 {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n._1Xe-EI {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n._3hQvqA {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: end;\n}\n.KBSz7h {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.KBW4yE {\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n";
4
+ var styles = {"LayoutFlex":"_15uGWh","LayoutFlex--nowrap":"_3rnoor","LayoutFlex--inline":"_1_IXQm","LayoutFlex--gap-none":"_1eu8AB","LayoutFlex--gap-small":"_3yYLRc","LayoutFlex--gap-base":"_1nDuVC","LayoutFlex--gap-medium":"ZknBAf","LayoutFlex--gap-large":"_1WqO9Z","LayoutFlex--row-fwd":"X4eHUe","LayoutFlex--row-rev":"_3_M_4w","LayoutFlex--column-fwd":"_2ByMq1","LayoutFlex--column-rev":"_3_8VIk","LayoutFlex--justify-content-center":"_3Aw3T1","LayoutFlex--justify-content-start":"_10X-3Q","LayoutFlex--justify-content-end":"_33a0v9","LayoutFlex--justify-content-space-between":"_3qMVGq","LayoutFlex--justify-content-space-around":"_2REBgi","LayoutFlex--justify-content-space-evenly":"_3zq1C_","LayoutFlex--align-items-center":"hUFwKI","LayoutFlex--align-items-start":"_1BOjPg","LayoutFlex--align-items-end":"_3AQmNs","LayoutFlex--align-items-stretch":"_3orDH1","LayoutFlex--align-items-baseline":"qh7on_","LayoutGrid":"_1C0eq8","LayoutGrid--gap-none":"_3JhbNt","LayoutGrid--gap-small":"yQz5G0","LayoutGrid--gap-base":"sj0cbB","LayoutGrid--gap-medium":"_22Ohoz","LayoutGrid--gap-large":"_16o5et","LayoutGrid--justify-content-center":"_25SpXB","LayoutGrid--justify-content-start":"_3GDeqz","LayoutGrid--justify-content-end":"_2-jaGe","LayoutGrid--justify-content-space-between":"_3lGct7","LayoutGrid--justify-content-space-around":"_2wHTdX","LayoutGrid--justify-content-space-evenly":"_1BVKaN","LayoutGrid--align-content-center":"_3QOaa3","LayoutGrid--align-content-space-between":"_2pBQs3","LayoutGrid--align-content-space-around":"gTA891","LayoutGrid--align-content-space-evenly":"_H9jFl","LayoutGrid--align-content-stretch":"_2pB881","LayoutGrid--justify-items-start":"ctOm0o","LayoutGrid--justify-items-center":"_3ZqB_F","LayoutGrid--justify-items-end":"Ya0UyE","LayoutGrid--justify-items-stretch":"_180uXD","LayoutGrid--align-items-center":"_1nyAA2","LayoutGrid--align-items-start":"_1Xe-EI","LayoutGrid--align-items-end":"_3hQvqA","LayoutGrid--align-items-stretch":"KBSz7h","LayoutGrid--align-items-baseline":"KBW4yE"};
5
+ var stylesheet="._15uGWh {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n._3rnoor {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n._1_IXQm {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n._1eu8AB {\n grid-gap: var(--layout--gap-none--space);\n gap: var(--layout--gap-none--space);\n}\n._3yYLRc {\n grid-gap: var(--layout--gap-small--space);\n gap: var(--layout--gap-small--space);\n}\n._1nDuVC {\n grid-gap: var(--layout--gap-base--space);\n gap: var(--layout--gap-base--space);\n}\n.ZknBAf {\n grid-gap: var(--layout--gap-medium--space);\n gap: var(--layout--gap-medium--space);\n}\n._1WqO9Z {\n grid-gap: var(--layout--gap-large--space);\n gap: var(--layout--gap-large--space);\n}\n.X4eHUe {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n._3_M_4w {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n._2ByMq1 {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n._3_8VIk {\n -webkit-box-orient: vertical;\n -webkit-box-direction: reverse;\n -ms-flex-direction: column-reverse;\n flex-direction: column-reverse;\n}\n._3Aw3T1 {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n._10X-3Q {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: start;\n}\n._33a0v9 {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: end;\n}\n._3qMVGq {\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n._2REBgi {\n -ms-flex-pack: distribute;\n justify-content: space-around;\n}\n._3zq1C_ {\n -webkit-box-pack: space-evenly;\n -ms-flex-pack: space-evenly;\n justify-content: space-evenly;\n}\n.hUFwKI {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n._1BOjPg {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n._3AQmNs {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: end;\n}\n._3orDH1 {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.qh7on_ {\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n._1C0eq8 {\n display: grid;\n}\n._3JhbNt {\n grid-gap: var(--layout--gap-none--space);\n gap: var(--layout--gap-none--space);\n}\n.yQz5G0 {\n grid-gap: var(--layout--gap-small--space);\n gap: var(--layout--gap-small--space);\n}\n.sj0cbB {\n grid-gap: var(--layout--gap-base--space);\n gap: var(--layout--gap-base--space);\n}\n._22Ohoz {\n grid-gap: var(--layout--gap-medium--space);\n gap: var(--layout--gap-medium--space);\n}\n._16o5et {\n grid-gap: var(--layout--gap-large--space);\n gap: var(--layout--gap-large--space);\n}\n._25SpXB {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n._3GDeqz {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: start;\n}\n._2-jaGe {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: end;\n}\n._3lGct7 {\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n._2wHTdX {\n -ms-flex-pack: distribute;\n justify-content: space-around;\n}\n._1BVKaN {\n -webkit-box-pack: space-evenly;\n -ms-flex-pack: space-evenly;\n justify-content: space-evenly;\n}\n._3QOaa3 {\n -ms-flex-line-pack: center;\n align-content: center;\n}\n._2pBQs3 {\n -ms-flex-line-pack: justify;\n align-content: space-between;\n}\n.gTA891 {\n -ms-flex-line-pack: distribute;\n align-content: space-around;\n}\n._H9jFl {\n -ms-flex-line-pack: space-evenly;\n align-content: space-evenly;\n}\n._2pB881 {\n -ms-flex-line-pack: stretch;\n align-content: stretch;\n}\n.ctOm0o {\n justify-items: start;\n}\n._3ZqB_F {\n justify-items: center;\n}\n.Ya0UyE {\n justify-items: end;\n}\n._180uXD {\n justify-items: stretch;\n}\n._1nyAA2 {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n._1Xe-EI {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n._3hQvqA {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: end;\n}\n.KBSz7h {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n.KBW4yE {\n -webkit-box-align: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n}\n";
6
+ styleInject(css_248z);
7
+
8
+ export { styles as default, stylesheet };
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbbnVsbF0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixxREFBeUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7In0=
@@ -0,0 +1,2 @@
1
+ export declare const currentProtocol: () => string;
2
+ export declare const currentHref: () => string;
@@ -0,0 +1,5 @@
1
+ const currentProtocol = () => window.location.protocol;
2
+ const currentHref = () => window.location.href;
3
+
4
+ export { currentHref, currentProtocol };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2NhdGlvbi9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY3VycmVudFByb3RvY29sID0gKCk6IHN0cmluZyA9PiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7XG5cbmV4cG9ydCBjb25zdCBjdXJyZW50SHJlZiA9ICgpOiBzdHJpbmcgPT4gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik1BQWEsZUFBZSxHQUFHLE1BQWMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTO01BRXpELFdBQVcsR0FBRyxNQUFjLE1BQU0sQ0FBQyxRQUFRLENBQUM7Ozs7In0=
@@ -0,0 +1,18 @@
1
+ import type { ThemeName } from '@preply/ds-core';
2
+ import type { CSSModule } from '../../css-module/types';
3
+ import type { ThemeInterface, TokenMap } from '../types';
4
+ export declare class Theme implements ThemeInterface {
5
+ static PREFIX: string;
6
+ static ROOT_CLASS: string;
7
+ private styles;
8
+ private values?;
9
+ private tokens?;
10
+ private extend;
11
+ readonly name: any;
12
+ constructor(styles: CSSModule, name: ThemeName, extend?: Theme[], values?: TokenMap, tokens?: TokenMap);
13
+ private token;
14
+ getClassName(): string;
15
+ fgColor(component: string, variant: string): string;
16
+ bgColor(component: string, variant: string): string;
17
+ radius(component: string): string;
18
+ }
@@ -0,0 +1,45 @@
1
+ import { safeClassName } from '../../css-module/index.js';
2
+ import { TOKEN_COLOR_FG, TOKEN_COLOR_BG, TOKEN_RADIUS } from '../constants.js';
3
+
4
+ class Theme {
5
+ constructor(styles, name, extend = [], values, tokens) {
6
+ this.styles = styles;
7
+ this.name = name;
8
+ this.extend = extend;
9
+ this.values = values;
10
+ this.tokens = tokens;
11
+ }
12
+ token(name) {
13
+ if (!this.tokens || !this.values) {
14
+ throw new Error(`Theme ${this.name} was instantiated without tokens`);
15
+ }
16
+ const key = this.tokens[name];
17
+ if (!key) {
18
+ throw new Error(`Unknown token ${name} in theme ${this.name}`);
19
+ }
20
+ const value = this.values[key];
21
+ if (!value) {
22
+ throw new Error(`Unknown value ${key} for token ${name} in theme ${this.name}`);
23
+ }
24
+ return value;
25
+ }
26
+ getClassName() {
27
+ const extendedClasses = this.extend.map(theme => theme.getClassName());
28
+ const selfClass = safeClassName(this.styles, Theme.PREFIX + this.name);
29
+ return [selfClass, ...extendedClasses].join(' ');
30
+ }
31
+ fgColor(component, variant) {
32
+ return this.token(`${TOKEN_COLOR_FG}-${component}-${variant}`);
33
+ }
34
+ bgColor(component, variant) {
35
+ return this.token(`${TOKEN_COLOR_BG}-${component}-${variant}`);
36
+ }
37
+ radius(component) {
38
+ return this.token(`${TOKEN_RADIUS}-${component}`);
39
+ }
40
+ }
41
+ Theme.PREFIX = 'ds-';
42
+ Theme.ROOT_CLASS = 'root';
43
+
44
+ export { Theme };
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9jbGFzc2VzL1RoZW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGhlbWVOYW1lIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgc2FmZUNsYXNzTmFtZSB9IGZyb20gJy4uLy4uL2Nzcy1tb2R1bGUnO1xuaW1wb3J0IHR5cGUgeyBDU1NNb2R1bGUgfSBmcm9tICcuLi8uLi9jc3MtbW9kdWxlL3R5cGVzJztcbmltcG9ydCB7IFRPS0VOX0NPTE9SX0JHLCBUT0tFTl9DT0xPUl9GRywgVE9LRU5fUkFESVVTIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVGhlbWVJbnRlcmZhY2UsIFRva2VuTWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVGhlbWUgaW1wbGVtZW50cyBUaGVtZUludGVyZmFjZSB7XG4gICAgc3RhdGljIFBSRUZJWCA9ICdkcy0nO1xuICAgIHN0YXRpYyBST09UX0NMQVNTID0gJ3Jvb3QnO1xuXG4gICAgcHJpdmF0ZSBzdHlsZXM6IENTU01vZHVsZTtcbiAgICBwcml2YXRlIHZhbHVlcz86IFRva2VuTWFwO1xuICAgIHByaXZhdGUgdG9rZW5zPzogVG9rZW5NYXA7XG4gICAgcHJpdmF0ZSBleHRlbmQ6IFRoZW1lW107XG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgc3R5bGVzOiBDU1NNb2R1bGUsXG4gICAgICAgIG5hbWU6IFRoZW1lTmFtZSxcbiAgICAgICAgZXh0ZW5kOiBUaGVtZVtdID0gW10sXG4gICAgICAgIHZhbHVlcz86IFRva2VuTWFwLFxuICAgICAgICB0b2tlbnM/OiBUb2tlbk1hcCxcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBzdHlsZXM7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuZXh0ZW5kID0gZXh0ZW5kO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2tlbihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRva2VucyB8fCAhdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlbWUgJHt0aGlzLm5hbWV9IHdhcyBpbnN0YW50aWF0ZWQgd2l0aG91dCB0b2tlbnNgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLnRva2Vuc1tuYW1lXTtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0b2tlbiAke25hbWV9IGluIHRoZW1lICR7dGhpcy5uYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHZhbHVlICR7a2V5fSBmb3IgdG9rZW4gJHtuYW1lfSBpbiB0aGVtZSAke3RoaXMubmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkQ2xhc3NlcyA9IHRoaXMuZXh0ZW5kLm1hcCh0aGVtZSA9PiB0aGVtZS5nZXRDbGFzc05hbWUoKSk7XG4gICAgICAgIGNvbnN0IHNlbGZDbGFzcyA9IHNhZmVDbGFzc05hbWUodGhpcy5zdHlsZXMsIFRoZW1lLlBSRUZJWCArIHRoaXMubmFtZSk7XG4gICAgICAgIHJldHVybiBbc2VsZkNsYXNzLCAuLi5leHRlbmRlZENsYXNzZXNdLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBmZ0NvbG9yKGNvbXBvbmVudDogc3RyaW5nLCB2YXJpYW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbihgJHtUT0tFTl9DT0xPUl9GR30tJHtjb21wb25lbnR9LSR7dmFyaWFudH1gKTtcbiAgICB9XG5cbiAgICBiZ0NvbG9yKGNvbXBvbmVudDogc3RyaW5nLCB2YXJpYW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbihgJHtUT0tFTl9DT0xPUl9CR30tJHtjb21wb25lbnR9LSR7dmFyaWFudH1gKTtcbiAgICB9XG5cbiAgICByYWRpdXMoY29tcG9uZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbihgJHtUT0tFTl9SQURJVVN9LSR7Y29tcG9uZW50fWApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFPYSxLQUFLO0lBVWQsWUFDSSxNQUFpQixFQUNqQixJQUFlLEVBQ2YsU0FBa0IsRUFBRSxFQUNwQixNQUFpQixFQUNqQixNQUFpQjtRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztLQUN4QjtJQUVPLEtBQUssQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksa0NBQWtDLENBQUMsQ0FBQztTQUN6RTtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRTtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELFlBQVk7UUFDUixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwRDtJQUVELE9BQU8sQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsY0FBYyxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsT0FBTyxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFjLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDbEU7SUFFRCxNQUFNLENBQUMsU0FBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7S0FDckQ7O0FBdERNLFlBQU0sR0FBRyxLQUFLLENBQUM7QUFDZixnQkFBVSxHQUFHLE1BQU07Ozs7In0=
@@ -0,0 +1,3 @@
1
+ export declare const TOKEN_COLOR_FG = "color-fg";
2
+ export declare const TOKEN_COLOR_BG = "color-bg";
3
+ export declare const TOKEN_RADIUS = "radius";
@@ -0,0 +1,6 @@
1
+ const TOKEN_COLOR_FG = 'color-fg';
2
+ const TOKEN_COLOR_BG = 'color-bg';
3
+ const TOKEN_RADIUS = 'radius';
4
+
5
+ export { TOKEN_COLOR_BG, TOKEN_COLOR_FG, TOKEN_RADIUS };
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhlbWUvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUT0tFTl9DT0xPUl9GRyA9ICdjb2xvci1mZyc7XG5leHBvcnQgY29uc3QgVE9LRU5fQ09MT1JfQkcgPSAnY29sb3ItYmcnO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1JBRElVUyA9ICdyYWRpdXMnO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUFhLGNBQWMsR0FBRyxXQUFXO01BQzVCLGNBQWMsR0FBRyxXQUFXO01BQzVCLFlBQVksR0FBRzs7OzsifQ==
@@ -0,0 +1,9 @@
1
+ import type { ThemeName } from '@preply/ds-core';
2
+ import { ComponentType, FC } from 'react';
3
+ export interface ThemeProps {
4
+ theme?: ThemeName;
5
+ }
6
+ export interface WithThemeProps {
7
+ themeClassName?: string;
8
+ }
9
+ export declare function withTheme<P>(Component: ComponentType<P>): FC<P & ThemeProps>;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { useTheme } from '../hooks/useTheme.js';
3
+ import { useThemes } from '../hooks/useThemes.js';
4
+ import { ThemeProvider } from '../providers/ThemeProvider.js';
5
+
6
+ function withTheme(Component) {
7
+ const Wrapper = ({ theme: themeName, ...props }) => {
8
+ const { findTheme } = useThemes();
9
+ const { theme: currentTheme } = useTheme();
10
+ const newTheme = themeName && findTheme(themeName);
11
+ if (newTheme && newTheme !== currentTheme) {
12
+ return (React.createElement(ThemeProvider, { theme: newTheme.name },
13
+ React.createElement(Component, Object.assign({ themeClassName: newTheme.getClassName() }, props))));
14
+ }
15
+ return React.createElement(Component, Object.assign({}, props));
16
+ };
17
+ Wrapper.displayName = `withTheme(${Component.displayName})`;
18
+ return Wrapper;
19
+ }
20
+
21
+ export { withTheme };
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRoZW1lLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGhlbWUvaG9jcy93aXRoVGhlbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGhlbWVOYW1lIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBGQyB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZSc7XG5pbXBvcnQgeyB1c2VUaGVtZXMgfSBmcm9tICcuLi9ob29rcy91c2VUaGVtZXMnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciB9IGZyb20gJy4uL3Byb3ZpZGVycy9UaGVtZVByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBUaGVtZVByb3BzIHtcbiAgICB0aGVtZT86IFRoZW1lTmFtZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoVGhlbWVQcm9wcyB7XG4gICAgdGhlbWVDbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVGhlbWU8UD4oQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFA+KTogRkM8UCAmIFRoZW1lUHJvcHM+IHtcbiAgICBjb25zdCBXcmFwcGVyOiBGQzxQICYgVGhlbWVQcm9wcz4gPSAoeyB0aGVtZTogdGhlbWVOYW1lLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZmluZFRoZW1lIH0gPSB1c2VUaGVtZXMoKTtcbiAgICAgICAgY29uc3QgeyB0aGVtZTogY3VycmVudFRoZW1lIH0gPSB1c2VUaGVtZSgpO1xuXG4gICAgICAgIGNvbnN0IG5ld1RoZW1lID0gdGhlbWVOYW1lICYmIGZpbmRUaGVtZSh0aGVtZU5hbWUpO1xuXG4gICAgICAgIGlmIChuZXdUaGVtZSAmJiBuZXdUaGVtZSAhPT0gY3VycmVudFRoZW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXtuZXdUaGVtZS5uYW1lfT5cbiAgICAgICAgICAgICAgICAgICAgPENvbXBvbmVudCB0aGVtZUNsYXNzTmFtZT17bmV3VGhlbWUuZ2V0Q2xhc3NOYW1lKCl9IHsuLi4ocHJvcHMgYXMgUCl9IC8+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPENvbXBvbmVudCB7Li4uKHByb3BzIGFzIFApfSAvPjtcbiAgICB9O1xuXG4gICAgV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoVGhlbWUoJHtDb21wb25lbnQuZGlzcGxheU5hbWV9KWA7XG4gICAgcmV0dXJuIFdyYXBwZXI7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7U0FlZ0IsU0FBUyxDQUFJLFNBQTJCO0lBQ3BELE1BQU0sT0FBTyxHQUF1QixDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRTtRQUMvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUUzQyxNQUFNLFFBQVEsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxZQUFZLEVBQUU7WUFDdkMsUUFDSSxvQkFBQyxhQUFhLElBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUMvQixvQkFBQyxTQUFTLGtCQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsWUFBWSxFQUFFLElBQU8sS0FBVyxFQUFJLENBQzVELEVBQ2xCO1NBQ0w7UUFDRCxPQUFPLG9CQUFDLFNBQVMsb0JBQU0sS0FBVyxFQUFJLENBQUM7S0FDMUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxXQUFXLEdBQUcsYUFBYSxTQUFTLENBQUMsV0FBVyxHQUFHLENBQUM7SUFDNUQsT0FBTyxPQUFPLENBQUM7QUFDbkI7Ozs7In0=
@@ -0,0 +1,2 @@
1
+ import type { ThemeContextState } from '../providers/ThemeProvider';
2
+ export declare const useSetTheme: () => Pick<ThemeContextState, 'setTheme'>;
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { ThemeContext } from '../providers/ThemeProvider.js';
3
+
4
+ const useSetTheme = () => {
5
+ const { setTheme } = useContext(ThemeContext);
6
+ return { setTheme };
7
+ };
8
+
9
+ export { useSetTheme };
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlU2V0VGhlbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9ob29rcy91c2VTZXRUaGVtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFRoZW1lQ29udGV4dFN0YXRlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vcHJvdmlkZXJzL1RoZW1lUHJvdmlkZXInO1xuXG5leHBvcnQgY29uc3QgdXNlU2V0VGhlbWUgPSAoKTogUGljazxUaGVtZUNvbnRleHRTdGF0ZSwgJ3NldFRoZW1lJz4gPT4ge1xuICAgIGNvbnN0IHsgc2V0VGhlbWUgfSA9IHVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbiAgICByZXR1cm4geyBzZXRUaGVtZSB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFLYSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDeEI7Ozs7In0=
@@ -0,0 +1,2 @@
1
+ import type { ThemeContextState } from '../providers/ThemeProvider';
2
+ export declare const useTheme: () => ThemeContextState;
@@ -0,0 +1,13 @@
1
+ import { useContext } from 'react';
2
+ import { ThemeContext } from '../providers/ThemeProvider.js';
3
+
4
+ const useTheme = () => {
5
+ const { theme } = useContext(ThemeContext);
6
+ if (!theme) {
7
+ throw new Error('useTheme() must be used within a ThemeProvider');
8
+ }
9
+ return { theme };
10
+ };
11
+
12
+ export { useTheme };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGhlbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9ob29rcy91c2VUaGVtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFRoZW1lQ29udGV4dFN0YXRlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vcHJvdmlkZXJzL1RoZW1lUHJvdmlkZXInO1xuXG5leHBvcnQgY29uc3QgdXNlVGhlbWUgPSAoKTogVGhlbWVDb250ZXh0U3RhdGUgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWUgfSA9IHVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbiAgICBpZiAoIXRoZW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlVGhlbWUoKSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgVGhlbWVQcm92aWRlcicpO1xuICAgIH1cbiAgICByZXR1cm4geyB0aGVtZSB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFLYSxRQUFRLEdBQUc7SUFDcEIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3JCOzs7OyJ9
@@ -0,0 +1,2 @@
1
+ import type { ThemesContextState } from '../providers/ThemesProvider';
2
+ export declare const useThemes: () => ThemesContextState;
@@ -0,0 +1,13 @@
1
+ import { useContext } from 'react';
2
+ import { ThemesContext } from '../providers/ThemesProvider.js';
3
+
4
+ const useThemes = () => {
5
+ const { themes, findTheme, findColorScheme } = useContext(ThemesContext);
6
+ if (!themes) {
7
+ throw new Error('useThemes() must be used within a ThemesProvider');
8
+ }
9
+ return { themes, findTheme, findColorScheme };
10
+ };
11
+
12
+ export { useThemes };
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGhlbWVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGhlbWUvaG9va3MvdXNlVGhlbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgVGhlbWVzQ29udGV4dFN0YXRlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL1RoZW1lc1Byb3ZpZGVyJztcbmltcG9ydCB7IFRoZW1lc0NvbnRleHQgfSBmcm9tICcuLi9wcm92aWRlcnMvVGhlbWVzUHJvdmlkZXInO1xuXG5leHBvcnQgY29uc3QgdXNlVGhlbWVzID0gKCk6IFRoZW1lc0NvbnRleHRTdGF0ZSA9PiB7XG4gICAgY29uc3QgeyB0aGVtZXMsIGZpbmRUaGVtZSwgZmluZENvbG9yU2NoZW1lIH0gPSB1c2VDb250ZXh0KFRoZW1lc0NvbnRleHQpO1xuICAgIGlmICghdGhlbWVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlVGhlbWVzKCkgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFRoZW1lc1Byb3ZpZGVyJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHRoZW1lcywgZmluZFRoZW1lLCBmaW5kQ29sb3JTY2hlbWUgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BS2EsU0FBUyxHQUFHO0lBQ3JCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0tBQ3ZFO0lBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDbEQ7Ozs7In0=
@@ -0,0 +1,11 @@
1
+ export type { ThemeInterface } from './types';
2
+ export { Theme } from './classes/Theme';
3
+ export type { ThemesProviderProps } from './providers/ThemesProvider';
4
+ export { ThemesProvider } from './providers/ThemesProvider';
5
+ export type { ThemeProviderProps } from './providers/ThemeProvider';
6
+ export { ThemeProvider } from './providers/ThemeProvider';
7
+ export { useTheme } from './hooks/useTheme';
8
+ export { useThemes } from './hooks/useThemes';
9
+ export { useSetTheme } from './hooks/useSetTheme';
10
+ export type { ThemeProps, WithThemeProps } from './hocs/withTheme';
11
+ export { withTheme } from './hocs/withTheme';
@@ -0,0 +1,8 @@
1
+ export { Theme } from './classes/Theme.js';
2
+ export { ThemesProvider } from './providers/ThemesProvider.js';
3
+ export { ThemeProvider } from './providers/ThemeProvider.js';
4
+ export { useTheme } from './hooks/useTheme.js';
5
+ export { useThemes } from './hooks/useThemes.js';
6
+ export { useSetTheme } from './hooks/useSetTheme.js';
7
+ export { withTheme } from './hocs/withTheme.js';
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7In0=
@@ -0,0 +1,15 @@
1
+ import type { ThemeName } from '@preply/ds-core';
2
+ import React from 'react';
3
+ import type { ThemeInterface } from '../types';
4
+ export interface ThemeProviderProps {
5
+ theme: ThemeName;
6
+ tag?: keyof JSX.IntrinsicElements;
7
+ }
8
+ declare type SetTheme = (newTheme: ThemeInterface) => void;
9
+ export interface ThemeContextState {
10
+ theme: ThemeInterface;
11
+ setTheme?: SetTheme;
12
+ }
13
+ export declare const ThemeContext: React.Context<ThemeContextState>;
14
+ export declare const ThemeProvider: React.FC<ThemeProviderProps>;
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import React, { createContext, useState } from 'react';
2
+ import { useThemes } from '../hooks/useThemes.js';
3
+
4
+ const ThemeContext = createContext({});
5
+ const ThemeProvider = ({ theme: themeName, children, tag: Tag, }) => {
6
+ const { findTheme } = useThemes();
7
+ const [theme, setTheme] = useState(findTheme(themeName));
8
+ return (React.createElement(ThemeContext.Provider, { value: { theme, setTheme } },
9
+ Tag && React.createElement(Tag, { className: theme.getClassName() }, children),
10
+ !Tag && children));
11
+ };
12
+
13
+ export { ThemeContext, ThemeProvider };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVQcm92aWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RoZW1lL3Byb3ZpZGVycy9UaGVtZVByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRoZW1lTmFtZSB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZVRoZW1lcyB9IGZyb20gJy4uL2hvb2tzL3VzZVRoZW1lcyc7XG5pbXBvcnQgdHlwZSB7IFRoZW1lSW50ZXJmYWNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lUHJvdmlkZXJQcm9wcyB7XG4gICAgdGhlbWU6IFRoZW1lTmFtZTtcbiAgICB0YWc/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHM7XG59XG5cbnR5cGUgU2V0VGhlbWUgPSAobmV3VGhlbWU6IFRoZW1lSW50ZXJmYWNlKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lQ29udGV4dFN0YXRlIHtcbiAgICB0aGVtZTogVGhlbWVJbnRlcmZhY2U7XG4gICAgc2V0VGhlbWU/OiBTZXRUaGVtZTtcbn1cblxuZXhwb3J0IGNvbnN0IFRoZW1lQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8VGhlbWVDb250ZXh0U3RhdGU+KHt9IGFzIFRoZW1lQ29udGV4dFN0YXRlKTtcblxuZXhwb3J0IGNvbnN0IFRoZW1lUHJvdmlkZXI6IFJlYWN0LkZDPFRoZW1lUHJvdmlkZXJQcm9wcz4gPSAoe1xuICAgIHRoZW1lOiB0aGVtZU5hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgdGFnOiBUYWcsXG59KSA9PiB7XG4gICAgY29uc3QgeyBmaW5kVGhlbWUgfSA9IHVzZVRoZW1lcygpO1xuXG4gICAgY29uc3QgW3RoZW1lLCBzZXRUaGVtZV0gPSB1c2VTdGF0ZTxUaGVtZUludGVyZmFjZT4oZmluZFRoZW1lKHRoZW1lTmFtZSkpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRoZW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyB0aGVtZSwgc2V0VGhlbWUgfX0+XG4gICAgICAgICAgICB7VGFnICYmIDxUYWcgY2xhc3NOYW1lPXt0aGVtZS5nZXRDbGFzc05hbWUoKX0+e2NoaWxkcmVufTwvVGFnPn1cbiAgICAgICAgICAgIHshVGFnICYmIGNoaWxkcmVufVxuICAgICAgICA8L1RoZW1lQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFrQmEsWUFBWSxHQUFHLGFBQWEsQ0FBb0IsRUFBdUIsRUFBRTtNQUV6RSxhQUFhLEdBQWlDLENBQUMsRUFDeEQsS0FBSyxFQUFFLFNBQVMsRUFDaEIsUUFBUSxFQUNSLEdBQUcsRUFBRSxHQUFHLEdBQ1g7SUFDRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFbEMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLENBQWlCLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXpFLFFBQ0ksb0JBQUMsWUFBWSxDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1FBQzVDLEdBQUcsSUFBSSxvQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBRyxRQUFRLENBQU87UUFDN0QsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUNHLEVBQzFCO0FBQ047Ozs7In0=
@@ -0,0 +1,16 @@
1
+ import type { ColorSchemeName, ThemeName } from '@preply/ds-core';
2
+ import React, { FC } from 'react';
3
+ import type { ColorSchemeInterface } from '../../color-scheme/types';
4
+ import type { ThemeInterface } from '../types';
5
+ export interface ThemesProviderProps {
6
+ themes: ThemeInterface[];
7
+ colorSchemes: ColorSchemeInterface[];
8
+ tag?: keyof JSX.IntrinsicElements;
9
+ }
10
+ export interface ThemesContextState {
11
+ themes?: ThemeInterface[];
12
+ findTheme: (name: ThemeName) => ThemeInterface;
13
+ findColorScheme: (name: ColorSchemeName) => ColorSchemeInterface;
14
+ }
15
+ export declare const ThemesContext: React.Context<ThemesContextState>;
16
+ export declare const ThemesProvider: FC<ThemesProviderProps>;
@@ -0,0 +1,23 @@
1
+ import React, { createContext } from 'react';
2
+
3
+ const ThemesContext = createContext({});
4
+ const ThemesProvider = ({ themes, colorSchemes, children }) => {
5
+ const findTheme = (name) => {
6
+ const t = themes.find(theme => theme.name === name);
7
+ if (!t) {
8
+ throw new Error(`Unknown theme ${name}`);
9
+ }
10
+ return t;
11
+ };
12
+ const findColorScheme = (name) => {
13
+ const s = colorSchemes.find(theme => theme.name === name);
14
+ if (!s) {
15
+ throw new Error(`Unknown color scheme ${name}`);
16
+ }
17
+ return s;
18
+ };
19
+ return (React.createElement(ThemesContext.Provider, { value: { themes, findTheme, findColorScheme } }, children));
20
+ };
21
+
22
+ export { ThemesContext, ThemesProvider };
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVzUHJvdmlkZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9wcm92aWRlcnMvVGhlbWVzUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sb3JTY2hlbWVOYW1lLCBUaGVtZU5hbWUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEZDLCBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vY29sb3Itc2NoZW1lL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVGhlbWVJbnRlcmZhY2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIERFUy0yMiBtb3ZlIHRvIC4uL3RoZW1lc1xuZXhwb3J0IGludGVyZmFjZSBUaGVtZXNQcm92aWRlclByb3BzIHtcbiAgICB0aGVtZXM6IFRoZW1lSW50ZXJmYWNlW107XG4gICAgY29sb3JTY2hlbWVzOiBDb2xvclNjaGVtZUludGVyZmFjZVtdO1xuICAgIHRhZz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVtZXNDb250ZXh0U3RhdGUge1xuICAgIHRoZW1lcz86IFRoZW1lSW50ZXJmYWNlW107XG4gICAgZmluZFRoZW1lOiAobmFtZTogVGhlbWVOYW1lKSA9PiBUaGVtZUludGVyZmFjZTtcbiAgICBmaW5kQ29sb3JTY2hlbWU6IChuYW1lOiBDb2xvclNjaGVtZU5hbWUpID0+IENvbG9yU2NoZW1lSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgY29uc3QgVGhlbWVzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8VGhlbWVzQ29udGV4dFN0YXRlPih7fSBhcyBUaGVtZXNDb250ZXh0U3RhdGUpO1xuXG5leHBvcnQgY29uc3QgVGhlbWVzUHJvdmlkZXI6IEZDPFRoZW1lc1Byb3ZpZGVyUHJvcHM+ID0gKHsgdGhlbWVzLCBjb2xvclNjaGVtZXMsIGNoaWxkcmVuIH0pID0+IHtcbiAgICBjb25zdCBmaW5kVGhlbWUgPSAobmFtZTogVGhlbWVOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHQgPSB0aGVtZXMuZmluZCh0aGVtZSA9PiB0aGVtZS5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgaWYgKCF0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdGhlbWUgJHtuYW1lfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgY29uc3QgZmluZENvbG9yU2NoZW1lID0gKG5hbWU6IENvbG9yU2NoZW1lTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBzID0gY29sb3JTY2hlbWVzLmZpbmQodGhlbWUgPT4gdGhlbWUubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgIGlmICghcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbG9yIHNjaGVtZSAke25hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8VGhlbWVzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyB0aGVtZXMsIGZpbmRUaGVtZSwgZmluZENvbG9yU2NoZW1lIH19PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1RoZW1lc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7TUFtQmEsYUFBYSxHQUFHLGFBQWEsQ0FBcUIsRUFBd0IsRUFBRTtNQUU1RSxjQUFjLEdBQTRCLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRTtJQUN0RixNQUFNLFNBQVMsR0FBRyxDQUFDLElBQWU7UUFDOUIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sQ0FBQyxDQUFDO0tBQ1osQ0FBQztJQUNGLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBcUI7UUFDMUMsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sQ0FBQyxDQUFDO0tBQ1osQ0FBQztJQUNGLFFBQ0ksb0JBQUMsYUFBYSxDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxJQUNoRSxRQUFRLENBQ1ksRUFDM0I7QUFDTjs7OzsifQ==
@@ -0,0 +1,119 @@
1
+ // DES-22 move to less/tokens
2
+
3
+ .token(@namespace, @key, @type) {
4
+ @token: ~'--@{namespace}--@{key}--@{type}';
5
+ @t: var(@token);
6
+ }
7
+
8
+ // DES-22 move to less/declarations
9
+
10
+ .size(@namespace, @key) {
11
+ @token: ~'--@{namespace}--@{key}--size';
12
+ width: var(@token);
13
+ height: var(@token);
14
+ }
15
+
16
+ .width(@namespace, @key) {
17
+ @token: ~'--@{namespace}--@{key}--width';
18
+ height: var(@token);
19
+ }
20
+
21
+ .height(@namespace, @key) {
22
+ @token: ~'--@{namespace}--@{key}--height';
23
+ height: var(@token);
24
+ }
25
+
26
+ .min-height(@namespace, @key) {
27
+ @token: ~'--@{namespace}--@{key}--height';
28
+ min-height: var(@token);
29
+ }
30
+
31
+ .gap(@namespace, @key) {
32
+ @token: ~'--@{namespace}--@{key}--space';
33
+ @gap: var(@token);
34
+ gap: @gap;
35
+ }
36
+
37
+ .padding(@namespace, @key) {
38
+ @token: ~'--@{namespace}--@{key}--padding';
39
+ @padding: var(@token);
40
+ padding: @padding;
41
+ }
42
+
43
+ .padding-h(@namespace, @key) {
44
+ @token: ~'--@{namespace}--@{key}--padding';
45
+ @padding: var(@token);
46
+ padding-left: @padding;
47
+ padding-right: @padding;
48
+ }
49
+
50
+ .padding-v(@namespace, @key) {
51
+ @token: ~'--@{namespace}--@{key}--padding';
52
+ @padding: var(@token);
53
+ padding-top: @padding;
54
+ padding-bottom: @padding;
55
+ }
56
+
57
+ .font-size(@namespace, @key) {
58
+ @token: ~'--@{namespace}--@{key}--font-size';
59
+ font-size: var(@token);
60
+ }
61
+
62
+ .color(@namespace, @key) {
63
+ @token: ~'--@{namespace}--@{key}--color';
64
+ color: var(@token);
65
+ }
66
+
67
+ .fill(@namespace, @key) {
68
+ @token: ~'--@{namespace}--@{key}--color';
69
+ fill: var(@token);
70
+ }
71
+
72
+ .bg-color(@namespace, @key) {
73
+ @token: ~'--@{namespace}--@{key}--bg-color';
74
+ background-color: var(@token);
75
+ }
76
+
77
+ .border-color(@namespace, @key) {
78
+ @token: ~'--@{namespace}--@{key}--border-color';
79
+ border-color: var(@token);
80
+ }
81
+
82
+ .divider-color(@namespace, @key) {
83
+ @token: ~'--@{namespace}--@{key}--divider-color';
84
+ border-color: var(@token);
85
+ }
86
+
87
+ .border-radius(@namespace, @key) {
88
+ @token: ~'--@{namespace}--@{key}--border-radius';
89
+ border-radius: var(@token);
90
+ }
91
+
92
+ .var(@token) {
93
+ @var: var(@token);
94
+ }
95
+
96
+ .hover-filter(@namespace, @key) {
97
+ @token: ~'--@{namespace}--@{key}-hover--brigthness';
98
+ @value: var(@token);
99
+ filter: brightness(@value);
100
+ }
101
+
102
+ .active-filter(@namespace, @key) {
103
+ @token: ~'--@{namespace}--@{key}-active--brigthness';
104
+ @value: var(@token);
105
+ filter: brightness(@value);
106
+ }
107
+
108
+ .focus-outline(@namespace, @key) {
109
+ @token: ~'--@{namespace}--@{key}-focus--outline-color';
110
+ outline-color: var(@token);
111
+ }
112
+
113
+ .disabled-filter(@namespace, @key) {
114
+ // prettier-ignore
115
+ @brightness: .var(~'--@{namespace}--@{key}-disabled--brightness')[];
116
+ // prettier-ignore
117
+ @saturate: .var(~'--@{namespace}--@{key}-disabled--saturate')[];
118
+ filter: brightness(@brightness) saturate(@saturate);
119
+ }
@@ -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,11 @@
1
+ import { ThemeName } from '@preply/ds-core';
2
+ export declare type TokenMap = {
3
+ [key: string]: string;
4
+ };
5
+ export interface ThemeInterface {
6
+ name: ThemeName;
7
+ getClassName(): string;
8
+ fgColor(component: string, variant: string): void;
9
+ bgColor(component: string, variant: string): void;
10
+ radius(component: string): void;
11
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=