@rededor/cura 0.2.1 → 0.3.1

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 (102) hide show
  1. package/dist/assets/icons/iconset-default-list.ts +1 -1
  2. package/dist/assets/icons/iconset-default.svg +1 -1
  3. package/dist/cjs/app-globals-5f5b9fbf.js +398 -0
  4. package/dist/cjs/cura-display_5.cjs.entry.js +261 -0
  5. package/dist/cjs/cura.cjs.js +3 -3
  6. package/dist/cjs/{index-9092c64d.js → index-8686299e.js} +29 -0
  7. package/dist/cjs/loader.cjs.js +3 -3
  8. package/dist/collection/api/cura-api.js +10 -1
  9. package/dist/collection/api/modules/cura-theme-colors-module.js +69 -0
  10. package/dist/collection/api/modules/cura-theme-fonts-module.js +35 -0
  11. package/dist/collection/api/modules/cura-theme-module.js +4 -0
  12. package/dist/collection/api/theme-presets/static.js +103 -0
  13. package/dist/collection/api/theme-presets/theme-default.js +28 -22
  14. package/dist/collection/api/theme-presets/theme-maternity.js +10 -12
  15. package/dist/collection/assets/icons/iconset-default-list.js +1 -1
  16. package/dist/collection/assets/icons/iconset-default.svg +1 -1
  17. package/dist/collection/assets-raw/icons/default/facebook.svg +3 -0
  18. package/dist/collection/assets-raw/icons/default/google.svg +3 -0
  19. package/dist/collection/assets-raw/icons/default/instagram.svg +5 -0
  20. package/dist/collection/assets-raw/icons/default/lattes.svg +3 -0
  21. package/dist/collection/assets-raw/icons/default/likeHand.svg +4 -0
  22. package/dist/collection/assets-raw/icons/default/linkedin.svg +5 -0
  23. package/dist/collection/assets-raw/icons/default/twitter.svg +3 -0
  24. package/dist/collection/assets-raw/icons/default/unlikeHand.svg +4 -0
  25. package/dist/collection/assets-raw/icons/default/whatsapp.svg +4 -0
  26. package/dist/collection/assets-raw/icons/default/youtube.svg +4 -0
  27. package/dist/collection/collection-manifest.json +3 -1
  28. package/dist/collection/components/cura-icon/cura-icon.css +1 -43
  29. package/dist/collection/components/cura-icon/cura-icon.js +15 -12
  30. package/dist/collection/components/cura-icons-view/cura-icons-view.js +1 -1
  31. package/dist/collection/components/text/cura-display/cura-display.css +61 -0
  32. package/dist/collection/components/text/cura-display/cura-display.js +110 -0
  33. package/dist/collection/components/text/cura-heading/cura-heading.css +69 -0
  34. package/dist/collection/components/text/cura-heading/cura-heading.js +136 -0
  35. package/dist/collection/components/text/cura-paragraph/cura-paragraph.css +81 -0
  36. package/dist/collection/components/text/cura-paragraph/cura-paragraph.js +76 -0
  37. package/dist/components/{dummy-component.d.ts → cura-display.d.ts} +4 -4
  38. package/dist/components/cura-display.js +86 -0
  39. package/dist/components/cura-heading.d.ts +11 -0
  40. package/dist/components/cura-heading.js +95 -0
  41. package/dist/components/cura-icon2.js +12 -13
  42. package/dist/components/cura-icons-view.js +2 -2
  43. package/dist/components/cura-paragraph.d.ts +11 -0
  44. package/dist/components/cura-paragraph.js +69 -0
  45. package/dist/components/index.d.ts +3 -1
  46. package/dist/components/index.js +261 -36
  47. package/dist/cura/cura.esm.js +1 -1
  48. package/dist/cura/cura.js +1 -1
  49. package/dist/cura/p-265c1706.js +1 -0
  50. package/dist/cura/p-3d8bbf37.system.js +1 -0
  51. package/dist/cura/p-a50716bc.js +2 -0
  52. package/dist/cura/p-a8dcaaed.system.js +1 -0
  53. package/dist/cura/p-e447016d.system.js +2 -0
  54. package/dist/cura/p-fc50b109.system.entry.js +1 -0
  55. package/dist/cura/p-fc80cb18.entry.js +1 -0
  56. package/dist/esm/app-globals-d7dd3a4d.js +396 -0
  57. package/dist/esm/cura-display_5.entry.js +253 -0
  58. package/dist/esm/cura.js +3 -3
  59. package/dist/esm/{index-cec9b650.js → index-c3d31886.js} +29 -0
  60. package/dist/esm/loader.js +3 -3
  61. package/dist/esm-es5/app-globals-d7dd3a4d.js +1 -0
  62. package/dist/esm-es5/cura-display_5.entry.js +1 -0
  63. package/dist/esm-es5/cura.js +1 -1
  64. package/dist/esm-es5/index-c3d31886.js +2 -0
  65. package/dist/esm-es5/loader.js +1 -1
  66. package/dist/types/api/cura-api.type.d.ts +9 -0
  67. package/dist/types/api/modules/cura-theme-colors-module.d.ts +48 -0
  68. package/dist/types/api/modules/cura-theme-fonts-module.d.ts +24 -0
  69. package/dist/types/api/modules/cura-theme-module.d.ts +4 -0
  70. package/dist/types/api/theme-presets/static.d.ts +78 -0
  71. package/dist/types/api/theme-presets/theme-default.d.ts +28 -22
  72. package/dist/types/api/theme-presets/theme-maternity.d.ts +23 -19
  73. package/dist/types/api/theme-presets/theme-presets.d.ts +51 -41
  74. package/dist/types/components/cura-icon/cura-icon.d.ts +1 -1
  75. package/dist/types/components/text/cura-display/cura-display.d.ts +28 -0
  76. package/dist/types/components/text/cura-heading/cura-heading.d.ts +33 -0
  77. package/dist/types/components/text/cura-paragraph/cura-paragraph.d.ts +22 -0
  78. package/dist/types/components.d.ts +83 -9
  79. package/package.json +2 -2
  80. package/dist/cjs/app-globals-af978331.js +0 -175
  81. package/dist/cjs/cura-icon_2.cjs.entry.js +0 -81
  82. package/dist/cjs/dummy-component.cjs.entry.js +0 -19
  83. package/dist/collection/components/dummy-component/dummy-component.css +0 -3
  84. package/dist/collection/components/dummy-component/dummy-component.js +0 -18
  85. package/dist/components/dummy-component.js +0 -33
  86. package/dist/cura/p-18f978f3.system.entry.js +0 -1
  87. package/dist/cura/p-3132f4b7.system.js +0 -2
  88. package/dist/cura/p-5f113376.entry.js +0 -1
  89. package/dist/cura/p-70abb532.system.js +0 -1
  90. package/dist/cura/p-a0cd4b75.system.js +0 -1
  91. package/dist/cura/p-abcda1d1.js +0 -2
  92. package/dist/cura/p-ac79f9d1.entry.js +0 -1
  93. package/dist/cura/p-b4c69836.system.entry.js +0 -1
  94. package/dist/cura/p-d2dcd470.js +0 -1
  95. package/dist/esm/app-globals-962e5cc3.js +0 -173
  96. package/dist/esm/cura-icon_2.entry.js +0 -76
  97. package/dist/esm/dummy-component.entry.js +0 -15
  98. package/dist/esm-es5/app-globals-962e5cc3.js +0 -1
  99. package/dist/esm-es5/cura-icon_2.entry.js +0 -1
  100. package/dist/esm-es5/dummy-component.entry.js +0 -1
  101. package/dist/esm-es5/index-cec9b650.js +0 -2
  102. package/dist/types/components/dummy-component/dummy-component.d.ts +0 -3
