@qfei-design/make-ai-assistant 0.1.8 → 0.2.0

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
@@ -51,27 +51,53 @@
51
51
 
52
52
  .make-ai-assistant__launcher {
53
53
  align-items: center;
54
- background: var(--make-ai-internal-accent);
55
- border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 70%, var(--make-ai-internal-border));
54
+ background:
55
+ radial-gradient(circle at 34% 24%, rgb(255 255 255 / 56%), transparent 31%),
56
+ radial-gradient(
57
+ circle at 70% 78%,
58
+ color-mix(in srgb, var(--make-ai-internal-accent) 24%, transparent),
59
+ transparent 46%
60
+ ),
61
+ linear-gradient(
62
+ 145deg,
63
+ color-mix(in srgb, var(--make-ai-internal-accent) 68%, #fcfcff),
64
+ color-mix(in srgb, var(--make-ai-internal-accent) 72%, #bdb8ff)
65
+ );
66
+ border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 34%, var(--make-ai-internal-border));
56
67
  border-radius: 50%;
57
- bottom: 28px;
58
- box-shadow: 0 10px 24px color-mix(in srgb, var(--make-ai-internal-accent) 22%, transparent);
68
+ bottom: auto;
69
+ box-shadow:
70
+ 0 12px 26px color-mix(in srgb, var(--make-ai-internal-accent) 14%, transparent),
71
+ 0 0 0 6px color-mix(in srgb, var(--make-ai-internal-accent) 5%, transparent),
72
+ inset 0 1px 0 rgb(255 255 255 / 58%);
59
73
  color: #fcfcff;
60
74
  cursor: pointer;
61
75
  display: flex;
62
76
  height: 50px;
63
77
  justify-content: center;
78
+ overflow: visible;
64
79
  padding: 0;
65
80
  position: fixed;
66
- right: 28px;
67
- transition: box-shadow 180ms ease, transform 180ms ease;
81
+ right: var(--make-ai-launcher-right, 18px);
82
+ top: var(--make-ai-launcher-top, 50%);
83
+ transform: translateY(-50%);
84
+ transition:
85
+ box-shadow 180ms cubic-bezier(.25, 1, .5, 1),
86
+ transform 180ms cubic-bezier(.25, 1, .5, 1);
68
87
  width: 50px;
69
88
  z-index: calc(var(--make-ai-internal-z-index) + 2);
70
89
  }
71
90
 
72
91
  .make-ai-assistant__launcher:hover {
73
- box-shadow: 0 12px 28px color-mix(in srgb, var(--make-ai-internal-accent) 28%, transparent);
74
- transform: translateY(-2px);
92
+ box-shadow:
93
+ 0 14px 30px color-mix(in srgb, var(--make-ai-internal-accent) 17%, transparent),
94
+ 0 0 0 8px color-mix(in srgb, var(--make-ai-internal-accent) 7%, transparent),
95
+ inset 0 1px 0 rgb(255 255 255 / 64%);
96
+ transform: translateY(-50%) scale(1.04);
97
+ }
98
+
99
+ .make-ai-assistant__launcher:active {
100
+ transform: translateY(-50%) scale(.98);
75
101
  }
76
102
 
77
103
  .make-ai-assistant__launcher:focus-visible,
@@ -82,20 +108,46 @@
82
108
  }
83
109
 
84
110
  .make-ai-assistant__launcher > svg {
111
+ animation: make-ai-launcher-sparkle 2.4s cubic-bezier(.25, 1, .5, 1) infinite;
85
112
  fill: none;
86
113
  height: 26px;
114
+ position: relative;
115
+ filter: drop-shadow(0 1px 4px color-mix(in srgb, var(--make-ai-internal-accent) 22%, transparent));
87
116
  stroke: currentColor;
88
117
  stroke-linecap: round;
89
118
  stroke-linejoin: round;
90
119
  stroke-width: 1.75;
120
+ transform-origin: center;
121
+ transition: transform 180ms cubic-bezier(.25, 1, .5, 1);
91
122
  width: 26px;
123
+ z-index: 1;
124
+ }
125
+
126
+ .make-ai-assistant__launcher:hover > svg {
127
+ animation-duration: 1.6s;
92
128
  }
93
129
 
94
130
  .make-ai-assistant__launcher-orbit {
95
- border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 30%, transparent);
131
+ animation: make-ai-launcher-orbit 6s linear infinite, make-ai-launcher-breathe 2.8s cubic-bezier(.25, 1, .5, 1) infinite;
132
+ border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 16%, transparent);
96
133
  border-radius: 50%;
97
- inset: -5px;
134
+ inset: -6px;
135
+ opacity: .78;
136
+ pointer-events: none;
137
+ position: absolute;
138
+ }
139
+
140
+ .make-ai-assistant__launcher-orbit::before {
141
+ background: color-mix(in srgb, var(--make-ai-internal-accent) 52%, #fcfcff);
142
+ border-radius: 50%;
143
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--make-ai-internal-accent) 10%, transparent);
144
+ content: "";
145
+ height: 5px;
146
+ left: 50%;
98
147
  position: absolute;
