@qfei-design/make-ai-assistant 0.2.10 → 0.2.11

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
@@ -283,8 +283,8 @@
283
283
  background: var(--make-ai-internal-bg);
284
284
  border-bottom: 1px solid var(--make-ai-internal-border);
285
285
  display: grid;
286
- gap: 8px;
287
- grid-template-columns: auto 1fr auto;
286
+ gap: 10px;
287
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
288
288
  grid-row: 1;
289
289
  height: var(--make-ai-internal-header-height);
290
290
  min-height: var(--make-ai-internal-header-height);
@@ -327,6 +327,7 @@
327
327
 
328
328
  .make-ai-assistant__avatar svg,
329
329
  .make-ai-assistant__icon-button svg,
330
+ .make-ai-assistant__task-list-trigger svg,
330
331
  .make-ai-assistant__send svg {
331
332
  fill: none;
332
333
  height: 20px;
@@ -359,6 +360,71 @@
359
360
  align-items: center;
360
361
  display: flex;
361
362
  gap: 2px;
363
+ justify-self: end;
364
+ min-width: 0;
365
+ }
366
+
367
+ .make-ai-assistant__header-leading {
368
+ justify-self: start;
369
+ min-width: 0;
370
+ }
371
+
372
+ .make-ai-assistant__header-center {
373
+ align-items: center;
374
+ display: flex;
375
+ gap: 8px;
376
+ justify-self: center;
377
+ max-width: min(100%, 310px);
378
+ min-width: 0;
379
+ }
380
+
381
+ .make-ai-assistant__header-center > .make-ai-assistant__avatar {
382
+ border-radius: 50%;
383
+ height: 30px;
384
+ width: 30px;
385
+ }
386
+
387
+ .make-ai-assistant__header-center > .make-ai-assistant__avatar svg {
388
+ height: 17px;
389
+ width: 17px;
390
+ }
391
+
392
+ .make-ai-assistant__task-list-trigger {
393
+ align-items: center;
394
+ background: transparent;
395
+ border: 1px solid transparent;
396
+ border-radius: 9px;
397
+ color: var(--make-ai-internal-text-secondary);
398
+ cursor: pointer;
399
+ display: inline-flex;
400
+ font-size: var(--make-ai-internal-font-size-meta);
401
+ gap: 6px;
402
+ height: 34px;
403
+ max-width: 118px;
404
+ padding: 0 8px;
405
+ white-space: nowrap;
406
+ }
407
+
408
+ .make-ai-assistant__task-list-trigger:hover,
409
+ .make-ai-assistant__task-list-trigger[aria-expanded="true"] {
410
+ background: var(--make-ai-internal-surface);
411
+ border-color: color-mix(in srgb, var(--make-ai-internal-accent) 30%, var(--make-ai-internal-border));
412
+ color: var(--make-ai-internal-text);
413
+ }
414
+
415
+ .make-ai-assistant__task-list-trigger svg:first-child {
416
+ height: 17px;
417
+ width: 17px;
418
+ }
419
+
420
+ .make-ai-assistant__task-list-trigger svg:last-child {
421
+ height: 12px;
422
+ transition: transform 160ms ease;
423
+ width: 12px;
424
+ }
425
+
426
+ .make-ai-assistant__task-list-trigger[aria-expanded="true"] svg:last-child {
427
+ transform: rotate(180deg);
362
428
  }
363
429
 
364
430
  .make-ai-assistant__header-content,
@@ -375,6 +441,7 @@
375
441
 
376
442
  .make-ai-assistant__header-title-row {
377
443
  gap: 8px;
444
+ justify-content: center;
378
445
  }
379
446
 
380
447
  .make-ai-assistant__header-title {
@@ -385,6 +452,17 @@
385
452
  white-space: nowrap;
386
453
  }
387
454
 
