@fungi.computer/parakeet 0.5.0 → 0.6.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.
Files changed (45) hide show
  1. package/README.md +17 -1
  2. package/dist/components/ChatComposer.js +66 -60
  3. package/dist/components/CodeBlock.js +3 -2
  4. package/dist/components/ComposerModelKey.d.ts +11 -0
  5. package/dist/components/ComposerModelKey.js +9 -0
  6. package/dist/components/ComposerShell.d.ts +47 -0
  7. package/dist/components/ComposerShell.js +29 -0
  8. package/dist/components/DecisionComposer.js +1 -2
  9. package/dist/components/TimelineItem.js +1 -1
  10. package/dist/components/ToolGroup.js +2 -2
  11. package/dist/conversation-opening.d.ts +1 -1
  12. package/dist/conversation-opening.js +2 -2
  13. package/dist/conversation.js +12 -9
  14. package/dist/core/build-timeline.js +5 -2
  15. package/dist/core/composer-model-name.d.ts +3 -0
  16. package/dist/core/composer-model-name.js +21 -0
  17. package/dist/core/display-text.d.ts +2 -0
  18. package/dist/core/display-text.js +7 -0
  19. package/dist/core/draft-storage.d.ts +2 -0
  20. package/dist/core/draft-storage.js +14 -1
  21. package/dist/core/session-projection.d.ts +1 -0
  22. package/dist/core/session-projection.js +3 -2
  23. package/dist/core/session-view-state.d.ts +2 -4
  24. package/dist/core/session-view-state.js +27 -9
  25. package/dist/core/tool-groups.d.ts +3 -0
  26. package/dist/core/tool-groups.js +37 -1
  27. package/dist/core/tool-view.d.ts +6 -0
  28. package/dist/core/tool-view.js +33 -0
  29. package/dist/core/use-timeline-item-key.d.ts +3 -4
  30. package/dist/core/use-timeline-item-key.js +8 -14
  31. package/dist/headless.d.ts +4 -3
  32. package/dist/headless.js +4 -3
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.js +3 -0
  35. package/dist/parakeet.js +9 -11
  36. package/dist/store/types.d.ts +9 -0
  37. package/dist/styles.css +581 -114
  38. package/docs/api/headless.md +123 -41
  39. package/docs/api/index.md +153 -1
  40. package/package.json +10 -7
  41. package/src/completion-menu.css +2 -1
  42. package/src/composer-shell.css +125 -0
  43. package/src/styles.css +5 -87
  44. package/dist/components/WaitingNotice.d.ts +0 -7
  45. package/dist/components/WaitingNotice.js +0 -8
package/dist/styles.css CHANGED
@@ -18,7 +18,6 @@
18
18
  --text-sm: 0.875rem;
19
19
  --text-sm--line-height: calc(1.25 / 0.875);
20
20
  --text-base: 1rem;
21
- --text-base--line-height: calc(1.5 / 1);
22
21
  --text-lg: 1.125rem;
23
22
  --text-lg--line-height: calc(1.75 / 1.125);
24
23
  --text-xl: 1.25rem;
@@ -2425,6 +2424,248 @@
2425
2424
  }
2426
2425
  }
2427
2426
  }
