@m6d/cortex-react 0.6.1 → 0.8.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
@@ -55,6 +55,14 @@
55
55
  monospace
56
56
  );
57
57
  --cortex-font-size: 0.8125rem;
58
+ /* These read --cortex-font-size (or the color named) when unset, so they ship
59
+ * unset: declaring one here gives that part its own value.
60
+ *
61
+ * --cortex-font-size-message: 0.875rem; message bubbles and the composer
62
+ * --cortex-font-size-header: 0.875rem; the chat and history titles
63
+ * --cortex-color-send-empty: transparent; the send button with nothing to send
64
+ * --cortex-color-send-empty-text: var(--cortex-color-text-muted);
65
+ */
58
66
  /* The widget's headings read --cortex-font-display and fall back to `inherit`,
59
67
  * so it ships unset on purpose — declaring it here is how you opt in:
60
68
  *
@@ -333,71 +341,6 @@
333
341
  overflow: hidden;
334
342
  }
335
343
 
336
- @keyframes cortex-working-slide-in {
337
- from {
338
- opacity: 0;
339
- transform: translateY(6px);
340
- }
341
- to {
342
- opacity: 1;
343
- transform: translateY(0);
344
- }
345
- }
346
- @keyframes cortex-dot-wave {
347
- 0%, 60%, 100% {
348
- transform: translateY(0) scale(1);
349
- opacity: 0.45;
350
- }
351
- 30% {
352
- transform: translateY(-5px) scale(1.2);
353
- opacity: 1;
354
- }
355
- }
356
- @keyframes cortex-working-shimmer {
357
- 0% {
358
- background-position: -200% center;
359
- }
360
- 100% {
361
- background-position: 200% center;
362
- }
363
- }
364
- .cortex-widget__working {
365
- flex-shrink: 0;
366
- padding: 0.5rem 1rem;
367
- display: flex;
368
- align-items: center;
369
- gap: 0.5rem;
370
- animation: cortex-working-slide-in 0.25s ease-out both;
371
- }
372
-
373
- .cortex-widget__working-dots {
374
- display: flex;
375
- align-items: center;
376
- gap: 4px;
377
- }
378
-
379
- .cortex-working-dot {
380
- display: block;
381
- width: 6px;
382
- height: 6px;
383
- border-radius: 9999px;
384
- background: var(--cortex-color-success);
385
- animation: cortex-dot-wave 1.4s ease-in-out infinite;
386
- }
387
- .cortex-working-dot:nth-child(2) {
388
- animation-delay: 0.15s;
389
- }
390
- .cortex-working-dot:nth-child(3) {
391
- animation-delay: 0.3s;
392
- }
393
-
394
- .cortex-widget__working-text {
395
- font-size: 0.75rem;
396
- font-weight: 500;
397
- letter-spacing: 0.01em;
398
- color: var(--cortex-color-success);
399
- }
400
-
401
344
  .cortex-widget__container--full {
402
345
  display: flex;
403
346
  flex-direction: row;
@@ -429,8 +372,13 @@
429
372
  .cortex-widget__container--full .cortex-widget__history-btn {
430
373
  display: none;
431
374
  }
375
+ @media (min-width: 769px) {
376
+ .cortex-widget__container--full > .cortex-widget__screen:nth-child(2) .cortex-widget__new-btn {
377
+ display: none;
378
+ }
379
+ }
432
380
  .cortex-widget__container--full .cortex-widget__chat-title {
433
- font-size: 0.875rem;
381
+ font-size: var(--cortex-font-size-header, 0.875rem);
434
382
  }
435
383
  .cortex-widget__container--full .cortex-widget__chat-header {
436
384
  background: var(--cortex-color-surface);
@@ -444,9 +392,6 @@
444
392
  .cortex-widget__container--full .cortex-widget__input-area {
445
393
  padding: 0.75rem 2rem 1.25rem;
446
394
  }
447
- .cortex-widget__container--full .cortex-widget__working {
448
- padding: 0.5rem 2rem;
449
- }
450
395
  @media (max-width: 768px) {
451
396
  .cortex-widget__container--full > .cortex-widget__screen:first-child {
452
397
  position: fixed;
@@ -496,9 +441,6 @@
496
441
  .cortex-widget__container--full .cortex-widget__input-area {
497
442
  padding: 0.75rem;
498
443
  }
499
- .cortex-widget__container--full .cortex-widget__working {
500
- padding: 0.5rem 1rem;
501
- }
502
444
  }
503
445
 
504
446
  @media (max-width: 768px) {
@@ -535,8 +477,7 @@
535
477
  background: var(--cortex-color-surface);
536
478
  }
537
479
 
538
- .cortex-widget__back-btn,
539
- .cortex-widget__history-btn {
480
+ .cortex-widget__header-btn {
540
481
  flex-shrink: 0;
541
482
  width: 2rem;
542
483
  height: 2rem;
@@ -550,8 +491,7 @@
550
491
  transition: color 0.15s, background-color 0.15s;
551
492
  color: var(--cortex-color-text-muted);
552
493
  }
553
- .cortex-widget__back-btn:hover,
554
- .cortex-widget__history-btn:hover {
494
+ .cortex-widget__header-btn:hover {
555
495
  color: var(--cortex-color-text);
556
496
  background: var(--cortex-color-surface-muted);
557
497
  }
@@ -567,7 +507,7 @@
567
507
 
568
508
  .cortex-widget__chat-title {
569
509
  font-family: var(--cortex-font-display, inherit);
570
- font-size: var(--cortex-font-size);
510
+ font-size: var(--cortex-font-size-header, var(--cortex-font-size));
571
511
  font-weight: 500;
572
512
  color: var(--cortex-color-text-strong);
573
513
  overflow: hidden;
@@ -731,13 +671,8 @@ cortex-llm-usage-chips {
731
671
  border-radius: calc(var(--cortex-radius) * 1.5);
732
672
  border: 1px solid var(--cortex-color-border);
733
673
  padding: 0.375rem;
734
- transition: border-color 0.15s, background-color 0.15s;
735
- }
736
- .cortex-widget__input-box--disabled {
737
- background: var(--cortex-color-surface-muted);
738
- }
739
- .cortex-widget__input-box--enabled {
740
674
  background: color-mix(in oklab, var(--cortex-color-surface-subtle) 45%, var(--cortex-color-surface));
675
+ transition: border-color 0.15s, background-color 0.15s;
741
676
  }
742
677
  .cortex-widget__input-box--enabled:focus-within {
743
678
  border-color: var(--cortex-color-border-strong);
@@ -749,16 +684,23 @@ cortex-llm-usage-chips {
749
684
  background: var(--cortex-color-surface-muted);
750
685
  }
751
686
 
752
- .cortex-widget__textarea {
753
- flex: 1;
687
+ .cortex-widget__textarea,
688
+ .cortex-widget__textarea:focus,
689
+ .cortex-widget__textarea:focus-visible,
690
+ .cortex-widget__textarea:disabled {
754
691
  background: transparent;
755
- resize: none;
756
692
  border: 0;
757
693
  outline: none;
758
- font-size: var(--cortex-font-size);
694
+ box-shadow: none;
695
+ }
696
+
697
+ .cortex-widget__textarea {
698
+ flex: 1;
699
+ resize: none;
700
+ font-size: var(--cortex-font-size-message, var(--cortex-font-size));
759
701
  padding: 0.375rem 0.5rem;
760
702
  min-height: 28px;
761
- max-height: calc(5.5 * var(--cortex-font-size) + 0.75rem);
703
+ max-height: calc(5.5 * var(--cortex-font-size-message, var(--cortex-font-size)) + 0.75rem);
762
704
  overflow-y: auto;
763
705
  line-height: 1.375;
764
706
  color: var(--cortex-color-text-strong);
@@ -772,7 +714,6 @@ cortex-llm-usage-chips {
772
714
  }
773
715
  .cortex-widget__textarea:disabled {
774
716
  cursor: not-allowed;
775
- border: 0;
776
717
  }
777
718
 
778
719
  .cortex-widget__input-actions {
@@ -879,8 +820,8 @@ cortex-llm-usage-chips {
879
820
  cursor: default;
880
821
  }
881
822
  .cortex-widget__send-btn--empty {
882
- background: var(--cortex-color-border);
883
- color: var(--cortex-color-text-muted);
823
+ background: var(--cortex-color-send-empty, transparent);
824
+ color: var(--cortex-color-send-empty-text, var(--cortex-color-text-muted));
884
825
  }
885
826
  .cortex-widget__send-btn--ready {
886
827
  background: var(--cortex-color-primary);
@@ -902,13 +843,13 @@ cortex-llm-usage-chips {
902
843
  align-items: center;
903
844
  gap: 0.75rem;
904
845
  }
905
- .cortex-widget__threads-header .cortex-widget__new-chat-btn {
846
+ .cortex-widget__threads-header .cortex-widget__new-btn {
906
847
  margin-inline-start: auto;
907
848
  }
908
849
 
909
850
  .cortex-widget__threads-title {
910
851
  font-family: var(--cortex-font-display, inherit);
911
- font-size: 0.9375rem;
852
+ font-size: var(--cortex-font-size-header, 0.9375rem);
912
853
  font-weight: 600;
913
854
  color: var(--cortex-color-text-heading);
914
855
  letter-spacing: -0.01em;
@@ -1201,22 +1142,167 @@ cortex-llm-usage-chips {
1201
1142
  .cortex-message-list {
1202
1143
  height: 100%;
1203
1144
  overflow-y: auto;
1145
+ overflow-x: hidden;
1204
1146
  width: 100%;
1205
1147
  padding: 1rem;
1206
1148
  }
1207
1149
 
1208
1150
  .cortex-message-list__content {
1151
+ position: relative;
1209
1152
  display: flex;
1210
1153
  flex-direction: column;
1211
1154
  gap: 0.5rem;
1212
1155
  }
1156
+ .cortex-message-list__content--settling {
1157
+ animation: cortex-content-settle 420ms cubic-bezier(0.76, 0, 0.24, 1) both;
1158
+ }
1213
1159
 
1160
+ @keyframes cortex-content-settle {
1161
+ from {
1162
+ translate: 0 var(--cortex-slide);
1163
+ }
1164
+ }
1165
+ .cortex-widget__screen > .cortex-send-flight {
1166
+ position: absolute;
1167
+ z-index: 2;
1168
+ margin: 0;
1169
+ max-width: none;
1170
+ pointer-events: none;
1171
+ animation: cortex-send-fade 80ms linear both, cortex-send-fly 420ms cubic-bezier(0.76, 0, 0.24, 1) both;
1172
+ }
1173
+
1174
+ @keyframes cortex-send-fade {
1175
+ from {
1176
+ opacity: 0;
1177
+ }
1178
+ }
1179
+ @keyframes cortex-send-fly {
1180
+ from {
1181
+ translate: var(--cortex-fly-x) var(--cortex-fly-y);
1182
+ }
1183
+ }
1184
+ .cortex-working-thinking {
1185
+ padding-inline-start: 2rem;
1186
+ --cortex-reveal-from: -1rem;
1187
+ --cortex-reveal-mask: linear-gradient(to right, #000 40%, rgb(0 0 0 / 0.35) 60%);
1188
+ --cortex-reveal-start: 100%;
1189
+ --cortex-reveal-end: 0%;
1190
+ animation: cortex-part-reveal 700ms cubic-bezier(0.22, 1, 0.36, 1) backwards;
1191
+ }
1192
+ [dir=rtl] .cortex-working-thinking {
1193
+ --cortex-reveal-from: 1rem;
1194
+ --cortex-reveal-mask: linear-gradient(to left, #000 40%, rgb(0 0 0 / 0.35) 60%);
1195
+ --cortex-reveal-start: 0%;
1196
+ --cortex-reveal-end: 100%;
1197
+ }
1198
+
1199
+ .cortex-working-avatar {
1200
+ position: absolute;
1201
+ top: 0;
1202
+ inset-inline-start: 0;
1203
+ z-index: 1;
1204
+ width: 1.5rem;
1205
+ height: 1.5rem;
1206
+ display: flex;
1207
+ align-items: center;
1208
+ justify-content: center;
1209
+ border-radius: 9999px;
1210
+ background: var(--cortex-color-accent);
1211
+ color: var(--cortex-color-primary-foreground);
1212
+ translate: 0 var(--cortex-avatar-y, 0);
1213
+ visibility: hidden;
1214
+ pointer-events: none;
1215
+ }
1216
+ .cortex-working-avatar svg {
1217
+ width: 0.875rem;
1218
+ height: 0.875rem;
1219
+ }
1220
+ .cortex-working-avatar--shown {
1221
+ visibility: visible;
1222
+ transition: translate 420ms cubic-bezier(0.76, 0, 0.24, 1);
1223
+ animation: cortex-avatar-in 700ms cubic-bezier(0.16, 1, 0.3, 1) both;
1224
+ }
1225
+ .cortex-working-avatar--leaving {
1226
+ animation: cortex-avatar-out 360ms cubic-bezier(0.5, 0, 0.75, 0) 120ms both;
1227
+ }
1228
+
1229
+ .cortex-working-avatar__ring {
1230
+ position: absolute;
1231
+ inset: -0.25rem;
1232
+ border-radius: 9999px;
1233
+ border: 1.5px solid color-mix(in oklab, var(--cortex-color-accent) 18%, transparent);
1234
+ border-top-color: var(--cortex-color-accent);
1235
+ border-right-color: color-mix(in oklab, var(--cortex-color-accent) 45%, transparent);
1236
+ }
1237
+ .cortex-working-avatar--shown .cortex-working-avatar__ring {
1238
+ animation: cortex-tool-spin 1s linear infinite;
1239
+ }
1240
+ .cortex-working-avatar--leaving .cortex-working-avatar__ring {
1241
+ animation: cortex-avatar-ring-out 220ms ease-out both;
1242
+ }
1243
+
1244
+ @keyframes cortex-avatar-in {
1245
+ from {
1246
+ opacity: 0;
1247
+ transform: translateY(2.5rem) scale(0.7);
1248
+ }
1249
+ }
1250
+ @keyframes cortex-avatar-out {
1251
+ to {
1252
+ opacity: 0;
1253
+ transform: scale(0.4);
1254
+ }
1255
+ }
1256
+ @keyframes cortex-avatar-ring-out {
1257
+ to {
1258
+ opacity: 0;
1259
+ }
1260
+ }
1214
1261
  .cortex-message {
1215
1262
  min-width: 0;
1263
+ transition: margin-block-start 420ms cubic-bezier(0.76, 0, 0.24, 1);
1216
1264
  }
1217
1265
  .cortex-message:empty {
1218
1266
  display: none;
1219
1267
  }
1268
+ .cortex-message:has(.cortex-message-part--folded):not(:has(.cortex-message-part:not(.cortex-message-part--folded))) {
1269
+ margin-block-start: -0.5rem;
1270
+ transition-delay: 600ms;
1271
+ }
1272
+
1273
+ .cortex-text-bubble--assistant,
1274
+ .cortex-subtle-activity,
1275
+ .cortex-tool-pill,
1276
+ .cortex-tool-pill .cortex-tool-pill__icon {
1277
+ transition: translate 420ms cubic-bezier(0.76, 0, 0.24, 1) 160ms;
1278
+ }
1279
+
1280
+ .cortex-message--working-turn .cortex-text-bubble--assistant,
1281
+ .cortex-message--working-turn .cortex-subtle-activity,
1282
+ .cortex-message--working-turn .cortex-tool-pill,
1283
+ .cortex-message--working-turn .cortex-tool-pill .cortex-tool-pill__icon {
1284
+ transition-delay: 0s;
1285
+ }
1286
+ .cortex-message--working-turn .cortex-text-bubble--assistant,
1287
+ .cortex-message--working-turn .cortex-subtle-activity {
1288
+ translate: 2rem;
1289
+ }
1290
+ [dir=rtl] .cortex-message--working-turn .cortex-text-bubble--assistant,
1291
+ [dir=rtl] .cortex-message--working-turn .cortex-subtle-activity {
1292
+ translate: -2rem;
1293
+ }
1294
+ .cortex-message--working-turn .cortex-tool-pill {
1295
+ translate: 0.875rem;
1296
+ }
1297
+ [dir=rtl] .cortex-message--working-turn .cortex-tool-pill {
1298
+ translate: -0.875rem;
1299
+ }
1300
+ .cortex-message--working-turn .cortex-tool-pill .cortex-tool-pill__icon {
1301
+ translate: -0.5rem;
1302
+ }
1303
+ [dir=rtl] .cortex-message--working-turn .cortex-tool-pill .cortex-tool-pill__icon {
1304
+ translate: 0.5rem;
1305
+ }
1220
1306
 
1221
1307
  .cortex-message-parts {
1222
1308
  width: 100%;
@@ -1259,25 +1345,68 @@ cortex-llm-usage-chips {
1259
1345
  }
1260
1346
 
1261
1347
  .cortex-message-part {
1262
- display: block;
1348
+ display: grid;
1349
+ grid-template-columns: minmax(0, 1fr);
1350
+ grid-template-rows: 1fr;
1263
1351
  min-width: 0;
1352
+ transition: grid-template-rows 420ms cubic-bezier(0.76, 0, 0.24, 1), margin-block-end 420ms cubic-bezier(0.76, 0, 0.24, 1), opacity 300ms ease, visibility 0s, overflow 0s 420ms allow-discrete;
1353
+ }
1354
+ .cortex-message-part > * {
1355
+ min-height: 0;
1264
1356
  }
1265
1357
  .cortex-message-part:empty {
1266
1358
  display: none;
1267
1359
  }
1360
+ .cortex-message-part--folded {
1361
+ grid-template-rows: 0fr;
1362
+ margin-block-end: -0.5rem;
1363
+ opacity: 0;
1364
+ overflow: clip;
1365
+ visibility: hidden;
1366
+ transition-delay: 600ms, 600ms, 600ms, 1020ms, 0s;
1367
+ }
1368
+
1369
+ [data-cortex-frontier] .cortex-tool-pill__spinner {
1370
+ visibility: hidden;
1371
+ }
1372
+ [data-cortex-frontier] .cortex-subtle-activity__dots {
1373
+ display: none;
1374
+ }
1268
1375
 
1269
1376
  .cortex-message-part--animated {
1270
- animation: cortex-part-fade-in-up 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) both;
1377
+ --cortex-reveal-from: -1rem;
1378
+ --cortex-reveal-mask: linear-gradient(to right, #000 40%, rgb(0 0 0 / 0.35) 60%);
1379
+ --cortex-reveal-start: 100%;
1380
+ --cortex-reveal-end: 0%;
1381
+ animation: cortex-part-reveal 700ms cubic-bezier(0.22, 1, 0.36, 1) backwards;
1382
+ }
1383
+ [dir=rtl] .cortex-message-part--animated {
1384
+ --cortex-reveal-from: 1rem;
1385
+ --cortex-reveal-mask: linear-gradient(to left, #000 40%, rgb(0 0 0 / 0.35) 60%);
1386
+ --cortex-reveal-start: 0%;
1387
+ --cortex-reveal-end: 100%;
1271
1388
  }
1272
1389
 
1273
- @keyframes cortex-part-fade-in-up {
1390
+ @keyframes cortex-part-reveal {
1274
1391
  from {
1275
1392
  opacity: 0;
1276
- transform: translateY(30px);
1393
+ transform: translateX(var(--cortex-reveal-from));
1394
+ filter: blur(5px);
1395
+ mask-image: var(--cortex-reveal-mask);
1396
+ mask-size: 300% 100%;
1397
+ mask-repeat: no-repeat;
1398
+ mask-position: var(--cortex-reveal-start) 0;
1277
1399
  }
1278
- to {
1400
+ 40% {
1279
1401
  opacity: 1;
1280
- transform: translateY(0);
1402
+ }
1403
+ to {
1404
+ transform: none;
1405
+ filter: none;
1406
+ mask-image: var(--cortex-reveal-mask);
1407
+ mask-size: 300% 100%;
1408
+ mask-repeat: no-repeat;
1409
+ mask-position: var(--cortex-reveal-end) 0;
1281
1410
  }
1282
1411
  }
1283
1412
  .cortex-unhandled-type {
@@ -1308,7 +1437,7 @@ cortex-llm-usage-chips {
1308
1437
  max-width: 80%;
1309
1438
  min-width: 0;
1310
1439
  overflow-wrap: anywhere;
1311
- font-size: var(--cortex-font-size);
1440
+ font-size: var(--cortex-font-size-message, var(--cortex-font-size));
1312
1441
  line-height: 1.625;
1313
1442
  padding: 1rem;
1314
1443
  border-radius: calc(var(--cortex-radius) * 2);
@@ -1585,6 +1714,92 @@ cortex-llm-usage-chips {
1585
1714
  color: var(--cortex-color-text-muted);
1586
1715
  }
1587
1716
 
1717
+ .cortex-table-block {
1718
+ display: block;
1719
+ margin: 0.5em 0 0.75em;
1720
+ }
1721
+ .cortex-table-block th {
1722
+ white-space: nowrap;
1723
+ }
1724
+ .cortex-table-block td {
1725
+ max-width: 20rem;
1726
+ }
1727
+ .cortex-table-block table {
1728
+ margin: 0;
1729
+ }
1730
+
1731
+ .cortex-table-block__actions {
1732
+ display: flex;
1733
+ justify-content: flex-end;
1734
+ gap: 0.125rem;
1735
+ min-height: 1.75rem;
1736
+ margin-bottom: 0.25rem;
1737
+ opacity: 0;
1738
+ transition: opacity 0.15s;
1739
+ }
1740
+ .cortex-table-block:hover .cortex-table-block__actions, .cortex-table-block:focus-within .cortex-table-block__actions {
1741
+ opacity: 1;
1742
+ }
1743
+ @media (hover: none) {
1744
+ .cortex-table-block__actions {
1745
+ opacity: 1;
1746
+ }
1747
+ }
1748
+
1749
+ .cortex-table-block__action {
1750
+ flex-shrink: 0;
1751
+ width: 2rem;
1752
+ height: 2rem;
1753
+ border-radius: calc(var(--cortex-radius) * 0.75);
1754
+ display: flex;
1755
+ align-items: center;
1756
+ justify-content: center;
1757
+ background: transparent;
1758
+ border: 0;
1759
+ cursor: pointer;
1760
+ transition: color 0.15s, background-color 0.15s;
1761
+ width: 1.75rem;
1762
+ height: 1.75rem;
1763
+ color: var(--cortex-color-text-muted);
1764
+ }
1765
+ .cortex-table-block__action:hover {
1766
+ color: var(--cortex-color-text);
1767
+ background: var(--cortex-color-hover);
1768
+ }
1769
+
1770
+ .cortex-table-block__dialog {
1771
+ width: min(72rem, 100vw - 2rem);
1772
+ max-width: none;
1773
+ max-height: calc(100vh - 2rem);
1774
+ margin: auto;
1775
+ padding: 0;
1776
+ border: 1px solid var(--cortex-color-border);
1777
+ border-radius: calc(var(--cortex-radius) * 1.5);
1778
+ background: var(--cortex-color-surface);
1779
+ color: var(--cortex-color-text-strong);
1780
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
1781
+ }
1782
+ .cortex-table-block__dialog[open] {
1783
+ display: flex;
1784
+ flex-direction: column;
1785
+ }
1786
+ .cortex-table-block__dialog::backdrop {
1787
+ background: rgba(0, 0, 0, 0.4);
1788
+ }
1789
+
1790
+ .cortex-table-block__dialog-head {
1791
+ display: flex;
1792
+ justify-content: flex-end;
1793
+ gap: 0.125rem;
1794
+ padding: 0.375rem;
1795
+ border-bottom: 1px solid var(--cortex-color-border);
1796
+ }
1797
+
1798
+ .cortex-table-block__dialog-body {
1799
+ overflow: auto;
1800
+ padding: 0 1rem;
1801
+ }
1802
+
1588
1803
  .cortex-reasoning-details {
1589
1804
  width: 100%;
1590
1805
  border-radius: var(--cortex-radius);
@@ -2207,51 +2422,125 @@ details[open] > summary .cortex-debug-tool__chevron {
2207
2422
  font-variant-numeric: tabular-nums;
2208
2423
  }
2209
2424
 
2210
- .cortex-tool-pill--gated {
2425
+ .cortex-approval-card {
2426
+ display: block;
2427
+ max-width: min(100%, 28rem);
2428
+ margin: 0.25rem 0;
2211
2429
  border: 1px solid var(--cortex-color-border);
2212
- border-radius: 9999px;
2213
- background: var(--cortex-color-surface-subtle);
2214
- padding: 0.3rem 0.75rem 0.3rem 0.65rem;
2215
- gap: 0.6rem;
2430
+ border-radius: var(--cortex-radius);
2431
+ background: var(--cortex-color-surface);
2432
+ overflow: hidden;
2216
2433
  }
2217
-
2218
- .cortex-tool-pill--asking {
2219
- padding-inline-end: 0.3rem;
2220
- flex-wrap: wrap;
2434
+ .cortex-approval-card--asking {
2435
+ border-color: color-mix(in oklab, var(--cortex-color-accent) 45%, var(--cortex-color-border));
2436
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--cortex-color-accent) 10%, transparent);
2221
2437
  }
2222
2438
 
2223
- .cortex-tool-pill__dot {
2224
- width: 0.5rem;
2225
- height: 0.5rem;
2226
- border-radius: 9999px;
2227
- background: var(--cortex-color-accent);
2439
+ .cortex-approval-card__head {
2440
+ display: flex;
2441
+ align-items: center;
2442
+ gap: 0.5rem;
2443
+ padding: 0.625rem 0.75rem 0;
2444
+ font-size: 0.75rem;
2445
+ font-weight: 600;
2446
+ color: var(--cortex-color-accent);
2228
2447
  }
2229
2448
 
2230
- .cortex-tool-pill--gated .cortex-tool-pill__title {
2449
+ .cortex-approval-card__sentence {
2450
+ margin: 0;
2451
+ padding: 0.375rem 0.75rem 0.5rem;
2452
+ font-weight: 600;
2231
2453
  color: var(--cortex-color-text-heading);
2232
- white-space: normal;
2233
2454
  }
2234
2455
 
2235
- .cortex-tool-pill__actions {
2456
+ .cortex-approval-card__sentence--full {
2457
+ padding-top: 0;
2458
+ font-weight: 400;
2459
+ color: var(--cortex-color-text-strong);
2460
+ }
2461
+
2462
+ .cortex-approval-card__rows {
2463
+ display: grid;
2464
+ grid-template-columns: fit-content(40%) minmax(0, 1fr);
2465
+ gap: 0.1875rem 0.75rem;
2466
+ margin: 0;
2467
+ padding: 0 0.75rem 0.75rem;
2468
+ font-size: 0.78125rem;
2469
+ }
2470
+ .cortex-approval-card__rows dt {
2471
+ color: var(--cortex-color-text-secondary);
2472
+ overflow-wrap: anywhere;
2473
+ }
2474
+ .cortex-approval-card__rows dd {
2475
+ max-height: 6rem;
2476
+ margin: 0;
2477
+ overflow-y: auto;
2478
+ white-space: pre-wrap;
2479
+ color: var(--cortex-color-text-strong);
2480
+ overflow-wrap: anywhere;
2481
+ }
2482
+
2483
+ .cortex-approval-card__foot {
2236
2484
  display: flex;
2237
- gap: 0.3rem;
2238
- margin-inline-start: 0.25rem;
2485
+ gap: 0.5rem;
2486
+ padding: 0.625rem 0.75rem;
2487
+ border-top: 1px solid var(--cortex-color-border);
2488
+ background: var(--cortex-color-surface-subtle);
2239
2489
  }
2240
2490
 
2241
- .cortex-tool-pill__action {
2491
+ .cortex-approval-card__button {
2242
2492
  border: 1px solid var(--cortex-color-border-strong);
2243
- border-radius: 9999px;
2244
- background: none;
2245
- padding: 4px 11px;
2493
+ border-radius: calc(var(--cortex-radius) * 0.75);
2494
+ background: var(--cortex-color-surface);
2495
+ padding: 0.375rem 0.875rem;
2246
2496
  font: inherit;
2247
- font-size: 12.5px;
2248
- color: var(--cortex-color-text-secondary);
2497
+ font-size: 0.8125rem;
2498
+ font-weight: 500;
2499
+ color: var(--cortex-color-text-strong);
2249
2500
  cursor: pointer;
2250
2501
  }
2251
- .cortex-tool-pill__action--approve {
2252
- background: var(--cortex-color-accent);
2502
+ .cortex-approval-card__button--approve {
2253
2503
  border-color: var(--cortex-color-accent);
2254
- color: #fff;
2504
+ background: var(--cortex-color-accent);
2505
+ color: var(--cortex-color-primary-foreground);
2506
+ }
2507
+
2508
+ .cortex-approval-card__line {
2509
+ display: flex;
2510
+ align-items: center;
2511
+ gap: 0.5rem;
2512
+ padding: 0.5rem 0.75rem;
2513
+ font-size: 0.8125rem;
2514
+ color: var(--cortex-color-text-secondary);
2515
+ }
2516
+ .cortex-approval-card__line .cortex-tool-pill__icon {
2517
+ flex-shrink: 0;
2518
+ }
2519
+
2520
+ .cortex-approval-card__decision {
2521
+ font-weight: 600;
2522
+ color: var(--cortex-color-text-strong);
2523
+ }
2524
+
2525
+ .cortex-approval-card__summary {
2526
+ min-width: 0;
2527
+ flex: 1;
2528
+ overflow: hidden;
2529
+ text-overflow: ellipsis;
2530
+ white-space: nowrap;
2531
+ }
2532
+
2533
+ .cortex-approval-card__details {
2534
+ flex-shrink: 0;
2535
+ border: 0;
2536
+ background: none;
2537
+ padding: 0;
2538
+ font: inherit;
2539
+ font-size: 0.75rem;
2540
+ color: var(--cortex-color-text-secondary);
2541
+ text-decoration: underline;
2542
+ text-underline-offset: 2px;
2543
+ cursor: pointer;
2255
2544
  }
2256
2545
 
2257
2546
  .cortex-tool-fold {
@@ -3375,7 +3664,9 @@ html[dir=ltr] .cortex-llm-inspector__trigger {
3375
3664
  .cortex-widget *::before,
3376
3665
  .cortex-widget *::after {
3377
3666
  animation-duration: 0.01ms !important;
3667
+ animation-delay: 0s !important;
3378
3668
  animation-iteration-count: 1 !important;
3379
3669
  transition-duration: 0.01ms !important;
3670
+ transition-delay: 0s !important;
3380
3671
  }
3381
3672
  }