langgraph-ui-components 0.0.17 → 0.0.18

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 (316) hide show
  1. package/dist/index.es100.js +20 -354
  2. package/dist/index.es100.js.map +1 -1
  3. package/dist/index.es101.js +172 -127
  4. package/dist/index.es101.js.map +1 -1
  5. package/dist/index.es102.js +231 -60
  6. package/dist/index.es102.js.map +1 -1
  7. package/dist/index.es103.js +352 -34
  8. package/dist/index.es103.js.map +1 -1
  9. package/dist/index.es104.js +134 -34
  10. package/dist/index.es104.js.map +1 -1
  11. package/dist/index.es105.js +65 -161
  12. package/dist/index.es105.js.map +1 -1
  13. package/dist/index.es106.js +30 -196
  14. package/dist/index.es106.js.map +1 -1
  15. package/dist/index.es107.js +36 -13
  16. package/dist/index.es107.js.map +1 -1
  17. package/dist/index.es108.js +162 -26
  18. package/dist/index.es108.js.map +1 -1
  19. package/dist/index.es109.js +196 -27
  20. package/dist/index.es109.js.map +1 -1
  21. package/dist/index.es110.js +13 -3156
  22. package/dist/index.es110.js.map +1 -1
  23. package/dist/index.es111.js +27 -34
  24. package/dist/index.es111.js.map +1 -1
  25. package/dist/index.es112.js +34 -5
  26. package/dist/index.es112.js.map +1 -1
  27. package/dist/index.es113.js +3145 -61
  28. package/dist/index.es113.js.map +1 -1
  29. package/dist/index.es114.js +33 -33
  30. package/dist/index.es114.js.map +1 -1
  31. package/dist/index.es115.js +5 -21
  32. package/dist/index.es115.js.map +1 -1
  33. package/dist/index.es116.js +69 -64
  34. package/dist/index.es116.js.map +1 -1
  35. package/dist/index.es117.js +37 -3
  36. package/dist/index.es117.js.map +1 -1
  37. package/dist/index.es12.js +1 -1
  38. package/dist/index.es121.js +9 -9
  39. package/dist/index.es122.js +1 -1
  40. package/dist/index.es126.js +1 -1
  41. package/dist/index.es128.js +2 -2
  42. package/dist/index.es13.js +9 -3
  43. package/dist/index.es13.js.map +1 -1
  44. package/dist/index.es136.js +1 -1
  45. package/dist/index.es137.js +6 -6
  46. package/dist/index.es139.js +1 -1
  47. package/dist/index.es14.js +6 -6
  48. package/dist/index.es140.js +1 -1
  49. package/dist/index.es143.js +1 -1
  50. package/dist/index.es144.js +1 -1
  51. package/dist/index.es145.js +1 -1
  52. package/dist/index.es146.js +1 -1
  53. package/dist/index.es147.js +1 -1
  54. package/dist/index.es148.js +1 -1
  55. package/dist/index.es149.js +1 -1
  56. package/dist/index.es150.js +1 -1
  57. package/dist/index.es151.js +1 -1
  58. package/dist/index.es152.js +1 -1
  59. package/dist/index.es153.js +1 -1
  60. package/dist/index.es154.js +1 -1
  61. package/dist/index.es155.js +1 -1
  62. package/dist/index.es156.js +1 -1
  63. package/dist/index.es157.js +1 -1
  64. package/dist/index.es158.js +1 -1
  65. package/dist/index.es159.js +1 -1
  66. package/dist/index.es16.js +10 -5
  67. package/dist/index.es16.js.map +1 -1
  68. package/dist/index.es160.js +1 -1
  69. package/dist/index.es161.js +1 -1
  70. package/dist/index.es162.js +1 -1
  71. package/dist/index.es163.js +1 -1
  72. package/dist/index.es164.js +1 -1
  73. package/dist/index.es165.js +1 -1
  74. package/dist/index.es166.js +1 -1
  75. package/dist/index.es167.js +1 -1
  76. package/dist/index.es168.js +1 -1
  77. package/dist/index.es169.js +1 -1
  78. package/dist/index.es170.js +1 -1
  79. package/dist/index.es171.js +1 -1
  80. package/dist/index.es172.js +1 -1
  81. package/dist/index.es173.js +1 -1
  82. package/dist/index.es174.js +1 -1
  83. package/dist/index.es175.js +1 -1
  84. package/dist/index.es176.js +1 -1
  85. package/dist/index.es177.js +1 -1
  86. package/dist/index.es178.js +1 -1
  87. package/dist/index.es179.js +1 -1
  88. package/dist/index.es18.js +7 -7
  89. package/dist/index.es180.js +1 -1
  90. package/dist/index.es181.js +1 -1
  91. package/dist/index.es182.js +1 -1
  92. package/dist/index.es183.js +1 -1
  93. package/dist/index.es184.js +1 -1
  94. package/dist/index.es185.js +1 -1
  95. package/dist/index.es186.js +1 -1
  96. package/dist/index.es187.js +1 -1
  97. package/dist/index.es191.js +2 -56
  98. package/dist/index.es191.js.map +1 -1
  99. package/dist/index.es192.js +2 -100
  100. package/dist/index.es192.js.map +1 -1
  101. package/dist/index.es193.js +2 -191
  102. package/dist/index.es193.js.map +1 -1
  103. package/dist/index.es194.js +2 -110
  104. package/dist/index.es194.js.map +1 -1
  105. package/dist/index.es195.js +2 -35
  106. package/dist/index.es195.js.map +1 -1
  107. package/dist/index.es196.js +2 -10
  108. package/dist/index.es196.js.map +1 -1
  109. package/dist/index.es197.js +2 -11
  110. package/dist/index.es197.js.map +1 -1
  111. package/dist/index.es198.js +2 -12
  112. package/dist/index.es198.js.map +1 -1
  113. package/dist/index.es199.js +2 -91
  114. package/dist/index.es199.js.map +1 -1
  115. package/dist/index.es2.js +96 -11
  116. package/dist/index.es2.js.map +1 -1
  117. package/dist/index.es20.js +2 -2
  118. package/dist/index.es200.js +2 -275
  119. package/dist/index.es200.js.map +1 -1
  120. package/dist/index.es201.js +2 -2
  121. package/dist/index.es202.js +2 -164
  122. package/dist/index.es202.js.map +1 -1
  123. package/dist/index.es203.js +2 -51
  124. package/dist/index.es203.js.map +1 -1
  125. package/dist/index.es204.js +2 -40
  126. package/dist/index.es204.js.map +1 -1
  127. package/dist/index.es205.js +2 -35
  128. package/dist/index.es205.js.map +1 -1
  129. package/dist/index.es206.js +2 -40
  130. package/dist/index.es206.js.map +1 -1
  131. package/dist/index.es207.js +2 -24
  132. package/dist/index.es207.js.map +1 -1
  133. package/dist/index.es208.js +2 -591
  134. package/dist/index.es208.js.map +1 -1
  135. package/dist/index.es209.js +2 -125
  136. package/dist/index.es209.js.map +1 -1
  137. package/dist/index.es210.js +2 -164
  138. package/dist/index.es210.js.map +1 -1
  139. package/dist/index.es211.js +2 -2
  140. package/dist/index.es212.js +2 -2
  141. package/dist/index.es213.js +2 -2
  142. package/dist/index.es214.js +2 -2
  143. package/dist/index.es215.js +2 -2
  144. package/dist/index.es216.js +2 -2
  145. package/dist/index.es217.js +2 -2
  146. package/dist/index.es218.js +2 -2
  147. package/dist/index.es219.js +2 -2
  148. package/dist/index.es22.js +35 -119
  149. package/dist/index.es22.js.map +1 -1
  150. package/dist/index.es220.js +2 -2
  151. package/dist/index.es221.js +2 -2
  152. package/dist/index.es222.js +2 -2
  153. package/dist/index.es223.js +2 -2
  154. package/dist/index.es224.js +2 -2
  155. package/dist/index.es225.js +2 -2
  156. package/dist/index.es226.js +2 -2
  157. package/dist/index.es227.js +2 -2
  158. package/dist/index.es228.js +2 -2
  159. package/dist/index.es229.js +2 -2
  160. package/dist/index.es23.js +66 -36
  161. package/dist/index.es23.js.map +1 -1
  162. package/dist/index.es230.js +2 -2
  163. package/dist/index.es231.js +2 -2
  164. package/dist/index.es232.js +2 -2
  165. package/dist/index.es233.js +2 -2
  166. package/dist/index.es234.js +2 -2
  167. package/dist/index.es235.js +2 -2
  168. package/dist/index.es236.js +56 -2
  169. package/dist/index.es236.js.map +1 -1
  170. package/dist/index.es237.js +100 -2
  171. package/dist/index.es237.js.map +1 -1
  172. package/dist/index.es238.js +191 -2
  173. package/dist/index.es238.js.map +1 -1
  174. package/dist/index.es239.js +110 -2
  175. package/dist/index.es239.js.map +1 -1
  176. package/dist/index.es24.js +30 -64
  177. package/dist/index.es24.js.map +1 -1
  178. package/dist/index.es240.js +35 -2
  179. package/dist/index.es240.js.map +1 -1
  180. package/dist/index.es241.js +10 -2
  181. package/dist/index.es241.js.map +1 -1
  182. package/dist/index.es242.js +11 -2
  183. package/dist/index.es242.js.map +1 -1
  184. package/dist/index.es243.js +12 -2
  185. package/dist/index.es243.js.map +1 -1
  186. package/dist/index.es244.js +91 -2
  187. package/dist/index.es244.js.map +1 -1
  188. package/dist/index.es245.js +275 -2
  189. package/dist/index.es245.js.map +1 -1
  190. package/dist/index.es246.js +2 -2
  191. package/dist/index.es247.js +164 -2
  192. package/dist/index.es247.js.map +1 -1
  193. package/dist/index.es248.js +51 -2
  194. package/dist/index.es248.js.map +1 -1
  195. package/dist/index.es249.js +40 -2
  196. package/dist/index.es249.js.map +1 -1
  197. package/dist/index.es25.js +120 -29
  198. package/dist/index.es25.js.map +1 -1
  199. package/dist/index.es250.js +35 -2
  200. package/dist/index.es250.js.map +1 -1
  201. package/dist/index.es251.js +40 -2
  202. package/dist/index.es251.js.map +1 -1
  203. package/dist/index.es252.js +24 -2
  204. package/dist/index.es252.js.map +1 -1
  205. package/dist/index.es253.js +591 -2
  206. package/dist/index.es253.js.map +1 -1
  207. package/dist/index.es254.js +125 -2
  208. package/dist/index.es254.js.map +1 -1
  209. package/dist/index.es255.js +164 -2
  210. package/dist/index.es255.js.map +1 -1
  211. package/dist/index.es256.js +2 -2
  212. package/dist/index.es26.js +102 -123
  213. package/dist/index.es26.js.map +1 -1
  214. package/dist/index.es267.js +1 -1
  215. package/dist/index.es27.js +66 -101
  216. package/dist/index.es27.js.map +1 -1
  217. package/dist/index.es28.js +139 -66
  218. package/dist/index.es28.js.map +1 -1
  219. package/dist/index.es29.js +295 -131
  220. package/dist/index.es29.js.map +1 -1
  221. package/dist/index.es30.js +114 -298
  222. package/dist/index.es30.js.map +1 -1
  223. package/dist/index.es305.js +1 -1
  224. package/dist/index.es307.js +1 -1
  225. package/dist/index.es319.js +1 -1
  226. package/dist/index.es32.js +7 -7
  227. package/dist/index.es33.js +1 -1
  228. package/dist/index.es339.js +2 -2
  229. package/dist/index.es36.js +4 -4
  230. package/dist/index.es37.js +289 -114
  231. package/dist/index.es37.js.map +1 -1
  232. package/dist/index.es38.js +44 -70
  233. package/dist/index.es38.js.map +1 -1
  234. package/dist/index.es39.js +145 -19
  235. package/dist/index.es39.js.map +1 -1
  236. package/dist/index.es40.js +5 -261
  237. package/dist/index.es40.js.map +1 -1
  238. package/dist/index.es41.js +247 -38
  239. package/dist/index.es41.js.map +1 -1
  240. package/dist/index.es42.js +110 -207
  241. package/dist/index.es42.js.map +1 -1
  242. package/dist/index.es43.js +68 -64
  243. package/dist/index.es43.js.map +1 -1
  244. package/dist/index.es44.js +17 -141
  245. package/dist/index.es44.js.map +1 -1
  246. package/dist/index.es45.js +251 -14
  247. package/dist/index.es45.js.map +1 -1
  248. package/dist/index.es46.js +36 -223
  249. package/dist/index.es46.js.map +1 -1
  250. package/dist/index.es47.js +213 -7
  251. package/dist/index.es47.js.map +1 -1
  252. package/dist/index.es48.js +55 -1180
  253. package/dist/index.es48.js.map +1 -1
  254. package/dist/index.es49.js +141 -6
  255. package/dist/index.es49.js.map +1 -1
  256. package/dist/index.es50.js +21 -144
  257. package/dist/index.es50.js.map +1 -1
  258. package/dist/index.es51.js +230 -5
  259. package/dist/index.es51.js.map +1 -1
  260. package/dist/index.es52.js +8 -292
  261. package/dist/index.es52.js.map +1 -1
  262. package/dist/index.es53.js +1190 -43
  263. package/dist/index.es53.js.map +1 -1
  264. package/dist/index.es54.js +7 -144
  265. package/dist/index.es54.js.map +1 -1
  266. package/dist/index.es55.js +136 -241
  267. package/dist/index.es55.js.map +1 -1
  268. package/dist/index.es59.js +1 -1
  269. package/dist/index.es6.js +21 -8
  270. package/dist/index.es6.js.map +1 -1
  271. package/dist/index.es60.js +1 -1
  272. package/dist/index.es61.js +1 -1
  273. package/dist/index.es62.js +7 -7
  274. package/dist/index.es67.js +3 -3
  275. package/dist/index.es69.js +2 -2
  276. package/dist/index.es70.js +1 -1
  277. package/dist/index.es71.js +1 -1
  278. package/dist/index.es72.js +1 -1
  279. package/dist/index.es77.js +7 -7
  280. package/dist/index.es78.js +17 -17
  281. package/dist/index.es82.js +1 -1
  282. package/dist/index.es83.js +4 -4
  283. package/dist/index.es84.js +20 -11
  284. package/dist/index.es84.js.map +1 -1
  285. package/dist/index.es85.js +66 -38
  286. package/dist/index.es85.js.map +1 -1
  287. package/dist/index.es86.js +3 -34
  288. package/dist/index.es86.js.map +1 -1
  289. package/dist/index.es87.js +10 -230
  290. package/dist/index.es87.js.map +1 -1
  291. package/dist/index.es88.js +39 -29
  292. package/dist/index.es88.js.map +1 -1
  293. package/dist/index.es89.js +32 -73
  294. package/dist/index.es89.js.map +1 -1
  295. package/dist/index.es90.js +200 -44
  296. package/dist/index.es90.js.map +1 -1
  297. package/dist/index.es91.js +15 -37
  298. package/dist/index.es91.js.map +1 -1
  299. package/dist/index.es92.js +71 -26
  300. package/dist/index.es92.js.map +1 -1
  301. package/dist/index.es93.js +72 -39
  302. package/dist/index.es93.js.map +1 -1
  303. package/dist/index.es94.js +48 -53
  304. package/dist/index.es94.js.map +1 -1
  305. package/dist/index.es95.js +30 -13
  306. package/dist/index.es95.js.map +1 -1
  307. package/dist/index.es96.js +40 -134
  308. package/dist/index.es96.js.map +1 -1
  309. package/dist/index.es97.js +56 -20
  310. package/dist/index.es97.js.map +1 -1
  311. package/dist/index.es98.js +11 -180
  312. package/dist/index.es98.js.map +1 -1
  313. package/dist/index.es99.js +129 -233
  314. package/dist/index.es99.js.map +1 -1
  315. package/dist/styles.css +1 -1
  316. package/package.json +1 -1
