@eric-emg/symphiq-components 1.2.402 → 1.2.405

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.
package/src/styles.css CHANGED
@@ -1,328 +1,333 @@
1
- @import 'tailwindcss';
2
-
3
- h1, h2, h3, h4, h5, h6 {
4
- margin-top: 0 !important;
5
- }
6
-
7
- /* Custom text size smaller than text-xs */
8
- .text-2xs {
9
- font-size: 0.625rem;
10
- line-height: 0.875rem;
11
- }
12
-
13
- @keyframes fadeInUp {
14
- from {
15
- opacity: 0;
16
- transform: translateY(20px);
17
- }
18
- to {
19
- opacity: 1;
20
- transform: translateY(0);
21
- }
22
- }
23
-
24
- @keyframes fadeIn {
25
- from {
26
- opacity: 0;
27
- }
28
- to {
29
- opacity: 1;
30
- }
31
- }
32
-
33
- @keyframes progressBar {
34
- from {
35
- width: 0%;
36
- }
37
- }
38
-
39
- @keyframes pulseGlow {
40
- 0%, 100% {
41
- box-shadow: 0 0 20px rgba(16, 185, 129, 0.5);
42
- }
43
- 50% {
44
- box-shadow: 0 0 30px rgba(16, 185, 129, 0.8);
45
- }
46
- }
47
-
48
- @keyframes valueGlow {
49
- 0% {
50
- text-shadow: 0 0 8px rgba(59, 130, 246, 0);
51
- }
52
- 50% {
53
- text-shadow: 0 0 15px rgba(59, 130, 246, 0.6), 0 0 20px rgba(59, 130, 246, 0.3);
54
- }
55
- 100% {
56
- text-shadow: 0 0 8px rgba(59, 130, 246, 0);
57
- }
58
- }
59
-
60
- @keyframes slideUpFade {
61
- from {
62
- opacity: 0;
63
- transform: translateY(30px) scale(0.95);
64
- }
65
- to {
66
- opacity: 1;
67
- transform: translateY(0) scale(1);
68
- }
69
- }
70
-
71
- @keyframes pulseSubtle {
72
- 0%, 100% {
73
- opacity: 1;
74
- transform: scale(1);
75
- box-shadow: inherit;
76
- }
77
- 50% {
78
- opacity: 0.9;
79
- transform: scale(1.05);
80
- filter: brightness(1.1);
81
- }
82
- }
83
-
84
- @keyframes fadeOut {
85
- from {
86
- opacity: 1;
87
- }
88
- to {
89
- opacity: 0;
90
- }
91
- }
92
-
93
- @keyframes scaleIn {
94
- from {
95
- opacity: 0;
96
- transform: scale(0.95);
97
- }
98
- to {
99
- opacity: 1;
100
- transform: scale(1);
101
- }
102
- }
103
-
104
- @keyframes contentChange {
105
- 0% {
106
- opacity: 1;
107
- }
108
- 50% {
109
- opacity: 0.3;
110
- transform: scale(0.98);
111
- }
112
- 100% {
113
- opacity: 1;
114
- transform: scale(1);
115
- }
116
- }
117
-
118
- .animate-fade-in-up {
119
- opacity: 0;
120
- animation: fadeInUp 0.6s ease-out forwards;
121
- }
122
-
123
- .animate-fade-in {
124
- animation: fadeIn 0.3s ease-out forwards;
125
- }
126
-
127
- .animate-fade-out {
128
- animation: fadeOut 0.2s ease-out forwards;
129
- }
130
-
131
- .animate-slide-up-fade {
132
- animation: slideUpFade 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
133
- }
134
-
135
- .animate-progress-bar {
136
- animation: progressBar 1.2s ease-out forwards;
137
- }
138
-
139
- .animate-pulse-glow {
140
- animation: pulseGlow 2s ease-in-out infinite;
141
- }
142
-
143
- .animate-pulse-subtle {
144
- animation: pulseSubtle 2s ease-in-out infinite;
145
- }
146
-
147
- .animate-value-glow.value-changed {
148
- animation: valueGlow 1.5s ease-out;
149
- }
150
-
151
- .animate-scale-in {
152
- animation: scaleIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
153
- }
154
-
155
- .animate-content-change {
156
- animation: contentChange 0.4s ease-in-out;
157
- }
158
-
159
- .transition-opacity-fast {
160
- transition: opacity 0.2s ease-in-out;
161
- }
162
-
163
- .transition-opacity-slow {
164
- transition: opacity 0.4s ease-in-out;
165
- }
166
-
167
- @keyframes searchHighlight {
168
- 0%, 100% {
169
- background-color: transparent;
170
- box-shadow: none;
171
- }
172
- 50% {
173
- background-color: rgba(59, 130, 246, 0.15);
174
- box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
175
- }
176
- }
177
-
178
- .search-highlight {
179
- animation: searchHighlight 1.5s ease-in-out 2;
180
- border-radius: 12px;
181
- scroll-margin-top: 100px;
182
- }
183
-
184
- @keyframes pulseBorder {
185
- 0%, 100% {
186
- box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
187
- }
188
- 50% {
189
- box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);
190
- }
191
- }
192
-
193
- .animate-pulse-border {
194
- animation: pulseBorder 1s ease-out 3;
195
- }
196
-
197
- /* Radial gradient utility */
198
- .bg-gradient-radial {
199
- background: radial-gradient(circle, var(--tw-gradient-stops));
200
- }
201
-
202
- /* CSS-only animated bubbles - optimized for performance */
203
- @keyframes bubbleFloat1 {
204
- 0%, 100% {
205
- background-position: 0% 0%, 100% 100%, 50% 50%, 20% 80%, 80% 20%;
206
- }
207
- 33% {
208
- background-position: 15% 10%, 85% 90%, 60% 40%, 30% 70%, 70% 30%;
209
- }
210
- 66% {
211
- background-position: 10% 20%, 90% 80%, 45% 55%, 25% 75%, 75% 25%;
212
- }
213
- }
214
-
215
- @keyframes bubbleFloat2 {
216
- 0%, 100% {
217
- background-position: 100% 0%, 0% 100%, 80% 20%, 30% 70%, 60% 50%;
218
- }
219
- 33% {
220
- background-position: 90% 15%, 10% 85%, 70% 30%, 40% 60%, 50% 40%;
221
- }
222
- 66% {
223
- background-position: 85% 10%, 15% 90%, 75% 25%, 35% 65%, 55% 45%;
224
- }
225
- }
226
-
227
- .animated-bubbles {
228
- background-image:
229
- radial-gradient(circle, rgba(59, 130, 246, 0.15) 0%, transparent 50%),
230
- radial-gradient(circle, rgba(147, 51, 234, 0.12) 0%, transparent 50%),
231
- radial-gradient(circle, rgba(59, 130, 246, 0.10) 0%, transparent 60%),
232
- radial-gradient(circle, rgba(99, 102, 241, 0.14) 0%, transparent 45%),
233
- radial-gradient(circle, rgba(168, 85, 247, 0.12) 0%, transparent 55%);
234
- background-size: 300px 300px, 400px 400px, 350px 350px, 280px 280px, 320px 320px;
235
- background-repeat: no-repeat;
236
- animation: bubbleFloat1 35s ease-in-out infinite;
237
- will-change: background-position;
238
- backface-visibility: hidden;
239
- pointer-events: none;
240
- }
241
-
242
- .animated-bubbles.light-mode {
243
- background-image:
244
- radial-gradient(circle, rgba(59, 130, 246, 0.20) 0%, transparent 50%),
245
- radial-gradient(circle, rgba(147, 51, 234, 0.16) 0%, transparent 50%),
246
- radial-gradient(circle, rgba(59, 130, 246, 0.14) 0%, transparent 60%),
247
- radial-gradient(circle, rgba(99, 102, 241, 0.18) 0%, transparent 45%),
248
- radial-gradient(circle, rgba(168, 85, 247, 0.15) 0%, transparent 55%);
249
- animation: bubbleFloat2 40s ease-in-out infinite;
250
- }
251
-
252
- /* Expanded item animations */
253
- @keyframes bounceScale {
254
- 0% {
255
- transform: scale(1);
256
- }
257
- 25% {
258
- transform: scale(1.15);
259
- }
260
- 50% {
261
- transform: scale(1.08);
262
- }
263
- 75% {
264
- transform: scale(1.12);
265
- }
266
- 100% {
267
- transform: scale(1.1);
268
- }
269
- }
270
-
271
- @keyframes iconGlow {
272
- 0% {
273
- filter: brightness(1) saturate(1);
274
- }
275
- 100% {
276
- filter: brightness(1.2) saturate(1.3);
277
- }
278
- }
279
-
280
- @keyframes textGrow {
281
- 0% {
282
- transform: scale(1);
283
- }
284
- 50% {
285
- transform: scale(1.02);
286
- }
287
- 100% {
288
- transform: scale(1.05);
289
- }
290
- }
291
-
292
- @keyframes badgePulse {
293
- 0%, 100% {
294
- transform: scale(1);
295
- opacity: 1;
296
- }
297
- 50% {
298
- transform: scale(1.08);
299
- opacity: 0.95;
300
- }
301
- }
302
-
303
- .expanded-icon-bounce {
304
- animation: bounceScale 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
305
- iconGlow 0.3s ease-out 0.2s forwards;
306
- }
307
-
308
- .expanded-title-grow {
309
- animation: textGrow 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s forwards;
310
- }
311
-
312
- .expanded-badge-pulse {
313
- animation: badgePulse 0.6s ease-in-out 0.3s 2;
314
- }
315
-
316
- /* Smooth transitions for expanded state */
317
- .expand-transition {
318
- transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
319
- }
320
-
321
- @media (prefers-reduced-motion: reduce) {
322
- .expanded-icon-bounce,
323
- .expanded-title-grow,
324
- .expanded-badge-pulse {
325
- animation: none;
326
- transform: scale(1.1);
327
- }
328
- }
1
+ @import 'tailwindcss';
2
+
3
+ h1, h2, h3, h4, h5, h6 {
4
+ margin-top: 0 !important;
5
+ }
6
+
7
+ /* Custom text size smaller than text-xs */
8
+ .text-2xs {
9
+ font-size: 0.625rem;
10
+ line-height: 0.875rem;
11
+ }
12
+
13
+ @keyframes fadeInUp {
14
+ from {
15
+ opacity: 0;
16
+ transform: translateY(20px);
17
+ }
18
+ to {
19
+ opacity: 1;
20
+ transform: translateY(0);
21
+ }
22
+ }
23
+
24
+ @keyframes fadeIn {
25
+ from {
26
+ opacity: 0;
27
+ }
28
+ to {
29
+ opacity: 1;
30
+ }
31
+ }
32
+
33
+ @keyframes progressBar {
34
+ from {
35
+ width: 0%;
36
+ }
37
+ }
38
+
39
+ @keyframes pulseGlow {
40
+ 0%, 100% {
41
+ box-shadow: 0 0 20px rgba(16, 185, 129, 0.5);
42
+ }
43
+ 50% {
44
+ box-shadow: 0 0 30px rgba(16, 185, 129, 0.8);
45
+ }
46
+ }
47
+
48
+ @keyframes valueGlow {
49
+ 0% {
50
+ text-shadow: 0 0 8px rgba(59, 130, 246, 0);
51
+ }
52
+ 50% {
53
+ text-shadow: 0 0 15px rgba(59, 130, 246, 0.6), 0 0 20px rgba(59, 130, 246, 0.3);
54
+ }
55
+ 100% {
56
+ text-shadow: 0 0 8px rgba(59, 130, 246, 0);
57
+ }
58
+ }
59
+
60
+ @keyframes slideUpFade {
61
+ from {
62
+ opacity: 0;
63
+ transform: translateY(30px) scale(0.95);
64
+ }
65
+ to {
66
+ opacity: 1;
67
+ transform: translateY(0) scale(1);
68
+ }
69
+ }
70
+
71
+ @keyframes pulseSubtle {
72
+ 0%, 100% {
73
+ opacity: 1;
74
+ transform: scale(1);
75
+ box-shadow: inherit;
76
+ }
77
+ 50% {
78
+ opacity: 0.9;
79
+ transform: scale(1.05);
80
+ filter: brightness(1.1);
81
+ }
82
+ }
83
+
84
+ @keyframes fadeOut {
85
+ from {
86
+ opacity: 1;
87
+ }
88
+ to {
89
+ opacity: 0;
90
+ }
91
+ }
92
+
93
+ @keyframes scaleIn {
94
+ from {
95
+ opacity: 0;
96
+ transform: scale(0.95);
97
+ }
98
+ to {
99
+ opacity: 1;
100
+ transform: scale(1);
101
+ }
102
+ }
103
+
104
+ @keyframes contentChange {
105
+ 0% {
106
+ opacity: 1;
107
+ }
108
+ 50% {
109
+ opacity: 0.3;
110
+ transform: scale(0.98);
111
+ }
112
+ 100% {
113
+ opacity: 1;
114
+ transform: scale(1);
115
+ }
116
+ }
117
+
118
+ .animate-fade-in-up {
119
+ opacity: 0;
120
+ animation: fadeInUp 0.6s ease-out forwards;
121
+ }
122
+
123
+ .animate-fade-in {
124
+ animation: fadeIn 0.3s ease-out forwards;
125
+ }
126
+
127
+ .animate-fade-out {
128
+ animation: fadeOut 0.2s ease-out forwards;
129
+ }
130
+
131
+ .animate-slide-up-fade {
132
+ animation: slideUpFade 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
133
+ }
134
+
135
+ .animate-progress-bar {
136
+ animation: progressBar 1.2s ease-out forwards;
137
+ }
138
+
139
+ .animate-pulse-glow {
140
+ animation: pulseGlow 2s ease-in-out infinite;
141
+ }
142
+
143
+ .animate-pulse-subtle {
144
+ animation: pulseSubtle 2s ease-in-out infinite;
145
+ }
146
+
147
+ .animate-value-glow.value-changed {
148
+ animation: valueGlow 1.5s ease-out;
149
+ }
150
+
151
+ .animate-scale-in {
152
+ animation: scaleIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
153
+ }
154
+
155
+ .animate-content-change {
156
+ animation: contentChange 0.4s ease-in-out;
157
+ }
158
+
159
+ .transition-opacity-fast {
160
+ transition: opacity 0.2s ease-in-out;
161
+ }
162
+
163
+ .transition-opacity-slow {
164
+ transition: opacity 0.4s ease-in-out;
165
+ }
166
+
167
+ @keyframes searchHighlight {
168
+ 0%, 100% {
169
+ background-color: transparent;
170
+ box-shadow: none;
171
+ }
172
+ 50% {
173
+ background-color: rgba(59, 130, 246, 0.15);
174
+ box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
175
+ }
176
+ }
177
+
178
+ .search-highlight {
179
+ animation: searchHighlight 1.5s ease-in-out 2;
180
+ border-radius: 12px;
181
+ scroll-margin-top: 100px;
182
+ }
183
+
184
+ @keyframes pulseBorder {
185
+ 0%, 100% {
186
+ box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
187
+ }
188
+ 50% {
189
+ box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);
190
+ }
191
+ }
192
+
193
+ .animate-pulse-border {
194
+ animation: pulseBorder 1s ease-out 3;
195
+ }
196
+
197
+ /* Radial gradient utility */
198
+ .bg-gradient-radial {
199
+ background: radial-gradient(circle, var(--tw-gradient-stops));
200
+ }
201
+
202
+ /* CSS-only animated bubbles - optimized for performance */
203
+ @keyframes bubbleFloat1 {
204
+ 0%, 100% {
205
+ background-position: 0% 0%, 100% 100%, 50% 50%, 20% 80%, 80% 20%;
206
+ }
207
+ 33% {
208
+ background-position: 15% 10%, 85% 90%, 60% 40%, 30% 70%, 70% 30%;
209
+ }
210
+ 66% {
211
+ background-position: 10% 20%, 90% 80%, 45% 55%, 25% 75%, 75% 25%;
212
+ }
213
+ }
214
+
215
+ @keyframes bubbleFloat2 {
216
+ 0%, 100% {
217
+ background-position: 100% 0%, 0% 100%, 80% 20%, 30% 70%, 60% 50%;
218
+ }
219
+ 33% {
220
+ background-position: 90% 15%, 10% 85%, 70% 30%, 40% 60%, 50% 40%;
221
+ }
222
+ 66% {
223
+ background-position: 85% 10%, 15% 90%, 75% 25%, 35% 65%, 55% 45%;
224
+ }
225
+ }
226
+
227
+ .animated-bubbles {
228
+ background-image:
229
+ radial-gradient(circle, rgba(59, 130, 246, 0.15) 0%, transparent 50%),
230
+ radial-gradient(circle, rgba(147, 51, 234, 0.12) 0%, transparent 50%),
231
+ radial-gradient(circle, rgba(59, 130, 246, 0.10) 0%, transparent 60%),
232
+ radial-gradient(circle, rgba(99, 102, 241, 0.14) 0%, transparent 45%),
233
+ radial-gradient(circle, rgba(168, 85, 247, 0.12) 0%, transparent 55%);
234
+ background-size: 300px 300px, 400px 400px, 350px 350px, 280px 280px, 320px 320px;
235
+ background-repeat: no-repeat;
236
+ animation: bubbleFloat1 35s ease-in-out infinite;
237
+ will-change: background-position;
238
+ backface-visibility: hidden;
239
+ pointer-events: none;
240
+ }
241
+
242
+ .animated-bubbles.light-mode {
243
+ background-image:
244
+ radial-gradient(circle, rgba(59, 130, 246, 0.20) 0%, transparent 50%),
245
+ radial-gradient(circle, rgba(147, 51, 234, 0.16) 0%, transparent 50%),
246
+ radial-gradient(circle, rgba(59, 130, 246, 0.14) 0%, transparent 60%),
247
+ radial-gradient(circle, rgba(99, 102, 241, 0.18) 0%, transparent 45%),
248
+ radial-gradient(circle, rgba(168, 85, 247, 0.15) 0%, transparent 55%);
249
+ animation: bubbleFloat2 40s ease-in-out infinite;
250
+ }
251
+
252
+ /* Expanded item animations */
253
+ @keyframes bounceScale {
254
+ 0% {
255
+ transform: scale(1);
256
+ }
257
+ 25% {
258
+ transform: scale(1.15);
259
+ }
260
+ 50% {
261
+ transform: scale(1.08);
262
+ }
263
+ 75% {
264
+ transform: scale(1.12);
265
+ }
266
+ 100% {
267
+ transform: scale(1.1);
268
+ }
269
+ }
270
+
271
+ @keyframes iconGlow {
272
+ 0% {
273
+ filter: brightness(1) saturate(1);
274
+ }
275
+ 100% {
276
+ filter: brightness(1.2) saturate(1.3);
277
+ }
278
+ }
279
+
280
+ @keyframes textGrow {
281
+ 0% {
282
+ transform: scale(1);
283
+ }
284
+ 50% {
285
+ transform: scale(1.02);
286
+ }
287
+ 100% {
288
+ transform: scale(1.05);
289
+ }
290
+ }
291
+
292
+ @keyframes badgePulse {
293
+ 0%, 100% {
294
+ transform: scale(1);
295
+ opacity: 1;
296
+ }
297
+ 50% {
298
+ transform: scale(1.08);
299
+ opacity: 0.95;
300
+ }
301
+ }
302
+
303
+ .expanded-icon-bounce {
304
+ animation: bounceScale 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
305
+ iconGlow 0.3s ease-out 0.2s forwards;
306
+ }
307
+
308
+ .expanded-title-grow {
309
+ animation: textGrow 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s forwards;
310
+ transform-origin: left center;
311
+ }
312
+
313
+ .expanded-badge-pulse {
314
+ animation: badgePulse 0.6s ease-in-out 0.3s 2;
315
+ }
316
+
317
+ /* Smooth transitions for expanded state */
318
+ .expand-transition {
319
+ transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
320
+ }
321
+
322
+ @media (prefers-reduced-motion: reduce) {
323
+ .expanded-icon-bounce,
324
+ .expanded-title-grow,
325
+ .expanded-badge-pulse {
326
+ animation: none;
327
+ transform: scale(1.1);
328
+ }
329
+ }
330
+
331
+ .animate-pulse-slow {
332
+ animation: pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
333
+ }