commons-shared-web-ui 0.0.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.
- package/fesm2022/commons-shared-web-ui.mjs +2051 -0
- package/fesm2022/commons-shared-web-ui.mjs.map +1 -0
- package/index.d.ts +742 -0
- package/package.json +33 -0
- package/src/lib/modules/alert/alert.theme.scss +85 -0
- package/src/lib/modules/button/button.theme.scss +121 -0
- package/src/lib/modules/configurable-form/configurable-form.theme.scss +78 -0
- package/src/lib/modules/confirmation-modal/confirmation-modal.theme.scss +87 -0
- package/src/lib/modules/filter-sidebar/filter-sidebar.theme.scss +50 -0
- package/src/lib/modules/nav/nav.theme.scss +86 -0
- package/src/lib/modules/pagination/pagination.theme.scss +66 -0
- package/src/lib/modules/summary-card/summary-card.theme.scss +184 -0
- package/src/lib/styles/global.scss +115 -0
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "commons-shared-web-ui",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/animations": "20.3.15",
|
|
6
|
+
"@angular/cdk": "20.2.14",
|
|
7
|
+
"@angular/common": "20.3.15",
|
|
8
|
+
"@angular/compiler": "20.3.15",
|
|
9
|
+
"@angular/core": "20.3.15",
|
|
10
|
+
"@angular/forms": "20.3.15",
|
|
11
|
+
"@angular/material": "20.2.14",
|
|
12
|
+
"@angular/platform-browser": "20.3.15",
|
|
13
|
+
"@angular/platform-browser-dynamic": "20.3.15",
|
|
14
|
+
"@angular/router": "20.3.15",
|
|
15
|
+
"rxjs": "7.8.0",
|
|
16
|
+
"zone.js": "0.14.10"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"tslib": "^2.3.0"
|
|
20
|
+
},
|
|
21
|
+
"module": "fesm2022/commons-shared-web-ui.mjs",
|
|
22
|
+
"typings": "index.d.ts",
|
|
23
|
+
"exports": {
|
|
24
|
+
"./package.json": {
|
|
25
|
+
"default": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./index.d.ts",
|
|
29
|
+
"default": "./fesm2022/commons-shared-web-ui.mjs"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"sideEffects": false
|
|
33
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
$default-alert-config: (
|
|
4
|
+
font-family: ('Roboto', sans-serif),
|
|
5
|
+
|
|
6
|
+
// Structure (Default values in rem, assuming 16px root)
|
|
7
|
+
padding: 1rem 2rem,
|
|
8
|
+
// 16px 32px
|
|
9
|
+
radius: 0.75rem,
|
|
10
|
+
// 12px
|
|
11
|
+
gap: 1rem,
|
|
12
|
+
// 16px
|
|
13
|
+
|
|
14
|
+
// Icon
|
|
15
|
+
icon-size: 1.25rem,
|
|
16
|
+
// 20px
|
|
17
|
+
icon-margin-top: 0.125rem,
|
|
18
|
+
// 2px
|
|
19
|
+
|
|
20
|
+
// Text
|
|
21
|
+
title-size: 1rem,
|
|
22
|
+
// 16px
|
|
23
|
+
title-line-height: 1.5rem,
|
|
24
|
+
// 24px
|
|
25
|
+
message-size: 0.875rem,
|
|
26
|
+
// 14px
|
|
27
|
+
|
|
28
|
+
// Info
|
|
29
|
+
info-bg: #F1F3F4,
|
|
30
|
+
info-color: #3C4043,
|
|
31
|
+
|
|
32
|
+
// Warning
|
|
33
|
+
warning-bg: #F9C80E1F,
|
|
34
|
+
warning-color: #3C4043,
|
|
35
|
+
// Default text color for warning usually dark
|
|
36
|
+
warning-title-color: #3C4043,
|
|
37
|
+
// Making title dark for better contrast with light yellow bg
|
|
38
|
+
warning-shadow: none,
|
|
39
|
+
// Removing shadow as per clean flat design, or keeping if specified. User said "warning-shadow" variant exists.
|
|
40
|
+
|
|
41
|
+
// Success
|
|
42
|
+
success-bg: #E6F4EA,
|
|
43
|
+
// Light green similar to Info/Error pattern
|
|
44
|
+
success-color: #16A34A,
|
|
45
|
+
|
|
46
|
+
// Error
|
|
47
|
+
error-bg: #FCE8E6,
|
|
48
|
+
// Light red
|
|
49
|
+
error-color: #D93025
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
@mixin alert-theme($user-config: ()) {
|
|
53
|
+
$config: map.merge($default-alert-config, $user-config);
|
|
54
|
+
|
|
55
|
+
--cc-alert-font-family: #{map.get($config, font-family)};
|
|
56
|
+
|
|
57
|
+
// Structure
|
|
58
|
+
--cc-alert-padding: #{map.get($config, padding)};
|
|
59
|
+
--cc-alert-radius: #{map.get($config, radius)};
|
|
60
|
+
--cc-alert-gap: #{map.get($config, gap)};
|
|
61
|
+
|
|
62
|
+
// Icon
|
|
63
|
+
--cc-alert-icon-size: #{map.get($config, icon-size)};
|
|
64
|
+
--cc-alert-icon-margin-top: #{map.get($config, icon-margin-top)};
|
|
65
|
+
|
|
66
|
+
// Text
|
|
67
|
+
--cc-alert-title-size: #{map.get($config, title-size)};
|
|
68
|
+
--cc-alert-title-line-height: #{map.get($config, title-line-height)};
|
|
69
|
+
--cc-alert-message-size: #{map.get($config, message-size)};
|
|
70
|
+
|
|
71
|
+
// Colors
|
|
72
|
+
--cc-alert-info-bg: #{map.get($config, info-bg)};
|
|
73
|
+
--cc-alert-info-color: #{map.get($config, info-color)};
|
|
74
|
+
|
|
75
|
+
--cc-alert-warning-bg: #{map.get($config, warning-bg)};
|
|
76
|
+
--cc-alert-warning-color: #{map.get($config, warning-color)};
|
|
77
|
+
--cc-alert-warning-title-color: #{map.get($config, warning-title-color)};
|
|
78
|
+
--cc-alert-warning-shadow: #{map.get($config, warning-shadow)};
|
|
79
|
+
--cc-alert-success-bg: #{map.get($config, success-bg)};
|
|
80
|
+
--cc-alert-success-color: #{map.get($config, success-color)};
|
|
81
|
+
|
|
82
|
+
--cc-alert-error-bg: #{map.get($config, error-bg)};
|
|
83
|
+
--cc-alert-error-color: #{map.get($config, error-color)};
|
|
84
|
+
--cc-alert-warning-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25); // 0px 4px 4px
|
|
85
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default Button Configuration
|
|
4
|
+
$default-button-config: (
|
|
5
|
+
// Common
|
|
6
|
+
font-family: ('Roboto', sans-serif),
|
|
7
|
+
font-weight: 500,
|
|
8
|
+
font-size: 1rem,
|
|
9
|
+
// 16px
|
|
10
|
+
padding: 0.5rem 1rem,
|
|
11
|
+
// 8px 16px
|
|
12
|
+
|
|
13
|
+
// Primary (Dark)
|
|
14
|
+
primary-bg: #262125,
|
|
15
|
+
primary-color: #FFFFFF,
|
|
16
|
+
primary-radius: 0.5rem,
|
|
17
|
+
// 8px
|
|
18
|
+
primary-border: none,
|
|
19
|
+
|
|
20
|
+
// Warning (Yellow)
|
|
21
|
+
warning-bg: #F9C80E,
|
|
22
|
+
warning-color: #000000,
|
|
23
|
+
warning-radius: 0.25rem,
|
|
24
|
+
// 4px
|
|
25
|
+
warning-border: none,
|
|
26
|
+
|
|
27
|
+
// Outline (Grey Outline)
|
|
28
|
+
outline-bg: transparent,
|
|
29
|
+
outline-color: #000000,
|
|
30
|
+
outline-radius: 0.25rem,
|
|
31
|
+
// 4px
|
|
32
|
+
outline-border: 0.0625rem solid #BDC1C6,
|
|
33
|
+
// 1px solid
|
|
34
|
+
|
|
35
|
+
// Secondary (Light Grey)
|
|
36
|
+
secondary-bg: #E8EAED,
|
|
37
|
+
secondary-color: #000000,
|
|
38
|
+
secondary-radius: 0.25rem,
|
|
39
|
+
// 4px
|
|
40
|
+
secondary-border: none,
|
|
41
|
+
|
|
42
|
+
// Success (Green)
|
|
43
|
+
success-bg: #16A34A,
|
|
44
|
+
success-color: #FFFFFF,
|
|
45
|
+
success-radius: 0.5rem,
|
|
46
|
+
// 8px
|
|
47
|
+
success-border: none,
|
|
48
|
+
|
|
49
|
+
// Danger (Red)
|
|
50
|
+
danger-bg: #E63E30,
|
|
51
|
+
danger-color: #FFFFFF,
|
|
52
|
+
danger-radius: 0.25rem,
|
|
53
|
+
// 4px
|
|
54
|
+
danger-border: none,
|
|
55
|
+
|
|
56
|
+
// Danger Outline (Red Outline)
|
|
57
|
+
danger-outline-bg: transparent,
|
|
58
|
+
danger-outline-color: #E63E30,
|
|
59
|
+
danger-outline-radius: 0.5rem,
|
|
60
|
+
// 8px
|
|
61
|
+
danger-outline-border: 0.0625rem solid #E63E30,
|
|
62
|
+
// 1px solid
|
|
63
|
+
|
|
64
|
+
// Disabled State
|
|
65
|
+
disabled-opacity: 0.6,
|
|
66
|
+
disabled-cursor: not-allowed
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
@mixin button-theme($user-config: ()) {
|
|
70
|
+
$config: map.merge($default-button-config, $user-config);
|
|
71
|
+
|
|
72
|
+
// Common
|
|
73
|
+
--cc-btn-font-family: #{map.get($config, font-family)};
|
|
74
|
+
--cc-btn-font-weight: #{map.get($config, font-weight)};
|
|
75
|
+
--cc-btn-font-size: #{map.get($config, font-size)};
|
|
76
|
+
--cc-btn-padding: #{map.get($config, padding)};
|
|
77
|
+
--cc-btn-disabled-opacity: #{map.get($config, disabled-opacity)};
|
|
78
|
+
--cc-btn-disabled-cursor: #{map.get($config, disabled-cursor)};
|
|
79
|
+
|
|
80
|
+
// Primary
|
|
81
|
+
--cc-btn-primary-bg: #{map.get($config, primary-bg)};
|
|
82
|
+
--cc-btn-primary-color: #{map.get($config, primary-color)};
|
|
83
|
+
--cc-btn-primary-radius: #{map.get($config, primary-radius)};
|
|
84
|
+
--cc-btn-primary-border: #{map.get($config, primary-border)};
|
|
85
|
+
|
|
86
|
+
// Warning
|
|
87
|
+
--cc-btn-warning-bg: #{map.get($config, warning-bg)};
|
|
88
|
+
--cc-btn-warning-color: #{map.get($config, warning-color)};
|
|
89
|
+
--cc-btn-warning-radius: #{map.get($config, warning-radius)};
|
|
90
|
+
--cc-btn-warning-border: #{map.get($config, warning-border)};
|
|
91
|
+
|
|
92
|
+
// Outline
|
|
93
|
+
--cc-btn-outline-bg: #{map.get($config, outline-bg)};
|
|
94
|
+
--cc-btn-outline-color: #{map.get($config, outline-color)};
|
|
95
|
+
--cc-btn-outline-radius: #{map.get($config, outline-radius)};
|
|
96
|
+
--cc-btn-outline-border: #{map.get($config, outline-border)};
|
|
97
|
+
|
|
98
|
+
// Secondary
|
|
99
|
+
--cc-btn-secondary-bg: #{map.get($config, secondary-bg)};
|
|
100
|
+
--cc-btn-secondary-color: #{map.get($config, secondary-color)};
|
|
101
|
+
--cc-btn-secondary-radius: #{map.get($config, secondary-radius)};
|
|
102
|
+
--cc-btn-secondary-border: #{map.get($config, secondary-border)};
|
|
103
|
+
|
|
104
|
+
// Success
|
|
105
|
+
--cc-btn-success-bg: #{map.get($config, success-bg)};
|
|
106
|
+
--cc-btn-success-color: #{map.get($config, success-color)};
|
|
107
|
+
--cc-btn-success-radius: #{map.get($config, success-radius)};
|
|
108
|
+
--cc-btn-success-border: #{map.get($config, success-border)};
|
|
109
|
+
|
|
110
|
+
// Danger
|
|
111
|
+
--cc-btn-danger-bg: #{map.get($config, danger-bg)};
|
|
112
|
+
--cc-btn-danger-color: #{map.get($config, danger-color)};
|
|
113
|
+
--cc-btn-danger-radius: #{map.get($config, danger-radius)};
|
|
114
|
+
--cc-btn-danger-border: #{map.get($config, danger-border)};
|
|
115
|
+
|
|
116
|
+
// Danger Outline
|
|
117
|
+
--cc-btn-danger-outline-bg: #{map.get($config, danger-outline-bg)};
|
|
118
|
+
--cc-btn-danger-outline-color: #{map.get($config, danger-outline-color)};
|
|
119
|
+
--cc-btn-danger-outline-radius: #{map.get($config, danger-outline-radius)};
|
|
120
|
+
--cc-btn-danger-outline-border: #{map.get($config, danger-outline-border)};
|
|
121
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default configuration for the configurable form theme
|
|
4
|
+
$default-configurable-form-config: (
|
|
5
|
+
// Colors
|
|
6
|
+
primary-color: #3B82F6,
|
|
7
|
+
surface-background: #ffffff,
|
|
8
|
+
border-color: #D1D5DB,
|
|
9
|
+
text-primary: #111827,
|
|
10
|
+
text-secondary: #6B7280,
|
|
11
|
+
error-color: #DC2626,
|
|
12
|
+
disabled-background: #F3F4F6,
|
|
13
|
+
hover-background: #F9FAFB,
|
|
14
|
+
|
|
15
|
+
// Inputs specific
|
|
16
|
+
input-border-color: #D1D5DB,
|
|
17
|
+
input-focus-border-color: #3B82F6,
|
|
18
|
+
input-hover-border-color: #9CA3AF,
|
|
19
|
+
input-bg: #ffffff,
|
|
20
|
+
|
|
21
|
+
// Dimensions
|
|
22
|
+
section-radius: 12px,
|
|
23
|
+
section-padding: 2rem,
|
|
24
|
+
section-spacing: 1.5rem,
|
|
25
|
+
input-radius: 8px,
|
|
26
|
+
input-padding-y: 0.625rem,
|
|
27
|
+
input-padding-x: 0.875rem,
|
|
28
|
+
|
|
29
|
+
// Typography
|
|
30
|
+
font-family: (-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif),
|
|
31
|
+
section-title-size: 1.25rem,
|
|
32
|
+
section-title-weight: 600,
|
|
33
|
+
label-size: 0.875rem,
|
|
34
|
+
label-weight: 600,
|
|
35
|
+
input-font-size: 0.875rem,
|
|
36
|
+
hint-size: 0.75rem,
|
|
37
|
+
|
|
38
|
+
// Shadows
|
|
39
|
+
section-shadow: (0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)),
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// Mixin to generate CSS variables for the configurable form component
|
|
43
|
+
@mixin configurable-form-theme($user-config: ()) {
|
|
44
|
+
// Merge user config with defaults
|
|
45
|
+
$config: map.merge($default-configurable-form-config, $user-config);
|
|
46
|
+
|
|
47
|
+
// Generate CSS Variables
|
|
48
|
+
--cf-primary-color: #{map.get($config, primary-color)};
|
|
49
|
+
--cf-surface-background: #{map.get($config, surface-background)};
|
|
50
|
+
--cf-border-color: #{map.get($config, border-color)};
|
|
51
|
+
--cf-text-primary: #{map.get($config, text-primary)};
|
|
52
|
+
--cf-text-secondary: #{map.get($config, text-secondary)};
|
|
53
|
+
--cf-error-color: #{map.get($config, error-color)};
|
|
54
|
+
--cf-disabled-background: #{map.get($config, disabled-background)};
|
|
55
|
+
--cf-hover-background: #{map.get($config, hover-background)};
|
|
56
|
+
|
|
57
|
+
--cf-input-border-color: #{map.get($config, input-border-color)};
|
|
58
|
+
--cf-input-focus-border-color: #{map.get($config, input-focus-border-color)};
|
|
59
|
+
--cf-input-hover-border-color: #{map.get($config, input-hover-border-color)};
|
|
60
|
+
--cf-input-bg: #{map.get($config, input-bg)};
|
|
61
|
+
|
|
62
|
+
--cf-section-radius: #{map.get($config, section-radius)};
|
|
63
|
+
--cf-section-padding: #{map.get($config, section-padding)};
|
|
64
|
+
--cf-section-spacing: #{map.get($config, section-spacing)};
|
|
65
|
+
--cf-input-radius: #{map.get($config, input-radius)};
|
|
66
|
+
--cf-input-padding-y: #{map.get($config, input-padding-y)};
|
|
67
|
+
--cf-input-padding-x: #{map.get($config, input-padding-x)};
|
|
68
|
+
|
|
69
|
+
--cf-font-family: #{map.get($config, font-family)};
|
|
70
|
+
--cf-section-title-size: #{map.get($config, section-title-size)};
|
|
71
|
+
--cf-section-title-weight: #{map.get($config, section-title-weight)};
|
|
72
|
+
--cf-label-size: #{map.get($config, label-size)};
|
|
73
|
+
--cf-label-weight: #{map.get($config, label-weight)};
|
|
74
|
+
--cf-input-font-size: #{map.get($config, input-font-size)};
|
|
75
|
+
--cf-hint-size: #{map.get($config, hint-size)};
|
|
76
|
+
|
|
77
|
+
--cf-section-shadow: #{map.get($config, section-shadow)};
|
|
78
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
$default-confirmation-modal-config: (
|
|
4
|
+
bg: #FFFFFF,
|
|
5
|
+
radius: 0.75rem,
|
|
6
|
+
// 12px
|
|
7
|
+
shadow: 0 0.25rem 1.5rem rgba(0, 0, 0, 0.15),
|
|
8
|
+
// 0 4px 24px
|
|
9
|
+
border: none,
|
|
10
|
+
|
|
11
|
+
// Header
|
|
12
|
+
header-padding: 0.5rem 1rem,
|
|
13
|
+
// 24px
|
|
14
|
+
header-border-bottom: 0.0625rem solid #E5E7EB,
|
|
15
|
+
// 1px
|
|
16
|
+
title-font-size: 1.25rem,
|
|
17
|
+
// 20px
|
|
18
|
+
title-font-weight: 600,
|
|
19
|
+
title-color: #111827,
|
|
20
|
+
icon-size: 1.5rem,
|
|
21
|
+
// 24px
|
|
22
|
+
close-icon-size: 1.25rem,
|
|
23
|
+
// 20px
|
|
24
|
+
|
|
25
|
+
// Body
|
|
26
|
+
body-padding: 1.5rem,
|
|
27
|
+
// 24px
|
|
28
|
+
body-text-color: #374151,
|
|
29
|
+
|
|
30
|
+
// Inputs (Defaults)
|
|
31
|
+
input-padding: 0.625rem 0.75rem,
|
|
32
|
+
// 10px 12px
|
|
33
|
+
input-radius: 0.375rem,
|
|
34
|
+
// 6px
|
|
35
|
+
input-font-size: 0.875rem,
|
|
36
|
+
// 14px
|
|
37
|
+
label-margin-bottom: 0.5rem,
|
|
38
|
+
// 8px
|
|
39
|
+
textarea-min-height: 6.25rem,
|
|
40
|
+
// 100px
|
|
41
|
+
|
|
42
|
+
// Footer
|
|
43
|
+
footer-bg: #F9FAFB,
|
|
44
|
+
footer-padding: 1rem 1.5rem,
|
|
45
|
+
// 24px
|
|
46
|
+
footer-border-top: 0.0625rem solid #E5E7EB,
|
|
47
|
+
// 1px
|
|
48
|
+
|
|
49
|
+
// Spinner
|
|
50
|
+
spinner-size: 1rem // 16px
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
@mixin confirmation-modal-theme($user-config: ()) {
|
|
54
|
+
$config: map.merge($default-confirmation-modal-config, $user-config);
|
|
55
|
+
|
|
56
|
+
--cc-modal-bg: #{map.get($config, bg)};
|
|
57
|
+
--cc-modal-radius: #{map.get($config, radius)};
|
|
58
|
+
--cc-modal-shadow: #{map.get($config, shadow)};
|
|
59
|
+
--cc-modal-border: #{map.get($config, border)};
|
|
60
|
+
|
|
61
|
+
// Header Themes
|
|
62
|
+
--cc-modal-header-bg-dark: #262125;
|
|
63
|
+
--cc-modal-header-title-color-dark: #FFFFFF;
|
|
64
|
+
|
|
65
|
+
--cc-modal-header-padding: #{map.get($config, header-padding)};
|
|
66
|
+
--cc-modal-header-border-bottom: #{map.get($config, header-border-bottom)};
|
|
67
|
+
--cc-modal-title-size: #{map.get($config, title-font-size)};
|
|
68
|
+
--cc-modal-title-weight: #{map.get($config, title-font-weight)};
|
|
69
|
+
--cc-modal-title-color: #{map.get($config, title-color)};
|
|
70
|
+
--cc-modal-icon-size: #{map.get($config, icon-size)};
|
|
71
|
+
--cc-modal-close-icon-size: #{map.get($config, close-icon-size)};
|
|
72
|
+
|
|
73
|
+
--cc-modal-body-padding: #{map.get($config, body-padding)};
|
|
74
|
+
--cc-modal-body-color: #{map.get($config, body-text-color)};
|
|
75
|
+
|
|
76
|
+
--cc-modal-input-padding: #{map.get($config, input-padding)};
|
|
77
|
+
--cc-modal-input-radius: #{map.get($config, input-radius)};
|
|
78
|
+
--cc-modal-input-font-size: #{map.get($config, input-font-size)};
|
|
79
|
+
--cc-modal-label-margin-bottom: #{map.get($config, label-margin-bottom)};
|
|
80
|
+
--cc-modal-textarea-min-height: #{map.get($config, textarea-min-height)};
|
|
81
|
+
|
|
82
|
+
--cc-modal-footer-bg: #{map.get($config, footer-bg)};
|
|
83
|
+
--cc-modal-footer-padding: #{map.get($config, footer-padding)};
|
|
84
|
+
--cc-modal-footer-border-top: #{map.get($config, footer-border-top)};
|
|
85
|
+
|
|
86
|
+
--cc-modal-spinner-size: #{map.get($config, spinner-size)};
|
|
87
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default Filter Sidebar Configuration
|
|
4
|
+
$default-filter-config: (
|
|
5
|
+
// Sidebar Container
|
|
6
|
+
bg-color: #ffffff,
|
|
7
|
+
border-color: #E5E7EB,
|
|
8
|
+
width: 300px,
|
|
9
|
+
|
|
10
|
+
// Tabs
|
|
11
|
+
tab-bg: transparent,
|
|
12
|
+
tab-color: #6B7280,
|
|
13
|
+
tab-active-bg: #FEF2F2,
|
|
14
|
+
tab-active-color: #EF4444,
|
|
15
|
+
tab-active-border: #FECACA,
|
|
16
|
+
tab-hover-bg: #F3F4F6,
|
|
17
|
+
|
|
18
|
+
// Sections
|
|
19
|
+
section-title-color: #374151,
|
|
20
|
+
accordion-title-color: #111827,
|
|
21
|
+
|
|
22
|
+
// Actions Footer
|
|
23
|
+
footer-bg: #ffffff,
|
|
24
|
+
footer-border-color: #E5E7EB
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
@mixin filter-sidebar-theme($user-config: ()) {
|
|
28
|
+
$config: map.merge($default-filter-config, $user-config);
|
|
29
|
+
|
|
30
|
+
// Sidebar
|
|
31
|
+
--cc-filter-bg: #{map.get($config, bg-color)};
|
|
32
|
+
--cc-filter-border-color: #{map.get($config, border-color)};
|
|
33
|
+
--cc-filter-width: #{map.get($config, width)};
|
|
34
|
+
|
|
35
|
+
// Tabs
|
|
36
|
+
--cc-filter-tab-bg: #{map.get($config, tab-bg)};
|
|
37
|
+
--cc-filter-tab-color: #{map.get($config, tab-color)};
|
|
38
|
+
--cc-filter-tab-active-bg: #{map.get($config, tab-active-bg)};
|
|
39
|
+
--cc-filter-tab-active-color: #{map.get($config, tab-active-color)};
|
|
40
|
+
--cc-filter-tab-active-border: #{map.get($config, tab-active-border)};
|
|
41
|
+
--cc-filter-tab-hover-bg: #{map.get($config, tab-hover-bg)};
|
|
42
|
+
|
|
43
|
+
// Sections
|
|
44
|
+
--cc-filter-section-title-color: #{map.get($config, section-title-color)};
|
|
45
|
+
--cc-filter-accordion-title-color: #{map.get($config, accordion-title-color)};
|
|
46
|
+
|
|
47
|
+
// Footer
|
|
48
|
+
--cc-filter-footer-bg: #{map.get($config, footer-bg)};
|
|
49
|
+
--cc-filter-footer-border-color: #{map.get($config, footer-border-color)};
|
|
50
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default configuration for the nav theme
|
|
4
|
+
$default-nav-config: (
|
|
5
|
+
// Container
|
|
6
|
+
container-bg: #f5f5f5,
|
|
7
|
+
container-padding: 4px,
|
|
8
|
+
container-radius: 6px,
|
|
9
|
+
container-border: none,
|
|
10
|
+
container-gap: 4px,
|
|
11
|
+
|
|
12
|
+
// Item - Font & Text
|
|
13
|
+
font-family: ('Roboto', sans-serif),
|
|
14
|
+
font-size: 14px,
|
|
15
|
+
font-weight: 500,
|
|
16
|
+
item-color: #666666,
|
|
17
|
+
item-bg: transparent,
|
|
18
|
+
item-padding: 8px 16px,
|
|
19
|
+
item-radius: 4px,
|
|
20
|
+
item-border: none,
|
|
21
|
+
|
|
22
|
+
// Item - Active State
|
|
23
|
+
item-active-bg: #ffffff,
|
|
24
|
+
item-active-color: #1a1a1a,
|
|
25
|
+
item-active-font-weight: 600,
|
|
26
|
+
item-active-border-color: transparent,
|
|
27
|
+
item-active-border-width: 2px,
|
|
28
|
+
item-active-shadow: 0 1px 3px rgba(0, 0, 0, 0.1),
|
|
29
|
+
|
|
30
|
+
// Item - Hover State
|
|
31
|
+
item-hover-bg: #eeeeee,
|
|
32
|
+
item-hover-color: #333333,
|
|
33
|
+
|
|
34
|
+
// Item - Disabled State
|
|
35
|
+
disabled-opacity: 0.5,
|
|
36
|
+
|
|
37
|
+
// Badge
|
|
38
|
+
badge-bg: #e74c3c,
|
|
39
|
+
badge-color: #ffffff,
|
|
40
|
+
badge-size: 18px,
|
|
41
|
+
badge-font-size: 10px
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// Mixin to generate CSS variables for the nav component
|
|
45
|
+
@mixin nav-theme($user-config: ()) {
|
|
46
|
+
// Merge user config with defaults
|
|
47
|
+
$config: map.merge($default-nav-config, $user-config);
|
|
48
|
+
|
|
49
|
+
// Container
|
|
50
|
+
--cc-nav-container-bg: #{map.get($config, container-bg)};
|
|
51
|
+
--cc-nav-container-padding: #{map.get($config, container-padding)};
|
|
52
|
+
--cc-nav-container-radius: #{map.get($config, container-radius)};
|
|
53
|
+
--cc-nav-container-border: #{map.get($config, container-border)};
|
|
54
|
+
--cc-nav-container-gap: #{map.get($config, container-gap)};
|
|
55
|
+
|
|
56
|
+
// Item - Font & Text
|
|
57
|
+
--cc-nav-font-family: #{map.get($config, font-family)};
|
|
58
|
+
--cc-nav-font-size: #{map.get($config, font-size)};
|
|
59
|
+
--cc-nav-font-weight: #{map.get($config, font-weight)};
|
|
60
|
+
--cc-nav-item-color: #{map.get($config, item-color)};
|
|
61
|
+
--cc-nav-item-bg: #{map.get($config, item-bg)};
|
|
62
|
+
--cc-nav-item-padding: #{map.get($config, item-padding)};
|
|
63
|
+
--cc-nav-item-radius: #{map.get($config, item-radius)};
|
|
64
|
+
--cc-nav-item-border: #{map.get($config, item-border)};
|
|
65
|
+
|
|
66
|
+
// Item - Active State
|
|
67
|
+
--cc-nav-item-active-bg: #{map.get($config, item-active-bg)};
|
|
68
|
+
--cc-nav-item-active-color: #{map.get($config, item-active-color)};
|
|
69
|
+
--cc-nav-item-active-font-weight: #{map.get($config, item-active-font-weight)};
|
|
70
|
+
--cc-nav-item-active-border-color: #{map.get($config, item-active-border-color)};
|
|
71
|
+
--cc-nav-item-active-border-width: #{map.get($config, item-active-border-width)};
|
|
72
|
+
--cc-nav-item-active-shadow: #{map.get($config, item-active-shadow)};
|
|
73
|
+
|
|
74
|
+
// Item - Hover State
|
|
75
|
+
--cc-nav-item-hover-bg: #{map.get($config, item-hover-bg)};
|
|
76
|
+
--cc-nav-item-hover-color: #{map.get($config, item-hover-color)};
|
|
77
|
+
|
|
78
|
+
// Item - Disabled State
|
|
79
|
+
--cc-nav-disabled-opacity: #{map.get($config, disabled-opacity)};
|
|
80
|
+
|
|
81
|
+
// Badge
|
|
82
|
+
--cc-nav-badge-bg: #{map.get($config, badge-bg)};
|
|
83
|
+
--cc-nav-badge-color: #{map.get($config, badge-color)};
|
|
84
|
+
--cc-nav-badge-size: #{map.get($config, badge-size)};
|
|
85
|
+
--cc-nav-badge-font-size: #{map.get($config, badge-font-size)};
|
|
86
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default configuration for the pagination theme
|
|
4
|
+
$default-pagination-config: (
|
|
5
|
+
// Font & Text
|
|
6
|
+
font-family: ('Roboto', sans-serif),
|
|
7
|
+
text-color: #757575,
|
|
8
|
+
font-size: 14px,
|
|
9
|
+
|
|
10
|
+
// Select Dropdown
|
|
11
|
+
select-bg: #f5f5f5,
|
|
12
|
+
select-border: none,
|
|
13
|
+
select-radius: 4px,
|
|
14
|
+
select-padding: 6px 12px,
|
|
15
|
+
select-text-color: #333,
|
|
16
|
+
select-arrow-color: #f44336, // Red arrow
|
|
17
|
+
|
|
18
|
+
// Buttons
|
|
19
|
+
btn-size: 32px,
|
|
20
|
+
btn-bg: #ffffff,
|
|
21
|
+
btn-border: 1px solid #e0e0e0,
|
|
22
|
+
btn-radius: 4px,
|
|
23
|
+
btn-text-color: #333,
|
|
24
|
+
|
|
25
|
+
// States
|
|
26
|
+
btn-hover-bg: #f5f5f5,
|
|
27
|
+
btn-active-bg: #fff,
|
|
28
|
+
btn-active-border: 1px solid #ff4081, // Pinkish red
|
|
29
|
+
btn-active-text: #ff4081,
|
|
30
|
+
|
|
31
|
+
// Disabled
|
|
32
|
+
disabled-opacity: 0.5,
|
|
33
|
+
disabled-bg: #f9f9f9
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
// Mixin to generate CSS variables for the pagination component
|
|
37
|
+
@mixin pagination-theme($user-config: ()) {
|
|
38
|
+
// Merge user config with defaults
|
|
39
|
+
$config: map.merge($default-pagination-config, $user-config);
|
|
40
|
+
|
|
41
|
+
// Generate CSS Variables
|
|
42
|
+
--cc-pagination-font-family: #{map.get($config, font-family)};
|
|
43
|
+
--cc-pagination-text-color: #{map.get($config, text-color)};
|
|
44
|
+
--cc-pagination-font-size: #{map.get($config, font-size)};
|
|
45
|
+
|
|
46
|
+
--cc-pagination-select-bg: #{map.get($config, select-bg)};
|
|
47
|
+
--cc-pagination-select-border: #{map.get($config, select-border)};
|
|
48
|
+
--cc-pagination-select-radius: #{map.get($config, select-radius)};
|
|
49
|
+
--cc-pagination-select-padding: #{map.get($config, select-padding)};
|
|
50
|
+
--cc-pagination-select-text-color: #{map.get($config, select-text-color)};
|
|
51
|
+
--cc-pagination-select-arrow-color: #{map.get($config, select-arrow-color)};
|
|
52
|
+
|
|
53
|
+
--cc-pagination-btn-size: #{map.get($config, btn-size)};
|
|
54
|
+
--cc-pagination-btn-bg: #{map.get($config, btn-bg)};
|
|
55
|
+
--cc-pagination-btn-border: #{map.get($config, btn-border)};
|
|
56
|
+
--cc-pagination-btn-radius: #{map.get($config, btn-radius)};
|
|
57
|
+
--cc-pagination-btn-text-color: #{map.get($config, btn-text-color)};
|
|
58
|
+
|
|
59
|
+
--cc-pagination-btn-hover-bg: #{map.get($config, btn-hover-bg)};
|
|
60
|
+
--cc-pagination-btn-active-bg: #{map.get($config, btn-active-bg)};
|
|
61
|
+
--cc-pagination-btn-active-border: #{map.get($config, btn-active-border)};
|
|
62
|
+
--cc-pagination-btn-active-text: #{map.get($config, btn-active-text)};
|
|
63
|
+
|
|
64
|
+
--cc-pagination-disabled-opacity: #{map.get($config, disabled-opacity)};
|
|
65
|
+
--cc-pagination-disabled-bg: #{map.get($config, disabled-bg)};
|
|
66
|
+
}
|