@webskill/chatbot 0.6.0 → 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/README.md CHANGED
@@ -154,9 +154,10 @@ so a symbol cannot be quietly downgraded — the change shows up in the diff.
154
154
  `configureA2uiMarkdown`, the `probe*` helpers, `RendererKind`,
155
155
  `RendererCapability` and `DEFAULT_RENDERER_CAPABILITIES`. Their shape
156
156
  tracks upstream ecosystems this package does not own.
157
- - **Surfaces introduced in this release** — `ChatAttachmentInput` and
158
- `ChatAttachmentMeta` (multimodal attachments), which no consumer has
159
- exercised yet.
157
+ - **Surfaces not yet exercised by consumers** — `ChatAttachmentInput` and
158
+ `ChatAttachmentMeta` (multimodal attachments), `ChatThinking` and
159
+ `ChatTokenUsage` (thinking segments and token usage persisted on messages,
160
+ 0.7.0), and `pickUsableLlmEntry` (usable-model entry criterion, 0.7.0).
160
161
  - **`RunSnapshot`** — the resume snapshot format, `@experimental` in
161
162
  `@webskill/sdk` for the same reason.
162
163
 
package/dist/chatbot.css CHANGED
@@ -11,7 +11,6 @@
11
11
  --container-sm: 24rem;
12
12
  --container-md: 28rem;
13
13
  --container-2xl: 42rem;
14
- --container-3xl: 48rem;
15
14
  --text-xs: 0.75rem;
16
15
  --text-xs--line-height: calc(1 / 0.75);
17
16
  --text-sm: 0.875rem;
@@ -279,9 +278,6 @@
279
278
  .right-2 {
280
279
  right: calc(var(--spacing) * 2);
281
280
  }
282
- .right-2\.5 {
283
- right: calc(var(--spacing) * 2.5);
284
- }
285
281
  .right-3 {
286
282
  right: calc(var(--spacing) * 3);
287
283
  }
@@ -381,6 +377,9 @@
381
377
  .my-3 {
382
378
  margin-block: calc(var(--spacing) * 3);
383
379
  }
380
+ .ms-1 {
381
+ margin-inline-start: var(--spacing);
382
+ }
384
383
  .ms-auto {
385
384
  margin-inline-start: auto;
386
385
  }
@@ -429,6 +428,9 @@
429
428
  .table {
430
429
  display: table;
431
430
  }
431
+ .aspect-\[4\/3\] {
432
+ aspect-ratio: 4/3;
433
+ }
432
434
  .aspect-square {
433
435
  aspect-ratio: 1 / 1;
434
436
  }
@@ -475,6 +477,10 @@
475
477
  width: calc(var(--spacing) * 9);
476
478
  height: calc(var(--spacing) * 9);
477
479
  }
