@qfei-design/make-ai-assistant 0.2.6 → 0.2.7

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/styles.css CHANGED
@@ -18,21 +18,28 @@
18
18
  --make-ai-internal-on-overlay: var(--make-ai-theme-on-overlay, var(--make-ai-on-overlay, #fcfcff));
19
19
  --make-ai-internal-overlay-shadow: color-mix(in srgb, var(--make-ai-internal-accent) 18%, transparent);
20
20
  --make-ai-internal-highlight: color-mix(in srgb, var(--make-ai-internal-bg) 58%, transparent);
21
- --make-ai-internal-drawer-min-width: var(--make-ai-drawer-width, 432px);
21
+ --make-ai-internal-drawer-min-width: var(--make-ai-drawer-width, 480px);
22
22
  --make-ai-internal-drawer-width: var(--make-ai-internal-drawer-min-width);
23
23
  --make-ai-internal-drawer-max-width: max(var(--make-ai-internal-drawer-min-width), min(1024px, 72vw));
24
24
  --make-ai-internal-drawer-resize-line: var(--make-ai-drawer-resize-line, var(--make-ai-internal-accent));
25
25
  --make-ai-internal-z-index: var(--make-ai-z-index, 1050);
26
- --make-ai-internal-font-size-body: var(--make-ai-font-size-body, .75rem);
27
- --make-ai-internal-font-size-markdown: var(--make-ai-font-size-markdown, .6875rem);
28
- --make-ai-internal-font-size-ui: var(--make-ai-font-size-ui, .75rem);
29
- --make-ai-internal-line-height-body: var(--make-ai-line-height-body, 1.58);
26
+ --make-ai-internal-font-size-heading: var(--make-ai-font-size-heading, .875rem);
27
+ --make-ai-internal-font-size-body: var(--make-ai-font-size-body, .8125rem);
28
+ --make-ai-internal-font-size-markdown: var(--make-ai-font-size-markdown, .8125rem);
29
+ --make-ai-internal-font-size-meta: var(--make-ai-font-size-meta, .75rem);
30
+ --make-ai-internal-font-size-caption: var(--make-ai-font-size-caption, .6875rem);
31
+ --make-ai-internal-font-size-ui: var(--make-ai-font-size-ui, var(--make-ai-internal-font-size-caption));
32
+ --make-ai-internal-line-height-heading: var(--make-ai-line-height-heading, 1.43);
33
+ --make-ai-internal-line-height-body: var(--make-ai-line-height-body, 1.62);
34
+ --make-ai-internal-line-height-meta: var(--make-ai-line-height-meta, 1.5);
35
+ --make-ai-internal-line-height-caption: var(--make-ai-line-height-caption, 1.45);
30
36
  --make-ai-internal-panel-gutter: var(--make-ai-panel-gutter, 16px);
31
37
  --make-ai-internal-panel-gutter-compact: var(--make-ai-panel-gutter-compact, 12px);
32
38
  --make-ai-internal-panel-gutter-wide: var(--make-ai-panel-gutter-wide, 24px);
33
39
  --make-ai-internal-header-height: var(--make-ai-header-height, 50px);
34
40
  --make-ai-internal-message-turn-gap: var(--make-ai-message-turn-gap, 8px);
35
- --make-ai-internal-assistant-content-gap: var(--make-ai-assistant-content-gap, 12px);
41
+ --make-ai-internal-assistant-content-gap: var(--make-ai-assistant-content-gap, 8px);
42
+ --make-ai-internal-assistant-block-gap: var(--make-ai-assistant-block-gap, 12px);
36
43
  }
37
44
 
38
45
  .make-ai-assistant,
@@ -64,6 +71,7 @@
64
71
  }
65
72
 
66
73
  .make-ai-assistant__launcher {
74
+ --make-ai-internal-launcher-translate: translate3d(0, 0, 0);
67
75
  align-items: center;
68
76
  background:
69
77
  radial-gradient(circle at 34% 24%, var(--make-ai-internal-highlight), transparent 31%),
@@ -79,7 +87,7 @@
79
87
  );
80
88
  border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 34%, var(--make-ai-internal-border));
81
89
  border-radius: 50%;
82
- bottom: auto;
90
+ bottom: var(--make-ai-launcher-bottom, 18px);
83
91
  box-shadow:
