commons-shared-web-ui 0.0.3 → 0.0.5

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,6 +1,6 @@
1
1
  {
2
2
  "name": "commons-shared-web-ui",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "20.3.15",
6
6
  "@angular/cdk": "20.2.14",
@@ -0,0 +1,92 @@
1
+ @use 'sass:map';
2
+
3
+ // Default configuration for the filter theme
4
+ $default-filter-config: (
5
+ // Button Trigger
6
+ btn-bg: #ffffff,
7
+ btn-border: 1px solid #e0e0e0,
8
+ btn-radius: 4px,
9
+ btn-text-color: #333,
10
+ btn-hover-bg: #f5f5f5,
11
+ btn-active-bg: #e3f2fd,
12
+ btn-active-text: #1976d2,
13
+ btn-badge-bg: #f44336,
14
+ btn-badge-text: #fff,
15
+
16
+ // Panel / Sidebar
17
+ panel-bg: #ffffff,
18
+ panel-border: 1px solid #e0e0e0,
19
+ panel-shadow: 0 4px 12px rgba(0, 0, 0, 0.15),
20
+ panel-width: 320px,
21
+ panel-min-width: 480px,
22
+ panel-header-bg: #fafafa,
23
+ panel-header-text: #333,
24
+ panel-padding: 1rem,
25
+ panel-radius: 8px,
26
+ panel-header-height: 48px,
27
+
28
+ // Tabs
29
+ tab-bg: transparent,
30
+ tab-text: #666,
31
+ tab-active-bg: #fff,
32
+ tab-active-text: #1976d2,
33
+ tab-border-bottom: 2px solid #1976d2,
34
+
35
+ // Content
36
+ section-title: #333,
37
+ option-text: #555,
38
+ option-hover-bg: #f9f9f9,
39
+
40
+ // Footer actions
41
+ footer-bg: #fff,
42
+ footer-border-top: 1px solid #e0e0e0,
43
+ action-primary-bg: #1976d2,
44
+ action-primary-text: #fff,
45
+ action-secondary-text: #666
46
+ );
47
+
48
+ @mixin filter-theme($user-config: ()) {
49
+ $config: map.merge($default-filter-config, $user-config);
50
+
51
+ // Button Trigger
52
+ --cc-filter-btn-bg: #{map.get($config, btn-bg)};
53
+ --cc-filter-btn-border: #{map.get($config, btn-border)};
54
+ --cc-filter-btn-radius: #{map.get($config, btn-radius)};
55
+ --cc-filter-btn-text-color: #{map.get($config, btn-text-color)};
56
+ --cc-filter-btn-hover-bg: #{map.get($config, btn-hover-bg)};
57
+ --cc-filter-btn-active-bg: #{map.get($config, btn-active-bg)};
58
+ --cc-filter-btn-active-text: #{map.get($config, btn-active-text)};
59
+ --cc-filter-btn-badge-bg: #{map.get($config, btn-badge-bg)};
60
+ --cc-filter-btn-badge-text: #{map.get($config, btn-badge-text)};
61
+
62
+ // Panel
63
+ --cc-filter-panel-bg: #{map.get($config, panel-bg)};
64
+ --cc-filter-panel-border: #{map.get($config, panel-border)};
65
+ --cc-filter-panel-shadow: #{map.get($config, panel-shadow)};
66
+ --cc-filter-panel-width: #{map.get($config, panel-width)};
67
+ --cc-filter-panel-min-width: #{map.get($config, panel-min-width)};
68
+ --cc-filter-panel-padding: #{map.get($config, panel-padding)};
69
+ --cc-filter-panel-header-bg: #{map.get($config, panel-header-bg)};
70
+ --cc-filter-panel-header-text: #{map.get($config, panel-header-text)};
71
+ --cc-filter-panel-radius: #{map.get($config, panel-radius)};
72
+ --cc-filter-panel-header-height: #{map.get($config, panel-header-height)};
73
+
74
+ // Tabs
75
+ --cc-filter-tab-bg: #{map.get($config, tab-bg)};
76
+ --cc-filter-tab-text: #{map.get($config, tab-text)};
77
+ --cc-filter-tab-active-bg: #{map.get($config, tab-active-bg)};
78
+ --cc-filter-tab-active-text: #{map.get($config, tab-active-text)};
79
+ --cc-filter-tab-border-bottom: #{map.get($config, tab-border-bottom)};
80
+
81
+ // Content
82
+ --cc-filter-section-title: #{map.get($config, section-title)};
83
+ --cc-filter-option-text: #{map.get($config, option-text)};
84
+ --cc-filter-option-hover-bg: #{map.get($config, option-hover-bg)};
85
+
86
+ // Footer
87
+ --cc-filter-footer-bg: #{map.get($config, footer-bg)};
88
+ --cc-filter-footer-border-top: #{map.get($config, footer-border-top)};
89
+ --cc-filter-action-primary-bg: #{map.get($config, action-primary-bg)};
90
+ --cc-filter-action-primary-text: #{map.get($config, action-primary-text)};
91
+ --cc-filter-action-secondary-text: #{map.get($config, action-secondary-text)};
92
+ }
@@ -1,50 +1,38 @@
1
1
  @use 'sass:map';
2
2
 
3
- // Default Filter Sidebar Configuration
4
- $default-filter-config: (
5
- // Sidebar Container
6
- bg-color: #ffffff,
7
- border-color: #E5E7EB,
8
- width: 300px,
3
+ $default-filter-sidebar-config: (
4
+ // Layout
5
+ width: 100%,
6
+ padding: 1.5rem,
7
+ gap: 1.5rem,
8
+ bg: #FEFEFE,
9
+ border-radius: 0,
10
+
11
+ // Header
12
+ header-height: 3rem,
13
+ header-title-size: 1.125rem,
14
+ header-title-weight: 500,
15
+ header-title-color: #202124,
9
16
 
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
17
+ // Footer
18
+ footer-padding: 1rem 0 0 0,
19
+ footer-gap: 1rem,
25
20
  );
26
21
 
27
22
  @mixin filter-sidebar-theme($user-config: ()) {
28
- $config: map.merge($default-filter-config, $user-config);
23
+ $config: map.merge($default-filter-sidebar-config, $user-config);
29
24
 
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)};
25
+ --cc-filter-sidebar-width: #{map.get($config, width)};
26
+ --cc-filter-sidebar-padding: #{map.get($config, padding)};
27
+ --cc-filter-sidebar-gap: #{map.get($config, gap)};
28
+ --cc-filter-sidebar-bg: #{map.get($config, bg)};
29
+ --cc-filter-sidebar-border-radius: #{map.get($config, border-radius)};
34
30
 
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)};
31
+ --cc-filter-header-height: #{map.get($config, header-height)};
32
+ --cc-filter-header-title-size: #{map.get($config, header-title-size)};
33
+ --cc-filter-header-title-weight: #{map.get($config, header-title-weight)};
34
+ --cc-filter-header-title-color: #{map.get($config, header-title-color)};
42
35
 
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)};
36
+ --cc-filter-footer-padding: #{map.get($config, footer-padding)};
37
+ --cc-filter-footer-gap: #{map.get($config, footer-gap)};
50
38
  }