2427
+ .\!input {
2428
+ @layer daisyui.l1.l2.l3 {
2429
+ position: relative !important;
2430
+ display: inline-flex !important;
2431
+ flex-shrink: 1 !important;
2432
+ appearance: none !important;
2433
+ align-items: center !important;
2434
+ gap: calc(0.25rem * 2) !important;
2435
+ background-color: var(--color-base-100) !important;
2436
+ padding-inline: calc(0.25rem * 3) !important;
2437
+ vertical-align: middle !important;
2438
+ white-space: nowrap !important;
2439
+ --size: calc(var(--size-field, 0.25rem) * var(--in-size-mul, 10)) !important;
2440
+ --input-color: var(--color-base-content) !important;
2441
+ @supports (color: color-mix(in lab, red, red)) {
2442
+ --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000) !important;
2443
+ }
2444
+ cursor: text !important;
2445
+ width: clamp(3rem, 20rem, 100%) !important;
2446
+ height: var(--size) !important;
2447
+ font-size: max(var(--font-size, 0rem), var(--font-size-min, 0.875rem)) !important;
2448
+ touch-action: manipulation !important;
2449
+ border-start-start-radius: var(--join-ss, var(--radius-field)) !important;
2450
+ border-start-end-radius: var(--join-se, var(--radius-field)) !important;
2451
+ border-end-start-radius: var(--join-es, var(--radius-field)) !important;
2452
+ border-end-end-radius: var(--join-ee, var(--radius-field)) !important;
2453
+ border: var(--border) solid var(--input-color, #0000) !important;
2454
+ box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset !important;
2455
+ @supports (color: color-mix(in lab, red, red)) {
2456
+ box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset !important;
2457
+ }
2458
+ }
2459
+ & input {
2460
+ @layer daisyui.l1.l2.l3 {
2461
+ height: 100% !important;
2462
+ width: 100% !important;
2463
+ appearance: none !important;
2464
+ background-color: transparent !important;
2465
+ border: none !important;
2466
+ &::placeholder {
2467
+ color: var(--color-base-content) !important;
2468
+ opacity: 50% !important;
2469
+ }
2470
+ &:focus, &:focus-within {
2471
+ --tw-outline-style: none !important;
2472
+ outline-style: none !important;
2473
+ @media (forced-colors: active) {
2474
+ outline: 2px solid transparent !important;
2475
+ outline-offset: 2px !important;
2476
+ }
2477
+ }
2478
+ &::-webkit-calendar-picker-indicator {
2479
+ inset-inline-end: -0.15em !important;
2480
+ }
2481
+ }
2482
+ }
2483
+ &::-webkit-inner-spin-button {
2484
+ @layer daisyui.l1.l2.l3 {
2485
+ margin-inline-end: -10px !important;
2486
+ }
2487
+ }
2488
+ &::-webkit-calendar-picker-indicator {
2489
+ @layer daisyui.l1.l2.l3 {
2490
+ inset-inline-end: 0.75em !important;
2491
+ }
2492
+ }
2493
+ input& {
2494
+ @layer daisyui.l1.l2.l3 {
2495
+ position: relative !important;
2496
+ display: inline-flex !important;
2497
+ text-align: start !important;
2498
+ &[type="url"], &[type="tel"], &[type="email"], &[type="number"] {
2499
+ direction: ltr !important;
2500
+ }
2501
+ &::-webkit-datetime-edit, &::-webkit-date-and-time-value {
2502
+ display: grid !important;
2503
+ min-height: 100% !important;
2504
+ align-items: center !important;
2505
+ text-align: inherit !important;
2506
+ }
2507
+ &::-webkit-inner-spin-button {
2508
+ margin-block: calc(0.25rem * var(--spin-my, -3)) !important;
2509
+ }
2510
+ &::-webkit-calendar-picker-indicator {
2511
+ position: absolute !important;
2512
+ width: 1em !important;
2513
+ height: 1em !important;
2514
+ cursor: pointer !important;
2515
+ }
2516
+ &::-webkit-color-swatch-wrapper {
2517
+ padding-block: 0.25rem !important;
2518
+ }
2519
+ }
2520
+ }
2521
+ & input {
2522
+ @layer daisyui.l1.l2.l3 {
2523
+ position: relative !important;
2524
+ display: inline-flex !important;
2525
+ text-align: start !important;
2526
+ &[type="url"], &[type="tel"], &[type="email"], &[type="number"] {
2527
+ direction: ltr !important;
2528
+ }
2529
+ &::-webkit-datetime-edit, &::-webkit-date-and-time-value {
2530
+ display: grid !important;
2531
+ min-height: 100% !important;
2532
+ align-items: center !important;
2533
+ text-align: inherit !important;
2534
+ }
2535
+ &::-webkit-inner-spin-button {
2536
+ margin-block: calc(0.25rem * var(--spin-my, -3)) !important;
2537
+ }
2538
+ &::-webkit-calendar-picker-indicator {
2539
+ position: absolute !important;
2540
+ width: 1em !important;
2541
+ height: 1em !important;
2542
+ cursor: pointer !important;
2543
+ }
2544
+ &::-webkit-color-swatch-wrapper {
2545
+ padding-block: 0.25rem !important;
2546
+ }
2547
+ }
2548
+ }
2549
+ &:focus {
2550
+ @layer daisyui.l1.l2.l3 {
2551
+ --input-color: var(--color-base-content) !important;
2552
+ box-shadow: 0 1px var(--input-color) !important;
2553
+ @supports (color: color-mix(in lab, red, red)) {
2554
+ box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) !important;
2555
+ }
2556
+ outline: 2px solid var(--input-color) !important;
2557
+ outline-offset: 2px !important;
2558
+ }
2559
+ @layer daisyui.l1.l2.l3 {
2560
+ @media (pointer: coarse) {
2561
+ @supports (-webkit-touch-callout: none) {
2562
+ --font-size: 1rem !important;
2563
+ }
2564
+ }
2565
+ }
2566
+ }
2567
+ &:focus-within {
2568
+ @layer daisyui.l1.l2.l3 {
2569
+ --input-color: var(--color-base-content) !important;
2570
+ box-shadow: 0 1px var(--input-color) !important;
2571
+ @supports (color: color-mix(in lab, red, red)) {
2572
+ box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) !important;
2573
+ }
2574
+ outline: 2px solid var(--input-color) !important;
2575
+ outline-offset: 2px !important;
2576
+ }
2577
+ @layer daisyui.l1.l2.l3 {
2578
+ @media (pointer: coarse) {
2579
+ @supports (-webkit-touch-callout: none) {
2580
+ --font-size: 1rem !important;
2581
+ }
2582
+ }
2583
+ }
2584
+ }
2585
+ &:has( > input[disabled]) {
2586
+ @layer daisyui.l1.l2.l3 {
2587
+ cursor: not-allowed !important;
2588
+ border-color: var(--color-base-200) !important;
2589
+ background-color: var(--color-base-200) !important;
2590
+ &:is(input), :is(input) {
2591
+ color: var(--color-base-content) !important;
2592
+ @supports (color: color-mix(in lab, red, red)) {
2593
+ color: color-mix(in oklab, var(--color-base-content) 40%, transparent) !important;
2594
+ }
2595
+ }
2596
+ box-shadow: none !important;
2597
+ &::placeholder, ::placeholder {
2598
+ color: var(--color-base-content) !important;
2599
+ opacity: 20% !important;
2600
+ }
2601
+ }
2602
+ }
2603
+ &:is(:disabled, [disabled]) {
2604
+ @layer daisyui.l1.l2.l3 {
2605
+ cursor: not-allowed !important;
2606
+ border-color: var(--color-base-200) !important;
2607
+ background-color: var(--color-base-200) !important;
2608
+ &:is(input), :is(input) {
2609
+ color: var(--color-base-content) !important;
2610
+ @supports (color: color-mix(in lab, red, red)) {
2611
+ color: color-mix(in oklab, var(--color-base-content) 40%, transparent) !important;
2612
+ }
2613
+ }
2614
+ box-shadow: none !important;
2615
+ &::placeholder, ::placeholder {
2616
+ color: var(--color-base-content) !important;
2617
+ opacity: 20% !important;
2618
+ }
2619
+ }
2620
+ }
2621
+ fieldset:disabled & {
2622
+ @layer daisyui.l1.l2.l3 {
2623
+ cursor: not-allowed !important;
2624
+ border-color: var(--color-base-200) !important;
2625
+ background-color: var(--color-base-200) !important;
2626
+ &:is(input), :is(input) {
2627
+ color: var(--color-base-content) !important;
2628
+ @supports (color: color-mix(in lab, red, red)) {
2629
+ color: color-mix(in oklab, var(--color-base-content) 40%, transparent) !important;
2630
+ }
2631
+ }
2632
+ box-shadow: none !important;
2633
+ &::placeholder, ::placeholder {
2634
+ color: var(--color-base-content) !important;
2635
+ opacity: 20% !important;
2636
+ }
2637
+ }
2638
+ }
2639
+ &:has( > input[disabled]) > input[disabled] {
2640
+ @layer daisyui.l1.l2.l3 {
2641
+ cursor: not-allowed !important;
2642
+ }
2643
+ }
2644
+ :is(&[type="url"], .\!input[type="tel"], .\!input[type="email"], .\!input[type="number"]):dir(rtl) {
2645
+ border-start-start-radius: var(--join-se, var(--radius-field)) !important;
2646
+ border-start-end-radius: var(--join-ss, var(--radius-field)) !important;
2647
+ border-end-start-radius: var(--join-ee, var(--radius-field)) !important;
2648
+ border-end-end-radius: var(--join-es, var(--radius-field)) !important;
2649
+ }
2650
+ :is(.\!input[type="url"], &[type="tel"], .\!input[type="email"], .\!input[type="number"]):dir(rtl) {
2651
+ border-start-start-radius: var(--join-se, var(--radius-field)) !important;
2652
+ border-start-end-radius: var(--join-ss, var(--radius-field)) !important;
2653
+ border-end-start-radius: var(--join-ee, var(--radius-field)) !important;
2654
+ border-end-end-radius: var(--join-es, var(--radius-field)) !important;
2655
+ }
2656
+ :is(.\!input[type="url"], .\!input[type="tel"], &[type="email"], .\!input[type="number"]):dir(rtl) {
2657
+ border-start-start-radius: var(--join-se, var(--radius-field)) !important;
2658
+ border-start-end-radius: var(--join-ss, var(--radius-field)) !important;
2659
+ border-end-start-radius: var(--join-ee, var(--radius-field)) !important;
2660
+ border-end-end-radius: var(--join-es, var(--radius-field)) !important;
2661
+ }
2662
+ :is(.\!input[type="url"], .\!input[type="tel"], .\!input[type="email"], &[type="number"]):dir(rtl) {
2663
+ border-start-start-radius: var(--join-se, var(--radius-field)) !important;
2664
+ border-start-end-radius: var(--join-ss, var(--radius-field)) !important;
2665
+ border-end-start-radius: var(--join-ee, var(--radius-field)) !important;
2666
+ border-end-end-radius: var(--join-es, var(--radius-field)) !important;
2667
+ }
2668
+ }
2428
2669
  .input {
2429
2670
  @layer daisyui.l1.l2.l3 {
2430
2671
  position: relative;
@@ -4214,6 +4455,9 @@
4214
4455
  .static {
4215
4456
  position: static;
4216
4457
  }
4458
+ .sticky {
4459
+ position: sticky;
4460
+ }
4217
4461
  .-inset-1\.5 {
4218
4462
  inset: calc(var(--spacing) * -1.5);
4219
4463
  }
@@ -4833,6 +5077,34 @@
4833
5077
  }
4834
5078
  }