84
92
  0 12px 26px color-mix(in srgb, var(--make-ai-internal-accent) 14%, transparent),
85
93
  0 0 0 6px color-mix(in srgb, var(--make-ai-internal-accent) 5%, transparent),
@@ -92,9 +100,10 @@
92
100
  overflow: visible;
93
101
  padding: 0;
94
102
  position: fixed;
95
- right: var(--make-ai-launcher-right, 18px);
96
- top: var(--make-ai-launcher-top, 50%);
97
- transform: translateY(-50%);
103
+ left: var(--make-ai-launcher-left, 18px);
104
+ right: auto;
105
+ top: auto;
106
+ transform: var(--make-ai-internal-launcher-translate) scale(1);
98
107
  transition:
99
108
  box-shadow 180ms cubic-bezier(.25, 1, .5, 1),
100
109
  transform 180ms cubic-bezier(.25, 1, .5, 1);
@@ -102,16 +111,47 @@
102
111
  z-index: calc(var(--make-ai-internal-z-index) + 2);
103
112
  }
104
113
 
114
+ .make-ai-assistant__launcher[data-launcher-position="bottom-right"] {
115
+ left: auto;
116
+ right: var(--make-ai-launcher-right, 18px);
117
+ }
118
+
119
+ .make-ai-assistant__launcher[data-launcher-position="top-left"] {
120
+ bottom: auto;
121
+ top: var(--make-ai-launcher-top, 18px);
122
+ }
123
+
124
+ .make-ai-assistant__launcher[data-launcher-position="top-right"] {
125
+ bottom: auto;
126
+ left: auto;
127
+ right: var(--make-ai-launcher-right, 18px);
128
+ top: var(--make-ai-launcher-top, 18px);
129
+ }
130
+
131
+ .make-ai-assistant__launcher[data-launcher-position="left-center"] {
132
+ --make-ai-internal-launcher-translate: translateY(-50%);
133
+ bottom: auto;
134
+ top: var(--make-ai-launcher-top, 50%);
135
+ }
136
+
137
+ .make-ai-assistant__launcher[data-launcher-position="right-center"] {
138
+ --make-ai-internal-launcher-translate: translateY(-50%);
139
+ bottom: auto;
140
+ left: auto;
141
+ right: var(--make-ai-launcher-right, 18px);
142
+ top: var(--make-ai-launcher-top, 50%);
143
+ }
144
+
105
145
  .make-ai-assistant__launcher:hover {
106
146
  box-shadow:
107
147
  0 14px 30px color-mix(in srgb, var(--make-ai-internal-accent) 17%, transparent),
108
148
  0 0 0 8px color-mix(in srgb, var(--make-ai-internal-accent) 7%, transparent),
109
149
  inset 0 1px 0 var(--make-ai-internal-highlight);
110
- transform: translateY(-50%) scale(1.04);
150
+ transform: var(--make-ai-internal-launcher-translate) scale(1.04);
111
151
  }
112
152
 
113
153
  .make-ai-assistant__launcher:active {
114
- transform: translateY(-50%) scale(.98);
154
+ transform: var(--make-ai-internal-launcher-translate) scale(.98);
115
155
  }
116
156
 
117
157
  .make-ai-assistant__launcher:focus-visible,
@@ -252,7 +292,7 @@
252
292
  }
253
293
 
254
294
  .make-ai-assistant__header h2 {
255
- font-size: .875rem;
295
+ font-size: var(--make-ai-internal-font-size-heading);
256
296
  font-weight: 700;
257
297
  letter-spacing: 0;
258
298
  line-height: 18px;
@@ -260,7 +300,7 @@
260
300
 
261
301
  .make-ai-assistant__header p {
262
302
  color: var(--make-ai-internal-text-secondary);
263
- font-size: .6875rem;
303
+ font-size: var(--make-ai-internal-font-size-meta);
264
304
  line-height: 14px;
265
305
  }
266
306
 
@@ -343,9 +383,9 @@
343
383
  border-radius: 5px;
344
384
  color: color-mix(in srgb, var(--make-ai-internal-accent) 82%, var(--make-ai-internal-text));
345
385
  flex: 0 0 auto;
346
- font-size: .625rem;
386
+ font-size: var(--make-ai-internal-font-size-caption);
347
387
  font-weight: 650;
348
- line-height: 16px;
388
+ line-height: var(--make-ai-internal-line-height-caption);
349
389
  padding: 0 5px;
350
390
  }