@@ -0,0 +1,63 @@
1
+ @use 'sass:map';
2
+
3
+ $default-checkbox-config: (
4
+ // Layout
5
+ margin-bottom: 0.5rem,
6
+ group-gap: 0.75rem,
7
+
8
+ // Label
9
+ font-size: 0.875rem,
10
+ font-weight: 400,
11
+ font-family: inherit,
12
+ label-color: #202124,
13
+
14
+ // Group label
15
+ group-label-font-size: 0.875rem,
16
+ group-label-font-weight: 500,
17
+ group-label-color: #202124,
18
+
19
+ // Size
20
+ size: 1.125rem,
21
+ border-radius: 2px,
22
+
23
+ // Colors
24
+ checked-color: #1A73E8,
25
+ unchecked-color: #BDC1C6,
26
+
27
+ // States
28
+ disabled-color: #80868B,
29
+ error-color: #D93025,
30
+ required-color: #D93025
31
+ );
32
+
33
+ @mixin checkbox-theme($user-config: ()) {
34
+ $config: map.merge($default-checkbox-config, $user-config);
35
+
36
+ // Layout
37
+ --cc-checkbox-margin-bottom: #{map.get($config, margin-bottom)};
38
+ --cc-checkbox-group-gap: #{map.get($config, group-gap)};
39
+
40
+ // Label
41
+ --cc-checkbox-font-size: #{map.get($config, font-size)};
42
+ --cc-checkbox-font-weight: #{map.get($config, font-weight)};
43
+ --cc-checkbox-font-family: #{map.get($config, font-family)};
44
+ --cc-checkbox-label-color: #{map.get($config, label-color)};
45
+
46
+ // Group label
47
+ --cc-checkbox-group-label-font-size: #{map.get($config, group-label-font-size)};
48
+ --cc-checkbox-group-label-font-weight: #{map.get($config, group-label-font-weight)};
49
+ --cc-checkbox-group-label-color: #{map.get($config, group-label-color)};
50
+
51
+ // Size
52
+ --cc-checkbox-size: #{map.get($config, size)};
53
+ --cc-checkbox-border-radius: #{map.get($config, border-radius)};
54
+
55
+ // Colors
56
+ --cc-checkbox-checked-color: #{map.get($config, checked-color)};
57
+ --cc-checkbox-unchecked-color: #{map.get($config, unchecked-color)};
58
+
59
+ // States
60
+ --cc-checkbox-disabled-color: #{map.get($config, disabled-color)};
61
+ --cc-checkbox-error-color: #{map.get($config, error-color)};
62
+ --cc-checkbox-required-color: #{map.get($config, required-color)};
63
+ }
@@ -0,0 +1,82 @@
1
+ @use 'sass:map';
2
+
3
+ $default-datepicker-config: (
4
+ // Layout
5
+ height: 2.5rem,
6
+ padding: 0.375rem 1rem,
7
+ label-gap: 0.5rem,
8
+
9
+ // Borders
10
+ border-radius: 0.4375rem,
11
+ border-color: #BDC1C6,
12
+ border-width: 1px,
13
+
14
+ // Colors
15
+ bg: #FEFEFE,
16
+ color: #202124,
17
+ placeholder-color: #80868B,
18
+
19
+ // Typography
20
+ font-size: 0.875rem,
21
+ font-weight: 400,
22
+ font-family: inherit,
23
+
24
+ // Label
25
+ label-font-size: 0.875rem,
26
+ label-font-weight: 500,
27
+ label-color: #202124,
28
+
29
+ // States
30
+ focus-border-color: #1A73E8,
31
+ error-color: #D93025,
32
+ disabled-bg: #F1F3F4,
33
+ disabled-color: #80868B,
34
+ required-color: #D93025,
35
+
36
+ // Icon
37
+ icon-color: #5F6368
38
+ );
39
+
40
+ @mixin datepicker-theme($user-config: ()) {
41
+ $config: map.merge($default-datepicker-config, $user-config);
42
+
43
+ // Layout
44
+ --cc-datepicker-height: #{map.get($config, height)};
45
+ --cc-datepicker-padding: #{map.get($config, padding)};
46
+ --cc-datepicker-label-gap: #{map.get($config, label-gap)};
47
+
48
+ // Borders
49
+ --cc-datepicker-border-radius: #{map.get($config, border-radius)};
50
+ --cc-datepicker-border-color: #{map.get($config, border-color)};
51
+ --cc-datepicker-border-width: #{map.get($config, border-width)};
52
+
53
+ // Colors
54
+ --cc-datepicker-bg: #{map.get($config, bg)};
55
+ --cc-datepicker-color: #{map.get($config, color)};
56
+ --cc-datepicker-placeholder-color: #{map.get($config, placeholder-color)};
57
+
58
+ // Typography
59
+ --cc-datepicker-font-size: #{map.get($config, font-size)};
60
+ --cc-datepicker-font-weight: #{map.get($config, font-weight)};
61
+ --cc-datepicker-font-family: #{map.get($config, font-family)};
62
+
63
+ // Label
64
+ --cc-datepicker-label-font-size: #{map.get($config, label-font-size)};
65
+ --cc-datepicker-label-font-weight: #{map.get($config, label-font-weight)};
66
+ --cc-datepicker-label-color: #{map.get($config, label-color)};
67
+
68
+ // States
69
+ --cc-datepicker-focus-border-color: #{map.get($config, focus-border-color)};
70
+ --cc-datepicker-error-color: #{map.get($config, error-color)};
71
+ --cc-datepicker-disabled-bg: #{map.get($config, disabled-bg)};
72
+ --cc-datepicker-disabled-color: #{map.get($config, disabled-color)};
73
+ --cc-datepicker-required-color: #{map.get($config, required-color)};
74
+
75
+ // Icon
76
+ --cc-datepicker-icon-color: #{map.get($config, icon-color)};
77
+
78
+ // MD3 Overrides or Missing Variables
79
+ --mat-datepicker-calendar-container-background-color: var(--cc-datepicker-bg, #FEFEFE);
80
+ --mat-datepicker-calendar-container-shape: var(--cc-datepicker-border-radius, 0.4375rem);
81
+ --mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
82
+ }
@@ -0,0 +1,91 @@
1
+ @use 'sass:map';
2
+
3
+ $default-dropdown-config: (
4
+ // Layout
5
+ height: 2.5rem,
6
+ padding: 0.375rem 1rem,
7
+ label-gap: 0.5rem,
8
+
9
+ // Borders
10
+ border-radius: 0.4375rem,
11
+ border-color: #BDC1C6,
12
+ border-width: 1px,
13
+
14
+ // Colors
15
+ bg: #FEFEFE,
16
+ color: #202124,
17
+ placeholder-color: #80868B,
18
+
19
+ // Typography
20
+ font-size: 0.875rem,
21
+ font-weight: 400,
22
+ font-family: inherit,
23
+
24
+ // Label
25
+ label-font-size: 0.875rem,
26
+ label-font-weight: 500,
27
+ label-color: #202124,
28
+
29
+ // States
30
+ focus-border-color: #1A73E8,
31
+ error-color: #D93025,
32
+ disabled-bg: #F1F3F4,
33
+ disabled-color: #80868B,
34
+ required-color: #D93025,
35
+
36
+ // Search
37
+ divider-color: #E0E0E0,
38
+ search-border-color: #BDC1C6,
39
+ search-border-radius: 0.25rem,
40
+ search-font-size: 0.875rem,
41
+ search-focus-color: #1A73E8,
42
+
43
+ // Dropdown arrow
44
+ arrow-color: #5F6368
45
+ );
46
+
47
+ @mixin dropdown-theme($user-config: ()) {
48
+ $config: map.merge($default-dropdown-config, $user-config);
49
+
50
+ // Layout
51
+ --cc-dropdown-height: #{map.get($config, height)};
52
+ --cc-dropdown-padding: #{map.get($config, padding)};
53
+ --cc-dropdown-label-gap: #{map.get($config, label-gap)};
54
+
55
+ // Borders
56
+ --cc-dropdown-border-radius: #{map.get($config, border-radius)};
57
+ --cc-dropdown-border-color: #{map.get($config, border-color)};
58
+ --cc-dropdown-border-width: #{map.get($config, border-width)};
59
+
60
+ // Colors
61
+ --cc-dropdown-bg: #{map.get($config, bg)};
62
+ --cc-dropdown-color: #{map.get($config, color)};
63
+ --cc-dropdown-placeholder-color: #{map.get($config, placeholder-color)};
64
+
65
+ // Typography
66
+ --cc-dropdown-font-size: #{map.get($config, font-size)};
67
+ --cc-dropdown-font-weight: #{map.get($config, font-weight)};
68
+ --cc-dropdown-font-family: #{map.get($config, font-family)};
69
+
70
+ // Label
71
+ --cc-dropdown-label-font-size: #{map.get($config, label-font-size)};
72
+ --cc-dropdown-label-font-weight: #{map.get($config, label-font-weight)};
73
+ --cc-dropdown-label-color: #{map.get($config, label-color)};
74
+
75
+ // States
76
+ --cc-dropdown-focus-border-color: #{map.get($config, focus-border-color)};
77
+ --cc-dropdown-error-color: #{map.get($config, error-color)};
78
+ --cc-dropdown-disabled-bg: #{map.get($config, disabled-bg)};
79
+ --cc-dropdown-disabled-color: #{map.get($config, disabled-color)};
80
+ --cc-dropdown-required-color: #{map.get($config, required-color)};
81
+
82
+ // Search
83
+ --cc-dropdown-divider-color: #{map.get($config, divider-color)};
84
+ --cc-dropdown-search-border-color: #{map.get($config, search-border-color)};
85
+ --cc-dropdown-search-border-radius: #{map.get($config, search-border-radius)};
86
+ --cc-dropdown-search-font-size: #{map.get($config, search-font-size)};
87
+ --cc-dropdown-search-focus-color: #{map.get($config, search-focus-color)};
88
+
89
+ // Arrow
90
+ --cc-dropdown-arrow-color: #{map.get($config, arrow-color)};
91
+ }
@@ -0,0 +1,77 @@
1
+ @use 'sass:map';
2
+
3
+ $default-input-config: (
4
+ // Layout
5
+ height: 2.5rem,
6
+ padding: 0.375rem 1rem,
7
+ label-gap: 0.5rem,
8
+
9
+ // Borders
10
+ border-radius: 0.4375rem,
11
+ border-color: #BDC1C6,
12
+ border-width: 1px,
13
+
14
+ // Colors
15
+ bg: #FEFEFE,
16
+ color: #202124,
17
+ placeholder-color: #80868B,
18
+
19
+ // Typography
20
+ font-size: 0.875rem,
21
+ font-weight: 400,
22
+ font-family: inherit,
23
+
24
+ // Label
25
+ label-font-size: 0.875rem,
26
+ label-font-weight: 500,
27
+ label-color: #202124,
28
+
29
+ // States
30
+ focus-border-color: #1A73E8,
31
+ error-color: #D93025,
32
+ disabled-bg: #F1F3F4,
33
+ disabled-color: #80868B,
34
+ required-color: #D93025,
35
+
36
+ // Icon
37
+ icon-color: #5F6368
38
+ );
39
+
40
+ @mixin input-theme($user-config: ()) {
41
+ $config: map.merge($default-input-config, $user-config);
42
+
43
+ // Layout
44
+ --cc-input-height: #{map.get($config, height)};
45
+ --cc-input-padding: #{map.get($config, padding)};
46
+ --cc-input-label-gap: #{map.get($config, label-gap)};
47
+
48
+ // Borders
49
+ --cc-input-border-radius: #{map.get($config, border-radius)};
50
+ --cc-input-border-color: #{map.get($config, border-color)};
51
+ --cc-input-border-width: #{map.get($config, border-width)};
52
+
53
+ // Colors
54
+ --cc-input-bg: #{map.get($config, bg)};
55
+ --cc-input-color: #{map.get($config, color)};
56
+ --cc-input-placeholder-color: #{map.get($config, placeholder-color)};
57
+
58
+ // Typography
59
+ --cc-input-font-size: #{map.get($config, font-size)};
60
+ --cc-input-font-weight: #{map.get($config, font-weight)};
61
+ --cc-input-font-family: #{map.get($config, font-family)};
62
+
63
+ // Label
64
+ --cc-input-label-font-size: #{map.get($config, label-font-size)};
65
+ --cc-input-label-font-weight: #{map.get($config, label-font-weight)};
66
+ --cc-input-label-color: #{map.get($config, label-color)};
67
+
68
+ // States
69
+ --cc-input-focus-border-color: #{map.get($config, focus-border-color)};
70
+ --cc-input-error-color: #{map.get($config, error-color)};
71
+ --cc-input-disabled-bg: #{map.get($config, disabled-bg)};
72
+ --cc-input-disabled-color: #{map.get($config, disabled-color)};
73
+ --cc-input-required-color: #{map.get($config, required-color)};
74
+
75
+ // Icon
76
+ --cc-input-icon-color: #{map.get($config, icon-color)};
77
+ }
@@ -0,0 +1,61 @@
1
+ @use 'sass:map';
2
+
3
+ $default-radio-config: (
4
+ // Layout
5
+ label-gap: 0.5rem,
6
+ group-gap: 0.75rem,
7
+
8
+ // Label
9
+ font-size: 0.875rem,
10
+ font-weight: 400,
11
+ font-family: inherit,
12
+ label-color: #202124,
13
+
14
+ // Group label
15
+ group-label-font-size: 0.875rem,
16
+ group-label-font-weight: 500,
17
+ group-label-color: #202124,
18
+
19
+ // Size
20
+ size: 1.25rem,
21
+
22
+ // Colors
23
+ checked-color: #1A73E8,
24
+ unchecked-color: #BDC1C6,
25
+
26
+ // States
27
+ disabled-color: #80868B,
28
+ error-color: #D93025,
29
+ required-color: #D93025
30
+ );
31
+
32
+ @mixin radio-theme($user-config: ()) {
33
+ $config: map.merge($default-radio-config, $user-config);
34
+
35
+ // Layout
36
+ --cc-radio-label-gap: #{map.get($config, label-gap)};
37
+ --cc-radio-group-gap: #{map.get($config, group-gap)};
38
+
39
+ // Label
40
+ --cc-radio-font-size: #{map.get($config, font-size)};
41
+ --cc-radio-font-weight: #{map.get($config, font-weight)};
42
+ --cc-radio-font-family: #{map.get($config, font-family)};
43
+ --cc-radio-label-color: #{map.get($config, label-color)};
44
+
45
+ // Group label
46
+ --cc-radio-group-label-font-size: #{map.get($config, group-label-font-size)};
47
+ --cc-radio-group-label-font-weight: #{map.get($config, group-label-font-weight)};
48
+ --cc-radio-group-label-color: #{map.get($config, group-label-color)};
49
+
50
+ // Size
51
+ --cc-radio-size: #{map.get($config, size)};
52
+
53
+ // Colors
54
+ --cc-radio-checked-color: #{map.get($config, checked-color)};
55
+ --cc-radio-unchecked-color: #{map.get($config, unchecked-color)};
56
+
57
+ // States
58
+ --cc-radio-disabled-color: #{map.get($config, disabled-color)};
59
+ --cc-radio-error-color: #{map.get($config, error-color)};
60
+ --cc-radio-required-color: #{map.get($config, required-color)};
61
+ }
@@ -0,0 +1,73 @@
1
+ @use 'sass:map';
2
+
3
+ $default-search-config: (
4
+ // Layout
5
+ height: 2.5rem,
6
+ padding: 0.375rem 1rem,
7
+ label-gap: 0.5rem,
8
+
9
+ // Borders
10
+ border-radius: 0.4375rem,
11
+ border-color: #BDC1C6,
12
+ border-width: 1px,
13
+
14
+ // Colors
15
+ bg: #FEFEFE,
16
+ color: #202124,
17
+ placeholder-color: #80868B,
18
+
19
+ // Typography
20
+ font-size: 0.875rem,
21
+ font-weight: 400,
22
+ font-family: inherit,
23
+
24
+ // Label
25
+ label-font-size: 0.875rem,
26
+ label-font-weight: 500,
27
+ label-color: #202124,
28
+
29
+ // States
30
+ focus-border-color: #1A73E8,
31
+ disabled-bg: #F1F3F4,
32
+ disabled-color: #80868B,
33
+
34
+ // Icon
35
+ icon-color: #5F6368
36
+ );
37
+
38
+ @mixin search-theme($user-config: ()) {
39
+ $config: map.merge($default-search-config, $user-config);
40
+
41
+ // Layout
42
+ --cc-search-height: #{map.get($config, height)};
43
+ --cc-search-padding: #{map.get($config, padding)};
44
+ --cc-search-label-gap: #{map.get($config, label-gap)};
45
+
46
+ // Borders
47
+ --cc-search-border-radius: #{map.get($config, border-radius)};
48
+ --cc-search-border-color: #{map.get($config, border-color)};
49
+ --cc-search-border-width: #{map.get($config, border-width)};
50
+
51
+ // Colors
52
+ --cc-search-bg: #{map.get($config, bg)};
53
+ --cc-search-color: #{map.get($config, color)};
54
+ --cc-search-placeholder-color: #{map.get($config, placeholder-color)};
55
+
56
+ // Typography
57
+ --cc-search-font-size: #{map.get($config, font-size)};
58
+ --cc-search-font-weight: #{map.get($config, font-weight)};
59
+ --cc-search-font-family: #{map.get($config, font-family)};
60
+
61
+ // Label
62
+ --cc-search-label-font-size: #{map.get($config, label-font-size)};
63
+ --cc-search-label-font-weight: #{map.get($config, label-font-weight)};
64
+ --cc-search-label-color: #{map.get($config, label-color)};
65
+
66
+ // States
67
+ --cc-search-focus-border-color: #{map.get($config, focus-border-color)};
68
+ --cc-search-disabled-bg: #{map.get($config, disabled-bg)};
69
+ --cc-search-disabled-color: #{map.get($config, disabled-color)};
70
+
71
+ // Icon
72
+ --cc-search-icon-color: #{map.get($config, icon-color)};
73
+ }
@@ -0,0 +1,45 @@
1
+ @use 'sass:map';
2
+
3
+ $default-toggle-config: (
4
+ // Label
5
+ font-size: 0.875rem,
6
+ font-weight: 400,
7
+ font-family: inherit,
8
+ label-color: #202124,
9
+
10
+ // Size
11
+ width: 2.25rem,
12
+ height: 1rem,
13
+
14
+ // Colors
15
+ track-color: #BDC1C6,
16
+ thumb-color: #FEFEFE,
17
+ checked-track-color: #1A73E8,
18
+ checked-thumb-color: #FEFEFE,
19
+
20
+ // States
21
+ disabled-color: #80868B
22
+ );
23
+
24
+ @mixin toggle-theme($user-config: ()) {
25
+ $config: map.merge($default-toggle-config, $user-config);
26
+
27
+ // Label
28
+ --cc-toggle-font-size: #{map.get($config, font-size)};
29
+ --cc-toggle-font-weight: #{map.get($config, font-weight)};
30
+ --cc-toggle-font-family: #{map.get($config, font-family)};
31
+ --cc-toggle-label-color: #{map.get($config, label-color)};
32
+
33
+ // Size
34
+ --cc-toggle-width: #{map.get($config, width)};
35
+ --cc-toggle-height: #{map.get($config, height)};
36
+
37
+ // Colors
38
+ --cc-toggle-track-color: #{map.get($config, track-color)};
39
+ --cc-toggle-thumb-color: #{map.get($config, thumb-color)};
40
+ --cc-toggle-checked-track-color: #{map.get($config, checked-track-color)};
41
+ --cc-toggle-checked-thumb-color: #{map.get($config, checked-thumb-color)};
42
+
43
+ // States
44
+ --cc-toggle-disabled-color: #{map.get($config, disabled-color)};
45
+ }