455
+ .make-ai-assistant__current-conversation {
456
+ color: var(--make-ai-internal-text-secondary);
457
+ flex: 0 1 auto;
458
+ font-size: var(--make-ai-internal-font-size-caption);
459
+ line-height: var(--make-ai-internal-line-height-caption);
460
+ min-width: 0;
461
+ overflow: hidden;
462
+ text-overflow: ellipsis;
463
+ white-space: nowrap;
464
+ }
465
+
388
466
  .make-ai-assistant__read-only-tag {
389
467
  background: color-mix(in srgb, var(--make-ai-internal-accent) 10%, var(--make-ai-internal-bg));
390
468
  border: 1px solid color-mix(in srgb, var(--make-ai-internal-accent) 24%, var(--make-ai-internal-border));
@@ -399,6 +477,7 @@
399
477
 
400
478
  .make-ai-assistant__header-context {
401
479
  gap: 6px;
480
+ justify-content: center;
402
481
  margin-top: 1px;
403
482
  }
404
483
 
@@ -1260,14 +1339,15 @@
1260
1339
  }
1261
1340
 
1262
1341
  .make-ai-assistant__composer {
1263
- align-items: flex-end;
1264
1342
  background: var(--make-ai-internal-surface);
1265
1343
  border: 1px solid var(--make-ai-internal-border);
1266
1344
  border-radius: 15px;
1267
- display: flex;
1268
- gap: 9px;
1269
- min-height: 54px;
1270
- padding: 7px 8px 7px 12px;
1345
+ display: grid;
1346
+ gap: 7px 10px;
1347
+ grid-template-columns: minmax(0, 1fr) auto;
1348
+ grid-template-rows: minmax(46px, auto) 36px;
1349
+ min-height: 96px;
1350
+ padding: 10px 10px 8px;
1271
1351
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
1272
1352
  }
1273
1353
 
@@ -1285,10 +1365,12 @@
1285
1365
  color: var(--make-ai-internal-text);
1286
1366
  font-size: var(--make-ai-internal-font-size-body);
1287
1367
  line-height: var(--make-ai-internal-line-height-body);
1288
- max-height: 112px;
1289
- min-height: 38px;
1368
+ grid-column: 1 / -1;
1369
+ grid-row: 1;
1370
+ max-height: 128px;
1371
+ min-height: 46px;
1290
1372
  outline: 0;
1291
- padding: 4px 0 2px;
1373
+ padding: 2px 5px;
1292
1374
  resize: none;
1293
1375
  width: 100%;
1294
1376
  }
@@ -1312,12 +1394,20 @@
1312
1394
  flex: 0 0 auto;
1313
1395
  height: 34px;
1314
1396
  justify-content: center;
1315
- margin-bottom: 2px;
1316
1397
  position: relative;
1317
1398
  transition: background 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
1318
1399
  width: 34px;
1319
1400
  }
1320
1401
 