148
+ top: -2px;
149
+ transform: translateX(-50%);
150
+ width: 5px;
99
151
  }
100
152
 
101
153
  .make-ai-assistant__drawer {
@@ -354,7 +406,7 @@
354
406
  }
355
407
 
356
408
  .make-ai-assistant__message--user .make-ai-assistant__message-sender {
357
- color: color-mix(in srgb, var(--make-ai-internal-accent) 72%, var(--make-ai-internal-text));
409
+ color: color-mix(in srgb, var(--make-ai-internal-text-secondary) 76%, var(--make-ai-internal-accent));
358
410
  }
359
411
 
360
412
  .make-ai-assistant__avatar--message,
@@ -392,10 +444,10 @@
392
444
  }
393
445
 
394
446
  .make-ai-assistant__message--user .make-ai-assistant__bubble {
395
- background: color-mix(in srgb, var(--make-ai-internal-accent) 10%, var(--make-ai-internal-surface));
396
- border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 12%, var(--make-ai-internal-border));
447
+ background: color-mix(in srgb, var(--make-ai-internal-accent) 4%, var(--make-ai-internal-bg));
448
+ border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 7%, var(--make-ai-internal-border));
397
449
  border-radius: 16px 5px 16px 16px;
398
- color: color-mix(in srgb, var(--make-ai-internal-accent) 68%, var(--make-ai-internal-text));
450
+ color: color-mix(in srgb, var(--make-ai-internal-text) 82%, var(--make-ai-internal-accent));
399
451
  padding: 10px 13px;
400
452
  white-space: pre-wrap;
401
453
  }
@@ -410,11 +462,38 @@
410
462
  }
411
463
 
412
464
  .make-ai-assistant__assistant-text p,
465
+ .make-ai-assistant__assistant-text .make-ai-assistant__markdown-heading,
413
466
  .make-ai-assistant__assistant-text ul,
414
467
  .make-ai-assistant__assistant-text pre {
415
468
  margin: 0;
416
469
  }
417
470
 
471
+ .make-ai-assistant__markdown-heading {
472
+ align-items: center;
473
+ background: color-mix(in srgb, var(--make-ai-internal-accent) 2%, var(--make-ai-internal-bg));
474
+ border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 5%, var(--make-ai-internal-border));
475
+ border-radius: 9px;
476
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 36%);
477
+ color: color-mix(in srgb, var(--make-ai-internal-text) 94%, var(--make-ai-internal-accent));
478
+ display: flex;
479
+ font-size: 1.04em;
480
+ font-weight: 720;
481
+ gap: 6px;
482
+ letter-spacing: -.01em;
483
+ line-height: 1.45;
484
+ min-width: 0;
485
+ padding: 4px 8px;
486
+ }
487
+
488
+ .make-ai-assistant__markdown-heading--3,
489
+ .make-ai-assistant__markdown-heading--4,
490
+ .make-ai-assistant__markdown-heading--5,
491
+ .make-ai-assistant__markdown-heading--6 {
492
+ color: color-mix(in srgb, var(--make-ai-internal-text) 90%, var(--make-ai-internal-accent));
493
+ font-size: 1em;
494
+ font-weight: 680;
495
+ }
496
+
418
497
  .make-ai-assistant__assistant-text p {
419
498
  min-width: 0;
420
499
  }
@@ -647,9 +726,11 @@
647
726
  cursor: pointer;
648
727
  font-size: var(--make-ai-internal-font-size-ui);
649
728
  font-weight: 600;
729
+ position: relative;
650
730
  }
651
731
 
