@konopskidev/ui 0.1.1 → 0.2.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 (346) hide show
  1. package/README.md +102 -13
  2. package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
  3. package/dist/components/ui/accordion.cjs +62 -0
  4. package/dist/components/ui/accordion.cjs.map +1 -0
  5. package/dist/components/ui/accordion.d.cts +7 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -1
  7. package/dist/components/ui/accordion.js +9 -8
  8. package/dist/components/ui/accordion.js.map +1 -1
  9. package/dist/components/ui/alert-dialog.cjs +116 -0
  10. package/dist/components/ui/alert-dialog.cjs.map +1 -0
  11. package/dist/components/ui/alert-dialog.d.cts +18 -0
  12. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  13. package/dist/components/ui/alert-dialog.js +13 -12
  14. package/dist/components/ui/alert-dialog.js.map +1 -1
  15. package/dist/components/ui/alert.cjs +49 -0
  16. package/dist/components/ui/alert.cjs.map +1 -0
  17. package/dist/components/ui/alert.d.cts +10 -0
  18. package/dist/components/ui/aspect-ratio.cjs +14 -0
  19. package/dist/components/ui/aspect-ratio.cjs.map +1 -0
  20. package/dist/components/ui/aspect-ratio.d.cts +3 -0
  21. package/dist/components/ui/aspect-ratio.js +4 -5
  22. package/dist/components/ui/aspect-ratio.js.map +1 -1
  23. package/dist/components/ui/attachment.cjs +113 -0
  24. package/dist/components/ui/attachment.cjs.map +1 -0
  25. package/dist/components/ui/attachment.d.cts +24 -0
  26. package/dist/components/ui/avatar.cjs +60 -0
  27. package/dist/components/ui/avatar.cjs.map +1 -0
  28. package/dist/components/ui/avatar.d.cts +11 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -1
  30. package/dist/components/ui/avatar.js +7 -6
  31. package/dist/components/ui/avatar.js.map +1 -1
  32. package/dist/components/ui/badge.cjs +33 -0
  33. package/dist/components/ui/badge.cjs.map +1 -0
  34. package/dist/components/ui/badge.d.cts +9 -0
  35. package/dist/components/ui/badge.d.ts +1 -1
  36. package/dist/components/ui/badge.d.ts.map +1 -1
  37. package/dist/components/ui/badge.js +1 -0
  38. package/dist/components/ui/badge.js.map +1 -1
  39. package/dist/components/ui/breadcrumb.cjs +81 -0
  40. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  41. package/dist/components/ui/breadcrumb.d.cts +11 -0
  42. package/dist/components/ui/bubble.cjs +79 -0
  43. package/dist/components/ui/bubble.cjs.map +1 -0
  44. package/dist/components/ui/bubble.d.cts +17 -0
  45. package/dist/components/ui/button-group.cjs +43 -0
  46. package/dist/components/ui/button-group.cjs.map +1 -0
  47. package/dist/components/ui/button-group.d.cts +11 -0
  48. package/dist/components/ui/button.cjs +64 -0
  49. package/dist/components/ui/button.cjs.map +1 -0
  50. package/dist/components/ui/button.d.cts +21 -0
  51. package/dist/components/ui/calendar.cjs +114 -0
  52. package/dist/components/ui/calendar.cjs.map +1 -0
  53. package/dist/components/ui/calendar.d.cts +10 -0
  54. package/dist/components/ui/calendar.js +0 -1
  55. package/dist/components/ui/calendar.js.map +1 -1
  56. package/dist/components/ui/card.cjs +80 -0
  57. package/dist/components/ui/card.cjs.map +1 -0
  58. package/dist/components/ui/card.d.cts +33 -0
  59. package/dist/components/ui/card.d.ts +15 -7
  60. package/dist/components/ui/card.d.ts.map +1 -1
  61. package/dist/components/ui/card.js +6 -12
  62. package/dist/components/ui/card.js.map +1 -1
  63. package/dist/components/ui/carousel.cjs +142 -0
  64. package/dist/components/ui/carousel.cjs.map +1 -0
  65. package/dist/components/ui/carousel.d.cts +28 -0
  66. package/dist/components/ui/carousel.d.ts +1 -1
  67. package/dist/components/ui/carousel.d.ts.map +1 -1
  68. package/dist/components/ui/carousel.js +1 -0
  69. package/dist/components/ui/carousel.js.map +1 -1
  70. package/dist/components/ui/chart.cjs +159 -0
  71. package/dist/components/ui/chart.cjs.map +1 -0
  72. package/dist/components/ui/chart.d.cts +44 -0
  73. package/dist/components/ui/chart.js +0 -1
  74. package/dist/components/ui/chart.js.map +1 -1
  75. package/dist/components/ui/checkbox.cjs +25 -0
  76. package/dist/components/ui/checkbox.cjs.map +1 -0
  77. package/dist/components/ui/checkbox.d.cts +4 -0
  78. package/dist/components/ui/checkbox.d.ts.map +1 -1
  79. package/dist/components/ui/checkbox.js +6 -5
  80. package/dist/components/ui/checkbox.js.map +1 -1
  81. package/dist/components/ui/code-block.cjs +134 -0
  82. package/dist/components/ui/code-block.cjs.map +1 -0
  83. package/dist/components/ui/code-block.d.cts +26 -0
  84. package/dist/components/ui/code-block.d.ts.map +1 -1
  85. package/dist/components/ui/code-block.js +1 -0
  86. package/dist/components/ui/code-block.js.map +1 -1
  87. package/dist/components/ui/collapsible.cjs +28 -0
  88. package/dist/components/ui/collapsible.cjs.map +1 -0
  89. package/dist/components/ui/collapsible.d.cts +5 -0
  90. package/dist/components/ui/collapsible.js +6 -7
  91. package/dist/components/ui/collapsible.js.map +1 -1
  92. package/dist/components/ui/combobox.cjs +193 -0
  93. package/dist/components/ui/combobox.cjs.map +1 -0
  94. package/dist/components/ui/combobox.d.cts +24 -0
  95. package/dist/components/ui/combobox.d.ts.map +1 -1
  96. package/dist/components/ui/combobox.js +22 -21
  97. package/dist/components/ui/combobox.js.map +1 -1
  98. package/dist/components/ui/command.cjs +99 -0
  99. package/dist/components/ui/command.cjs.map +1 -0
  100. package/dist/components/ui/command.d.cts +18 -0
  101. package/dist/components/ui/command.d.ts.map +1 -1
  102. package/dist/components/ui/command.js +10 -12
  103. package/dist/components/ui/command.js.map +1 -1
  104. package/dist/components/ui/context-menu.cjs +143 -0
  105. package/dist/components/ui/context-menu.cjs.map +1 -0
  106. package/dist/components/ui/context-menu.d.cts +31 -0
  107. package/dist/components/ui/context-menu.d.ts.map +1 -1
  108. package/dist/components/ui/context-menu.js +20 -19
  109. package/dist/components/ui/context-menu.js.map +1 -1
  110. package/dist/components/ui/dialog.cjs +148 -0
  111. package/dist/components/ui/dialog.cjs.map +1 -0
  112. package/dist/components/ui/dialog.d.cts +55 -0
  113. package/dist/components/ui/dialog.d.ts +41 -3
  114. package/dist/components/ui/dialog.d.ts.map +1 -1
  115. package/dist/components/ui/dialog.js +64 -27
  116. package/dist/components/ui/dialog.js.map +1 -1
  117. package/dist/components/ui/direction.cjs +19 -0
  118. package/dist/components/ui/direction.cjs.map +1 -0
  119. package/dist/components/ui/direction.d.cts +11 -0
  120. package/dist/components/ui/direction.d.ts +1 -1
  121. package/dist/components/ui/direction.d.ts.map +1 -1
  122. package/dist/components/ui/direction.js +0 -1
  123. package/dist/components/ui/direction.js.map +1 -1
  124. package/dist/components/ui/drawer.cjs +90 -0
  125. package/dist/components/ui/drawer.cjs.map +1 -0
  126. package/dist/components/ui/drawer.d.cts +13 -0
  127. package/dist/components/ui/drawer.js +11 -11
  128. package/dist/components/ui/drawer.js.map +1 -1
  129. package/dist/components/ui/dropdown-menu.cjs +146 -0
  130. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  131. package/dist/components/ui/dropdown-menu.d.cts +29 -0
  132. package/dist/components/ui/dropdown-menu.js +19 -20
  133. package/dist/components/ui/dropdown-menu.js.map +1 -1
  134. package/dist/components/ui/empty.cjs +66 -0
  135. package/dist/components/ui/empty.cjs.map +1 -0
  136. package/dist/components/ui/empty.d.cts +11 -0
  137. package/dist/components/ui/field.cjs +121 -0
  138. package/dist/components/ui/field.cjs.map +1 -0
  139. package/dist/components/ui/field.d.cts +24 -0
  140. package/dist/components/ui/field.js +0 -1
  141. package/dist/components/ui/field.js.map +1 -1
  142. package/dist/components/ui/hover-card.cjs +38 -0
  143. package/dist/components/ui/hover-card.cjs.map +1 -0
  144. package/dist/components/ui/hover-card.d.cts +6 -0
  145. package/dist/components/ui/hover-card.d.ts.map +1 -1
  146. package/dist/components/ui/hover-card.js +8 -7
  147. package/dist/components/ui/hover-card.js.map +1 -1
  148. package/dist/components/ui/input-group.cjs +87 -0
  149. package/dist/components/ui/input-group.cjs.map +1 -0
  150. package/dist/components/ui/input-group.d.cts +16 -0
  151. package/dist/components/ui/input-otp.cjs +54 -0
  152. package/dist/components/ui/input-otp.cjs.map +1 -0
  153. package/dist/components/ui/input-otp.d.cts +11 -0
  154. package/dist/components/ui/input-otp.js +0 -1
  155. package/dist/components/ui/input-otp.js.map +1 -1
  156. package/dist/components/ui/input.cjs +28 -0
  157. package/dist/components/ui/input.cjs.map +1 -0
  158. package/dist/components/ui/input.d.cts +10 -0
  159. package/dist/components/ui/item.cjs +133 -0
  160. package/dist/components/ui/item.cjs.map +1 -0
  161. package/dist/components/ui/item.d.cts +23 -0
  162. package/dist/components/ui/kbd.cjs +22 -0
  163. package/dist/components/ui/kbd.cjs.map +1 -0
  164. package/dist/components/ui/kbd.d.cts +3 -0
  165. package/dist/components/ui/label.cjs +19 -0
  166. package/dist/components/ui/label.cjs.map +1 -0
  167. package/dist/components/ui/label.d.cts +4 -0
  168. package/dist/components/ui/label.d.ts.map +1 -1
  169. package/dist/components/ui/label.js +5 -4
  170. package/dist/components/ui/label.js.map +1 -1
  171. package/dist/components/ui/marker.cjs +46 -0
  172. package/dist/components/ui/marker.cjs.map +1 -0
  173. package/dist/components/ui/marker.d.cts +11 -0
  174. package/dist/components/ui/menubar.cjs +154 -0
  175. package/dist/components/ui/menubar.cjs.map +1 -0
  176. package/dist/components/ui/menubar.d.cts +30 -0
  177. package/dist/components/ui/menubar.js +20 -21
  178. package/dist/components/ui/menubar.js.map +1 -1
  179. package/dist/components/ui/message-scroller.cjs +87 -0
  180. package/dist/components/ui/message-scroller.cjs.map +1 -0
  181. package/dist/components/ui/message-scroller.d.cts +10 -0
  182. package/dist/components/ui/message-scroller.js +9 -9
  183. package/dist/components/ui/message-scroller.js.map +1 -1
  184. package/dist/components/ui/message.cjs +58 -0
  185. package/dist/components/ui/message.cjs.map +1 -0
  186. package/dist/components/ui/message.d.cts +10 -0
  187. package/dist/components/ui/native-select.cjs +44 -0
  188. package/dist/components/ui/native-select.cjs.map +1 -0
  189. package/dist/components/ui/native-select.d.cts +8 -0
  190. package/dist/components/ui/native-select.d.ts +1 -1
  191. package/dist/components/ui/native-select.d.ts.map +1 -1
  192. package/dist/components/ui/native-select.js.map +1 -1
  193. package/dist/components/ui/navigation-menu.cjs +93 -0
  194. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  195. package/dist/components/ui/navigation-menu.d.cts +14 -0
  196. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  197. package/dist/components/ui/navigation-menu.js +12 -11
  198. package/dist/components/ui/navigation-menu.js.map +1 -1
  199. package/dist/components/ui/pagination.cjs +90 -0
  200. package/dist/components/ui/pagination.cjs.map +1 -0
  201. package/dist/components/ui/pagination.d.cts +17 -0
  202. package/dist/components/ui/pagination.d.ts +1 -1
  203. package/dist/components/ui/pagination.d.ts.map +1 -1
  204. package/dist/components/ui/pagination.js.map +1 -1
  205. package/dist/components/ui/popover.cjs +66 -0
  206. package/dist/components/ui/popover.cjs.map +1 -0
  207. package/dist/components/ui/popover.d.cts +10 -0
  208. package/dist/components/ui/popover.d.ts.map +1 -1
  209. package/dist/components/ui/popover.js +8 -7
  210. package/dist/components/ui/popover.js.map +1 -1
  211. package/dist/components/ui/progress.cjs +25 -0
  212. package/dist/components/ui/progress.cjs.map +1 -0
  213. package/dist/components/ui/progress.d.cts +4 -0
  214. package/dist/components/ui/progress.js +5 -6
  215. package/dist/components/ui/progress.js.map +1 -1
  216. package/dist/components/ui/questionnaire.cjs +187 -0
  217. package/dist/components/ui/questionnaire.cjs.map +1 -0
  218. package/dist/components/ui/questionnaire.d.cts +19 -0
  219. package/dist/components/ui/questionnaire.d.ts.map +1 -1
  220. package/dist/components/ui/questionnaire.js +19 -21
  221. package/dist/components/ui/questionnaire.js.map +1 -1
  222. package/dist/components/ui/radio-group.cjs +32 -0
  223. package/dist/components/ui/radio-group.cjs.map +1 -0
  224. package/dist/components/ui/radio-group.d.cts +5 -0
  225. package/dist/components/ui/radio-group.d.ts.map +1 -1
  226. package/dist/components/ui/radio-group.js +7 -6
  227. package/dist/components/ui/radio-group.js.map +1 -1
  228. package/dist/components/ui/resizable.cjs +33 -0
  229. package/dist/components/ui/resizable.cjs.map +1 -0
  230. package/dist/components/ui/resizable.d.cts +7 -0
  231. package/dist/components/ui/resizable.d.ts.map +1 -1
  232. package/dist/components/ui/resizable.js +0 -2
  233. package/dist/components/ui/resizable.js.map +1 -1
  234. package/dist/components/ui/scroll-area.cjs +43 -0
  235. package/dist/components/ui/scroll-area.cjs.map +1 -0
  236. package/dist/components/ui/scroll-area.d.cts +5 -0
  237. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  238. package/dist/components/ui/scroll-area.js +9 -8
  239. package/dist/components/ui/scroll-area.js.map +1 -1
  240. package/dist/components/ui/select.cjs +113 -0
  241. package/dist/components/ui/select.cjs.map +1 -0
  242. package/dist/components/ui/select.d.cts +15 -0
  243. package/dist/components/ui/select.js +17 -18
  244. package/dist/components/ui/select.js.map +1 -1
  245. package/dist/components/ui/separator.cjs +21 -0
  246. package/dist/components/ui/separator.cjs.map +1 -0
  247. package/dist/components/ui/separator.d.cts +4 -0
  248. package/dist/components/ui/separator.d.ts.map +1 -1
  249. package/dist/components/ui/separator.js +5 -4
  250. package/dist/components/ui/separator.js.map +1 -1
  251. package/dist/components/ui/sheet.cjs +101 -0
  252. package/dist/components/ui/sheet.cjs.map +1 -0
  253. package/dist/components/ui/sheet.d.cts +14 -0
  254. package/dist/components/ui/sheet.d.ts.map +1 -1
  255. package/dist/components/ui/sheet.js +1 -0
  256. package/dist/components/ui/sheet.js.map +1 -1
  257. package/dist/components/ui/sidebar.cjs +405 -0
  258. package/dist/components/ui/sidebar.cjs.map +1 -0
  259. package/dist/components/ui/sidebar.d.cts +69 -0
  260. package/dist/components/ui/sidebar.js +0 -1
  261. package/dist/components/ui/sidebar.js.map +1 -1
  262. package/dist/components/ui/skeleton.cjs +14 -0
  263. package/dist/components/ui/skeleton.cjs.map +1 -0
  264. package/dist/components/ui/skeleton.d.cts +2 -0
  265. package/dist/components/ui/slider.cjs +42 -0
  266. package/dist/components/ui/slider.cjs.map +1 -0
  267. package/dist/components/ui/slider.d.cts +7 -0
  268. package/dist/components/ui/slider.js +7 -8
  269. package/dist/components/ui/slider.js.map +1 -1
  270. package/dist/components/ui/sonner.cjs +36 -0
  271. package/dist/components/ui/sonner.cjs.map +1 -0
  272. package/dist/components/ui/sonner.d.cts +13 -0
  273. package/dist/components/ui/sonner.d.ts.map +1 -1
  274. package/dist/components/ui/sonner.js +4 -6
  275. package/dist/components/ui/sonner.js.map +1 -1
  276. package/dist/components/ui/spinner.cjs +17 -0
  277. package/dist/components/ui/spinner.cjs.map +1 -0
  278. package/dist/components/ui/spinner.d.cts +2 -0
  279. package/dist/components/ui/switch.cjs +24 -0
  280. package/dist/components/ui/switch.cjs.map +1 -0
  281. package/dist/components/ui/switch.d.cts +6 -0
  282. package/dist/components/ui/switch.js +5 -6
  283. package/dist/components/ui/switch.js.map +1 -1
  284. package/dist/components/ui/table.cjs +77 -0
  285. package/dist/components/ui/table.cjs.map +1 -0
  286. package/dist/components/ui/table.d.cts +10 -0
  287. package/dist/components/ui/table.js +2 -2
  288. package/dist/components/ui/table.js.map +1 -1
  289. package/dist/components/ui/tabs.cjs +54 -0
  290. package/dist/components/ui/tabs.cjs.map +1 -0
  291. package/dist/components/ui/tabs.d.cts +11 -0
  292. package/dist/components/ui/tabs.js +7 -8
  293. package/dist/components/ui/tabs.js.map +1 -1
  294. package/dist/components/ui/textarea.cjs +39 -0
  295. package/dist/components/ui/textarea.cjs.map +1 -0
  296. package/dist/components/ui/textarea.d.cts +9 -0
  297. package/dist/components/ui/textarea.js +0 -1
  298. package/dist/components/ui/textarea.js.map +1 -1
  299. package/dist/components/ui/toggle-group.cjs +56 -0
  300. package/dist/components/ui/toggle-group.cjs.map +1 -0
  301. package/dist/components/ui/toggle-group.d.cts +10 -0
  302. package/dist/components/ui/toggle-group.js +5 -6
  303. package/dist/components/ui/toggle-group.js.map +1 -1
  304. package/dist/components/ui/toggle.cjs +41 -0
  305. package/dist/components/ui/toggle.cjs.map +1 -0
  306. package/dist/components/ui/toggle.d.cts +9 -0
  307. package/dist/components/ui/toggle.d.ts.map +1 -1
  308. package/dist/components/ui/toggle.js +5 -4
  309. package/dist/components/ui/toggle.js.map +1 -1
  310. package/dist/components/ui/tooltip.cjs +43 -0
  311. package/dist/components/ui/tooltip.cjs.map +1 -0
  312. package/dist/components/ui/tooltip.d.cts +7 -0
  313. package/dist/components/ui/tooltip.js +8 -9
  314. package/dist/components/ui/tooltip.js.map +1 -1
  315. package/dist/components/ui/trace.cjs +86 -0
  316. package/dist/components/ui/trace.cjs.map +1 -0
  317. package/dist/components/ui/trace.d.cts +18 -0
  318. package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
  319. package/dist/hooks/use-highlighted-code.js +56 -0
  320. package/dist/hooks/use-highlighted-code.js.map +1 -0
  321. package/dist/hooks/use-mobile.cjs +26 -0
  322. package/dist/hooks/use-mobile.cjs.map +1 -0
  323. package/dist/hooks/use-mobile.d.cts +1 -0
  324. package/dist/hooks/use-mobile.d.ts.map +1 -1
  325. package/dist/hooks/use-mobile.js +1 -0
  326. package/dist/hooks/use-mobile.js.map +1 -1
  327. package/dist/index.cjs +356 -0
  328. package/dist/index.d.cts +67 -0
  329. package/dist/index.d.ts +5 -11
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +3 -14
  332. package/dist/lib/get-placeholder.cjs +13 -0
  333. package/dist/lib/get-placeholder.cjs.map +1 -0
  334. package/dist/lib/get-placeholder.d.cts +5 -0
  335. package/dist/lib/highlighter.js +79 -0
  336. package/dist/lib/highlighter.js.map +1 -0
  337. package/dist/lib/utils.cjs +8 -0
  338. package/dist/lib/utils.d.cts +8 -0
  339. package/{src → dist}/styles/globals.css +11 -0
  340. package/{src → dist}/styles/theme.css +2 -0
  341. package/{src → dist}/styles/tokens.css +8 -0
  342. package/package.json +114 -30
  343. /package/{src → dist}/styles/base.css +0 -0
  344. /package/{src → dist}/styles/prose.css +0 -0
  345. /package/{src → dist}/styles/utilities.css +0 -0
  346. /package/{src → dist}/styles/variants.css +0 -0
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
4
+ let cn = require("cn");
5
+ let radix_ui = require("radix-ui");
6
+ let react = require("react");
7
+ react = require_rolldown_runtime.__toESM(react, 1);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ // src/components/ui/tooltip.tsx
10
+ function TooltipProvider({ delayDuration = 0, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Tooltip.Provider, {
12
+ "data-slot": "tooltip-provider",
13
+ delayDuration,
14
+ ...props
15
+ });
16
+ }
17
+ function Tooltip({ ...props }) {
18
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Tooltip.Root, {
19
+ "data-slot": "tooltip",
20
+ ...props
21
+ });
22
+ }
23
+ function TooltipTrigger({ ...props }) {
24
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Tooltip.Trigger, {
25
+ "data-slot": "tooltip-trigger",
26
+ ...props
27
+ });
28
+ }
29
+ function TooltipContent({ className, sideOffset = 0, children, ...props }) {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Tooltip.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(radix_ui.Tooltip.Content, {
31
+ "data-slot": "tooltip-content",
32
+ sideOffset,
33
+ className: (0, cn.cn)("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
34
+ ...props,
35
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Tooltip.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground" })]
36
+ }) });
37
+ }
38
+ exports.Tooltip = Tooltip;
39
+ exports.TooltipContent = TooltipContent;
40
+ exports.TooltipProvider = TooltipProvider;
41
+ exports.TooltipTrigger = TooltipTrigger;
42
+
43
+ //# sourceMappingURL=tooltip.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.cjs","names":["TooltipPrimitive"],"sources":["../../../src/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":";;;;;;;;;AAMA,SAAS,gBAAgB,EACvB,gBAAgB,GAChB,GAAG,SACsD;CACzD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,QAAiB,UAAlB;EACE,aAAU;EACK;EACf,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,QAAQ,EAAE,GAAG,SAA6D;CACjF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,QAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;CAAQ,CAAA;AAChE;AAEA,SAAS,eAAe,EAAE,GAAG,SAAgE;CAC3F,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,eAAe,EACtB,WACA,aAAa,GACb,UACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,QAAiB,QAAlB,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,SAAAA,QAAiB,SAAlB;EACE,aAAU;EACE;EACZ,YAAA,GAAW,GAAA,GAAA,CACT,8rBACA,SACF;EACA,GAAI;EAPN,UAAA,CASG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,QAAiB,OAAlB,EAAwB,WAAU,kGAAmG,CAAA,CAC7G;CACH,CAAA,EAAA,CAAA;AAE7B"}
@@ -0,0 +1,7 @@
1
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): React.JSX.Element;
4
+ declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): React.JSX.Element;
5
+ declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): React.JSX.Element;
6
+ declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): React.JSX.Element;
7
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -1,38 +1,37 @@
1
1
  "use client";
