@alpaca-editor/core 1.0.4191 → 1.0.4192

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 (106) hide show
  1. package/dist/agents-view/AgentCard.js +1 -1
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentsView.js +7 -5
  4. package/dist/agents-view/AgentsView.js.map +1 -1
  5. package/dist/components/ui/PlaceholderInput.d.ts +41 -0
  6. package/dist/components/ui/PlaceholderInput.js +160 -0
  7. package/dist/components/ui/PlaceholderInput.js.map +1 -0
  8. package/dist/components/ui/PlaceholderInputTypes.d.ts +41 -0
  9. package/dist/components/ui/PlaceholderInputTypes.js +48 -0
  10. package/dist/components/ui/PlaceholderInputTypes.js.map +1 -0
  11. package/dist/components/ui/PlaceholderItemSelector.d.ts +7 -0
  12. package/dist/components/ui/PlaceholderItemSelector.js +154 -0
  13. package/dist/components/ui/PlaceholderItemSelector.js.map +1 -0
  14. package/dist/config/config.js +7 -14
  15. package/dist/config/config.js.map +1 -1
  16. package/dist/editor/ItemInfo.js +3 -3
  17. package/dist/editor/ItemInfo.js.map +1 -1
  18. package/dist/editor/QuickItemSwitcher.js +1 -1
  19. package/dist/editor/QuickItemSwitcher.js.map +1 -1
  20. package/dist/editor/ai/AgentTerminal.d.ts +7 -1
  21. package/dist/editor/ai/AgentTerminal.js +256 -382
  22. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  23. package/dist/editor/ai/Agents.js +198 -84
  24. package/dist/editor/ai/Agents.js.map +1 -1
  25. package/dist/editor/ai/AiResponseMessage.d.ts +3 -1
  26. package/dist/editor/ai/AiResponseMessage.js +65 -12
  27. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  28. package/dist/editor/ai/MediaImage.d.ts +6 -0
  29. package/dist/editor/ai/MediaImage.js +38 -0
  30. package/dist/editor/ai/MediaImage.js.map +1 -0
  31. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -1
  32. package/dist/editor/ai/ToolCallDisplay.js +13 -5
  33. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  34. package/dist/editor/client/EditorShell.js +6 -5
  35. package/dist/editor/client/EditorShell.js.map +1 -1
  36. package/dist/editor/client/hooks/useSocketMessageHandler.js +6 -4
  37. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  38. package/dist/editor/commands/componentCommands.js +2 -0
  39. package/dist/editor/commands/componentCommands.js.map +1 -1
  40. package/dist/editor/control-center/About.js +1 -1
  41. package/dist/editor/control-center/About.js.map +1 -1
  42. package/dist/editor/control-center/AllAgentsPanel.js +1 -1
  43. package/dist/editor/field-types/MultiLineText.js +1 -1
  44. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  45. package/dist/editor/services/aiService.d.ts +1 -0
  46. package/dist/editor/services/aiService.js.map +1 -1
  47. package/dist/editor/sidebar/Validation.js +1 -1
  48. package/dist/editor/sidebar/Validation.js.map +1 -1
  49. package/dist/index.d.ts +3 -0
  50. package/dist/index.js +4 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/page-wizard/PageWizard.js +3 -3
  53. package/dist/page-wizard/PageWizard.js.map +1 -1
  54. package/dist/page-wizard/WizardSteps.js +1 -1
  55. package/dist/page-wizard/WizardSteps.js.map +1 -1
  56. package/dist/revision.d.ts +2 -2
  57. package/dist/revision.js +2 -2
  58. package/dist/splash-screen/ModernSplashScreen.d.ts +8 -0
  59. package/dist/splash-screen/ModernSplashScreen.js +92 -0
  60. package/dist/splash-screen/ModernSplashScreen.js.map +1 -0
  61. package/dist/splash-screen/OpenPage.js +10 -6
  62. package/dist/splash-screen/OpenPage.js.map +1 -1
  63. package/dist/splash-screen/ParheliaAssistantChat.d.ts +8 -0
  64. package/dist/splash-screen/ParheliaAssistantChat.js +155 -0
  65. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -0
  66. package/dist/splash-screen/RecentAgents.d.ts +7 -0
  67. package/dist/splash-screen/RecentAgents.js +76 -0
  68. package/dist/splash-screen/RecentAgents.js.map +1 -0
  69. package/dist/splash-screen/RecentPages.js +2 -2
  70. package/dist/splash-screen/RecentPages.js.map +1 -1
  71. package/dist/splash-screen/SplashScreen.js +1 -1
  72. package/dist/splash-screen/SplashScreen.js.map +1 -1
  73. package/dist/styles.css +244 -12
  74. package/package.json +1 -1
  75. package/src/agents-view/AgentCard.tsx +1 -6
  76. package/src/agents-view/AgentsView.tsx +18 -30
  77. package/src/components/ui/PlaceholderInput.tsx +290 -0
  78. package/src/components/ui/PlaceholderInputTypes.tsx +97 -0
  79. package/src/components/ui/PlaceholderItemSelector.tsx +253 -0
  80. package/src/config/config.tsx +8 -17
  81. package/src/editor/ItemInfo.tsx +3 -2
  82. package/src/editor/QuickItemSwitcher.tsx +1 -1
  83. package/src/editor/ai/AgentTerminal.tsx +544 -649
  84. package/src/editor/ai/Agents.tsx +464 -250
  85. package/src/editor/ai/AiResponseMessage.tsx +134 -29
  86. package/src/editor/ai/MediaImage.tsx +75 -0
  87. package/src/editor/ai/ToolCallDisplay.tsx +18 -4
  88. package/src/editor/client/EditorShell.tsx +9 -6
  89. package/src/editor/client/hooks/useSocketMessageHandler.ts +6 -7
  90. package/src/editor/commands/componentCommands.tsx +1 -0
  91. package/src/editor/control-center/About.tsx +2 -2
  92. package/src/editor/control-center/AllAgentsPanel.tsx +1 -1
  93. package/src/editor/field-types/MultiLineText.tsx +1 -1
  94. package/src/editor/services/aiService.ts +2 -0
  95. package/src/editor/sidebar/Validation.tsx +1 -1
  96. package/src/index.ts +5 -0
  97. package/src/page-wizard/PageWizard.tsx +3 -3
  98. package/src/page-wizard/WizardSteps.tsx +1 -1
  99. package/src/revision.ts +2 -2
  100. package/src/splash-screen/ModernSplashScreen.tsx +229 -0
  101. package/src/splash-screen/OpenPage.tsx +12 -4
  102. package/src/splash-screen/ParheliaAssistantChat.tsx +273 -0
  103. package/src/splash-screen/RecentAgents.tsx +151 -0
  104. package/src/splash-screen/RecentPages.tsx +58 -61
  105. package/src/splash-screen/SplashScreen.tsx +1 -1
  106. package/styles.css +20 -0
