@a4ui/core 0.24.3 → 0.26.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 (40) hide show
  1. package/README.md +11 -11
  2. package/dist/elements.css +145 -0
  3. package/dist/full.css +145 -0
  4. package/dist/index.d.ts +17 -1
  5. package/dist/index.js +3225 -2582
  6. package/dist/lib/createOptimistic.d.ts +17 -0
  7. package/dist/lib/easing.d.ts +42 -0
  8. package/dist/lib/viewTransition.d.ts +8 -0
  9. package/dist/ui/ArtifactPanel.d.ts +29 -0
  10. package/dist/ui/CategoryStrip.d.ts +24 -0
  11. package/dist/ui/ChatThread.d.ts +24 -0
  12. package/dist/ui/Citation.d.ts +44 -0
  13. package/dist/ui/CodeTabs.d.ts +27 -0
  14. package/dist/ui/FloatingToolbar.d.ts +26 -0
  15. package/dist/ui/InlineSelect.d.ts +33 -0
  16. package/dist/ui/MasterDetail.d.ts +27 -0
  17. package/dist/ui/Message.d.ts +28 -0
  18. package/dist/ui/PageTransition.d.ts +25 -0
  19. package/dist/ui/PillSearch.d.ts +38 -0
  20. package/dist/ui/PromptComposer.d.ts +34 -0
  21. package/dist/ui/StreamingText.d.ts +26 -0
  22. package/package.json +1 -1
  23. package/preset.js +20 -0
  24. package/src/index.ts +21 -1
  25. package/src/lib/createOptimistic.ts +43 -0
  26. package/src/lib/easing.ts +43 -0
  27. package/src/lib/viewTransition.ts +32 -0
  28. package/src/ui/ArtifactPanel.tsx +88 -0
  29. package/src/ui/CategoryStrip.tsx +80 -0
  30. package/src/ui/ChatThread.tsx +59 -0
  31. package/src/ui/Citation.tsx +97 -0
  32. package/src/ui/CodeTabs.tsx +100 -0
  33. package/src/ui/FloatingToolbar.tsx +75 -0
  34. package/src/ui/InlineSelect.tsx +101 -0
  35. package/src/ui/MasterDetail.tsx +117 -0
  36. package/src/ui/Message.tsx +69 -0
  37. package/src/ui/PageTransition.tsx +90 -0
  38. package/src/ui/PillSearch.tsx +86 -0
  39. package/src/ui/PromptComposer.tsx +138 -0
  40. package/src/ui/StreamingText.tsx +98 -0
package/dist/full.css CHANGED
@@ -1355,6 +1355,9 @@ video {
1355
1355
  max-width: 1536px;
1356
1356
  }
1357
1357
  }
