@huskel/sdk 0.4.0 → 0.4.2

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/dist/index.css ADDED
@@ -0,0 +1,1370 @@
1
+ /* src/styles.css */
2
+ .hsk-chat-widget {
3
+ --hsk-bg: var(--chat-bg-color, #0f0f10);
4
+ --hsk-text: var(--chat-text-color, #f3f3f2);
5
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
6
+ --hsk-font: var(--chat-font-family, inherit);
7
+ display: flex;
8
+ flex-direction: column;
9
+ height: 100%;
10
+ min-height: 320px;
11
+ font-family: var(--hsk-font);
12
+ background: var(--hsk-bg);
13
+ border: 1px solid #2a2a2d;
14
+ border-radius: 12px;
15
+ overflow: hidden;
16
+ }
17
+ .hsk-chat-header {
18
+ display: flex;
19
+ align-items: center;
20
+ gap: 10px;
21
+ padding: 14px 16px;
22
+ border-bottom: 1px solid #1e1e1f;
23
+ background: #111112;
24
+ flex-shrink: 0;
25
+ }
26
+ .hsk-chat-header-icon {
27
+ color: var(--hsk-primary);
28
+ display: flex;
29
+ align-items: center;
30
+ }
31
+ .hsk-chat-title {
32
+ font-size: 14px;
33
+ font-weight: 600;
34
+ color: #f3f3f2;
35
+ }
36
+ .hsk-chat-badge {
37
+ font-size: 10px;
38
+ font-weight: 700;
39
+ letter-spacing: 0.08em;
40
+ text-transform: uppercase;
41
+ color: var(--hsk-primary);
42
+ background: rgba(255, 106, 51, 0.09);
43
+ border: 1px solid rgba(255, 106, 51, 0.18);
44
+ padding: 2px 8px;
45
+ border-radius: 20px;
46
+ }
47
+ .hsk-chat-messages {
48
+ flex: 1;
49
+ overflow-y: auto;
50
+ padding: 16px;
51
+ display: flex;
52
+ flex-direction: column;
53
+ gap: 12px;
54
+ scroll-behavior: smooth;
55
+ }
56
+ .hsk-chat-empty {
57
+ display: flex;
58
+ flex-direction: column;
59
+ align-items: center;
60
+ justify-content: center;
61
+ height: 100%;
62
+ gap: 8px;
63
+ color: #555;
64
+ font-size: 13px;
65
+ text-align: center;
66
+ padding: 24px;
67
+ }
68
+ .hsk-chat-empty-icon {
69
+ font-size: 28px;
70
+ margin-bottom: 4px;
71
+ color: var(--hsk-primary);
72
+ display: flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ }
76
+ .hsk-chat-empty-suggestions {
77
+ font-size: 12px;
78
+ color: #444;
79
+ margin-top: 4px;
80
+ }
81
+ .hsk-msg-row {
82
+ display: flex;
83
+ gap: 8px;
84
+ align-items: flex-start;
85
+ }
86
+ .hsk-msg-row.user {
87
+ flex-direction: row-reverse;
88
+ }
89
+ .hsk-msg-avatar {
90
+ width: 28px;
91
+ height: 28px;
92
+ border-radius: 50%;
93
+ flex-shrink: 0;
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ font-size: 13px;
98
+ font-weight: 700;
99
+ }
100
+ .hsk-msg-avatar.ai {
101
+ background: rgba(255, 106, 51, 0.12);
102
+ border: 1px solid rgba(255, 106, 51, 0.25);
103
+ color: var(--hsk-primary);
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ }
108
+ .hsk-msg-avatar.user {
109
+ background: #2a2a2d;
110
+ color: #9a9aa1;
111
+ }
112
+ .hsk-msg-bubble {
113
+ max-width: 78%;
114
+ padding: 10px 14px;
115
+ border-radius: 12px;
116
+ font-size: 13px;
117
+ line-height: 1.6;
118
+ }
119
+ .hsk-msg-bubble.ai {
120
+ background: #171718;
121
+ border: 1px solid #2a2a2d;
122
+ color: #e8e8e7;
123
+ border-radius: 4px 12px 12px 12px;
124
+ }
125
+ .hsk-msg-bubble.user {
126
+ background: var(--hsk-primary);
127
+ color: #fff;
128
+ border-radius: 12px 4px 12px 12px;
129
+ }
130
+ .hsk-sources-container {
131
+ margin-left: 36px;
132
+ }
133
+ .hsk-sources {
134
+ margin-top: 10px;
135
+ display: flex;
136
+ flex-direction: column;
137
+ gap: 6px;
138
+ }
139
+ .hsk-source-card {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 10px;
143
+ padding: 8px 10px;
144
+ background: #1a1a1b;
145
+ border: 1px solid #252527;
146
+ border-radius: 8px;
147
+ cursor: pointer;
148
+ transition: border-color 0.15s;
149
+ }
150
+ .hsk-source-card:hover {
151
+ border-color: rgba(255, 106, 51, 0.37);
152
+ }
153
+ .hsk-source-img {
154
+ width: 36px;
155
+ height: 36px;
156
+ object-fit: cover;
157
+ border-radius: 4px;
158
+ background: #fff;
159
+ }
160
+ .hsk-source-name {
161
+ font-size: 12px;
162
+ font-weight: 500;
163
+ color: #e8e8e7;
164
+ white-space: nowrap;
165
+ overflow: hidden;
166
+ text-overflow: ellipsis;
167
+ }
168
+ .hsk-source-price {
169
+ font-size: 11px;
170
+ color: var(--hsk-primary);
171
+ font-weight: 700;
172
+ margin-top: 2px;
173
+ }
174
+ .hsk-typing {
175
+ display: flex;
176
+ gap: 4px;
177
+ align-items: center;
178
+ padding: 10px 14px;
179
+ background: #171718;
180
+ border: 1px solid #2a2a2d;
181
+ border-radius: 4px 12px 12px 12px;
182
+ width: fit-content;
183
+ }
184
+ .hsk-typing-dot {
185
+ width: 6px;
186
+ height: 6px;
187
+ background: var(--hsk-primary);
188
+ border-radius: 50%;
189
+ animation: hsk-chat-bounce 1.2s infinite;
190
+ }
191
+ .hsk-typing-dot:nth-child(2) {
192
+ animation-delay: 0.2s;
193
+ }
194
+ .hsk-typing-dot:nth-child(3) {
195
+ animation-delay: 0.4s;
196
+ }
197
+ @keyframes hsk-chat-bounce {
198
+ 0%, 100% {
199
+ opacity: 0.3;
200
+ transform: translateY(0);
201
+ }
202
+ 50% {
203
+ opacity: 1;
204
+ transform: translateY(-4px);
205
+ }
206
+ }
207
+ .hsk-chat-input-area {
208
+ display: flex;
209
+ align-items: center;
210
+ gap: 8px;
211
+ padding: 12px 14px;
212
+ border-top: 1px solid #1e1e1f;
213
+ background: #111112;
214
+ flex-shrink: 0;
215
+ }
216
+ .hsk-chat-input {
217
+ flex: 1;
218
+ background: #1a1a1b;
219
+ border: 1px solid #2a2a2d;
220
+ border-radius: 8px;
221
+ padding: 9px 14px;
222
+ font-size: 13px;
223
+ color: #f3f3f2;
224
+ outline: none;
225
+ font-family: inherit;
226
+ transition: border-color 0.2s;
227
+ resize: none;
228
+ min-height: 38px;
229
+ max-height: 120px;
230
+ line-height: 1.5;
231
+ }
232
+ .hsk-chat-input::placeholder {
233
+ color: #555;
234
+ }
235
+ .hsk-chat-input:focus {
236
+ border-color: var(--hsk-primary);
237
+ }
238
+ .hsk-chat-send {
239
+ width: 34px;
240
+ height: 34px;
241
+ border-radius: 8px;
242
+ background: var(--hsk-primary);
243
+ border: none;
244
+ color: #fff;
245
+ cursor: pointer;
246
+ display: flex;
247
+ align-items: center;
248
+ justify-content: center;
249
+ flex-shrink: 0;
250
+ font-size: 16px;
251
+ transition: opacity 0.15s, transform 0.1s;
252
+ }
253
+ .hsk-chat-send:hover {
254
+ opacity: 0.88;
255
+ }
256
+ .hsk-chat-send:active {
257
+ transform: scale(0.93);
258
+ }
259
+ .hsk-chat-send:disabled {
260
+ opacity: 0.4;
261
+ cursor: not-allowed;
262
+ }
263
+ .hsk-chat-reset {
264
+ font-size: 11px;
265
+ color: #555;
266
+ cursor: pointer;
267
+ padding: 0 4px;
268
+ transition: color 0.15s;
269
+ background: none;
270
+ border: none;
271
+ font-family: inherit;
272
+ }
273
+ .hsk-chat-reset:hover {
274
+ color: var(--hsk-primary);
275
+ }
276
+ .hsk-chat-error {
277
+ font-size: 12px;
278
+ color: #ef4444;
279
+ text-align: center;
280
+ padding: 8px;
281
+ }
282
+ .hsk-cb-btn {
283
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
284
+ display: inline-flex;
285
+ align-items: center;
286
+ gap: 7px;
287
+ padding: 8px 16px;
288
+ border-radius: 9999px;
289
+ border: 1px solid rgba(255, 106, 51, 0.4);
290
+ background: rgba(255, 106, 51, 0.1);
291
+ color: var(--hsk-primary);
292
+ font-size: 13px;
293
+ font-weight: 600;
294
+ cursor: pointer;
295
+ transition:
296
+ background .15s,
297
+ border-color .15s,
298
+ transform .12s,
299
+ box-shadow .15s;
300
+ font-family: inherit;
301
+ white-space: nowrap;
302
+ }
303
+ .hsk-cb-btn:hover {
304
+ background: rgba(255, 106, 51, 0.18);
305
+ border-color: rgba(255, 106, 51, 0.7);
306
+ box-shadow: 0 4px 16px rgba(255, 106, 51, 0.2);
307
+ }
308
+ .hsk-cb-btn:active {
309
+ transform: scale(.95);
310
+ }
311
+ .hsk-cb-btn-icon {
312
+ font-size: 15px;
313
+ line-height: 1;
314
+ display: flex;
315
+ align-items: center;
316
+ }
317
+ .hsk-cb-overlay {
318
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
319
+ position: fixed;
320
+ inset: 0;
321
+ z-index: 99999;
322
+ display: flex;
323
+ flex-direction: column;
324
+ animation: hsk-overlay-in .2s ease-out both;
325
+ }
326
+ @keyframes hsk-overlay-in {
327
+ from {
328
+ opacity: 0;
329
+ }
330
+ to {
331
+ opacity: 1;
332
+ }
333
+ }
334
+ .hsk-cb-panel {
335
+ position: relative;
336
+ display: flex;
337
+ flex-direction: column;
338
+ height: 100%;
339
+ max-width: 780px;
340
+ width: 100%;
341
+ margin: 0 auto;
342
+ animation: hsk-panel-in .28s cubic-bezier(.34, 1.2, .64, 1) both;
343
+ }
344
+ @keyframes hsk-panel-in {
345
+ from {
346
+ opacity: 0;
347
+ transform: translateY(24px);
348
+ }
349
+ to {
350
+ opacity: 1;
351
+ transform: translateY(0);
352
+ }
353
+ }
354
+ .hsk-cb-topbar {
355
+ display: flex;
356
+ align-items: center;
357
+ justify-content: space-between;
358
+ padding: 20px 28px 12px;
359
+ flex-shrink: 0;
360
+ }
361
+ .hsk-cb-topbar-left {
362
+ display: flex;
363
+ align-items: center;
364
+ gap: 10px;
365
+ }
366
+ .hsk-cb-topbar-icon {
367
+ font-size: 22px;
368
+ color: var(--hsk-primary);
369
+ line-height: 1;
370
+ display: flex;
371
+ align-items: center;
372
+ animation: hsk-sparkle-spin 6s linear infinite;
373
+ }
374
+ @keyframes hsk-sparkle-spin {
375
+ 0%, 100% {
376
+ transform: rotate(0deg) scale(1);
377
+ }
378
+ 25% {
379
+ transform: rotate(15deg) scale(1.1);
380
+ }
381
+ 75% {
382
+ transform: rotate(-10deg) scale(.95);
383
+ }
384
+ }
385
+ .hsk-cb-topbar-title {
386
+ font-size: 16px;
387
+ font-weight: 700;
388
+ color: var(--hsk-chat-text, #111);
389
+ letter-spacing: -.01em;
390
+ }
391
+ .hsk-cb-topbar-sub {
392
+ font-size: 12px;
393
+ color: var(--hsk-chat-muted, #888);
394
+ margin-top: 2px;
395
+ }
396
+ .hsk-cb-topbar-actions {
397
+ display: flex;
398
+ align-items: center;
399
+ gap: 8px;
400
+ }
401
+ .hsk-cb-topbar-btn {
402
+ height: 34px;
403
+ padding: 0 14px;
404
+ border-radius: 8px;
405
+ border: 1px solid var(--hsk-chat-divide, rgba(0,0,0,.1));
406
+ background: none;
407
+ color: var(--hsk-chat-muted, #888);
408
+ font-size: 12px;
409
+ font-weight: 500;
410
+ cursor: pointer;
411
+ transition: all .15s;
412
+ font-family: inherit;
413
+ }
414
+ .hsk-cb-topbar-btn:hover {
415
+ border-color: var(--hsk-primary);
416
+ color: var(--hsk-primary);
417
+ }
418
+ .hsk-cb-close {
419
+ width: 34px;
420
+ height: 34px;
421
+ border-radius: 8px;
422
+ border: 1px solid var(--hsk-chat-divide, rgba(0,0,0,.1));
423
+ background: none;
424
+ color: var(--hsk-chat-muted, #888);
425
+ cursor: pointer;
426
+ font-size: 20px;
427
+ display: flex;
428
+ align-items: center;
429
+ justify-content: center;
430
+ transition: all .15s;
431
+ flex-shrink: 0;
432
+ font-family: inherit;
433
+ line-height: 1;
434
+ }
435
+ .hsk-cb-close:hover {
436
+ border-color: var(--hsk-primary);
437
+ color: var(--hsk-primary);
438
+ }
439
+ .hsk-cb-msgs {
440
+ flex: 1;
441
+ overflow-y: auto;
442
+ padding: 8px 28px 0;
443
+ display: flex;
444
+ flex-direction: column;
445
+ gap: 0;
446
+ scroll-behavior: smooth;
447
+ scrollbar-width: thin;
448
+ scrollbar-color: var(--hsk-chat-divide, rgba(0,0,0,.1)) transparent;
449
+ }
450
+ .hsk-cb-empty {
451
+ flex: 1;
452
+ display: flex;
453
+ flex-direction: column;
454
+ align-items: center;
455
+ justify-content: center;
456
+ gap: 20px;
457
+ padding: 60px 32px;
458
+ text-align: center;
459
+ }
460
+ .hsk-cb-empty-icon {
461
+ font-size: 48px;
462
+ color: var(--hsk-primary);
463
+ display: flex;
464
+ align-items: center;
465
+ animation: hsk-sparkle-spin 4s linear infinite;
466
+ }
467
+ .hsk-cb-empty-title {
468
+ font-size: 26px;
469
+ font-weight: 700;
470
+ color: var(--hsk-chat-text, #111);
471
+ letter-spacing: -.02em;
472
+ }
473
+ .hsk-cb-empty-sub {
474
+ font-size: 14px;
475
+ color: var(--hsk-chat-muted, #888);
476
+ line-height: 1.7;
477
+ max-width: 380px;
478
+ }
479
+ .hsk-cb-chips {
480
+ display: flex;
481
+ flex-wrap: wrap;
482
+ gap: 8px;
483
+ justify-content: center;
484
+ margin-top: 4px;
485
+ }
486
+ .hsk-cb-chip {
487
+ padding: 8px 16px;
488
+ border-radius: 9999px;
489
+ border: 1px solid var(--hsk-chat-divide, rgba(0,0,0,.1));
490
+ background: var(--hsk-chat-source-bg, rgba(0,0,0,.03));
491
+ color: var(--hsk-chat-text, #333);
492
+ font-size: 13px;
493
+ cursor: pointer;
494
+ transition: all .15s;
495
+ font-family: inherit;
496
+ }
497
+ .hsk-cb-chip:hover {
498
+ border-color: var(--hsk-primary);
499
+ color: var(--hsk-primary);
500
+ background: rgba(255, 106, 51, .06);
501
+ }
502
+ .hsk-cb-msg-group {
503
+ padding: 20px 0;
504
+ border-bottom: 1px solid var(--hsk-chat-divide, rgba(0,0,0,.05));
505
+ animation: hsk-msg-in .22s ease-out both;
506
+ }
507
+ .hsk-cb-msg-group:last-child {
508
+ border-bottom: none;
509
+ }
510
+ @keyframes hsk-msg-in {
511
+ from {
512
+ opacity: 0;
513
+ transform: translateY(10px);
514
+ }
515
+ to {
516
+ opacity: 1;
517
+ transform: translateY(0);
518
+ }
519
+ }
520
+ .hsk-cb-user-msg {
521
+ display: flex;
522
+ justify-content: flex-end;
523
+ margin-bottom: 20px;
524
+ }
525
+ .hsk-cb-user-bubble {
526
+ background: var(--hsk-primary);
527
+ color: #fff;
528
+ padding: 12px 20px;
529
+ border-radius: 22px 22px 6px 22px;
530
+ font-size: 15px;
531
+ line-height: 1.6;
532
+ max-width: 72%;
533
+ font-weight: 500;
534
+ }
535
+ .hsk-cb-ai-msg {
536
+ display: flex;
537
+ align-items: flex-start;
538
+ gap: 14px;
539
+ }
540
+ .hsk-cb-ai-icon {
541
+ width: 28px;
542
+ height: 28px;
543
+ border-radius: 50%;
544
+ background: rgba(255, 106, 51, .12);
545
+ border: 1px solid rgba(255, 106, 51, .25);
546
+ color: var(--hsk-primary);
547
+ font-size: 13px;
548
+ display: flex;
549
+ align-items: center;
550
+ justify-content: center;
551
+ flex-shrink: 0;
552
+ margin-top: 2px;
553
+ }
554
+ .hsk-cb-ai-body {
555
+ flex: 1;
556
+ min-width: 0;
557
+ }
558
+ .hsk-cb-ai-text {
559
+ font-size: 15px;
560
+ line-height: 1.75;
561
+ color: var(--hsk-chat-text, #111);
562
+ white-space: pre-wrap;
563
+ }
564
+ .hsk-cb-sources-wrap {
565
+ position: relative;
566
+ margin-top: 20px;
567
+ }
568
+ .hsk-cb-sources {
569
+ display: flex;
570
+ flex-direction: row;
571
+ gap: 14px;
572
+ overflow-x: auto;
573
+ scroll-snap-type: x mandatory;
574
+ scrollbar-width: none;
575
+ -ms-overflow-style: none;
576
+ padding-bottom: 4px;
577
+ }
578
+ .hsk-cb-sources::-webkit-scrollbar {
579
+ display: none;
580
+ }
581
+ .hsk-cb-sources-fade {
582
+ position: absolute;
583
+ right: 0;
584
+ top: 0;
585
+ bottom: 4px;
586
+ width: 90px;
587
+ pointer-events: none;
588
+ }
589
+ .hsk-cb-sources-next {
590
+ position: absolute;
591
+ right: 10px;
592
+ top: 50%;
593
+ transform: translateY(-50%);
594
+ width: 30px;
595
+ height: 30px;
596
+ border-radius: 50%;
597
+ border: 1px solid var(--hsk-chat-divide, rgba(0,0,0,.12));
598
+ background: var(--hsk-chat-bg, #0e0e0f);
599
+ color: var(--hsk-chat-text, #eee);
600
+ cursor: pointer;
601
+ font-size: 16px;
602
+ display: flex;
603
+ align-items: center;
604
+ justify-content: center;
605
+ box-shadow: 0 2px 12px rgba(0, 0, 0, .2);
606
+ transition: all .15s;
607
+ z-index: 3;
608
+ font-family: inherit;
609
+ line-height: 1;
610
+ }
611
+ .hsk-cb-sources-next:hover {
612
+ border-color: var(--hsk-primary);
613
+ color: var(--hsk-primary);
614
+ }
615
+ .hsk-cb-source {
616
+ flex: 0 0 188px;
617
+ scroll-snap-align: start;
618
+ border-radius: 0;
619
+ border: none;
620
+ background: transparent;
621
+ cursor: pointer;
622
+ transition: transform .14s, opacity .14s;
623
+ animation: hsk-card-in .26s ease-out both;
624
+ overflow: visible;
625
+ }
626
+ @keyframes hsk-card-in {
627
+ from {
628
+ opacity: 0;
629
+ transform: translateX(16px);
630
+ }
631
+ to {
632
+ opacity: 1;
633
+ transform: none;
634
+ }
635
+ }
636
+ .hsk-cb-source:hover {
637
+ transform: translateY(-3px);
638
+ opacity: .92;
639
+ }
640
+ .hsk-cb-src-imgwrap {
641
+ width: 188px;
642
+ height: 188px;
643
+ overflow: hidden;
644
+ border-radius: 0;
645
+ display: block;
646
+ }
647
+ .hsk-cb-src-imgwrap img {
648
+ width: 100%;
649
+ height: 100%;
650
+ object-fit: cover;
651
+ transition: transform .22s;
652
+ display: block;
653
+ }
654
+ .hsk-cb-source:hover .hsk-cb-src-imgwrap img {
655
+ transform: scale(1.05);
656
+ }
657
+ .hsk-cb-src-imgwrap-empty {
658
+ width: 188px;
659
+ height: 188px;
660
+ background: var(--hsk-chat-divide, rgba(255,255,255,.06));
661
+ display: flex;
662
+ align-items: center;
663
+ justify-content: center;
664
+ color: var(--hsk-chat-muted, #555);
665
+ font-size: 32px;
666
+ }
667
+ .hsk-cb-src-info {
668
+ padding: 8px 2px 0;
669
+ }
670
+ .hsk-cb-src-name {
671
+ font-size: 13px;
672
+ font-weight: 600;
673
+ color: var(--hsk-chat-text, #eee);
674
+ line-height: 1.4;
675
+ display: -webkit-box;
676
+ -webkit-line-clamp: 2;
677
+ -webkit-box-orient: vertical;
678
+ overflow: hidden;
679
+ }
680
+ .hsk-cb-src-price {
681
+ font-size: 13px;
682
+ color: var(--hsk-primary);
683
+ font-weight: 700;
684
+ margin-top: 3px;
685
+ }
686
+ .hsk-cb-selected-product {
687
+ display: flex;
688
+ align-items: flex-start;
689
+ gap: 14px;
690
+ margin-top: 16px;
691
+ padding: 14px;
692
+ border: 1px solid var(--hsk-chat-divide, rgba(255,255,255,.08));
693
+ border-left: 3px solid var(--hsk-primary);
694
+ background: var(--hsk-chat-source-bg, rgba(255,255,255,.03));
695
+ cursor: pointer;
696
+ transition: border-color .15s;
697
+ animation: hsk-msg-in .2s ease-out both;
698
+ }
699
+ .hsk-cb-selected-product:hover {
700
+ border-left-color: rgba(255, 106, 51, .6);
701
+ }
702
+ .hsk-cb-selected-img {
703
+ width: 64px;
704
+ height: 64px;
705
+ object-fit: cover;
706
+ flex-shrink: 0;
707
+ }
708
+ .hsk-cb-selected-info {
709
+ flex: 1;
710
+ min-width: 0;
711
+ }
712
+ .hsk-cb-selected-name {
713
+ font-size: 13px;
714
+ font-weight: 700;
715
+ color: var(--hsk-chat-text, #eee);
716
+ margin-bottom: 3px;
717
+ }
718
+ .hsk-cb-selected-price {
719
+ font-size: 13px;
720
+ color: var(--hsk-primary);
721
+ font-weight: 700;
722
+ }
723
+ .hsk-cb-typing-row {
724
+ display: flex;
725
+ align-items: flex-start;
726
+ gap: 14px;
727
+ padding: 20px 0;
728
+ }
729
+ .hsk-cb-typing {
730
+ display: flex;
731
+ gap: 5px;
732
+ padding: 14px 18px;
733
+ }
734
+ .hsk-cb-dot {
735
+ width: 7px;
736
+ height: 7px;
737
+ border-radius: 50%;
738
+ background: var(--hsk-chat-muted, #ccc);
739
+ animation: hsk-dot-pulse 1.2s ease-in-out infinite;
740
+ }
741
+ .hsk-cb-dot:nth-child(2) {
742
+ animation-delay: .18s;
743
+ }
744
+ .hsk-cb-dot:nth-child(3) {
745
+ animation-delay: .36s;
746
+ }
747
+ @keyframes hsk-dot-pulse {
748
+ 0%, 100% {
749
+ opacity: .3;
750
+ transform: scale(.75);
751
+ }
752
+ 50% {
753
+ opacity: 1;
754
+ transform: scale(1);
755
+ }
756
+ }
757
+ .hsk-cb-input-wrap {
758
+ padding: 16px 28px 28px;
759
+ flex-shrink: 0;
760
+ }
761
+ .hsk-cb-input-box {
762
+ display: flex;
763
+ align-items: flex-end;
764
+ gap: 10px;
765
+ background: var(--hsk-chat-input-bg, rgba(0,0,0,.04));
766
+ border: 1.5px solid var(--hsk-chat-divide, rgba(0,0,0,.1));
767
+ border-radius: 18px;
768
+ padding: 14px 14px 14px 20px;
769
+ transition: border-color .15s, box-shadow .15s;
770
+ }
771
+ .hsk-cb-input-box:focus-within {
772
+ border-color: var(--hsk-primary);
773
+ box-shadow: 0 0 0 3px rgba(255, 106, 51, .1);
774
+ }
775
+ .hsk-cb-textarea {
776
+ flex: 1;
777
+ background: transparent;
778
+ border: none;
779
+ outline: none;
780
+ resize: none;
781
+ font-size: 15px;
782
+ color: var(--hsk-chat-text, #111);
783
+ min-height: 24px;
784
+ max-height: 140px;
785
+ line-height: 1.55;
786
+ font-family: inherit;
787
+ }
788
+ .hsk-cb-textarea::placeholder {
789
+ color: var(--hsk-chat-muted, #aaa);
790
+ }
791
+ .hsk-cb-send {
792
+ width: 38px;
793
+ height: 38px;
794
+ border-radius: 10px;
795
+ background: var(--hsk-primary);
796
+ border: none;
797
+ color: #fff;
798
+ cursor: pointer;
799
+ font-size: 18px;
800
+ display: flex;
801
+ align-items: center;
802
+ justify-content: center;
803
+ flex-shrink: 0;
804
+ transition:
805
+ opacity .15s,
806
+ transform .1s,
807
+ background .15s;
808
+ font-family: inherit;
809
+ }
810
+ .hsk-cb-send:hover {
811
+ opacity: .88;
812
+ }
813
+ .hsk-cb-send:active {
814
+ transform: scale(.9);
815
+ }
816
+ .hsk-cb-send:disabled {
817
+ opacity: .3;
818
+ cursor: not-allowed;
819
+ background: var(--hsk-chat-muted, #ccc);
820
+ }
821
+ .hsk-cb-hint {
822
+ text-align: center;
823
+ font-size: 11px;
824
+ color: var(--hsk-chat-muted, #bbb);
825
+ margin-top: 10px;
826
+ }
827
+ .hsk-cb-error {
828
+ margin: 8px 0;
829
+ padding: 10px 14px;
830
+ border-radius: 10px;
831
+ background: rgba(239, 68, 68, .08);
832
+ border: 1px solid rgba(239, 68, 68, .2);
833
+ color: #ef4444;
834
+ font-size: 13px;
835
+ }
836
+ @media (prefers-color-scheme: dark) {
837
+ .hsk-cb-overlay {
838
+ --hsk-chat-bg: #0e0e0f;
839
+ --hsk-chat-text: #f0efed;
840
+ --hsk-chat-muted: #555;
841
+ --hsk-chat-divide: rgba(255,255,255,.07);
842
+ --hsk-chat-input-bg: rgba(255,255,255,.05);
843
+ --hsk-chat-source-bg: rgba(255,255,255,.04);
844
+ --hsk-fade-bg: #0e0e0f;
845
+ }
846
+ .hsk-cb-overlay {
847
+ background: rgba(0, 0, 0, .92) !important;
848
+ }
849
+ }
850
+ @media (prefers-color-scheme: light) {
851
+ .hsk-cb-overlay {
852
+ --hsk-chat-bg: #fafafa;
853
+ --hsk-chat-text: #111;
854
+ --hsk-chat-muted: #999;
855
+ --hsk-chat-divide: rgba(0,0,0,.08);
856
+ --hsk-chat-input-bg: rgba(0,0,0,.04);
857
+ --hsk-chat-source-bg: rgba(0,0,0,.025);
858
+ --hsk-fade-bg: #fafafa;
859
+ }
860
+ .hsk-cb-overlay {
861
+ background: rgba(240, 240, 244, .88) !important;
862
+ }
863
+ }
864
+ .hsk-sb-wrap {
865
+ --hsk-bg: #fff;
866
+ --hsk-border: #d1d5db;
867
+ --hsk-text: #111;
868
+ --hsk-muted: #9ca3af;
869
+ --hsk-hover: #f3f4f6;
870
+ --hsk-drop-shadow: 0 8px 30px rgba(0,0,0,.12);
871
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
872
+ position: relative;
873
+ width: 100%;
874
+ font-family: inherit;
875
+ }
876
+ @media (prefers-color-scheme: dark) {
877
+ .hsk-sb-wrap {
878
+ --hsk-bg: #1a1a1b;
879
+ --hsk-border: #2a2a2d;
880
+ --hsk-text: #f3f3f2;
881
+ --hsk-muted: #666;
882
+ --hsk-hover: #1e1e1f;
883
+ --hsk-drop-shadow: 0 12px 40px rgba(0,0,0,.5);
884
+ }
885
+ }
886
+ .hsk-sb-input {
887
+ width: 100%;
888
+ padding: 10px 16px 10px 40px;
889
+ font-size: 14px;
890
+ border-radius: 9999px;
891
+ border: 1.5px solid var(--hsk-border);
892
+ outline: none;
893
+ box-sizing: border-box;
894
+ background: var(--hsk-bg);
895
+ color: var(--hsk-text);
896
+ transition: border-color .15s, box-shadow .15s;
897
+ font-family: inherit;
898
+ }
899
+ .hsk-sb-input::placeholder {
900
+ color: var(--hsk-muted);
901
+ }
902
+ .hsk-sb-input:focus {
903
+ border-color: var(--hsk-primary);
904
+ box-shadow: 0 0 0 3px rgba(255, 106, 51, .12);
905
+ }
906
+ .hsk-sb-icon {
907
+ position: absolute;
908
+ left: 14px;
909
+ top: 50%;
910
+ transform: translateY(-50%);
911
+ color: var(--hsk-muted);
912
+ pointer-events: none;
913
+ display: flex;
914
+ align-items: center;
915
+ }
916
+ .hsk-sb-drop {
917
+ position: absolute;
918
+ top: calc(100% + 6px);
919
+ left: 0;
920
+ right: 0;
921
+ background: var(--hsk-bg);
922
+ border: 1px solid var(--hsk-border);
923
+ border-radius: 12px;
924
+ box-shadow: var(--hsk-drop-shadow);
925
+ z-index: 9999;
926
+ overflow: hidden;
927
+ padding: 6px 0;
928
+ }
929
+ .hsk-sb-row {
930
+ display: flex;
931
+ align-items: center;
932
+ gap: 12px;
933
+ padding: 9px 16px;
934
+ cursor: pointer;
935
+ transition: background .1s;
936
+ }
937
+ .hsk-sb-row:hover {
938
+ background: var(--hsk-hover);
939
+ }
940
+ .hsk-sb-row-icon {
941
+ color: var(--hsk-muted);
942
+ flex-shrink: 0;
943
+ display: flex;
944
+ align-items: center;
945
+ }
946
+ .hsk-sb-row-body {
947
+ flex: 1;
948
+ min-width: 0;
949
+ }
950
+ .hsk-sb-row-title {
951
+ font-size: 13px;
952
+ font-weight: 500;
953
+ color: var(--hsk-text);
954
+ white-space: nowrap;
955
+ overflow: hidden;
956
+ text-overflow: ellipsis;
957
+ line-height: 1.3;
958
+ }
959
+ .hsk-sb-row-sub {
960
+ font-size: 11px;
961
+ color: var(--hsk-muted);
962
+ margin-top: 2px;
963
+ white-space: nowrap;
964
+ overflow: hidden;
965
+ text-overflow: ellipsis;
966
+ }
967
+ .hsk-sb-empty {
968
+ padding: 14px 16px;
969
+ font-size: 13px;
970
+ color: var(--hsk-muted);
971
+ }
972
+ .hsk-sb-loading-bar {
973
+ height: 2px;
974
+ background:
975
+ linear-gradient(
976
+ 90deg,
977
+ transparent,
978
+ var(--hsk-primary),
979
+ transparent);
980
+ background-size: 200% 100%;
981
+ animation: hsk-sweep 0.9s linear infinite;
982
+ position: absolute;
983
+ top: 0;
984
+ left: 0;
985
+ right: 0;
986
+ }
987
+ @keyframes hsk-sweep {
988
+ 0% {
989
+ background-position: 200% 0;
990
+ }
991
+ 100% {
992
+ background-position: -200% 0;
993
+ }
994
+ }
995
+ .hsk-sb-fade {
996
+ animation: hsk-fin .1s ease-out both;
997
+ }
998
+ @keyframes hsk-fin {
999
+ from {
1000
+ opacity: 0;
1001
+ transform: translateY(3px);
1002
+ }
1003
+ to {
1004
+ opacity: 1;
1005
+ transform: none;
1006
+ }
1007
+ }
1008
+ .hsk-sp-btn {
1009
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
1010
+ display: inline-flex;
1011
+ align-items: center;
1012
+ justify-content: center;
1013
+ width: 32px;
1014
+ height: 32px;
1015
+ border-radius: 8px;
1016
+ border: 1px solid var(--hsk-sp-border, rgba(255,106,51,.35));
1017
+ background: var(--hsk-sp-bg, rgba(255,106,51,.08));
1018
+ color: var(--hsk-primary);
1019
+ cursor: pointer;
1020
+ font-size: 15px;
1021
+ line-height: 1;
1022
+ transition:
1023
+ background .15s,
1024
+ border-color .15s,
1025
+ transform .12s;
1026
+ flex-shrink: 0;
1027
+ padding: 0;
1028
+ }
1029
+ .hsk-sp-btn:hover {
1030
+ background: rgba(255, 106, 51, .18);
1031
+ border-color: rgba(255, 106, 51, .7);
1032
+ transform: scale(1.1);
1033
+ }
1034
+ .hsk-sp-btn:active {
1035
+ transform: scale(.92);
1036
+ }
1037
+ .hsk-sp-backdrop {
1038
+ position: fixed;
1039
+ inset: 0;
1040
+ z-index: 99998;
1041
+ display: flex;
1042
+ align-items: flex-start;
1043
+ justify-content: center;
1044
+ padding: clamp(48px, 10vh, 96px) 16px 40px;
1045
+ animation: hsk-bd-in .2s ease-out both;
1046
+ overflow-y: auto;
1047
+ }
1048
+ @keyframes hsk-bd-in {
1049
+ from {
1050
+ opacity: 0;
1051
+ }
1052
+ to {
1053
+ opacity: 1;
1054
+ }
1055
+ }
1056
+ .hsk-sp-card {
1057
+ --hsk-primary: var(--chat-primary-color, #ff6a33);
1058
+ width: 100%;
1059
+ max-width: 600px;
1060
+ border-radius: 18px;
1061
+ overflow: hidden;
1062
+ animation: hsk-card-in .24s cubic-bezier(.34, 1.36, .64, 1) both;
1063
+ flex-shrink: 0;
1064
+ background: var(--hsk-modal-card-bg, #fff);
1065
+ border: 1px solid var(--hsk-modal-card-border, rgba(0,0,0,.08));
1066
+ box-shadow: 0 32px 80px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .06);
1067
+ }
1068
+ @keyframes hsk-card-in {
1069
+ from {
1070
+ opacity: 0;
1071
+ transform: scale(.96) translateY(-12px);
1072
+ }
1073
+ to {
1074
+ opacity: 1;
1075
+ transform: scale(1) translateY(0);
1076
+ }
1077
+ }
1078
+ .hsk-sp-header {
1079
+ display: flex;
1080
+ align-items: center;
1081
+ gap: 10px;
1082
+ padding: 18px 20px 14px;
1083
+ border-bottom: 1px solid var(--hsk-modal-divide, rgba(0,0,0,.07));
1084
+ }
1085
+ .hsk-sp-header-icon {
1086
+ font-size: 18px;
1087
+ color: var(--hsk-primary);
1088
+ flex-shrink: 0;
1089
+ display: flex;
1090
+ align-items: center;
1091
+ }
1092
+ .hsk-sp-header-body {
1093
+ flex: 1;
1094
+ min-width: 0;
1095
+ }
1096
+ .hsk-sp-header-title {
1097
+ font-size: 14px;
1098
+ font-weight: 600;
1099
+ color: var(--hsk-modal-text, #111);
1100
+ white-space: nowrap;
1101
+ overflow: hidden;
1102
+ text-overflow: ellipsis;
1103
+ }
1104
+ .hsk-sp-header-sub {
1105
+ font-size: 11px;
1106
+ color: var(--hsk-modal-muted, #888);
1107
+ margin-top: 2px;
1108
+ }
1109
+ .hsk-sp-close {
1110
+ width: 30px;
1111
+ height: 30px;
1112
+ border-radius: 8px;
1113
+ border: 1px solid var(--hsk-modal-divide, rgba(0,0,0,.1));
1114
+ background: none;
1115
+ color: var(--hsk-modal-muted, #888);
1116
+ cursor: pointer;
1117
+ font-size: 18px;
1118
+ display: flex;
1119
+ align-items: center;
1120
+ justify-content: center;
1121
+ transition: all .15s;
1122
+ flex-shrink: 0;
1123
+ }
1124
+ .hsk-sp-close:hover {
1125
+ border-color: var(--hsk-primary);
1126
+ color: var(--hsk-primary);
1127
+ }
1128
+ .hsk-sp-bar {
1129
+ height: 2px;
1130
+ background:
1131
+ linear-gradient(
1132
+ 90deg,
1133
+ transparent 0%,
1134
+ var(--hsk-primary) 40%,
1135
+ #ffaa80 60%,
1136
+ transparent 100%);
1137
+ background-size: 200% 100%;
1138
+ animation: hsk-bar .9s linear infinite;
1139
+ }
1140
+ @keyframes hsk-bar {
1141
+ 0% {
1142
+ background-position: 200% 0;
1143
+ }
1144
+ 100% {
1145
+ background-position: -200% 0;
1146
+ }
1147
+ }
1148
+ .hsk-sp-results {
1149
+ padding: 10px 12px;
1150
+ display: flex;
1151
+ flex-direction: column;
1152
+ gap: 8px;
1153
+ }
1154
+ .hsk-sp-empty {
1155
+ padding: 40px;
1156
+ text-align: center;
1157
+ font-size: 13px;
1158
+ color: var(--hsk-modal-muted, #aaa);
1159
+ }
1160
+ .hsk-sp-item {
1161
+ display: flex;
1162
+ gap: 14px;
1163
+ padding: 14px;
1164
+ border-radius: 12px;
1165
+ border: 1px solid var(--hsk-modal-item-border, rgba(0,0,0,.07));
1166
+ background: var(--hsk-modal-item-bg, #f9f9f9);
1167
+ animation: hsk-toast-up .28s cubic-bezier(.22, .68, 0, 1.2) both;
1168
+ overflow: hidden;
1169
+ }
1170
+ @keyframes hsk-toast-up {
1171
+ from {
1172
+ opacity: 0;
1173
+ transform: translateY(18px) scale(.97);
1174
+ }
1175
+ to {
1176
+ opacity: 1;
1177
+ transform: translateY(0) scale(1);
1178
+ }
1179
+ }
1180
+ .hsk-sp-img-wrap {
1181
+ width: 72px;
1182
+ height: 72px;
1183
+ border-radius: 10px;
1184
+ background: #fff;
1185
+ border: 1px solid var(--hsk-modal-divide, rgba(0,0,0,.07));
1186
+ flex-shrink: 0;
1187
+ overflow: hidden;
1188
+ display: flex;
1189
+ align-items: center;
1190
+ justify-content: center;
1191
+ padding: 6px;
1192
+ }
1193
+ .hsk-sp-img-wrap img {
1194
+ max-width: 100%;
1195
+ max-height: 100%;
1196
+ object-fit: contain;
1197
+ }
1198
+ .hsk-sp-img-placeholder {
1199
+ font-size: 26px;
1200
+ }
1201
+ .hsk-sp-item-body {
1202
+ flex: 1;
1203
+ min-width: 0;
1204
+ display: flex;
1205
+ flex-direction: column;
1206
+ gap: 4px;
1207
+ }
1208
+ .hsk-sp-item-name {
1209
+ font-size: 14px;
1210
+ font-weight: 600;
1211
+ color: var(--hsk-modal-text, #111);
1212
+ line-height: 1.35;
1213
+ overflow: hidden;
1214
+ display: -webkit-box;
1215
+ -webkit-line-clamp: 2;
1216
+ -webkit-box-orient: vertical;
1217
+ }
1218
+ .hsk-sp-item-cat {
1219
+ font-size: 11px;
1220
+ font-weight: 600;
1221
+ color: var(--hsk-primary);
1222
+ text-transform: uppercase;
1223
+ letter-spacing: .05em;
1224
+ }
1225
+ .hsk-sp-item-price-row {
1226
+ display: flex;
1227
+ align-items: baseline;
1228
+ gap: 8px;
1229
+ margin-top: 2px;
1230
+ }
1231
+ .hsk-sp-item-price {
1232
+ font-size: 18px;
1233
+ font-weight: 700;
1234
+ color: var(--hsk-modal-text, #111);
1235
+ }
1236
+ .hsk-sp-item-currency {
1237
+ font-size: 12px;
1238
+ color: var(--hsk-modal-muted, #888);
1239
+ }
1240
+ .hsk-sp-actions {
1241
+ display: flex;
1242
+ gap: 6px;
1243
+ margin-top: 8px;
1244
+ }
1245
+ .hsk-sp-action {
1246
+ flex: 1;
1247
+ padding: 7px 10px;
1248
+ border-radius: 8px;
1249
+ font-size: 12px;
1250
+ font-weight: 600;
1251
+ cursor: pointer;
1252
+ border: 1px solid transparent;
1253
+ transition: all .15s;
1254
+ text-align: center;
1255
+ font-family: inherit;
1256
+ }
1257
+ .hsk-sp-action-primary {
1258
+ background: var(--hsk-primary);
1259
+ color: #fff;
1260
+ border-color: var(--hsk-primary);
1261
+ }
1262
+ .hsk-sp-action-primary:hover {
1263
+ opacity: .88;
1264
+ }
1265
+ .hsk-sp-action-secondary {
1266
+ background: var(--hsk-action-sec-bg, rgba(0,0,0,.06));
1267
+ color: var(--hsk-modal-muted, #666);
1268
+ border-color: var(--hsk-modal-divide, rgba(0,0,0,.1));
1269
+ }
1270
+ .hsk-sp-action-secondary:hover {
1271
+ background: var(--hsk-action-sec-bg-hover, rgba(0,0,0,.1));
1272
+ color: var(--hsk-modal-text, #333);
1273
+ }
1274
+ .hsk-sp-footer {
1275
+ padding: 12px 20px;
1276
+ border-top: 1px solid var(--hsk-modal-divide, rgba(0,0,0,.07));
1277
+ display: flex;
1278
+ align-items: center;
1279
+ gap: 8px;
1280
+ }
1281
+ .hsk-sp-badge {
1282
+ font-size: 10px;
1283
+ font-weight: 700;
1284
+ letter-spacing: .07em;
1285
+ text-transform: uppercase;
1286
+ color: var(--hsk-primary);
1287
+ background: rgba(255, 106, 51, .1);
1288
+ border: 1px solid rgba(255, 106, 51, .25);
1289
+ padding: 2px 8px;
1290
+ border-radius: 999px;
1291
+ }
1292
+ .hsk-sp-esc {
1293
+ font-size: 11px;
1294
+ color: var(--hsk-modal-muted, #bbb);
1295
+ margin-left: auto;
1296
+ }
1297
+ @media (prefers-color-scheme: dark) {
1298
+ .hsk-sp-card {
1299
+ --hsk-modal-card-bg: #111112;
1300
+ --hsk-modal-card-border: rgba(255,255,255,.07);
1301
+ --hsk-modal-text: #f3f3f2;
1302
+ --hsk-modal-muted: #666;
1303
+ --hsk-modal-divide: rgba(255,255,255,.07);
1304
+ --hsk-modal-item-bg: #1a1a1b;
1305
+ --hsk-modal-item-border: rgba(255,255,255,.06);
1306
+ --hsk-action-sec-bg: rgba(255,255,255,.07);
1307
+ --hsk-action-sec-bg-hover: rgba(255,255,255,.12);
1308
+ }
1309
+ .hsk-sp-img-wrap {
1310
+ background: #242425;
1311
+ border-color: rgba(255, 255, 255, .08);
1312
+ }
1313
+ }
1314
+ .hsk-markdown-p {
1315
+ margin: 0 0 8px 0;
1316
+ }
1317
+ .hsk-markdown-p:last-child {
1318
+ margin-bottom: 0;
1319
+ }
1320
+ .hsk-markdown-list {
1321
+ margin: 4px 0 8px 0;
1322
+ padding-left: 20px;
1323
+ list-style-type: disc;
1324
+ }
1325
+ .hsk-markdown-list li {
1326
+ margin-bottom: 4px;
1327
+ }
1328
+ .hsk-table-wrapper {
1329
+ overflow-x: auto;
1330
+ margin: 8px 0;
1331
+ border-radius: 6px;
1332
+ border: 1px solid var(--hsk-border, #2a2a2d);
1333
+ }
1334
+ .hsk-markdown-table {
1335
+ width: 100%;
1336
+ border-collapse: collapse;
1337
+ text-align: left;
1338
+ font-size: 0.9em;
1339
+ }
1340
+ .hsk-markdown-table th,
1341
+ .hsk-markdown-table td {
1342
+ padding: 6px 10px;
1343
+ border-bottom: 1px solid var(--hsk-border, #2a2a2d);
1344
+ }
1345
+ .hsk-markdown-table tr:last-child td {
1346
+ border-bottom: none;
1347
+ }
1348
+ .hsk-markdown-link {
1349
+ color: var(--hsk-primary, #ff6a33);
1350
+ text-decoration: underline;
1351
+ text-underline-offset: 2px;
1352
+ }
1353
+ .hsk-markdown-code {
1354
+ font-family:
1355
+ ui-monospace,
1356
+ SFMono-Regular,
1357
+ Menlo,
1358
+ Monaco,
1359
+ Consolas,
1360
+ "Liberation Mono",
1361
+ "Courier New",
1362
+ monospace;
1363
+ font-size: 0.85em;
1364
+ background-color: rgba(128, 128, 128, 0.15);
1365
+ padding: 0.2em 0.4em;
1366
+ border-radius: 4px;
1367
+ color: inherit;
1368
+ word-break: break-word;
1369
+ }
1370
+ /*# sourceMappingURL=index.css.map */