package/dist/styles.css CHANGED
@@ -71,12 +71,16 @@
71
71
  --color-indigo-800: oklch(39.8% 0.195 277.366);
72
72
  --color-indigo-950: oklch(25.7% 0.09 281.288);
73
73
  --color-violet-600: oklch(54.1% 0.281 293.009);
74
+ --color-purple-50: oklch(97.7% 0.014 308.299);
74
75
  --color-purple-100: oklch(94.6% 0.033 307.174);
75
76
  --color-purple-200: oklch(90.2% 0.063 306.703);
76
77
  --color-purple-400: oklch(71.4% 0.203 305.504);
77
78
  --color-purple-500: oklch(62.7% 0.265 303.9);
78
79
  --color-purple-600: oklch(55.8% 0.288 302.321);
79
80
  --color-purple-800: oklch(43.8% 0.218 303.724);
81
+ --color-pink-50: oklch(97.1% 0.014 343.198);
82
+ --color-pink-100: oklch(94.8% 0.028 342.258);
83
+ --color-pink-500: oklch(65.6% 0.241 354.308);
80
84
  --color-pink-600: oklch(59.2% 0.249 0.584);
81
85
  --color-rose-600: oklch(58.6% 0.253 17.585);
82
86
  --color-rose-700: oklch(51.4% 0.222 16.935);
@@ -103,7 +107,9 @@
103
107
  --container-md: 28rem;
104
108
  --container-lg: 32rem;
105
109
  --container-xl: 36rem;
110
+ --container-3xl: 48rem;
106
111
  --container-4xl: 56rem;
112
+ --container-5xl: 64rem;
107
113
  --container-6xl: 72rem;
108
114
  --text-xs: 0.75rem;
109
115
  --text-xs--line-height: calc(1 / 0.75);
@@ -117,6 +123,8 @@
117
123
  --text-xl--line-height: calc(1.75 / 1.25);
118
124
  --text-2xl: 1.5rem;
119
125
  --text-2xl--line-height: calc(2 / 1.5);