480
+ .size-\[3px\] {
481
+ width: 3px;
482
+ height: 3px;
483
+ }
478
484
  .size-full {
479
485
  width: 100%;
480
486
  height: 100%;
@@ -482,6 +488,9 @@
482
488
  .h-0 {
483
489
  height: 0px;
484
490
  }
491
+ .h-2 {
492
+ height: calc(var(--spacing) * 2);
493
+ }
485
494
  .h-2\.5 {
486
495
  height: calc(var(--spacing) * 2.5);
487
496
  }
@@ -527,6 +536,9 @@
527
536
  .max-h-\[calc\(100dvh-2rem\)\] {
528
537
  max-height: calc(100dvh - 2rem);
529
538
  }
539
+ .max-h-\[var\(--radix-select-content-available-height\)\] {
540
+ max-height: var(--radix-select-content-available-height);
541
+ }
530
542
  .min-h-0 {
531
543
  min-height: 0px;
532
544
  }
@@ -572,9 +584,15 @@
572
584
  .w-40 {
573
585
  width: calc(var(--spacing) * 40);
574
586
  }
587
+ .w-48 {
588
+ width: calc(var(--spacing) * 48);
589
+ }
575
590
  .w-72 {
576
591
  width: calc(var(--spacing) * 72);
577
592
  }
593
+ .w-80 {
594
+ width: calc(var(--spacing) * 80);
595
+ }
578
596
  .w-\[80\%\] {
579
597
  width: 80%;
580
598
  }
@@ -599,15 +617,15 @@
599
617
  .max-w-2xl {
600
618
  max-width: var(--container-2xl);
601
619
  }
602
- .max-w-3xl {
603
- max-width: var(--container-3xl);
604
- }
605
620
  .max-w-48 {
606
621
  max-width: calc(var(--spacing) * 48);
607
622
  }
608
623
  .max-w-72 {
609
624
  max-width: calc(var(--spacing) * 72);
610
625
  }
626
+ .max-w-\[calc\(100vw-2rem\)\] {
627
+ max-width: calc(100vw - 2rem);
628
+ }
611
629
  .max-w-full {
612
630
  max-width: 100%;
613
631
  }
@@ -623,9 +641,6 @@
623
641
  .min-w-5 {
624
642
  min-width: calc(var(--spacing) * 5);
625
643
  }
626
- .min-w-20 {
627
- min-width: calc(var(--spacing) * 20);
628
- }
629
644
  .min-w-32 {
630
645
  min-width: calc(var(--spacing) * 32);
631
646
  }
@@ -635,6 +650,9 @@
635
650
  .min-w-44 {
636
651
  min-width: calc(var(--spacing) * 44);
637
652
  }
653
+ .min-w-\[var\(--radix-select-trigger-width\)\] {
654
+ min-width: var(--radix-select-trigger-width);
655
+ }
638
656
  .min-w-max {
639
657
  min-width: max-content;
640
658
  }
@@ -709,20 +727,26 @@
709
727
  .resize-y {
710
728
  resize: vertical;
711
729
  }
730
+ .snap-x {
731
+ scroll-snap-type: x var(--tw-scroll-snap-strictness);
732
+ }
733
+ .snap-mandatory {
734
+ --tw-scroll-snap-strictness: mandatory;
735
+ }
736
+ .snap-start {
737
+ scroll-snap-align: start;
738
+ }
712
739
  .list-decimal {
713
740
  list-style-type: decimal;
714
741
  }
715
742
  .list-disc {
716
743
  list-style-type: disc;
717
744
  }
718
- .appearance-none {
719
- appearance: none;
720
- }
721
745
  .grid-cols-1 {
722
746
  grid-template-columns: repeat(1, minmax(0, 1fr));
723
747
  }
724
- .grid-cols-\[auto_auto_auto\] {
725
- grid-template-columns: auto auto auto;
748
+ .grid-cols-\[auto_1fr\] {
749
+ grid-template-columns: auto 1fr;
726
750
  }
727
751
  .flex-col {
728
752
  flex-direction: column;
@@ -778,11 +802,20 @@
778
802
  .gap-4 {
779
803
  gap: calc(var(--spacing) * 4);
780
804
  }
805
+ .gap-\[3px\] {
806
+ gap: 3px;
807
+ }
781
808
  :where(.space-y-1 > :not(:last-child)) {
782
809
  --tw-space-y-reverse: 0;
783
810
  margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
784
811
  margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));
785
812
  }
813
+ .gap-x-4 {
814
+ column-gap: calc(var(--spacing) * 4);
815
+ }
816
+ .gap-y-1 {
817
+ row-gap: var(--spacing);
818
+ }
786
819
  :where(.divide-y > :not(:last-child)) {
787
820
  --tw-divide-y-reverse: 0;
788
821
  border-bottom-style: var(--tw-border-style);
@@ -897,6 +930,10 @@
897
930
  border-left-style: var(--tw-border-style);
898
931
  border-left-width: 1px;
899
932
  }
933
+ .border-l-2 {
934
+ border-left-style: var(--tw-border-style);
935
+ border-left-width: 2px;
936
+ }
900
937
  .border-dashed {
901
938
  --tw-border-style: dashed;
902
939
  border-style: dashed;
@@ -985,18 +1022,6 @@
985
1022
  .bg-destructive-soft {
986
1023
  background-color: var(--destructive-soft);
987
1024
  }
988
- .bg-foreground\/35 {
989
- background-color: var(--foreground);
990
- @supports (color: color-mix(in lab, red, red)) {
991
- background-color: color-mix(in oklab, var(--foreground) 35%, transparent);
992
- }
993
- }
994
- .bg-foreground\/45 {
995
- background-color: var(--foreground);
996
- @supports (color: color-mix(in lab, red, red)) {
997
- background-color: color-mix(in oklab, var(--foreground) 45%, transparent);
998
- }
999
- }
1000
1025
  .bg-info {
1001
1026
  background-color: var(--info);
1002
1027
  }
@@ -1006,12 +1031,6 @@
1006
1031
  .bg-ink {
1007
1032
  background-color: var(--foreground);
1008
1033
  }
1009
- .bg-ink\/35 {
1010
- background-color: var(--foreground);
1011
- @supports (color: color-mix(in lab, red, red)) {
1012
- background-color: color-mix(in oklab, var(--foreground) 35%, transparent);
1013
- }
1014
- }
1015
1034
  .bg-muted {
1016
1035
  background-color: var(--muted-foreground);
1017
1036
  }
@@ -1024,6 +1043,12 @@
1024
1043
  .bg-primary {
1025
1044
  background-color: var(--primary);
1026
1045
  }
1046
+ .bg-scrim {
1047
+ background-color: var(--scrim);
1048
+ }
1049
+ .bg-secondary {
1050
+ background-color: var(--secondary);
1051
+ }
1027
1052
  .bg-sidebar {
1028
1053
  background-color: var(--sidebar);
1029
1054
  }
@@ -1054,6 +1079,9 @@
1054
1079
  .fill-ink {
1055
1080
  fill: var(--foreground);
1056
1081
  }
1082
+ .object-cover {
1083
+ object-fit: cover;
1084
+ }
1057
1085
  .p-0 {
1058
1086
  padding: 0px;
1059
1087
  }
@@ -1072,6 +1100,9 @@
1072
1100
  .p-4 {
1073
1101
  padding: calc(var(--spacing) * 4);
1074
1102
  }
1103
+ .p-5 {
1104
+ padding: calc(var(--spacing) * 5);
1105
+ }
1075
1106
  .px-1 {
1076
1107
  padding-inline: var(--spacing);
1077
1108
  }
@@ -1156,9 +1187,15 @@
1156
1187
  .pb-4 {
1157
1188
  padding-bottom: calc(var(--spacing) * 4);
1158
1189
  }
1190
+ .pl-2 {
1191
+ padding-left: calc(var(--spacing) * 2);
1192
+ }
1159
1193
  .pl-3 {
1160
1194
  padding-left: calc(var(--spacing) * 3);
1161
1195
  }
1196
+ .pl-4 {
1197
+ padding-left: calc(var(--spacing) * 4);
1198
+ }
1162
1199
  .pl-5 {
1163
1200
  padding-left: calc(var(--spacing) * 5);
1164
1201
  }
@@ -1247,9 +1284,6 @@
1247
1284
  .whitespace-pre-wrap {
1248
1285
  white-space: pre-wrap;
1249
1286
  }
1250
- .text-background {
1251
- color: var(--background);
1252
- }
1253
1287
  .text-canvas {
1254
1288
  color: var(--background);
1255
1289
  }
@@ -1304,6 +1338,9 @@
1304
1338
  .italic {
1305
1339
  font-style: italic;
1306
1340
  }
1341
+ .not-italic {
1342
+ font-style: normal;
1343
+ }
1307
1344
  .tabular-nums {
1308
1345
  --tw-numeric-spacing: tabular-nums;
1309
1346
  font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
@@ -1422,6 +1459,10 @@
1422
1459
  -webkit-user-select: none;
1423
1460
  user-select: none;
1424
1461
  }
1462
+ .select-text {
1463
+ -webkit-user-select: text;
1464
+ user-select: text;
1465
+ }
1425
1466
  .group-focus-within\:opacity-100:is(:where(.group):focus-within *) {
1426
1467
  opacity: 100%;
1427
1468
  }
@@ -1429,6 +1470,9 @@
1429
1470
  opacity: 100%;
1430
1471
  }
1431
1472
  @media (hover: hover) {
1473
+ .group-hover\:bg-border:is(:where(.group):hover *) {
1474
+ background-color: var(--border);
1475
+ }
1432
1476
  .group-hover\:opacity-100:is(:where(.group):hover *) {
1433
1477
  opacity: 100%;
1434
1478
  }
@@ -1511,6 +1555,39 @@
1511
1555
  .peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size="sm"] ~ *) {
1512
1556
  top: var(--spacing);
1513
1557
  }