351
391
 
@@ -393,9 +433,9 @@
393
433
  border-radius: 8px;
394
434
  box-shadow: 0 8px 18px var(--make-ai-internal-overlay-shadow);
395
435
  color: var(--make-ai-internal-on-overlay);
396
- font-size: 11px;
436
+ font-size: var(--make-ai-internal-font-size-meta);
397
437
  font-weight: 500;
398
- line-height: 1.5;
438
+ line-height: var(--make-ai-internal-line-height-meta);
399
439
  max-height: calc(100vh - 32px);
400
440
  max-width: min(280px, calc(100vw - 32px));
401
441
  opacity: 0;
@@ -509,10 +549,10 @@
509
549
 
510
550
  .make-ai-assistant__load-failure-label {
511
551
  color: var(--make-ai-load-failure-accent);
512
- font-size: .625rem;
552
+ font-size: var(--make-ai-internal-font-size-caption);
513
553
  font-weight: 700;
514
554
  letter-spacing: .04em;
515
- line-height: 1.4;
555
+ line-height: var(--make-ai-internal-line-height-caption);
516
556
  }
517
557
 
518
558
  .make-ai-assistant__load-failure h3,
@@ -522,15 +562,15 @@
522
562
 
523
563
  .make-ai-assistant__load-failure h3 {
524
564
  color: var(--make-ai-internal-text);
525
- font-size: 1rem;
565
+ font-size: var(--make-ai-internal-font-size-heading);
526
566
  font-weight: 700;
527
- line-height: 1.45;
567
+ line-height: var(--make-ai-internal-line-height-heading);
528
568
  }
529
569
 
530
570
  .make-ai-assistant__load-failure p {
531
571
  color: var(--make-ai-internal-text-secondary);
532
572
  font-size: var(--make-ai-internal-font-size-body);
533
- line-height: 1.55;
573
+ line-height: var(--make-ai-internal-line-height-body);
534
574
  }
535
575
 
536
576
  .make-ai-assistant__message {
@@ -589,9 +629,9 @@
589
629
 
590
630
  .make-ai-assistant__message-sender {
591
631
  color: var(--make-ai-internal-text-secondary);
592
- font-size: 12px;
632
+ font-size: var(--make-ai-internal-font-size-meta);
593
633
  font-weight: 600;
594
- line-height: 16px;
634
+ line-height: var(--make-ai-internal-line-height-meta);
595
635
  }
596
636
 
597
637
  .make-ai-assistant__message--user .make-ai-assistant__message-sender {
@@ -637,6 +677,8 @@
637
677
  border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 7%, var(--make-ai-internal-border));
638
678
  border-radius: 16px 5px 16px 16px;
639
679
  color: color-mix(in srgb, var(--make-ai-internal-text) 82%, var(--make-ai-internal-accent));
680
+ font-size: var(--make-ai-internal-font-size-heading);
681
+ line-height: var(--make-ai-internal-line-height-heading);
640
682
  padding: 10px 13px;
641
683
  white-space: pre-wrap;
642
684
  }
@@ -644,8 +686,8 @@
644
686
  .make-ai-assistant__assistant-text {
645
687
  display: grid;
646
688
  font-size: var(--make-ai-internal-font-size-markdown);
647
- gap: 10px;
648
- line-height: 1.7;
689
+ gap: var(--make-ai-internal-assistant-block-gap);
690
+ line-height: var(--make-ai-internal-line-height-body);
649
691
  max-width: 100%;
650
692
  white-space: normal;
651
693
  width: 100%;
@@ -665,10 +707,10 @@
665
707
  border-left: 3px solid color-mix(in srgb, var(--make-ai-internal-accent) 68%, var(--make-ai-internal-border));
666
708
  color: color-mix(in srgb, var(--make-ai-internal-text) 94%, var(--make-ai-internal-accent));
667
709
  display: block;
668
- font-size: 1.04em;
710
+ font-size: var(--make-ai-internal-font-size-heading);
669
711
  font-weight: 720;
670
712
  letter-spacing: -.01em;
671
- line-height: 1.45;
713
+ line-height: var(--make-ai-internal-line-height-heading);
672
714
  min-width: 0;
673
715
  padding: 0 0 0 8px;
674
716
  }