126
+ --text-3xl: 1.875rem;
127
+ --text-3xl--line-height: calc(2.25 / 1.875);
120
128
  --text-4xl: 2.25rem;
121
129
  --text-4xl--line-height: calc(2.5 / 2.25);
122
130
  --font-weight-extralight: 200;
@@ -283,9 +291,6 @@
283
291
  .right-2 {
284
292
  right: calc(var(--spacing) * 2);
285
293
  }
286
- .right-3 {
287
- right: calc(var(--spacing) * 3);
288
- }
289
294
  .right-4 {
290
295
  right: calc(var(--spacing) * 4);
291
296
  }
@@ -322,9 +327,6 @@
322
327
  .left-2 {
323
328
  left: calc(var(--spacing) * 2);
324
329
  }
325
- .left-3 {
326
- left: calc(var(--spacing) * 3);
327
- }
328
330
  .left-\[-1000px\] {
329
331
  left: -1000px;
330
332
  }
@@ -418,6 +420,9 @@
418
420
  .my-2 {
419
421
  margin-block: calc(var(--spacing) * 2);
420
422
  }
423
+ .my-3 {
424
+ margin-block: calc(var(--spacing) * 3);
425
+ }
421
426
  .my-4 {
422
427
  margin-block: calc(var(--spacing) * 4);
423
428
  }
@@ -439,6 +444,9 @@
439
444
  .mt-6 {
440
445
  margin-top: calc(var(--spacing) * 6);
441
446
  }
447
+ .mt-8 {
448
+ margin-top: calc(var(--spacing) * 8);
449
+ }
442
450
  .mt-\[-3px\] {
443
451
  margin-top: -3px;
444
452
  }
@@ -493,6 +501,9 @@
493
501
  .mb-6 {
494
502
  margin-bottom: calc(var(--spacing) * 6);
495
503
  }
504
+ .mb-8 {
505
+ margin-bottom: calc(var(--spacing) * 8);
506
+ }
496
507
  .mb-\[-3px\] {
497
508
  margin-bottom: -3px;
498
509
  }
@@ -729,6 +740,9 @@
729
740
  .h-\[160px\] {
730
741
  height: 160px;
731
742
  }
743
+ .h-\[450px\] {
744
+ height: 450px;
745
+ }
732
746
  .h-\[600px\] {
733
747
  height: 600px;
734
748
  }
@@ -747,6 +761,9 @@
747
761
  .h-px {
748
762
  height: 1px;
749
763
  }
764
+ .h-screen {
765
+ height: 100vh;
766
+ }
750
767
  .max-h-\(--radix-dropdown-menu-content-available-height\) {
751
768
  max-height: var(--radix-dropdown-menu-content-available-height);
752
769
  }
@@ -972,6 +989,9 @@
972
989
  .w-\[400px\] {
973
990
  width: 400px;
974
991
  }
992
+ .w-\[700px\] {
993
+ width: 700px;
994
+ }
975
995
  .w-auto {
976
996
  width: auto;
977
997
  }
@@ -981,9 +1001,15 @@
981
1001
  .w-full {
982
1002
  width: 100%;
983
1003
  }
1004
+ .max-w-3xl {
1005
+ max-width: var(--container-3xl);
1006
+ }
984
1007
  .max-w-4xl {
985
1008
  max-width: var(--container-4xl);
986
1009
  }
1010
+ .max-w-5xl {
1011
+ max-width: var(--container-5xl);
1012
+ }
987
1013
  .max-w-6xl {
988
1014
  max-width: var(--container-6xl);
989
1015
  }
@@ -1005,9 +1031,15 @@
1005
1031
  .max-w-\[90vw\] {
1006
1032
  max-width: 90vw;
1007
1033
  }
1034
+ .max-w-\[200px\] {
1035
+ max-width: 200px;
1036
+ }
1008
1037
  .max-w-\[240px\] {
1009
1038
  max-width: 240px;
1010
1039
  }
1040
+ .max-w-\[300px\] {
1041
+ max-width: 300px;
1042
+ }
1011
1043
  .max-w-\[320px\] {
1012
1044
  max-width: 320px;
1013
1045
  }
@@ -1062,12 +1094,18 @@
1062
1094
  .min-w-\[16px\] {
1063
1095
  min-width: 16px;
1064
1096
  }
1097
+ .min-w-\[80px\] {
1098
+ min-width: 80px;
1099
+ }
1065
1100
  .min-w-\[90px\] {
1066
1101
  min-width: 90px;
1067
1102
  }