1402
+ .make-ai-assistant__composer-actions {
1403
+ align-items: center;
1404
+ display: flex;
1405
+ gap: 7px;
1406
+ grid-column: 2;
1407
+ grid-row: 2;
1408
+ justify-self: end;
1409
+ }
1410
+
1321
1411
  .make-ai-assistant__send::before {
1322
1412
  content: "";
1323
1413
  inset: -5px;
@@ -1555,11 +1645,33 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1555
1645
 
1556
1646
  @container (max-width: 360px) {
1557
1647
  .make-ai-assistant__header {
1558
- gap: 8px;
1559
- grid-template-columns: auto minmax(0, 1fr) auto;
1648
+ gap: 6px;
1649
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
1560
1650
  padding: 7px var(--make-ai-internal-panel-gutter-compact);
1561
1651
  }
1562
1652
 
1653
+ .make-ai-assistant__task-list-trigger {
1654
+ max-width: 34px;
1655
+ padding: 0 8px;
1656
+ }
1657
+
1658
+ .make-ai-assistant__task-list-trigger > span,
1659
+ .make-ai-assistant__task-list-trigger svg:last-child,
1660
+ .make-ai-assistant__current-conversation,
1661
+ .make-ai-assistant__read-only-tag,
1662
+ .make-ai-assistant__header-context {
1663
+ display: none;
1664
+ }
1665
+
1666
+ .make-ai-assistant__header-center {
1667
+ gap: 6px;
1668
+ }
1669
+
1670
+ .make-ai-assistant__header-center > .make-ai-assistant__avatar {
1671
+ height: 26px;
1672
+ width: 26px;
1673
+ }
1674
+
1563
1675
  .make-ai-assistant__body {
1564
1676
  padding: 16px var(--make-ai-internal-panel-gutter-compact) 24px;
1565
1677
  }
@@ -1739,29 +1851,171 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1739
1851
  }
1740
1852
 
1741
1853
  .make-ai-assistant__conversation-controls {
1742
- border-bottom: 1px solid var(--make-ai-internal-border);
1743
- flex: 0 0 auto;
1854
+ background: var(--make-ai-internal-surface);
1855
+ border: 1px solid var(--make-ai-internal-border);
1856
+ border-radius: 12px;
1857
+ box-shadow: 0 14px 34px color-mix(in srgb, var(--make-ai-internal-text) 12%, transparent);
1744
1858
  font-size: var(--make-ai-internal-font-size-meta);
1745
- max-height: 240px;
1859
+ left: var(--make-ai-internal-panel-gutter);
1860
+ max-height: min(430px, calc(100% - var(--make-ai-internal-header-height) - 24px));
1746
1861
  overflow: auto;
1747
- padding: 8px 12px;
1862
+ padding: 12px 8px 8px;
1863
+ position: absolute;
1864
+ top: calc(var(--make-ai-internal-header-height) + 8px);
1865
+ width: min(300px, calc(100% - var(--make-ai-internal-panel-gutter) * 2));
1866
+ z-index: calc(var(--make-ai-internal-z-index) + 1);
1867
+ }
1868
+
1869
+ .make-ai-assistant__panel--managed {
1870
+ grid-template-rows: auto minmax(0, 1fr) auto;
1748
1871
  }
1749
- .make-ai-assistant__panel--managed { grid-template-rows: auto auto minmax(0, 1fr) auto; }
1750
- .make-ai-assistant__panel--managed > .make-ai-assistant__conversation-controls { grid-row: 2; }
1751
- .make-ai-assistant__panel--managed > .make-ai-assistant__body { grid-row: 3; }
1752
- .make-ai-assistant__panel--managed > .make-ai-assistant__composer-region { grid-row: 4; }
1872
+
1753
1873
  .make-ai-assistant__response-status { color: var(--make-ai-internal-text-secondary); font-size: var(--make-ai-internal-font-size-meta); }
1754
1874
 
1755
- .make-ai-assistant__conversation-list { max-height: 130px; overflow: auto; }
1756
- .make-ai-assistant__conversation-row { display: flex; gap: 4px; margin-bottom: 4px; }
1757
- .make-ai-assistant__conversation-row > button:first-child { flex: 1; min-width: 0; overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
1758
- .make-ai-assistant__conversation-row > button[aria-pressed="true"] { background: var(--make-ai-internal-accent-soft); color: var(--make-ai-internal-accent); }
1759
- .make-ai-assistant__conversation-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; padding-top: 8px; }
1760
- .make-ai-assistant__conversation-actions input { flex: 1; min-width: 100px; }
1875
+ .make-ai-assistant__conversation-heading {
1876
+ align-items: center;
1877
+ color: var(--make-ai-internal-text-secondary);
1878
+ display: flex;
1879
+ font-size: var(--make-ai-internal-font-size-caption);
1880
+ justify-content: space-between;
1881
+ letter-spacing: .02em;
1882
+ min-height: 26px;
1883
+ padding: 0 7px 6px;
1884
+ }
1885
+
1886
+ .make-ai-assistant__conversation-list {
1887
+ max-height: 220px;
1888
+ overflow: auto;
1889
+ overscroll-behavior: contain;
1890
+ }
1891
+
1892
+ .make-ai-assistant__conversation-list > p {
1893
+ color: var(--make-ai-internal-text-secondary);
1894
+ margin: 16px 8px;
1895
+ text-align: center;
1896
+ }
1897
+
1898
+ .make-ai-assistant__conversation-row {
1899
+ align-items: center;
1900
+ display: flex;
1901
+ gap: 2px;
1902
+ min-width: 0;
1903
+ }
1904
+
1905
+ .make-ai-assistant__conversation-row > button:first-child {
1906
+ align-items: center;
1907
+ border-color: transparent;
1908
+ display: flex;
1909
+ flex: 1;
1910
+ gap: 8px;
1911
+ min-height: 36px;
1912
+ min-width: 0;
1913
+ overflow: hidden;
1914
+ padding: 0 8px;
1915
+ text-align: left;
1916
+ }
1917
+
1918
+ .make-ai-assistant__conversation-row > button:first-child svg,
1919
+ .make-ai-assistant__conversation-new svg {
1920
+ fill: none;
1921
+ flex: 0 0 auto;
1922
+ height: 16px;
1923
+ stroke: currentColor;
1924
+ stroke-linecap: round;
1925
+ stroke-linejoin: round;
1926
+ stroke-width: 1.7;
1927
+ width: 16px;
1928
+ }
1929
+
1930
+ .make-ai-assistant__conversation-row > button:first-child span {
1931
+ min-width: 0;
1932
+ overflow: hidden;
1933
+ text-overflow: ellipsis;
1934
+ white-space: nowrap;
1935
+ }
1936
+
1937
+ .make-ai-assistant__conversation-row > button[aria-pressed="true"] {
1938
+ background: var(--make-ai-internal-accent-soft);
1939
+ color: var(--make-ai-internal-accent);
1940
+ }
1941
+
1942
+ .make-ai-assistant__conversation-row > button:last-child {
1943
+ background: transparent;
1944
+ border-color: transparent;
1945
+ color: var(--make-ai-internal-text-secondary);
1946
+ flex: 0 0 auto;
1947
+ height: 30px;
1948
+ padding: 0;
1949
+ width: 30px;
1950
+ }
1951
+
1952
+ .make-ai-assistant__conversation-more,
1953
+ .make-ai-assistant__conversation-refresh {
1954
+ background: transparent !important;
1955
+ border-color: transparent !important;
1956
+ color: var(--make-ai-internal-text-secondary) !important;
1957
+ }
1958
+
1959
+ .make-ai-assistant__conversation-more {
1960
+ margin-top: 4px;
1961
+ width: 100%;
1962
+ }
1963
+
1964
+ .make-ai-assistant__conversation-management {
1965
+ border-top: 1px solid var(--make-ai-internal-border);
1966
+ margin-top: 8px;
1967
+ padding: 8px 7px 0;
1968
+ }
1969
+
1970
+ .make-ai-assistant__conversation-management summary {
1971
+ color: var(--make-ai-internal-text-secondary);
1972
+ cursor: pointer;
1973
+ }
1974
+
1975
+ .make-ai-assistant__conversation-actions {
1976
+ align-items: center;
1977
+ display: flex;
1978
+ flex-wrap: wrap;
1979
+ gap: 6px;
1980
+ padding-top: 8px;
1981
+ }
1982
+
1983
+ .make-ai-assistant__conversation-actions input {
1984
+ flex: 1;
1985
+ min-width: 100px;
1986
+ }
1987
+
1988
+ .make-ai-assistant__conversation-error {
1989
+ color: var(--make-ai-internal-danger);
1990
+ display: grid;
1991
+ gap: 6px;
1992
+ padding: 8px 7px 0;
1993
+ }
1994
+
1995
+ .make-ai-assistant__conversation-new {
1996
+ align-items: center;
1997
+ background: transparent !important;
1998
+ border-color: transparent !important;
1999
+ border-radius: 8px !important;
2000
+ border-top: 1px solid var(--make-ai-internal-border) !important;
2001
+ color: var(--make-ai-internal-accent) !important;
2002
+ display: flex;
2003
+ font-weight: 650 !important;
2004
+ gap: 8px;
2005
+ justify-content: flex-start;
2006
+ margin-top: 8px;
2007
+ min-height: 40px;
2008
+ padding: 8px !important;
2009
+ width: 100%;
2010
+ }
2011
+
2012
+ .make-ai-assistant__conversation-new:hover {
2013
+ background: var(--make-ai-internal-accent-soft) !important;
2014
+ }
2015
+
1761
2016
  .make-ai-assistant__conversation-controls button,
1762
2017
  .make-ai-assistant__feedback button,
1763
- .make-ai-assistant__attachment button,
1764
- .make-ai-assistant__attachment-composer button {
2018
+ .make-ai-assistant__attachment button {
1765
2019
  background: var(--make-ai-internal-surface);
1766
2020
  border: 1px solid var(--make-ai-internal-border);
1767
2021
  border-radius: 6px;
@@ -1780,14 +2034,120 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1780
2034
  .make-ai-assistant__attachment img,
1781
2035
  .make-ai-assistant__attachment video { max-height: 260px; max-width: 100%; object-fit: contain; }
1782
2036
  .make-ai-assistant__attachment audio { max-width: 100%; }
1783
- .make-ai-assistant__attachment-composer { font-size: var(--make-ai-internal-font-size-meta); max-height: 140px; overflow: auto; padding-bottom: 8px; }
1784
- .make-ai-assistant__attachment-composer input { max-width: 100%; }
1785
- .make-ai-assistant__attachment-composer ul { list-style: none; margin: 6px 0 0; padding: 0; }
1786
- .make-ai-assistant__attachment-composer li { align-items: center; display: flex; flex-wrap: wrap; gap: 4px; padding: 4px 0; }
2037
+
2038
+ .make-ai-assistant__attachment-composer {
2039
+ align-self: center;
2040
+ font-size: var(--make-ai-internal-font-size-meta);
2041
+ grid-column: 1;
2042
+ grid-row: 2;
2043
+ justify-self: start;
2044
+ position: relative;
2045
+ }
2046
+
2047
+ .make-ai-assistant__attachment-trigger {
2048
+ align-items: center;
2049
+ background: transparent;
2050
+ border: 1px solid transparent;
2051
+ border-radius: 50%;
2052
+ color: var(--make-ai-internal-text-secondary);
2053
+ cursor: pointer;
2054
+ display: flex;
2055
+ height: 34px;
2056
+ justify-content: center;
2057
+ padding: 0;
2058
+ width: 34px;
2059
+ }
2060
+
2061
+ .make-ai-assistant__attachment-trigger:hover,
2062
+ .make-ai-assistant__attachment-trigger[aria-expanded="true"] {
2063
+ background: var(--make-ai-internal-surface-strong);
2064
+ border-color: color-mix(in srgb, var(--make-ai-internal-accent) 24%, var(--make-ai-internal-border));
2065
+ color: var(--make-ai-internal-text);
2066
+ }
2067
+
2068
+ .make-ai-assistant__attachment-trigger svg,
2069
+ .make-ai-assistant__attachment-menu svg {
2070
+ fill: none;
2071
+ height: 18px;
2072
+ stroke: currentColor;
2073
+ stroke-linecap: round;
2074
+ stroke-linejoin: round;
2075
+ stroke-width: 1.7;
2076
+ width: 18px;
2077
+ }
2078
+
2079
+ .make-ai-assistant__attachment-menu {
2080
+ background: var(--make-ai-internal-surface);
2081
+ border: 1px solid var(--make-ai-internal-border);
2082
+ border-radius: 10px;
2083
+ bottom: calc(100% + 8px);
2084
+ box-shadow: 0 12px 28px color-mix(in srgb, var(--make-ai-internal-text) 12%, transparent);
2085
+ left: 0;
2086
+ min-width: 168px;
2087
+ padding: 5px;
2088
+ position: absolute;
2089
+ z-index: calc(var(--make-ai-internal-z-index) + 2);
2090
+ }
2091
+
2092
+ .make-ai-assistant__attachment-menu button {
2093
+ align-items: center;
2094
+ background: transparent;
2095
+ border: 0;
2096
+ border-radius: 7px;
2097
+ color: var(--make-ai-internal-text);
2098
+ cursor: pointer;
2099
+ display: flex;
2100
+ gap: 9px;
2101
+ min-height: 38px;
2102
+ padding: 0 10px;
2103
+ text-align: left;
2104
+ width: 100%;
2105
+ }
2106
+
2107
+ .make-ai-assistant__attachment-menu button:hover {
2108
+ background: var(--make-ai-internal-surface-strong);
2109
+ }
2110
+
2111
+ .make-ai-assistant__attachment-drafts {
2112
+ font-size: var(--make-ai-internal-font-size-meta);
2113
+ max-height: 140px;
2114
+ overflow: auto;
2115
+ padding-bottom: 8px;
2116
+ }
2117
+
2118
+ .make-ai-assistant__attachment-drafts ul {
2119
+ display: flex;
2120
+ flex-wrap: wrap;
2121
+ gap: 6px;
2122
+ list-style: none;
2123
+ margin: 0;
2124
+ padding: 0;
2125
+ }
2126
+
2127
+ .make-ai-assistant__attachment-drafts li {
2128
+ align-items: center;
2129
+ background: var(--make-ai-internal-surface);
2130
+ border: 1px solid var(--make-ai-internal-border);
2131
+ border-radius: 8px;
2132
+ display: flex;
2133
+ flex-wrap: wrap;
2134
+ gap: 4px;
2135
+ padding: 5px 7px;
2136
+ }
2137
+
2138
+ .make-ai-assistant__attachment-drafts button {
2139
+ background: transparent;
2140
+ border: 0;
2141
+ color: var(--make-ai-internal-accent);
2142
+ cursor: pointer;
2143
+ padding: 2px 4px;
2144
+ }
2145
+
1787
2146
  .make-ai-assistant__conversation-controls button:focus-visible,
1788
2147
  .make-ai-assistant__feedback button:focus-visible,
1789
2148
  .make-ai-assistant__attachment button:focus-visible,
1790
- .make-ai-assistant__attachment-composer button:focus-visible { outline: 2px solid var(--make-ai-internal-accent); outline-offset: 2px; }
2149
+ .make-ai-assistant__attachment-composer button:focus-visible,
2150
+ .make-ai-assistant__attachment-drafts button:focus-visible { outline: 2px solid var(--make-ai-internal-accent); outline-offset: 2px; }
1791
2151
 
1792
2152
  @media (prefers-reduced-motion: reduce) {
1793
2153
  .make-ai-assistant__drawer,
@@ -1807,4 +2167,8 @@ button.make-ai-artifact__record:hover { background: var(--make-ai-internal-accen
1807
2167
  .make-ai-assistant__process summary::after {
1808
2168
  transition: none;
1809
2169
  }
2170
+
2171
+ .make-ai-assistant__task-list-trigger svg:last-child {
2172
+ transition: none;
2173
+ }
1810
2174
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qfei-design/make-ai-assistant",
3
- "version": "0.2.10",
3
+ "version": "0.2.11",
4
4
  "description": "Platform-wide Make AI Assistant contracts, React shell, and context-aware artifact templates.",
5
5
  "type": "module",
6
6
  "sideEffects": [