@agorapulse/ui-theme 20.1.9 → 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
-
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
172
 
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
- padding: var(--ref-spacing-xs);
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,24 +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
- }
295
+ .ap-table__drag-handle {
296
+ cursor: move;
197
297
  }
198
298
  }
199
299
 
200
- // CDK Drag and Drop styling - applied globally
300
+ // ============================================================================
301
+ // CDK Drag and Drop Styles (Global)
302
+ // ============================================================================
303
+
201
304
  tr[cdk-row] {
202
305
  &.cdk-drag-preview {
203
306
  display: flex;
@@ -207,17 +310,15 @@ tr[cdk-row] {
207
310
  border: 1px solid var(--ref-color-electric-blue-40);
208
311
  opacity: 0.95;
209
312
 
210
- // Remove default table borders from preview
211
313
  td[cdk-cell] {
212
314
  border: none;
213
- padding: var(--ref-spacing-xs);
315
+ padding: 0 var(--ref-spacing-xs);
214
316
  font-size: var(--ref-font-size-sm);
215
317
  color: var(--ref-color-grey-100);
216
318
  font-family: Averta;
217
319
  background-color: transparent;
218
320
  }
219
321
 
220
- // Preserve text styling in drag preview
221
322
  .ap-table__cell-text {
222
323
  color: var(--ref-color-grey-100);
223
324
  font-size: var(--ref-font-size-sm);
@@ -240,7 +341,6 @@ tr[cdk-row] {
240
341
  transition: transform 350ms cubic-bezier(0, 0, 0.2, 1);
241
342
  }
242
343
 
243
- // Dragging state styles
244
344
  &.cdk-drop-list-dragging .cdk-drag {
245
345
  transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
246
346
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-theme",
3
- "version": "20.1.9",
3
+ "version": "20.1.11",
4
4
  "description": "Agorapulse UI Theme Library",
5
5
  "repository": {
6
6
  "type": "git",
Binary file