1068
1103
  .min-w-\[120px\] {
1069
1104
  min-width: 120px;
1070
1105
  }
1106
+ .min-w-\[150px\] {
1107
+ min-width: 150px;
1108
+ }
1071
1109
  .min-w-\[450px\] {
1072
1110
  min-width: 450px;
1073
1111
  }
@@ -1303,6 +1341,9 @@
1303
1341
  .content-start {
1304
1342
  align-content: flex-start;
1305
1343
  }
1344
+ .items-baseline {
1345
+ align-items: baseline;
1346
+ }
1306
1347
  .items-center {
1307
1348
  align-items: center;
1308
1349
  }
@@ -1816,6 +1857,12 @@
1816
1857
  .bg-blue-50 {
1817
1858
  background-color: var(--color-blue-50);
1818
1859
  }
1860
+ .bg-blue-50\/50 {
1861
+ background-color: color-mix(in srgb, oklch(97% 0.014 254.604) 50%, transparent);
1862
+ @supports (color: color-mix(in lab, red, red)) {
1863
+ background-color: color-mix(in oklab, var(--color-blue-50) 50%, transparent);
1864
+ }
1865
+ }
1819
1866
  .bg-blue-100 {
1820
1867
  background-color: var(--color-blue-100);
1821
1868
  }
@@ -2091,6 +2138,25 @@
2091
2138
  --tw-gradient-from: var(--color-gray-50);
2092
2139
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2093
2140
  }
2141
+ .from-purple-50\/30 {
2142
+ --tw-gradient-from: color-mix(in srgb, oklch(97.7% 0.014 308.299) 30%, transparent);
2143
+ @supports (color: color-mix(in lab, red, red)) {
2144
+ --tw-gradient-from: color-mix(in oklab, var(--color-purple-50) 30%, transparent);
2145
+ }
2146
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2147
+ }
2148
+ .from-purple-100 {
2149
+ --tw-gradient-from: var(--color-purple-100);
2150
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2151
+ }
2152
+ .via-pink-50\/20 {
2153
+ --tw-gradient-via: color-mix(in srgb, oklch(97.1% 0.014 343.198) 20%, transparent);
2154
+ @supports (color: color-mix(in lab, red, red)) {
2155
+ --tw-gradient-via: color-mix(in oklab, var(--color-pink-50) 20%, transparent);
2156
+ }
2157
+ --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
2158
+ --tw-gradient-stops: var(--tw-gradient-via-stops);
2159
+ }
2094
2160
  .to-amber-50\/30 {
2095
2161
  --tw-gradient-to: color-mix(in srgb, oklch(98.7% 0.022 95.277) 30%, transparent);
2096
2162
  @supports (color: color-mix(in lab, red, red)) {
@@ -2098,6 +2164,13 @@
2098
2164
  }
2099
2165
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2100
2166
  }
2167
+ .to-blue-50\/30 {
2168
+ --tw-gradient-to: color-mix(in srgb, oklch(97% 0.014 254.604) 30%, transparent);
2169
+ @supports (color: color-mix(in lab, red, red)) {
2170
+ --tw-gradient-to: color-mix(in oklab, var(--color-blue-50) 30%, transparent);
2171
+ }
2172
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2173
+ }
2101
2174
  .to-gray-50\/30 {
2102
2175
  --tw-gradient-to: color-mix(in srgb, oklch(98.5% 0.002 247.839) 30%, transparent);
2103
2176
  @supports (color: color-mix(in lab, red, red)) {
@@ -2105,6 +2178,10 @@
2105
2178
  }
2106
2179
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2107
2180
  }
2181
+ .to-pink-100 {
2182
+ --tw-gradient-to: var(--color-pink-100);
2183
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2184
+ }
2108
2185
  .to-purple-500 {
2109
2186
  --tw-gradient-to: var(--color-purple-500);
2110
2187
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
@@ -2283,9 +2360,6 @@
2283
2360
  .pr-8 {
2284
2361
  padding-right: calc(var(--spacing) * 8);
2285
2362
  }
2286
- .pr-10 {
2287
- padding-right: calc(var(--spacing) * 10);
2288
- }
2289
2363
  .pb-1 {
2290
2364
  padding-bottom: calc(var(--spacing) * 1);
2291
2365
  }
@@ -2313,12 +2387,12 @@
2313
2387
  .pl-8 {
2314
2388
  padding-left: calc(var(--spacing) * 8);
2315
2389
  }
2316
- .pl-10 {
2317
- padding-left: calc(var(--spacing) * 10);
2318
- }
2319
2390
  .text-center {
2320
2391
  text-align: center;
2321
2392
  }
2393
+ .text-end {
2394
+ text-align: end;
2395
+ }
2322
2396
  .text-left {
2323
2397
  text-align: left;
2324
2398
  }
@@ -2332,6 +2406,10 @@
2332
2406
  font-size: var(--text-2xl);
2333
2407
  line-height: var(--tw-leading, var(--text-2xl--line-height));
2334
2408
  }
