bunnyquery 1.0.10 → 1.1.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.
package/bunnyquery.css CHANGED
@@ -202,40 +202,6 @@
202
202
  font-size: 0.85rem;
203
203
  }
204
204
 
205
- .bq-link-button {
206
- display: inline-flex;
207
- align-items: center;
208
- gap: 0.35rem;
209
- padding: 0.35rem 0.65rem;
210
- margin: 0.2rem 0.2rem 0.2rem 0;
211
- border: 1px solid var(--bq-line);
212
- border-radius: 0.15rem;
213
- background: var(--bq-paper);
214
- color: var(--bq-pink);
215
- font-size: 0.78rem;
216
- font-weight: 600;
217
- text-decoration: none;
218
- white-space: nowrap;
219
- overflow: hidden;
220
- text-overflow: ellipsis;
221
- max-width: 100%;
222
- transition: background 0.15s, color 0.15s, border-color 0.15s;
223
- cursor: pointer;
224
- }
225
-
226
- .bq-link-button:hover {
227
- background: var(--bq-hover-bg);
228
- border-color: var(--bq-pink);
229
- }
230
-
231
- .bq-link-button:visited {
232
- color: #a01848;
233
- }
234
-
235
- .bq-link-button:visited:hover {
236
- color: var(--bq-pink);
237
- }
238
-
239
205
  .bq-link {
240
206
  color: var(--bq-pink);
241
207
  text-decoration: none;
@@ -332,6 +298,117 @@
332
298
  color: #8a6d1a;
333
299
  }
334
300
 
301
+ /* ------------ markdown body rendered by marked ----------------- */
302
+ .bq-md {
303
+ white-space: normal;
304
+ word-break: break-word;
305
+ }
306
+ .bq-md > *:first-child { margin-top: 0; }
307
+ .bq-md > *:last-child { margin-bottom: 0; }
308
+ .bq-md p {
309
+ margin: 0.4em 0;
310
+ }
311
+ .bq-md h1,
312
+ .bq-md h2,
313
+ .bq-md h3,
314
+ .bq-md h4,
315
+ .bq-md h5,
316
+ .bq-md h6 {
317
+ margin: 0.8em 0 0.35em;
318
+ line-height: 1.25;
319
+ font-weight: 600;
320
+ }
321
+ .bq-md h1 { font-size: 1.3em; }
322
+ .bq-md h2 { font-size: 1.18em; }
323
+ .bq-md h3 { font-size: 1.08em; }
324
+ .bq-md h4,
325
+ .bq-md h5,
326
+ .bq-md h6 { font-size: 1em; }
327
+ .bq-md ul,
328
+ .bq-md ol {
329
+ margin: 0.4em 0;
330
+ padding-left: 1.4em;
331
+ }
332
+ .bq-md li { margin: 0.15em 0; }
333
+ .bq-md li > p { margin: 0.2em 0; }
334
+ .bq-md blockquote {
335
+ margin: 0.5em 0;
336
+ padding: 0.2em 0.8em;
337
+ border-left: 3px solid var(--bq-line);
338
+ color: #555;
339
+ background: rgba(0, 0, 0, 0.03);
340
+ }
341
+ .bq-md hr {
342
+ border: 0;
343
+ border-top: 1px solid var(--bq-line);
344
+ margin: 0.8em 0;
345
+ }
346
+ .bq-md a {
347
+ color: var(--bq-pink);
348
+ text-decoration: underline;
349
+ }
350
+ .bq-md a:hover { text-decoration: none; }
351
+ .bq-md code {
352
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
353
+ font-size: 0.9em;
354
+ padding: 0.1em 0.35em;
355
+ background: rgba(0, 0, 0, 0.06);
356
+ border-radius: 3px;
357
+ white-space: pre-wrap;
358
+ word-break: break-word;
359
+ }
360
+ .bq-md pre {
361
+ margin: 0.5em 0;
362
+ padding: 0.6em 0.8em;
363
+ background: #1e1e1e;
364
+ color: #f5f5f5;
365
+ border-radius: 4px;
366
+ overflow-x: auto;
367
+ white-space: pre;
368
+ }
369
+ .bq-md pre code {
370
+ background: transparent;
371
+ color: inherit;
372
+ padding: 0;
373
+ font-size: 0.85em;
374
+ white-space: pre;
375
+ word-break: normal;
376
+ }
377
+ .bq-md table {
378
+ border-collapse: collapse;
379
+ margin: 0.5em 0;
380
+ font-size: 0.95em;
381
+ display: block;
382
+ overflow-x: auto;
383
+ }
384
+ .bq-md th,
385
+ .bq-md td {
386
+ border: 1px solid var(--bq-line);
387
+ padding: 0.3em 0.55em;
388
+ text-align: left;
389
+ }
390
+ .bq-md th {
391
+ background: rgba(0, 0, 0, 0.04);
392
+ font-weight: 600;
393
+ }
394
+ .bq-md img {
395
+ max-width: 100%;
396
+ height: auto;
397
+ border-radius: 4px;
398
+ }
399
+ .bq-md strong { font-weight: 600; }
400
+ .bq-md em { font-style: italic; }
401
+ .bq-md del { text-decoration: line-through; }
402
+ /* keep our inline file/link anchors flush within markdown paragraphs */
403
+ .bq-md .bq-file-download,
404
+ .bq-md .bq-link-button {
405
+ margin: 0;
406
+ }
407
+ a.bq-link-button.is-refreshing {
408
+ opacity: 0.7;
409
+ cursor: wait;
410
+ }
411
+
335
412
  .bq-pending-note {
336
413
  display: block;
337
414
  margin-top: 0.35rem;
@@ -340,37 +417,34 @@
340
417
  font-style: italic;
341
418
  }