4835
5079
  }
5080
+ .\!input {
5081
+ .label:is(& > *, .select > *) {
5082
+ @layer daisyui.l1.l2.l3 {
5083
+ display: flex !important;
5084
+ height: calc(100% - 0.5rem) !important;
5085
+ align-items: center !important;
5086
+ padding-inline: calc(0.25rem * 3) !important;
5087
+ white-space: nowrap !important;
5088
+ font-size: inherit !important;
5089
+ &:first-child {
5090
+ margin-inline-start: calc(0.25rem * -3) !important;
5091
+ margin-inline-end: calc(0.25rem * 3) !important;
5092
+ border-inline-end: var(--border) solid currentColor !important;
5093
+ @supports (color: color-mix(in lab, red, red)) {
5094
+ border-inline-end: var(--border) solid color-mix(in oklab, currentColor 10%, #0000) !important;
5095
+ }
5096
+ }
5097
+ &:last-child {
5098
+ margin-inline-start: calc(0.25rem * 3) !important;
5099
+ margin-inline-end: calc(0.25rem * -3) !important;
5100
+ border-inline-start: var(--border) solid currentColor !important;
5101
+ @supports (color: color-mix(in lab, red, red)) {
5102
+ border-inline-start: var(--border) solid color-mix(in oklab, currentColor 10%, #0000) !important;
5103
+ }
5104
+ }
5105
+ }
5106
+ }
5107
+ }
4836
5108
  .input {
4837
5109
  .label:is(& > *, .select > *) {
4838
5110
  @layer daisyui.l1.l2.l3 {
@@ -5759,6 +6031,31 @@
5759
6031
  .ml-auto {
5760
6032
  margin-left: auto;
5761
6033
  }
6034
+ .\!status {
6035
+ @layer daisyui.l1.l2.l3 {
6036
+ display: inline-block !important;
6037
+ aspect-ratio: 1 / 1 !important;
6038
+ width: calc(0.25rem * 2) !important;
6039
+ height: calc(0.25rem * 2) !important;
6040
+ border-radius: var(--radius-selector) !important;
6041
+ background-color: var(--color-base-content) !important;
6042
+ @supports (color: color-mix(in lab, red, red)) {
6043
+ background-color: color-mix(in oklab, var(--color-base-content) 20%, transparent) !important;
6044
+ }
6045
+ background-position: center !important;
6046
+ background-repeat: no-repeat !important;
6047
+ vertical-align: middle !important;
6048
+ color: color-mix(in srgb, #000 30%, transparent) !important;
6049
+ @supports (color: color-mix(in lab, red, red)) {
6050
+ color: color-mix(in oklab, var(--color-black) 30%, transparent) !important;
6051
+ }
6052
+ background-image: radial-gradient( circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * 0.5)), #0000 ) !important;
6053
+ box-shadow: 0 2px 3px -1px currentColor !important;
6054
+ @supports (color: color-mix(in lab, red, red)) {
6055
+ box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000) !important;
6056
+ }
6057
+ }
6058
+ }
5762
6059
  .status {
5763
6060
  @layer daisyui.l1.l2.l3 {
5764
6061
  display: inline-block;
@@ -6124,9 +6421,6 @@
6124
6421
  .max-h-72 {
6125
6422
  max-height: calc(var(--spacing) * 72);
6126
6423
  }
6127
- .max-h-\[320px\] {
6128
- max-height: 320px;
6129
- }
6130
6424
  .max-h-screen {
6131
6425
  max-height: 100vh;
6132
6426
  }
@@ -6136,9 +6430,6 @@
6136
6430
  .min-h-10 {
6137
6431
  min-height: calc(var(--spacing) * 10);
6138
6432
  }
6139
- .min-h-12 {
6140
- min-height: calc(var(--spacing) * 12);
6141
- }
6142
6433
  .min-h-14 {
6143
6434
  min-height: calc(var(--spacing) * 14);
6144
6435
  }
@@ -6299,9 +6590,6 @@
6299
6590
  .resize {
6300
6591
  resize: both;
6301
6592
  }
6302
- .resize-none {
6303
- resize: none;
6304
- }
6305
6593
  .grid-cols-2 {
6306
6594
  grid-template-columns: repeat(2, minmax(0, 1fr));
6307
6595
  }
@@ -6390,9 +6678,6 @@
6390
6678
  .overflow-x-auto {
6391
6679
  overflow-x: auto;
6392
6680
  }
6393
- .overflow-x-hidden {
6394
- overflow-x: hidden;
6395
- }
6396
6681
  .overflow-y-auto {
6397
6682
  overflow-y: auto;
6398
6683
  }
@@ -6708,10 +6993,6 @@
6708
6993
  font-size: var(--text-3xl);
6709
6994
  line-height: var(--tw-leading, var(--text-3xl--line-height));
6710
6995
  }
6711
- .text-base {
6712
- font-size: var(--text-base);
6713
- line-height: var(--tw-leading, var(--text-base--line-height));
6714
- }
6715
6996
  .text-lg {
6716
6997
  font-size: var(--text-lg);
6717
6998
  line-height: var(--tw-leading, var(--text-lg--line-height));
@@ -7223,6 +7504,13 @@
7223
7504
  -webkit-user-select: none;
7224
7505
  user-select: none;
7225
7506
  }
7507
+ .\!input {
7508
+ .aura:has( > .btn, > &, > .select) {
7509
+ @layer daisyui.l1.l2.l3 {
7510
+ --aura-radius: var(--radius-field) !important;
7511
+ }
7512
+ }
7513
+ }
7226
7514
  .\[clip\:rect\(0\,0\,0\,0\)\] {
7227
7515
  clip: rect(0,0,0,0);
7228
7516
  }
@@ -7332,13 +7620,6 @@
7332
7620
  }
7333
7621
  }
7334
7622
  }
7335
- .hover\:text-base-content {
7336
- &:hover {
7337
- @media (hover: hover) {
7338
- color: var(--color-base-content);
7339
- }
7340
- }
7341
- }
7342
7623
  .hover\:text-error {
7343
7624
  &:hover {
7344
7625
  @media (hover: hover) {
@@ -11634,29 +11915,23 @@
11634
11915
  }
11635
11916
  .caps-resize-handle {
11636
11917
  display: grid;
11637
- width: 64px;
11638
- height: 22px;
11918
+ width: 44px;
11919
+ height: 24px;
11920
+ grid-template-columns: minmax(0, 1fr);
11639
11921
  place-items: center;
11640
- border: var(--border) solid var(--stipe-linework);
11922
+ border: 0;
11641
11923
  border-radius: var(--radius-field);
11642
- background: var(--color-base-200);
11924
+ background: transparent;
11643
11925
  cursor: row-resize;
11644
11926
  touch-action: none;
11645
11927
  user-select: none;
11646
11928
  }
11647
11929
  .caps-resize-handle[aria-orientation="vertical"] {
11648
- width: 22px;
11649
- height: 64px;
11930
+ width: 24px;
11931
+ height: 44px;
11650
11932
  cursor: col-resize;
11651
11933
  }
11652
- .caps-resize-handle[data-resize-variant="notch"] {
11653
- border-radius: var(--radius-box) var(--radius-box) var(--radius-field) var(--radius-field);
11654
- box-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.55)), 0 calc(var(--depth) * 1px) calc(var(--depth) * 2px) var(--color-base-content);
11655
- @supports (color: color-mix(in lab, red, red)) {
11656
- box-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.55)), 0 calc(var(--depth) * 1px) calc(var(--depth) * 2px) color-mix( in oklab, var(--color-base-content) calc(var(--depth) * 12%), transparent );
11657
- }
11658
- }
11659
- .caps-resize-handle:is(:hover, :focus-visible) {
11934
+ .caps-resize-handle:focus-visible {
11660
11935
  outline: 2px solid var(--color-info);
11661
11936
  outline-offset: 2px;
11662
11937
  }
@@ -11665,29 +11940,45 @@
11665
11940
  }