@@ -678,7 +720,7 @@
678
720
  .make-ai-assistant__markdown-heading--5,
679
721
  .make-ai-assistant__markdown-heading--6 {
680
722
  color: color-mix(in srgb, var(--make-ai-internal-text) 90%, var(--make-ai-internal-accent));
681
- font-size: 1em;
723
+ font-size: var(--make-ai-internal-font-size-heading);
682
724
  font-weight: 680;
683
725
  }
684
726
 
@@ -842,7 +884,7 @@
842
884
  flex-direction: column;
843
885
  font-size: var(--make-ai-internal-font-size-body);
844
886
  gap: 4px;
845
- line-height: 1.55;
887
+ line-height: var(--make-ai-internal-line-height-body);
846
888
  overflow-wrap: anywhere;
847
889
  padding: 10px 12px;
848
890
  }
@@ -858,8 +900,9 @@
858
900
  align-items: center;
859
901
  color: var(--make-ai-internal-danger);
860
902
  display: flex;
903
+ font-size: var(--make-ai-internal-font-size-heading);
861
904
  gap: 8px;
862
- line-height: 20px;
905
+ line-height: var(--make-ai-internal-line-height-heading);
863
906
  }
864
907
 
865
908
  .make-ai-assistant__message-status-icon {
@@ -893,9 +936,9 @@
893
936
  color: var(--make-ai-internal-text-secondary);
894
937
  display: flex;
895
938
  flex: 1;
896
- font-size: 12px;
939
+ font-size: var(--make-ai-internal-font-size-meta);
897
940
  gap: 7px;
898
- line-height: 18px;
941
+ line-height: var(--make-ai-internal-line-height-meta);
899
942
  min-width: 0;
900
943
  min-height: 24px;
901
944
  }
@@ -919,8 +962,8 @@
919
962
  border: 1px solid color-mix(in srgb, var(--make-ai-internal-border) 88%, transparent);
920
963
  border-radius: 10px;
921
964
  color: var(--make-ai-internal-text-secondary);
922
- font-size: 12px;
923
- line-height: 1.55;
965
+ font-size: var(--make-ai-internal-font-size-meta);
966
+ line-height: var(--make-ai-internal-line-height-meta);
924
967
  overflow: hidden;
925
968
  overflow-wrap: anywhere;
926
969
  }
@@ -958,7 +1001,7 @@
958
1001
  .make-ai-assistant__process-count {
959
1002
  color: color-mix(in srgb, var(--make-ai-internal-text-secondary) 78%, var(--make-ai-internal-bg));
960
1003
  flex: 0 0 auto;
961
- font-size: 11px;
1004
+ font-size: var(--make-ai-internal-font-size-caption);
962
1005
  margin-left: auto;
963
1006
  }
964
1007
 
@@ -991,6 +1034,9 @@
991
1034
  }
992
1035
 
993
1036
  .make-ai-assistant__process li > span:last-child {
1037
+ color: var(--make-ai-internal-text);
1038
+ font-size: var(--make-ai-internal-font-size-body);
1039
+ line-height: var(--make-ai-internal-line-height-body);
994
1040
  min-width: 0;
995
1041
  overflow-wrap: anywhere;
996
1042
  }
@@ -1045,10 +1091,10 @@
1045
1091
  box-shadow: 0 8px 18px var(--make-ai-internal-overlay-shadow);
1046
1092
  color: var(--make-ai-internal-on-overlay);
1047
1093
  content: attr(data-tooltip);
1048
- font-size: 11px;
1094
+ font-size: var(--make-ai-internal-font-size-meta);
1049
1095
  font-weight: 600;
1050
1096
  left: 50%;
1051
- line-height: 1;
1097
+ line-height: var(--make-ai-internal-line-height-meta);
1052
1098
  opacity: 0;
1053
1099
  padding: 6px 8px;
1054
1100
  pointer-events: none;
@@ -1131,7 +1177,7 @@
1131
1177
  color: var(--make-ai-internal-danger);
1132
1178
  cursor: pointer;
1133
1179
  display: inline-flex;
1134
- font-size: 12px;
1180
+ font-size: var(--make-ai-internal-font-size-meta);
1135
1181
  font-weight: 600;
1136
1182
  gap: 6px;
1137
1183
  margin-top: 4px;
@@ -1195,7 +1241,7 @@
1195
1241
  color: var(--make-ai-internal-text-secondary);