2
- "use client";
3
2
  import { cn } from "cn";
4
- import { Tooltip } from "radix-ui";
3
+ import { Tooltip as Tooltip$1 } from "radix-ui";
5
4
  import "react";
6
5
  import { jsx, jsxs } from "react/jsx-runtime";
7
6
  // src/components/ui/tooltip.tsx
8
7
  function TooltipProvider({ delayDuration = 0, ...props }) {
9
- return /* @__PURE__ */ jsx(Tooltip.Provider, {
8
+ return /* @__PURE__ */ jsx(Tooltip$1.Provider, {
10
9
  "data-slot": "tooltip-provider",
11
10
  delayDuration,
12
11
  ...props
13
12
  });
14
13
  }
15
- function Tooltip$1({ ...props }) {
16
- return /* @__PURE__ */ jsx(Tooltip.Root, {
14
+ function Tooltip({ ...props }) {
15
+ return /* @__PURE__ */ jsx(Tooltip$1.Root, {
17
16
  "data-slot": "tooltip",
18
17
  ...props
19
18
  });
20
19
  }
21
20
  function TooltipTrigger({ ...props }) {
22
- return /* @__PURE__ */ jsx(Tooltip.Trigger, {
21
+ return /* @__PURE__ */ jsx(Tooltip$1.Trigger, {
23
22
  "data-slot": "tooltip-trigger",
24
23
  ...props
25
24
  });
26
25
  }
27
26
  function TooltipContent({ className, sideOffset = 0, children, ...props }) {
28
- return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsxs(Tooltip.Content, {
27
+ return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsxs(Tooltip$1.Content, {
29
28
  "data-slot": "tooltip-content",
30
29
  sideOffset,
31
30
  className: cn("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
32
31
  ...props,
33
- children: [children, /* @__PURE__ */ jsx(Tooltip.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground" })]
32
+ children: [children, /* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground" })]
34
33
  }) });
35
34
  }
36
- export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
35
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
37
36
 
38
37
  //# sourceMappingURL=tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","names":["TooltipPrimitive","Tooltip"],"sources":["../../../src/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":";;;;;;;AAUE,SACE,gBAAA,EAAA,gBAAkB,GAAlB,GAAA,SAAA;CACE,OAAU,oBAAA,QAAA,UAAA;EACK,aAAA;EACf;EACD,GAAA;CAEL,CAAA;AAEA;AACE,SAAO,UAAA,EAAA,GAAA,SAACA;CAAsB,OAAU,oBAAA,QAAA,MAAA;EAAU,aAAI;EAAQ,GAAA;CAChE,CAAA;AAEA;AACE,SAAO,eAAA,EAAA,GAACA,SAAiB;CAAQ,OAAU,oBAAA,QAAA,SAAA;EAAkB,aAAI;EAAQ,GAAA;CAC3E,CAAA;AAEA;AAME,SACE,eAAA,EAAA,WAAkB,aAAlB,GAAA,UACE,GAAA,SAAA;CACE,OAAU,oBAAA,QAAA,QAAA,EAAA,UAAA,qBAAA,QAAA,SAAA;EACE,aAAA;EACZ;EAIA,WAAI,GAAA,8rBAAA,SAAA;EAPN,GAAA;EAYuB,UAAA,CAAA,UAAA,oBAAA,QAAA,OAAA,EAAA,WAAA,kGAAA,CAAA,CAAA;CAE7B,CAAA,EAAA,CAAA"}
1
+ {"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../../src/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":";;;;;;AAMA,SAAS,gBAAgB,EACvB,gBAAgB,GAChB,GAAG,SACsD;CACzD,OACE,oBAACA,UAAiB,UAAlB;EACE,aAAU;EACK;EACf,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,QAAQ,EAAE,GAAG,SAA6D;CACjF,OAAO,oBAACA,UAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;CAAQ,CAAA;AAChE;AAEA,SAAS,eAAe,EAAE,GAAG,SAAgE;CAC3F,OAAO,oBAACA,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,eAAe,EACtB,WACA,aAAa,GACb,UACA,GAAG,SACqD;CACxD,OACE,oBAACA,UAAiB,QAAlB,EAAA,UACE,qBAACA,UAAiB,SAAlB;EACE,aAAU;EACE;EACZ,WAAW,GACT,8rBACA,SACF;EACA,GAAI;EAPN,UAAA,CASG,UACD,oBAACA,UAAiB,OAAlB,EAAwB,WAAU,kGAAmG,CAAA,CAC7G;CACH,CAAA,EAAA,CAAA;AAE7B"}
@@ -0,0 +1,86 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
3
+ const require_components_ui_collapsible = require("./collapsible.cjs");
4
+ let cn = require("cn");
5
+ let lucide_react = require("lucide-react");
6
+ let react = require("react");
7
+ react = require_rolldown_runtime.__toESM(react, 1);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ // src/components/ui/trace.tsx
10
+ function Trace({ className, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
12
+ "data-slot": "trace",
13
+ className: (0, cn.cn)("*:has-[>[data-slot=trace-line]]: *:has-[>[data-slot=trace-line]]: flex w-full min-w-0 flex-col gap-2 *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-sm *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none", className),
14
+ ...props
15
+ });
16
+ }
17
+ function TraceLine({ className, status, ...props }) {
18
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
19
+ "data-slot": "trace-line",
20
+ "data-status": status,
21
+ className: (0, cn.cn)("flex w-fit max-w-full min-w-0 items-center gap-2 text-sm text-muted-foreground transition-colors in-[a,button]:cursor-pointer in-[a:hover,button:hover]:text-foreground data-[status=error]:text-destructive data-[status=error]:in-[a:hover,button:hover]:text-destructive data-[status=pending]:opacity-60 data-[status=running]:*:data-[slot=trace-title]:shimmer", className),
22
+ ...props
23
+ });
24
+ }
25
+ function TraceIcon({ className, ...props }) {
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
27
+ "data-slot": "trace-icon",
28
+ "aria-hidden": "true",
29
+ className: (0, cn.cn)("flex size-4 shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [[data-slot=trace-title]~&]:-ml-1", className),
30
+ ...props
31
+ });
32
+ }
33
+ function TraceTitle({ className, ...props }) {
34
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
35
+ "data-slot": "trace-title",
36
+ className: (0, cn.cn)("min-w-0 truncate motion-reduce:shimmer-none", className),
37
+ ...props
38
+ });
39
+ }
40
+ function TraceDescription({ className, ...props }) {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
42
+ "data-slot": "trace-description",
43
+ className: (0, cn.cn)("shrink-0 text-muted-foreground/70 tabular-nums", className),
44
+ ...props
45
+ });
46
+ }
47
+ function TraceCollapsible({ className, ...props }) {
48
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_collapsible.Collapsible, {
49
+ "data-slot": "trace-collapsible",
50
+ className: (0, cn.cn)("flex w-full min-w-0 flex-col", className),
51
+ ...props
52
+ });
53
+ }
54
+ function TraceCollapsibleTrigger({ className, children, ...props }) {
55
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_components_ui_collapsible.CollapsibleTrigger, {
56
+ "data-slot": "trace-collapsible-trigger",
57
+ className: (0, cn.cn)("group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left text-muted-foreground focus-ring transition-colors outline-none hover:text-foreground has-[[data-status=error]]:text-destructive", className),
58
+ ...props,
59
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceIcon, {
60
+ className: "transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90",
61
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRightIcon, {})
62
+ })]
63
+ });
64
+ }
65
+ function TraceCollapsibleContent({ className, children, ...props }) {
66
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_collapsible.CollapsibleContent, {
67
+ "data-slot": "trace-collapsible-content",
68
+ className: "min-w-0 overflow-hidden duration-200 [--radix-accordion-content-height:var(--radix-collapsible-content-height)] data-open:animate-accordion-down data-closed:animate-accordion-up",
69
+ ...props,
70
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
71
+ "data-slot": "trace-collapsible-content-inner",
72
+ className: (0, cn.cn)("mt-2 mb-1 ml-[calc(--spacing(2)-1px)] min-w-0 border-l pr-1 pl-4 leading-relaxed wrap-break-word text-muted-foreground", className),
73
+ children
74
+ })
75
+ });
76
+ }
77
+ exports.Trace = Trace;
78
+ exports.TraceCollapsible = TraceCollapsible;
79
+ exports.TraceCollapsibleContent = TraceCollapsibleContent;
80
+ exports.TraceCollapsibleTrigger = TraceCollapsibleTrigger;
81
+ exports.TraceDescription = TraceDescription;
82
+ exports.TraceIcon = TraceIcon;
83
+ exports.TraceLine = TraceLine;
84
+ exports.TraceTitle = TraceTitle;
85
+
86
+ //# sourceMappingURL=trace.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.cjs","names":["Collapsible","CollapsibleTrigger","ChevronRightIcon","CollapsibleContent"],"sources":["../../../src/components/ui/trace.tsx"],"sourcesContent":["import { cn } from 'cn';\nimport { ChevronRightIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible';\n\nfunction Trace({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"trace\"\n className={cn(\n '*:has-[>[data-slot=trace-line]]: *:has-[>[data-slot=trace-line]]: flex w-full min-w-0 flex-col gap-2 *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-sm *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceLine({\n className,\n status,\n ...props\n}: React.ComponentProps<'span'> & {\n status?: 'running' | 'error' | 'pending';\n}) {\n return (\n <span\n data-slot=\"trace-line\"\n data-status={status}\n className={cn(\n 'flex w-fit max-w-full min-w-0 items-center gap-2 text-sm text-muted-foreground transition-colors in-[a,button]:cursor-pointer in-[a:hover,button:hover]:text-foreground data-[status=error]:text-destructive data-[status=error]:in-[a:hover,button:hover]:text-destructive data-[status=pending]:opacity-60 data-[status=running]:*:data-[slot=trace-title]:shimmer',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceIcon({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-icon\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-4 shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [[data-slot=trace-title]~&]:-ml-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceTitle({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-title\"\n className={cn('min-w-0 truncate motion-reduce:shimmer-none', className)}\n {...props}\n />\n );\n}\n\nfunction TraceDescription({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-description\"\n className={cn('shrink-0 text-muted-foreground/70 tabular-nums', className)}\n {...props}\n />\n );\n}\n\nfunction TraceCollapsible({\n className,\n ...props\n}: Omit<React.ComponentProps<typeof Collapsible>, 'asChild' | 'open'> &\n (\n | { open?: undefined }\n | {\n open: boolean;\n onOpenChange: NonNullable<React.ComponentProps<typeof Collapsible>['onOpenChange']>;\n }\n )) {\n return (\n <Collapsible\n data-slot=\"trace-collapsible\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction TraceCollapsibleTrigger({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof CollapsibleTrigger>, 'asChild'>) {\n return (\n <CollapsibleTrigger\n data-slot=\"trace-collapsible-trigger\"\n className={cn(\n 'group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left text-muted-foreground focus-ring transition-colors outline-none hover:text-foreground has-[[data-status=error]]:text-destructive',\n className,\n )}\n {...props}\n >\n {children}\n <TraceIcon className=\"transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90\">\n <ChevronRightIcon />\n </TraceIcon>\n </CollapsibleTrigger>\n );\n}\n\nfunction TraceCollapsibleContent({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof CollapsibleContent>, 'asChild'>) {\n return (\n <CollapsibleContent\n data-slot=\"trace-collapsible-content\"\n className=\"min-w-0 overflow-hidden duration-200 [--radix-accordion-content-height:var(--radix-collapsible-content-height)] data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n data-slot=\"trace-collapsible-content-inner\"\n className={cn(\n 'mt-2 mb-1 ml-[calc(--spacing(2)-1px)] min-w-0 border-l pr-1 pl-4 leading-relaxed wrap-break-word text-muted-foreground',\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n );\n}\n\nexport {\n Trace,\n TraceLine,\n TraceIcon,\n TraceTitle,\n TraceDescription,\n TraceCollapsible,\n TraceCollapsibleTrigger,\n TraceCollapsibleContent,\n};\n"],"mappings":";;;;;;;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;CACnE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,wYACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EACjB,WACA,QACA,GAAG,SAGF;CACD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,eAAa;EACb,YAAA,GAAW,GAAA,GAAA,CACT,wWACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAuC;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,eAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CACT,uJACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAuC;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,+CAA+C,SAAS;EACtE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAuC;CAC/E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,kDAAkD,SAAS;EACzE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SAQA;CACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,kCAAAA,aAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,gCAAgC,SAAS;EACvD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,kCAAAA,oBAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,yPACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;GAAW,WAAU;GACnB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,kBAAD,CAAmB,CAAA;EACV,CAAA,CACO;;AAExB;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kCAAAA,oBAAD;EACE,aAAU;EACV,WAAU;EACV,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,aAAU;GACV,YAAA,GAAW,GAAA,GAAA,CACT,0HACA,SACF;GAEC;EACE,CAAA;CACa,CAAA;AAExB"}
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible.cjs';
3
+ declare function Trace({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
4
+ declare function TraceLine({ className, status, ...props }: React.ComponentProps<'span'> & {
5
+ status?: 'running' | 'error' | 'pending';
6
+ }): React.JSX.Element;
7
+ declare function TraceIcon({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
8
+ declare function TraceTitle({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
9
+ declare function TraceDescription({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
10
+ declare function TraceCollapsible({ className, ...props }: Omit<React.ComponentProps<typeof Collapsible>, 'asChild' | 'open'> & ({
11
+ open?: undefined;
12
+ } | {
13
+ open: boolean;
14
+ onOpenChange: NonNullable<React.ComponentProps<typeof Collapsible>['onOpenChange']>;
15
+ })): React.JSX.Element;
16
+ declare function TraceCollapsibleTrigger({ className, children, ...props }: Omit<React.ComponentProps<typeof CollapsibleTrigger>, 'asChild'>): React.JSX.Element;
17
+ declare function TraceCollapsibleContent({ className, children, ...props }: Omit<React.ComponentProps<typeof CollapsibleContent>, 'asChild'>): React.JSX.Element;
18
+ export { Trace, TraceLine, TraceIcon, TraceTitle, TraceDescription, TraceCollapsible, TraceCollapsibleTrigger, TraceCollapsibleContent, };
@@ -1 +1 @@
1
- {"version":3,"file":"use-highlighted-code.d.ts","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kXAmEjE"}
1
+ {"version":3,"file":"use-highlighted-code.d.ts","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kXAmEjE"}
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ import { loadHighlighter } from "@/lib/highlighter";
4
+ // src/hooks/use-highlighted-code.ts
5
+ function useHighlightedCode(value, language) {
6
+ const code = value.endsWith("\n") ? value.slice(0, -1) : value;
7
+ const [loaded, setLoaded] = React.useState(null);
8
+ const highlighter = loaded?.language === language ? loaded.highlighter : null;
9
+ React.useEffect(() => {
10
+ let cancelled = false;
11
+ loadHighlighter(language).then((next) => {
12
+ if (!cancelled) setLoaded({
13
+ language,
14
+ highlighter: next
15
+ });
16
+ }).catch(() => {});
17
+ return () => {
18
+ cancelled = true;
19
+ };
20
+ }, [language]);
21
+ const [done, setDone] = React.useState({
22
+ highlighter: null,
23
+ text: "",
24
+ lines: []
25
+ });
26
+ let next = done;
27
+ if (next.highlighter !== highlighter || !code.startsWith(next.text)) next = {
28
+ highlighter,
29
+ text: "",
30
+ lines: []
31
+ };
32
+ const end = code.lastIndexOf("\n") + 1;
33
+ if (highlighter && end > next.text.length) {
34
+ const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);
35
+ next = {
36
+ highlighter,
37
+ text: code.slice(0, end),
38
+ lines: [...next.lines, ...result.lines],
39
+ state: result.state
40
+ };
41
+ }
42
+ if (next !== done) setDone(next);
43
+ const tail = code.slice(end);
44
+ return React.useMemo(() => {
45
+ if (!highlighter) return code.split("\n");
46
+ return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];
47
+ }, [
48
+ code,
49
+ highlighter,
50
+ next,
51
+ tail
52
+ ]);
53
+ }
54
+ export { useHighlightedCode };
55
+
56
+ //# sourceMappingURL=use-highlighted-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-highlighted-code.js","names":[],"sources":["../../src/hooks/use-highlighted-code.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { loadHighlighter } from '@/lib/highlighter';\n\nexport function useHighlightedCode(value: string, language: string) {\n // A trailing newline would render as an extra empty line.\n const code = value.endsWith('\\n') ? value.slice(0, -1) : value;\n const [loaded, setLoaded] = React.useState<{\n language: string;\n highlighter: Awaited<ReturnType<typeof loadHighlighter>>;\n } | null>(null);\n const highlighter = loaded?.language === language ? loaded.highlighter : null;\n\n React.useEffect(() => {\n let cancelled = false;\n\n loadHighlighter(language)\n .then((next) => {\n if (!cancelled) {\n setLoaded({ language, highlighter: next });\n }\n })\n .catch(() => {});\n\n return () => {\n cancelled = true;\n };\n }, [language]);\n\n // The complete lines, highlighted. While the code streams, only the new\n // lines are tokenized, starting from the grammar state of the last one.\n const [done, setDone] = React.useState<{\n highlighter: typeof highlighter;\n text: string;\n lines: React.ReactNode[];\n state?: Parameters<NonNullable<typeof highlighter>['highlight']>[1];\n }>({ highlighter: null, text: '', lines: [] });\n\n let next = done;\n\n if (next.highlighter !== highlighter || !code.startsWith(next.text)) {\n next = { highlighter, text: '', lines: [] };\n }\n\n const end = code.lastIndexOf('\\n') + 1;\n\n if (highlighter && end > next.text.length) {\n const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);\n\n next = {\n highlighter,\n text: code.slice(0, end),\n lines: [...next.lines, ...result.lines],\n state: result.state,\n };\n }\n\n if (next !== done) {\n setDone(next);\n }\n\n // The last line is still being written, so it is tokenized on every render.\n const tail = code.slice(end);\n\n return React.useMemo(() => {\n if (!highlighter) {\n return code.split('\\n');\n }\n\n return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];\n }, [code, highlighter, next, tail]);\n}\n"],"mappings":";;;;AAMA,SAAgB,mBAAmB,OAAe,UAAkB;CAElE,MAAM,OAAO,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;CACzD,MAAM,CAAC,QAAQ,aAAa,MAAM,SAGxB,IAAI;CACd,MAAM,cAAc,QAAQ,aAAa,WAAW,OAAO,cAAc;CAEzE,MAAM,gBAAgB;EACpB,IAAI,YAAY;EAEhB,gBAAgB,QAAQ,CAAC,CACtB,MAAM,SAAS;GACd,IAAI,CAAC,WACH,UAAU;IAAE;IAAU,aAAa;GAAK,CAAC;EAE7C,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EAEjB,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,QAAQ,CAAC;CAIb,MAAM,CAAC,MAAM,WAAW,MAAM,SAK3B;EAAE,aAAa;EAAM,MAAM;EAAI,OAAO,CAAC;CAAE,CAAC;CAE7C,IAAI,OAAO;CAEX,IAAI,KAAK,gBAAgB,eAAe,CAAC,KAAK,WAAW,KAAK,IAAI,GAChE,OAAO;EAAE;EAAa,MAAM;EAAI,OAAO,CAAC;CAAE;CAG5C,MAAM,MAAM,KAAK,YAAY,IAAI,IAAI;CAErC,IAAI,eAAe,MAAM,KAAK,KAAK,QAAQ;EACzC,MAAM,SAAS,YAAY,UAAU,KAAK,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC,GAAG,KAAK,KAAK;EAEtF,OAAO;GACL;GACA,MAAM,KAAK,MAAM,GAAG,GAAG;GACvB,OAAO,CAAC,GAAG,KAAK,OAAO,GAAG,OAAO,KAAK;GACtC,OAAO,OAAO;EAChB;CACF;CAEA,IAAI,SAAS,MACX,QAAQ,IAAI;CAId,MAAM,OAAO,KAAK,MAAM,GAAG;CAE3B,OAAO,MAAM,cAAc;EACzB,IAAI,CAAC,aACH,OAAO,KAAK,MAAM,IAAI;EAGxB,OAAO,CAAC,GAAG,KAAK,OAAO,YAAY,UAAU,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE;CACzE,GAAG;EAAC;EAAM;EAAa;EAAM;CAAI,CAAC;AACpC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../chunks/rolldown-runtime-CmQyd0Gu.cjs");
4
+ let react = require("react");
5
+ react = require_rolldown_runtime.__toESM(react, 1);
6
+ // src/hooks/use-mobile.ts
7
+ var MOBILE_BREAKPOINT = 768;
8
+ var QUERY = `(max-width: 767px)`;
9
+ function subscribe(onChange) {
10
+ const mql = window.matchMedia(QUERY);
11
+ mql.addEventListener("change", onChange);
12
+ return () => mql.removeEventListener("change", onChange);
13
+ }
14
+ function getSnapshot() {
15
+ return window.innerWidth < MOBILE_BREAKPOINT;
16
+ }
17
+ /** `false` on the server and during hydration, then the real viewport. */
18
+ function getServerSnapshot() {
19
+ return false;
20
+ }
21
+ function useIsMobile() {
22
+ return react.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
23
+ }
24
+ exports.useIsMobile = useIsMobile;
25
+
26
+ //# sourceMappingURL=use-mobile.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.cjs","names":["React"],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\nconst QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;\n\nfunction subscribe(onChange: () => void) {\n const mql = window.matchMedia(QUERY);\n mql.addEventListener('change', onChange);\n\n return () => mql.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n return window.innerWidth < MOBILE_BREAKPOINT;\n}\n\n/** `false` on the server and during hydration, then the real viewport. */\nfunction getServerSnapshot() {\n return false;\n}\n\nexport function useIsMobile() {\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n"],"mappings":";;;;;;AAIA,IAAM,oBAAoB;AAC1B,IAAM,QAAQ;AAEd,SAAS,UAAU,UAAsB;CACvC,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,IAAI,iBAAiB,UAAU,QAAQ;CAEvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,cAAc;CACrB,OAAO,OAAO,aAAa;AAC7B;;AAGA,SAAS,oBAAoB;CAC3B,OAAO;AACT;AAEA,SAAgB,cAAc;CAC5B,OAAOA,MAAM,qBAAqB,WAAW,aAAa,iBAAiB;AAC7E"}
@@ -0,0 +1 @@
1
+ export declare function useIsMobile(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,YAE1B"}
1
+ {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAuBA,wBAAgB,WAAW,YAE1B"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as React from "react";
2
3
  // src/hooks/use-mobile.ts
3
4
  var MOBILE_BREAKPOINT = 768;
@@ -1 +1 @@
1
- {"version":3,"file":"use-mobile.js","names":[],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\nconst QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;\n\nfunction subscribe(onChange: () => void) {\n const mql = window.matchMedia(QUERY);\n mql.addEventListener('change', onChange);\n\n return () => mql.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n return window.innerWidth < MOBILE_BREAKPOINT;\n}\n\n/** `false` on the server and during hydration, then the real viewport. */\nfunction getServerSnapshot() {\n return false;\n}\n\nexport function useIsMobile() {\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n"],"mappings":";;AAEA,IAAM,oBAAoB;AAC1B,IAAM,QAAQ;AAEd,SAAS,UAAU,UAAsB;CACvC,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,IAAI,iBAAiB,UAAU,QAAQ;CAEvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,cAAc;CACrB,OAAO,OAAO,aAAa;AAC7B;;AAGA,SAAS,oBAAoB;CAC3B,OAAO;AACT;AAEA,SAAgB,cAAc;CAC5B,OAAO,MAAM,qBAAqB,WAAW,aAAa,iBAAiB;AAC7E"}
1
+ {"version":3,"file":"use-mobile.js","names":[],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\nconst QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;\n\nfunction subscribe(onChange: () => void) {\n const mql = window.matchMedia(QUERY);\n mql.addEventListener('change', onChange);\n\n return () => mql.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n return window.innerWidth < MOBILE_BREAKPOINT;\n}\n\n/** `false` on the server and during hydration, then the real viewport. */\nfunction getServerSnapshot() {\n return false;\n}\n\nexport function useIsMobile() {\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n"],"mappings":";;;AAIA,IAAM,oBAAoB;AAC1B,IAAM,QAAQ;AAEd,SAAS,UAAU,UAAsB;CACvC,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,IAAI,iBAAiB,UAAU,QAAQ;CAEvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,cAAc;CACrB,OAAO,OAAO,aAAa;AAC7B;;AAGA,SAAS,oBAAoB;CAC3B,OAAO;AACT;AAEA,SAAgB,cAAc;CAC5B,OAAO,MAAM,qBAAqB,WAAW,aAAa,iBAAiB;AAC7E"}