@agorapulse/ui-theme 20.1.10 → 20.1.11

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.
Binary file
@@ -0,0 +1,231 @@
1
+ @mixin btn-primary-color($color) {
2
+ background: var(--ref-color-#{$color}-100);
3
+
4
+ &:hover {
5
+ background-color: var(--ref-color-#{$color}-80);
6
+ }
7
+
8
+ &:active:not(:disabled) {
9
+ background-color: var(--ref-color-#{$color}-60);
10
+ }
11
+
12
+ &:disabled {
13
+ background-color: var(--ref-color-#{$color}-20);
14
+ }
15
+
16
+ &.loading {
17
+ background-color: var(--ref-color-#{$color}-60);
18
+ }
19
+
20
+ .loading-bar {
21
+ background-color: var(--ref-color-#{$color}-100);
22
+ }
23
+ }
24
+
25
+ @mixin btn-secondary-color($color) {
26
+ background: var(--ref-color-#{$color}-10);
27
+ color: var(--ref-color-#{$color}-100);
28
+
29
+ ap-symbol {
30
+ color: var(--ref-color-#{$color}-100);
31
+ }
32
+
33
+ &:hover {
34
+ background-color: var(--ref-color-#{$color}-20);
35
+ }
36
+
37
+ &:active:not(:disabled) {
38
+ background-color: var(--ref-color-#{$color}-40);
39
+ }
40
+
41
+ &:focus:not(:disabled):not(:active) {
42
+ background-color: var(--ref-color-#{$color}-10);
43
+ }
44
+
45
+ &:disabled {
46
+ background-color: var(--ref-color-#{$color}-10);
47
+ color: var(--ref-color-#{$color}-20);
48
+
49
+ ap-symbol {
50
+ color: var(--ref-color-#{$color}-20);
51
+ }
52
+ }
53
+
54
+ &.loading {
55
+ background-color: var(--ref-color-#{$color}-40);
56
+ }
57
+
58
+ .loading-bar {
59
+ background-color: var(--ref-color-#{$color}-100);
60
+ }
61
+ }
62
+
63
+ @mixin btn-stroked-color(
64
+ $color,
65
+ $text-color-shade: 100,
66
+ $border-color-shade: 60,
67
+ $hover-border-shade: 80,
68
+ $active-border-shade: 100,
69
+ $focus-border-shade: 60,
70
+ $loading-bar-shade: 100
71
+ ) {
72
+ border-color: var(--ref-color-#{$color}-#{$border-color-shade});
73
+ color: var(--ref-color-#{$color}-#{$text-color-shade});
74
+
75
+ ap-symbol {
76
+ color: var(--ref-color-#{$color}-#{$text-color-shade});
77
+ }
78
+
79
+ &:hover {
80
+ border-color: var(--ref-color-#{$color}-#{$hover-border-shade});
81
+ }
82
+
83
+ &:active:not(:disabled) {
84
+ border-color: var(--ref-color-#{$color}-#{$active-border-shade});
85
+ }
86
+
87
+ &:focus:not(:disabled):not(:active) {
88
+ border-color: var(--ref-color-#{$color}-#{$focus-border-shade});
89
+ }
90
+
91
+ &:disabled {
92
+ border-color: var(--ref-color-#{$color}-20);
93
+ color: var(--ref-color-#{$color}-20);
94
+
95
+ ap-symbol {
96
+ color: var(--ref-color-#{$color}-20);
97
+ }
98
+ }
99
+
100
+ &.loading {
101
+ border-color: var(--ref-color-#{$color}-20);
102
+ color: var(--ref-color-#{$color}-40);
103
+
104
+ ap-symbol {
105
+ color: var(--ref-color-#{$color}-40);
106
+ }
107
+ }
108
+
109
+ .loading-bar {
110
+ background-color: var(--ref-color-#{$color}-#{$loading-bar-shade});
111
+ }
112
+ }
113
+
114
+ @mixin btn-ghost-color(
115
+ $color,
116
+ $text-color-shade: 100,
117
+ $hover-bg-shade: 10,
118
+ $active-bg-shade: 20,
119
+ $focus-bg-shade: 20,
120
+ $disabled-text-shade: 20,
121
+ $loading-text-shade: 40,
122
+ $loading-bar-shade: 100,
123
+ $border-color-shade: null,
124
+ $hover-border-shade: null,
125
+ $active-border-shade: null,
126
+ $focus-border-shade: null
127
+ ) {
128
+ color: var(--ref-color-#{$color}-#{$text-color-shade});
129
+
130
+ ap-symbol {
131
+ color: var(--ref-color-#{$color}-#{$text-color-shade});
132
+ }
133
+
134
+ &:hover {
135
+ background-color: var(--ref-color-#{$color}-#{$hover-bg-shade});
136
+ @if $hover-border-shade {
137
+ border-color: var(--ref-color-#{$color}-#{$hover-border-shade});
138
+ }
139
+ }
140
+
141
+ &:active:not(:disabled) {
142
+ background-color: var(--ref-color-#{$color}-#{$active-bg-shade});
143
+ @if $active-border-shade {
144
+ border-color: var(--ref-color-#{$color}-#{$active-border-shade});
145
+ }
146
+ }
147
+
148
+ &:focus:not(:disabled):not(:active) {
149
+ background-color: var(--ref-color-#{$color}-#{$focus-bg-shade});
150
+ @if $focus-border-shade {
151
+ border-color: var(--ref-color-#{$color}-#{$focus-border-shade});
152
+ }
153
+ }
154
+
155
+ &:disabled {
156
+ color: var(--ref-color-#{$color}-#{$disabled-text-shade});
157
+
158
+ ap-symbol {
159
+ color: var(--ref-color-#{$color}-#{$disabled-text-shade});
160
+ }
161
+ }
162
+
163
+ &.loading:not(.locked) {
164
+ color: var(--ref-color-#{$color}-#{$loading-text-shade});
165
+
166
+ ap-symbol {
167
+ color: var(--ref-color-#{$color}-#{$loading-text-shade});
168
+ }
169
+ }
170
+
171
+ .loading-bar {
172
+ background-color: var(--ref-color-#{$color}-#{$loading-bar-shade});
173
+ }
174
+
175
+ @if $border-color-shade {
176
+ border: 1px solid var(--ref-color-#{$color}-#{$border-color-shade});
177
+ }
178
+ }
179
+
180
+ @mixin btn-mermaid-inactive-state {
181
+ background: linear-gradient(
182
+ 90deg,
183
+ var(--ref-color-mermaid-gradient-from40) 0%,
184
+ var(--ref-color-mermaid-gradient-to40) 100%
185
+ );
186
+
187
+ &::after {
188
+ background: var(--ref-color-white);
189
+ }
190
+
191
+ ap-symbol {
192
+ opacity: 0.4;
193
+ }
194
+ }
195
+
196
+ @mixin icon-btn-color($base, $hover-bg: 10, $active-bg: 20) {
197
+ &:hover:not(.stroked) {
198
+ background: var(--ref-color-#{$base}-#{$hover-bg});
199
+ }
200
+
201
+ &:active:not(.stroked) {
202
+ background: var(--ref-color-#{$base}-#{$active-bg});
203
+ }
204
+
205
+ &:disabled {
206
+ ap-symbol {
207
+ color: var(--ref-color-#{$base}-20);
208
+ }
209
+ }
210
+
211
+ ap-symbol {
212
+ color: var(--ref-color-#{$base}-100);
213
+ }
214
+ }
215
+
216
+ @mixin icon-btn-stroked-color($base) {
217
+ &:not(.loading):not(.locked) {
218
+ border-color: var(--ref-color-#{$base}-100);
219
+
220
+ &:hover:not(.locked) {
221
+ border-color: var(--ref-color-#{$base}-60);
222
+ }
223
+
224
+ &:active:not(.locked) {
225
+ border-color: var(--ref-color-#{$base}-100);
226
+ }
227
+ }
228
+ &:disabled {
229
+ border-color: var(--ref-color-#{$base}-20);
230
+ }
231
+ }
@@ -1,12 +1,93 @@
1
+ // ============================================================================
2
+ // Variables
3
+ // ============================================================================
4
+
5
+ $cell-height: 52px;
6
+ $cell-height-small: 40px;
7
+
8
+ // ============================================================================
9
+ // Base Table Styles
10
+ // ============================================================================
11
+
1
12
  .ap-table {
13
+ // Layout
14
+ display: block;
15
+ height: 100%;
2
16
  width: 100%;
17
+ min-height: 100%;
3
18
  overflow-x: auto;
19
+ table-layout: fixed;
20
+
21
+ // Visual styles
4
22
  font-family: Averta;
5
23
  border-radius: var(--ref-border-radius-md);
6
24
  border-collapse: separate;
7
25
  border-spacing: 0;
8
26
  background-color: var(--ref-color-white);
9
27
 
28
+ // ========================================================================
29
+ // Table Structure
30
+ // ========================================================================
31
+
32
+ thead {
33
+ display: table;
34
+ width: 100%;
35
+ table-layout: fixed;
36
+ }
37
+
38
+ tbody {
39
+ display: block;
40
+ height: calc(100% - $cell-height);
41
+ max-height: calc(100% - $cell-height);
42
+ width: 100%;
43
+ overflow-y: scroll;
44
+ border-radius: var(--ref-border-radius-md);
45
+ }
46
+
47
+ // When table has footer, adjust tbody height
48
+ &:has(tfoot > .cdk-footer-row) tbody {
49
+ height: calc(100% - 2 * $cell-height);
50
+ max-height: calc(100% - 2 * $cell-height);
51
+ }
52
+
53
+ tbody tr {
54
+ display: table;
55
+ width: 100%;
56
+ table-layout: fixed;
57
+ }
58
+
59
+ tfoot {
60
+ display: table;
61
+ width: 100%;
62
+ table-layout: fixed;
63
+ }
64
+
65
+ tr[cdk-row] {
66
+ background-color: var(--ref-color-white);
67
+
68
+ &:last-child {
69
+ td[cdk-cell] {
70
+ border-bottom: none;
71
+ }
72
+
73
+ td[cdk-cell]:first-child {
74
+ border-bottom-left-radius: var(--ref-border-radius-md);
75
+ }
76
+
77
+ td[cdk-cell]:last-child {
78
+ border-bottom-right-radius: var(--ref-border-radius-md);
79
+ }
80
+ }
81
+
82
+ &.selected {
83
+ background-color: var(--ref-color-soft-blue-10);
84
+ }
85
+ }
86
+
87
+ // ========================================================================
88
+ // Table Modifiers
89
+ // ========================================================================
90
+
10
91
  &.ap-table--outer-border {
11
92
  border: 1px solid var(--ref-color-grey-20);
12
93
  }
@@ -15,25 +96,43 @@
15
96
  background-color: var(--ref-color-grey-05);
16
97
  }
17
98
 
18
- &.ap-table--small {
19
- th[cdk-header-cell],
20
- td[cdk-cell] {
21
- height: 40px;
22
- }
23
- }
24
-
25
99
  &.ap-table--striped tbody tr[cdk-row]:nth-child(even) {
26
100
  background-color: var(--ref-color-grey-bg);
27
101
  }
28
102
 
29
- // Selected rows in striped tables - higher specificity to override striped background
30
103
  &.ap-table--striped tbody tr[cdk-row].selected {
31
104
  background-color: var(--ref-color-soft-blue-10);
32
105
  }
33
106
 
34
- // Header cells - using CDK attribute selector
107
+ &.ap-table--small {
108
+ th[cdk-header-cell],
109
+ td[cdk-cell],
110
+ td[cdk-footer-cell] {
111
+ height: $cell-height-small;
112
+ }
113
+
114
+ tbody {
115
+ height: calc(100% - $cell-height-small);
116
+ max-height: calc(100% - $cell-height-small);
117
+ }
118
+
119
+ &:has(tfoot > .cdk-footer-row) tbody {
120
+ height: calc(100% - 2 * $cell-height-small);
121
+ max-height: calc(100% - 2 * $cell-height-small);
122
+ }
123
+
124
+ th[cdk-header-cell].ap-table__header-cell--checkbox,
125
+ td[cdk-cell].ap-table__body-cell--checkbox {
126
+ width: $cell-height-small;
127
+ }
128
+ }
129
+
130
+ // ========================================================================
131
+ // Header Cells
132
+ // ========================================================================
133
+
35
134
  th[cdk-header-cell] {
36
- height: 52px;
135
+ height: $cell-height;
37
136
  padding: var(--ref-spacing-xxs) var(--ref-spacing-xs);
38
137
  text-align: left;
39
138
  font-size: var(--ref-font-size-xs);
@@ -54,7 +153,6 @@
54
153
  border-top-right-radius: var(--ref-border-radius-md);
55
154
  }
56
155
 
57
- // Right-aligned header cells
58
156
  &.ap-table__header-cell--right {
59
157
  text-align: right;
60
158
  justify-content: flex-end;
@@ -63,45 +161,35 @@
63
161
  &.ap-table__header-cell--sortable {
64
162
  cursor: pointer;
65
163
 
66
- // Hide sorting icon by default
67
164
  ap-symbol {
68
165
  opacity: 0;
69
166
  }
70
167
 
71
- // Show sorting icon on hover
72
168
  &:hover ap-symbol {
73
169
  opacity: 1;
74
170
  }
75
171
  }
76
- }
77
172
 
78
- // Checkbox cells - shared styles for both header and body
79
- th[cdk-header-cell].ap-table__header-cell--checkbox,
80
- td[cdk-cell].ap-table__body-cell--checkbox {
81
- width: 52px;
82
- text-align: center;
83
- }
84
-
85
- // Small variant checkbox cells
86
- &.ap-table--small {
87
- th[cdk-header-cell].ap-table__header-cell--checkbox,
88
- td[cdk-cell].ap-table__body-cell--checkbox {
89
- width: 40px;
173
+ &.ap-table__header-cell--checkbox {
174
+ width: $cell-height;
175
+ text-align: center;
90
176
  }
91
177
  }
92
178
 
93
- // Body cells - using CDK attribute selector
179
+ // ========================================================================
180
+ // Body Cells
181
+ // ========================================================================
182
+
94
183
  td[cdk-cell] {
95
184
  padding: 0 var(--ref-spacing-xs);
96
185
  font-size: var(--ref-font-size-sm);
97
186
  color: var(--ref-color-grey-100);
98
187
  border: none;
99
188
  border-bottom: 1px solid var(--ref-color-grey-10);
100
- height: 52px;
189
+ height: $cell-height;
101
190
  vertical-align: middle;
102
191
  font-family: Averta;
103
192
 
104
- // Right-aligned body cells
105
193
  &.ap-table__body-cell--right {
106
194
  text-align: right;
107
195
  justify-content: flex-end;
@@ -111,41 +199,53 @@
111
199
  }
112
200
  }
113
201
 
114
- // Drag handle body cells
202
+ &.ap-table__body-cell--checkbox {
203
+ width: $cell-height;
204
+ text-align: center;
205
+ }
206
+
115
207
  &.ap-table__body-cell--drag {
116
208
  padding: 0 var(--ref-spacing-sm);
117
209
  }
118
210
  }
119
211
 
120
- // Show grabbing cursor on grab icon when row is being dragged
121
- .ap-table__drag-handle {
122
- cursor: move;
123
- }
212
+ // ========================================================================
213
+ // Footer Cells
214
+ // ========================================================================
124
215
 
125
- // Body rows - using CDK attribute selector
126
- tr[cdk-row] {
216
+ td[cdk-footer-cell] {
217
+ padding: 0 var(--ref-spacing-xs);
218
+ font-size: var(--ref-font-size-sm);
219
+ color: var(--ref-color-grey-100);
220
+ border: none;
221
+ border-top: 1px solid var(--ref-color-grey-10);
222
+ height: $cell-height;
223
+ vertical-align: middle;
224
+ font-family: Averta;
225
+ position: sticky;
226
+ bottom: 0;
227
+ z-index: 1;
127
228
  background-color: var(--ref-color-white);
128
229
 
129
- &:last-child {
130
- td[cdk-cell] {
131
- border-bottom: none;
132
- }
133
-
134
- td[cdk-cell]:first-child {
135
- border-bottom-left-radius: var(--ref-border-radius-md);
136
- }
230
+ &.ap-table__footer-cell--right {
231
+ text-align: right;
232
+ justify-content: flex-end;
137
233
 
138
- td[cdk-cell]:last-child {
139
- border-bottom-right-radius: var(--ref-border-radius-md);
234
+ .ap-table__cell-content {
235
+ justify-content: flex-end;
140
236
  }
141
237
  }
142
238
 
143
- &.selected {
144
- background-color: var(--ref-color-soft-blue-10);
239
+ &.ap-table__footer-cell--checkbox {
240
+ width: $cell-height;
241
+ text-align: center;
145
242
  }
146
243
  }
147
244
 
148
- // Header and cell content wrappers for proper alignment
245
+ // ========================================================================
246
+ // Cell Content & Utilities
247
+ // ========================================================================
248
+
149
249
  .ap-table__header-content {
150
250
  display: flex;
151
251
  align-items: center;
@@ -156,9 +256,14 @@
156
256
  display: flex;
157
257
  align-items: center;
158
258
  gap: var(--ref-spacing-xxs);
259
+
260
+ &.ap-table__cell-content--items {
261
+ flex-wrap: wrap;
262
+ gap: var(--ref-spacing-xxxs);
263
+ padding: var(--ref-spacing-xxs) 0;
264
+ }
159
265
  }
160
266
 
161
- // Text styling utilities - can be used directly on spans within cells
162
267
  .ap-table__cell-text-container {
163
268
  display: flex;
164
269
  flex-direction: column;
@@ -180,25 +285,22 @@
180
285
  line-height: var(--ref-font-line-height-xs);
181
286
  }
182
287
 
183
- // Action buttons alignment - can be used on action containers within cells
184
288
  .ap-table__cell-actions {
185
289
  display: flex;
186
290
  align-items: center;
291
+ justify-content: flex-end;
187
292
  gap: var(--ref-spacing-xxxs);
188
- margin-left: auto;
189
293
  }
190
294
 
191
- // Spacing for labels and tags in table cells
192
- .ap-table__cell-content {
193
- &.ap-table__cell-content--items {
194
- flex-wrap: wrap;
195
- gap: var(--ref-spacing-xxxs);
196
- padding: var(--ref-spacing-xxs) 0;
197
- }
295
+ .ap-table__drag-handle {
296
+ cursor: move;
198
297
  }
199
298
  }
200
299
 
201
- // CDK Drag and Drop styling - applied globally
300
+ // ============================================================================
301
+ // CDK Drag and Drop Styles (Global)
302
+ // ============================================================================
303
+
202
304
  tr[cdk-row] {
203
305
  &.cdk-drag-preview {
204
306
  display: flex;
@@ -208,7 +310,6 @@ tr[cdk-row] {
208
310
  border: 1px solid var(--ref-color-electric-blue-40);
209
311
  opacity: 0.95;
210
312
 
211
- // Remove default table borders from preview
212
313
  td[cdk-cell] {
213
314
  border: none;
214
315
  padding: 0 var(--ref-spacing-xs);
@@ -218,7 +319,6 @@ tr[cdk-row] {
218
319
  background-color: transparent;
219
320
  }
220
321
 
221
- // Preserve text styling in drag preview
222
322
  .ap-table__cell-text {
223
323
  color: var(--ref-color-grey-100);
224
324
  font-size: var(--ref-font-size-sm);
@@ -241,7 +341,6 @@ tr[cdk-row] {
241
341
  transition: transform 350ms cubic-bezier(0, 0, 0.2, 1);
242
342
  }
243
343
 
244
- // Dragging state styles
245
344
  &.cdk-drop-list-dragging .cdk-drag {
246
345
  transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
247
346
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-theme",
3
- "version": "20.1.10",
3
+ "version": "20.1.11",
4
4
  "description": "Agorapulse UI Theme Library",
5
5
  "repository": {
6
6
  "type": "git",
Binary file