1196
1242
  cursor: pointer;
1197
1243
  flex: 0 0 auto;
1198
- font-size: 12px;
1244
+ font-size: var(--make-ai-internal-font-size-meta);
1199
1245
  padding: 7px 10px;
1200
1246
  }
1201
1247
 
@@ -1229,7 +1275,7 @@
1229
1275
  border: 0;
1230
1276
  color: var(--make-ai-internal-text);
1231
1277
  font-size: var(--make-ai-internal-font-size-body);
1232
- line-height: 1.5;
1278
+ line-height: var(--make-ai-internal-line-height-body);
1233
1279
  max-height: 112px;
1234
1280
  min-height: 38px;
1235
1281
  outline: 0;
@@ -1296,8 +1342,8 @@
1296
1342
 
1297
1343
  .make-ai-assistant__composer-region > p {
1298
1344
  color: var(--make-ai-internal-text-secondary);
1299
- font-size: 10px;
1300
- line-height: 1.45;
1345
+ font-size: var(--make-ai-internal-font-size-caption);
1346
+ line-height: var(--make-ai-internal-line-height-caption);
1301
1347
  margin: 7px 0 0;
1302
1348
  text-align: center;
1303
1349
  }
@@ -1307,6 +1353,8 @@
1307
1353
  border: 1px solid color-mix(in srgb, var(--make-ai-internal-border) 86%, transparent);
1308
1354
  border-radius: var(--make-ai-internal-radius);
1309
1355
  container-type: inline-size;
1356
+ font-size: var(--make-ai-internal-font-size-body);
1357
+ line-height: var(--make-ai-internal-line-height-body);
1310
1358
  overflow: hidden;
1311
1359
  padding: 14px;
1312
1360
  width: 100%;
@@ -1322,19 +1370,25 @@
1322
1370
  }
1323
1371
 
1324
1372
  .make-ai-artifact__title {
1325
- font-size: var(--make-ai-internal-font-size-body);
1373
+ font-size: var(--make-ai-internal-font-size-heading);
1326
1374
  font-weight: 600;
1327
- line-height: 20px;
1375
+ line-height: var(--make-ai-internal-line-height-heading);
1328
1376
  margin: 0;
1329
1377
  }
1330
1378
 
1331
1379
  .make-ai-artifact__summary,
1332
- .make-ai-artifact__context,
1380
+ .make-ai-artifact__context {
1381
+ color: var(--make-ai-internal-text-secondary);
1382
+ font-size: var(--make-ai-internal-font-size-meta);
1383
+ line-height: var(--make-ai-internal-line-height-meta);
1384
+ margin: 6px 0 0;
1385
+ }
1386
+
1333
1387
  .make-ai-artifact__record-total {
1334
1388
  color: var(--make-ai-internal-text-secondary);
1335
- font-size: 11px;
1336
- line-height: 1.5;
1337
- margin: 4px 0 0;
1389
+ font-size: var(--make-ai-internal-font-size-caption);
1390
+ line-height: var(--make-ai-internal-line-height-caption);
1391
+ margin: 6px 0 0;
1338
1392
  }
1339
1393
 
1340
1394
  .make-ai-artifact__metric-value {
@@ -1350,7 +1404,7 @@
1350
1404
  align-items: center;
1351
1405
  color: var(--make-ai-internal-text-secondary);
1352
1406
  display: flex;
1353
- font-size: 11px;
1407
+ font-size: var(--make-ai-internal-font-size-meta);
1354
1408
  gap: 4px;
1355
1409
  margin-top: 5px;
1356
1410
  }
@@ -1373,7 +1427,7 @@
1373
1427
  color: var(--make-ai-internal-accent);
1374
1428
  cursor: pointer;
1375
1429
  display: inline-flex;
1376
- font-size: 12px;
1430
+ font-size: var(--make-ai-internal-font-size-meta);
1377
1431
  font-weight: 600;
1378
1432
  gap: 5px;
1379
1433
  padding: 3px 0;
@@ -1411,21 +1465,23 @@
1411
1465
 
1412
1466
  .make-ai-artifact__comparison-item:first-child { border-left: 0; padding-left: 0; }
1413
1467
  .make-ai-artifact__comparison-item span,
