commons-shared-web-ui 0.0.2 → 0.0.4

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.
@@ -0,0 +1,214 @@
1
+ @use 'sass:map';
2
+
3
+ // Default Smart Table Theme
4
+ $smart-table-theme-defaults: (
5
+ // Font & General
6
+ font-family: ('Roboto', sans-serif),
7
+ font-size: 14px,
8
+ text-color: #333333,
9
+ border-radius: 8px,
10
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05),
11
+
12
+ // Table Structure
13
+ table-bg: #ffffff,
14
+ table-padding: 1rem,
15
+ cell-padding: 1rem,
16
+
17
+ // Borders
18
+ table-border: 1px solid #e0e0e0,
19
+ row-border: 1px solid #f0f0f0,
20
+ header-border: 1px solid #e0e0e0,
21
+
22
+ // Row Colors
23
+ row-bg: #ffffff,
24
+ row-hover-bg: #f9f9f9,
25
+ row-selected-bg: #f3e5f5,
26
+
27
+ // Header Styling
28
+ header-bg: #f5f5f5,
29
+ header-color: #333333,
30
+ header-font-weight: 500,
31
+ header-font-size: 14px,
32
+ header-transform: none, // uppercase, capitalize, etc.
33
+
34
+ // Toolbar
35
+ toolbar-bg: #ffffff,
36
+ toolbar-padding: 1rem,
37
+ toolbar-border-bottom: 1px solid #e0e0e0,
38
+ toolbar-gap: 1rem,
39
+
40
+ // Search Input
41
+ search-bg: #ffffff,
42
+ search-border: 1px solid #e0e0e0,
43
+ search-radius: 4px,
44
+ search-padding: 0.5rem 0.5rem 0.5rem 2rem,
45
+ search-width: 250px,
46
+ search-icon-color: #999,
47
+
48
+ // Filter Dropdowns
49
+ filter-bg: #ffffff,
50
+ filter-border: 1px solid #e0e0e0,
51
+ filter-radius: 4px,
52
+ filter-padding: 0.5rem,
53
+ filter-font-size: 14px,
54
+ filter-color: #333,
55
+
56
+ // Checkbox
57
+ checkbox-color: #6200EE,
58
+ checkbox-size: 18px,
59
+
60
+ // Badges (Status)
61
+ badge-radius: 12px,
62
+ badge-padding: 4px 12px,
63
+ badge-font-size: 12px,
64
+ badge-font-weight: 500,
65
+
66
+ // Badge Variants (Backgrounds)
67
+ badge-success-bg: #e8f5e9,
68
+ badge-success-color: #2e7d32,
69
+ badge-warning-bg: #fff3e0,
70
+ badge-warning-color: #ef6c00,
71
+ badge-danger-bg: #ffebee,
72
+ badge-danger-color: #c62828,
73
+ badge-info-bg: #e3f2fd,
74
+ badge-info-color: #1565c0,
75
+ badge-neutral-bg: #f5f5f5,
76
+ badge-neutral-color: #616161,
77
+
78
+ // Pagination Container
79
+ pagination-padding: 1rem,
80
+ pagination-border-top: none,
81
+
82
+ // Action Menu (Kebab - optional implementation detail)
83
+ action-menu-bg: #ffffff,
84
+ action-menu-shadow: 0 4px 6px rgba(0,0,0,0.1),
85
+
86
+ // Loader
87
+ loader-color: #6200EE,
88
+ // Scrollbar
89
+ scrollbar-width: 8px,
90
+ scrollbar-height: 8px,
91
+ scrollbar-track-bg: #f1f1f1,
92
+ scrollbar-track-radius: 4px,
93
+ scrollbar-thumb-bg: #c1c1c1,
94
+ scrollbar-thumb-radius: 4px,
95
+ scrollbar-thumb-hover-bg: #a8a8a8,
96
+
97
+ // Sticky Columns
98
+ sticky-shadow: 2px 0 5px -2px rgba(0,0,0,0.1),
99
+ sticky-border-right: 1px solid rgba(0,0,0,0.05),
100
+
101
+ // Spinner
102
+ spinner-border-color: rgba(0, 0, 0, 0.1),
103
+
104
+ // No Data
105
+ no-data-color: #888888,
106
+
107
+ // Sort Icon
108
+ sort-icon-size: 0.8em
109
+ );
110
+
111
+ @mixin smart-table-theme($theme: ()) {
112
+ $theme: map.merge($smart-table-theme-defaults, $theme);
113
+
114
+ // --- General ---
115
+ --st-font-family: #{map.get($theme, font-family)};
116
+ --st-font-size: #{map.get($theme, font-size)};
117
+ --st-text-color: #{map.get($theme, text-color)};
118
+ --st-border-radius: #{map.get($theme, border-radius)};
119
+ --st-box-shadow: #{map.get($theme, box-shadow)};
120
+
121
+ // --- Table Layout ---
122
+ --st-table-bg: #{map.get($theme, table-bg)};
123
+ --st-table-padding: #{map.get($theme, table-padding)};
124
+ --st-cell-padding: #{map.get($theme, cell-padding)};
125
+
126
+ // --- Borders ---
127
+ --st-table-border: #{map.get($theme, table-border)};
128
+ --st-row-border: #{map.get($theme, row-border)};
129
+
130
+ // --- Rows ---
131
+ --st-row-bg: #{map.get($theme, row-bg)};
132
+ --st-row-hover-bg: #{map.get($theme, row-hover-bg)};
133
+ --st-row-selected-bg: #{map.get($theme, row-selected-bg)};
134
+
135
+ // --- Header ---
136
+ --st-header-bg: #{map.get($theme, header-bg)};
137
+ --st-header-color: #{map.get($theme, header-color)};
138
+ --st-header-weight: #{map.get($theme, header-font-weight)};
139
+ --st-header-size: #{map.get($theme, header-font-size)};
140
+ --st-header-transform: #{map.get($theme, header-transform)};
141
+ --st-header-border: #{map.get($theme, header-border)};
142
+
143
+ // --- Toolbar ---
144
+ --st-toolbar-bg: #{map.get($theme, toolbar-bg)};
145
+ --st-toolbar-padding: #{map.get($theme, toolbar-padding)};
146
+ --st-toolbar-border-bottom: #{map.get($theme, toolbar-border-bottom)};
147
+ --st-toolbar-gap: #{map.get($theme, toolbar-gap)};
148
+
149
+ // --- Search ---
150
+ --st-search-bg: #{map.get($theme, search-bg)};
151
+ --st-search-border: #{map.get($theme, search-border)};
152
+ --st-search-radius: #{map.get($theme, search-radius)};
153
+ --st-search-padding: #{map.get($theme, search-padding)};
154
+ --st-search-width: #{map.get($theme, search-width)};
155
+ --st-search-icon-color: #{map.get($theme, search-icon-color)};
156
+
157
+ // --- Filter ---
158
+ --st-filter-bg: #{map.get($theme, filter-bg)};
159
+ --st-filter-border: #{map.get($theme, filter-border)};
160
+ --st-filter-radius: #{map.get($theme, filter-radius)};
161
+ --st-filter-padding: #{map.get($theme, filter-padding)};
162
+ --st-filter-font-size: #{map.get($theme, filter-font-size)};
163
+ --st-filter-color: #{map.get($theme, filter-color)};
164
+
165
+ // --- Checkbox ---
166
+ --st-checkbox-color: #{map.get($theme, checkbox-color)};
167
+ --st-checkbox-size: #{map.get($theme, checkbox-size)};
168
+
169
+ // --- Badges ---
170
+ --st-badge-radius: #{map.get($theme, badge-radius)};
171
+ --st-badge-padding: #{map.get($theme, badge-padding)};
172
+ --st-badge-font-size: #{map.get($theme, badge-font-size)};
173
+ --st-badge-font-weight: #{map.get($theme, badge-font-weight)};
174
+
175
+ --st-badge-success-bg: #{map.get($theme, badge-success-bg)};
176
+ --st-badge-success-color: #{map.get($theme, badge-success-color)};
177
+ --st-badge-warning-bg: #{map.get($theme, badge-warning-bg)};
178
+ --st-badge-warning-color: #{map.get($theme, badge-warning-color)};
179
+ --st-badge-danger-bg: #{map.get($theme, badge-danger-bg)};
180
+ --st-badge-danger-color: #{map.get($theme, badge-danger-color)};
181
+ --st-badge-info-bg: #{map.get($theme, badge-info-bg)};
182
+ --st-badge-info-color: #{map.get($theme, badge-info-color)};
183
+ --st-badge-neutral-bg: #{map.get($theme, badge-neutral-bg)};
184
+ --st-badge-neutral-color: #{map.get($theme, badge-neutral-color)};
185
+
186
+ // --- Pagination ---
187
+ --st-pagination-padding: #{map.get($theme, pagination-padding)};
188
+ --st-pagination-border-top: #{map.get($theme, pagination-border-top)};
189
+
190
+ // --- Loader ---
191
+ --st-loader-color: #{map.get($theme, loader-color)};
192
+
193
+ // --- Scrollbar ---
194
+ --st-scrollbar-width: #{map.get($theme, scrollbar-width)};
195
+ --st-scrollbar-height: #{map.get($theme, scrollbar-height)};
196
+ --st-scrollbar-track-bg: #{map.get($theme, scrollbar-track-bg)};
197
+ --st-scrollbar-track-radius: #{map.get($theme, scrollbar-track-radius)};
198
+ --st-scrollbar-thumb-bg: #{map.get($theme, scrollbar-thumb-bg)};
199
+ --st-scrollbar-thumb-radius: #{map.get($theme, scrollbar-thumb-radius)};
200
+ --st-scrollbar-thumb-hover-bg: #{map.get($theme, scrollbar-thumb-hover-bg)};
201
+
202
+ // --- Sticky Columns ---
203
+ --st-sticky-shadow: #{map.get($theme, sticky-shadow)};
204
+ --st-sticky-border-right: #{map.get($theme, sticky-border-right)};
205
+
206
+ // --- Spinner ---
207
+ --st-spinner-border-color: #{map.get($theme, spinner-border-color)};
208
+
209
+ // --- No Data ---
210
+ --st-no-data-color: #{map.get($theme, no-data-color)};
211
+
212
+ // --- Misc ---
213
+ --st-sort-icon-size: #{map.get($theme, sort-icon-size)};
214
+ }