@lowdefy/blocks-loaders 4.7.2 → 5.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.
Files changed (32) hide show
  1. package/dist/blocks/ProgressBar/ProgressBar.js +10 -16
  2. package/dist/blocks/ProgressBar/{schema.js → meta.js} +6 -13
  3. package/dist/blocks/ProgressBar/style.module.css +47 -0
  4. package/dist/blocks/Skeleton/Skeleton.js +7 -13
  5. package/dist/blocks/Skeleton/{schema.js → meta.js} +6 -13
  6. package/dist/blocks/Skeleton/{style.less → style.module.css} +30 -24
  7. package/dist/blocks/SkeletonAvatar/SkeletonAvatar.js +10 -18
  8. package/dist/blocks/SkeletonAvatar/{schema.js → meta.js} +6 -13
  9. package/dist/blocks/SkeletonButton/SkeletonButton.js +10 -18
  10. package/dist/blocks/SkeletonButton/{schema.js → meta.js} +6 -13
  11. package/dist/blocks/SkeletonInput/SkeletonInput.js +17 -23
  12. package/dist/blocks/SkeletonInput/{schema.js → meta.js} +7 -20
  13. package/dist/blocks/SkeletonParagraph/SkeletonParagraph.js +13 -21
  14. package/dist/blocks/SkeletonParagraph/{schema.js → meta.js} +6 -13
  15. package/dist/blocks/Spinner/Spinner.js +15 -22
  16. package/dist/blocks/Spinner/{schema.js → meta.js} +6 -13
  17. package/dist/blocks/Spinner/{style.less → style.module.css} +12 -10
  18. package/dist/{schemas.js → metas.js} +7 -7
  19. package/dist/types.js +4 -16
  20. package/package.json +13 -11
  21. package/dist/blocks/ProgressBar/schema.json +0 -29
  22. package/dist/blocks/ProgressBar/style.less +0 -43
  23. package/dist/blocks/Skeleton/schema.json +0 -35
  24. package/dist/blocks/SkeletonAvatar/schema.json +0 -33
  25. package/dist/blocks/SkeletonAvatar/style.less +0 -17
  26. package/dist/blocks/SkeletonButton/schema.json +0 -34
  27. package/dist/blocks/SkeletonButton/style.less +0 -17
  28. package/dist/blocks/SkeletonInput/schema.json +0 -62
  29. package/dist/blocks/SkeletonInput/style.less +0 -17
  30. package/dist/blocks/SkeletonParagraph/schema.json +0 -33
  31. package/dist/blocks/SkeletonParagraph/style.less +0 -17
  32. package/dist/blocks/Spinner/schema.json +0 -26
@@ -1,5 +1,5 @@
1
1
  /*
2
- Copyright 2020-2021 Lowdefy, Inc
2
+ Copyright 2020-2026 Lowdefy, Inc
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -13,34 +13,28 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
17
- const ProgressBar = ({ blockId, methods, style, properties })=>{
16
+ import { withBlockDefaults } from '@lowdefy/block-utils';
17
+ import cssStyles from './style.module.css';
18
+ const ProgressBar = ({ blockId, classNames, properties, styles })=>{
18
19
  const { progress = 30, height = 4, transitionTime = 1000, // loaderSpeed = 500,
19
20
  // waitingTime = 1000,
20
21
  shadow = true } = properties;
21
22
  return /*#__PURE__*/ React.createElement("div", {
22
23
  id: blockId,
23
- className: methods.makeCssClass(style),
24
+ className: classNames?.element,
24
25
  style: {
26
+ ...styles?.element,
25
27
  '--height': `${height}px`,
26
28
  '--progress': `${progress}%`,
27
29
  '--transition': `all ${transitionTime}ms ease`,
28
30
  '--opacity': progress < 100 ? 1 : 0
29
31
  }
30
32
  }, /*#__PURE__*/ React.createElement("div", {
31
- className: "progress-bar-container"
33
+ className: cssStyles['progress-bar-container']
32
34
  }, /*#__PURE__*/ React.createElement("div", {
33
- className: "progress-bar-loader"
35
+ className: cssStyles['progress-bar-loader']
34
36
  }, shadow ? /*#__PURE__*/ React.createElement("div", {
35
- className: "progress-bar-shadow"
37
+ className: cssStyles['progress-bar-shadow']
36
38
  }) : null)));