1558
+ .file\:mr-3::file-selector-button {
1559
+ margin-right: calc(var(--spacing) * 3);
1560
+ }
1561
+ .file\:cursor-pointer::file-selector-button {
1562
+ cursor: pointer;
1563
+ }
1564
+ .file\:rounded-md::file-selector-button {
1565
+ border-radius: calc(var(--radius) - 2px);
1566
+ }
1567
+ .file\:border-0::file-selector-button {
1568
+ border-style: var(--tw-border-style);
1569
+ border-width: 0px;
1570
+ }
1571
+ .file\:bg-primary::file-selector-button {
1572
+ background-color: var(--primary);
1573
+ }
1574
+ .file\:px-3::file-selector-button {
1575
+ padding-inline: calc(var(--spacing) * 3);
1576
+ }
1577
+ .file\:py-1::file-selector-button {
1578
+ padding-block: var(--spacing);
1579
+ }
1580
+ .file\:text-sm::file-selector-button {
1581
+ font-size: var(--text-sm);
1582
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1583
+ }
1584
+ .file\:font-medium::file-selector-button {
1585
+ --tw-font-weight: var(--font-weight-medium);
1586
+ font-weight: var(--font-weight-medium);
1587
+ }
1588
+ .file\:text-primary-foreground::file-selector-button {
1589
+ color: var(--primary-foreground);
1590
+ }
1514
1591
  .placeholder\:text-muted::placeholder {
1515
1592
  color: var(--muted-foreground);
1516
1593
  }