11666
11941
  .caps-resize-grip {
11667
11942
  position: relative;
11668
- width: 38px;
11669
- height: 8px;
11943
+ width: 28px;
11944
+ height: 6px;
11670
11945
  border-radius: var(--radius-button);
11671
- background-color: var(--color-neutral);
11672
- background-image: linear-gradient( to bottom, oklch(100% 0 0 / calc(var(--depth) * 0.08)), transparent 50%, oklch(0% 0 0 / calc(var(--depth) * 0.015)) );
11673
- box-shadow: var( --stipe-shadow-raised, inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.6)), inset 0 -2px 0 var(--color-neutral), inset 0 0 0 1px var(--color-neutral) );
11946
+ background-color: var(--color-base-200);
11947
+ box-shadow: 0 0 0 1px var(--stipe-linework), inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)), 0 1px 0 var(--color-base-200);
11674
11948
  @supports (color: color-mix(in lab, red, red)) {
11675
- box-shadow: var( --stipe-shadow-raised, inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.6)), inset 0 -2px 0 color-mix(in oklab, var(--color-neutral) 75%, black), inset 0 0 0 1px color-mix( in oklab, var(--color-neutral), black calc(var(--depth) * 14%) ) );
11949
+ box-shadow: 0 0 0 1px color-mix(in oklab, var(--stipe-linework) 80%, var(--color-base-200)), inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)), 0 1px 0 color-mix( in oklab, var(--color-base-200), var(--color-base-content) 14% );
11676
11950
  }