@@ -4,37 +4,43 @@
4
4
  export declare const ThemeDefault: {
5
5
  color: {
6
6
  primary: {
7
- depth100: string;
8
- depth300: string;
9
- base: string;
10
- depth700: string;
11
- depth900: string;
7
+ '100': string;
8
+ '300': string;
9
+ '500': string;
10
+ '700': string;
11
+ '900': string;
12
12
  };
13
13
  secondary: {
14
- depth100: string;
15
- depth300: string;
16
- base: string;
17
- depth700: string;
18
- depth900: string;
14
+ '100': string;
15
+ '300': string;
16
+ '500': string;
17
+ '700': string;
18
+ '900': string;
19
19
  };
20
20
  accent: {
21
- depth100: string;
22
- depth300: string;
23
- base: string;
24
- depth700: string;
25
- depth900: string;
21
+ '100': string;
22
+ '300': string;
23
+ '500': string;
24
+ '700': string;
25
+ '900': string;
26
26
  };
27
27
  };
28
28
  spacing: {
29
- base: string;
29
+ base: number;
30
30
  };
31
31
  font: {
32
- family: {
33
- title: string;
34
- body: string;
35
- };
36
- size: {
37
- base: string;
32
+ size: string;
33
+ color: string;
34
+ body: string;
35
+ heading: string;
36
+ display: string;
37
+ weights: {
38
+ thin: number;
39
+ light: number;
40
+ regular: number;
41
+ medium: number;
42
+ bold: number;
43
+ black: number;
38
44
  };
39
45
  };
40
46
  };
@@ -1,32 +1,36 @@
1
1
  export declare const ThemeMaternity: {
2
2
  color: {
3
3
  primary: {
4
- base: string;
5
- depth100: string;
6
- depth300: string;
7
- depth500: string;
8
- depth700: string;
9
- depth900: string;
4
+ '100': string;
5
+ '300': string;
6
+ '500': string;
7
+ '700': string;
8
+ '900': string;
10
9
  };
11
10
  secondary: {
12
- base: string;
13
- depth100: string;
14
- depth300: string;
15
- depth500: string;
16
- depth700: string;
17
- depth900: string;
11
+ '100': string;
12
+ '300': string;
13
+ '500': string;
14
+ '700': string;
15
+ '900': string;
18
16
  };
19
17
  };
20
18
  spacing: {
21
- base: string;
19
+ base: number;
22
20
  };
23
21
  font: {
24
- family: {
25
- title: string;
26
- body: string;
27
- };
28
- size: {
29
- base: string;
22
+ size: string;
23
+ color: string;
24
+ body: string;
25
+ heading: string;
26
+ display: string;
27
+ weights: {
28
+ thin: number;
29
+ light: number;
30
+ regular: number;
31
+ medium: number;
32
+ bold: number;
33
+ black: number;
30
34
  };
31
35
  };
32
36
  };
@@ -2,69 +2,79 @@ export declare const ThemePresets: {
2
2
  default: {
3
3
  color: {
4
4
  primary: {
5
- depth100: string;
6
- depth300: string;
7
- base: string;
8
- depth700: string;
9
- depth900: string;
5
+ '100': string;
6
+ '300': string;
7
+ '500': string;
8
+ '700': string;
9
+ '900': string;
10
10
  };
11
11
  secondary: {
12
- depth100: string;
13
- depth300: string;
14
- base: string;
15
- depth700: string;
16
- depth900: string;
12
+ '100': string;
13
+ '300': string;
14
+ '500': string;
15
+ '700': string;
16
+ '900': string;
17
17
  };
18
18
  accent: {
19
- depth100: string;
20
- depth300: string;
21
- base: string;
22
- depth700: string;
23
- depth900: string;
19
+ '100': string;
20
+ '300': string;
21
+ '500': string;
22
+ '700': string;
23
+ '900': string;
24
24
  };
25
25
  };
26
26
  spacing: {
27
- base: string;
27
+ base: number;
28
28
  };
29
29
  font: {
30
- family: {
31
- title: string;
32
- body: string;
33
- };
34
- size: {
35
- base: string;
30
+ size: string;
31
+ color: string;
32
+ body: string;
33
+ heading: string;
34
+ display: string;
35
+ weights: {
36
+ thin: number;
37
+ light: number;
38
+ regular: number;
39
+ medium: number;
40
+ bold: number;
41
+ black: number;
36
42
  };
37
43
  };
38
44
  };
39
45
  maternidade: {
40
46
  color: {
41
47
  primary: {
42
- base: string;
43
- depth100: string;
44
- depth300: string;
45
- depth500: string;
46
- depth700: string;
47
- depth900: string;
48
+ '100': string;
49
+ '300': string;
50
+ '500': string;
51
+ '700': string;
52
+ '900': string;
48
53
  };
49
54
  secondary: {
50
- base: string;
51
- depth100: string;
52
- depth300: string;
53
- depth500: string;
54
- depth700: string;
55
- depth900: string;
55
+ '100': string;
56
+ '300': string;
57
+ '500': string;
58
+ '700': string;
59
+ '900': string;
56
60
  };
57
61
  };
58
62
  spacing: {
59
- base: string;
63
+ base: number;
60
64
  };
61
65
  font: {
62
- family: {
63
- title: string;
64
- body: string;
65
- };
66
- size: {
67
- base: string;
66
+ size: string;
67
+ color: string;
68
+ body: string;
69
+ heading: string;
70
+ display: string;
71
+ weights: {
72
+ thin: number;
73
+ light: number;
74
+ regular: number;
75
+ medium: number;
76
+ bold: number;
77
+ black: number;
68
78
  };
69
79
  };
70
80
  };
@@ -48,9 +48,9 @@ export declare class CuraIcon {
48
48
  };
49
49
  };
50
50
  sizeHandler(size: string | number): void;
51
+ colorHandler(): void;
51
52
  assetsPath: string;
52
53
  connectedCallback(): void;
53
- getClasses(): {};
54
54
  setHostProperty(prop: string, value: string): void;
55
55
  render(): any;
56
56
  }
@@ -0,0 +1,28 @@
1
+ export declare class CuraDisplay {
2
+ /**
3
+ * Heading level for semantics.
4
+ * Values: 1(default)-6.
5
+ */
6
+ level: number;
7
+ /**
8
+ * Heading style size.
9
+ * Values: small | regular(default) | large.
10
+ */
11
+ size: string;
12
+ /**
13
+ * Host element <cura-heading>
14
+ */
15
+ host: HTMLElement;
16
+ /**
17
+ * Internal Props
18
+ */
19
+ weights: any;
20
+ styles: any;
21
+ connectedCallback(): void;
22
+ getClasses(): {};
23
+ setFontProperties(): void;
24
+ setColors(): void;
25
+ setHostProperty(prop: string, value: string): void;
26
+ getHeadingTag(): any;
27
+ render(): any;
28
+ }
@@ -0,0 +1,33 @@
1
+ export declare class CuraHeading {
2
+ /**
3
+ * Heading level for semantics.
4
+ * Values: 1(default)-6.
5
+ */
6
+ level: number;
7
+ /**
8
+ * Heading style size.
9
+ * Values: small | regular(default) | large.
10
+ */
11
+ size: string;
12
+ /**
13
+ * Heading font weight.
14
+ * Values: regular(default) | bold.
15
+ */
16
+ weight: string;
17
+ /**
18
+ * Host element <cura-heading>
19
+ */
20
+ host: HTMLElement;
21
+ /**
22
+ * Internal Props
23
+ */
24
+ weights: any;
25
+ styles: any;
26
+ connectedCallback(): void;
27
+ getClasses(): {};
28
+ setFontProperties(): void;
29
+ setColors(): void;
30
+ setHostProperty(prop: string, value: string): void;
31
+ getHeadingTag(): any;
32
+ render(): any;
33
+ }
@@ -0,0 +1,22 @@
1
+ export declare class CuraParagraph {
2
+ /**
3
+ * Set size of body text.
4
+ * Values: regular (default) | large | small | caption.
5
+ */
6
+ size: string;
7
+ /**
8
+ * Host element <cura-paragraph>
9
+ */
10
+ host: HTMLElement;
11
+ /**
12
+ * Internal Props
13
+ */
14
+ weights: any;
15
+ styles: any;
16
+ connectedCallback(): void;
17
+ setsizeClass(): {};
18
+ setFontProperties(): void;
19
+ setColors(): void;
20
+ setHostProperty(prop: string, value: string): void;
21
+ render(): any;
22
+ }
@@ -6,6 +6,30 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  export namespace Components {
9
+ interface CuraDisplay {
10
+ /**
11
+ * Heading level for semantics. Values: 1(default)-6.
12
+ */
13
+ "level": number;
14
+ /**
15
+ * Heading style size. Values: small | regular(default) | large.
16
+ */
17
+ "size": string;
18
+ }
19
+ interface CuraHeading {
20
+ /**
21
+ * Heading level for semantics. Values: 1(default)-6.
22
+ */
23
+ "level": number;
24
+ /**
25
+ * Heading style size. Values: small | regular(default) | large.
26
+ */
27
+ "size": string;
28
+ /**
29
+ * Heading font weight. Values: regular(default) | bold.
30
+ */
31
+ "weight": string;
32
+ }
9
33
  interface CuraIcon {
10
34
  "color": string;
11
35
  "disabled": boolean;
@@ -15,10 +39,26 @@ export namespace Components {
15
39
  }
16
40
  interface CuraIconsView {
17
41
  }
18
- interface DummyComponent {
42
+ interface CuraParagraph {
43
+ /**
44
+ * Set size of body text. Values: regular (default) | large | small | caption.
45
+ */
46
+ "size": string;
19
47
  }
20
48
  }
21
49
  declare global {
50
+ interface HTMLCuraDisplayElement extends Components.CuraDisplay, HTMLStencilElement {
51
+ }
52
+ var HTMLCuraDisplayElement: {
53
+ prototype: HTMLCuraDisplayElement;
54
+ new (): HTMLCuraDisplayElement;
55
+ };
56
+ interface HTMLCuraHeadingElement extends Components.CuraHeading, HTMLStencilElement {
57
+ }
58
+ var HTMLCuraHeadingElement: {
59
+ prototype: HTMLCuraHeadingElement;
60
+ new (): HTMLCuraHeadingElement;
61
+ };
22
62
  interface HTMLCuraIconElement extends Components.CuraIcon, HTMLStencilElement {
23
63
  }
24
64
  var HTMLCuraIconElement: {
@@ -31,19 +71,45 @@ declare global {
31
71
  prototype: HTMLCuraIconsViewElement;
32
72
  new (): HTMLCuraIconsViewElement;
33
73
  };
34
- interface HTMLDummyComponentElement extends Components.DummyComponent, HTMLStencilElement {
74
+ interface HTMLCuraParagraphElement extends Components.CuraParagraph, HTMLStencilElement {
35
75
  }
36
- var HTMLDummyComponentElement: {
37
- prototype: HTMLDummyComponentElement;
38
- new (): HTMLDummyComponentElement;
76
+ var HTMLCuraParagraphElement: {
77
+ prototype: HTMLCuraParagraphElement;
78
+ new (): HTMLCuraParagraphElement;
39
79
  };
40
80
  interface HTMLElementTagNameMap {
81
+ "cura-display": HTMLCuraDisplayElement;
82
+ "cura-heading": HTMLCuraHeadingElement;
41
83
  "cura-icon": HTMLCuraIconElement;
42
84
  "cura-icons-view": HTMLCuraIconsViewElement;
43
- "dummy-component": HTMLDummyComponentElement;
85
+ "cura-paragraph": HTMLCuraParagraphElement;
44
86
  }
45
87
  }
46
88
  declare namespace LocalJSX {
89
+ interface CuraDisplay {
90
+ /**
91
+ * Heading level for semantics. Values: 1(default)-6.
92
+ */
93
+ "level"?: number;
94
+ /**
95
+ * Heading style size. Values: small | regular(default) | large.
96
+ */
97
+ "size"?: string;
98
+ }
99
+ interface CuraHeading {
100
+ /**
101
+ * Heading level for semantics. Values: 1(default)-6.
102
+ */
103
+ "level"?: number;
104
+ /**
105
+ * Heading style size. Values: small | regular(default) | large.
106
+ */
107
+ "size"?: string;
108
+ /**
109
+ * Heading font weight. Values: regular(default) | bold.
110
+ */
111
+ "weight"?: string;
112
+ }
47
113
  interface CuraIcon {
48
114
  "color"?: string;
49
115
  "disabled"?: boolean;
@@ -53,21 +119,29 @@ declare namespace LocalJSX {
53
119
  }
54
120
  interface CuraIconsView {
55
121
  }
56
- interface DummyComponent {
122
+ interface CuraParagraph {
123
+ /**
124
+ * Set size of body text. Values: regular (default) | large | small | caption.
125
+ */
126
+ "size"?: string;
57
127
  }
58
128
  interface IntrinsicElements {
129
+ "cura-display": CuraDisplay;
130
+ "cura-heading": CuraHeading;
59
131
  "cura-icon": CuraIcon;
60
132
  "cura-icons-view": CuraIconsView;
61
- "dummy-component": DummyComponent;
133
+ "cura-paragraph": CuraParagraph;
62
134
  }
63
135
  }
64
136
  export { LocalJSX as JSX };
65
137
  declare module "@stencil/core" {
66
138
  export namespace JSX {
67
139
  interface IntrinsicElements {
140
+ "cura-display": LocalJSX.CuraDisplay & JSXBase.HTMLAttributes<HTMLCuraDisplayElement>;
141
+ "cura-heading": LocalJSX.CuraHeading & JSXBase.HTMLAttributes<HTMLCuraHeadingElement>;
68
142
  "cura-icon": LocalJSX.CuraIcon & JSXBase.HTMLAttributes<HTMLCuraIconElement>;
69
143
  "cura-icons-view": LocalJSX.CuraIconsView & JSXBase.HTMLAttributes<HTMLCuraIconsViewElement>;
70
- "dummy-component": LocalJSX.DummyComponent & JSXBase.HTMLAttributes<HTMLDummyComponentElement>;
144
+ "cura-paragraph": LocalJSX.CuraParagraph & JSXBase.HTMLAttributes<HTMLCuraParagraphElement>;
71
145
  }
72
146
  }
73
147
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rededor/cura",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "description": "Cura Design System",
5
5
  "author": "Rede D`Or São Luiz",
6
6
  "license": "MIT",
@@ -38,5 +38,5 @@
38
38
  "puppeteer": "^10.0.0",
39
39
  "svgo": "^3.0.1"
40
40
  },
41
- "gitHead": "32b1af547e44e568efa9ce8067db1e57202fe759"
41
+ "gitHead": "0edc0ee0a6d9d02338dbc939898ca6892a913e38"
42
42
  }
@@ -1,175 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Cura Default Theme
5
- */
6
- const ThemeDefault = {
7
- /* Colors */
8
- color: {
9
- primary: {
10
- depth100: '#CCD9E7',
11
- depth300: '#5580AE',
12
- base: '#004186',
13
- depth700: '#002B59',
14
- depth900: '#00133B'
15
- },
16
- secondary: {
17
- depth100: '#EEE8CE',
18
- depth300: '#C6B45C',
19
- base: '#AA8E0B',
20
- depth700: '#715F07',
21
- depth900: '#221C02'
22
- },
23
- accent: {
24
- depth100: '#F9E8D5',
25
- depth300: '#E4A04F',
26
- base: '#DF8D2C',
27
- depth700: '#955E1D',
28
- depth900: '#2D1C09'
29
- }
30
- },
31
- /* Spacing */
32
- spacing: {
33
- base: '8px',
34
- },
35
- /* Fonts */
36
- font: {
37
- family: {
38
- title: 'serif',
39
- body: '"Roboto", Helvetica, Arial, sans-serif'
40
- },
41
- size: {
42
- base: '16px',
43
- }
44
- }
45
- };
46
-
47
- /**
48
- * Maternity Theme
49
- */
50
- const ThemeMaternity = Object.assign(Object.assign({}, ThemeDefault), {
51
- /* Custom */
52
- /* Colors */
53
- color: {
54
- primary: {
55
- base: '#CD4D9A',
56
- depth100: '#FCEFF6',
57
- depth300: '#FFBFE5',
58
- depth500: '#FF7FCB',
59
- depth700: '#99126C',
60
- depth900: '#00133B'
61
- },
62
- secondary: {
63
- base: '#189AB4',
64
- depth100: '#EDF3FF',
65
- depth300: '#BDD2FF',
66
- depth500: '#496BB6',
67
- depth700: '#001C58',
68
- depth900: '#430E31'
69
- }
70
- } });
71
-
72
- const ThemePresets = {
73
- 'default': ThemeDefault,
74
- 'maternidade': ThemeMaternity
75
- };
76
-
77
- class CuraThemeModule {
78
- constructor() {
79
- this.prefix = '--cura';
80
- /* Private */
81
- /** Set css var based on object structure */
82
- this.setCssVar = (prop, path) => {
83
- const varName = this.groupPath(path, prop[0]);
84
- this.body.style.setProperty(varName, prop[1]);
85
- };
86
- this.groupPath = (a, b) => `${a}-${b}`;
87
- this.isObject = (val) => {
88
- return val && typeof val === 'object' && !Array.isArray(val);
89
- };
90
- /** Deep merge objects */
91
- this.mergeObject = (from, to) => {
92
- const entries = Object.entries(from);
93
- for (let e of entries) {
94
- if (this.isObject(e[1])) {
95
- this.mergeObject(e[1], to[e[0]]);
96
- }
97
- else {
98
- to[e[0]] = e[1];
99
- }
100
- }
101
- };
102
- /** Set css vars from preset object */
103
- this.buildCssVars = (path, obj) => {
104
- const entries = Object.entries(obj);
105
- for (let e of entries) {
106
- if (this.isObject(e[1])) {
107
- this.buildCssVars(this.groupPath(path, e[0]), e[1]);
108
- }
109
- else {
110
- this.setCssVar(e, path);
111
- }
112
- }
113
- };
114
- this.body = window.document.documentElement.querySelector('body');
115
- }
116
- /**
117
- * Load a theme.
118
- * @param theme Theme tag.
119
- */
120
- load(theme = 'default') {
121
- const preset = ThemePresets[theme] ? ThemePresets[theme] : ThemePresets.default;
122
- this.buildCssVars(this.prefix, preset);
123
- }
124
- /**
125
- * Define a custom theme
126
- * @param customTheme Custom theme object definition
127
- */
128
- setCustom(customTheme) {
129
- const customTag = customTheme.name;
130
- if (customTag in ThemePresets) {
131
- console.log('Error building custom theme. Theme %s already exists. Loading default theme.', customTag);
132
- this.load('default');
133
- }
134
- else {
135
- const preset = customTheme.fromPreset && customTheme.fromPreset in ThemePresets
136
- ? ThemePresets[customTheme.fromPreset]
137
- : ThemePresets.default;
138
- const newTheme = Object.assign({}, JSON.parse(JSON.stringify(preset)));
139
- this.mergeObject(customTheme.definitions, newTheme);
140
- ThemePresets[customTag] = newTheme;
141
- this.load(customTag);
142
- }
143
- }
144
- }
145
-
146
- class CuraAPI {
147
- constructor(config) {
148
- this.localAssetsPath = config && config.localAssetsPath ? config.localAssetsPath : `/assets`;
149
- const themeModule = new CuraThemeModule();
150
- this.theme = {
151
- load: function (themeTag) { themeModule.load(themeTag); },
152
- setCustom: function (customThemeDefinitions) { themeModule.setCustom(customThemeDefinitions); }
153
- };
154
- if (config && config.customTheme) {
155
- this.theme.setCustom(config.customTheme);
156
- }
157
- else {
158
- const theme = config && config.theme ? config.theme : 'default';
159
- this.theme.load(theme);
160
- }
161
- }
162
- }
163
-
164
- function appGlobalScript () {
165
- const config = window.CuraInit;
166
- window.CuraAPI = config ? new CuraAPI(config) : new CuraAPI();
167
- const api = window.CuraAPI;
168
- window.dispatchEvent(new CustomEvent("CuraAPIReady", { detail: { api } }));
169
- if (config && typeof config.onReady === 'function')
170
- config.onReady(api);
171
- }
172
-
173
- const globalScripts = appGlobalScript;
174
-
175
- exports.globalScripts = globalScripts;