37
39
  };
38
- ProgressBar.defaultProps = blockDefaultProps;
39
- ProgressBar.meta = {
40
- category: 'display',
41
- icons: [],
42
- styles: [
43
- 'blocks/ProgressBar/style.less'
44
- ]
45
- };
46
- export default ProgressBar;
40
+ export default withBlockDefaults(ProgressBar);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The ProgressBar element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  height: {
29
27
  type: [
30
28
  'number',
@@ -40,10 +38,5 @@
40
38
  description: 'Width of the skeleton.'
41
39
  }
42
40
  }
43
- },
44
- events: {
45
- type: 'object',
46
- additionalProperties: false,
47
- properties: {}
48
41
  }
49
42
  };
@@ -0,0 +1,47 @@
1
+ /*
2
+ Copyright 2020-2026 Lowdefy, Inc
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ @layer components {
18
+ .progress-bar-loader {
19
+ height: 100%;
20
+ width: var(--progress); /* initial 0% */
21
+ background: var(--ant-color-primary);
22
+ transition: var(--transition);
23
+ opacity: var(--opacity);
24
+ }
25
+
26
+ .progress-bar-container {
27
+ position: fixed;
28
+ top: 0;
29
+ left: 0;
30
+ height: var(--height);
31
+ z-index: 99999999999;
32
+ width: 100%;
33
+ }
34
+
35
+ .progress-bar-shadow {
36
+ box-shadow:
37
+ 0 0 10px var(--ant-color-primary),
38
+ 0 0 10px var(--ant-color-primary);
39
+ width: 20px;
40
+ opacity: 1;
41
+ position: absolute;
42
+ height: 100%;
43
+ transition: var(--transition);
44
+ transform: rotate(3deg) translate(0px, -4px);
45
+ left: calc(var(--progress) - 20px); /* initial -10rem */
46
+ }
47
+ }
@@ -13,22 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
17
- const Skeleton = ({ properties, methods })=>{
16
+ import { withBlockDefaults } from '@lowdefy/block-utils';
17
+ import cssStyles from './style.module.css';
18
+ const Skeleton = ({ classNames, properties, styles })=>{
18
19
  return /*#__PURE__*/ React.createElement("div", {
19
- className: 'skeleton ' + methods.makeCssClass(properties.style),
20
+ className: cssStyles.skeleton + (classNames?.element ? ' ' + classNames.element : ''),
20
21
  style: {
21
22
  width: properties.width ?? '100%',
22
- height: properties.height ?? '100%'
23
+ height: properties.height ?? '100%',
24
+ ...styles?.element
23
25
  }
24
26
  });
25
27
  };
26
- Skeleton.defaultProps = blockDefaultProps;
27
- Skeleton.meta = {
28
- category: 'display',
29
- icons: [],
30
- styles: [
31
- 'blocks/Skeleton/style.less'
32
- ]
33
- };
34
- export default Skeleton;
28
+ export default withBlockDefaults(Skeleton);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The Skeleton element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  height: {
29
27
  type: [
30
28
  'number',
@@ -46,10 +44,5 @@
46
44
  }
47
45
  }
48
46
  }
49
- },
50
- events: {
51
- type: 'object',
52
- additionalProperties: false,
53
- properties: {}
54
47
  }
55
48
  };
@@ -14,32 +14,38 @@
14
14
  limitations under the License.
15
15
  */
16
16
 
