commons-shared-web-ui 0.0.39 → 0.0.40

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 (29) hide show
  1. package/fesm2022/commons-shared-web-ui.mjs +1522 -1332
  2. package/fesm2022/commons-shared-web-ui.mjs.map +1 -1
  3. package/index.d.ts +56 -4
  4. package/package.json +1 -1
  5. package/src/lib/modules/alert/alert.theme.scss +84 -84
  6. package/src/lib/modules/button/button.theme.scss +120 -120
  7. package/src/lib/modules/configurable-form/configurable-form.theme.scss +77 -77
  8. package/src/lib/modules/confirmation-modal/confirmation-modal.theme.scss +86 -86
  9. package/src/lib/modules/filter/filter.theme.scss +91 -91
  10. package/src/lib/modules/filter-sidebar/filter-sidebar.theme.scss +37 -37
  11. package/src/lib/modules/filter-table-selector/filter-table-selector.theme.scss +36 -36
  12. package/src/lib/modules/form-builder/form-builder.theme.scss +212 -212
  13. package/src/lib/modules/form-components/components/checkbox/_theme.scss +62 -62
  14. package/src/lib/modules/form-components/components/datepicker/_theme.scss +81 -81
  15. package/src/lib/modules/form-components/components/dropdown/_theme.scss +90 -90
  16. package/src/lib/modules/form-components/components/input/_theme.scss +76 -76
  17. package/src/lib/modules/form-components/components/radio/_theme.scss +60 -60
  18. package/src/lib/modules/form-components/components/search/_theme.scss +72 -72
  19. package/src/lib/modules/form-components/components/toggle/_theme.scss +44 -44
  20. package/src/lib/modules/form-components/form-components.theme.scss +24 -24
  21. package/src/lib/modules/nav/nav.theme.scss +86 -86
  22. package/src/lib/modules/pagination/pagination.theme.scss +66 -66
  23. package/src/lib/modules/side-nav/side-nav.theme.scss +111 -111
  24. package/src/lib/modules/smart-form/smart-form.theme.scss +889 -889
  25. package/src/lib/modules/smart-table/smart-table.theme.scss +335 -323
  26. package/src/lib/modules/snackbar/snackbar.theme.scss +93 -93
  27. package/src/lib/modules/summary-card/summary-card.theme.scss +175 -175
  28. package/src/lib/styles/global.scss +151 -134
  29. package/src/lib/styles/utilities.scss +250 -250
@@ -1,73 +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)};
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
73
  }
@@ -1,45 +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)};
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
45
  }
@@ -1,25 +1,25 @@
1
- @use './components/input/_theme' as input;
2
- @use './components/dropdown/_theme' as dropdown;
3
- @use './components/checkbox/_theme' as checkbox;
4
- @use './components/radio/_theme' as radio;
5
- @use './components/toggle/_theme' as toggle;
6
- @use './components/datepicker/_theme' as datepicker;
7
- @use './components/search/_theme' as search;
8
-
9
- @forward './components/input/_theme';
10
- @forward './components/dropdown/_theme';
11
- @forward './components/checkbox/_theme';
12
- @forward './components/radio/_theme';
13
- @forward './components/toggle/_theme';
14
- @forward './components/datepicker/_theme';
15
- @forward './components/search/_theme';
16
-
17
- @mixin form-components-theme() {
18
- @include input.input-theme();
19
- @include dropdown.dropdown-theme();
20
- @include checkbox.checkbox-theme();
21
- @include radio.radio-theme();
22
- @include toggle.toggle-theme();
23
- @include datepicker.datepicker-theme();
24
- @include search.search-theme();
1
+ @use './components/input/_theme' as input;
2
+ @use './components/dropdown/_theme' as dropdown;
3
+ @use './components/checkbox/_theme' as checkbox;
4
+ @use './components/radio/_theme' as radio;
5
+ @use './components/toggle/_theme' as toggle;
6
+ @use './components/datepicker/_theme' as datepicker;
7
+ @use './components/search/_theme' as search;
8
+
9
+ @forward './components/input/_theme';
10
+ @forward './components/dropdown/_theme';
11
+ @forward './components/checkbox/_theme';
12
+ @forward './components/radio/_theme';
13
+ @forward './components/toggle/_theme';
14
+ @forward './components/datepicker/_theme';
15
+ @forward './components/search/_theme';
16
+
17
+ @mixin form-components-theme() {
18
+ @include input.input-theme();
19
+ @include dropdown.dropdown-theme();
20
+ @include checkbox.checkbox-theme();
21
+ @include radio.radio-theme();
22
+ @include toggle.toggle-theme();
23
+ @include datepicker.datepicker-theme();
24
+ @include search.search-theme();
25
25
  }
@@ -1,86 +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
- }
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
+ }
@@ -1,66 +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
- }
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
+ }