1414
- .make-ai-artifact__comparison-item small { color: var(--make-ai-internal-text-secondary); font-size: 11px; }
1468
+ .make-ai-artifact__comparison-item small { color: var(--make-ai-internal-text-secondary); }
1469
+ .make-ai-artifact__comparison-item span { font-size: var(--make-ai-internal-font-size-meta); line-height: var(--make-ai-internal-line-height-meta); }
1470
+ .make-ai-artifact__comparison-item small { font-size: var(--make-ai-internal-font-size-caption); line-height: var(--make-ai-internal-line-height-caption); }
1415
1471
  .make-ai-artifact__comparison-item strong { font-size: 18px; }
1416
1472
 
1417
1473
  .make-ai-artifact__trend { margin-top: 12px; }
1418
- .make-ai-artifact__trend-label { color: var(--make-ai-internal-text-secondary); font-size: 11px; margin-bottom: 8px; }
1474
+ .make-ai-artifact__trend-label { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-meta); line-height: var(--make-ai-internal-line-height-meta); margin-bottom: 8px; }
1419
1475
  .make-ai-artifact__trend-bars { align-items: flex-end; display: flex; gap: 5px; height: 112px; }
1420
1476
  .make-ai-artifact__trend-point { align-items: center; display: flex; flex: 1; flex-direction: column; height: 100%; justify-content: flex-end; min-width: 0; }
1421
1477
  .make-ai-artifact__trend-bar { background: var(--make-ai-internal-accent); border-radius: 4px 4px 1px 1px; min-height: 4px; width: min(18px, 70%); }
1422
- .make-ai-artifact__trend-point small { color: var(--make-ai-internal-text-secondary); font-size: 9px; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; text-align: center; }
1478
+ .make-ai-artifact__trend-point small { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-caption); line-height: var(--make-ai-internal-line-height-caption); margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; text-align: center; }
1423
1479
 
1424
1480
  .make-ai-artifact__ranking { list-style: none; margin: 12px 0 0; padding: 0; }
1425
- .make-ai-artifact__ranking li { align-items: center; display: grid; font-size: 12px; gap: 8px; grid-template-columns: 20px minmax(72px, auto) minmax(40px, 1fr) auto; margin-top: 9px; }
1426
- .make-ai-artifact__rank { align-items: center; background: var(--make-ai-internal-surface-strong); border-radius: 6px; color: var(--make-ai-internal-text-secondary); display: flex; height: 20px; justify-content: center; }
1481
+ .make-ai-artifact__ranking li { align-items: center; display: grid; font-size: var(--make-ai-internal-font-size-body); gap: 8px; grid-template-columns: 20px minmax(72px, auto) minmax(40px, 1fr) auto; margin-top: 9px; }
1482
+ .make-ai-artifact__rank { align-items: center; background: var(--make-ai-internal-surface-strong); border-radius: 6px; color: var(--make-ai-internal-text-secondary); display: flex; font-size: var(--make-ai-internal-font-size-meta); height: 20px; justify-content: center; }
1427
1483
  .make-ai-artifact__ranking-label { display: flex; flex-direction: column; min-width: 0; }
1428
- .make-ai-artifact__ranking-label small { color: var(--make-ai-internal-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1484
+ .make-ai-artifact__ranking-label small { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-caption); line-height: var(--make-ai-internal-line-height-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1429
1485
  .make-ai-artifact__ranking-track { background: var(--make-ai-internal-surface-strong); border-radius: 999px; height: 5px; overflow: hidden; }
1430
1486
  .make-ai-artifact__ranking-track span { background: var(--make-ai-internal-accent); border-radius: inherit; display: block; height: 100%; }
1431
1487
 
@@ -1435,10 +1491,10 @@ button.make-ai-artifact__record { cursor: pointer; }
1435
1491
  button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accent-soft); }
1436
1492
  .make-ai-artifact__record-values { display: flex; gap: 12px; min-width: 0; }
1437
1493
  .make-ai-artifact__record-values > span { display: flex; flex: 1; flex-direction: column; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1438
- .make-ai-artifact__record-values small { color: var(--make-ai-internal-text-secondary); font-size: 9px; }
1439
- .make-ai-artifact__empty { color: var(--make-ai-internal-text-secondary); font-size: 12px; text-align: center; }
1494
+ .make-ai-artifact__record-values small { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-caption); line-height: var(--make-ai-internal-line-height-caption); }
1495
+ .make-ai-artifact__empty { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-meta); line-height: var(--make-ai-internal-line-height-meta); text-align: center; }
1440
1496
 
