@agorapulse/ui-theme 20.1.18 → 20.2.0-1

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 (50) hide show
  1. package/agorapulse-ui-theme-1.0.0-SNAPSHOT.tgz +0 -0
  2. package/assets/desktop_variables.css +10 -0
  3. package/assets/mobile_variables.css +10 -0
  4. package/assets/style/_table.scss +5 -5
  5. package/assets/style/_tooltip.scss +6 -1
  6. package/assets/style/css-ui/_action-dropdown.scss +163 -0
  7. package/assets/style/css-ui/_avatar.scss +236 -0
  8. package/assets/style/css-ui/_badge.scss +28 -0
  9. package/assets/style/css-ui/_button.scss +261 -0
  10. package/assets/style/css-ui/_checkbox.scss +168 -0
  11. package/assets/style/css-ui/_counter.scss +76 -0
  12. package/assets/style/css-ui/_datepicker.scss +307 -0
  13. package/assets/style/css-ui/_dot-stepper.scss +67 -0
  14. package/assets/style/{_helpers.scss → css-ui/_helpers.scss} +14 -13
  15. package/assets/style/css-ui/_icon-button.scss +162 -0
  16. package/assets/style/css-ui/_infobox.scss +154 -0
  17. package/assets/style/css-ui/_input.scss +133 -0
  18. package/assets/style/css-ui/_label.scss +89 -0
  19. package/assets/style/css-ui/_link.scss +91 -0
  20. package/assets/style/css-ui/_loader.scss +178 -0
  21. package/assets/style/css-ui/_mixins.scss +50 -0
  22. package/assets/style/css-ui/_pagination.scss +177 -0
  23. package/assets/style/css-ui/_radio-card.scss +200 -0
  24. package/assets/style/css-ui/_radio.scss +111 -0
  25. package/assets/style/css-ui/_select.scss +656 -0
  26. package/assets/style/css-ui/_selection-dropdown.scss +183 -0
  27. package/assets/style/css-ui/_snackbar.scss +166 -0
  28. package/assets/style/css-ui/_split-button.scss +79 -0
  29. package/assets/style/css-ui/_status.scss +71 -0
  30. package/assets/style/css-ui/_stepper.scss +127 -0
  31. package/assets/style/css-ui/_table.scss +325 -0
  32. package/assets/style/css-ui/_tabs.scss +182 -0
  33. package/assets/style/css-ui/_tag.scss +169 -0
  34. package/assets/style/css-ui/_textarea.scss +121 -0
  35. package/assets/style/css-ui/_toggle.scss +136 -0
  36. package/assets/style/css-ui/_tooltip.scss +122 -0
  37. package/assets/style/{_mat-typography.scss → css-ui/_typography.scss} +34 -26
  38. package/assets/style/css-ui/index.css +4721 -0
  39. package/assets/style/css-ui/index.scss +34 -0
  40. package/assets/style/theme.css +6173 -0
  41. package/assets/style/theme.css.map +1 -0
  42. package/assets/style/theme.scss +9 -2
  43. package/package.json +25 -22
  44. package/src/tokens/system/icon.json +33 -0
  45. package/agorapulse-ui-theme-20.1.18.tgz +0 -0
  46. package/assets/style/lovable/lovable-button.css +0 -446
  47. package/assets/style/lovable/lovable-input.css +0 -119
  48. package/assets/style/lovable/lovable-radio.css +0 -109
  49. package/assets/style/lovable/lovable-toggle.css +0 -161
  50. package/assets/style/lovable/tailwind.config.ts +0 -431