11677
11951
  }
11952
+ .caps-resize-handle:hover .caps-resize-grip {
11953
+ background-color: var(--color-base-300);
11954
+ }
11678
11955
  .caps-resize-grip::after {
11679
11956
  content: "";
11680
11957
  position: absolute;
11681
- inset-inline: 7px;
11958
+ left: 50%;
11682
11959
  top: 50%;
11960
+ width: 2px;
11683
11961
  height: 2px;
11684
- transform: translateY(-50%);
11685
- border-radius: var(--radius-button);
11686
- background: linear-gradient( to bottom, oklch(100% 0 0 / calc(var(--depth) * 0.45)) 50%, oklch(0% 0 0 / calc(var(--depth) * 0.28)) 50% );
11687
- box-shadow: 0 -3px 0 -0.5px oklch(100% 0 0 / calc(var(--depth) * 0.45)), 0 -2px 0 -0.5px oklch(0% 0 0 / calc(var(--depth) * 0.28)), 0 3px 0 -0.5px oklch(100% 0 0 / calc(var(--depth) * 0.45)), 0 4px 0 -0.5px oklch(0% 0 0 / calc(var(--depth) * 0.28));
11962
+ transform: translate(-50%, -50%);
11963
+ border-radius: var(--radius-selector);
11964
+ background: var(--color-base-content);
11965
+ @supports (color: color-mix(in lab, red, red)) {
11966
+ background: color-mix(in oklab, var(--color-base-content) 45%, transparent);
11967
+ }
11968
+ box-shadow: -5px 0 0 var(--color-base-content), 5px 0 0 var(--color-base-content);
11969
+ @supports (color: color-mix(in lab, red, red)) {
11970
+ box-shadow: -5px 0 0 color-mix(in oklab, var(--color-base-content) 45%, transparent), 5px 0 0 color-mix(in oklab, var(--color-base-content) 45%, transparent);
11971
+ }
11688
11972
  }