1441
- .make-ai-artifact__notice { align-items: flex-start; display: flex; font-size: 12px; gap: 9px; line-height: 1.6; margin-top: 8px; }
1497
+ .make-ai-artifact__notice { align-items: flex-start; display: flex; font-size: var(--make-ai-internal-font-size-meta); gap: 9px; line-height: var(--make-ai-internal-line-height-meta); margin-top: 8px; }
1442
1498
  .make-ai-artifact__notice > span { align-items: center; border: 1px solid currentColor; border-radius: 50%; display: flex; flex: 0 0 auto; height: 20px; justify-content: center; margin-top: 1px; width: 20px; }
1443
1499
  .make-ai-artifact__notice p { margin: 0; }
1444
1500
  .make-ai-artifact__notice--success { color: var(--make-ai-internal-success); }
@@ -1446,7 +1502,7 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1446
1502
  .make-ai-artifact__notice--danger { color: var(--make-ai-internal-danger); }
1447
1503
  .make-ai-artifact__notice--info { color: var(--make-ai-internal-accent); }
1448
1504
 
1449
- .make-ai-artifact--unsupported { color: var(--make-ai-internal-text-secondary); display: flex; flex-direction: column; font-size: 12px; gap: 3px; }
1505
+ .make-ai-artifact--unsupported { color: var(--make-ai-internal-text-secondary); display: flex; flex-direction: column; font-size: var(--make-ai-internal-font-size-meta); gap: 3px; line-height: var(--make-ai-internal-line-height-meta); }
1450
1506
 
1451
1507
  @keyframes make-ai-pulse {
1452
1508
  0% { opacity: .75; transform: scale(.92); }
@@ -1621,7 +1677,36 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1621
1677
  @media (max-width: 560px) {
1622
1678
  .make-ai-assistant__drawer { width: 100vw; }
1623
1679
  .make-ai-assistant__drawer-resize-handle { display: none; }
1624
- .make-ai-assistant__launcher { right: var(--make-ai-launcher-mobile-right, 16px); }
1680
+ .make-ai-assistant__launcher {
1681
+ bottom: var(--make-ai-launcher-mobile-bottom, var(--make-ai-launcher-bottom, 16px));
1682
+ left: var(--make-ai-launcher-mobile-left, var(--make-ai-launcher-left, 16px));
1683
+ right: auto;
1684
+ top: auto;
1685
+ }
1686
+ .make-ai-assistant__launcher[data-launcher-position="bottom-right"] {
1687
+ left: auto;
1688
+ right: var(--make-ai-launcher-mobile-right, var(--make-ai-launcher-right, 16px));
1689
+ }
1690
+ .make-ai-assistant__launcher[data-launcher-position="top-left"] {
1691
+ bottom: auto;
1692
+ top: var(--make-ai-launcher-mobile-top, var(--make-ai-launcher-top, 16px));
1693
+ }
1694
+ .make-ai-assistant__launcher[data-launcher-position="top-right"] {
1695
+ bottom: auto;
1696
+ left: auto;
1697
+ right: var(--make-ai-launcher-mobile-right, var(--make-ai-launcher-right, 16px));
1698
+ top: var(--make-ai-launcher-mobile-top, var(--make-ai-launcher-top, 16px));
1699
+ }
1700
+ .make-ai-assistant__launcher[data-launcher-position="left-center"] {
1701
+ bottom: auto;
1702
+ top: var(--make-ai-launcher-mobile-top, var(--make-ai-launcher-top, 50%));
1703
+ }
1704
+ .make-ai-assistant__launcher[data-launcher-position="right-center"] {
1705
+ bottom: auto;
1706
+ left: auto;
1707
+ right: var(--make-ai-launcher-mobile-right, var(--make-ai-launcher-right, 16px));
1708
+ top: var(--make-ai-launcher-mobile-top, var(--make-ai-launcher-top, 50%));
1709
+ }
1625
1710
  .make-ai-artifact__record {
1626
1711
  grid-template-columns: minmax(0, 1fr) auto;
1627
1712
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qfei-design/make-ai-assistant",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Platform-wide Make AI Assistant contracts, React shell, and context-aware artifact templates.",
5
5
  "type": "module",
6
6
  "sideEffects": [