@filip.mazev/common-parts 0.0.6 → 0.0.7

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/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@filip.mazev/common-parts",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "exports": {
5
5
  "./mixins": "./lib/styles/_mixins.scss",
6
- "./theme": "./lib/styles/_theme.scss",
6
+ "./variables": "./lib/styles/_variables.scss",
7
+ "./theme-provider": "./lib/styles/_theme-provider.scss",
7
8
  "./package.json": {
8
9
  "default": "./package.json"
9
10
  },
@@ -12,6 +13,8 @@
12
13
  "default": "./fesm2022/filip.mazev-common-parts.mjs"
13
14
  }
14
15
  },
16
+ "style": "src/lib/styles/_index.scss",
17
+ "sass": "src/lib/styles/_index.scss",
15
18
  "peerDependencies": {
16
19
  "@angular/common": "^21.1.1",
17
20
  "@angular/core": "^21.1.1"
@@ -0,0 +1,3 @@
1
+ @forward 'mixins';
2
+ @forward 'variables';
3
+ @forward 'theme-provider';
@@ -0,0 +1,12 @@
1
+ @mixin core-theme($config) {
2
+ --fm-bg-canvas: #{map-get($config, 'canvas')};
3
+ --fm-bg-surface: #{map-get($config, 'surface')};
4
+ --fm-bg-element: #{map-get($config, 'element')};
5
+ --fm-text-main: #{map-get($config, 'text')};
6
+ --fm-border: #{map-get($config, 'border')};
7
+ --fm-status-warning: #{map-get($config, 'status-warn')};
8
+ --fm-status-error: #{map-get($config, 'status-error')};
9
+ --fm-bg-error-subtle: #{map-get($config, 'error-subtle')};
10
+
11
+ --fm-contrast-main: #{if(map-get($config, 'surface') == #ffffff, #000, #fff)};
12
+ }
@@ -0,0 +1,48 @@
1
+ $gray-palette: (
2
+ 50: #f9fafb,
3
+ 100: #f3f4f6,
4
+ 200: #e5e7eb,
5
+ 300: #d1d5db,
6
+ 400: #9ca3af,
7
+ 500: #6b7280,
8
+ 600: #4b5563,
9
+ 700: #374151,
10
+ 800: #1f2937,
11
+ 900: #111827
12
+ ) !default;
13
+
14
+ $warning-palette: (
15
+ 50: #fffbeb,
16
+ 500: #f59e0b,
17
+ 900: #78350f,
18
+ A400: #ffc400
19
+ ) !default;
20
+
21
+ $error-palette: (
22
+ 50: #fef2f2,
23
+ 400: #f87171,
24
+ 500: #ef4444,
25
+ 900: #7f1d1d
26
+ ) !default;
27
+
28
+ $light-theme-config: (
29
+ 'canvas': map-get($gray-palette, 50),
30
+ 'surface': #ffffff,
31
+ 'element': map-get($gray-palette, 100),
32
+ 'text': map-get($gray-palette, 900),
33
+ 'border': map-get($gray-palette, 200),
34
+ 'status-warn': map-get($warning-palette, 500),
35
+ 'status-error': map-get($error-palette, 500),
36
+ 'error-subtle': map-get($error-palette, 50)
37
+ ) !default;
38
+
39
+ $dark-theme-config: (
40
+ 'canvas': map-get($gray-palette, 900),
41
+ 'surface': #1e1e1e,
42
+ 'element': map-get($gray-palette, 800),
43
+ 'text': map-get($gray-palette, 50),
44
+ 'border': map-get($gray-palette, 700),
45
+ 'status-warn': map-get($warning-palette, 400),
46
+ 'status-error': map-get($error-palette, 400),
47
+ 'error-subtle': rgba(239, 68, 68, 0.15)
48
+ ) !default;
@@ -1,81 +0,0 @@
1
- :root {
2
- /* --- GRAYSCALE (Neutral) --- */
3
- --fm-color-gray-50: #f9fafb;
4
- --fm-color-gray-100: #f3f4f6;
5
- --fm-color-gray-200: #e5e7eb;
6
- --fm-color-gray-300: #d1d5db;
7
- --fm-color-gray-400: #9ca3af;
8
- --fm-color-gray-500: #6b7280;
9
- --fm-color-gray-600: #4b5563;
10
- --fm-color-gray-700: #374151;
11
- --fm-color-gray-800: #1f2937;
12
- --fm-color-gray-900: #111827;
13
-
14
- /* --- WARNING (Amber/Yellow) --- */
15
- --fm-color-warning-50: #fffbeb;
16
- --fm-color-warning-100: #fef3c7;
17
- --fm-color-warning-200: #fde68a;
18
- --fm-color-warning-300: #fcd34d;
19
- --fm-color-warning-400: #fbbf24;
20
- --fm-color-warning-500: #f59e0b; /* Base Warning */
21
- --fm-color-warning-600: #d97706;
22
- --fm-color-warning-700: #b45309;
23
- --fm-color-warning-800: #92400e;
24
- --fm-color-warning-900: #78350f;
25
-
26
- /* Accents (Saturated) */
27
- --fm-color-warning-A100: #ffe16a;
28
- --fm-color-warning-A200: #ffd740;
29
- --fm-color-warning-A400: #ffc400;
30
- --fm-color-warning-A700: #ffab00;
31
-
32
- /* --- ERROR (Red) --- */
33
- --fm-color-error-50: #fef2f2;
34
- --fm-color-error-100: #fee2e2;
35
- --fm-color-error-200: #fecaca;
36
- --fm-color-error-300: #fca5a5;
37
- --fm-color-error-400: #f87171;
38
- --fm-color-error-500: #ef4444; /* Base Error */
39
- --fm-color-error-600: #dc2626;
40
- --fm-color-error-700: #b91c1c;
41
- --fm-color-error-800: #991b1b;
42
- --fm-color-error-900: #7f1d1d;
43
-
44
- /* Accents (Saturated Reds) */
45
- --fm-color-error-A100: #ff8a80;
46
- --fm-color-error-A200: #ff5252;
47
- --fm-color-error-A400: #ff1744;
48
- --fm-color-error-A700: #d50000;
49
-
50
- /* --- CONTRAST COLORS (Text on top of color) --- */
51
- --fm-contrast-gray-50: var(--fm-color-gray-900);
52
- --fm-contrast-gray-100: var(--fm-color-gray-900);
53
- --fm-contrast-gray-500: #ffffff;
54
- --fm-contrast-gray-900: #ffffff;
55
-
56
- --fm-contrast-warning-50: var(--fm-color-gray-900);
57
- --fm-contrast-warning-500: var(--fm-color-gray-900);
58
- --fm-contrast-warning-900: #ffffff;
59
- --fm-contrast-warning-A400: var(--fm-color-gray-900);
60
-
61
- /* --- SEMANTIC MAPPINGS --- */
62
-
63
- --fm-bg-canvas: var(--fm-color-gray-50); /* Page background */
64
- --fm-bg-surface: #ffffff; /* Modals, Cards, Popups */
65
- --fm-bg-element: var(--fm-color-gray-100); /* Inputs, secondary buttons */
66
- --fm-text-main: var(--fm-color-gray-900);
67
- --fm-border: var(--fm-color-gray-200);
68
- --fm-status-warning: var(--fm-color-warning-500);
69
- --fm-status-error: var(--fm-color-error-500);
70
- --fm-bg-error-subtle: var(--fm-color-error-50);
71
- }
72
-
73
- [data-theme='dark'] {
74
- --fm-bg-canvas: var(--fm-color-gray-900); /* Page background */
75
- --fm-bg-surface: #1e1e1e; /* Modals, Cards, Popups */
76
- --fm-bg-element: var(--fm-color-gray-800); /* Inputs, secondary buttons */
77
- --fm-text-main: var(--fm-color-gray-50);
78
- --fm-border: var(--fm-color-gray-700);
79
- --fm-status-error: var(--fm-color-error-400);
80
- --fm-bg-error-subtle: rgba(239, 68, 68, 0.15);
81
- }