11689
11973
  .caps-resize-handle[aria-orientation="vertical"] .caps-resize-grip {
11690
- transform: rotate(90deg);
11974
+ width: 6px;
11975
+ height: 28px;
11976
+ }
11977
+ .caps-resize-handle[aria-orientation="vertical"] .caps-resize-grip::after {
11978
+ box-shadow: 0 -5px 0 var(--color-base-content), 0 5px 0 var(--color-base-content);
11979
+ @supports (color: color-mix(in lab, red, red)) {
11980
+ box-shadow: 0 -5px 0 color-mix(in oklab, var(--color-base-content) 45%, transparent), 0 5px 0 color-mix(in oklab, var(--color-base-content) 45%, transparent);
11981
+ }
11691
11982
  }
11692
11983
  @media (prefers-reduced-motion: reduce) {
11693
11984
  .caps-scroll-thumb-surface {
@@ -11695,6 +11986,10 @@
11695
11986
  }
11696
11987
  }
11697
11988
  @media (forced-colors: active) {
11989
+ .caps-resize-grip {
11990
+ border: 1px solid ButtonText;
11991
+ box-shadow: none;
11992
+ }
11698
11993
  .caps-scroll-track {
11699
11994
  background: Canvas;
11700
11995
  box-shadow: none;
@@ -13176,6 +13471,136 @@
13176
13471
  .caps-form-footer .caps-field-error {
13177
13472
  padding-bottom: var(--spacing-sm);
13178
13473
  }
13474
+ :is(.caps-form, .caps-form-section, .caps-fieldset)[data-layout="columns"] {
13475
+ --caps-form-label-col: 9rem;
13476
+ }
13477
+ .caps-form[data-layout="columns"] :is(.caps-form-body, .caps-form-section-fields) {
13478
+ gap: var(--spacing-sm);
13479
+ }
13480
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) {
13481
+ display: grid;
13482
+ grid-template-columns: var(--caps-form-label-col) minmax(0, 1fr);
13483
+ column-gap: var(--spacing-md);
13484
+ row-gap: var(--spacing-2xs);
13485
+ align-items: center;
13486
+ justify-content: stretch;
13487
+ --caps-field-control-width: 100%;
13488
+ }
13489
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy {
13490
+ display: contents;
13491
+ }
13492
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > label {
13493
+ grid-column: 1;
13494
+ grid-row: 1;
13495
+ min-width: 0;
13496
+ overflow: hidden;
13497
+ text-overflow: ellipsis;
13498
+ white-space: nowrap;
13499
+ }
13500
+ .caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
13501
+ min-width: 0;
13502
+ overflow: hidden;
13503
+ text-overflow: ellipsis;
13504
+ white-space: nowrap;
13505
+ }
13506
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > .caps-field-description {
13507
+ grid-column: 2;
13508
+ grid-row: 2;
13509
+ }
13510
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > :not(.caps-field-copy, .caps-field-lead, .caps-field-error-reveal) {
13511
+ grid-column: 2;
13512
+ grid-row: 1;
13513
+ width: 100%;
13514
+ max-width: 30rem;
13515
+ }
13516
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-switch {
13517
+ width: 40px;
13518
+ justify-self: start;
13519
+ }
13520
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-checkbox {
13521
+ width: 24px;
13522
+ justify-self: start;
13523
+ }
13524
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-lead {
13525
+ grid-column: 1;
13526
+ grid-row: 1;
13527
+ margin: 0;
13528
+ }
13529
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-error-reveal {
13530
+ grid-column: 2;
13531
+ grid-row: 2;
13532
+ }
13533
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-row > .caps-field-lead {
13534
+ grid-column: 1;
13535
+ grid-row: 1;
13536
+ }
13537
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-error-reveal {
13538
+ padding-inline-start: calc(var(--caps-form-label-col) + var(--spacing-md));
13539
+ }
13540
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field:has(> .caps-field-error-reveal[data-open="true"]) .caps-field-description, .caps-fieldset[data-layout="columns"]:has( > .caps-field-error-reveal[data-open="true"] ) > .caps-fieldset-description {
13541
+ display: none;
13542
+ }
13543
+ .caps-fieldset[data-layout="columns"] {
13544
+ display: grid;
13545
+ grid-template-columns: var(--caps-form-label-col) minmax(0, 1fr);
13546
+ column-gap: var(--spacing-md);
13547
+ row-gap: var(--spacing-2xs);
13548
+ align-items: start;
13549
+ }
13550
+ .caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
13551
+ grid-column: 1;
13552
+ grid-row: 1;
13553
+ margin: 0;
13554
+ }
13555
+ .caps-fieldset[data-layout="columns"] > .caps-fieldset-fields {
13556
+ grid-column: 2;
13557
+ grid-row: 1;
13558
+ flex-direction: row;
13559
+ flex-wrap: wrap;
13560
+ margin: 0;
13561
+ }
13562
+ .caps-fieldset[data-layout="columns"] > :is(.caps-fieldset-description, .caps-field-error-reveal) {
13563
+ grid-column: 2;
13564
+ grid-row: 2;
13565
+ }
13566
+ .caps-form[data-layout="columns"] .caps-form-footer {
13567
+ padding-inline-start: calc(var(--caps-form-label-col) + var(--spacing-md));
13568
+ max-width: calc(var(--caps-form-label-col) + var(--spacing-md) + 30rem);
13569
+ }
13570
+ @container (min-width: 36rem) {
13571
+ .caps-form[data-layout="columns"] .caps-form-body:has(> .caps-field:first-child:nth-last-child(2)) {
13572
+ display: grid;
13573
+ grid-template-columns: minmax(0, 1fr) auto;
13574
+ align-items: start;
13575
+ }
13576
+ .caps-form[data-layout="columns"] .caps-form-body:has(> .caps-field:first-child:nth-last-child(2)) > .caps-form-footer {
13577
+ padding-inline-start: 0;
13578
+ max-width: none;
13579
+ }
13580
+ }
13581
+ @container (max-width: 20rem) {
13582
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ), .caps-fieldset[data-layout="columns"] {
13583
+ grid-template-columns: minmax(0, 1fr);
13584
+ }
13585
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > :not(.caps-field-copy, .caps-field-lead, .caps-field-error-reveal), .caps-fieldset[data-layout="columns"] > .caps-fieldset-fields {
13586
+ grid-column: 1;
13587
+ grid-row: 2;
13588
+ max-width: none;
13589
+ }
13590
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > .caps-field-description, :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-error-reveal, .caps-fieldset[data-layout="columns"] > :is(.caps-fieldset-description, .caps-field-error-reveal) {
13591
+ grid-column: 1;
13592
+ grid-row: 3;
13593
+ }
13594
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > label, .caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
13595
+ overflow: visible;
13596
+ text-overflow: clip;
13597
+ white-space: normal;
13598
+ }
13599
+ :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-error-reveal, .caps-form[data-layout="columns"] .caps-form-footer {
13600
+ padding-inline-start: 0;
13601
+ max-width: none;
13602
+ }
13603
+ }
13179
13604
  .caps-choice-card {
13180
13605
  display: flex;
13181
13606
  flex: 1 1 var(--caps-choice-card-basis, 14rem);
@@ -18253,6 +18678,109 @@
18253
18678
  display: flex;
18254
18679
  flex: none;
18255
18680
  }