2409
+ .text-3xl {
2410
+ font-size: var(--text-3xl);
2411
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
2412
+ }
2335
2413
  .text-4xl {
2336
2414
  font-size: var(--text-4xl);
2337
2415
  line-height: var(--tw-leading, var(--text-4xl--line-height));
@@ -2371,6 +2449,9 @@
2371
2449
  .text-\[10px\] {
2372
2450
  font-size: 10px;
2373
2451
  }
2452
+ .text-\[11px\] {
2453
+ font-size: 11px;
2454
+ }
2374
2455
  .text-\[12px\] {
2375
2456
  font-size: 12px;
2376
2457
  }
@@ -2464,6 +2545,9 @@
2464
2545
  .text-blue-300 {
2465
2546
  color: var(--color-blue-300);
2466
2547
  }
2548
+ .text-blue-400 {
2549
+ color: var(--color-blue-400);
2550
+ }
2467
2551
  .text-blue-500 {
2468
2552
  color: var(--color-blue-500);
2469
2553
  }
@@ -2650,6 +2734,9 @@
2650
2734
  .opacity-0 {
2651
2735
  opacity: 0%;
2652
2736
  }
2737
+ .opacity-20 {
2738
+ opacity: 20%;
2739
+ }
2653
2740
  .opacity-40 {
2654
2741
  opacity: 40%;
2655
2742
  }
@@ -2881,6 +2968,22 @@
2881
2968
  }
2882
2969
  }
2883
2970
  }
2971
+ .group-hover\:from-purple-500 {
2972
+ &:is(:where(.group):hover *) {
2973
+ @media (hover: hover) {
2974
+ --tw-gradient-from: var(--color-purple-500);
2975
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2976
+ }
2977
+ }
2978
+ }
2979
+ .group-hover\:to-pink-500 {
2980
+ &:is(:where(.group):hover *) {
2981
+ @media (hover: hover) {
2982
+ --tw-gradient-to: var(--color-pink-500);
2983
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2984
+ }
2985
+ }
2986
+ }
2884
2987
  .group-hover\:text-blue-500 {
2885
2988
  &:is(:where(.group):hover *) {
2886
2989
  @media (hover: hover) {
@@ -2888,6 +2991,13 @@
2888
2991
  }
2889
2992
  }
2890
2993
  }
2994
+ .group-hover\:text-white {
2995
+ &:is(:where(.group):hover *) {
2996
+ @media (hover: hover) {
2997
+ color: var(--color-white);
2998
+ }
2999
+ }
3000
+ }
2891
3001
  .group-hover\:opacity-100 {
2892
3002
  &:is(:where(.group):hover *) {
2893
3003
  @media (hover: hover) {
@@ -2949,6 +3059,11 @@
2949
3059
  color: var(--foreground);
2950
3060
  }
2951
3061
  }
3062
+ .placeholder\:text-blue-400 {
3063
+ &::placeholder {
3064
+ color: var(--color-blue-400);
3065
+ }
3066
+ }
2952
3067
  .placeholder\:text-muted-foreground {
2953
3068
  &::placeholder {
2954
3069
  color: var(--muted-foreground);
@@ -3027,6 +3142,13 @@
3027
3142
  }
3028
3143
  }
3029
3144
  }
3145
+ .hover\:scale-\[1\.02\] {
3146
+ &:hover {
3147
+ @media (hover: hover) {
3148
+ scale: 1.02;
3149
+ }
3150
+ }
3151
+ }
3030
3152
  .hover\:border-blue-300 {
3031
3153
  &:hover {
3032
3154
  @media (hover: hover) {
@@ -3034,6 +3156,13 @@
3034
3156
  }
3035
3157
  }
3036
3158
  }
