@kerkhoff-ict/solora 1.0.0 → 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 (3) hide show
  1. package/dist/index.css +540 -707
  2. package/dist/index.js +1970 -0
  3. package/package.json +11 -4
package/dist/index.css CHANGED
@@ -1,755 +1,588 @@
1
- .btn-primary {
2
- background: #0071e3;
3
- color: #fff;
1
+ /* src/components/button.css */
2
+ :root {
3
+ --color-primary: #0071e3;
4
+ --color-secondary: #f5f5f5;
5
+ --color-success: #28a745;
6
+ --color-warning: #ffc107;
7
+ --color-danger: #dc3545;
8
+ --color-text-light: #ffffff;
9
+ --color-text-dark: #000000;
10
+ }
11
+ .btn {
4
12
  font-weight: 600;
5
13
  border: none;
6
- box-shadow: 0 2px 8px 0 rgba(0,0,0,0.10);
7
- transition: background 0.2s;
8
- cursor: pointer;
9
- }
10
-
11
- .btn-primary:hover {
12
- background: #005bb5;
13
- }
14
-
15
- .btn-glass {
16
- background: rgba(255, 255, 255, 0.2);
17
- color: #000;
18
- font-weight: 600;
19
- border: 1px solid rgba(255,255,255,0.3);
20
- backdrop-filter: blur(8px);
21
- transition: background 0.2s, box-shadow 0.2s;
14
+ border-radius: 9999px;
15
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
16
+ border-radius: 9999px;
22
17
  cursor: pointer;
18
+ transition: background 0.2s, filter 0.2s;
23
19
  }
24
-
25
- .btn-glass:hover {
26
- background: rgba(255,255,255,0.3);
27
- }
28
-
29
20
  .btn-sm {
30
21
  padding: 0.1875rem 1rem;
31
22
  font-size: 0.9375rem;
32
23
  }
33
-
34
24
  .btn-md {
35
- padding: 0.5rem 1.25rem;
25
+ padding: 0.5rem 1.2rem;
36
26
  font-size: 1rem;
37
27
  }
38
-
39
28
  .btn-lg {
40
29
  padding: 0.8125rem 1.5625rem;
41
30
  font-size: 1.0625rem;
42
31
  }
43
-
44
32
  .btn-xl {
45
33
  padding: 0.9375rem 1.875rem;
46
34
  font-size: 1.3125rem;
47
35
  }
48
-
49
- .block {
50
- display: block;
36
+ .btn.disabled {
37
+ opacity: 0.5;
38
+ cursor: not-allowed;
39
+ pointer-events: none;
51
40
  }
52
-
53
- .inline-block {
54
- display: inline-block;
41
+ .btn-primary {
42
+ background: var(--color-primary, #0071e3);
43
+ color: var(--color-text-light, #fff);
55
44
  }
56
-
57
- .inline {
58
- display: inline;
45
+ .btn-primary:hover {
46
+ filter: brightness(0.85);
59
47
  }
60
-
61
- .flex {
62
- display: flex;
48
+ .btn-secondary {
49
+ background: var(--color-secondary, #f5f5f5);
50
+ color: var(--color-text-dark, #000);
51
+ border: 2px solid rgba(0, 0, 0, 0.1);
63
52
  }
64
-
65
- .inline-flex {
66
- display: inline-flex;
53
+ .btn-secondary.active,
54
+ .btn-secondary:hover {
55
+ filter: brightness(0.9);
67
56
  }
68
-
69
- .grid {
70
- display: grid;
57
+ .btn-success {
58
+ background: var(--color-success, #28a745);
59
+ color: var(--color-text-light, #fff);
71
60
  }
72
-
73
- .inline-grid {
74
- display: inline-grid;
61
+ .btn-success:hover {
62
+ filter: brightness(0.85);
75
63
  }
76
-
77
- .hidden {
78
- display: hidden;
64
+ .btn-warning {
65
+ background: var(--color-warning, #ffc107);
66
+ color: var(--color-text-dark, #000);
79
67
  }
80
-
81
- .flex-row {
82
- display: flex;
83
- flex-direction: row;
68
+ .btn-warning:hover {
69
+ filter: brightness(0.85);
84
70
  }
85
-
86
- .flex-row-reverse {
87
- display: flex;
88
- flex-direction: row-reverse;
71
+ .btn-danger {
72
+ background: var(--color-danger, #dc3545);
73
+ color: var(--color-text-light, #fff);
89
74
  }
90
-
91
- .flex-col {
92
- display: flex;
93
- flex-direction: column;
75
+ .btn-danger:hover {
76
+ filter: brightness(0.85);
94
77
  }
95
-
96
- .flex-col-reverse {
97
- display: flex;
98
- flex-direction: column-reverse;
78
+ .btn-glass {
79
+ position: relative;
80
+ background: rgba(255, 255, 255, 0.2);
81
+ color: var(--color-text-dark, #000);
82
+ border: 1px solid rgba(255, 255, 255, 0.3);
83
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), inset 0 0 0 1px rgba(255, 255, 255, 0.1);
84
+ backdrop-filter: blur(12px);
85
+ -webkit-backdrop-filter: blur(12px);
86
+ overflow: hidden;
87
+ transition: all 0.3s ease;
88
+ }
89
+ .btn-glass::before {
90
+ content: "";
91
+ position: absolute;
92
+ top: 4px;
93
+ left: 4px;
94
+ right: 4px;
95
+ bottom: 0;
96
+ background: rgba(0, 0, 0, 0.084);
97
+ filter: blur(16px);
98
+ z-index: -1;
99
+ border-radius: inherit;
100
+ pointer-events: none;
99
101
  }
100
-
101
- .flex-wrap {
102
- display: flex;
103
- flex-direction: wrap;
102
+ .btn-glass:hover {
103
+ background: rgba(255, 255, 255, 0.35);
104
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.15);
105
+ }
106
+ .btn-glass:active {
107
+ background: rgba(255, 255, 255, 0.25);
108
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(255, 255, 255, 0.2);
109
+ transform: translateY(1px);
110
+ }
111
+ [class*="btn-["] {
112
+ color: var(--color-text-light, #fff);
113
+ transition: all 0.2s ease;
114
+ }
115
+ [class*="btn-["]:hover {
116
+ filter: brightness(0.85);
117
+ }
118
+ @media (prefers-color-scheme: dark) {
119
+ .btn-primary {
120
+ background: #0558be;
121
+ color: var(--color-text-light, #fff);
122
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
123
+ }
124
+ .btn-primary:hover {
125
+ background: #2b76d2;
126
+ }
127
+ .btn-secondary {
128
+ background: #1c1c1e;
129
+ color: #f0f0f0;
130
+ border: 2px solid rgba(255, 255, 255, 0.2);
131
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
132
+ }
133
+ .btn-secondary.active,
134
+ .btn-secondary:hover {
135
+ background-color: #2a2a2c;
136
+ }
137
+ .btn-success {
138
+ background: #1c3e23;
139
+ }
140
+ .btn-success:hover {
141
+ filter: brightness(1.2);
142
+ }
143
+ .btn-warning {
144
+ background: #664d03;
145
+ }
146
+ .btn-warning:hover {
147
+ filter: brightness(1.2);
148
+ }
149
+ .btn-danger {
150
+ background: #7a1f1f;
151
+ }
152
+ .btn-danger:hover {
153
+ filter: brightness(1.2);
154
+ }
155
+ .btn-glass {
156
+ background: rgba(255, 255, 255, 0.05);
157
+ color: #fff;
158
+ border: 1px solid rgba(255, 255, 255, 0.2);
159
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
160
+ }
161
+ .btn-glass::before {
162
+ background: rgba(255, 255, 255, 0.04);
163
+ }
164
+ .btn-glass:hover {
165
+ background: rgba(255, 255, 255, 0.1);
166
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
167
+ }
168
+ .btn-glass:active {
169
+ background: rgba(255, 255, 255, 0.07);
170
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.1);
171
+ }
172
+ }
173
+
174
+ /* src/components/codeblock.css */
175
+ .codeblock {
176
+ position: relative;
177
+ border-radius: 12px;
178
+ overflow: hidden;
179
+ font-family:
180
+ "SF Mono",
181
+ "Menlo",
182
+ monospace;
183
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
184
+ background: #fefefe55;
185
+ backdrop-filter: blur(8px);
104
186
  }
105
-
106
- .flex-nowrap {
187
+ .pre-content {
188
+ margin: 0;
189
+ backdrop-filter: blur(12px);
190
+ color: #000000;
191
+ padding-left: 16px;
192
+ padding-top: 10px;
193
+ padding-bottom: 10px;
194
+ width: 100%;
195
+ height: 100%;
196
+ overflow-x: auto;
197
+ font-size: 0.9rem;
198
+ line-height: 1.5;
199
+ word-break: break-word;
200
+ display: block;
201
+ background: transparent;
202
+ color: inherit;
203
+ position: relative;
204
+ transition: max-height 0.3s ease, opacity 0.3s ease;
205
+ opacity: 1;
206
+ }
207
+ .pre-content.collapsed {
208
+ max-height: 0;
209
+ opacity: 0;
210
+ }
211
+ .pre-copy-btn {
212
+ justify-self: end;
213
+ transition: background 0.2s ease, color 0.2s ease;
214
+ }
215
+ .pre-copy-btn.btn-in-pre {
216
+ position: absolute;
217
+ top: 8px;
218
+ right: 8px;
219
+ z-index: 5;
220
+ }
221
+ .pre-top {
222
+ background: rgb(74, 74, 74);
107
223
  display: flex;
108
- flex-direction: nowrap;
109
- }
110
-
111
- .items-start {
112
- align-items: flex-start;
113
- }
114
-
115
- .items-center {
224
+ width: 100%;
225
+ flex-direction: row;
226
+ justify-content: space-between;
116
227
  align-items: center;
228
+ padding: 9px;
229
+ padding-left: 20px;
117
230
  }
118
-
119
- .items-end {
120
- align-items: flex-end;
121
- }
122
-
123
- .justify-start {
124
- justify-content: flex-start;
125
- }
126
-
127
- .justify-center {
128
- justify-content: center;
129
- }
130
-
131
- .justify-end {
132
- justify-content: flex-end;
231
+ .pre-top-btns {
232
+ display: flex;
233
+ gap: 8px;
234
+ z-index: 10;
235
+ cursor: pointer !important;
236
+ }
237
+ .pre-top-btns span {
238
+ width: 15px;
239
+ height: 15px;
240
+ border-radius: 50%;
241
+ display: inline-block;
133
242
  }
134
-
135
- .justify-between {
243
+ .pre-btn-red {
244
+ background: #ff5f57;
245
+ position: relative;
246
+ }
247
+ .pre-btn-orange {
248
+ background: #ffbd2e;
249
+ position: relative;
250
+ }
251
+ .pre-btn-green {
252
+ background: #28c940;
253
+ position: relative;
254
+ }
255
+ .pre-btn-red::before {
256
+ content: "\d7";
257
+ position: absolute;
258
+ top: 50%;
259
+ left: 50%;
260
+ transform: translate(-50%, -50%);
261
+ font-size: 13px;
262
+ color: black;
263
+ font-weight: bold;
264
+ opacity: 0;
265
+ pointer-events: none;
266
+ }
267
+ .pre-btn-orange::before {
268
+ content: "\2013";
269
+ position: absolute;
270
+ top: 50%;
271
+ left: 50%;
272
+ transform: translate(-50%, -50%);
273
+ font-size: 13px;
274
+ color: black;
275
+ font-weight: bold;
276
+ opacity: 0;
277
+ pointer-events: none;
278
+ }
279
+ .pre-btn-green::before {
280
+ content: "\26f6";
281
+ position: absolute;
282
+ top: 50%;
283
+ left: 50%;
284
+ transform: translate(-50%, -50%);
285
+ font-size: 10px;
286
+ color: black;
287
+ font-weight: bold;
288
+ opacity: 0;
289
+ pointer-events: none;
290
+ }
291
+ .pre-top-btns span:hover::before {
292
+ opacity: 1;
293
+ }
294
+ .pre-btn-red:hover {
295
+ filter: brightness(1.2);
296
+ }
297
+ .pre-btn-orange:hover {
298
+ filter: brightness(1.2);
299
+ }
300
+ .pre-btn-green:hover {
301
+ filter: brightness(1.2);
302
+ }
303
+ .codeblock .token.comment,
304
+ .codeblock .token.prolog,
305
+ .codeblock .token.doctype,
306
+ .codeblock .token.cdata {
307
+ color: #7f8c8d;
308
+ font-style: italic;
309
+ }
310
+ .codeblock .token.punctuation {
311
+ color: #2c3e50;
312
+ }
313
+ .codeblock .token.operator,
314
+ .codeblock .token.boolean,
315
+ .codeblock .token.symbol,
316
+ .codeblock .token.entity {
317
+ color: #2c3e50;
318
+ }
319
+ .codeblock .token.number {
320
+ color: #d35400;
321
+ }
322
+ .codeblock .token.property,
323
+ .codeblock .token.tag,
324
+ .codeblock .token.constant,
325
+ .codeblock .token.class-name,
326
+ .codeblock .token.function {
327
+ color: #2980b9;
328
+ font-weight: 500;
329
+ }
330
+ .codeblock .token.selector,
331
+ .codeblock .token.attr-name,
332
+ .codeblock .token.string,
333
+ .codeblock .token.char,
334
+ .codeblock .token.builtin,
335
+ .codeblock .token.inserted {
336
+ color: #27ae60;
337
+ }
338
+ .codeblock .token.keyword,
339
+ .codeblock .token.atrule,
340
+ .codeblock .token.attr-value,
341
+ .codeblock .token.deleted,
342
+ .codeblock .token.regex,
343
+ .codeblock .token.important {
344
+ color: #e67e22;
345
+ font-weight: 500;
346
+ }
347
+ .codeblock .token.entity {
348
+ cursor: help;
349
+ }
350
+ .codeblock .token.important,
351
+ .codeblock .token.bold {
352
+ font-weight: bold;
353
+ }
354
+ .codeblock .token.italic {
355
+ font-style: italic;
356
+ }
357
+ .codeblock ::selection {
358
+ background: rgba(46, 204, 113, 0.2);
359
+ }
360
+ .codeblock pre::-webkit-scrollbar {
361
+ height: 6px;
362
+ width: 6px;
363
+ }
364
+ .codeblock pre::-webkit-scrollbar-thumb {
365
+ background: rgba(255, 255, 255, 0.2);
366
+ border-radius: 3px;
367
+ }
368
+ .codeblock pre::-webkit-scrollbar-track {
369
+ background: transparent;
370
+ }
371
+ @media (prefers-color-scheme: dark) {
372
+ .codeblock {
373
+ background: #1e1e2f88;
374
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
375
+ }
376
+ .pre-content {
377
+ color: #f0f0f0;
378
+ }
379
+ .pre-top {
380
+ background: #2c2c3e;
381
+ }
382
+ .codeblock .token.comment,
383
+ .codeblock .token.prolog,
384
+ .codeblock .token.doctype,
385
+ .codeblock .token.cdata {
386
+ color: #95a5a6;
387
+ font-style: italic;
388
+ }
389
+ .codeblock .token.punctuation {
390
+ color: #ecf0f1;
391
+ }
392
+ .codeblock .token.operator,
393
+ .codeblock .token.boolean,
394
+ .codeblock .token.symbol,
395
+ .codeblock .token.entity {
396
+ color: #ecf0f1;
397
+ }
398
+ .codeblock .token.number {
399
+ color: #e67e22;
400
+ }
401
+ .codeblock .token.property,
402
+ .codeblock .token.tag,
403
+ .codeblock .token.constant,
404
+ .codeblock .token.class-name,
405
+ .codeblock .token.function {
406
+ color: #3498db;
407
+ font-weight: 500;
408
+ }
409
+ .codeblock .token.selector,
410
+ .codeblock .token.attr-name,
411
+ .codeblock .token.string,
412
+ .codeblock .token.char,
413
+ .codeblock .token.builtin,
414
+ .codeblock .token.inserted {
415
+ color: #2ecc71;
416
+ }
417
+ .codeblock .token.keyword,
418
+ .codeblock .token.atrule,
419
+ .codeblock .token.attr-value,
420
+ .codeblock .token.deleted,
421
+ .codeblock .token.regex,
422
+ .codeblock .token.important {
423
+ color: #f39c12;
424
+ font-weight: 500;
425
+ }
426
+ }
427
+
428
+ /* src/components/dropdown.css */
429
+ .dropdown {
430
+ position: relative;
431
+ display: inline-block;
432
+ font-family:
433
+ -apple-system,
434
+ BlinkMacSystemFont,
435
+ "Segoe UI",
436
+ Roboto,
437
+ Helvetica,
438
+ Arial,
439
+ sans-serif;
440
+ cursor: pointer;
441
+ user-select: none;
442
+ }
443
+ .dropdown-btn {
444
+ padding: 0.3rem 0.4rem;
445
+ border-radius: 12px;
446
+ border: 1px solid rgba(0, 0, 0, 0.1);
447
+ background: var(--color-bg, #fefefe);
448
+ color: var(--color-text-dark, #000);
449
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
450
+ transition: all 0.2s ease;
451
+ display: flex;
452
+ align-items: center;
136
453
  justify-content: space-between;
454
+ white-space: nowrap;
455
+ overflow: hidden;
456
+ text-overflow: ellipsis;
137
457
  }
138
-
139
- .justify-around {
140
- justify-content: space-around;
141
- }
142
-
143
- .justify-evenly {
144
- justify-content: space-evenly;
145
- }
146
-
147
- .h-sm {
148
- height: 8rem;
149
- }
150
-
151
- .h-md {
152
- height: 16rem;
153
- }
154
-
155
- .h-lg {
156
- height: 24rem;
157
- }
158
-
159
- .h-xl {
160
- height: 32rem;
161
- }
162
-
163
- .h-2xl {
164
- height: 48rem;
165
- }
166
-
167
- .h-full {
168
- height: 100%;
169
- }
170
-
171
- .h-screen {
172
- height: 100vh;
173
- }
174
-
175
- .max-h-sm {
176
- max-height: 8rem;
177
- }
178
-
179
- .max-h-md {
180
- max-height: 16rem;
181
- }
182
-
183
- .max-h-lg {
184
- max-height: 24rem;
185
- }
186
-
187
- .max-h-xl {
188
- max-height: 32rem;
189
- }
190
-
191
- .max-h-2xl {
192
- max-height: 48rem;
193
- }
194
-
195
- .max-h-full {
196
- max-height: 100%;
197
- }
198
-
199
- .max-h-screen {
200
- max-height: 100vh;
201
- }
202
-
203
- .max-w-sm {
204
- max-width: 8rem;
205
- }
206
-
207
- .max-w-md {
208
- max-width: 16rem;
209
- }
210
-
211
- .max-w-lg {
212
- max-width: 24rem;
213
- }
214
-
215
- .max-w-xl {
216
- max-width: 32rem;
217
- }
218
-
219
- .max-w-2xl {
220
- max-width: 48rem;
221
- }
222
-
223
- .max-w-full {
224
- max-width: 100%;
225
- }
226
-
227
- .max-w-screen {
228
- max-width: 100vh;
229
- }
230
-
231
- .mb-sm {
232
- margin-bottom: 0.25rem;
233
- }
234
-
235
- .mb-md {
236
- margin-bottom: 0.5rem;
237
- }
238
-
239
- .mb-lg {
240
- margin-bottom: 1rem;
241
- }
242
-
243
- .mb-xl {
244
- margin-bottom: 2rem;
245
- }
246
-
247
- .mb-2xl {
248
- margin-bottom: 4rem;
249
- }
250
-
251
- .mb-auto {
252
- margin-bottom: auto;
253
- }
254
-
255
- .mb-full {
256
- margin-bottom: 100%;
257
- }
258
-
259
- .m-sm {
260
- margin: 0.25rem;
261
- }
262
-
263
- .m-md {
264
- margin: 0.5rem;
265
- }
266
-
267
- .m-lg {
268
- margin: 1rem;
269
- }
270
-
271
- .m-xl {
272
- margin: 2rem;
273
- }
274
-
275
- .m-2xl {
276
- margin: 4rem;
277
- }
278
-
279
- .m-auto {
280
- margin: auto;
281
- }
282
-
283
- .m-full {
284
- margin: 100%;
285
- }
286
-
287
- .min-h-sm {
288
- min-height: 8rem;
289
- }
290
-
291
- .min-h-md {
292
- min-height: 16rem;
293
- }
294
-
295
- .min-h-lg {
296
- min-height: 24rem;
297
- }
298
-
299
- .min-h-xl {
300
- min-height: 32rem;
301
- }
302
-
303
- .min-h-2xl {
304
- min-height: 48rem;
305
- }
306
-
307
- .min-h-full {
308
- min-height: 100%;
309
- }
310
-
311
- .min-h-screen {
312
- min-height: 100vh;
313
- }
314
-
315
- .min-w-sm {
316
- min-width: 8rem;
317
- }
318
-
319
- .min-w-md {
320
- min-width: 16rem;
321
- }
322
-
323
- .min-w-lg {
324
- min-width: 24rem;
325
- }
326
-
327
- .min-w-xl {
328
- min-width: 32rem;
329
- }
330
-
331
- .min-w-2xl {
332
- min-width: 48rem;
333
- }
334
-
335
- .min-w-full {
336
- min-width: 100%;
337
- }
338
-
339
- .min-w-screen {
340
- min-width: 100vh;
341
- }
342
-
343
- .ml-sm {
344
- margin-left: 0.25rem;
345
- }
346
-
347
- .ml-md {
348
- margin-left: 0.5rem;
349
- }
350
-
351
- .ml-lg {
352
- margin-left: 1rem;
353
- }
354
-
355
- .ml-xl {
356
- margin-left: 2rem;
357
- }
358
-
359
- .ml-2xl {
360
- margin-left: 4rem;
361
- }
362
-
363
- .ml-auto {
364
- margin-left: auto;
365
- }
366
-
367
- .ml-full {
368
- margin-left: 100%;
369
- }
370
-
371
- .mr-sm {
372
- margin-right: 0.25rem;
373
- }
374
-
375
- .mr-md {
376
- margin-right: 0.5rem;
377
- }
378
-
379
- .mr-lg {
380
- margin-right: 1rem;
381
- }
382
-
383
- .mr-xl {
384
- margin-right: 2rem;
385
- }
386
-
387
- .mr-2xl {
388
- margin-right: 4rem;
389
- }
390
-
391
- .mr-auto {
392
- margin-right: auto;
393
- }
394
-
395
- .mr-full {
396
- margin-right: 100%;
397
- }
398
-
399
- .mt-sm {
400
- margin-top: 0.25rem;
401
- }
402
-
403
- .mt-md {
404
- margin-top: 0.5rem;
405
- }
406
-
407
- .mt-lg {
408
- margin-top: 1rem;
409
- }
410
-
411
- .mt-xl {
412
- margin-top: 2rem;
413
- }
414
-
415
- .mt-2xl {
416
- margin-top: 4rem;
417
- }
418
-
419
- .mt-auto {
420
- margin-top: auto;
421
- }
422
-
423
- .mt-full {
424
- margin-top: 100%;
458
+ .dropdown-btn:hover {
459
+ background: var(--color-bg-hover, rgba(0, 0, 0, 0.05));
425
460
  }
426
-
427
- .mx-sm {
428
- margin-left: 0.25rem;
429
- margin-right: 0.25rem;
430
- }
431
-
432
- .mx-md {
461
+ .dropdown-btn:after {
462
+ content: "\25be";
433
463
  margin-left: 0.5rem;
434
- margin-right: 0.5rem;
435
- }
436
-
437
- .mx-lg {
438
- margin-left: 1rem;
439
- margin-right: 1rem;
440
- }
441
-
442
- .mx-xl {
443
- margin-left: 2rem;
444
- margin-right: 2rem;
445
- }
446
-
447
- .mx-2xl {
448
- margin-left: 4rem;
449
- margin-right: 4rem;
450
- }
451
-
452
- .mx-auto {
453
- margin-left: auto;
454
- margin-right: auto;
455
- }
456
-
457
- .mx-full {
458
- margin-left: 100%;
459
- margin-right: 100%;
460
- }
461
-
462
- .my-sm {
463
- margin-top: 0.25rem;
464
- margin-bottom: 0.25rem;
465
- }
466
-
467
- .my-md {
464
+ font-size: 0.75rem;
465
+ transition: transform 0.2s ease;
466
+ }
467
+ .dropdown.open .dropdown-btn:after {
468
+ transform: rotate(180deg);
469
+ }
470
+ .dropdown-btn:focus {
471
+ outline: 2px solid var(--color-primary, #0071e3);
472
+ outline-offset: 2px;
473
+ }
474
+ .dropdown-content {
475
+ position: absolute;
476
+ top: 100%;
477
+ left: 0;
478
+ width: 100%;
479
+ min-width: 10rem;
480
+ border-radius: 12px;
468
481
  margin-top: 0.5rem;
469
- margin-bottom: 0.5rem;
470
- }
471
-
472
- .my-lg {
473
- margin-top: 1rem;
474
- margin-bottom: 1rem;
475
- }
476
-
477
- .my-xl {
478
- margin-top: 2rem;
479
- margin-bottom: 2rem;
480
- }
481
-
482
- .my-2xl {
483
- margin-top: 4rem;
484
- margin-bottom: 4rem;
485
- }
486
-
487
- .my-auto {
488
- margin-top: auto;
489
- margin-bottom: auto;
490
- }
491
-
492
- .my-full {
493
- margin-top: 100%;
494
- margin-bottom: 100%;
495
- }
496
-
497
- .pb-sm {
498
- padding-bottom: 0.25rem;
499
- }
500
-
501
- .pb-md {
502
- padding-bottom: 0.5rem;
503
- }
504
-
505
- .pb-lg {
506
- padding-bottom: 1rem;
507
- }
508
-
509
- .pb-xl {
510
- padding-bottom: 2rem;
511
- }
512
-
513
- .pb-2xl {
514
- padding-bottom: 4rem;
515
- }
516
-
517
- .pb-auto {
518
- padding-bottom: auto;
519
- }
520
-
521
- .pb-full {
522
- padding-bottom: 100%;
523
- }
524
-
525
- .p-sm {
526
- padding: 0.25rem;
527
- }
528
-
529
- .p-md {
530
- padding: 0.5rem;
531
- }
532
-
533
- .p-lg {
534
- padding: 1rem;
535
- }
536
-
537
- .p-xl {
538
- padding: 2rem;
539
- }
540
-
541
- .p-2xl {
542
- padding: 4rem;
543
- }
544
-
545
- .p-auto {
546
- padding: auto;
547
- }
548
-
549
- .p-full {
550
- padding: 100%;
551
- }
552
-
553
- .pl-sm {
554
- padding-left: 0.25rem;
555
- }
556
-
557
- .pl-md {
558
- padding-left: 0.5rem;
559
- }
560
-
561
- .pl-lg {
562
- padding-left: 1rem;
563
- }
564
-
565
- .pl-xl {
566
- padding-left: 2rem;
567
- }
568
-
569
- .pl-2xl {
570
- padding-left: 4rem;
571
- }
572
-
573
- .pl-auto {
574
- padding-left: auto;
575
- }
576
-
577
- .pl-full {
578
- padding-left: 100%;
579
- }
580
-
581
- .pr-sm {
582
- padding-right: 0.25rem;
583
- }
584
-
585
- .pr-md {
586
- padding-right: 0.5rem;
587
- }
588
-
589
- .pr-lg {
590
- padding-right: 1rem;
591
- }
592
-
593
- .pr-xl {
594
- padding-right: 2rem;
595
- }
596
-
597
- .pr-2xl {
598
- padding-right: 4rem;
599
- }
600
-
601
- .pr-auto {
602
- padding-right: auto;
603
- }
604
-
605
- .pr-full {
606
- padding-right: 100%;
607
- }
608
-
609
- .pt-sm {
610
- padding-top: 0.25rem;
611
- }
612
-
613
- .pt-md {
614
- padding-top: 0.5rem;
615
- }
616
-
617
- .pt-lg {
618
- padding-top: 1rem;
619
- }
620
-
621
- .pt-xl {
622
- padding-top: 2rem;
623
- }
624
-
625
- .pt-2xl {
626
- padding-top: 4rem;
627
- }
628
-
629
- .pt-auto {
630
- padding-top: auto;
631
- }
632
-
633
- .pt-full {
634
- padding-top: 100%;
635
- }
636
-
637
- .px-sm {
638
- padding-left: 0.25rem;
639
- padding-right: 0.25rem;
640
- }
641
-
642
- .px-md {
643
- padding-left: 0.5rem;
644
- padding-right: 0.5rem;
645
- }
646
-
647
- .px-lg {
648
- padding-left: 1rem;
649
- padding-right: 1rem;
650
- }
651
-
652
- .px-xl {
653
- padding-left: 2rem;
654
- padding-right: 2rem;
655
- }
656
-
657
- .px-2xl {
658
- padding-left: 4rem;
659
- padding-right: 4rem;
660
- }
661
-
662
- .px-auto {
663
- padding-left: auto;
664
- padding-right: auto;
665
- }
666
-
667
- .px-full {
668
- padding-left: 100%;
669
- padding-right: 100%;
670
- }
671
-
672
- .py-sm {
673
- padding-top: 0.25rem;
674
- padding-bottom: 0.25rem;
675
- }
676
-
677
- .py-md {
678
- padding-top: 0.5rem;
679
- padding-bottom: 0.5rem;
680
- }
681
-
682
- .py-lg {
683
- padding-top: 1rem;
684
- padding-bottom: 1rem;
685
- }
686
-
687
- .py-xl {
688
- padding-top: 2rem;
689
- padding-bottom: 2rem;
690
- }
691
-
692
- .py-2xl {
693
- padding-top: 4rem;
694
- padding-bottom: 4rem;
695
- }
696
-
697
- .py-auto {
698
- padding-top: auto;
699
- padding-bottom: auto;
700
- }
701
-
702
- .py-full {
703
- padding-top: 100%;
704
- padding-bottom: 100%;
705
- }
706
-
707
- .rounded-sm {
708
- border-radius: 0.125rem;
482
+ background: rgba(255, 255, 255, 0.8);
483
+ backdrop-filter: blur(12px);
484
+ -webkit-backdrop-filter: blur(12px);
485
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
486
+ max-height: 15rem;
487
+ overflow-y: auto;
488
+ scrollbar-width: thin;
489
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
490
+ opacity: 0;
491
+ transform: translateY(-10px) scale(0.95);
492
+ pointer-events: none;
493
+ transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
494
+ z-index: 1000;
495
+ }
496
+ .dropdown-content::-webkit-scrollbar {
497
+ width: 6px;
498
+ }
499
+ .dropdown-content::-webkit-scrollbar-thumb {
500
+ background: rgba(0, 0, 0, 0.2);
501
+ border-radius: 3px;
502
+ }
503
+ .dropdown-content::-webkit-scrollbar-track {
504
+ background: transparent;
505
+ }
506
+ .dropdown.open .dropdown-content {
507
+ opacity: 1;
508
+ transform: translateY(0) scale(1);
509
+ pointer-events: auto;
510
+ }
511
+ .dropdown-item {
512
+ padding: 0.3rem 0.4rem;
513
+ color: var(--color-text-dark, #000);
514
+ transition: background 0.2s, color 0.2s;
515
+ cursor: pointer;
709
516
  }
710
-
711
- .rounded-md {
712
- border-radius: 0.25rem;
517
+ .dropdown-item:hover {
518
+ background: rgba(0, 0, 0, 0.05);
713
519
  }
714
-
715
- .rounded-lg {
716
- border-radius: 0.5rem;
520
+ .dropdown-item.active {
521
+ font-weight: 600;
522
+ background: rgba(0, 0, 0, 0.1);
717
523
  }
718
-
719
- .rounded-xl {
720
- border-radius: 1rem;
524
+ .dropdown-item:focus {
525
+ outline: 2px solid var(--color-primary, #0071e3);
526
+ outline-offset: 2px;
721
527
  }
722
-
723
- .rounded-2xl {
724
- border-radius: 1.5rem;
528
+ .dropdown-item[aria-disabled=true],
529
+ .dropdown-item.placeholder {
530
+ color: rgba(0, 0, 0, 0.4);
531
+ cursor: default;
532
+ pointer-events: none;
725
533
  }
726
-
727
- .rounded-3xl {
728
- border-radius: 2rem;
534
+ .dropdown input[type=hidden] {
535
+ display: none;
729
536
  }
730
-
731
- .rounded-full {
732
- border-radius: 9999px;
537
+ .dropdown-divider {
538
+ height: 1px;
539
+ margin: 0.25rem 0;
540
+ background: rgba(0, 0, 0, 0.1);
733
541
  }
734
-
735
- .text-left { text-align: left; }
736
-
737
- .text-center { text-align: center; }
738
-
739
- .text-right { text-align: right; }
740
-
741
- .text-justify { text-align: justify; }
742
-
743
- .w-sm { width: 8rem; }
744
-
745
- .w-md { width: 16rem; }
746
-
747
- .w-lg { width: 24rem; }
748
-
749
- .w-xl { width: 32rem; }
750
-
751
- .w-2xl { width: 48rem; }
752
-
753
- .w-full { width: 100%; }
754
-
755
- .w-screen { width: 100vh; }
542
+ .dropdown-label {
543
+ padding: 0.3rem 0.4rem;
544
+ font-weight: 600;
545
+ color: rgba(0, 0, 0, 0.6);
546
+ cursor: default;
547
+ }
548
+ @media (prefers-color-scheme: dark) {
549
+ .dropdown-btn {
550
+ background: #1c1c1e;
551
+ color: #f0f0f0;
552
+ border: 1px solid rgba(255, 255, 255, 0.2);
553
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
554
+ }
555
+ .dropdown-btn:hover {
556
+ background: rgba(255, 255, 255, 0.05);
557
+ }
558
+ .dropdown-content {
559
+ background: rgba(28, 28, 30, 0.8);
560
+ backdrop-filter: blur(12px);
561
+ -webkit-backdrop-filter: blur(12px);
562
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
563
+ }
564
+ .dropdown-item {
565
+ color: #f0f0f0;
566
+ }
567
+ .dropdown-item:hover {
568
+ background: rgba(255, 255, 255, 0.08);
569
+ }
570
+ .dropdown-item.active {
571
+ background: rgba(255, 255, 255, 0.12);
572
+ }
573
+ .dropdown-divider {
574
+ background: rgba(255, 255, 255, 0.2);
575
+ }
576
+ .dropdown-item[aria-disabled=true],
577
+ .dropdown-item.placeholder {
578
+ color: rgba(255, 255, 255, 0.4);
579
+ }
580
+ .dropdown-label {
581
+ color: rgba(255, 255, 255, 0.6);
582
+ }
583
+ .dropdown-content::-webkit-scrollbar-thumb {
584
+ background: rgba(255, 255, 255, 0.2);
585
+ }
586
+ }
587
+
588
+ /* src/index.css */