@semcore/spin-container 5.0.4 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [6.0.0] - 2022-05-17
6
+
7
+ ### BREAK
8
+
9
+ - Updated styles according to the library redesign policy.
10
+
11
+ ## [5.1.0] - 2022-04-25
12
+
13
+ ### Fixed
14
+
15
+ - Fixed scollable spin-container (e.g. in `data-table`).
16
+
17
+ ## [5.0.5] - 2022-04-03
18
+
19
+ ### Changed
20
+
21
+ - Version patch update due to children dependencies update (`@semcore/animation` [1.5.0 ~> 1.5.0]).
22
+
5
23
  ## [5.0.4] - 2022-03-14
6
24
 
7
25
  ### Changed
@@ -52,16 +52,18 @@ var style = (
52
52
  /*__reshadow_css_start__*/
53
53
  _core.sstyled.insert(
54
54
  /*__inner_css_start__*/
55
- ".___SSpinContainer_1fs6p_gg_{z-index:0;position:relative;display:block}.___SContent_1fs6p_gg_{z-index:0;position:relative}.___SOverlay_1fs6p_gg_{z-index:1;display:flex;width:100%;height:100%;justify-content:center;align-items:center;position:absolute;top:0;left:0;background-color:hsla(0,0%,100%,.85)}.___SOverlay_1fs6p_gg_.__background_1fs6p_gg_{background:var(--background_18krv29)}"
55
+ ".___SSpinContainer_1vd8z_gg_{z-index:0;position:relative;display:block;overflow:hidden}.___SContent_1vd8z_gg_{z-index:0;position:relative}.___SOverlay_1vd8z_gg_{z-index:1;display:flex;width:100%;height:100%;justify-content:center;align-items:center;position:absolute;top:0;left:0}.___SOverlay_1vd8z_gg_._theme_invert_1vd8z_gg_{background-color:rgba(25,27,35,.4)}.___SOverlay_1vd8z_gg_._theme_dark_1vd8z_gg_{background-color:hsla(0,0%,100%,.85)}.___SOverlay_1vd8z_gg_._theme_custom_1vd8z_gg_{background-color:var(--background_1505dra)}"
56
56
  /*__inner_css_end__*/
57
- , "18krv29_gg_")
57
+ , "1505dra_gg_")
58
58
  /*__reshadow_css_end__*/
59
59
  , {
60
- "__SSpinContainer": "___SSpinContainer_1fs6p_gg_",
61
- "__SContent": "___SContent_1fs6p_gg_",
62
- "__SOverlay": "___SOverlay_1fs6p_gg_",
63
- "_background": "__background_1fs6p_gg_",
64
- "--background": "--background_18krv29"
60
+ "__SSpinContainer": "___SSpinContainer_1vd8z_gg_",
61
+ "__SContent": "___SContent_1vd8z_gg_",
62
+ "__SOverlay": "___SOverlay_1vd8z_gg_",
63
+ "_theme_invert": "_theme_invert_1vd8z_gg_",
64
+ "_theme_dark": "_theme_dark_1vd8z_gg_",
65
+ "_theme_custom": "_theme_custom_1vd8z_gg_",
66
+ "--background": "--background_1505dra"
65
67
  });
66
68
 