3159
+ .hover\:border-blue-500 {
3160
+ &:hover {
3161
+ @media (hover: hover) {
3162
+ border-color: var(--color-blue-500);
3163
+ }
3164
+ }
3165
+ }
3037
3166
  .hover\:border-gray-300 {
3038
3167
  &:hover {
3039
3168
  @media (hover: hover) {
@@ -3117,6 +3246,13 @@
3117
3246
  }
3118
3247
  }
3119
3248
  }
3249
+ .hover\:bg-blue-100 {
3250
+ &:hover {
3251
+ @media (hover: hover) {
3252
+ background-color: var(--color-blue-100);
3253
+ }
3254
+ }
3255
+ }
3120
3256
  .hover\:bg-blue-200 {
3121
3257
  &:hover {
3122
3258
  @media (hover: hover) {
@@ -3346,6 +3482,16 @@
3346
3482
  }
3347
3483
  }
3348
3484
  }
3485
+ .hover\:bg-white\/50 {
3486
+ &:hover {
3487
+ @media (hover: hover) {
3488
+ background-color: color-mix(in srgb, #fff 50%, transparent);
3489
+ @supports (color: color-mix(in lab, red, red)) {
3490
+ background-color: color-mix(in oklab, var(--color-white) 50%, transparent);
3491
+ }
3492
+ }
3493
+ }
3494
+ }
3349
3495
  .hover\:bg-white\/60 {
3350
3496
  &:hover {
3351
3497
  @media (hover: hover) {
@@ -3531,6 +3677,11 @@
3531
3677
  border-color: var(--color-blue-500);
3532
3678
  }
3533
3679
  }
3680
+ .focus\:border-blue-600 {
3681
+ &:focus {
3682
+ border-color: var(--color-blue-600);
3683
+ }
3684
+ }
3534
3685
  .focus\:bg-\[\#f6eeff\] {
3535
3686
  &:focus {
3536
3687
  background-color: #f6eeff;
@@ -3541,6 +3692,11 @@
3541
3692
  background-color: var(--accent);
3542
3693
  }
3543
3694
  }
3695
+ .focus\:bg-blue-100 {
3696
+ &:focus {
3697
+ background-color: var(--color-blue-100);
3698
+ }
3699
+ }
3544
3700
  .focus\:text-accent-foreground {
3545
3701
  &:focus {
3546
3702
  color: var(--accent-foreground);
@@ -3568,6 +3724,14 @@
3568
3724
  --tw-ring-color: var(--color-blue-500);
3569
3725
  }
3570
3726
  }
3727
+ .focus\:ring-blue-500\/30 {
3728
+ &:focus {
3729
+ --tw-ring-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 30%, transparent);
3730
+ @supports (color: color-mix(in lab, red, red)) {
3731
+ --tw-ring-color: color-mix(in oklab, var(--color-blue-500) 30%, transparent);
3732
+ }
3733
+ }
3734
+ }
3571
3735
  .focus\:ring-ring {
3572
3736
  &:focus {
3573
3737
  --tw-ring-color: var(--ring);
@@ -3660,6 +3824,11 @@
3660
3824
  }
3661
3825
  }
3662
3826
  }
3827
+ .active\:scale-\[0\.98\] {
3828
+ &:active {
3829
+ scale: 0.98;
3830
+ }
3831
+ }
3663
3832
  .disabled\:pointer-events-none {
3664
3833
  &:disabled {
3665
3834
  pointer-events: none;
@@ -3977,6 +4146,11 @@
3977
4146
  margin-top: calc(var(--spacing) * 6);
3978
4147
  }
3979
4148
  }
4149
+ .md\:mt-12 {
4150
+ @media (width >= 48rem) {
4151
+ margin-top: calc(var(--spacing) * 12);
4152
+ }
4153
+ }
3980
4154
  .md\:mt-18 {
3981
4155
  @media (width >= 48rem) {
3982
4156
  margin-top: calc(var(--spacing) * 18);
@@ -3987,6 +4161,11 @@
3987
4161
  margin-bottom: calc(var(--spacing) * 5);
3988
4162
  }
3989
4163
  }
4164
+ .md\:mb-12 {
4165
+ @media (width >= 48rem) {
4166
+ margin-bottom: calc(var(--spacing) * 12);
4167
+ }
4168
+ }
3990
4169
  .md\:mb-20 {
3991
4170
  @media (width >= 48rem) {
3992
4171
  margin-bottom: calc(var(--spacing) * 20);
@@ -4007,6 +4186,11 @@
4007
4186
  display: table-cell;
4008
4187
  }
4009
4188
  }