18681
+ .parakeet-composer-anchor {
18682
+ --parakeet-completion-inset: 0px;
18683
+ --parakeet-completion-face: var(--color-base-200);
18684
+ --parakeet-completion-edge: var(--stipe-hairline);
18685
+ display: block;
18686
+ min-width: 0;
18687
+ }
18688
+ .parakeet-composer-anchor:has([data-parakeet-slash]) > .parakeet-composer-shell {
18689
+ border-start-start-radius: 0;
18690
+ border-start-end-radius: 0;
18691
+ }
18692
+ .parakeet-composer-shell {
18693
+ padding: var(--spacing-sm);
18694
+ container-type: inline-size;
18695
+ }
18696
+ .parakeet-composer-shell .caps-composer-input {
18697
+ padding: var(--spacing-xs) var(--spacing-sm) 0;
18698
+ }
18699
+ .parakeet-composer-shell .caps-composer-input textarea {
18700
+ min-height: 3rem;
18701
+ max-height: 160px;
18702
+ padding: var(--spacing-xs) 0;
18703
+ resize: none;
18704
+ overflow-x: hidden;
18705
+ overflow-y: auto;
18706
+ white-space: pre-wrap;
18707
+ overflow-wrap: break-word;
18708
+ font-family: var(--font-sans);
18709
+ font-size: var(--text-base);
18710
+ line-height: 1.6;
18711
+ }
18712
+ .parakeet-composer-shell .parakeet-composer-row {
18713
+ --caps-status-tray-row-wrap: nowrap;
18714
+ padding: var(--spacing-xs);
18715
+ }
18716
+ .parakeet-composer-row .caps-status-tray-row {
18717
+ white-space: nowrap;
18718
+ }
18719
+ .parakeet-composer-row .caps-keycap-button {
18720
+ height: var(--caps-status-tray-key-height);
18721
+ min-height: var(--caps-status-tray-key-height);
18722
+ }
18723
+ .parakeet-composer-row .caps-keycap-led {
18724
+ display: none;
18725
+ }
18726
+ .parakeet-composer-row [data-status-tray-chip] {
18727
+ min-width: 0;
18728
+ }
18729
+ .parakeet-composer-row .caps-status-tray-label, .parakeet-composer-row .caps-keycap-button-label {
18730
+ min-width: 0;
18731
+ overflow: hidden;
18732
+ text-overflow: ellipsis;
18733
+ white-space: nowrap;
18734
+ }
18735
+ .parakeet-composer-row .parakeet-composer-model-key {
18736
+ --caps-keycap-justify: space-between;
18737
+ flex: 0 1 auto;
18738
+ min-width: 4.5rem;
18739
+ max-width: 220px;
18740
+ font-size: var(--text-xs);
18741
+ }
18742
+ .parakeet-composer-trailing {
18743
+ display: flex;
18744
+ align-items: center;
18745
+ flex: none;
18746
+ gap: var(--spacing-xs);
18747
+ margin-inline-start: auto;
18748
+ }
18749
+ .parakeet-composer-action {
18750
+ display: flex;
18751
+ flex: none;
18752
+ }
18753
+ .parakeet-composer-readout {
18754
+ color: var(--stipe-fg-muted);
18755
+ font-size: var(--text-xs);
18756
+ line-height: 1;
18757
+ font-variant-numeric: tabular-nums;
18758
+ white-space: nowrap;
18759
+ }
18760
+ .parakeet-composer-row .composer-attention-label {
18761
+ position: absolute;
18762
+ width: 1px;
18763
+ height: 1px;
18764
+ padding: 0;
18765
+ margin: -1px;
18766
+ overflow: hidden;
18767
+ clip-path: inset(50%);
18768
+ white-space: nowrap;
18769
+ border-width: 0;
18770
+ }
18771
+ .parakeet-composer-row .parakeet-composer-status {
18772
+ gap: 0;
18773
+ }
18774
+ @container (max-width: 34rem) {
18775
+ .parakeet-composer-readout {
18776
+ display: none;
18777
+ }
18778
+ }
18779
+ @container (max-width: 26rem) {
18780
+ .parakeet-composer-row .parakeet-composer-model-key {
18781
+ max-width: 7rem;
18782
+ }
18783
+ }
18256
18784
  :root {
18257
18785
  --prose-max-width: 80ch;
18258
18786
  --tool-error-rail: #fff7a0;
@@ -18275,22 +18803,6 @@
18275
18803
  flex-shrink: 0;
18276
18804
  padding: 0 var(--spacing-xs) var(--spacing-xs);
18277
18805
  }