1358
+ .pressed {
1359
+ box-shadow: inset 0 1px 2px hsl(var(--shadow) / 0.18);
1360
+ }
1358
1361
  .card {
1359
1362
  position: relative;
1360
1363
  background: hsl(var(--card) / 0.55);
@@ -1561,6 +1564,9 @@ html.calm .tile-glass {
1561
1564
  .left-0 {
1562
1565
  left: 0px;
1563
1566
  }
1567
+ .left-1\/2 {
1568
+ left: 50%;
1569
+ }
1564
1570
  .left-1\/3 {
1565
1571
  left: 33.333333%;
1566
1572
  }
@@ -1609,6 +1615,9 @@ html.calm .tile-glass {
1609
1615
  .top-3\.5 {
1610
1616
  top: 0.875rem;
1611
1617
  }
1618
+ .top-4 {
1619
+ top: 1rem;
1620
+ }
1612
1621
  .top-\[14vh\] {
1613
1622
  top: 14vh;
1614
1623
  }
@@ -1815,6 +1824,9 @@ html.calm .tile-glass {
1815
1824
  .h-9 {
1816
1825
  height: 2.25rem;
1817
1826
  }
1827
+ .h-\[1\.1em\] {
1828
+ height: 1.1em;
1829
+ }
1818
1830
  .h-\[12\.5\%\] {
1819
1831
  height: 12.5%;
1820
1832
  }
@@ -1875,12 +1887,18 @@ html.calm .tile-glass {
1875
1887
  .max-h-\[85vh\] {
1876
1888
  max-height: 85vh;
1877
1889
  }
1890
+ .min-h-0 {
1891
+ min-height: 0px;
1892
+ }
1878
1893
  .min-h-4 {
1879
1894
  min-height: 1rem;
1880
1895
  }
1881
1896
  .min-h-9 {
1882
1897
  min-height: 2.25rem;
1883
1898
  }
1899
+ .min-h-\[24px\] {
1900
+ min-height: 24px;
1901
+ }
1884
1902
  .min-h-\[80px\] {
1885
1903
  min-height: 80px;
1886
1904
  }
@@ -2013,6 +2031,9 @@ html.calm .tile-glass {
2013
2031
  .min-w-56 {
2014
2032
  min-width: 14rem;
2015
2033
  }
2034
+ .min-w-\[1\.1em\] {
2035
+ min-width: 1.1em;
2036
+ }
2016
2037
  .min-w-\[1\.5rem\] {
2017
2038
  min-width: 1.5rem;
2018
2039
  }
@@ -2025,6 +2046,9 @@ html.calm .tile-glass {
2025
2046
  .min-w-\[4rem\] {
2026
2047
  min-width: 4rem;
2027
2048
  }
2049
+ .min-w-\[6\.5rem\] {
2050
+ min-width: 6.5rem;
2051
+ }
2028
2052
  .min-w-\[8rem\] {
2029
2053
  min-width: 8rem;
2030
2054
  }
@@ -2040,6 +2064,9 @@ html.calm .tile-glass {
2040
2064
  .max-w-7xl {
2041
2065
  max-width: 80rem;
2042
2066
  }
2067
+ .max-w-\[12rem\] {
2068
+ max-width: 12rem;
2069
+ }
2043
2070
  .max-w-\[520px\] {
2044
2071
  max-width: 520px;
2045
2072
  }
@@ -2109,6 +2136,16 @@ html.calm .tile-glass {
2109
2136
  --tw-rotate: 90deg;
2110
2137
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2111
2138
  }
2139
+ .scale-100 {
2140
+ --tw-scale-x: 1;
2141
+ --tw-scale-y: 1;
2142
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2143
+ }
2144
+ .scale-95 {
2145
+ --tw-scale-x: .95;
2146
+ --tw-scale-y: .95;
2147
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2148
+ }
2112
2149
  .scale-\[1\.03\] {
2113
2150
  --tw-scale-x: 1.03;
2114
2151
  --tw-scale-y: 1.03;
@@ -2176,6 +2213,9 @@ html.calm .tile-glass {
2176
2213
  .select-none {
2177
2214
  user-select: none;
2178
2215
  }
2216
+ .resize-none {
2217
+ resize: none;
2218
+ }
2179
2219
  .resize-y {
2180
2220
  resize: vertical;
2181
2221
  }
@@ -2345,6 +2385,9 @@ html.calm .tile-glass {
2345
2385
  .whitespace-nowrap {
2346
2386
  white-space: nowrap;
2347
2387
  }
2388
+ .whitespace-pre-wrap {
2389
+ white-space: pre-wrap;
2390
+ }
2348
2391
  .break-words {
2349
2392
  overflow-wrap: break-word;
2350
2393
  }
@@ -2372,6 +2415,10 @@ html.calm .tile-glass {
2372
2415
  .rounded-xl {
2373
2416
  border-radius: 1rem;
2374
2417
  }
2418
+ .rounded-l-full {
2419
+ border-top-left-radius: 9999px;
2420
+ border-bottom-left-radius: 9999px;
2421
+ }
2375
2422
  .rounded-l-md {
2376
2423
  border-top-left-radius: 0.375rem;
2377
2424
  border-bottom-left-radius: 0.375rem;
@@ -2400,6 +2447,9 @@ html.calm .tile-glass {
2400
2447
  .border-b {
2401
2448
  border-bottom-width: 1px;
2402
2449
  }
2450
+ .border-b-2 {
2451
+ border-bottom-width: 2px;
2452
+ }
2403
2453
  .border-l {
2404
2454
  border-left-width: 1px;
2405
2455
  }
@@ -2435,6 +2485,10 @@ html.calm .tile-glass {
2435
2485
  .border-emerald-500\/30 {
2436
2486
  border-color: rgb(16 185 129 / 0.3);
2437
2487
  }
2488
+ .border-foreground {
2489
+ --tw-border-opacity: 1;
2490
+ border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));
2491
+ }
2438
2492
  .border-input {
2439
2493
  --tw-border-opacity: 1;
2440
2494
  border-color: hsl(var(--input) / var(--tw-border-opacity, 1));
@@ -2462,6 +2516,9 @@ html.calm .tile-glass {
2462
2516
  .border-sky-500\/30 {
2463
2517
  border-color: rgb(14 165 233 / 0.3);
2464
2518
  }
2519
+ .border-transparent {
2520
+ border-color: transparent;
2521
+ }
2465
2522
  .bg-accent {
2466
2523
  --tw-bg-opacity: 1;
2467
2524
  background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));
@@ -2624,6 +2681,9 @@ html.calm .tile-glass {
2624
2681
  .p-0 {
2625
2682
  padding: 0px;
2626
2683
  }
2684
+ .p-0\.5 {
2685
+ padding: 0.125rem;
2686
+ }
2627
2687
  .p-1 {
2628
2688
  padding: 0.25rem;
2629
2689
  }
@@ -2740,6 +2800,9 @@ html.calm .tile-glass {
2740
2800
  .pb-1 {
2741
2801
  padding-bottom: 0.25rem;
2742
2802
  }
2803
+ .pb-2 {
2804
+ padding-bottom: 0.5rem;
2805
+ }
2743
2806
  .pb-3 {
2744
2807
  padding-bottom: 0.75rem;
2745
2808
  }
@@ -2758,9 +2821,15 @@ html.calm .tile-glass {
2758
2821
  .pr-1 {
2759
2822
  padding-right: 0.25rem;
2760
2823
  }
2824
+ .pr-1\.5 {
2825
+ padding-right: 0.375rem;
2826
+ }
2761
2827
  .pr-10 {
2762
2828
  padding-right: 2.5rem;
2763
2829
  }
2830
+ .pr-2 {
2831
+ padding-right: 0.5rem;
2832
+ }
2764
2833
  .pt-0 {
2765
2834
  padding-top: 0px;
2766
2835
  }
@@ -2788,6 +2857,9 @@ html.calm .tile-glass {
2788
2857
  .align-middle {
2789
2858
  vertical-align: middle;
2790
2859
  }
2860
+ .align-super {
2861
+ vertical-align: super;
2862
+ }
2791
2863
  .font-mono {
2792
2864
  font-family: "IBM Plex Mono", ui-monospace, monospace;
2793
2865
  }
@@ -2807,6 +2879,9 @@ html.calm .tile-glass {
2807
2879
  font-size: 3rem;
2808
2880
  line-height: 1;
2809
2881
  }
2882
+ .text-\[0\.65rem\] {
2883
+ font-size: 0.65rem;
2884
+ }
2810
2885
  .text-\[10px\] {
2811
2886
  font-size: 10px;
2812
2887
  }
@@ -2863,6 +2938,9 @@ html.calm .tile-glass {
2863
2938
  .capitalize {
2864
2939
  text-transform: capitalize;
2865
2940
  }
2941
+ .italic {
2942
+ font-style: italic;
2943
+ }
2866
2944
  .tabular-nums {
2867
2945
  --tw-numeric-spacing: tabular-nums;
2868
2946
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
@@ -2870,6 +2948,9 @@ html.calm .tile-glass {
2870
2948
  .leading-none {
2871
2949
  line-height: 1;
2872
2950
  }
2951
+ .leading-relaxed {
2952
+ line-height: 1.625;
2953
+ }
2873
2954
  .leading-tight {
2874
2955
  line-height: 1.25;
2875
2956
  }
@@ -2940,6 +3021,9 @@ html.calm .tile-glass {
2940
3021
  .text-muted-foreground\/60 {
2941
3022
  color: hsl(var(--muted-foreground) / 0.6);
2942
3023
  }
3024
+ .text-muted-foreground\/70 {
3025
+ color: hsl(var(--muted-foreground) / 0.7);
3026
+ }
2943
3027
  .text-primary {
2944
3028
  --tw-text-opacity: 1;
2945
3029
  color: hsl(var(--primary) / var(--tw-text-opacity, 1));
@@ -2972,9 +3056,15 @@ html.calm .tile-glass {
2972
3056
  --tw-text-opacity: 1;
2973
3057
  color: rgb(14 165 233 / var(--tw-text-opacity, 1));
2974
3058
  }
3059
+ .underline {
3060
+ text-decoration-line: underline;
3061
+ }
2975
3062
  .line-through {
2976
3063
  text-decoration-line: line-through;
2977
3064
  }
3065
+ .decoration-border {
3066
+ text-decoration-color: hsl(var(--border) / 1);
3067
+ }
2978
3068
  .underline-offset-2 {
2979
3069
  text-underline-offset: 2px;
2980
3070
  }
@@ -3130,11 +3220,21 @@ html.calm .tile-glass {
3130
3220
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3131
3221
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3132
3222
  }
3223
+ .backdrop-blur-md {
3224
+ --tw-backdrop-blur: blur(12px);
3225
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3226
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3227
+ }
3133
3228
  .backdrop-blur-sm {
3134
3229
  --tw-backdrop-blur: blur(4px);
3135
3230
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3136
3231
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3137
3232
  }
3233
+ .backdrop-blur-xl {
3234
+ --tw-backdrop-blur: blur(24px);
3235
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3236
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3237
+ }
3138
3238
  .backdrop-filter {
3139
3239
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
3140
3240
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
@@ -3169,11 +3269,21 @@ html.calm .tile-glass {
3169
3269
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3170
3270
  transition-duration: 150ms;
3171
3271
  }
3272
+ .transition-\[opacity\2c transform\] {
3273
+ transition-property: opacity,transform;
3274
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3275
+ transition-duration: 150ms;
3276
+ }
3172
3277
  .transition-\[transform\2c opacity\] {
3173
3278
  transition-property: transform,opacity;
3174
3279
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3175
3280
  transition-duration: 150ms;
3176
3281
  }
3282
+ .transition-\[width\] {
3283
+ transition-property: width;
3284
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3285
+ transition-duration: 150ms;
3286
+ }
3177
3287
  .transition-all {
3178
3288
  transition-property: all;
3179
3289
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -3206,6 +3316,9 @@ html.calm .tile-glass {
3206
3316
  .duration-500 {
3207
3317
  transition-duration: 500ms;
3208
3318
  }
3319
+ .ease-\[\2026\] {
3320
+ transition-timing-function: …;
3321
+ }
3209
3322
  .ease-in-out {
3210
3323
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3211
3324
  }
@@ -3215,6 +3328,9 @@ html.calm .tile-glass {
3215
3328
  .will-change-transform {
3216
3329
  will-change: transform;
3217
3330
  }
3331
+ .\[scrollbar-width\:none\] {
3332
+ scrollbar-width: none;
3333
+ }
3218
3334
  .placeholder\:text-muted-foreground::placeholder {
3219
3335
  --tw-text-opacity: 1;
3220
3336
  color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));
@@ -3288,6 +3404,10 @@ html.calm .tile-glass {
3288
3404
  .hover\:bg-accent\/90:hover {
3289
3405
  background-color: hsl(var(--accent) / 0.9);
3290
3406
  }
3407
+ .hover\:bg-background:hover {
3408
+ --tw-bg-opacity: 1;
3409
+ background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));
3410
+ }
3291
3411
  .hover\:bg-muted:hover {
3292
3412
  --tw-bg-opacity: 1;
3293
3413
  background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));
@@ -3295,9 +3415,15 @@ html.calm .tile-glass {
3295
3415
  .hover\:bg-muted\/40:hover {
3296
3416
  background-color: hsl(var(--muted) / 0.4);
3297
3417
  }
3418
+ .hover\:bg-muted\/60:hover {
3419
+ background-color: hsl(var(--muted) / 0.6);
3420
+ }
3298
3421
  .hover\:bg-muted\/70:hover {
3299
3422
  background-color: hsl(var(--muted) / 0.7);
3300
3423
  }
3424
+ .hover\:bg-primary\/15:hover {
3425
+ background-color: hsl(var(--primary) / 0.15);
3426
+ }
3301
3427
  .hover\:bg-primary\/5:hover {
3302
3428
  background-color: hsl(var(--primary) / 0.05);
3303
3429
  }
@@ -3311,6 +3437,10 @@ html.calm .tile-glass {
3311
3437
  --tw-text-opacity: 1;
3312
3438
  color: hsl(var(--foreground) / var(--tw-text-opacity, 1));
3313
3439
  }
3440
+ .hover\:text-primary:hover {
3441
+ --tw-text-opacity: 1;
3442
+ color: hsl(var(--primary) / var(--tw-text-opacity, 1));
3443
+ }
3314
3444
  .hover\:underline:hover {
3315
3445
  text-decoration-line: underline;
3316
3446
  }
@@ -3491,6 +3621,10 @@ html.calm .tile-glass {
3491
3621
  }
3492
3622
  @media (prefers-reduced-motion: reduce) {
3493
3623
 
3624
+ .motion-reduce\:animate-none {
3625
+ animation: none;
3626
+ }
3627
+
3494
3628
  .motion-reduce\:transition-none {
3495
3629
  transition-property: none;
3496
3630
  }
@@ -3501,6 +3635,10 @@ html.calm .tile-glass {
3501
3635
  display: block;
3502
3636
  }
3503
3637
 
3638
+ .sm\:max-h-\[28rem\] {
3639
+ max-height: 28rem;
3640
+ }
3641
+
3504
3642
  .sm\:grid-cols-2 {
3505
3643
  grid-template-columns: repeat(2, minmax(0, 1fr));
3506
3644
  }
@@ -3509,6 +3647,10 @@ html.calm .tile-glass {
3509
3647
  grid-template-columns: repeat(3, minmax(0, 1fr));
3510
3648
  }
3511
3649
 
3650
+ .sm\:grid-cols-\[16rem_1fr\] {
3651
+ grid-template-columns: 16rem 1fr;
3652
+ }
3653
+
3512
3654
  .sm\:flex-row {
3513
3655
  flex-direction: row;
3514
3656
  }
@@ -3600,6 +3742,9 @@ html.calm .tile-glass {
3600
3742
  .\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker {
3601
3743
  display: none;
3602
3744
  }
3745
+ .\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
3746
+ display: none;
3747
+ }
3603
3748
  .\[\&\[data-expanded\]\>svg\]\:rotate-90[data-expanded]>svg {
3604
3749
  --tw-rotate: 90deg;
3605
3750
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
package/dist/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- export declare const A4UI_VERSION = "0.24.3";
1
+ export declare const A4UI_VERSION = "0.26.0";
2
2
  export { cn } from './lib/cn';
3
3
  export { useTheme, toggleTheme, setTheme, storedTheme, applyTheme, toggled, type Theme } from './lib/theme';
4
4
  export { useEffects, isCalm, setEffects } from './lib/effects';
5
5
  export { prefersReducedMotion, motionReduced, useMotionForced, setMotionForced, createCountUp, animateIn, revealOnScroll, animate, inView, scroll, stagger, spring, } from './lib/motion';
6
6
  export { useMediaQuery } from './lib/media';
7
7
  export { remeasureAfterLayout } from './lib/virtual';
8
+ export { createOptimistic } from './lib/createOptimistic';
9
+ export { startViewTransition } from './lib/viewTransition';
10
+ export { EASE, SPRING, type EaseName, type SpringName } from './lib/easing';
8
11
  export { Accordion, type AccordionItem } from './ui/Accordion';
9
12
  export { Badge, type BadgeTone } from './ui/Badge';
10
13
  export { Button, type ButtonVariant } from './ui/Button';
@@ -99,6 +102,19 @@ export { CalendarHeatmap, type HeatmapValue, type CalendarHeatmapProps } from '.
99
102
  export { Portal, type PortalProps } from './ui/Portal';
100
103
  export { Sortable, type SortableProps } from './ui/Sortable';
101
104
  export { Clock, type ClockProps } from './ui/Clock';
105
+ export { ChatThread, type ChatThreadProps } from './ui/ChatThread';
106
+ export { Message, type MessageProps, type ChatRole } from './ui/Message';
107
+ export { StreamingText, type StreamingTextProps } from './ui/StreamingText';
108
+ export { Citation, type CitationProps, SourceList, type SourceListProps } from './ui/Citation';
109
+ export { PromptComposer, type PromptComposerProps } from './ui/PromptComposer';
110
+ export { ArtifactPanel, type ArtifactPanelProps } from './ui/ArtifactPanel';
111
+ export { FloatingToolbar, type FloatingToolbarProps } from './ui/FloatingToolbar';
112
+ export { PageTransition, type PageTransitionProps } from './ui/PageTransition';
113
+ export { InlineSelect, type InlineSelectProps, type InlineSelectOption } from './ui/InlineSelect';
114
+ export { CodeTabs, type CodeTabsProps, type CodeTab } from './ui/CodeTabs';
115
+ export { PillSearch, type PillSearchProps, type PillField } from './ui/PillSearch';
116
+ export { CategoryStrip, type CategoryStripProps, type CategoryItem } from './ui/CategoryStrip';
117
+ export { MasterDetail, type MasterDetailProps, type MasterDetailItem } from './ui/MasterDetail';
102
118
  export { ScrambleText, type ScrambleTextProps } from './ui/ScrambleText';
103
119
  export { TextReveal, type TextRevealProps } from './ui/TextReveal';
104
120
  export { HoldToConfirm, type HoldToConfirmProps } from './ui/HoldToConfirm';