17
- .skeleton {
18
- position: relative;
19
- overflow: hidden;
20
- background: #f1f1f1;
21
- }
22
-
23
- .skeleton::before {
24
- content: '';
25
- display: block;
26
- position: absolute;
27
- left: -100%;
28
- max-width: 600px;
29
- top: 0;
30
- height: 200%;
31
- width: 100%;
32
- background: linear-gradient(to right, transparent 0%, #eaeaea 50%, transparent 100%);
33
- background: -webkit-linear-gradient(to right, transparent 0%, #eaeaea 50%, transparent 100%);
34
- animation: load 1.8s infinite;
35
- /* transform: rotate(45deg); */
36
- }
17
+ @layer components {
18
+ .skeleton {
19
+ position: relative;
20
+ overflow: hidden;
21
+ background: var(--ant-color-fill-tertiary);
22
+ }
37
23
 
38
- @keyframes load {
39
- from {
24
+ .skeleton::before {
25
+ content: '';
26
+ display: block;
27
+ position: absolute;
40
28
  left: -100%;
29
+ max-width: 600px;
30
+ top: 0;
31
+ height: 200%;
32
+ width: 100%;
33
+ background: linear-gradient(
34
+ to right,
35
+ transparent 0%,
36
+ var(--ant-color-fill-secondary) 50%,
37
+ transparent 100%
38
+ );
39
+ animation: load 1.8s infinite;
40
+ /* transform: rotate(45deg); */
41
41
  }
42
- to {
43
- left: 100%;
42
+
43
+ @keyframes load {
44
+ from {
45
+ left: -100%;
46
+ }
47
+ to {
48
+ left: 100%;
49
+ }
44
50
  }
45
51
  }
@@ -14,9 +14,9 @@
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
16
  import { type } from '@lowdefy/helpers';
17
- import { blockDefaultProps } from '@lowdefy/block-utils';
17
+ import { withBlockDefaults } from '@lowdefy/block-utils';
18
18
  import Skeleton from '../Skeleton/Skeleton.js';
19
- const SkeletonAvatar = ({ properties, methods })=>{
19
+ const SkeletonAvatar = ({ classNames, properties, styles })=>{
20
20
  let size = properties.size ?? 32;
21
21
  if (type.isString(size)) {
22
22
  switch(properties.size){
@@ -31,25 +31,17 @@ const SkeletonAvatar = ({ properties, methods })=>{
31
31
  }
32
32
  }
33
33
  return /*#__PURE__*/ React.createElement(Skeleton, {
34
- methods: methods,
34
+ classNames: classNames,
35
+ styles: {
36
+ element: {
37
+ borderRadius: properties.shape === 'square' ? '0' : size / 2,
38
+ ...styles?.element
39
+ }
40
+ },
35
41
  properties: {
36
- style: {
37
- ...{
38
- borderRadius: properties.shape === 'square' ? '0' : size / 2
39
- },
40
- ...properties.style || {}
41
- },
42
42
  width: size,
43
43
  height: size
44
44
  }
45
45
  });
46
46
  };
47
- SkeletonAvatar.defaultProps = blockDefaultProps;
48
- SkeletonAvatar.meta = {
49
- category: 'display',
50
- icons: [],
51
- styles: [
52
- 'blocks/SkeletonAvatar/style.less'
53
- ]
54
- };
55
- export default SkeletonAvatar;
47
+ export default withBlockDefaults(SkeletonAvatar);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The SkeletonAvatar element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  size: {
29
27
  type: 'string',
30
28
  default: 'medium',
@@ -45,10 +43,5 @@
45
43
  ]
46
44
  }
47
45
  }
48
- },
49
- events: {
50
- type: 'object',
51
- additionalProperties: false,
52
- properties: {}
53
46
  }
54
47
  };
@@ -13,9 +13,9 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
16
+ import { withBlockDefaults } from '@lowdefy/block-utils';
17
17
  import Skeleton from '../Skeleton/Skeleton.js';
18
- const SkeletonButton = ({ properties, methods })=>{
18
+ const SkeletonButton = ({ classNames, properties, styles })=>{
19
19
  let height;
20
20
  switch(properties.size){
21
21
  case 'small':
@@ -28,25 +28,17 @@ const SkeletonButton = ({ properties, methods })=>{
28
28
  height = 32;
29
29
  }
30
30
  return /*#__PURE__*/ React.createElement(Skeleton, {
31
- methods: methods,
31
+ classNames: classNames,
32
+ styles: {
33
+ element: {
34
+ borderRadius: properties.shape === 'round' && height / 2,
35
+ ...styles?.element
36
+ }
37
+ },
32
38
  properties: {
33
- style: {
34
- ...{
35
- borderRadius: properties.shape === 'round' && height / 2
36
- },
37
- ...properties.style || {}
38
- },
39
39
  width: properties.width ?? '100%',
40
40
  height
41
41
  }
42
42
  });
43
43
  };
44
- SkeletonButton.defaultProps = blockDefaultProps;
45
- SkeletonButton.meta = {
46
- category: 'display',
47
- icons: [],
48
- styles: [
49
- 'blocks/SkeletonButton/style.less'
50
- ]
51
- };
52
- export default SkeletonButton;
44
+ export default withBlockDefaults(SkeletonButton);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The SkeletonButton element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  size: {
29
27
  type: 'string',
30
28
  default: 'medium',
@@ -46,10 +44,5 @@
46
44
  }
47
45
  }
48
46
  }
49
- },
50
- events: {
51
- type: 'object',
52
- additionalProperties: false,
53
- properties: {}
54
47
  }
55
48
  };
@@ -13,9 +13,9 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
16
+ import { withBlockDefaults } from '@lowdefy/block-utils';
17
17
  import Skeleton from '../Skeleton/Skeleton.js';
18
- const SkeletonInput = ({ properties, methods })=>{
18
+ const SkeletonInput = ({ classNames, properties, styles })=>{
19
19
  let inputHeight;
20
20
  switch(properties.size){
21
21
  case 'small':
@@ -27,33 +27,27 @@ const SkeletonInput = ({ properties, methods })=>{
27
27
  default:
28
28
  inputHeight = 32;
29
29
  }
30
- return /*#__PURE__*/ React.createElement("div", null, properties.label !== false && /*#__PURE__*/ React.createElement(Skeleton, {
31
- methods: methods,
30
+ return /*#__PURE__*/ React.createElement("div", {
31
+ className: classNames?.element,
32
+ style: styles?.element
33
+ }, properties.label !== false && /*#__PURE__*/ React.createElement(Skeleton, {
34
+ styles: {
35
+ element: {
36
+ marginBottom: 10
37
+ }
38
+ },
32
39
  properties: {
33
40
  width: properties.labelWidth ?? properties.width ?? '30%',
34
- height: properties.labelHeight ?? 20,
35
- style: {
36
- ...{
37
- marginBottom: 10
38
- },
39
- ...properties.labelStyle || {}
40
- }
41
+ height: properties.labelHeight ?? 20
41
42
  }
42
43
  }), /*#__PURE__*/ React.createElement(Skeleton, {
43
- methods: methods,
44
+ styles: {
45
+ element: styles?.input ?? {}
46
+ },
44
47
  properties: {
45
48
  width: properties.width ?? '100%',
46
- height: properties.inputHeight ?? inputHeight,
47
- style: properties.inputStyle || {}
49
+ height: properties.inputHeight ?? inputHeight
48
50
  }
49
51
  }));
50
52
  };
51
- SkeletonInput.defaultProps = blockDefaultProps;
52
- SkeletonInput.meta = {
53
- category: 'display',
54
- icons: [],
55
- styles: [
56
- 'blocks/SkeletonInput/style.less'
57
- ]
58
- };
59
- export default SkeletonInput;
53
+ export default withBlockDefaults(SkeletonInput);
@@ -13,25 +13,17 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The outer container.',
21
+ input: 'The input skeleton.'
22
+ },
17
23
  properties: {
18
24
  type: 'object',
19
25
  additionalProperties: false,
20
26
  properties: {
21
- labelStyle: {
22
- type: 'object',
23
- description: 'Css style object to apply to the label skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
- inputStyle: {
29
- type: 'object',
30
- description: 'Css style object to apply to the input skeleton.',
31
- docs: {
32
- displayType: 'yaml'
33
- }
34
- },
35
27
  size: {
36
28
  type: 'string',
37
29
  default: 'medium',
@@ -83,10 +75,5 @@
83
75
  }
84
76
  }
85
77
  }
86
- },
87
- events: {
88
- type: 'object',
89
- additionalProperties: false,
90
- properties: {}
91
78
  }
92
79
  };
@@ -13,37 +13,29 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
- import { blockDefaultProps } from '@lowdefy/block-utils';
16
+ import { withBlockDefaults } from '@lowdefy/block-utils';
17
17
  import Skeleton from '../Skeleton/Skeleton.js';
18
- const SkeletonParagraph = ({ properties, methods })=>{
18
+ const SkeletonParagraph = ({ classNames, properties, styles })=>{
19
19
  const lines = [
20
20
  ...Array(properties.lines ?? 4).keys()
21
21
  ];
22
22
  return /*#__PURE__*/ React.createElement("div", {
23
+ className: classNames?.element,
23
24
  style: {
24
- width: properties.width ?? '100%'
25
+ width: properties.width ?? '100%',
26
+ ...styles?.element
25
27
  }
26
28
  }, lines.map((key)=>/*#__PURE__*/ React.createElement(Skeleton, {
27
29
  key: key,
28
- methods: methods,
30
+ styles: {
31
+ element: {
32
+ marginBottom: '1rem'
33
+ }
34
+ },
29
35
  properties: {
30
- ...{
31
- height: '1.25rem',
32
- width: key === lines.length - 1 && key !== 0 ? '40%' : '100%',
33
- style: {
34
- marginBottom: '1rem'
35
- }
36
- },
37
- ...properties.style || {}
36
+ height: '1.25rem',
37
+ width: key === lines.length - 1 && key !== 0 ? '40%' : '100%'
38
38
  }
39
39
  })));
40
40
  };
41
- SkeletonParagraph.defaultProps = blockDefaultProps;
42
- SkeletonParagraph.meta = {
43
- category: 'display',
44
- icons: [],
45
- styles: [
46
- 'blocks/SkeletonParagraph/style.less'
47
- ]
48
- };
49
- export default SkeletonParagraph;
41
+ export default withBlockDefaults(SkeletonParagraph);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The SkeletonParagraph element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the skeleton.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  lines: {
29
27
  type: 'number',
30
28
  default: 4,
@@ -41,10 +39,5 @@
41
39
  }
42
40
  }
43
41
  }
44
- },
45
- events: {
46
- type: 'object',
47
- additionalProperties: false,
48
- properties: {}
49
42
  }
50
43
  };
@@ -14,8 +14,9 @@
14
14
  limitations under the License.
15
15
  */ import React from 'react';
16
16
  import { type } from '@lowdefy/helpers';
17
- import { blockDefaultProps } from '@lowdefy/block-utils';
18
- const Spinner = ({ properties, methods })=>{
17
+ import { withBlockDefaults } from '@lowdefy/block-utils';
18
+ import cssStyles from './style.module.css';
19
+ const Spinner = ({ classNames, properties, styles })=>{
19
20
  let size = properties.size ?? 20;
20
21
  if (type.isString(size)) {
21
22
  switch(properties.size){
@@ -30,15 +31,15 @@ const Spinner = ({ properties, methods })=>{
30
31
  }
31
32
  }
32
33
  return /*#__PURE__*/ React.createElement("span", {
33
- className: methods.makeCssClass([
34
- {
35
- height: size,
36
- display: 'flex',
37
- alignItems: 'center',
38
- justifyContent: 'center'
39
- },
40
- properties.style
41
- ])
34
+ className: classNames?.element,
35
+ style: {
36
+ height: size,
37
+ display: 'flex',
38
+ alignItems: 'center',
39
+ justifyContent: 'center',
40
+ color: 'var(--ant-color-text-quaternary)',
41
+ ...styles?.element
42
+ }
42
43
  }, /*#__PURE__*/ React.createElement("svg", {
43
44
  viewBox: "0 0 1024 1024",
44
45
  focusable: "false",
@@ -47,18 +48,10 @@ const Spinner = ({ properties, methods })=>{
47
48
  height: size,
48
49
  fill: "currentColor",
49
50
  "aria-hidden": "true",
50
- className: "spinner"
51
+ className: cssStyles.spinner
51
52
  }, /*#__PURE__*/ React.createElement("path", {
52
- fill: "#bfbfbf",
53
+ fill: "currentColor",
53
54
  d: "M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z"
54
55
  })));
55
56
  };
56
- Spinner.defaultProps = blockDefaultProps;
57
- Spinner.meta = {
58
- category: 'display',
59
- icons: [],
60
- styles: [
61
- 'blocks/Spinner/style.less'
62
- ]
63
- };
64
- export default Spinner;
57
+ export default withBlockDefaults(Spinner);
@@ -13,18 +13,16 @@
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */ export default {
16
- type: 'object',
16
+ category: 'display',
17
+ icons: [],
18
+ valueType: null,
19
+ cssKeys: {
20
+ element: 'The Spinner element.'
21
+ },
17
22
  properties: {
18
23
  type: 'object',
19
24
  additionalProperties: false,
20
25
  properties: {
21
- style: {
22
- type: 'object',
23
- description: 'Css style object to apply to the icon.',
24
- docs: {
25
- displayType: 'yaml'
26
- }
27
- },
28
26
  size: {
29
27
  type: 'string',
30
28
  description: 'Size of the icon spinner.',
@@ -35,10 +33,5 @@
35
33
  ]
36
34
  }
37
35
  }
38
- },
39
- events: {
40
- type: 'object',
41
- additionalProperties: false,
42
- properties: {}
43
36
  }
44
37
  };
@@ -14,16 +14,18 @@
14
14
  limitations under the License.
15
15
  */
16
16
 
17
- .spinner {
18
- animation: spin-animation 1s infinite linear;
19
- display: inline-block;
20
- }
21
-
22
- @keyframes spin-animation {
23
- 0% {
24
- transform: rotate(0deg);
17
+ @layer components {
18
+ .spinner {
19
+ animation: spin-animation 1s infinite linear;
20
+ display: inline-block;
25
21
  }
26
- 100% {
27
- transform: rotate(359deg);
22
+
23
+ @keyframes spin-animation {
24
+ 0% {
25
+ transform: rotate(0deg);
26
+ }
27
+ 100% {
28
+ transform: rotate(359deg);
29
+ }
28
30
  }
29
31
  }
@@ -12,10 +12,10 @@
12
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
- */ export { default as ProgressBar } from './blocks/ProgressBar/schema.js';
16
- export { default as Skeleton } from './blocks/Skeleton/schema.js';
17
- export { default as SkeletonAvatar } from './blocks/SkeletonAvatar/schema.js';
18
- export { default as SkeletonButton } from './blocks/SkeletonButton/schema.js';
19
- export { default as SkeletonInput } from './blocks/SkeletonInput/schema.js';
20
- export { default as SkeletonParagraph } from './blocks/SkeletonParagraph/schema.js';
21
- export { default as Spinner } from './blocks/Spinner/schema.js';
15
+ */ export { default as ProgressBar } from './blocks/ProgressBar/meta.js';
16
+ export { default as Skeleton } from './blocks/Skeleton/meta.js';
17
+ export { default as SkeletonAvatar } from './blocks/SkeletonAvatar/meta.js';
18
+ export { default as SkeletonButton } from './blocks/SkeletonButton/meta.js';
19
+ export { default as SkeletonInput } from './blocks/SkeletonInput/meta.js';
20
+ export { default as SkeletonParagraph } from './blocks/SkeletonParagraph/meta.js';
21
+ export { default as Spinner } from './blocks/Spinner/meta.js';
package/dist/types.js CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable import/namespace */ /*
1
+ /*
2
2
  Copyright 2020-2026 Lowdefy, Inc
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,18 +12,6 @@
12
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
- */ import * as blocks from './blocks.js';
16
- const icons = {};
17
- const styles = {};
18
- Object.keys(blocks).forEach((block)=>{
19
- icons[block] = blocks[block].meta.icons ?? [];
20
- styles[block] = blocks[block].meta.styles ?? [];
21
- });
22
- export default {
23
- blocks: Object.keys(blocks),
24
- icons,
25
- styles: {
26
- default: [],
27
- ...styles
28
- }
29
- };
15
+ */ import { extractBlockTypes } from '@lowdefy/block-utils';
16
+ import * as metas from './metas.js';
17
+ export default extractBlockTypes(metas);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lowdefy/blocks-loaders",
3
- "version": "4.7.2",
3
+ "version": "5.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Lowdefy loader blocks.",
6
6
  "homepage": "https://lowdefy.com",
@@ -34,32 +34,34 @@
34
34
  "exports": {
35
35
  "./*": "./dist/*",
36
36
  "./blocks": "./dist/blocks.js",
37
+ "./metas": "./dist/metas.js",
37
38
  "./e2e": "./dist/e2e.js",
38
- "./schemas": "./dist/schemas.js",
39
39
  "./types": "./dist/types.js"
40
40
  },
41
41
  "files": [
42
42
  "dist/*"
43
43
  ],
44
44
  "dependencies": {
45
- "@lowdefy/block-utils": "4.7.2",
46
- "@lowdefy/helpers": "4.7.2",
47
- "react": "18.2.0",
48
- "react-dom": "18.2.0"
45
+ "@lowdefy/block-utils": "5.0.0",
46
+ "@lowdefy/helpers": "5.0.0"
47
+ },
48
+ "peerDependencies": {
49
+ "react": ">=18",
50
+ "react-dom": ">=18"
49
51
  },
50
52
  "devDependencies": {
51
- "@lowdefy/block-dev-e2e": "4.7.2",
52
- "@lowdefy/e2e-utils": "4.7.2",
53
+ "@lowdefy/block-dev-e2e": "5.0.0",
54
+ "@lowdefy/e2e-utils": "5.0.0",
53
55
  "@playwright/test": "1.50.1",
54
- "@swc/cli": "0.1.63",
55
- "@swc/core": "1.3.99",
56
+ "@swc/cli": "0.8.0",
57
+ "@swc/core": "1.15.18",
56
58
  "copyfiles": "2.4.1"
57
59
  },
58
60
  "publishConfig": {
59
61
  "access": "public"
60
62
  },
61
63
  "scripts": {
62
- "build": "swc src --out-dir dist --config-file ../../../../.swcrc --delete-dir-on-start && pnpm copyfiles",
64
+ "build": "swc src --out-dir dist --config-file ../../../../.swcrc --cli-config-file ../../../../.swc-cli.json && pnpm copyfiles",
63
65
  "clean": "rm -rf dist",
64
66
  "copyfiles": "copyfiles -u 1 \"./src/**/*\" dist -e \"./src/**/*.js\" -e \"./src/**/*.yaml\" -e \"./src/**/*.snap\"",
65
67
  "e2e": "playwright test --config e2e/playwright.config.js",
@@ -1,29 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "height": {
15
- "type": ["number", "string"],
16
- "description": "Height of the skeleton."
17
- },
18
- "width": {
19
- "type": ["number", "string"],
20
- "description": "Width of the skeleton."
21
- }
22
- }
23
- },
24
- "events": {
25
- "type": "object",
26
- "additionalProperties": false,
27
- "properties": {}
28
- }
29
- }
@@ -1,43 +0,0 @@
1
- /*
2
- Copyright 2020-2021 Lowdefy, Inc
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- .progress-bar-loader {
18
- height: 100%;
19
- width: var(--progress); // initial 0%
20
- background: @primary-color;
21
- transition: var(--transition);
22
- opacity: var(--opacity);
23
- }
24
-
25
- .progress-bar-container {
26
- position: fixed;
27
- top: 0;
28
- left: 0;
29
- height: var(--height);
30
- z-index: 99999999999;
31
- width: 100%;
32
- }
33
-
34
- .progress-bar-shadow {
35
- box-shadow: 0 0 10px @primary-color, 0 0 10px @primary-color;
36
- width: 20px;
37
- opacity: 1;
38
- position: absolute;
39
- height: 100%;
40
- transition: var(--transition);
41
- transform: rotate(3deg) translate(0px, -4px);
42
- left: calc(var(--progress) - 20px); // initial -10rem
43
- }
@@ -1,35 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "height": {
15
- "type": ["number", "string"],
16
- "description": "Height of the skeleton.",
17
- "docs": {
18
- "displayType": "string"
19
- }
20
- },
21
- "width": {
22
- "type": ["number", "string"],
23
- "description": "Width of the skeleton.",
24
- "docs": {
25
- "displayType": "string"
26
- }
27
- }
28
- }
29
- },
30
- "events": {
31
- "type": "object",
32
- "additionalProperties": false,
33
- "properties": {}
34
- }
35
- }
@@ -1,33 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "size": {
15
- "type": "string",
16
- "default": "medium",
17
- "description": "Size of the skeleton.",
18
- "enum": ["small", "medium", "large"]
19
- },
20
- "shape": {
21
- "type": "string",
22
- "default": "round",
23
- "description": "Shape of the skeleton.",
24
- "enum": ["square", "round"]
25
- }
26
- }
27
- },
28
- "events": {
29
- "type": "object",
30
- "additionalProperties": false,
31
- "properties": {}
32
- }
33
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2020-2026 Lowdefy, Inc
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- @import '../Skeleton/style.less';
@@ -1,34 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "size": {
15
- "type": "string",
16
- "default": "medium",
17
- "description": "Size of the skeleton.",
18
- "enum": ["small", "medium", "large"]
19
- },
20
- "width": {
21
- "type": ["number", "string"],
22
- "description": "Width of the skeleton.",
23
- "docs": {
24
- "displayType": "string"
25
- }
26
- }
27
- }
28
- },
29
- "events": {
30
- "type": "object",
31
- "additionalProperties": false,
32
- "properties": {}
33
- }
34
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2020-2026 Lowdefy, Inc
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- @import '../Skeleton/style.less';
@@ -1,62 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "labelStyle": {
8
- "type": "object",
9
- "description": "Css style object to apply to the label skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "inputStyle": {
15
- "type": "object",
16
- "description": "Css style object to apply to the input skeleton.",
17
- "docs": {
18
- "displayType": "yaml"
19
- }
20
- },
21
- "size": {
22
- "type": "string",
23
- "default": "medium",
24
- "description": "Size of the skeleton.",
25
- "enum": ["small", "medium", "large"]
26
- },
27
- "width": {
28
- "type": ["number", "string"],
29
- "description": "Width of the skeleton.",
30
- "docs": {
31
- "displayType": "string"
32
- }
33
- },
34
- "labelHeight": {
35
- "type": ["number", "string"],
36
- "description": "Height of the skeleton.",
37
- "docs": {
38
- "displayType": "string"
39
- }
40
- },
41
- "labelWidth": {
42
- "type": ["number", "string"],
43
- "description": "Width of the skeleton.",
44
- "docs": {
45
- "displayType": "string"
46
- }
47
- },
48
- "inputHeight": {
49
- "type": ["number", "string"],
50
- "description": "Height of the skeleton.",
51
- "docs": {
52
- "displayType": "string"
53
- }
54
- }
55
- }
56
- },
57
- "events": {
58
- "type": "object",
59
- "additionalProperties": false,
60
- "properties": {}
61
- }
62
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2020-2026 Lowdefy, Inc
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- @import '../Skeleton/style.less';
@@ -1,33 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the skeleton.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "lines": {
15
- "type": "number",
16
- "default": 4,
17
- "description": "Number of paragraph lines of the skeleton."
18
- },
19
- "width": {
20
- "type": ["number", "string"],
21
- "description": "Width of the skeleton.",
22
- "docs": {
23
- "displayType": "string"
24
- }
25
- }
26
- }
27
- },
28
- "events": {
29
- "type": "object",
30
- "additionalProperties": false,
31
- "properties": {}
32
- }
33
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2020-2026 Lowdefy, Inc
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- @import '../Skeleton/style.less';
@@ -1,26 +0,0 @@
1
- {
2
- "type": "object",
3
- "properties": {
4
- "type": "object",
5
- "additionalProperties": false,
6
- "properties": {
7
- "style": {
8
- "type": "object",
9
- "description": "Css style object to apply to the icon.",
10
- "docs": {
11
- "displayType": "yaml"
12
- }
13
- },
14
- "size": {
15
- "type": "string",
16
- "description": "Size of the icon spinner.",
17
- "enum": ["small", "medium", "large"]
18
- }
19
- }
20
- },
21
- "events": {
22
- "type": "object",
23
- "additionalProperties": false,
24
- "properties": {}
25
- }
26
- }