@neynar/ui 0.1.1

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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +195 -0
  3. package/dist/components/ui/accordion.d.ts +229 -0
  4. package/dist/components/ui/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/alert-dialog.d.ts +247 -0
  6. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  7. package/dist/components/ui/alert.d.ts +187 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts +94 -0
  10. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  11. package/dist/components/ui/avatar.d.ts +244 -0
  12. package/dist/components/ui/avatar.d.ts.map +1 -0
  13. package/dist/components/ui/badge.d.ts +163 -0
  14. package/dist/components/ui/badge.d.ts.map +1 -0
  15. package/dist/components/ui/breadcrumb.d.ts +281 -0
  16. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  17. package/dist/components/ui/button.d.ts +129 -0
  18. package/dist/components/ui/button.d.ts.map +1 -0
  19. package/dist/components/ui/calendar.d.ts +169 -0
  20. package/dist/components/ui/calendar.d.ts.map +1 -0
  21. package/dist/components/ui/card.d.ts +365 -0
  22. package/dist/components/ui/card.d.ts.map +1 -0
  23. package/dist/components/ui/carousel.d.ts +369 -0
  24. package/dist/components/ui/carousel.d.ts.map +1 -0
  25. package/dist/components/ui/chart.d.ts +442 -0
  26. package/dist/components/ui/chart.d.ts.map +1 -0
  27. package/dist/components/ui/checkbox.d.ts +88 -0
  28. package/dist/components/ui/checkbox.d.ts.map +1 -0
  29. package/dist/components/ui/collapsible.d.ts +182 -0
  30. package/dist/components/ui/collapsible.d.ts.map +1 -0
  31. package/dist/components/ui/combobox.d.ts +270 -0
  32. package/dist/components/ui/combobox.d.ts.map +1 -0
  33. package/dist/components/ui/command.d.ts +355 -0
  34. package/dist/components/ui/command.d.ts.map +1 -0
  35. package/dist/components/ui/container.d.ts +102 -0
  36. package/dist/components/ui/container.d.ts.map +1 -0
  37. package/dist/components/ui/context-menu.d.ts +339 -0
  38. package/dist/components/ui/context-menu.d.ts.map +1 -0
  39. package/dist/components/ui/date-picker.d.ts +145 -0
  40. package/dist/components/ui/date-picker.d.ts.map +1 -0
  41. package/dist/components/ui/dialog.d.ts +322 -0
  42. package/dist/components/ui/dialog.d.ts.map +1 -0
  43. package/dist/components/ui/drawer.d.ts +154 -0
  44. package/dist/components/ui/drawer.d.ts.map +1 -0
  45. package/dist/components/ui/dropdown-menu.d.ts +349 -0
  46. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  47. package/dist/components/ui/empty-state.d.ts +133 -0
  48. package/dist/components/ui/empty-state.d.ts.map +1 -0
  49. package/dist/components/ui/hover-card.d.ts +109 -0
  50. package/dist/components/ui/hover-card.d.ts.map +1 -0
  51. package/dist/components/ui/input.d.ts +89 -0
  52. package/dist/components/ui/input.d.ts.map +1 -0
  53. package/dist/components/ui/label.d.ts +93 -0
  54. package/dist/components/ui/label.d.ts.map +1 -0
  55. package/dist/components/ui/menubar.d.ts +306 -0
  56. package/dist/components/ui/menubar.d.ts.map +1 -0
  57. package/dist/components/ui/navigation-menu.d.ts +318 -0
  58. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  59. package/dist/components/ui/pagination.d.ts +343 -0
  60. package/dist/components/ui/pagination.d.ts.map +1 -0
  61. package/dist/components/ui/popover.d.ts +178 -0
  62. package/dist/components/ui/popover.d.ts.map +1 -0
  63. package/dist/components/ui/progress.d.ts +64 -0
  64. package/dist/components/ui/progress.d.ts.map +1 -0
  65. package/dist/components/ui/radio-group.d.ts +144 -0
  66. package/dist/components/ui/radio-group.d.ts.map +1 -0
  67. package/dist/components/ui/resizable.d.ts +164 -0
  68. package/dist/components/ui/resizable.d.ts.map +1 -0
  69. package/dist/components/ui/scroll-area.d.ts +82 -0
  70. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  71. package/dist/components/ui/select.d.ts +316 -0
  72. package/dist/components/ui/select.d.ts.map +1 -0
  73. package/dist/components/ui/separator.d.ts +80 -0
  74. package/dist/components/ui/separator.d.ts.map +1 -0
  75. package/dist/components/ui/sheet.d.ts +346 -0
  76. package/dist/components/ui/sheet.d.ts.map +1 -0
  77. package/dist/components/ui/sidebar.d.ts +1561 -0
  78. package/dist/components/ui/sidebar.d.ts.map +1 -0
  79. package/dist/components/ui/skeleton.d.ts +66 -0
  80. package/dist/components/ui/skeleton.d.ts.map +1 -0
  81. package/dist/components/ui/slider.d.ts +95 -0
  82. package/dist/components/ui/slider.d.ts.map +1 -0
  83. package/dist/components/ui/sonner.d.ts +101 -0
  84. package/dist/components/ui/sonner.d.ts.map +1 -0
  85. package/dist/components/ui/stack.d.ts +192 -0
  86. package/dist/components/ui/stack.d.ts.map +1 -0
  87. package/dist/components/ui/stories/accordion.stories.d.ts +71 -0
  88. package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -0
  89. package/dist/components/ui/stories/alert-dialog.stories.d.ts +39 -0
  90. package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -0
  91. package/dist/components/ui/stories/alert.stories.d.ts +48 -0
  92. package/dist/components/ui/stories/alert.stories.d.ts.map +1 -0
  93. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +53 -0
  94. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -0
  95. package/dist/components/ui/stories/avatar.stories.d.ts +49 -0
  96. package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -0
  97. package/dist/components/ui/stories/badge.stories.d.ts +64 -0
  98. package/dist/components/ui/stories/badge.stories.d.ts.map +1 -0
  99. package/dist/components/ui/stories/breadcrumb.stories.d.ts +27 -0
  100. package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -0
  101. package/dist/components/ui/stories/button.stories.d.ts +92 -0
  102. package/dist/components/ui/stories/button.stories.d.ts.map +1 -0
  103. package/dist/components/ui/stories/calendar.stories.d.ts +94 -0
  104. package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -0
  105. package/dist/components/ui/stories/card.stories.d.ts +29 -0
  106. package/dist/components/ui/stories/card.stories.d.ts.map +1 -0
  107. package/dist/components/ui/stories/carousel.stories.d.ts +42 -0
  108. package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -0
  109. package/dist/components/ui/stories/chart.stories.d.ts +51 -0
  110. package/dist/components/ui/stories/chart.stories.d.ts.map +1 -0
  111. package/dist/components/ui/stories/checkbox.stories.d.ts +72 -0
  112. package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -0
  113. package/dist/components/ui/stories/cn.stories.d.ts +19 -0
  114. package/dist/components/ui/stories/cn.stories.d.ts.map +1 -0
  115. package/dist/components/ui/stories/collapsible.stories.d.ts +51 -0
  116. package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -0
  117. package/dist/components/ui/stories/colors.stories.d.ts +31 -0
  118. package/dist/components/ui/stories/colors.stories.d.ts.map +1 -0
  119. package/dist/components/ui/stories/combobox.stories.d.ts +89 -0
  120. package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -0
  121. package/dist/components/ui/stories/command.stories.d.ts +69 -0
  122. package/dist/components/ui/stories/command.stories.d.ts.map +1 -0
  123. package/dist/components/ui/stories/container.stories.d.ts +42 -0
  124. package/dist/components/ui/stories/container.stories.d.ts.map +1 -0
  125. package/dist/components/ui/stories/context-menu.stories.d.ts +32 -0
  126. package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -0
  127. package/dist/components/ui/stories/date-picker.stories.d.ts +67 -0
  128. package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -0
  129. package/dist/components/ui/stories/dialog.stories.d.ts +48 -0
  130. package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -0
  131. package/dist/components/ui/stories/drawer.stories.d.ts +33 -0
  132. package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -0
  133. package/dist/components/ui/stories/dropdown-menu.stories.d.ts +31 -0
  134. package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -0
  135. package/dist/components/ui/stories/empty-state.stories.d.ts +74 -0
  136. package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -0
  137. package/dist/components/ui/stories/hover-card.stories.d.ts +35 -0
  138. package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -0
  139. package/dist/components/ui/stories/input.stories.d.ts +69 -0
  140. package/dist/components/ui/stories/input.stories.d.ts.map +1 -0
  141. package/dist/components/ui/stories/label.stories.d.ts +47 -0
  142. package/dist/components/ui/stories/label.stories.d.ts.map +1 -0
  143. package/dist/components/ui/stories/menubar.stories.d.ts +39 -0
  144. package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -0
  145. package/dist/components/ui/stories/navigation-menu.stories.d.ts +44 -0
  146. package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -0
  147. package/dist/components/ui/stories/pagination.stories.d.ts +33 -0
  148. package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -0
  149. package/dist/components/ui/stories/popover.stories.d.ts +36 -0
  150. package/dist/components/ui/stories/popover.stories.d.ts.map +1 -0
  151. package/dist/components/ui/stories/progress.stories.d.ts +38 -0
  152. package/dist/components/ui/stories/progress.stories.d.ts.map +1 -0
  153. package/dist/components/ui/stories/radio-group.stories.d.ts +76 -0
  154. package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -0
  155. package/dist/components/ui/stories/resizable.stories.d.ts +49 -0
  156. package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -0
  157. package/dist/components/ui/stories/scroll-area.stories.d.ts +35 -0
  158. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -0
  159. package/dist/components/ui/stories/select.stories.d.ts +51 -0
  160. package/dist/components/ui/stories/select.stories.d.ts.map +1 -0
  161. package/dist/components/ui/stories/separator.stories.d.ts +58 -0
  162. package/dist/components/ui/stories/separator.stories.d.ts.map +1 -0
  163. package/dist/components/ui/stories/sheet.stories.d.ts +43 -0
  164. package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -0
  165. package/dist/components/ui/stories/sidebar.stories.d.ts +60 -0
  166. package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -0
  167. package/dist/components/ui/stories/skeleton.stories.d.ts +42 -0
  168. package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -0
  169. package/dist/components/ui/stories/slider.stories.d.ts +99 -0
  170. package/dist/components/ui/stories/slider.stories.d.ts.map +1 -0
  171. package/dist/components/ui/stories/sonner.stories.d.ts +9 -0
  172. package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -0
  173. package/dist/components/ui/stories/stack.stories.d.ts +39 -0
  174. package/dist/components/ui/stories/stack.stories.d.ts.map +1 -0
  175. package/dist/components/ui/stories/switch.stories.d.ts +71 -0
  176. package/dist/components/ui/stories/switch.stories.d.ts.map +1 -0
  177. package/dist/components/ui/stories/table.stories.d.ts +40 -0
  178. package/dist/components/ui/stories/table.stories.d.ts.map +1 -0
  179. package/dist/components/ui/stories/tabs.stories.d.ts +62 -0
  180. package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -0
  181. package/dist/components/ui/stories/text-field.stories.d.ts +78 -0
  182. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -0
  183. package/dist/components/ui/stories/textarea.stories.d.ts +57 -0
  184. package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -0
  185. package/dist/components/ui/stories/theme-toggle.stories.d.ts +71 -0
  186. package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -0
  187. package/dist/components/ui/stories/theme.stories.d.ts +51 -0
  188. package/dist/components/ui/stories/theme.stories.d.ts.map +1 -0
  189. package/dist/components/ui/stories/toggle-group.stories.d.ts +71 -0
  190. package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -0
  191. package/dist/components/ui/stories/toggle.stories.d.ts +78 -0
  192. package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -0
  193. package/dist/components/ui/stories/tooltip.stories.d.ts +37 -0
  194. package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -0
  195. package/dist/components/ui/stories/typography.stories.d.ts +137 -0
  196. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -0
  197. package/dist/components/ui/stories/use-mobile.stories.d.ts +20 -0
  198. package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -0
  199. package/dist/components/ui/stories/use-theme.stories.d.ts +23 -0
  200. package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -0
  201. package/dist/components/ui/switch.d.ts +84 -0
  202. package/dist/components/ui/switch.d.ts.map +1 -0
  203. package/dist/components/ui/table.d.ts +321 -0
  204. package/dist/components/ui/table.d.ts.map +1 -0
  205. package/dist/components/ui/tabs.d.ts +260 -0
  206. package/dist/components/ui/tabs.d.ts.map +1 -0
  207. package/dist/components/ui/text-field.d.ts +157 -0
  208. package/dist/components/ui/text-field.d.ts.map +1 -0
  209. package/dist/components/ui/textarea.d.ts +84 -0
  210. package/dist/components/ui/textarea.d.ts.map +1 -0
  211. package/dist/components/ui/theme-toggle.d.ts +105 -0
  212. package/dist/components/ui/theme-toggle.d.ts.map +1 -0
  213. package/dist/components/ui/theme.d.ts +110 -0
  214. package/dist/components/ui/theme.d.ts.map +1 -0
  215. package/dist/components/ui/toggle-group.d.ts +133 -0
  216. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  217. package/dist/components/ui/toggle.d.ts +84 -0
  218. package/dist/components/ui/toggle.d.ts.map +1 -0
  219. package/dist/components/ui/tooltip.d.ts +202 -0
  220. package/dist/components/ui/tooltip.d.ts.map +1 -0
  221. package/dist/components/ui/typography.d.ts +287 -0
  222. package/dist/components/ui/typography.d.ts.map +1 -0
  223. package/dist/hooks/use-mobile.d.ts +74 -0
  224. package/dist/hooks/use-mobile.d.ts.map +1 -0
  225. package/dist/hooks/use-theme.d.ts +142 -0
  226. package/dist/hooks/use-theme.d.ts.map +1 -0
  227. package/dist/index.d.ts +57 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +27498 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/lib/utils.d.ts +43 -0
  232. package/dist/lib/utils.d.ts.map +1 -0
  233. package/dist/tsconfig.tsbuildinfo +1 -0
  234. package/docs/llm/colors.md +273 -0
  235. package/docs/llm/components/buttons.md +68 -0
  236. package/docs/llm/components/cards.md +53 -0
  237. package/docs/llm/components/display.md +134 -0
  238. package/docs/llm/components/feedback.md +96 -0
  239. package/docs/llm/components/forms.md +90 -0
  240. package/docs/llm/components/layout.md +59 -0
  241. package/docs/llm/components/menus.md +70 -0
  242. package/docs/llm/components/navigation.md +80 -0
  243. package/docs/llm/components/overlays.md +83 -0
  244. package/docs/llm/components/tables.md +73 -0
  245. package/docs/llm/components/typography.md +199 -0
  246. package/docs/llm/components/utilities.md +114 -0
  247. package/docs/llm/guide.md +165 -0
  248. package/llms.txt +122 -0
  249. package/package.json +104 -0
  250. package/src/components/ui/accordion.tsx +285 -0
  251. package/src/components/ui/alert-dialog.tsx +387 -0
  252. package/src/components/ui/alert.tsx +243 -0
  253. package/src/components/ui/aspect-ratio.tsx +99 -0
  254. package/src/components/ui/avatar.tsx +288 -0
  255. package/src/components/ui/badge.tsx +205 -0
  256. package/src/components/ui/breadcrumb.tsx +378 -0
  257. package/src/components/ui/button.tsx +195 -0
  258. package/src/components/ui/calendar.tsx +371 -0
  259. package/src/components/ui/card.tsx +447 -0
  260. package/src/components/ui/carousel.tsx +624 -0
  261. package/src/components/ui/chart.tsx +802 -0
  262. package/src/components/ui/checkbox.tsx +113 -0
  263. package/src/components/ui/collapsible.tsx +207 -0
  264. package/src/components/ui/combobox.tsx +373 -0
  265. package/src/components/ui/command.tsx +518 -0
  266. package/src/components/ui/container.tsx +114 -0
  267. package/src/components/ui/context-menu.tsx +563 -0
  268. package/src/components/ui/date-picker.tsx +213 -0
  269. package/src/components/ui/dialog.tsx +447 -0
  270. package/src/components/ui/drawer.tsx +273 -0
  271. package/src/components/ui/dropdown-menu.tsx +578 -0
  272. package/src/components/ui/empty-state.tsx +145 -0
  273. package/src/components/ui/hover-card.tsx +144 -0
  274. package/src/components/ui/input.tsx +106 -0
  275. package/src/components/ui/label.tsx +110 -0
  276. package/src/components/ui/menubar.tsx +553 -0
  277. package/src/components/ui/navigation-menu.tsx +471 -0
  278. package/src/components/ui/pagination.tsx +456 -0
  279. package/src/components/ui/popover.tsx +216 -0
  280. package/src/components/ui/progress.tsx +88 -0
  281. package/src/components/ui/radio-group.tsx +183 -0
  282. package/src/components/ui/resizable.tsx +209 -0
  283. package/src/components/ui/scroll-area.tsx +132 -0
  284. package/src/components/ui/select.tsx +485 -0
  285. package/src/components/ui/separator.tsx +101 -0
  286. package/src/components/ui/sheet.tsx +495 -0
  287. package/src/components/ui/sidebar.tsx +2211 -0
  288. package/src/components/ui/skeleton.tsx +76 -0
  289. package/src/components/ui/slider.tsx +147 -0
  290. package/src/components/ui/sonner.tsx +120 -0
  291. package/src/components/ui/stack.tsx +180 -0
  292. package/src/components/ui/stories/accordion.stories.tsx +429 -0
  293. package/src/components/ui/stories/alert-dialog.stories.tsx +519 -0
  294. package/src/components/ui/stories/alert.stories.tsx +228 -0
  295. package/src/components/ui/stories/aspect-ratio.stories.tsx +200 -0
  296. package/src/components/ui/stories/avatar.stories.tsx +317 -0
  297. package/src/components/ui/stories/badge.stories.tsx +260 -0
  298. package/src/components/ui/stories/breadcrumb.stories.tsx +482 -0
  299. package/src/components/ui/stories/button.stories.tsx +266 -0
  300. package/src/components/ui/stories/calendar.stories.tsx +375 -0
  301. package/src/components/ui/stories/card.stories.tsx +308 -0
  302. package/src/components/ui/stories/carousel.stories.tsx +328 -0
  303. package/src/components/ui/stories/chart.stories.tsx +430 -0
  304. package/src/components/ui/stories/checkbox.stories.tsx +297 -0
  305. package/src/components/ui/stories/cn.stories.tsx +433 -0
  306. package/src/components/ui/stories/collapsible.stories.tsx +256 -0
  307. package/src/components/ui/stories/colors.stories.tsx +502 -0
  308. package/src/components/ui/stories/combobox.stories.tsx +301 -0
  309. package/src/components/ui/stories/command.stories.tsx +632 -0
  310. package/src/components/ui/stories/container.stories.tsx +250 -0
  311. package/src/components/ui/stories/context-menu.stories.tsx +446 -0
  312. package/src/components/ui/stories/date-picker.stories.tsx +378 -0
  313. package/src/components/ui/stories/dialog.stories.tsx +535 -0
  314. package/src/components/ui/stories/drawer.stories.tsx +364 -0
  315. package/src/components/ui/stories/dropdown-menu.stories.tsx +374 -0
  316. package/src/components/ui/stories/empty-state.stories.tsx +244 -0
  317. package/src/components/ui/stories/hover-card.stories.tsx +355 -0
  318. package/src/components/ui/stories/input.stories.tsx +289 -0
  319. package/src/components/ui/stories/label.stories.tsx +294 -0
  320. package/src/components/ui/stories/menubar.stories.tsx +764 -0
  321. package/src/components/ui/stories/navigation-menu.stories.tsx +539 -0
  322. package/src/components/ui/stories/pagination.stories.tsx +604 -0
  323. package/src/components/ui/stories/popover.stories.tsx +392 -0
  324. package/src/components/ui/stories/progress.stories.tsx +218 -0
  325. package/src/components/ui/stories/radio-group.stories.tsx +400 -0
  326. package/src/components/ui/stories/resizable.stories.tsx +417 -0
  327. package/src/components/ui/stories/scroll-area.stories.tsx +180 -0
  328. package/src/components/ui/stories/select.stories.tsx +389 -0
  329. package/src/components/ui/stories/separator.stories.tsx +192 -0
  330. package/src/components/ui/stories/sheet.stories.tsx +468 -0
  331. package/src/components/ui/stories/sidebar.stories.tsx +731 -0
  332. package/src/components/ui/stories/skeleton.stories.tsx +216 -0
  333. package/src/components/ui/stories/slider.stories.tsx +321 -0
  334. package/src/components/ui/stories/sonner.stories.tsx +373 -0
  335. package/src/components/ui/stories/stack.stories.tsx +222 -0
  336. package/src/components/ui/stories/switch.stories.tsx +202 -0
  337. package/src/components/ui/stories/table.stories.tsx +541 -0
  338. package/src/components/ui/stories/tabs.stories.tsx +544 -0
  339. package/src/components/ui/stories/text-field.stories.tsx +280 -0
  340. package/src/components/ui/stories/textarea.stories.tsx +245 -0
  341. package/src/components/ui/stories/theme-toggle.stories.tsx +275 -0
  342. package/src/components/ui/stories/theme.stories.tsx +412 -0
  343. package/src/components/ui/stories/toggle-group.stories.tsx +337 -0
  344. package/src/components/ui/stories/toggle.stories.tsx +325 -0
  345. package/src/components/ui/stories/tooltip.stories.tsx +444 -0
  346. package/src/components/ui/stories/typography.stories.tsx +1586 -0
  347. package/src/components/ui/stories/use-mobile.stories.tsx +420 -0
  348. package/src/components/ui/stories/use-theme.stories.tsx +531 -0
  349. package/src/components/ui/switch.tsx +106 -0
  350. package/src/components/ui/table.tsx +424 -0
  351. package/src/components/ui/tabs.tsx +316 -0
  352. package/src/components/ui/text-field.tsx +206 -0
  353. package/src/components/ui/textarea.tsx +98 -0
  354. package/src/components/ui/theme-toggle.tsx +185 -0
  355. package/src/components/ui/theme.tsx +148 -0
  356. package/src/components/ui/toggle-group.tsx +196 -0
  357. package/src/components/ui/toggle.tsx +115 -0
  358. package/src/components/ui/tooltip.tsx +253 -0
  359. package/src/components/ui/typography.tsx +468 -0
  360. package/src/hooks/use-mobile.ts +91 -0
  361. package/src/hooks/use-theme.ts +319 -0
  362. package/src/index.ts +77 -0
  363. package/src/lib/utils.ts +57 -0
  364. package/src/styles/globals.css +160 -0