@@ -0,0 +1,261 @@
1
+ // Agorapulse Button Styles
2
+ @use 'mixins' as m;
3
+ @use '../button-mixins' as btn;
4
+
5
+ @keyframes slide {
6
+ 0% {
7
+ left: calc(var(--comp-button-padding-vertical) * -1 - 50px);
8
+ }
9
+ 100% {
10
+ left: 100%;
11
+ }
12
+ }
13
+
14
+ .ap-button {
15
+ border: none;
16
+ border-radius: var(--comp-button-border-radius);
17
+ padding: var(--comp-button-padding-horizontal) var(--comp-button-padding-vertical);
18
+ position: relative;
19
+ overflow: hidden;
20
+ display: flex;
21
+ justify-content: center;
22
+ align-items: center;
23
+ gap: var(--comp-split-button-spacing);
24
+ font-size: var(--comp-button-text-size);
25
+ font-family: var(--comp-button-text-font-family);
26
+ line-height: var(--comp-button-text-line-height);
27
+ font-weight: var(--comp-button-text-weight);
28
+ max-height: var(--comp-button-height);
29
+ min-height: var(--comp-button-height);
30
+ white-space: nowrap;
31
+ text-overflow: ellipsis;
32
+ width: 100%;
33
+
34
+ &:not(:disabled):not(.loading):hover {
35
+ cursor: pointer;
36
+ }
37
+
38
+ &:disabled {
39
+ pointer-events: none;
40
+ }
41
+
42
+ &.loading {
43
+ pointer-events: none;
44
+ }
45
+
46
+ &:focus:not(:disabled):not(:active):not(.loading) {
47
+ @include m.focus-ring;
48
+ }
49
+
50
+ &.inverse {
51
+ flex-direction: row-reverse;
52
+ }
53
+
54
+ // Primary variants
55
+ &.primary {
56
+ color: var(--ref-color-white);
57
+
58
+ &.orange {
59
+ @include btn.btn-primary-color('orange');
60
+ }
61
+
62
+ &.blue {
63
+ @include btn.btn-primary-color('electric-blue');
64
+ }
65
+ }
66
+
67
+ // Secondary variants
68
+ &.secondary {
69
+ &.orange {
70
+ @include btn.btn-secondary-color('orange');
71
+ }
72
+
73
+ &.blue {
74
+ @include btn.btn-secondary-color('electric-blue');
75
+ }
76
+ }
77
+
78
+ // Ghost variants
79
+ &.ghost {
80
+ background: transparent;
81
+
82
+ &.grey {
83
+ @include btn.btn-ghost-color('grey', $text-color-shade: 80, $hover-bg-shade: '05', $active-bg-shade: 10);
84
+ }
85
+
86
+ &.blue {
87
+ @include btn.btn-ghost-color('electric-blue');
88
+ }
89
+
90
+ &.red {
91
+ @include btn.btn-ghost-color('red');
92
+ }
93
+
94
+ &.green {
95
+ @include btn.btn-ghost-color('green');
96
+ }
97
+ }
98
+
99
+ // Stroked variants
100
+ &.stroked {
101
+ background: var(--ref-color-white);
102
+
103
+ &.grey {
104
+ border: 1px solid var(--ref-color-grey-20);
105
+ @include btn.btn-stroked-color('grey', $text-color-shade: 80, $border-color-shade: 20, $hover-border-shade: 40, $active-border-shade: 60, $focus-border-shade: 20);
106
+ }
107
+
108
+ &.blue {
109
+ border: 1px solid var(--ref-color-electric-blue-60);
110
+ @include btn.btn-stroked-color('electric-blue');
111
+ }
112
+
113
+ &.red {
114
+ border: 1px solid var(--ref-color-red-60);
115
+ @include btn.btn-stroked-color('red');
116
+ }
117
+ }
118
+
119
+ // Transparent variant
120
+ &.transparent {
121
+ background: transparent;
122
+ }
123
+
124
+ // Mermaid variant
125
+ &.mermaid {
126
+ background: linear-gradient(90deg, #578fff 0%, #df52ff 100%);
127
+ color: var(--ref-color-grey-100);
128
+ position: relative;
129
+ z-index: 1;
130
+
131
+ &::after {
132
+ content: '';
133
+ position: absolute;
134
+ top: 1px;
135
+ left: 1px;
136
+ right: 1px;
137
+ bottom: 1px;
138
+ background: var(--ref-color-white);
139
+ border-radius: calc(var(--ref-border-radius-sm) - 1px);
140
+ z-index: -1;
141
+ pointer-events: none;
142
+ }
143
+
144
+ > * {
145
+ position: relative;
146
+ z-index: 1;
147
+ }
148
+
149
+ &:hover:not(:disabled):not(.loading)::after {
150
+ background: var(--ref-color-mermaid-10);
151
+ }
152
+
153
+ &:active:not(:disabled):not(.loading)::after {
154
+ background: var(--ref-color-mermaid-20);
155
+ }
156
+
157
+ &:disabled {
158
+ background: linear-gradient(90deg, var(--ref-color-mermaid-gradient-from40) 0%, var(--ref-color-mermaid-gradient-to40) 100%);
159
+ color: var(--ref-color-grey-20);
160
+ }
161
+
162
+ &.loading {
163
+ background: linear-gradient(90deg, var(--ref-color-mermaid-gradient-from40) 0%, var(--ref-color-mermaid-gradient-to40) 100%);
164
+ color: var(--ref-color-grey-40);
165
+ }
166
+
167
+ .ap-loading-bar {
168
+ background: linear-gradient(90deg, var(--ref-color-mermaid-gradient-from) 0%, var(--ref-color-mermaid-gradient-to) 100%);
169
+ z-index: 2;
170
+ }
171
+ }
172
+
173
+ // Locked variant
174
+ &.locked {
175
+ overflow: visible;
176
+ background-color: var(--ref-color-purple-10);
177
+ color: var(--ref-color-purple-80);
178
+
179
+ &:hover:not(:disabled):not(.loading) {
180
+ background-color: var(--ref-color-purple-20);
181
+ }
182
+
183
+ &:active:not(:disabled):not(.loading) {
184
+ background-color: var(--ref-color-purple-40);
185
+ }
186
+ }
187
+
188
+ // Loading bar colors per variant
189
+ &.primary.orange .ap-loading-bar {
190
+ background-color: var(--ref-color-orange-100);
191
+ }
192
+
193
+ &.primary.blue .ap-loading-bar {
194
+ background-color: var(--ref-color-electric-blue-100);
195
+ }
196
+
197
+ &.secondary.orange .ap-loading-bar {
198
+ background-color: var(--ref-color-orange-100);
199
+ }
200
+
201
+ &.secondary.blue .ap-loading-bar {
202
+ background-color: var(--ref-color-electric-blue-100);
203
+ }
204
+
205
+ &.ghost.grey .ap-loading-bar,
206
+ &.stroked.grey .ap-loading-bar {
207
+ background-color: var(--ref-color-grey-80);
208
+ }
209
+
210
+ &.ghost.blue .ap-loading-bar,
211
+ &.stroked.blue .ap-loading-bar {
212
+ background-color: var(--ref-color-electric-blue-100);
213
+ }
214
+
215
+ &.ghost.red .ap-loading-bar,
216
+ &.stroked.red .ap-loading-bar {
217
+ background-color: var(--ref-color-red-100);
218
+ }
219
+
220
+ &.ghost.green .ap-loading-bar {
221
+ background-color: var(--ref-color-green-100);
222
+ }
223
+ }
224
+
225
+ // Icon sizing: explicit class or implicit > i
226
+ .ap-button-icon {
227
+ @include m.fixed-size(16px);
228
+ }
229
+
230
+ .ap-button > i {
231
+ @include m.fixed-size(16px);
232
+ flex-shrink: 0;
233
+ }
234
+
235
+ // Loading bar
236
+ .ap-loading-bar {
237
+ position: absolute;
238
+ bottom: 0;
239
+ left: var(--comp-button-padding-vertical);
240
+ width: 50px;
241
+ height: 5px;
242
+ border-radius: 8px;
243
+ animation: slide 1.5s ease-in-out infinite;
244
+ }
245
+
246
+ // Locked icon
247
+ .ap-locked-symbol {
248
+ position: absolute;
249
+ top: -6px;
250
+ right: -6px;
251
+ display: flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ padding: 1px;
255
+ border-radius: 100%;
256
+ background: var(--ref-color-white);
257
+
258
+ > i {
259
+ color: var(--ref-color-purple-100);
260
+ }
261
+ }
@@ -0,0 +1,168 @@
1
+ // Agorapulse Checkbox Styles
2
+ @use 'mixins' as m;
3
+
4
+ .ap-checkbox-container {
5
+ display: flex;
6
+ align-items: center;
7
+ gap: var(--ref-spacing-xxs);
8
+ cursor: pointer;
9
+
10
+ // Hide native checkbox input (accessible)
11
+ > input[type='checkbox'] {
12
+ @include m.sr-only;
13
+ }
14
+
15
+ // Label positioning
16
+ &.label-left {
17
+ flex-direction: row-reverse;
18
+ }
19
+
20
+ &.full-width {
21
+ justify-content: space-between;
22
+ width: 100%;
23
+ }
24
+
25
+ // Disabled container
26
+ &:has(input:disabled) {
27
+ cursor: default;
28
+ }
29
+
30
+ // Checkbox box — <i> element (hosts ::before dash + ::after checkmark)
31
+ > i {
32
+ display: flex;
33
+ justify-content: center;
34
+ align-items: center;
35
+ @include m.fixed-size(16px);
36
+ border-radius: var(--sys-border-radius-sm);
37
+ border: 1px solid var(--ref-color-grey-60);
38
+ background: var(--ref-color-white);
39
+ box-sizing: border-box;
40
+ flex-shrink: 0;
41
+ transition: background-color 0.15s, border-color 0.15s;
42
+
43
+ // Checkmark via CSS (no inline SVG needed)
44
+ &::after {
45
+ content: '';
46
+ display: none;
47
+ width: 10px;
48
+ height: 10px;
49
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none'%3E%3Cpath d='M1 5L4 8L9 2' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
50
+ mask-size: contain;
51
+ mask-repeat: no-repeat;
52
+ background-color: var(--ref-color-white);
53
+ }
54
+
55
+ // Indeterminate dash via CSS
56
+ &::before {
57
+ content: '';
58
+ display: none;
59
+ width: 8px;
60
+ height: 1.5px;
61
+ background: var(--ref-color-white);
62
+ }
63
+ }
64
+
65
+ // Hover state
66
+ &:hover:not(:has(input:disabled)) > i {
67
+ border-color: var(--ref-color-grey-80);
68
+ }
69
+
70
+ // Active state
71
+ &:active:not(:has(input:disabled)) > i {
72
+ border-color: var(--ref-color-grey-100);
73
+ }
74
+
75
+ // Checked state — show checkmark
76
+ &:has(input:checked) > i {
77
+ background: var(--ref-color-electric-blue-100);
78
+ border-color: var(--ref-color-electric-blue-100);
79
+
80
+ &::after {
81
+ display: block;
82
+ }
83
+ }
84
+
85
+ // Checked hover
86
+ &:hover:not(:has(input:disabled)):has(input:checked) > i {
87
+ background: var(--ref-color-electric-blue-80);
88
+ border-color: var(--ref-color-electric-blue-100);
89
+ }
90
+
91
+ // Checked active
92
+ &:active:not(:has(input:disabled)):has(input:checked) > i {
93
+ background: var(--ref-color-electric-blue-60);
94
+ border-color: var(--ref-color-electric-blue-100);
95
+ }
96
+
97
+ // Disabled state
98
+ &:has(input:disabled) > i {
99
+ background: var(--ref-color-grey-10);
100
+ border-color: var(--ref-color-grey-20);
101
+ pointer-events: none;
102
+ }
103
+
104
+ // Disabled + checked
105
+ &:has(input:disabled:checked) > i {
106
+ background: var(--ref-color-grey-20);
107
+ border-color: var(--ref-color-grey-20);
108
+ }
109
+
110
+ // Indeterminate state (class on container)
111
+ &.indeterminate > i {
112
+ background: var(--ref-color-electric-blue-100);
113
+ border-color: var(--ref-color-electric-blue-100);
114
+
115
+ &::before {
116
+ display: block;
117
+ }
118
+ }
119
+
120
+ // Indeterminate hover
121
+ &.indeterminate:hover:not(:has(input:disabled)) > i {
122
+ background: var(--ref-color-electric-blue-80);
123
+ border-color: var(--ref-color-electric-blue-100);
124
+ }
125
+
126
+ // Indeterminate disabled
127
+ &.indeterminate:has(input:disabled) > i {
128
+ background: var(--ref-color-grey-20);
129
+ border-color: var(--ref-color-grey-20);
130
+ }
131
+
132
+ // Focus ring (keyboard only)
133
+ &:has(input:focus-visible) > i {
134
+ @include m.focus-ring-3px;
135
+ }
136
+
137
+ // Error state
138
+ &.error > i {
139
+ border-color: var(--ref-color-red-100);
140
+ }
141
+
142
+ // Label — direct span child
143
+ > span {
144
+ display: flex;
145
+ align-items: center;
146
+ font-family: var(--comp-forms-label-font-family);
147
+ font-size: var(--comp-forms-label-size);
148
+ font-weight: var(--comp-forms-label-font-weight);
149
+ line-height: var(--comp-forms-label-line-height);
150
+ color: var(--comp-forms-label-text-color);
151
+ user-select: none;
152
+
153
+ &:empty {
154
+ display: none;
155
+ }
156
+ }
157
+
158
+ // Label: disabled
159
+ &:has(input:disabled) > span {
160
+ color: var(--ref-color-grey-60);
161
+ cursor: default;
162
+ }
163
+
164
+ // Bold modifier
165
+ &.bold > span {
166
+ font-weight: var(--ref-font-weight-bold);
167
+ }
168
+ }
@@ -0,0 +1,76 @@
1
+ // Agorapulse Counter Styles
2
+
3
+ .ap-counter {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ width: fit-content;
8
+ border-radius: var(--comp-counter-border-radius);
9
+ padding: 0 2px;
10
+ box-sizing: border-box;
11
+
12
+ // Normal size (default)
13
+ &.normal {
14
+ font-weight: var(--comp-counter-text-style-font-weight);
15
+ font-family: var(--comp-counter-text-style-font-family);
16
+ line-height: var(--comp-counter-text-style-line-height);
17
+ font-size: var(--comp-counter-text-style-size);
18
+ height: var(--comp-counter-height);
19
+ max-height: var(--comp-counter-height);
20
+ }
21
+
22
+ // Big size
23
+ &.big {
24
+ font-weight: var(--comp-counter-big-text-style-font-weight);
25
+ font-family: var(--comp-counter-big-text-style-font-family);
26
+ line-height: var(--comp-counter-big-text-style-line-height);
27
+ font-size: var(--comp-counter-big-text-style-size);
28
+ height: var(--comp-counter-big-height);
29
+ max-height: var(--comp-counter-big-height);
30
+ }
31
+
32
+ // Blue color (background by default)
33
+ &.blue {
34
+ color: var(--comp-counter-blue-color);
35
+ background-color: var(--comp-counter-blue-with-background-background-color);
36
+
37
+ &.no-bg {
38
+ background-color: transparent;
39
+ }
40
+ }
41
+
42
+ // Orange color (background by default)
43
+ &.orange {
44
+ color: var(--comp-counter-orange-with-background-color);
45
+ background-color: var(--comp-counter-orange-with-background-background-color);
46
+
47
+ &.no-bg {
48
+ color: var(--comp-counter-orange-color);
49
+ background-color: transparent;
50
+ }
51
+ }
52
+
53
+ // Grey color (background by default)
54
+ &.grey {
55
+ color: var(--comp-counter-grey-color);
56
+ background-color: var(--comp-counter-grey-with-background-background-color);
57
+
58
+ &.no-bg {
59
+ background-color: transparent;
60
+ }
61
+ }
62
+
63
+ // Notification style
64
+ &.notif {
65
+ padding: 0 4px;
66
+ border-radius: var(--comp-counter-notif-border-radius);
67
+ font-size: var(--comp-counter-text-style-size);
68
+ font-weight: var(--comp-counter-text-style-font-weight);
69
+ font-family: var(--comp-counter-text-style-font-family);
70
+ line-height: var(--comp-counter-text-style-line-height);
71
+ min-width: var(--comp-counter-notif-min-width);
72
+ height: var(--comp-counter-notif-min-width);
73
+ color: var(--comp-counter-notif-color);
74
+ background-color: var(--comp-counter-notif-background-color);
75
+ }
76
+ }