342
419
 
343
- .bq-file-download,
344
- .bq-link-button {
345
- display: inline-flex;
346
- align-items: center;
347
- gap: 0.35rem;
348
- padding: 0.3rem 0.65rem;
349
- border: 1px solid var(--bq-line);
350
- background: var(--bq-paper);
351
- color: var(--bq-ink);
352
- font-family: var(--bq-mono);
353
- font-size: 0.8rem;
420
+ /* Plain pink underlined inline text links — matches agent.vue. Underline
421
+ stays on hover, no border/background. */
422
+ a.bq-file-download,
423
+ a.bq-link-button {
424
+ color: var(--bq-pink);
354
425
  text-decoration: none;
355
426
  cursor: pointer;
356
- transition: background 0.15s, color 0.15s;
357
- vertical-align: middle;
358
- }
359
-
360
- .bq-file-download:hover,
361
- .bq-link-button:hover {
362
- background: var(--bq-ink);
363
- color: var(--bq-paper);
364
- text-decoration: none;
427
+ background: transparent;
428
+ border: 0;
429
+ padding: 0;
430
+ font: inherit;
431
+ vertical-align: baseline;
365
432
  }
366
433
 
367
- .bq-link-button {
434
+ a.bq-link-button {
368
435
  max-width: 100%;
369
436
  overflow: hidden;
370
437
  text-overflow: ellipsis;
371
438
  white-space: nowrap;
372
439
  }
373
440
 
441
+ a.bq-file-download:hover,
442
+ a.bq-link-button:hover {
443
+ color: var(--bq-pink);
444
+ text-decoration: underline;
445
+ background: transparent;
446
+ }
447
+
374
448
  /* ---- input row ---------------------------------------------------------- */
375
449
 
376
450
  .bq-input-row {
@@ -655,6 +729,43 @@
655
729
  align-self: stretch;
656
730
  }
657
731
 
732
+ .bq-login-actions {
733
+ display: flex;
734
+ justify-content: center;
735
+ margin-top: 0.25rem;
736
+ }
737
+
738
+ .bq-login-link {
739
+ all: unset;
740
+ cursor: pointer;
741
+ font-family: var(--bq-mono);
742
+ font-size: 0.78rem;
743
+ color: var(--bq-muted);
744
+ text-decoration: underline;
745
+ text-underline-offset: 2px;
746
+ padding: 0.25rem 0.5rem;
747
+ }
748
+
749
+ .bq-login-link:hover {
750
+ color: var(--bq-ink);
751
+ }
752
+
753
+ .bq-login-note {
754
+ margin: 0;
755
+ color: var(--bq-muted);
756
+ font-size: 0.8rem;
757
+ line-height: 1.4;
758
+ }
759
+
760
+ .bq-login-step {
761
+ display: flex;
762
+ flex-direction: column;
763
+ gap: 0.65rem;
764
+ margin-top: 0.5rem;
765
+ padding-top: 0.75rem;
766
+ border-top: 1px dashed var(--bq-line);
767
+ }
768
+
658
769
  /*
659
770
  * Loading state for the login submit button.
660
771
  *
@@ -667,7 +778,7 @@
667
778
  * .bq-agent .bq-login-submit.is-loading::after { content: "..."; }
668
779
  */
669
780
  .bq-agent .bq-login-submit {
670
- --bq-login-loading-label: "Logging in...";
781
+ --bq-login-loading-label: "...";
671
782
  position: relative;
672
783
  }
673
784
 
@@ -803,6 +914,234 @@
803
914
  color: var(--bq-danger);
804
915
  }
805
916
 
917
+ /* ---- modal: account settings ------------------------------------------- */
918
+
919
+ .bq-modal-card {
920
+ width: 100%;
921
+ max-width: 26rem;
922
+ max-height: calc(100vh - 6rem);
923
+ overflow: auto;
924
+ margin: 0 auto;
925
+ background: var(--bq-paper);
926
+ border: 1px solid #d0d0d0;
927
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
928
+ font-family: var(--bq-mono);
929
+ color: var(--bq-ink);
930
+ display: flex;
931
+ flex-direction: column;
932
+ }
933
+
934
+ .bq-modal-header {
935
+ display: flex;
936
+ align-items: center;
937
+ justify-content: space-between;
938
+ gap: 0.5rem;
939
+ padding: 1rem 1.25rem;
940
+ border-bottom: 1px solid var(--bq-line);
941
+ position: sticky;
942
+ top: 0;
943
+ background: var(--bq-paper);
944
+ z-index: 1;
945
+ }
946
+
947
+ .bq-modal-title {
948
+ font-size: 0.95rem;
949
+ font-weight: 600;
950
+ color: var(--bq-ink);
951
+ letter-spacing: 0.01em;
952
+ }
953
+
954
+ .bq-modal-close {
955
+ all: unset;
956
+ box-sizing: border-box;
957
+ width: 1.75rem;
958
+ height: 1.75rem;
959
+ display: inline-flex;
960
+ align-items: center;
961
+ justify-content: center;
962
+ font-size: 1.4rem;
963
+ line-height: 1;
964
+ color: var(--bq-muted);
965
+ cursor: pointer;
966
+ border-radius: 2px;
967
+ transition: background 0.15s, color 0.15s;
968
+ }
969
+
970
+ .bq-modal-close:hover {
971
+ color: var(--bq-ink);
972
+ background: var(--bq-hover-bg);
973
+ }
974
+
975
+ .bq-modal-body {
976
+ display: flex;
977
+ flex-direction: column;
978
+ gap: 1.5rem;
979
+ padding: 1.25rem;
980
+ }
981
+
982
+ .bq-modal-section {
983
+ display: flex;
984
+ flex-direction: column;
985
+ gap: 0.75rem;
986
+ padding-bottom: 1.25rem;
987
+ border-bottom: 1px solid var(--bq-line);
988
+ }
989
+
990
+ .bq-modal-section:last-child {
991
+ padding-bottom: 0;
992
+ border-bottom: 0;
993
+ }
994
+
995
+ .bq-modal-section-title {
996
+ font-size: 0.7rem;
997
+ font-weight: 700;
998
+ letter-spacing: 0.08em;
999
+ text-transform: uppercase;
1000
+ color: var(--bq-muted);
1001
+ margin: 0;
1002
+ }
1003
+
1004
+ .bq-modal-row {
1005
+ display: flex;
1006
+ align-items: center;
1007
+ flex-wrap: wrap;
1008
+ gap: 0.5rem;
1009
+ font-size: 0.82rem;
1010
+ min-width: 0;
1011
+ }
1012
+
1013
+ .bq-modal-value {
1014
+ flex: 1 1 auto;
1015
+ min-width: 0;
1016
+ font-weight: 600;
1017
+ overflow-wrap: anywhere;
1018
+ }
1019
+
1020
+ .bq-modal-badge {
1021
+ flex: 0 0 auto;
1022
+ font-size: 0.65rem;
1023
+ text-transform: uppercase;
1024
+ letter-spacing: 0.06em;
1025
+ padding: 0.15rem 0.45rem;
1026
+ border: 1px solid var(--bq-line);
1027
+ color: var(--bq-muted);
1028
+ line-height: 1;
1029
+ }
1030
+
1031
+ .bq-modal-badge--ok {
1032
+ color: #2a7;
1033
+ border-color: #2a7;
1034
+ }
1035
+
1036
+ .bq-modal-badge--warn {
1037
+ color: var(--bq-danger);
1038
+ border-color: var(--bq-danger);
1039
+ }
1040
+
1041
+ .bq-modal-verify-row {
1042
+ display: flex;
1043
+ flex-wrap: wrap;
1044
+ gap: 0.4rem;
1045
+ align-items: stretch;
1046
+ }
1047
+
1048
+ .bq-modal-verify-row .bq-settings-input {
1049
+ flex: 1 1 9rem;
1050
+ min-width: 0;
1051
+ }
1052
+
1053
+ .bq-modal-form {
1054
+ display: flex;
1055
+ flex-direction: column;
1056
+ gap: 0.5rem;
1057
+ }
1058
+
1059
+ .bq-modal-form-actions {
1060
+ display: flex;
1061
+ justify-content: flex-end;
1062
+ margin-top: 0.25rem;
1063
+ }
1064
+
1065
+ .bq-modal-msg {
1066
+ margin: 0.25rem 0 0;
1067
+ font-size: 0.75rem;
1068
+ line-height: 1.4;
1069
+ }
1070
+
1071
+ .bq-modal-msg--ok {
1072
+ color: #2a7;
1073
+ }
1074
+
1075
+ .bq-modal-msg--err {
1076
+ color: var(--bq-danger);
1077
+ }
1078
+
1079
+ /* Dedicated input for settings dialog — does NOT inherit chat .bq-input
1080
+ left-padding (which is reserved for the attach button). */
1081
+ .bq-settings-input {
1082
+ box-sizing: border-box;
1083
+ width: 100%;
1084
+ height: 2.25rem;
1085
+ padding: 0 0.7rem;
1086
+ border: 1px solid var(--bq-line);
1087
+ background: var(--bq-paper);
1088
+ color: var(--bq-ink);
1089
+ font-family: var(--bq-mono);
1090
+ font-size: 0.82rem;
1091
+ line-height: 1.2;
1092
+ outline: none;
1093
+ border-radius: 0;
1094
+ -webkit-appearance: none;
1095
+ appearance: none;
1096
+ resize: none;
1097
+ }
1098
+
1099
+ .bq-settings-input:focus {
1100
+ border-color: var(--bq-ink);
1101
+ }
1102
+
1103
+ .bq-settings-input:disabled {
1104
+ opacity: 0.6;
1105
+ cursor: not-allowed;
1106
+ }
1107
+
1108
+ /* Dedicated settings buttons — same visual language as the delete modal
1109
+ buttons but without the delete-specific naming and with a tighter size
1110
+ that pairs cleanly with the input height. */
1111
+ .bq-settings-btn {
1112
+ font-family: var(--bq-mono);
1113
+ font-size: 0.78rem;
1114
+ line-height: 1;
1115
+ padding: 0 0.9rem;
1116
+ height: 2.25rem;
1117
+ border: 1px solid var(--bq-line);
1118
+ background: var(--bq-paper);
1119
+ color: var(--bq-ink);
1120
+ cursor: pointer;
1121
+ transition: border-color 0.15s, background 0.15s, color 0.15s;
1122
+ }
1123
+
1124
+ .bq-settings-btn:hover {
1125
+ border-color: var(--bq-ink);
1126
+ }
1127
+
1128
+ .bq-settings-btn--primary {
1129
+ background: var(--bq-ink);
1130
+ color: var(--bq-paper);
1131
+ border-color: var(--bq-ink);
1132
+ }
1133
+
1134
+ .bq-settings-btn--primary:hover {
1135
+ background: var(--bq-paper);
1136
+ color: var(--bq-ink);
1137
+ }
1138
+
1139
+ .bq-settings-btn:disabled,
1140
+ .bq-settings-btn.is-loading {
1141
+ opacity: 0.6;
1142
+ cursor: not-allowed;
1143
+ }
1144
+
806
1145
  @media (max-width: 800px) {
807
1146
  .bq-modal-backdrop {
808
1147
  padding: 0;
@@ -814,6 +1153,28 @@
814
1153
  max-width: calc(100% - 1rem);
815
1154
  max-height: calc(100% - 1rem);
816
1155
  }
1156
+
1157
+ .bq-modal-card {
1158
+ max-width: 100%;
1159
+ max-height: calc(100vh - 1rem);
1160
+ }
1161
+
1162
+ .bq-modal-header {
1163
+ padding: 0.85rem 1rem;
1164
+ }
1165
+
1166
+ .bq-modal-body {
1167
+ padding: 1rem;
1168
+ gap: 1.25rem;
1169
+ }
1170
+
1171
+ .bq-modal-form-actions {
1172
+ justify-content: stretch;
1173
+ }
1174
+
1175
+ .bq-modal-form-actions .bq-settings-btn {
1176
+ flex: 1 1 auto;
1177
+ }
817
1178
  }
818
1179
 
819
1180
  @media (max-width: 700px) {