@@ -0,0 +1,339 @@
1
+ import * as React from "react";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
+ /**
4
+ * ContextMenu - A contextual menu that appears on right-click or long-press
5
+ *
6
+ * Context menus provide contextual actions for specific elements or areas.
7
+ * Built on Radix UI primitives, they appear when users right-click (or long-press
8
+ * on touch devices) and offer actions relevant to the clicked item or region.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic context menu with items
13
+ * <ContextMenu>
14
+ * <ContextMenuTrigger>
15
+ * <div className="border rounded p-4">
16
+ * Right-click here
17
+ * </div>
18
+ * </ContextMenuTrigger>
19
+ * <ContextMenuContent>
20
+ * <ContextMenuItem>Copy</ContextMenuItem>
21
+ * <ContextMenuItem>Paste</ContextMenuItem>
22
+ * <ContextMenuSeparator />
23
+ * <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
24
+ * </ContextMenuContent>
25
+ * </ContextMenu>
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * // With sub-menus and shortcuts
31
+ * <ContextMenu>
32
+ * <ContextMenuTrigger>Right-click me</ContextMenuTrigger>
33
+ * <ContextMenuContent>
34
+ * <ContextMenuItem>
35
+ * Edit <ContextMenuShortcut>⌘E</ContextMenuShortcut>
36
+ * </ContextMenuItem>
37
+ * <ContextMenuSub>
38
+ * <ContextMenuSubTrigger>Share</ContextMenuSubTrigger>
39
+ * <ContextMenuSubContent>
40
+ * <ContextMenuItem>Email</ContextMenuItem>
41
+ * <ContextMenuItem>Copy Link</ContextMenuItem>
42
+ * </ContextMenuSubContent>
43
+ * </ContextMenuSub>
44
+ * </ContextMenuContent>
45
+ * </ContextMenu>
46
+ * ```
47
+ *
48
+ * @accessibility
49
+ * - Triggered by right-click, long-press, or Shift+F10
50
+ * - Full keyboard navigation with arrow keys
51
+ * - Escape key closes the menu and sub-menus
52
+ * - Enter/Space activates menu items
53
+ * - Tab moves focus outside the menu
54
+ * - Proper ARIA roles and focus management
55
+ * - Screen reader announcements for menu state changes
56
+ *
57
+ * @see {@link https://ui.shadcn.com/docs/components/context-menu} shadcn/ui docs
58
+ * @since 1.0.0
59
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/context-menu} Radix UI docs
60
+ */
61
+ declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
62
+ /**
63
+ * ContextMenuTrigger - The element that triggers the context menu
64
+ *
65
+ * Wraps any element to make it respond to right-click or long-press events.
66
+ * The trigger element should provide visual feedback about its interactive nature.
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * <ContextMenuTrigger>
71
+ * <Button variant="outline">Right-click me</Button>
72
+ * </ContextMenuTrigger>
73
+ * ```
74
+ *
75
+ * @param children - Any React element that should trigger the context menu
76
+ */
77
+ declare function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
78
+ /**
79
+ * ContextMenuGroup - Logical grouping for menu items
80
+ *
81
+ * Groups related menu items together for better organization and accessibility.
82
+ * Provides semantic structure without visual changes.
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * <ContextMenuGroup>
87
+ * <ContextMenuItem>Copy</ContextMenuItem>
88
+ * <ContextMenuItem>Cut</ContextMenuItem>
89
+ * <ContextMenuItem>Paste</ContextMenuItem>
90
+ * </ContextMenuGroup>
91
+ * ```
92
+ */
93
+ declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
94
+ /**
95
+ * ContextMenuPortal - Portal container for menu content
96
+ *
97
+ * Renders menu content in a portal to ensure proper layering and positioning.
98
+ * Typically used with sub-menus to control rendering context.
99
+ *
100
+ * @example
101
+ * ```tsx
102
+ * <ContextMenuPortal>
103
+ * <ContextMenuSubContent>
104
+ * <ContextMenuItem>Portal Item</ContextMenuItem>
105
+ * </ContextMenuSubContent>
106
+ * </ContextMenuPortal>
107
+ * ```
108
+ *
109
+ * @param container - Custom container element for the portal
110
+ */
111
+ declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
112
+ /**
113
+ * ContextMenuSub - Container for sub-menu functionality
114
+ *
115
+ * Wraps a sub-menu trigger and its content to create nested menu structures.
116
+ * Enables hierarchical organization of menu items.
117
+ *
118
+ * @example
119
+ * ```tsx
120
+ * <ContextMenuSub>
121
+ * <ContextMenuSubTrigger>Share</ContextMenuSubTrigger>
122
+ * <ContextMenuSubContent>
123
+ * <ContextMenuItem>Email</ContextMenuItem>
124
+ * <ContextMenuItem>Copy Link</ContextMenuItem>
125
+ * </ContextMenuSubContent>
126
+ * </ContextMenuSub>
127
+ * ```
128
+ */
129
+ declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
130
+ /**
131
+ * ContextMenuRadioGroup - Container for radio button items
132
+ *
133
+ * Groups radio items together to allow single selection from multiple options.
134
+ * Manages the selected state and ensures only one item can be selected.
135
+ *
136
+ * @example
137
+ * ```tsx
138
+ * <ContextMenuRadioGroup value={theme} onValueChange={setTheme}>
139
+ * <ContextMenuRadioItem value="light">Light</ContextMenuRadioItem>
140
+ * <ContextMenuRadioItem value="dark">Dark</ContextMenuRadioItem>
141
+ * <ContextMenuRadioItem value="system">System</ContextMenuRadioItem>
142
+ * </ContextMenuRadioGroup>
143
+ * ```
144
+ *
145
+ * @param value - The currently selected value
146
+ * @param onValueChange - Callback fired when selection changes
147
+ */
148
+ declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
149
+ /**
150
+ * ContextMenuSubTrigger - Trigger element for opening sub-menus
151
+ *
152
+ * Menu item that opens a sub-menu on hover or focus. Automatically includes
153
+ * a chevron icon to indicate the presence of a sub-menu.
154
+ *
155
+ * @example
156
+ * ```tsx
157
+ * <ContextMenuSubTrigger>
158
+ * <Share className="mr-2 h-4 w-4" />
159
+ * Share Options
160
+ * </ContextMenuSubTrigger>
161
+ * ```
162
+ *
163
+ * @param inset - Whether to indent the trigger for proper alignment
164
+ * @param children - Content of the trigger (text, icons, etc.)
165
+ */
166
+ declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
167
+ /** Whether to indent the trigger for proper alignment */
168
+ inset?: boolean;
169
+ }): import("react/jsx-runtime").JSX.Element;
170
+ /**
171
+ * ContextMenuSubContent - Container for sub-menu items
172
+ *
173
+ * Contains the items within a sub-menu. Automatically positioned relative
174
+ * to its trigger with collision detection and smooth animations.
175
+ *
176
+ * @example
177
+ * ```tsx
178
+ * <ContextMenuSubContent>
179
+ * <ContextMenuItem>Option 1</ContextMenuItem>
180
+ * <ContextMenuItem>Option 2</ContextMenuItem>
181
+ * <ContextMenuSeparator />
182
+ * <ContextMenuItem>Option 3</ContextMenuItem>
183
+ * </ContextMenuSubContent>
184
+ * ```
185
+ *
186
+ * @param className - Additional CSS classes for styling
187
+ * @param children - Sub-menu items, separators, and labels
188
+ */
189
+ declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
190
+ /**
191
+ * ContextMenuContent - The container for context menu items
192
+ *
193
+ * Contains all menu items, separators, labels, and sub-menus. Automatically
194
+ * positioned relative to the trigger point with collision detection.
195
+ *
196
+ * @example
197
+ * ```tsx
198
+ * <ContextMenuContent className="w-56">
199
+ * <ContextMenuLabel>Actions</ContextMenuLabel>
200
+ * <ContextMenuSeparator />
201
+ * <ContextMenuItem>Copy</ContextMenuItem>
202
+ * <ContextMenuItem>Paste</ContextMenuItem>
203
+ * </ContextMenuContent>
204
+ * ```
205
+ *
206
+ * @param className - Additional CSS classes for styling
207
+ * @param children - Menu items, separators, labels, and sub-menus
208
+ */
209
+ declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
210
+ /**
211
+ * ContextMenuItem - An actionable item within the context menu
212
+ *
213
+ * Individual menu items that users can interact with. Supports different
214
+ * variants for visual hierarchy and includes automatic icon styling.
215
+ *
216
+ * @example
217
+ * ```tsx
218
+ * <ContextMenuItem>
219
+ * <Edit className="mr-2 h-4 w-4" />
220
+ * Edit
221
+ * <ContextMenuShortcut>⌘E</ContextMenuShortcut>
222
+ * </ContextMenuItem>
223
+ * ```
224
+ *
225
+ * @example
226
+ * ```tsx
227
+ * <ContextMenuItem variant="destructive">
228
+ * <Trash2 className="mr-2 h-4 w-4" />
229
+ * Delete
230
+ * </ContextMenuItem>
231
+ * ```
232
+ *
233
+ * @param inset - Whether to indent the item (useful when mixing items with/without icons)
234
+ * @param variant - Visual variant: "default" for normal actions, "destructive" for dangerous actions
235
+ * @param disabled - Whether the item is disabled and non-interactive
236
+ * @param onSelect - Callback fired when the item is selected
237
+ */
238
+ declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
239
+ /** Whether to indent the item for proper alignment */
240
+ inset?: boolean;
241
+ /** Visual variant for the menu item */
242
+ variant?: "default" | "destructive";
243
+ }): import("react/jsx-runtime").JSX.Element;
244
+ /**
245
+ * ContextMenuCheckboxItem - A menu item with checkbox functionality
246
+ *
247
+ * Menu items that can be toggled on/off, useful for binary settings or options.
248
+ * Displays a check mark when selected and supports controlled state management.
249
+ *
250
+ * @example
251
+ * ```tsx
252
+ * const [showGrid, setShowGrid] = useState(true)
253
+ *
254
+ * <ContextMenuCheckboxItem
255
+ * checked={showGrid}
256
+ * onCheckedChange={setShowGrid}
257
+ * >
258
+ * Show Grid
259
+ * </ContextMenuCheckboxItem>
260
+ * ```
261
+ *
262
+ * @param checked - Whether the checkbox is checked
263
+ * @param onCheckedChange - Callback fired when the checked state changes
264
+ * @param disabled - Whether the item is disabled
265
+ */
266
+ declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
267
+ /**
268
+ * ContextMenuRadioItem - A radio button item within a radio group
269
+ *
270
+ * Menu items that allow single selection from a group of options.
271
+ * Must be used within a ContextMenuRadioGroup for proper functionality.
272
+ *
273
+ * @example
274
+ * ```tsx
275
+ * <ContextMenuRadioGroup value={theme} onValueChange={setTheme}>
276
+ * <ContextMenuRadioItem value="light">Light</ContextMenuRadioItem>
277
+ * <ContextMenuRadioItem value="dark">Dark</ContextMenuRadioItem>
278
+ * <ContextMenuRadioItem value="system">System</ContextMenuRadioItem>
279
+ * </ContextMenuRadioGroup>
280
+ * ```
281
+ *
282
+ * @param value - The value of this radio item
283
+ * @param disabled - Whether the item is disabled
284
+ */
285
+ declare function ContextMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
286
+ /**
287
+ * ContextMenuLabel - A non-interactive label for menu sections
288
+ *
289
+ * Used to group related menu items and provide context. Labels are not
290
+ * focusable and serve as visual section headers within the menu.
291
+ *
292
+ * @example
293
+ * ```tsx
294
+ * <ContextMenuLabel>File Actions</ContextMenuLabel>
295
+ * <ContextMenuSeparator />
296
+ * <ContextMenuItem>Open</ContextMenuItem>
297
+ * <ContextMenuItem>Save</ContextMenuItem>
298
+ * ```
299
+ *
300
+ * @param inset - Whether to indent the label to align with inset items
301
+ */
302
+ declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
303
+ /** Whether to indent the label for proper alignment */
304
+ inset?: boolean;
305
+ }): import("react/jsx-runtime").JSX.Element;
306
+ /**
307
+ * ContextMenuSeparator - A visual divider between menu items
308
+ *
309
+ * Creates visual separation between groups of related menu items.
310
+ * Typically used after labels or to separate different types of actions.
311
+ *
312
+ * @example
313
+ * ```tsx
314
+ * <ContextMenuItem>Copy</ContextMenuItem>
315
+ * <ContextMenuItem>Paste</ContextMenuItem>
316
+ * <ContextMenuSeparator />
317
+ * <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
318
+ * ```
319
+ */
320
+ declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
321
+ /**
322
+ * ContextMenuShortcut - Displays keyboard shortcuts within menu items
323
+ *
324
+ * Shows keyboard shortcuts aligned to the right side of menu items.
325
+ * Provides visual indication of available keyboard shortcuts for actions.
326
+ *
327
+ * @example
328
+ * ```tsx
329
+ * <ContextMenuItem>
330
+ * Copy
331
+ * <ContextMenuShortcut>⌘C</ContextMenuShortcut>
332
+ * </ContextMenuItem>
333
+ * ```
334
+ *
335
+ * @param children - The shortcut text (e.g., "⌘C", "Ctrl+V")
336
+ */
337
+ declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
338
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
339
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/context-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Properties for the DatePicker component
3
+ *
4
+ * @type DatePickerProps
5
+ * @since 1.0.0
6
+ */
7
+ type DatePickerProps = {
8
+ /**
9
+ * The currently selected date value. When undefined, no date is selected.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * const [selectedDate, setSelectedDate] = useState<Date>();
14
+ * <DatePicker date={selectedDate} onDateChange={setSelectedDate} />
15
+ * ```
16
+ */
17
+ date?: Date;
18
+ /**
19
+ * Callback function invoked when the user selects or clears a date.
20
+ * Receives the selected date or undefined when cleared.
21
+ *
22
+ * @param date - The newly selected date or undefined if cleared
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <DatePicker onDateChange={(date) => console.log('Selected:', date)} />
27
+ * ```
28
+ */
29
+ onDateChange?: (date: Date | undefined) => void;
30
+ /**
31
+ * Placeholder text displayed in the trigger button when no date is selected.
32
+ * Provides context about what kind of date selection is expected.
33
+ *
34
+ * @default "Pick a date"
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * <DatePicker placeholder="Select your birthday" />
39
+ * ```
40
+ */
41
+ placeholder?: string;
42
+ /**
43
+ * When true, disables the date picker preventing user interaction.
44
+ * The trigger button will appear disabled and the popover cannot be opened.
45
+ *
46
+ * @default false
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * <DatePicker disabled={true} placeholder="Date locked" />
51
+ * ```
52
+ */
53
+ disabled?: boolean;
54
+ /**
55
+ * Additional CSS classes to apply to the trigger button.
56
+ * Useful for customizing width, spacing, or other styling.
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * <DatePicker className="w-full" /> // Full width
61
+ * <DatePicker className="w-[300px]" /> // Fixed width
62
+ * ```
63
+ */
64
+ className?: string;
65
+ };
66
+ /**
67
+ * A comprehensive date selection component that combines an accessible button trigger
68
+ * with a full-featured calendar popover for intuitive date picking.
69
+ *
70
+ * Built on shadcn/ui design principles, this component provides a polished interface
71
+ * for date selection with proper accessibility, keyboard navigation, and visual feedback.
72
+ * The selected date is displayed using date-fns formatting for consistent presentation.
73
+ *
74
+ * @component
75
+ * @example
76
+ * ```tsx
77
+ * // Basic controlled date picker
78
+ * const [date, setDate] = useState<Date>();
79
+ *
80
+ * <DatePicker
81
+ * date={date}
82
+ * onDateChange={setDate}
83
+ * placeholder="Select date"
84
+ * />
85
+ * ```
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * // Date picker for forms with validation
90
+ * const [birthDate, setBirthDate] = useState<Date>();
91
+ *
92
+ * <DatePicker
93
+ * date={birthDate}
94
+ * onDateChange={setBirthDate}
95
+ * placeholder="Select birth date"
96
+ * className="w-[280px]"
97
+ * disabled={isSubmitting}
98
+ * />
99
+ * ```
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * // Date range start/end picker
104
+ * <div className="flex gap-2 items-center">
105
+ * <DatePicker
106
+ * date={startDate}
107
+ * onDateChange={setStartDate}
108
+ * placeholder="Start date"
109
+ * className="w-[180px]"
110
+ * />
111
+ * <span>to</span>
112
+ * <DatePicker
113
+ * date={endDate}
114
+ * onDateChange={setEndDate}
115
+ * placeholder="End date"
116
+ * className="w-[180px]"
117
+ * />
118
+ * </div>
119
+ * ```
120
+ *
121
+ * @accessibility
122
+ * - **Keyboard Navigation**: Full keyboard support with Tab, Enter, Escape, and arrow keys
123
+ * - **Screen Reader Support**: Proper ARIA labels and live announcements for date changes
124
+ * - **Focus Management**: Focus returns to trigger button when popover closes
125
+ * - **Visual Indicators**: Clear visual states for disabled, selected, and focused elements
126
+ * - **Date Formatting**: Consistent date presentation using localized formatting
127
+ *
128
+ * @features
129
+ * - Single date selection with visual confirmation
130
+ * - Popover-based calendar that doesn't interfere with page layout
131
+ * - Automatic popover positioning and collision detection
132
+ * - Internal state management with optional external control
133
+ * - Customizable trigger button styling and width
134
+ * - Date formatting using date-fns for internationalization support
135
+ *
136
+ * @see {@link https://ui.shadcn.com/docs/components/date-picker} shadcn/ui Date Picker patterns
137
+ * @see {@link Calendar} - The underlying calendar component
138
+ * @see {@link Popover} - The popover container component
139
+ * @see {@link Button} - The trigger button component
140
+ *
141
+ * @since 1.0.0
142
+ */
143
+ declare function DatePicker({ date, onDateChange, placeholder, disabled, className, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
144
+ export { DatePicker };
145
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/ui/date-picker.tsx"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,YAAY,EACZ,WAA2B,EAC3B,QAAgB,EAChB,SAAS,GACV,EAAE,eAAe,2CAgDjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}