4189
+ .md\:h-14 {
4190
+ @media (width >= 48rem) {
4191
+ height: calc(var(--spacing) * 14);
4192
+ }
4193
+ }
4010
4194
  .md\:h-64 {
4011
4195
  @media (width >= 48rem) {
4012
4196
  height: calc(var(--spacing) * 64);
@@ -4042,6 +4226,11 @@
4042
4226
  width: calc(var(--spacing) * 8);
4043
4227
  }
4044
4228
  }
4229
+ .md\:w-14 {
4230
+ @media (width >= 48rem) {
4231
+ width: calc(var(--spacing) * 14);
4232
+ }
4233
+ }
4045
4234
  .md\:w-64 {
4046
4235
  @media (width >= 48rem) {
4047
4236
  width: calc(var(--spacing) * 64);
@@ -4087,6 +4276,11 @@
4087
4276
  grid-template-columns: repeat(3, minmax(0, 1fr));
4088
4277
  }
4089
4278
  }
4279
+ .md\:grid-cols-4 {
4280
+ @media (width >= 48rem) {
4281
+ grid-template-columns: repeat(4, minmax(0, 1fr));
4282
+ }
4283
+ }
4090
4284
  .md\:flex-row {
4091
4285
  @media (width >= 48rem) {
4092
4286
  flex-direction: row;
@@ -4102,6 +4296,11 @@
4102
4296
  justify-content: center;
4103
4297
  }
4104
4298
  }
4299
+ .md\:gap-4 {
4300
+ @media (width >= 48rem) {
4301
+ gap: calc(var(--spacing) * 4);
4302
+ }
4303
+ }
4105
4304
  .md\:gap-10 {
4106
4305
  @media (width >= 48rem) {
4107
4306
  gap: calc(var(--spacing) * 10);
@@ -4137,6 +4336,11 @@
4137
4336
  padding-block: calc(var(--spacing) * 2);
4138
4337
  }
4139
4338
  }
4339
+ .md\:py-12 {
4340
+ @media (width >= 48rem) {
4341
+ padding-block: calc(var(--spacing) * 12);
4342
+ }
4343
+ }
4140
4344
  .md\:pt-0 {
4141
4345
  @media (width >= 48rem) {
4142
4346
  padding-top: calc(var(--spacing) * 0);
@@ -4152,6 +4356,18 @@
4152
4356
  padding-left: calc(var(--spacing) * 4);
4153
4357
  }
4154
4358
  }