@@ -1,309 +1,125 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
1
+ import { useStream } from "./index.es19.js";
2
+ import "./index.es18.js";
2
3
  import * as React from "react";
3
- import { Slot } from "@radix-ui/react-slot";
4
- import { cva } from "class-variance-authority";
5
- import { cn } from "./index.es51.js";
6
- const buttonVariants = cva(
7
- "inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
- {
9
- variants: {
10
- variant: {
11
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
12
- destructive: "bg-destructive text-primary-foreground hover:bg-destructive/90",
13
- cool: "dark:inset-shadow-2xs dark:inset-shadow-white/10 bg-linear-to-t border border-b-2 border-zinc-950/40 from-primary to-primary/85 shadow-md shadow-primary/20 ring-1 ring-inset ring-white/25 transition-[filter] duration-200 hover:brightness-110 active:brightness-90 dark:border-x-0 text-primary-foreground dark:text-primary-foreground dark:border-t-0 dark:border-primary/50 dark:ring-white/5",
14
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
15
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
- ghost: "hover:bg-accent hover:text-accent-foreground",
17
- link: "text-primary underline-offset-4 hover:underline"
18
- },
19
- size: {
20
- default: "h-9 px-4 py-2",
21
- sm: "h-8 rounded-md px-3 text-xs",
22
- lg: "h-10 rounded-md px-8",
23
- icon: "h-9 w-9"
24
- }
25
- },
26
- defaultVariants: {
27
- variant: "default",
28
- size: "default"
29
- }
30
- }
31
- );
32
- const Button = React.forwardRef(
33
- ({ className, variant, size, asChild = false, ...props }, ref) => {
34
- const Comp = asChild ? Slot : "button";
35
- return /* @__PURE__ */ jsx(
36
- Comp,
37
- {
38
- className: cn(buttonVariants({ variant, size, className })),
39
- ref,
40
- ...props
41
- }
42
- );
4
+ import * as ReactDOM from "react-dom";
5
+ import * as JsxRuntime from "react/jsx-runtime";
6
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
7
+ const UseStreamContext = React.createContext(null);
8
+ function useStreamContext() {
9
+ const ctx = React.useContext(UseStreamContext);
10
+ if (!ctx) throw new Error("useStreamContext must be used within a LoadExternalComponent");
11
+ return new Proxy(ctx, { get(target, prop) {
12
+ if (prop === "meta") return target.meta;
13
+ return target.stream[prop];
14
+ } });
15
+ }
16
+ var ComponentStore = class {
17
+ cache = {};
18
+ boundCache = {};
19
+ callbacks = {};
20
+ respond(shadowRootId, comp, targetElement) {
21
+ this.cache[shadowRootId] = {
22
+ comp,
23
+ target: targetElement
24
+ };
25
+ this.callbacks[shadowRootId]?.forEach((c) => c(comp, targetElement));
43
26
  }
44
- );
45
- Button.displayName = "Button";
46
- const liquidbuttonVariants = cva(
47
- "inline-flex items-center transition-colors justify-center cursor-pointer gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
48
- {
49
- variants: {
50
- variant: {
51
- default: "bg-transparent hover:scale-105 duration-300 transition text-primary",
52
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
53
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
54
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
55
- ghost: "hover:bg-accent hover:text-accent-foreground",
56
- link: "text-primary underline-offset-4 hover:underline"
27
+ getBoundStore(shadowRootId) {
28
+ this.boundCache[shadowRootId] ??= {
29
+ subscribe: (onStoreChange) => {
30
+ this.callbacks[shadowRootId] ??= [];
31
+ this.callbacks[shadowRootId].push(onStoreChange);
32
+ return () => {
33
+ this.callbacks[shadowRootId] = this.callbacks[shadowRootId].filter((c) => c !== onStoreChange);
34
+ };
57
35
  },
58
- size: {
59
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
60
- sm: "h-8 text-xs gap-1.5 px-4 has-[>svg]:px-4",
61
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
62
- xl: "h-12 rounded-md px-8 has-[>svg]:px-6",
63
- xxl: "h-14 rounded-md px-10 has-[>svg]:px-8",
64
- icon: "size-9"
65
- }
66
- },
67
- defaultVariants: {
68
- variant: "default",
69
- size: "xxl"
70
- }
71
- }
72
- );
73
- function LiquidButton({
74
- className,
75
- variant,
76
- size,
77
- asChild = false,
78
- children,
79
- ...props
80
- }) {
81
- const Comp = asChild ? Slot : "button";
82
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
83
- Comp,
84
- {
85
- "data-slot": "button",
86
- className: cn(
87
- "relative",
88
- liquidbuttonVariants({ variant, size, className })
89
- ),
90
- ...props,
91
- children: [
92
- /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-0 z-0 h-full w-full rounded-full \n shadow-[0_0_6px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3px_rgba(0,0,0,0.9),inset_-3px_-3px_0.5px_-3px_rgba(0,0,0,0.85),inset_1px_1px_1px_-0.5px_rgba(0,0,0,0.6),inset_-1px_-1px_1px_-0.5px_rgba(0,0,0,0.6),inset_0_0_6px_6px_rgba(0,0,0,0.12),inset_0_0_2px_2px_rgba(0,0,0,0.06),0_0_12px_rgba(255,255,255,0.15)] \n transition-all \n dark:shadow-[0_0_8px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3.5px_rgba(255,255,255,0.09),inset_-3px_-3px_0.5px_-3.5px_rgba(255,255,255,0.85),inset_1px_1px_1px_-0.5px_rgba(255,255,255,0.6),inset_-1px_-1px_1px_-0.5px_rgba(255,255,255,0.6),inset_0_0_6px_6px_rgba(255,255,255,0.12),inset_0_0_2px_2px_rgba(255,255,255,0.06),0_0_12px_rgba(0,0,0,0.15)]" }),
93
- /* @__PURE__ */ jsx(
94
- "div",
95
- {
96
- className: "absolute top-0 left-0 w-full h-full overflow-hidden rounded-md isolate -z-10",
97
- style: { backdropFilter: 'url("#container-glass")' }
98
- }
99
- ),
100
- /* @__PURE__ */ jsx("div", { className: "z-10 pointer-events-none ", children }),
101
- /* @__PURE__ */ jsx(GlassFilter, {})
102
- ]
103
- }
104
- ) });
105
- }
106
- function GlassFilter() {
107
- return /* @__PURE__ */ jsx("svg", { className: "hidden", children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
108
- "filter",
109
- {
110
- id: "container-glass",
111
- x: "0%",
112
- y: "0%",
113
- width: "100%",
114
- height: "100%",
115
- colorInterpolationFilters: "sRGB",
116
- children: [
117
- /* @__PURE__ */ jsx(
118
- "feTurbulence",
119
- {
120
- type: "fractalNoise",
121
- baseFrequency: "0.05 0.05",
122
- numOctaves: "1",
123
- seed: "1",
124
- result: "turbulence"
125
- }
126
- ),
127
- /* @__PURE__ */ jsx("feGaussianBlur", { in: "turbulence", stdDeviation: "2", result: "blurredNoise" }),
128
- /* @__PURE__ */ jsx(
129
- "feDisplacementMap",
130
- {
131
- in: "SourceGraphic",
132
- in2: "blurredNoise",
133
- scale: "70",
134
- xChannelSelector: "R",
135
- yChannelSelector: "B",
136
- result: "displaced"
137
- }
138
- ),
139
- /* @__PURE__ */ jsx("feGaussianBlur", { in: "displaced", stdDeviation: "4", result: "finalBlur" }),
140
- /* @__PURE__ */ jsx("feComposite", { in: "finalBlur", in2: "finalBlur", operator: "over" })
141
- ]
142
- }
143
- ) }) });
144
- }
145
- const colorVariants = {
146
- default: {
147
- outer: "bg-gradient-to-b from-[#000] to-[#A0A0A0]",
148
- inner: "bg-gradient-to-b from-[#FAFAFA] via-[#3E3E3E] to-[#E5E5E5]",
149
- button: "bg-gradient-to-b from-[#B9B9B9] to-[#969696]",
150
- textColor: "text-white",
151
- textShadow: "[text-shadow:0-1px_0_rgb(80_80_80_/_100%)]"
152
- },
153
- primary: {
154
- outer: "bg-gradient-to-b from-[#000] to-[#A0A0A0]",
155
- inner: "bg-gradient-to-b from-primary via-secondary to-muted",
156
- button: "bg-gradient-to-b from-primary to-primary/40",
157
- textColor: "text-white",
158
- textShadow: "[text-shadow:0-1px_0_rgb(30_58_138_/_100%)]"
159
- },
160
- success: {
161
- outer: "bg-gradient-to-b from-[#005A43] to-[#7CCB9B]",
162
- inner: "bg-gradient-to-b from-[#E5F8F0] via-[#00352F] to-[#D1F0E6]",
163
- button: "bg-gradient-to-b from-[#9ADBC8] to-[#3E8F7C]",
164
- textColor: "text-[#FFF7F0]",
165
- textShadow: "[text-shadow:0-1px_0_rgb(6_78_59_/_100%)]"
166
- },
167
- error: {
168
- outer: "bg-gradient-to-b from-[#5A0000] to-[#FFAEB0]",
169
- inner: "bg-gradient-to-b from-[#FFDEDE] via-[#680002] to-[#FFE9E9]",
170
- button: "bg-gradient-to-b from-[#F08D8F] to-[#A45253]",
171
- textColor: "text-[#FFF7F0]",
172
- textShadow: "[text-shadow:0-1px_0_rgb(146_64_14_/_100%)]"
173
- },
174
- gold: {
175
- outer: "bg-gradient-to-b from-[#917100] to-[#EAD98F]",
176
- inner: "bg-gradient-to-b from-[#FFFDDD] via-[#856807] to-[#FFF1B3]",
177
- button: "bg-gradient-to-b from-[#FFEBA1] to-[#9B873F]",
178
- textColor: "text-[#FFFDE5]",
179
- textShadow: "[text-shadow:0-1px_0_rgb(178_140_2_/_100%)]"
180
- },
181
- bronze: {
182
- outer: "bg-gradient-to-b from-[#864813] to-[#E9B486]",
183
- inner: "bg-gradient-to-b from-[#EDC5A1] via-[#5F2D01] to-[#FFDEC1]",
184
- button: "bg-gradient-to-b from-[#FFE3C9] to-[#A36F3D]",
185
- textColor: "text-[#FFF7F0]",
186
- textShadow: "[text-shadow:0-1px_0_rgb(124_45_18_/_100%)]"
36
+ getSnapshot: () => this.cache[shadowRootId]
37
+ };
38
+ return this.boundCache[shadowRootId];
187
39
  }