@@ -1581,12 +1658,15 @@
1581
1658
  .hover\:text-sidebar-accent-foreground:hover {
1582
1659
  color: var(--sidebar-accent-foreground);
1583
1660
  }
1584
- .hover\:opacity-85:hover {
1585
- opacity: 85%;
1586
- }
1587
1661
  .hover\:opacity-90:hover {
1588
1662
  opacity: 90%;
1589
1663
  }
1664
+ .hover\:file\:bg-primary\/90:hover::file-selector-button {
1665
+ background-color: var(--primary);
1666
+ @supports (color: color-mix(in lab, red, red)) {
1667
+ background-color: color-mix(in oklab, var(--primary) 90%, transparent);
1668
+ }
1669
+ }
1590
1670
  }
1591
1671
  .focus\:border-ring:focus {
1592
1672
  border-color: var(--ring);
@@ -1688,8 +1768,8 @@
1688
1768
  .data-dragging\:bg-subtle[data-dragging] {
1689
1769
  background-color: var(--accent);
1690
1770
  }
1691
- .data-\[active\=true\]\:bg-sidebar-accent[data-active="true"] {
1692
- background-color: var(--sidebar-accent);
1771
+ .data-\[active\=true\]\:bg-subtle[data-active="true"] {
1772
+ background-color: var(--accent);
1693
1773
  }
1694
1774
  .data-\[active\=true\]\:font-medium[data-active="true"] {
1695
1775
  --tw-font-weight: var(--font-weight-medium);
@@ -1725,6 +1805,9 @@
1725
1805
  .data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"] {
1726
1806
  flex-direction: column;
1727
1807
  }
1808
+ .data-\[placeholder\]\:text-muted[data-placeholder] {
1809
+ color: var(--muted-foreground);
1810
+ }
1728
1811
  .data-\[selected\=true\]\:bg-subtle[data-selected="true"] {
1729
1812
  background-color: var(--accent);
1730
1813
  }
@@ -1949,6 +2032,7 @@
1949
2032
  :where(.dark, .light, [data-theme]) {
1950
2033
  --color-background: var(--background);
1951
2034
  --color-foreground: var(--foreground);
2035
+ --color-scrim: var(--scrim);
1952
2036
  --color-card: var(--card);
1953
2037
  --color-card-foreground: var(--card-foreground);
1954
2038
  --color-popover: var(--popover);
@@ -1999,8 +2083,22 @@
1999
2083
  }
2000
2084
  :root, :where(.light, [data-theme='light']) {
2001
2085
  --radius: 0.625rem;
2086
+ --shadow-card-vivid: 0 6px 20px oklch(0 0 0 / 12%);
2087
+ --surface-dashboard: oklch(0.2 0.01 260);
2088
+ --border-dashboard: oklch(1 0 0 / 14%);
2089
+ --palette-sky: oklch(0.95 0.03 240);
2090
+ --palette-sky-ink: oklch(0.35 0.09 240);
2091
+ --palette-violet: oklch(0.95 0.03 300);
2092
+ --palette-violet-ink: oklch(0.35 0.1 300);
2093
+ --palette-amber: oklch(0.95 0.05 85);
2094
+ --palette-amber-ink: oklch(0.36 0.09 85);
2095
+ --palette-rose: oklch(0.95 0.03 15);
2096
+ --palette-rose-ink: oklch(0.37 0.11 15);
2097
+ --palette-emerald: oklch(0.95 0.04 160);
2098
+ --palette-emerald-ink: oklch(0.34 0.08 160);
2002
2099
  --background: oklch(1 0 0);
2003
2100
  --foreground: oklch(0.145 0 0);
2101
+ --scrim: oklch(0.145 0 0 / 45%);
2004
2102
  --card: oklch(1 0 0);
2005
2103
  --card-foreground: oklch(0.145 0 0);
2006
2104
  --popover: oklch(1 0 0);
@@ -2011,12 +2109,12 @@
2011
2109
  --secondary-foreground: oklch(0.205 0 0);
2012
2110
  --muted: oklch(0.97 0 0);
2013
2111
  --muted-foreground: oklch(0.556 0 0);
2014
- --accent: oklch(0.97 0 0);
2112
+ --accent: #0000000f;
2015
2113
  --accent-foreground: oklch(0.205 0 0);
2016
2114
  --border: oklch(0.922 0 0);
2017
2115
  --input: oklch(0.922 0 0);
2018
2116
  --ring: oklch(0.708 0 0);
2019
- --destructive: oklch(0.577 0.245 27.325);
2117
+ --destructive: oklch(0.52 0.22 27);
2020
2118
  --destructive-foreground: oklch(0.985 0 0);
2021
2119
  --success: oklch(0.62 0.13 150);
2022
2120
  --success-foreground: oklch(0.985 0 0);
@@ -2049,7 +2147,7 @@
2049
2147
  --sidebar-foreground: oklch(0.145 0 0);
2050
2148
  --sidebar-primary: oklch(0.205 0 0);
2051
2149
  --sidebar-primary-foreground: oklch(0.985 0 0);
2052
- --sidebar-accent: oklch(0.97 0 0);
2150
+ --sidebar-accent: #0000000f;
2053
2151
  --sidebar-accent-foreground: oklch(0.205 0 0);
2054
2152
  --sidebar-border: oklch(0.922 0 0);
2055
2153
  --sidebar-ring: oklch(0.708 0 0);
@@ -2089,8 +2187,22 @@
2089
2187
  --code-url: hsl(198, 99%, 37%);
2090
2188
  }
2091
2189
  :where(.dark, [data-theme='dark']) {
2190
+ --shadow-card-vivid: 0 6px 20px oklch(0 0 0 / 40%);
2191
+ --surface-dashboard: oklch(0.18 0.01 260);
2192
+ --border-dashboard: oklch(1 0 0 / 16%);
2193
+ --palette-sky: oklch(0.3 0.05 240);
2194
+ --palette-sky-ink: oklch(0.88 0.06 240);
2195
+ --palette-violet: oklch(0.3 0.06 300);
2196
+ --palette-violet-ink: oklch(0.88 0.07 300);
2197
+ --palette-amber: oklch(0.32 0.06 85);
2198
+ --palette-amber-ink: oklch(0.9 0.09 85);
2199
+ --palette-rose: oklch(0.31 0.06 15);
2200
+ --palette-rose-ink: oklch(0.89 0.07 15);
2201
+ --palette-emerald: oklch(0.29 0.05 160);
2202
+ --palette-emerald-ink: oklch(0.88 0.08 160);
2092
2203
  --background: oklch(0.145 0 0);
2093
2204
  --foreground: oklch(0.985 0 0);
2205
+ --scrim: oklch(0 0 0 / 60%);
2094
2206
  --card: oklch(0.205 0 0);
2095
2207
  --card-foreground: oklch(0.985 0 0);
2096
2208
  --popover: oklch(0.205 0 0);
@@ -2101,7 +2213,7 @@
2101
2213
  --secondary-foreground: oklch(0.985 0 0);
2102
2214
  --muted: oklch(0.269 0 0);
2103
2215
  --muted-foreground: oklch(0.708 0 0);
2104
- --accent: oklch(0.269 0 0);
2216
+ --accent: #ffffff0d;
2105
2217
  --accent-foreground: oklch(0.985 0 0);
2106
2218
  --border: oklch(1 0 0 / 10%);
2107
2219
  --input: oklch(1 0 0 / 15%);
@@ -2134,7 +2246,7 @@
2134
2246
  --sidebar-foreground: oklch(0.985 0 0);
2135
2247
  --sidebar-primary: oklch(0.985 0 0);
2136
2248
  --sidebar-primary-foreground: oklch(0.205 0 0);
2137
- --sidebar-accent: oklch(0.269 0 0);
2249
+ --sidebar-accent: #ffffff0d;
2138
2250
  --sidebar-accent-foreground: oklch(0.985 0 0);
2139
2251
  --sidebar-border: oklch(1 0 0 / 10%);
2140
2252
  --sidebar-ring: oklch(0.556 0 0);
@@ -2318,6 +2430,15 @@
2318
2430
  .webskill-surface--form, .webskill-surface--metric, .webskill-surface--file, .webskill-surface--error, .webskill-surface--unsupported {
2319
2431
  padding: 1rem;
2320
2432
  }
2433
+ .webskill-surface.webskill-surface--spec {
2434
+ padding: 1rem;
2435
+ }
2436
+ .webskill-surface--spec > .webskill-spec-card:only-child, .webskill-surface--spec > div > .webskill-spec-card:only-child {
2437
+ border: 0;
2438
+ background: transparent;
2439
+ box-shadow: none;
2440
+ padding: 0;
2441
+ }
2321
2442
  .webskill-surface--form, .webskill-surface__field {
2322
2443
  display: flex;
2323
2444
  flex-direction: column;
@@ -2457,8 +2578,86 @@
2457
2578
  .webskill-surface--error, .webskill-surface--unsupported {
2458
2579
  border-color: var(--destructive);
2459
2580
  }
2581
+ .webskill-palette-sky {
2582
+ background: var(--palette-sky);
2583
+ color: var(--palette-sky-ink);
2584
+ }
2585
+ .webskill-palette-violet {
2586
+ background: var(--palette-violet);
2587
+ color: var(--palette-violet-ink);
2588
+ }
2589
+ .webskill-palette-amber {
2590
+ background: var(--palette-amber);
2591
+ color: var(--palette-amber-ink);
2592
+ }
2593
+ .webskill-palette-rose {
2594
+ background: var(--palette-rose);
2595
+ color: var(--palette-rose-ink);
2596
+ }
2597
+ .webskill-palette-emerald {
2598
+ background: var(--palette-emerald);
2599
+ color: var(--palette-emerald-ink);
2600
+ }
2601
+ [data-webskill-theme='vivid'] {
2602
+ --radius-card: 1rem;
2603
+ --shadow-card: var(--shadow-card-vivid);
2604
+ }
2605
+ [data-webskill-theme='dashboard-dark'] {
2606
+ --radius-card: 0.375rem;
2607
+ --shadow-card: none;
2608
+ --color-surface: var(--surface-dashboard);
2609
+ --color-border: var(--border-dashboard);
2610
+ }
2611
+ .webskill-spec-split {
2612
+ container-type: inline-size;
2613
+ grid-template-columns: var(--split-ratio, 1fr 1fr);
2614
+ }
2615
+ .webskill-spec-card--span2 {
2616
+ grid-column: span 2;
2617
+ }
2618
+ @container (max-width: 30rem) {
2619
+ .webskill-spec-split {
2620
+ grid-template-columns: 1fr;
2621
+ }
2622
+ .webskill-spec-card--span2 {
2623
+ grid-column: auto;
2624
+ }
2625
+ }
2626
+ .webskill-spec-form__fields {
2627
+ display: grid;
2628
+ gap: 0.75rem;
2629
+ container-type: inline-size;
2630
+ grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
2631
+ }
2632
+ .webskill-spec-form__fields > :has(textarea), .webskill-spec-form__fields > [data-field-span='full'] {
2633
+ grid-column: 1 / -1;
2634
+ }
2460
2635
  .webskill-aui-shell {
2461
2636
  background: var(--color-background);
2637
+ --webskill-chat-prose-max: 48rem;
2638
+ --webskill-chat-surface-max: 64rem;
2639
+ }
2640
+ .webskill-aui-shell[data-layout='fullscreen'] {
2641
+ --webskill-chat-surface-max: 80rem;
2642
+ }
2643
+ .webskill-aui-shell[data-layout='mobile'] {
2644
+ --webskill-chat-prose-max: 100%;
2645
+ --webskill-chat-surface-max: 100%;
2646
+ }
2647
+ .webskill-chat-prose {
2648
+ max-width: var(--webskill-chat-prose-max);
2649
+ }
2650
+ .webskill-chat-column {
2651
+ container-type: inline-size;
2652
+ }
2653
+ .webskill-chat-surface-wide:has([data-webskill-multicol]) {
2654
+ --webskill-chat-surface-w: min(var(--webskill-chat-surface-max), 100cqw - 2rem);
2655
+ width: var(--webskill-chat-surface-w);
2656
+ margin-inline: calc((100% - var(--webskill-chat-surface-w)) / 2);
2657
+ }
2658
+ .webskill-aui-shell[data-layout='mobile'] .webskill-chat-surface-wide {
2659
+ width: 100%;
2660
+ margin-inline: 0;
2462
2661
  }
2463
2662
  .webskill-aui-header {
2464
2663
  border-color: var(--color-border);
@@ -2575,6 +2774,11 @@
2575
2774
  inherits: false;
2576
2775
  initial-value: 0;
2577
2776
  }
2777
+ @property --tw-scroll-snap-strictness {
2778
+ syntax: "*";
2779
+ inherits: false;
2780
+ initial-value: proximity;
2781
+ }
2578
2782
  @property --tw-space-y-reverse {
2579
2783
  syntax: "*";
2580
2784
  inherits: false;
@@ -2810,6 +3014,7 @@
2810
3014
  --tw-translate-x: 0;
2811
3015
  --tw-translate-y: 0;
2812
3016
  --tw-translate-z: 0;
3017
+ --tw-scroll-snap-strictness: proximity;
2813
3018
  --tw-space-y-reverse: 0;
2814
3019
  --tw-divide-y-reverse: 0;
2815
3020
  --tw-border-style: solid;