4359
+ .md\:text-4xl {
4360
+ @media (width >= 48rem) {
4361
+ font-size: var(--text-4xl);
4362
+ line-height: var(--tw-leading, var(--text-4xl--line-height));
4363
+ }
4364
+ }
4365
+ .md\:text-base {
4366
+ @media (width >= 48rem) {
4367
+ font-size: var(--text-base);
4368
+ line-height: var(--tw-leading, var(--text-base--line-height));
4369
+ }
4370
+ }
4155
4371
  .md\:text-lg {
4156
4372
  @media (width >= 48rem) {
4157
4373
  font-size: var(--text-lg);
@@ -5489,6 +5705,22 @@ html, body {
5489
5705
  [data-side="right"].slide-in-from-left-2 {
5490
5706
  animation-name: slide-in-from-left;
5491
5707
  }
5708
+ ::view-transition-old(.slide-fade-in) {
5709
+ animation: 200ms cubic-bezier(0.4, 0, 0.2, 1) both fade-out;
5710
+ }
5711
+ ::view-transition-new(.slide-fade-in) {
5712
+ animation: 400ms cubic-bezier(0.4, 0, 0.2, 1) both slide-fade-in-animation;
5713
+ }
5714
+ @keyframes slide-fade-in-animation {
5715
+ from {
5716
+ opacity: 0;
5717
+ transform: translateY(20px);
5718
+ }
5719
+ to {
5720
+ opacity: 1;
5721
+ transform: translateY(0);
5722
+ }
5723
+ }
5492
5724
  @property --tw-border-spacing-x {
5493
5725
  syntax: "<length>";
5494
5726
  inherits: false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpaca-editor/core",
3
- "version": "1.0.4191",
3
+ "version": "1.0.4192",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -114,12 +114,7 @@ export function AgentCard({
114
114
  {agent.totalCost !== undefined && agent.totalCost > 0 && (
115
115
  <div className="flex items-center gap-2">
116
116
  <span className="font-medium">Cost:</span>
117
- <span>${agent.totalCost.toFixed(4)}</span>
118
- {agent.totalTokensUsed !== undefined && (
119
- <span className="text-gray-400">
120
- ({agent.totalTokensUsed.toLocaleString()} tokens)
121
- </span>
122
- )}
117
+ <span>${agent.totalCost.toFixed(2)}</span>
123
118
  </div>
124
119
  )}
125
120
  </div>
@@ -8,11 +8,13 @@ import {
8
8
  deleteAgent,
9
9
  } from "../editor/services/agentService";
10
10
  import { cn } from "../lib/utils";
11
- import { RefreshCw, Search, XCircle } from "lucide-react";
11
+ import { RefreshCw } from "lucide-react";
12
12
  import { SimpleIconButton } from "../editor/ui/SimpleIconButton";
13
+ import { FilterInput } from "../components/FilterInput";
13
14
  import { useEditContext } from "../editor/client/editContext";
14
15
  import { AgentCard } from "./AgentCard";
15
16
  import { ProfileAgentsGroup } from "./ProfileAgentsGroup";
17
+ import { Checkbox } from "../components/ui/checkbox";
16
18
 
17
19
  /**
18
20
  * Agents overview view that displays active agents at the top
@@ -208,16 +210,16 @@ export function AgentsView() {
208
210
  };
209
211
 
210
212
  const handleResumeAgent = (agent: Agent) => {
211
- editContext?.switchView("page-editor");
213
+ // Ensure agents panel is visible, but don't switch views
212
214
  editContext?.setShowAgentsPanel?.(true);
213
- // Delay for panel mount, then dispatch event to open existing agent
215
+ // Delay briefly for any UI updates, then dispatch event to open existing agent
214
216
  setTimeout(() => {
215
217
  window.dispatchEvent(
216
218
  new CustomEvent("editor:openAgent", {
217
219
  detail: { agentId: agent.id },
218
220
  }),
219
221
  );
220
- }, 500);
222
+ }, 100);
221
223
  };
222
224
 
223
225
  const handleCloseAgent = async (agentId: string, agentName: string) => {
@@ -315,7 +317,7 @@ export function AgentsView() {
315
317
  <div className="flex-shrink-0 border-b border-gray-200 bg-white p-4">
316
318
  <div className="mb-3 flex items-center justify-between">
317
319
  <div>
318
- <h2 className="text-lg font-semibold text-gray-900">Agents</h2>
320
+ <h2 className="text-md font-semibold text-dark">Agents</h2>
319
321
  <p className="text-xs text-gray-500">
320
322
  {totalActiveCount} active, {totalClosedCount} closed ({totalCount}{" "}
321
323
  total)
@@ -340,38 +342,24 @@ export function AgentsView() {
340
342
  {/* Filter Toggle */}
341
343
  <div className="mb-3">
342
344
  <label className="flex cursor-pointer items-center gap-2 text-sm">
343
- <input
344
- type="checkbox"
345
+ <Checkbox
345
346
  checked={showOnlyMyAgents}
346
- onChange={(e) => setShowOnlyMyAgents(e.target.checked)}
347
- className="h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"
347
+ onCheckedChange={(checked) =>
348
+ setShowOnlyMyAgents(checked === true)
349
+ }
348
350
  />
349
351
  <span className="text-gray-700">Show only my agents</span>
350
352
  </label>
351
353
  </div>
352
354
 
353
355
  {/* Search */}
354
- <div className="relative">
355
- <Search
356
- className="absolute top-1/2 left-3 size-4 -translate-y-1/2 text-gray-400"
357
- strokeWidth={1}
358
- />
359
- <input
360
- type="text"
361
- placeholder="Search by name or description..."
362
- value={searchTerm}
363
- onChange={(e) => setSearchTerm(e.target.value)}
364
- className="w-full rounded border border-gray-200 py-2 pr-10 pl-10 text-sm focus:border-blue-500 focus:outline-none"
365
- />
366
- {searchTerm && (
367
- <button
368
- onClick={() => setSearchTerm("")}
369
- className="absolute top-1/2 right-3 -translate-y-1/2 text-gray-400 hover:text-gray-600"
370
- >
371
- <XCircle className="size-4" strokeWidth={1} />
372
- </button>
373
- )}
374
- </div>
356
+ <FilterInput
357
+ value={searchTerm}
358
+ onChange={setSearchTerm}
359
+ placeholder="Search by name or description..."
360
+ loading={loading && !initialLoad}
361
+ size="md"
362
+ />
375
363
  </div>
376
364
 
377
365
  {/* Content */}