188
40
  };
189
- const metalButtonVariants = (variant = "default", isPressed, isHovered, isTouchDevice) => {
190
- const colors = colorVariants[variant];
191
- const transitionStyle = "all 250ms cubic-bezier(0.1, 0.4, 0.2, 1)";
192
- return {
193
- wrapper: cn(
194
- "relative inline-flex transform-gpu rounded-md p-[1.25px] will-change-transform",
195
- colors.outer
196
- ),
197
- wrapperStyle: {
198
- transform: isPressed ? "translateY(2.5px) scale(0.99)" : "translateY(0) scale(1)",
199
- boxShadow: isPressed ? "0 1px 2px rgba(0, 0, 0, 0.15)" : isHovered && !isTouchDevice ? "0 4px 12px rgba(0, 0, 0, 0.12)" : "0 3px 8px rgba(0, 0, 0, 0.08)",
200
- transition: transitionStyle,
201
- transformOrigin: "center center"
202
- },
203
- inner: cn(
204
- "absolute inset-[1px] transform-gpu rounded-lg will-change-transform",
205
- colors.inner
206
- ),
207
- innerStyle: {
208
- transition: transitionStyle,
209
- transformOrigin: "center center",
210
- filter: isHovered && !isPressed && !isTouchDevice ? "brightness(1.05)" : "none"
211
- },
212
- button: cn(
213
- "relative z-10 m-[1px] rounded-md inline-flex h-11 transform-gpu cursor-pointer items-center justify-center overflow-hidden rounded-md px-6 py-2 text-sm leading-none font-semibold will-change-transform outline-none",
214
- colors.button,
215
- colors.textColor,
216
- colors.textShadow
217
- ),
218
- buttonStyle: {
219
- transform: isPressed ? "scale(0.97)" : "scale(1)",
220
- transition: transitionStyle,
221
- transformOrigin: "center center",
222
- filter: isHovered && !isPressed && !isTouchDevice ? "brightness(1.02)" : "none"
223
- }
224
- };
225
- };
226
- const ShineEffect = ({ isPressed }) => {
227
- return /* @__PURE__ */ jsx(
228
- "div",
229
- {
230
- className: cn(
231
- "pointer-events-none absolute inset-0 z-20 overflow-hidden transition-opacity duration-300",
232
- isPressed ? "opacity-20" : "opacity-0"
233
- ),
234
- children: /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-md bg-gradient-to-r from-transparent via-neutral-100 to-transparent" })
235
- }
236
- );
41
+ const COMPONENT_STORE = new ComponentStore();
42
+ const EXT_STORE_SYMBOL = /* @__PURE__ */ Symbol.for("LGUI_EXT_STORE");
43
+ const REQUIRE_SYMBOL = /* @__PURE__ */ Symbol.for("LGUI_REQUIRE");
44
+ const REQUIRE_EXTRA_SYMBOL = /* @__PURE__ */ Symbol.for("LGUI_REQUIRE_EXTRA");
45
+ const isIterable = (value) => value != null && typeof value === "object" && Symbol.iterator in value;
46
+ const isPromise = (value) => value != null && typeof value === "object" && "then" in value && typeof value.then === "function";
47
+ const isReactNode = (value) => {
48
+ if (React.isValidElement(value)) return true;
49
+ if (value == null) return true;
50
+ if (typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") return true;
51
+ if (isIterable(value)) return true;
52
+ if (isPromise(value)) return true;
53
+ return false;
237
54
  };
238
- const MetalButton = React.forwardRef(({ children, className, variant = "default", ...props }, ref) => {
239
- const [isPressed, setIsPressed] = React.useState(false);
240
- const [isHovered, setIsHovered] = React.useState(false);
241
- const [isTouchDevice, setIsTouchDevice] = React.useState(false);
55
+ function LoadExternalComponent({ stream, namespace, message, meta, fallback, components, ...props }) {
56
+ const ref = React.useRef(null);
57
+ const shadowRootId = `child-shadow-${React.useId()}`;
58
+ const store = React.useMemo(() => COMPONENT_STORE.getBoundStore(shadowRootId), [shadowRootId]);
59
+ const state = React.useSyncExternalStore(store.subscribe, store.getSnapshot);
60
+ const clientComponent = components?.[message.name];
61
+ const hasClientComponent = clientComponent != null;
62
+ let fallbackComponent = null;
63
+ if (isReactNode(fallback)) fallbackComponent = fallback;
64
+ else if (typeof fallback === "object" && fallback != null) fallbackComponent = fallback?.[message.name];
65
+ const uiNamespace = namespace ?? stream.assistantId;
66
+ const uiClient = stream.client["~ui"];
242
67
  React.useEffect(() => {
243
- setIsTouchDevice("ontouchstart" in window || navigator.maxTouchPoints > 0);
244
- }, []);
245
- const buttonText = children || "Button";
246
- const variants = metalButtonVariants(
247
- variant,
248
- isPressed,
249
- isHovered,
250
- isTouchDevice
251
- );
252
- const handleInternalMouseDown = () => {
253
- setIsPressed(true);
254
- };
255
- const handleInternalMouseUp = () => {
256
- setIsPressed(false);
257
- };
258
- const handleInternalMouseLeave = () => {
259
- setIsPressed(false);
260
- setIsHovered(false);
261
- };
262
- const handleInternalMouseEnter = () => {
263
- if (!isTouchDevice) {
264
- setIsHovered(true);
265
- }
266
- };
267
- const handleInternalTouchStart = () => {
268
- setIsPressed(true);
269
- };
270
- const handleInternalTouchEnd = () => {
271
- setIsPressed(false);
272
- };
273
- const handleInternalTouchCancel = () => {
274
- setIsPressed(false);
275
- };
276
- return /* @__PURE__ */ jsxs("div", { className: variants.wrapper, style: variants.wrapperStyle, children: [
277
- /* @__PURE__ */ jsx("div", { className: variants.inner, style: variants.innerStyle }),
278
- /* @__PURE__ */ jsxs(
279
- "button",
280
- {
281
- ref,
282
- className: cn(variants.button, className),
283
- style: variants.buttonStyle,
284
- ...props,
285
- onMouseDown: handleInternalMouseDown,
286
- onMouseUp: handleInternalMouseUp,
287
- onMouseLeave: handleInternalMouseLeave,
288
- onMouseEnter: handleInternalMouseEnter,
289
- onTouchStart: handleInternalTouchStart,
290
- onTouchEnd: handleInternalTouchEnd,
291
- onTouchCancel: handleInternalTouchCancel,
292
- children: [
293
- /* @__PURE__ */ jsx(ShineEffect, { isPressed }),
294
- buttonText,
295
- isHovered && !isPressed && !isTouchDevice && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-lg pointer-events-none bg-gradient-to-t from-transparent to-white/5" })
296
- ]
68
+ if (hasClientComponent) return;
69
+ uiClient.getComponent(uiNamespace, message.name).then((html) => {
70
+ const dom = ref.current;
71
+ if (!dom) return;
72
+ const root = dom.shadowRoot ?? dom.attachShadow({ mode: "open" });
73
+ const fragment = document.createRange().createContextualFragment(html.replace("{{shadowRootId}}", shadowRootId));
74
+ root.appendChild(fragment);
75
+ });
76
+ }, [
77
+ uiClient,
78
+ uiNamespace,
79
+ message.name,
80
+ shadowRootId,
81
+ hasClientComponent
82
+ ]);
83
+ if (hasClientComponent) return /* @__PURE__ */ jsx(UseStreamContext.Provider, {
84
+ value: {
85
+ stream,
86
+ meta
87
+ },
88
+ children: React.createElement(clientComponent, message.props)
89
+ });
90
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
91
+ id: shadowRootId,
92
+ ref,
93
+ ...props
94
+ }), /* @__PURE__ */ jsx(UseStreamContext.Provider, {
95
+ value: {
96
+ stream,
97
+ meta
98
+ },
99
+ children: state?.target != null ? ReactDOM.createPortal(React.createElement(state.comp, message.props), state.target) : fallbackComponent
100
+ })] });
101
+ }
102
+ function bootstrapUiContext() {
103
+ if (typeof window === "undefined") return;
104
+ window[EXT_STORE_SYMBOL] = COMPONENT_STORE;
105
+ window[REQUIRE_SYMBOL] = (name) => {
106
+ if (name === "react") return React;
107
+ if (name === "react-dom") return ReactDOM;
108
+ if (name === "react/jsx-runtime") return JsxRuntime;
109
+ if (name === "@langchain/langgraph-sdk/react") return { useStream };
110
+ if (name === "@langchain/langgraph-sdk/react-ui") return {
111
+ useStreamContext,
112
+ LoadExternalComponent: () => {
113
+ throw new Error("Nesting LoadExternalComponent is not supported");
297
114
  }
298
- )
299
- ] });
300
- });
301
- MetalButton.displayName = "MetalButton";
115
+ };
116
+ if (window[REQUIRE_EXTRA_SYMBOL] != null && typeof window[REQUIRE_EXTRA_SYMBOL] === "object" && name in window[REQUIRE_EXTRA_SYMBOL]) return window[REQUIRE_EXTRA_SYMBOL][name];
117
+ throw new Error(`Unknown module...: ${name}`);
118
+ };
119
+ }
302
120
  export {
303
- Button,
304
- LiquidButton,
305
- MetalButton,
306
- buttonVariants,
307
- liquidbuttonVariants
121
+ LoadExternalComponent,
122
+ bootstrapUiContext,
123
+ useStreamContext
308
124
  };