67
69
  var SpinContainerRoot = /*#__PURE__*/function (_Component) {
@@ -96,7 +98,7 @@ var SpinContainerRoot = /*#__PURE__*/function (_Component) {
96
98
  }, {
97
99
  key: "render",
98
100
  value: function render() {
99
- var _ref = this ? this.asProps : arguments[0],
101
+ var _ref = this.asProps,
100
102
  _ref4;
101
103
 
102
104
  var SSpinContainer = _flexBox.Box;
@@ -131,19 +133,22 @@ var Overlay = /*#__PURE__*/function (_Component2) {
131
133
  (0, _createClass2["default"])(Overlay, [{
132
134
  key: "render",
133
135
  value: function render() {
134
- var _ref2 = this ? this.asProps : arguments[0],
136
+ var _ref2 = this.asProps,
135
137
  _ref5;
136
138
 
137
139
  var SOverlay = _flexBox.Box;
138
140
  var _this$asProps3 = this.asProps,
139
141
  styles = _this$asProps3.styles,
142
+ theme = _this$asProps3.theme,
140
143
  background = _this$asProps3.background,
141
144
  loading = _this$asProps3.loading,
142
145
  duration = _this$asProps3.duration;
146
+ var useTheme = background ? 'custom' : theme;
143
147
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_animation.FadeInOut, _ref5.cn("FadeInOut", {
144
148
  "visible": loading,
145
149
  "duration": duration
146
150
  }), /*#__PURE__*/_react["default"].createElement(SOverlay, _ref5.cn("SOverlay", _objectSpread({}, (0, _core.assignProps)({
151
+ "use:theme": useTheme,
147
152
  "use:background": (0, _color["default"])(background)
148
153
  }, _ref2)))));
149
154
  }
@@ -163,7 +168,7 @@ var Overlay = /*#__PURE__*/function (_Component2) {
163
168
  });
164
169
 
165
170
  function Content(props) {
166
- var _ref3 = this ? this.asProps : arguments[0],
171
+ var _ref3 = arguments[0],
167
172
  _ref6;
168
173
 
169
174
  var SContent = _flexBox.Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/SpinContainer.jsx"],"names":["SpinContainerRoot","asProps","loading","background","duration","size","theme","SSpinContainer","Box","styles","Children","advanceMode","SpinContainer","Content","displayName","Overlay","Component","style","SOverlay","children","props","SContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIMA,iB;;;;;;;;;;;;WASJ,2BAAkB;AAChB,0BAAuD,KAAKC,OAA5D;AAAA,UAAQC,OAAR,iBAAQA,OAAR;AAAA,UAAiBC,UAAjB,iBAAiBA,UAAjB;AAAA,UAA6BC,QAA7B,iBAA6BA,QAA7B;AAAA,UAAuCC,IAAvC,iBAAuCA,IAAvC;AAAA,UAA6CC,KAA7C,iBAA6CA,KAA7C;AACA,aAAO;AACLH,QAAAA,UAAU,EAAVA,UADK;AAEL;AACAD,QAAAA,OAAO,EAAPA,OAHK;AAILE,QAAAA,QAAQ,EAARA,QAJK;AAKL;AACAC,QAAAA,IAAI,EAAJA,IANK;AAOLC,QAAAA,KAAK,EAALA;AAPK,OAAP;AASD;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,cAAc,GASMC,YAT1B;AACA,2BAA6B,KAAKP,OAAlC;AAAA,UAAQQ,MAAR,kBAAQA,MAAR;AAAA,UAAgBC,QAAhB,kBAAgBA,QAAhB;AAEA,UAAMC,WAAW,GAAG,kCAAcD,QAAd,EAAwB,CAC1CE,aAAa,CAACC,OAAd,CAAsBC,WADoB,EAE1CF,aAAa,CAACG,OAAd,CAAsBD,WAFoB,CAAxB,CAApB;AAKA,qBAAO,mBAAQL,MAAR,CAAP,eACE,gCAAC,cAAD,mFACGE,WAAW,gBACV,gCAAC,QAAD,2BADU,gBAGV,+EACE,gCAAC,aAAD,CAAe,OAAf,qBACE,gCAAC,QAAD,2BADF,CADF,eAIE,gCAAC,aAAD,CAAe,OAAf,OAJF,CAJJ,CADF;AAcD;;;EA7C6BK,e;;iCAA1BhB,iB,iBACiB,e;iCADjBA,iB,WAEWiB,K;iCAFXjB,iB,kBAGkB;AACpBK,EAAAA,IAAI,EAAE,KADc;AAEpBC,EAAAA,KAAK,EAAE,MAFa;AAGpBF,EAAAA,QAAQ,EAAE;AAHU,C;;IA6ClBW,O;;;;;;;;;;;;WAKJ,kBAAS;AAAA;AAAA;;AACP,UAAMG,QAAQ,GAKQV,YALtB;AACA,2BAAkD,KAAKP,OAAvD;AAAA,UAAQQ,MAAR,kBAAQA,MAAR;AAAA,UAAgBN,UAAhB,kBAAgBA,UAAhB;AAAA,UAA4BD,OAA5B,kBAA4BA,OAA5B;AAAA,UAAqCE,QAArC,kBAAqCA,QAArC;AAEA,qBAAO,mBAAQK,MAAR,CAAP,eACE,gCAAC,oBAAD;AAAA,mBAAoBP,OAApB;AAAA,oBAAuCE;AAAvC,uBACE,gCAAC,QAAD;AAAA,0BAAuC,uBAAaD,UAAb;AAAvC,kBADF,CADF;AAKD;;;EAdmBa,e;;iCAAhBD,O,kBACkB;AAAA,MAAGV,IAAH,SAAGA,IAAH;AAAA,MAASC,KAAT,SAASA,KAAT;AAAA,SAAsB;AAC1Ca,IAAAA,QAAQ,eAAE,gCAAC,gBAAD;AAAM,MAAA,IAAI,EAAEd,IAAZ;AAAkB,MAAA,KAAK,EAAEC;AAAzB;AADgC,GAAtB;AAAA,C;;AAgBxB,SAASO,OAAT,CAAiBO,KAAjB,EAAwB;AAAA;AAAA;;AACtB,MAAMC,QAAQ,GAE2Bb,YAFzC;AACA,MAAQC,MAAR,GAAmBW,KAAnB,CAAQX,MAAR;AACA,iBAAO,mBAAQA,MAAR,CAAP,eAAuB,gCAAC,QAAD,6EAAvB;AACD;;AAED,IAAMG,aAAa,GAAG,sBAAgBZ,iBAAhB,EAAmC;AACvDe,EAAAA,OAAO,EAAPA,OADuD;AAEvDF,EAAAA,OAAO,EAAPA;AAFuD,CAAnC,CAAtB;eAKeD,a","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { FadeInOut } from '@semcore/animation';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor from '@semcore/utils/lib/color';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/spin-container.shadow.css';\n\nclass SpinContainerRoot extends Component {\n static displayName = 'SpinContainer';\n static style = style;\n static defaultProps = {\n size: 'xxl',\n theme: 'dark',\n duration: 200,\n };\n\n getOverlayProps() {\n const { loading, background, duration, size, theme } = this.asProps;\n return {\n background,\n // for Animated\n loading,\n duration,\n // for Spin\n size,\n theme,\n };\n }\n\n render() {\n const SSpinContainer = Root;\n const { styles, Children } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n SpinContainer.Content.displayName,\n SpinContainer.Overlay.displayName,\n ]);\n\n return sstyled(styles)(\n <SSpinContainer render={Box}>\n {advanceMode ? (\n <Children />\n ) : (\n <>\n <SpinContainer.Content>\n <Children />\n </SpinContainer.Content>\n <SpinContainer.Overlay />\n </>\n )}\n </SSpinContainer>,\n );\n }\n}\n\nclass Overlay extends Component {\n static defaultProps = ({ size, theme }) => ({\n children: <Spin size={size} theme={theme} />,\n });\n\n render() {\n const SOverlay = Root;\n const { styles, background, loading, duration } = this.asProps;\n\n return sstyled(styles)(\n <FadeInOut visible={loading} duration={duration}>\n <SOverlay render={Box} use:background={resolveColor(background)} />\n </FadeInOut>,\n );\n }\n}\n\nfunction Content(props) {\n const SContent = Root;\n const { styles } = props;\n return sstyled(styles)(<SContent render={Box} />);\n}\n\nconst SpinContainer = createComponent(SpinContainerRoot, {\n Overlay,\n Content,\n});\n\nexport default SpinContainer;\n"],"file":"SpinContainer.js"}
1
+ {"version":3,"sources":["../../src/SpinContainer.jsx"],"names":["SpinContainerRoot","asProps","loading","background","duration","size","theme","SSpinContainer","Box","styles","Children","advanceMode","SpinContainer","Content","displayName","Overlay","Component","style","SOverlay","useTheme","children","props","SContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { FadeInOut } from '@semcore/animation';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor from '@semcore/utils/lib/color';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/spin-container.shadow.css';\n\nclass SpinContainerRoot extends Component {\n static displayName = 'SpinContainer';\n static style = style;\n static defaultProps = {\n size: 'xxl',\n theme: 'dark',\n duration: 200,\n };\n\n getOverlayProps() {\n const { loading, background, duration, size, theme } = this.asProps;\n return {\n background,\n // for Animated\n loading,\n duration,\n // for Spin\n size,\n theme,\n };\n }\n\n render() {\n const SSpinContainer = Root;\n const { styles, Children } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n SpinContainer.Content.displayName,\n SpinContainer.Overlay.displayName,\n ]);\n\n return sstyled(styles)(\n <SSpinContainer render={Box}>\n {advanceMode ? (\n <Children />\n ) : (\n <>\n <SpinContainer.Content>\n <Children />\n </SpinContainer.Content>\n <SpinContainer.Overlay />\n </>\n )}\n </SSpinContainer>,\n );\n }\n}\n\nclass Overlay extends Component {\n static defaultProps = ({ size, theme }) => ({\n children: <Spin size={size} theme={theme} />,\n });\n\n render() {\n const SOverlay = Root;\n const { styles, theme, background, loading, duration } = this.asProps;\n const useTheme = background ? 'custom' : theme;\n\n return sstyled(styles)(\n <FadeInOut visible={loading} duration={duration}>\n <SOverlay render={Box} use:theme={useTheme} use:background={resolveColor(background)} />\n </FadeInOut>,\n );\n }\n}\n\nfunction Content(props) {\n const SContent = Root;\n const { styles } = props;\n return sstyled(styles)(<SContent render={Box} />);\n}\n\nconst SpinContainer = createComponent(SpinContainerRoot, {\n Overlay,\n Content,\n});\n\nexport default SpinContainer;\n"],"file":"SpinContainer.js"}
@@ -0,0 +1,38 @@
1
+ import { PropGetterFn, ReturnEl, CProps } from '@semcore/core';
2
+ import { ISpinProps } from '@semcore/spin';
3
+ import { Box, IBoxProps } from '@semcore/flex-box';
4
+
5
+ export interface ISpinContainerProps extends IBoxProps, ISpinProps {
6
+ /**
7
+ * Color of container spinner; you can use your own color
8
+ */
9
+ background?: string;
10
+ /** Duration of animation displaying in ms
11
+ * @default 200
12
+ */
13
+ duration?: number;
14
+ /**
15
+ * Property responsible for displaying the spinner
16
+ * */
17
+ loading?: boolean;
18
+ }
19
+
20
+ export interface ISpinContainerContext {
21
+ getOverlayProps: PropGetterFn;
22
+ }
23
+
24
+ export interface ISpinContainerOverlayProps extends IBoxProps {
25
+ /**
26
+ * Css background; you can use your own color
27
+ */
28
+ background?: string;
29
+ }
30
+
31
+ declare const SpinContainer: (<T>(
32
+ props: CProps<ISpinContainerProps & T, ISpinContainerContext>,
33
+ ) => ReturnEl) & {
34
+ Content: typeof Box;
35
+ Overlay: <T>(props: ISpinContainerOverlayProps & T) => ReturnEl;
36
+ };
37
+
38
+ export default SpinContainer;
package/lib/cjs/index.js CHANGED
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime/helpers/typeof");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- var _exportNames = {};
9
8
  Object.defineProperty(exports, "default", {
10
9
  enumerable: true,
11
10
  get: function get() {
@@ -13,21 +12,5 @@ Object.defineProperty(exports, "default", {
13
12
  }
14
13
  });
15
14
 
16
- var _SpinContainer = _interopRequireWildcard(require("./SpinContainer"));
17
-
18
- Object.keys(_SpinContainer).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
21
- if (key in exports && exports[key] === _SpinContainer[key]) return;
22
- Object.defineProperty(exports, key, {
23
- enumerable: true,
24
- get: function get() {
25
- return _SpinContainer[key];
26
- }
27
- });
28
- });
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var _SpinContainer = _interopRequireDefault(require("./SpinContainer"));
33
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export { default } from './SpinContainer';\nexport * from './SpinContainer';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './SpinContainer';\n"],"file":"index.js"}
@@ -4,6 +4,7 @@ SSpinContainer {
4
4
  z-index: 0;
5
5
  position: relative;
6
6
  display: block;
7
+ overflow: hidden;
7
8
  }
8
9
 
9
10
  SContent {
@@ -21,9 +22,15 @@ SOverlay {
21
22
  position: absolute;
22
23
  top: 0;
23
24
  left: 0;
25
+ }
26
+
27
+ SOverlay[theme='invert'] {
28
+ background-color: color-mod(var(--gray-800) a(40%));
29
+ }
30
+ SOverlay[theme='dark'] {
24
31
  background-color: rgba(255, 255, 255, 0.85);
25
32
  }
26
33
 
27
- SOverlay[background] {
28
- background: var(--background);
34
+ SOverlay[theme='custom'] {
35
+ background-color: var(--background);
29
36
  }
@@ -30,16 +30,18 @@ var style = (
30
30
  /*__reshadow_css_start__*/
31
31
  _sstyled.insert(
32
32
  /*__inner_css_start__*/
33
- ".___SSpinContainer_1fs6p_gg_{z-index:0;position:relative;display:block}.___SContent_1fs6p_gg_{z-index:0;position:relative}.___SOverlay_1fs6p_gg_{z-index:1;display:flex;width:100%;height:100%;justify-content:center;align-items:center;position:absolute;top:0;left:0;background-color:hsla(0,0%,100%,.85)}.___SOverlay_1fs6p_gg_.__background_1fs6p_gg_{background:var(--background_18krv29)}"
33
+ ".___SSpinContainer_1vd8z_gg_{z-index:0;position:relative;display:block;overflow:hidden}.___SContent_1vd8z_gg_{z-index:0;position:relative}.___SOverlay_1vd8z_gg_{z-index:1;display:flex;width:100%;height:100%;justify-content:center;align-items:center;position:absolute;top:0;left:0}.___SOverlay_1vd8z_gg_._theme_invert_1vd8z_gg_{background-color:rgba(25,27,35,.4)}.___SOverlay_1vd8z_gg_._theme_dark_1vd8z_gg_{background-color:hsla(0,0%,100%,.85)}.___SOverlay_1vd8z_gg_._theme_custom_1vd8z_gg_{background-color:var(--background_1505dra)}"
34
34
  /*__inner_css_end__*/
35
- , "18krv29_gg_")
35
+ , "1505dra_gg_")
36
36
  /*__reshadow_css_end__*/
37
37
  , {
38
- "__SSpinContainer": "___SSpinContainer_1fs6p_gg_",
39
- "__SContent": "___SContent_1fs6p_gg_",
40
- "__SOverlay": "___SOverlay_1fs6p_gg_",
41
- "_background": "__background_1fs6p_gg_",
42
- "--background": "--background_18krv29"
38
+ "__SSpinContainer": "___SSpinContainer_1vd8z_gg_",
39
+ "__SContent": "___SContent_1vd8z_gg_",
40
+ "__SOverlay": "___SOverlay_1vd8z_gg_",
41
+ "_theme_invert": "_theme_invert_1vd8z_gg_",
42
+ "_theme_dark": "_theme_dark_1vd8z_gg_",
43
+ "_theme_custom": "_theme_custom_1vd8z_gg_",
44
+ "--background": "--background_1505dra"
43
45
  });
44
46
 
45
47
  var SpinContainerRoot = /*#__PURE__*/function (_Component) {
@@ -75,7 +77,7 @@ var SpinContainerRoot = /*#__PURE__*/function (_Component) {
75
77
  }, {
76
78
  key: "render",
77
79
  value: function render() {
78
- var _ref = this ? this.asProps : arguments[0],
80
+ var _ref = this.asProps,
79
81
  _ref4;
80
82
 
81
83
  var SSpinContainer = Box;
@@ -114,19 +116,22 @@ var Overlay = /*#__PURE__*/function (_Component2) {
114
116
  _createClass(Overlay, [{
115
117
  key: "render",
116
118
  value: function render() {
117
- var _ref2 = this ? this.asProps : arguments[0],
119
+ var _ref2 = this.asProps,
118
120
  _ref5;
119
121
 
120
122
  var SOverlay = Box;
121
123
  var _this$asProps3 = this.asProps,
122
124
  styles = _this$asProps3.styles,
125
+ theme = _this$asProps3.theme,
123
126
  background = _this$asProps3.background,
124
127
  loading = _this$asProps3.loading,
125
128
  duration = _this$asProps3.duration;
129
+ var useTheme = background ? 'custom' : theme;
126
130
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(FadeInOut, _ref5.cn("FadeInOut", {
127
131
  "visible": loading,
128
132
  "duration": duration
129
133
  }), /*#__PURE__*/React.createElement(SOverlay, _ref5.cn("SOverlay", _objectSpread({}, _assignProps2({
134
+ "use:theme": useTheme,
130
135
  "use:background": resolveColor(background)
131
136
  }, _ref2)))));
132
137
  }
@@ -147,7 +152,7 @@ _defineProperty(Overlay, "defaultProps", function (_ref7) {
147
152
  });
148
153
 
149
154
  function Content(props) {
150
- var _ref3 = this ? this.asProps : arguments[0],
155
+ var _ref3 = arguments[0],
151
156
  _ref6;
152
157
 
153
158
  var SContent = Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/SpinContainer.jsx"],"names":["React","createComponent","Component","sstyled","Root","FadeInOut","Spin","Box","resolveColor","isAdvanceMode","SpinContainerRoot","asProps","loading","background","duration","size","theme","SSpinContainer","styles","Children","advanceMode","SpinContainer","Content","displayName","Overlay","style","SOverlay","children","props","SContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { FadeInOut } from '@semcore/animation';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor from '@semcore/utils/lib/color';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/spin-container.shadow.css';\n\nclass SpinContainerRoot extends Component {\n static displayName = 'SpinContainer';\n static style = style;\n static defaultProps = {\n size: 'xxl',\n theme: 'dark',\n duration: 200,\n };\n\n getOverlayProps() {\n const { loading, background, duration, size, theme } = this.asProps;\n return {\n background,\n // for Animated\n loading,\n duration,\n // for Spin\n size,\n theme,\n };\n }\n\n render() {\n const SSpinContainer = Root;\n const { styles, Children } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n SpinContainer.Content.displayName,\n SpinContainer.Overlay.displayName,\n ]);\n\n return sstyled(styles)(\n <SSpinContainer render={Box}>\n {advanceMode ? (\n <Children />\n ) : (\n <>\n <SpinContainer.Content>\n <Children />\n </SpinContainer.Content>\n <SpinContainer.Overlay />\n </>\n )}\n </SSpinContainer>,\n );\n }\n}\n\nclass Overlay extends Component {\n static defaultProps = ({ size, theme }) => ({\n children: <Spin size={size} theme={theme} />,\n });\n\n render() {\n const SOverlay = Root;\n const { styles, background, loading, duration } = this.asProps;\n\n return sstyled(styles)(\n <FadeInOut visible={loading} duration={duration}>\n <SOverlay render={Box} use:background={resolveColor(background)} />\n </FadeInOut>,\n );\n }\n}\n\nfunction Content(props) {\n const SContent = Root;\n const { styles } = props;\n return sstyled(styles)(<SContent render={Box} />);\n}\n\nconst SpinContainer = createComponent(SpinContainerRoot, {\n Overlay,\n Content,\n});\n\nexport default SpinContainer;\n"],"file":"SpinContainer.js"}
1
+ {"version":3,"sources":["../../src/SpinContainer.jsx"],"names":["React","createComponent","Component","sstyled","Root","FadeInOut","Spin","Box","resolveColor","isAdvanceMode","SpinContainerRoot","asProps","loading","background","duration","size","theme","SSpinContainer","styles","Children","advanceMode","SpinContainer","Content","displayName","Overlay","style","SOverlay","useTheme","children","props","SContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { FadeInOut } from '@semcore/animation';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor from '@semcore/utils/lib/color';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/spin-container.shadow.css';\n\nclass SpinContainerRoot extends Component {\n static displayName = 'SpinContainer';\n static style = style;\n static defaultProps = {\n size: 'xxl',\n theme: 'dark',\n duration: 200,\n };\n\n getOverlayProps() {\n const { loading, background, duration, size, theme } = this.asProps;\n return {\n background,\n // for Animated\n loading,\n duration,\n // for Spin\n size,\n theme,\n };\n }\n\n render() {\n const SSpinContainer = Root;\n const { styles, Children } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n SpinContainer.Content.displayName,\n SpinContainer.Overlay.displayName,\n ]);\n\n return sstyled(styles)(\n <SSpinContainer render={Box}>\n {advanceMode ? (\n <Children />\n ) : (\n <>\n <SpinContainer.Content>\n <Children />\n </SpinContainer.Content>\n <SpinContainer.Overlay />\n </>\n )}\n </SSpinContainer>,\n );\n }\n}\n\nclass Overlay extends Component {\n static defaultProps = ({ size, theme }) => ({\n children: <Spin size={size} theme={theme} />,\n });\n\n render() {\n const SOverlay = Root;\n const { styles, theme, background, loading, duration } = this.asProps;\n const useTheme = background ? 'custom' : theme;\n\n return sstyled(styles)(\n <FadeInOut visible={loading} duration={duration}>\n <SOverlay render={Box} use:theme={useTheme} use:background={resolveColor(background)} />\n </FadeInOut>,\n );\n }\n}\n\nfunction Content(props) {\n const SContent = Root;\n const { styles } = props;\n return sstyled(styles)(<SContent render={Box} />);\n}\n\nconst SpinContainer = createComponent(SpinContainerRoot, {\n Overlay,\n Content,\n});\n\nexport default SpinContainer;\n"],"file":"SpinContainer.js"}
@@ -0,0 +1,38 @@
1
+ import { PropGetterFn, ReturnEl, CProps } from '@semcore/core';
2
+ import { ISpinProps } from '@semcore/spin';
3
+ import { Box, IBoxProps } from '@semcore/flex-box';
4
+
5
+ export interface ISpinContainerProps extends IBoxProps, ISpinProps {
6
+ /**
7
+ * Color of container spinner; you can use your own color
8
+ */
9
+ background?: string;
10
+ /** Duration of animation displaying in ms
11
+ * @default 200
12
+ */
13
+ duration?: number;
14
+ /**
15
+ * Property responsible for displaying the spinner
16
+ * */
17
+ loading?: boolean;
18
+ }
19
+
20
+ export interface ISpinContainerContext {
21
+ getOverlayProps: PropGetterFn;
22
+ }
23
+
24
+ export interface ISpinContainerOverlayProps extends IBoxProps {
25
+ /**
26
+ * Css background; you can use your own color
27
+ */
28
+ background?: string;
29
+ }
30
+
31
+ declare const SpinContainer: (<T>(
32
+ props: CProps<ISpinContainerProps & T, ISpinContainerContext>,
33
+ ) => ReturnEl) & {
34
+ Content: typeof Box;
35
+ Overlay: <T>(props: ISpinContainerOverlayProps & T) => ReturnEl;
36
+ };
37
+
38
+ export default SpinContainer;
package/lib/es6/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export { default } from './SpinContainer';
2
- export * from './SpinContainer';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,iBAAxB;AACA,cAAc,iBAAd","sourcesContent":["export { default } from './SpinContainer';\nexport * from './SpinContainer';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,iBAAxB","sourcesContent":["export { default } from './SpinContainer';\n"],"file":"index.js"}
@@ -4,6 +4,7 @@ SSpinContainer {
4
4
  z-index: 0;
5
5
  position: relative;
6
6
  display: block;
7
+ overflow: hidden;
7
8
  }
8
9
 
9
10
  SContent {
@@ -21,9 +22,15 @@ SOverlay {
21
22
  position: absolute;
22
23
  top: 0;
23
24
  left: 0;
25
+ }
26
+
27
+ SOverlay[theme='invert'] {
28
+ background-color: color-mod(var(--gray-800) a(40%));
29
+ }
30
+ SOverlay[theme='dark'] {
24
31
  background-color: rgba(255, 255, 255, 0.85);
25
32
  }
26
33
 
27
- SOverlay[background] {
28
- background: var(--background);
34
+ SOverlay[theme='custom'] {
35
+ background-color: var(--background);
29
36
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/spin-container",
3
3
  "description": "SEMRush SpinContainer Component",
4
- "version": "5.0.4",
4
+ "version": "6.0.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "types": "lib/types/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@semcore/utils": "^3.31",
17
- "@semcore/spin": "^3",
17
+ "@semcore/spin": "^4",
18
18
  "@semcore/flex-box": "^4",
19
19
  "@semcore/animation": "^1"
20
20
  },
@@ -29,5 +29,8 @@
29
29
  "type": "git",
30
30
  "url": "https://github.com/semrush/intergalactic.git",
31
31
  "directory": "semcore/spin-container"
32
+ },
33
+ "devDependencies": {
34
+ "@semcore/jest-preset-ui": "1.0.0"
32
35
  }
33
36
  }
@@ -63,11 +63,12 @@ class Overlay extends Component {
63
63
 
64
64
  render() {
65
65
  const SOverlay = Root;
66
- const { styles, background, loading, duration } = this.asProps;
66
+ const { styles, theme, background, loading, duration } = this.asProps;
67
+ const useTheme = background ? 'custom' : theme;
67
68
 
68
69
  return sstyled(styles)(
69
70
  <FadeInOut visible={loading} duration={duration}>
70
- <SOverlay render={Box} use:background={resolveColor(background)} />
71
+ <SOverlay render={Box} use:theme={useTheme} use:background={resolveColor(background)} />
71
72
  </FadeInOut>,
72
73
  );
73
74
  }
package/src/index.js CHANGED
@@ -1,2 +1 @@
1
1
  export { default } from './SpinContainer';
2
- export * from './SpinContainer';
@@ -4,6 +4,7 @@ SSpinContainer {
4
4
  z-index: 0;
5
5
  position: relative;
6
6
  display: block;
7
+ overflow: hidden;
7
8
  }
8
9
 
9
10
  SContent {
@@ -21,9 +22,15 @@ SOverlay {
21
22
  position: absolute;
22
23
  top: 0;
23
24
  left: 0;
25
+ }
26
+
27
+ SOverlay[theme='invert'] {
28
+ background-color: color-mod(var(--gray-800) a(40%));
29
+ }
30
+ SOverlay[theme='dark'] {
24
31
  background-color: rgba(255, 255, 255, 0.85);
25
32
  }
26
33
 
27
- SOverlay[background] {
28
- background: var(--background);
34
+ SOverlay[theme='custom'] {
35
+ background-color: var(--background);
29
36
  }