18278
- .chat-composer .composer-body {
18279
- --parakeet-completion-inset: 0px;
18280
- --parakeet-completion-face: var(--color-base-200);
18281
- --parakeet-completion-edge: var(--stipe-hairline);
18282
- display: block;
18283
- }
18284
- .chat-composer .composer-body:has(> [data-parakeet-slash]) .composer-card {
18285
- border-start-start-radius: 0;
18286
- border-start-end-radius: 0;
18287
- }
18288
- .chat-composer .composer-card {
18289
- padding: var(--spacing-sm);
18290
- }
18291
- .chat-composer .composer-card .caps-composer-input {
18292
- padding: var(--spacing-xs) var(--spacing-sm) 0;
18293
- }
18294
18806
  .chat-composer .composer-attachments {
18295
18807
  display: flex;
18296
18808
  flex-wrap: wrap;
@@ -18312,7 +18824,6 @@
18312
18824
  position: absolute;
18313
18825
  inset-block-start: 0;
18314
18826
  inset-inline-end: 0;
18315
- background: var(--color-base-100);
18316
18827
  opacity: 0;
18317
18828
  }
18318
18829
  .chat-composer .composer-attachments li:hover .composer-attachment-remove, .chat-composer .composer-attachments li:focus-within .composer-attachment-remove {
@@ -18323,21 +18834,10 @@
18323
18834
  opacity: 1;
18324
18835
  }
18325
18836
  }
18326
- .chat-composer .composer-footer {
18327
- padding: var(--spacing-xs);
18328
- }
18329
- .chat-composer .composer-model-key {
18330
- flex: 0 1 220px;
18331
- min-width: 0;
18332
- font-size: var(--text-xs);
18333
- }
18334
- .chat-composer .composer-model-readout, .chat-composer .composer-status-chip {
18837
+ .chat-composer .composer-status-chip {
18335
18838
  color: var(--stipe-fg-muted);
18336
18839
  font-size: var(--text-xs);
18337
18840
  }
18338
- .chat-composer .composer-model-readout {
18339
- font-family: var(--font-mono);
18340
- }
18341
18841
  .chat-composer .composer-settings-chip {
18342
18842
  display: inline-flex;
18343
18843
  align-items: center;
@@ -18347,41 +18847,11 @@
18347
18847
  width: var(--stipe-icon-size-sm);
18348
18848
  height: var(--stipe-icon-size-sm);
18349
18849
  }
18350
- .chat-composer .composer-model-key .caps-keycap-button-label {
18351
- min-width: 0;
18352
- overflow: hidden;
18353
- text-overflow: ellipsis;
18354
- white-space: nowrap;
18355
- }
18356
- .chat-composer .composer-card {
18357
- container-type: inline-size;
18358
- }
18359
- @container (max-width: 34rem) {
18360
- .chat-composer .composer-model-key {
18361
- flex: 1 1 4rem;
18362
- }
18363
- .chat-composer [data-status-tray-chip="settings"] {
18364
- flex: 0 1 auto;
18365
- min-width: 0;
18366
- }
18367
- .chat-composer .composer-readout {
18850
+ @container (max-width: 42rem) {
18851
+ .chat-composer .composer-status-chip {
18368
18852
  display: none;
18369
18853
  }
18370
18854
  }
18371
- .chat-composer .composer-readout {
18372
- margin-inline-start: auto;
18373
- color: var(--stipe-fg-muted);
18374
- font-size: var(--text-xs);
18375
- line-height: 1;
18376
- font-variant-numeric: tabular-nums;
18377
- white-space: nowrap;
18378
- }
18379
- .chat-composer .composer-send-key {
18380
- margin-inline-start: auto;
18381
- }
18382
- .chat-composer .composer-readout + .composer-send-key {
18383
- margin-inline-start: var(--spacing-sm);
18384
- }
18385
18855
  .chat-composer .parakeet-decision {
18386
18856
  padding: var(--spacing-xs) var(--spacing-sm) 0;
18387
18857
  }
@@ -18398,9 +18868,6 @@
18398
18868
  margin-inline: calc(-1 * var(--spacing-xs));
18399
18869
  padding-inline: var(--spacing-xs);
18400
18870
  }
18401
- .chat-composer .composer-model-key {
18402
- --caps-keycap-justify: space-between;
18403
- }
18404
18871
  .parakeet-decision .parakeet-decision-list [role="option"] {
18405
18872
  padding-inline: var(--spacing-xs);
18406
18873
  background: transparent;