309
125
  //# sourceMappingURL=index.es30.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es30.js","sources":["../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils/tailwindUtil\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-primary-foreground hover:bg-destructive/90\",\n cool: \"dark:inset-shadow-2xs dark:inset-shadow-white/10 bg-linear-to-t border border-b-2 border-zinc-950/40 from-primary to-primary/85 shadow-md shadow-primary/20 ring-1 ring-inset ring-white/25 transition-[filter] duration-200 hover:brightness-110 active:brightness-90 dark:border-x-0 text-primary-foreground dark:text-primary-foreground dark:border-t-0 dark:border-primary/50 dark:ring-white/5\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nconst liquidbuttonVariants = cva(\n \"inline-flex items-center transition-colors justify-center cursor-pointer gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \"bg-transparent hover:scale-105 duration-300 transition text-primary\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 text-xs gap-1.5 px-4 has-[>svg]:px-4\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n xl: \"h-12 rounded-md px-8 has-[>svg]:px-6\",\n xxl: \"h-14 rounded-md px-10 has-[>svg]:px-8\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"xxl\",\n },\n }\n)\n\nfunction LiquidButton({\n className,\n variant,\n size,\n asChild = false,\n children,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof liquidbuttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(\n \"relative\",\n liquidbuttonVariants({ variant, size, className })\n )}\n {...props}\n >\n <div className=\"absolute top-0 left-0 z-0 h-full w-full rounded-full \n shadow-[0_0_6px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3px_rgba(0,0,0,0.9),inset_-3px_-3px_0.5px_-3px_rgba(0,0,0,0.85),inset_1px_1px_1px_-0.5px_rgba(0,0,0,0.6),inset_-1px_-1px_1px_-0.5px_rgba(0,0,0,0.6),inset_0_0_6px_6px_rgba(0,0,0,0.12),inset_0_0_2px_2px_rgba(0,0,0,0.06),0_0_12px_rgba(255,255,255,0.15)] \n transition-all \n dark:shadow-[0_0_8px_rgba(0,0,0,0.03),0_2px_6px_rgba(0,0,0,0.08),inset_3px_3px_0.5px_-3.5px_rgba(255,255,255,0.09),inset_-3px_-3px_0.5px_-3.5px_rgba(255,255,255,0.85),inset_1px_1px_1px_-0.5px_rgba(255,255,255,0.6),inset_-1px_-1px_1px_-0.5px_rgba(255,255,255,0.6),inset_0_0_6px_6px_rgba(255,255,255,0.12),inset_0_0_2px_2px_rgba(255,255,255,0.06),0_0_12px_rgba(0,0,0,0.15)]\" />\n <div\n className=\"absolute top-0 left-0 w-full h-full overflow-hidden rounded-md isolate -z-10\"\n style={{ backdropFilter: 'url(\"#container-glass\")' }}\n />\n\n <div className=\"z-10 pointer-events-none \">\n {children}\n </div>\n <GlassFilter />\n </Comp>\n </>\n )\n}\n\n\nfunction GlassFilter() {\n return (\n <svg className=\"hidden\">\n <defs>\n <filter\n id=\"container-glass\"\n x=\"0%\"\n y=\"0%\"\n width=\"100%\"\n height=\"100%\"\n colorInterpolationFilters=\"sRGB\"\n >\n {/* Generate turbulent noise for distortion */}\n <feTurbulence\n type=\"fractalNoise\"\n baseFrequency=\"0.05 0.05\"\n numOctaves=\"1\"\n seed=\"1\"\n result=\"turbulence\"\n />\n\n {/* Blur the turbulence pattern slightly */}\n <feGaussianBlur in=\"turbulence\" stdDeviation=\"2\" result=\"blurredNoise\" />\n\n {/* Displace the source graphic with the noise */}\n <feDisplacementMap\n in=\"SourceGraphic\"\n in2=\"blurredNoise\"\n scale=\"70\"\n xChannelSelector=\"R\"\n yChannelSelector=\"B\"\n result=\"displaced\"\n />\n\n {/* Apply overall blur on the final result */}\n <feGaussianBlur in=\"displaced\" stdDeviation=\"4\" result=\"finalBlur\" />\n\n {/* Output the result */}\n <feComposite in=\"finalBlur\" in2=\"finalBlur\" operator=\"over\" />\n </filter>\n </defs>\n </svg>\n );\n}\n\ntype ColorVariant =\n | \"default\"\n | \"primary\"\n | \"success\"\n | \"error\"\n | \"gold\"\n | \"bronze\";\n \ninterface MetalButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ColorVariant;\n}\n \nconst colorVariants: Record<\n ColorVariant,\n {\n outer: string;\n inner: string;\n button: string;\n textColor: string;\n textShadow: string;\n }\n> = {\n default: {\n outer: \"bg-gradient-to-b from-[#000] to-[#A0A0A0]\",\n inner: \"bg-gradient-to-b from-[#FAFAFA] via-[#3E3E3E] to-[#E5E5E5]\",\n button: \"bg-gradient-to-b from-[#B9B9B9] to-[#969696]\",\n textColor: \"text-white\",\n textShadow: \"[text-shadow:0-1px_0_rgb(80_80_80_/_100%)]\",\n },\n primary: {\n outer: \"bg-gradient-to-b from-[#000] to-[#A0A0A0]\",\n inner: \"bg-gradient-to-b from-primary via-secondary to-muted\",\n button: \"bg-gradient-to-b from-primary to-primary/40\",\n textColor: \"text-white\",\n textShadow: \"[text-shadow:0-1px_0_rgb(30_58_138_/_100%)]\",\n },\n success: {\n outer: \"bg-gradient-to-b from-[#005A43] to-[#7CCB9B]\",\n inner: \"bg-gradient-to-b from-[#E5F8F0] via-[#00352F] to-[#D1F0E6]\",\n button: \"bg-gradient-to-b from-[#9ADBC8] to-[#3E8F7C]\",\n textColor: \"text-[#FFF7F0]\",\n textShadow: \"[text-shadow:0-1px_0_rgb(6_78_59_/_100%)]\",\n },\n error: {\n outer: \"bg-gradient-to-b from-[#5A0000] to-[#FFAEB0]\",\n inner: \"bg-gradient-to-b from-[#FFDEDE] via-[#680002] to-[#FFE9E9]\",\n button: \"bg-gradient-to-b from-[#F08D8F] to-[#A45253]\",\n textColor: \"text-[#FFF7F0]\",\n textShadow: \"[text-shadow:0-1px_0_rgb(146_64_14_/_100%)]\",\n },\n gold: {\n outer: \"bg-gradient-to-b from-[#917100] to-[#EAD98F]\",\n inner: \"bg-gradient-to-b from-[#FFFDDD] via-[#856807] to-[#FFF1B3]\",\n button: \"bg-gradient-to-b from-[#FFEBA1] to-[#9B873F]\",\n textColor: \"text-[#FFFDE5]\",\n textShadow: \"[text-shadow:0-1px_0_rgb(178_140_2_/_100%)]\",\n },\n bronze: {\n outer: \"bg-gradient-to-b from-[#864813] to-[#E9B486]\",\n inner: \"bg-gradient-to-b from-[#EDC5A1] via-[#5F2D01] to-[#FFDEC1]\",\n button: \"bg-gradient-to-b from-[#FFE3C9] to-[#A36F3D]\",\n textColor: \"text-[#FFF7F0]\",\n textShadow: \"[text-shadow:0-1px_0_rgb(124_45_18_/_100%)]\",\n },\n};\n \nconst metalButtonVariants = (\n variant: ColorVariant = \"default\",\n isPressed: boolean,\n isHovered: boolean,\n isTouchDevice: boolean,\n) => {\n const colors = colorVariants[variant];\n const transitionStyle = \"all 250ms cubic-bezier(0.1, 0.4, 0.2, 1)\";\n \n return {\n wrapper: cn(\n \"relative inline-flex transform-gpu rounded-md p-[1.25px] will-change-transform\",\n colors.outer,\n ),\n wrapperStyle: {\n transform: isPressed\n ? \"translateY(2.5px) scale(0.99)\"\n : \"translateY(0) scale(1)\",\n boxShadow: isPressed\n ? \"0 1px 2px rgba(0, 0, 0, 0.15)\"\n : isHovered && !isTouchDevice\n ? \"0 4px 12px rgba(0, 0, 0, 0.12)\"\n : \"0 3px 8px rgba(0, 0, 0, 0.08)\",\n transition: transitionStyle,\n transformOrigin: \"center center\",\n },\n inner: cn(\n \"absolute inset-[1px] transform-gpu rounded-lg will-change-transform\",\n colors.inner,\n ),\n innerStyle: {\n transition: transitionStyle,\n transformOrigin: \"center center\",\n filter:\n isHovered && !isPressed && !isTouchDevice ? \"brightness(1.05)\" : \"none\",\n },\n button: cn(\n \"relative z-10 m-[1px] rounded-md inline-flex h-11 transform-gpu cursor-pointer items-center justify-center overflow-hidden rounded-md px-6 py-2 text-sm leading-none font-semibold will-change-transform outline-none\",\n colors.button,\n colors.textColor,\n colors.textShadow,\n ),\n buttonStyle: {\n transform: isPressed ? \"scale(0.97)\" : \"scale(1)\",\n transition: transitionStyle,\n transformOrigin: \"center center\",\n filter:\n isHovered && !isPressed && !isTouchDevice ? \"brightness(1.02)\" : \"none\",\n },\n };\n};\n \nconst ShineEffect = ({ isPressed }: { isPressed: boolean }) => {\n return (\n <div\n className={cn(\n \"pointer-events-none absolute inset-0 z-20 overflow-hidden transition-opacity duration-300\",\n isPressed ? \"opacity-20\" : \"opacity-0\",\n )}\n >\n <div className=\"absolute inset-0 rounded-md bg-gradient-to-r from-transparent via-neutral-100 to-transparent\" />\n </div>\n );\n};\n \nexport const MetalButton = React.forwardRef<\n HTMLButtonElement,\n MetalButtonProps\n>(({ children, className, variant = \"default\", ...props }, ref) => {\n const [isPressed, setIsPressed] = React.useState(false);\n const [isHovered, setIsHovered] = React.useState(false);\n const [isTouchDevice, setIsTouchDevice] = React.useState(false);\n \n React.useEffect(() => {\n setIsTouchDevice(\"ontouchstart\" in window || navigator.maxTouchPoints > 0);\n }, []);\n \n const buttonText = children || \"Button\";\n const variants = metalButtonVariants(\n variant,\n isPressed,\n isHovered,\n isTouchDevice,\n );\n \n const handleInternalMouseDown = () => {\n setIsPressed(true);\n };\n const handleInternalMouseUp = () => {\n setIsPressed(false);\n };\n const handleInternalMouseLeave = () => {\n setIsPressed(false);\n setIsHovered(false);\n };\n const handleInternalMouseEnter = () => {\n if (!isTouchDevice) {\n setIsHovered(true);\n }\n };\n const handleInternalTouchStart = () => {\n setIsPressed(true);\n };\n const handleInternalTouchEnd = () => {\n setIsPressed(false);\n };\n const handleInternalTouchCancel = () => {\n setIsPressed(false);\n };\n \n return (\n <div className={variants.wrapper} style={variants.wrapperStyle}>\n <div className={variants.inner} style={variants.innerStyle}></div>\n <button\n ref={ref}\n className={cn(variants.button, className)}\n style={variants.buttonStyle}\n {...props}\n onMouseDown={handleInternalMouseDown}\n onMouseUp={handleInternalMouseUp}\n onMouseLeave={handleInternalMouseLeave}\n onMouseEnter={handleInternalMouseEnter}\n onTouchStart={handleInternalTouchStart}\n onTouchEnd={handleInternalTouchEnd}\n onTouchCancel={handleInternalTouchCancel}\n >\n <ShineEffect isPressed={isPressed} />\n {buttonText}\n {isHovered && !isPressed && !isTouchDevice && (\n <div className=\"absolute inset-0 rounded-lg pointer-events-none bg-gradient-to-t from-transparent to-white/5\" />\n )}\n </button>\n </div>\n );\n});\n \nMetalButton.displayName = \"MetalButton\";\n\nexport { Button, buttonVariants, liquidbuttonVariants, LiquidButton }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.es30.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.5.3_@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5___react-d_6e8116ad15c37793c6138fe0d58aa04e/node_modules/@langchain/langgraph-sdk/dist/react-ui/client.js"],"sourcesContent":["\"use client\";\n\nimport { useStream } from \"../react/stream.js\";\nimport \"../react/index.js\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\n//#region src/react-ui/client.tsx\nconst UseStreamContext = React.createContext(null);\nfunction useStreamContext() {\n\tconst ctx = React.useContext(UseStreamContext);\n\tif (!ctx) throw new Error(\"useStreamContext must be used within a LoadExternalComponent\");\n\treturn new Proxy(ctx, { get(target, prop) {\n\t\tif (prop === \"meta\") return target.meta;\n\t\treturn target.stream[prop];\n\t} });\n}\nvar ComponentStore = class {\n\tcache = {};\n\tboundCache = {};\n\tcallbacks = {};\n\trespond(shadowRootId, comp, targetElement) {\n\t\tthis.cache[shadowRootId] = {\n\t\t\tcomp,\n\t\t\ttarget: targetElement\n\t\t};\n\t\tthis.callbacks[shadowRootId]?.forEach((c) => c(comp, targetElement));\n\t}\n\tgetBoundStore(shadowRootId) {\n\t\tthis.boundCache[shadowRootId] ??= {\n\t\t\tsubscribe: (onStoreChange) => {\n\t\t\t\tthis.callbacks[shadowRootId] ??= [];\n\t\t\t\tthis.callbacks[shadowRootId].push(onStoreChange);\n\t\t\t\treturn () => {\n\t\t\t\t\tthis.callbacks[shadowRootId] = this.callbacks[shadowRootId].filter((c) => c !== onStoreChange);\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetSnapshot: () => this.cache[shadowRootId]\n\t\t};\n\t\treturn this.boundCache[shadowRootId];\n\t}\n};\nconst COMPONENT_STORE = new ComponentStore();\nconst EXT_STORE_SYMBOL = Symbol.for(\"LGUI_EXT_STORE\");\nconst REQUIRE_SYMBOL = Symbol.for(\"LGUI_REQUIRE\");\nconst REQUIRE_EXTRA_SYMBOL = Symbol.for(\"LGUI_REQUIRE_EXTRA\");\nconst isIterable = (value) => value != null && typeof value === \"object\" && Symbol.iterator in value;\nconst isPromise = (value) => value != null && typeof value === \"object\" && \"then\" in value && typeof value.then === \"function\";\nconst isReactNode = (value) => {\n\tif (React.isValidElement(value)) return true;\n\tif (value == null) return true;\n\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"bigint\" || typeof value === \"boolean\") return true;\n\tif (isIterable(value)) return true;\n\tif (isPromise(value)) return true;\n\treturn false;\n};\nfunction LoadExternalComponent({ stream, namespace, message, meta, fallback, components, ...props }) {\n\tconst ref = React.useRef(null);\n\tconst shadowRootId = `child-shadow-${React.useId()}`;\n\tconst store = React.useMemo(() => COMPONENT_STORE.getBoundStore(shadowRootId), [shadowRootId]);\n\tconst state = React.useSyncExternalStore(store.subscribe, store.getSnapshot);\n\tconst clientComponent = components?.[message.name];\n\tconst hasClientComponent = clientComponent != null;\n\tlet fallbackComponent = null;\n\tif (isReactNode(fallback)) fallbackComponent = fallback;\n\telse if (typeof fallback === \"object\" && fallback != null) fallbackComponent = fallback?.[message.name];\n\tconst uiNamespace = namespace ?? stream.assistantId;\n\tconst uiClient = stream.client[\"~ui\"];\n\tReact.useEffect(() => {\n\t\tif (hasClientComponent) return;\n\t\tuiClient.getComponent(uiNamespace, message.name).then((html) => {\n\t\t\tconst dom = ref.current;\n\t\t\tif (!dom) return;\n\t\t\tconst root = dom.shadowRoot ?? dom.attachShadow({ mode: \"open\" });\n\t\t\tconst fragment = document.createRange().createContextualFragment(html.replace(\"{{shadowRootId}}\", shadowRootId));\n\t\t\troot.appendChild(fragment);\n\t\t});\n\t}, [\n\t\tuiClient,\n\t\tuiNamespace,\n\t\tmessage.name,\n\t\tshadowRootId,\n\t\thasClientComponent\n\t]);\n\tif (hasClientComponent) return /* @__PURE__ */ jsx(UseStreamContext.Provider, {\n\t\tvalue: {\n\t\t\tstream,\n\t\t\tmeta\n\t\t},\n\t\tchildren: React.createElement(clientComponent, message.props)\n\t});\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(\"div\", {\n\t\tid: shadowRootId,\n\t\tref,\n\t\t...props\n\t}), /* @__PURE__ */ jsx(UseStreamContext.Provider, {\n\t\tvalue: {\n\t\t\tstream,\n\t\t\tmeta\n\t\t},\n\t\tchildren: state?.target != null ? ReactDOM.createPortal(React.createElement(state.comp, message.props), state.target) : fallbackComponent\n\t})] });\n}\nfunction experimental_loadShare(name, module) {\n\tif (typeof window === \"undefined\") return;\n\twindow[REQUIRE_EXTRA_SYMBOL] ??= {};\n\twindow[REQUIRE_EXTRA_SYMBOL][name] = module;\n}\nfunction bootstrapUiContext() {\n\tif (typeof window === \"undefined\") return;\n\twindow[EXT_STORE_SYMBOL] = COMPONENT_STORE;\n\twindow[REQUIRE_SYMBOL] = (name) => {\n\t\tif (name === \"react\") return React;\n\t\tif (name === \"react-dom\") return ReactDOM;\n\t\tif (name === \"react/jsx-runtime\") return JsxRuntime;\n\t\tif (name === \"@langchain/langgraph-sdk/react\") return { useStream };\n\t\tif (name === \"@langchain/langgraph-sdk/react-ui\") return {\n\t\t\tuseStreamContext,\n\t\t\tLoadExternalComponent: () => {\n\t\t\t\tthrow new Error(\"Nesting LoadExternalComponent is not supported\");\n\t\t\t}\n\t\t};\n\t\tif (window[REQUIRE_EXTRA_SYMBOL] != null && typeof window[REQUIRE_EXTRA_SYMBOL] === \"object\" && name in window[REQUIRE_EXTRA_SYMBOL]) return window[REQUIRE_EXTRA_SYMBOL][name];\n\t\tthrow new Error(`Unknown module...: ${name}`);\n\t};\n}\n\n//#endregion\nexport { LoadExternalComponent, bootstrapUiContext, experimental_loadShare, useStreamContext };\n//# sourceMappingURL=client.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -28,7 +28,7 @@ import { parseTupleDef } from "./index.es332.js";