652
- .make-ai-assistant__reply-copy {
732
+ .make-ai-assistant__reply-copy,
733
+ .make-ai-assistant__reply-regenerate {
653
734
  align-items: center;
654
735
  border: 1px solid transparent;
655
736
  display: inline-flex;
@@ -659,7 +740,8 @@
659
740
  width: 28px;
660
741
  }
661
742
 
662
- .make-ai-assistant__reply-copy svg {
743
+ .make-ai-assistant__reply-copy svg,
744
+ .make-ai-assistant__reply-regenerate svg {
663
745
  fill: none;
664
746
  height: 15px;
665
747
  stroke: currentColor;
@@ -669,17 +751,40 @@
669
751
  width: 15px;
670
752
  }
671
753
 
672
- .make-ai-assistant__reply-regenerate {
673
- padding: 3px 0;
754
+ .make-ai-assistant__reply-action[data-tooltip]::after,
755
+ .make-ai-assistant__send[data-tooltip]::after {
756
+ background: color-mix(in srgb, var(--make-ai-internal-text) 94%, #000);
757
+ border-radius: 8px;
758
+ bottom: calc(100% + 7px);
759
+ box-shadow: 0 8px 18px rgb(30 31 43 / 18%);
760
+ color: #fcfcff;
761
+ content: attr(data-tooltip);
762
+ font-size: 11px;
763
+ font-weight: 600;
764
+ left: 50%;
765
+ line-height: 1;
766
+ opacity: 0;
767
+ padding: 6px 8px;
768
+ pointer-events: none;
769
+ position: absolute;
770
+ transform: translate(-50%, 2px);
771
+ transition: opacity 120ms ease, transform 120ms ease;
772
+ white-space: nowrap;
773
+ z-index: 3;
674
774
  }
675
775
 
676
- .make-ai-assistant__reply-copy:hover {
677
- background: var(--make-ai-internal-surface);
678
- border-color: color-mix(in srgb, var(--make-ai-internal-accent) 18%, var(--make-ai-internal-border));
679
- color: var(--make-ai-internal-accent);
776
+ .make-ai-assistant__reply-action[data-tooltip]:hover::after,
777
+ .make-ai-assistant__reply-action[data-tooltip]:focus-visible::after,
778
+ .make-ai-assistant__send[data-tooltip]:hover::after,
779
+ .make-ai-assistant__send[data-tooltip]:focus-visible::after {
780
+ opacity: 1;
781
+ transform: translate(-50%, 0);
680
782
  }
681
783
 
784
+ .make-ai-assistant__reply-copy:hover,
682
785
  .make-ai-assistant__reply-regenerate:hover {
786
+ background: var(--make-ai-internal-surface);
787
+ border-color: color-mix(in srgb, var(--make-ai-internal-accent) 18%, var(--make-ai-internal-border));
683
788
  color: var(--make-ai-internal-accent);
684
789
  }
685
790
 
@@ -1034,6 +1139,31 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1034
1139
  to { opacity: 1; transform: translateX(0); }
1035
1140
  }
1036
1141
 
1142
+ @keyframes make-ai-launcher-orbit {
1143
+ from { transform: rotate(0deg); }
1144
+ to { transform: rotate(360deg); }
1145
+ }
1146
+
1147
+ @keyframes make-ai-launcher-breathe {
1148
+ 0%, 100% { opacity: .58; }
1149
+ 50% { opacity: .92; }
1150
+ }
1151
+
1152
+ @keyframes make-ai-launcher-sparkle {
1153
+ 0%, 100% {
1154
+ opacity: .9;
1155
+ transform: rotate(0deg) scale(.96);
1156
+ }
1157
+ 42% {
1158
+ opacity: 1;
1159
+ transform: rotate(4deg) scale(1.08);
1160
+ }
1161
+ 68% {
1162
+ opacity: .96;
1163
+ transform: rotate(-2deg) scale(1);
1164
+ }
1165
+ }
1166
+
1037
1167
  @container (max-width: 360px) {
1038
1168
  .make-ai-assistant__header {
1039
1169
  gap: 8px;
@@ -1089,7 +1219,7 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1089
1219
 
1090
1220
  @media (max-width: 560px) {
1091
1221
  .make-ai-assistant__drawer { width: 100vw; }
1092
- .make-ai-assistant__launcher { bottom: 20px; right: 20px; }
1222
+ .make-ai-assistant__launcher { right: var(--make-ai-launcher-mobile-right, 16px); }
1093
1223
  .make-ai-artifact__record {
1094
1224
  grid-template-columns: minmax(0, 1fr) auto;
1095
1225
  }
@@ -1111,12 +1241,16 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1111
1241
  @media (prefers-reduced-motion: reduce) {
1112
1242
  .make-ai-assistant__drawer,
1113
1243
  .make-ai-assistant__launcher-orbit,
1244
+ .make-ai-assistant__launcher > svg,
1114
1245
  .make-ai-assistant__progress > span:first-child,
1115
1246
  .make-ai-assistant__typing span {
1116
1247
  animation: none;
1117
1248
  }
1118
1249
  .make-ai-assistant__launcher,
1250
+ .make-ai-assistant__launcher > svg,
1119
1251
  .make-ai-assistant__back-to-latest,
1252
+ .make-ai-assistant__reply-action[data-tooltip]::after,
1253
+ .make-ai-assistant__send[data-tooltip]::after,
1120
1254
  .make-ai-assistant__process summary::after {
1121
1255
  transition: none;
1122
1256
  }
package/package.ai.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "packageName": "@qfei-design/make-ai-assistant",
3
- "minimumRuntimeVersion": "0.1.2",
3
+ "minimumRuntimeVersion": "0.2.0",
4
4
  "readOrder": [
5
5
  "package.ai.json",
6
6
  "README.md",
@@ -15,9 +15,9 @@
15
15
  "ssrSupported": true
16
16
  },
17
17
  "install": {
18
- "pnpm": "pnpm add @qfei-design/make-ai-assistant@^0.1.2",
19
- "npm": "npm install @qfei-design/make-ai-assistant@^0.1.2",
20
- "yarn": "yarn add @qfei-design/make-ai-assistant@^0.1.2"
18
+ "pnpm": "pnpm add @qfei-design/make-ai-assistant@^0.2.0",
19
+ "npm": "npm install @qfei-design/make-ai-assistant@^0.2.0",
20
+ "yarn": "yarn add @qfei-design/make-ai-assistant@^0.2.0"
21
21
  },
22
22
  "exports": [
23
23
  "@qfei-design/make-ai-assistant",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qfei-design/make-ai-assistant",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "Platform-wide Make AI Assistant contracts, React shell, and context-aware artifact templates.",
5
5
  "type": "module",
6
6
  "sideEffects": [