28
28
  import { parseUndefinedDef } from "./index.es333.js";
29
29
  import { parseUnknownDef } from "./index.es334.js";
30
30
  import { parseReadonlyDef } from "./index.es335.js";
31
- import { ZodFirstPartyTypeKind } from "./index.es110.js";
31
+ import { ZodFirstPartyTypeKind } from "./index.es113.js";
32
32
  const selectParser = (def, typeName, refs) => {
33
33
  switch (typeName) {
34
34
  case ZodFirstPartyTypeKind.ZodString:
@@ -1,6 +1,6 @@
1
1
  import { setResponseValueAndErrors } from "./index.es306.js";
2
2
  import { parseDef } from "./index.es275.js";
3
- import { ZodFirstPartyTypeKind } from "./index.es110.js";
3
+ import { ZodFirstPartyTypeKind } from "./index.es113.js";
4
4
  function parseArrayDef(def, refs) {
5
5
  const res = { type: "array" };
6
6
  if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) res.items = parseDef(def.type._def, {
@@ -2,7 +2,7 @@ import { parseAnyDef } from "./index.es274.js";
2
2
  import { parseBrandedDef } from "./index.es310.js";
3
3
  import { parseStringDef } from "./index.es318.js";
4
4
  import { parseDef } from "./index.es275.js";
5
- import { ZodFirstPartyTypeKind } from "./index.es110.js";
5
+ import { ZodFirstPartyTypeKind } from "./index.es113.js";
6
6
  function parseRecordDef(def, refs) {
7
7
  if (refs.target === "openAi") console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
8
8
  if (refs.target === "openApi3" && def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) return {
@@ -1,11 +1,11 @@
1
1
  import "./index.es18.js";
2
- import { isBaseMessageChunk } from "./index.es40.js";
3
- import { HumanMessageChunk } from "./index.es41.js";
4
- import { AIMessageChunk } from "./index.es42.js";
5
- import { SystemMessageChunk } from "./index.es43.js";
6
- import { ToolMessageChunk } from "./index.es44.js";
7
- import { RemoveMessage } from "./index.es45.js";
8
- import { coerceMessageLikeToMessage, convertToChunk } from "./index.es46.js";
2
+ import { isBaseMessageChunk } from "./index.es45.js";
3
+ import { HumanMessageChunk } from "./index.es46.js";
4
+ import { AIMessageChunk } from "./index.es47.js";
5
+ import { SystemMessageChunk } from "./index.es48.js";
6
+ import { ToolMessageChunk } from "./index.es49.js";
7
+ import { RemoveMessage } from "./index.es50.js";
8
+ import { coerceMessageLikeToMessage, convertToChunk } from "./index.es51.js";
9
9
  function tryConvertToChunk(message) {
10
10
  try {
11
11
  if (isBaseMessageChunk(message)) return message;
@@ -1,4 +1,4 @@
1
- import { StreamError } from "./index.es47.js";
1
+ import { StreamError } from "./index.es52.js";
2
2
  import { toMessageDict } from "./index.es32.js";
3
3
  const REMOVE_ALL_MESSAGES = "__remove_all__";
4
4
  var StreamManager = class {
@@ -1,5 +1,5 @@
1
- import { deepCompareStrict } from "./index.es206.js";
2
- import { dereference } from "./index.es209.js";
1
+ import { deepCompareStrict } from "./index.es251.js";
2
+ import { dereference } from "./index.es254.js";
3
3
  import { format } from "./index.es337.js";
4
4
  import { encodePointer } from "./index.es336.js";
5
5
  import { ucs2length } from "./index.es338.js";
@@ -1,7 +1,7 @@
1
- import { Client, getClientConfigHash } from "./index.es48.js";
2
- import { findLast, unique } from "./index.es49.js";
3
- import { StreamError } from "./index.es47.js";
4
- import { getBranchContext } from "./index.es50.js";
1
+ import { Client, getClientConfigHash } from "./index.es53.js";
2
+ import { findLast, unique } from "./index.es54.js";
3
+ import { StreamError } from "./index.es52.js";
4
+ import { getBranchContext } from "./index.es55.js";
5
5
  import { MessageTupleManager } from "./index.es32.js";
6
6
  import { StreamManager } from "./index.es33.js";
7
7
  import { getToolCallsWithResults } from "./index.es34.js";