@konopskidev/ui 0.0.0-stage → 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 (280) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -2
  3. package/dist/components/ui/accordion.d.ts +8 -0
  4. package/dist/components/ui/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/accordion.js +55 -0
  6. package/dist/components/ui/accordion.js.map +1 -0
  7. package/dist/components/ui/alert-dialog.d.ts +19 -0
  8. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  9. package/dist/components/ui/alert-dialog.js +101 -0
  10. package/dist/components/ui/alert-dialog.js.map +1 -0
  11. package/dist/components/ui/alert.d.ts +11 -0
  12. package/dist/components/ui/alert.d.ts.map +1 -0
  13. package/dist/components/ui/alert.js +44 -0
  14. package/dist/components/ui/alert.js.map +1 -0
  15. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  16. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  17. package/dist/components/ui/aspect-ratio.js +14 -0
  18. package/dist/components/ui/aspect-ratio.js.map +1 -0
  19. package/dist/components/ui/attachment.d.ts +25 -0
  20. package/dist/components/ui/attachment.d.ts.map +1 -0
  21. package/dist/components/ui/attachment.js +102 -0
  22. package/dist/components/ui/attachment.js.map +1 -0
  23. package/dist/components/ui/avatar.d.ts +12 -0
  24. package/dist/components/ui/avatar.d.ts.map +1 -0
  25. package/dist/components/ui/avatar.js +51 -0
  26. package/dist/components/ui/avatar.js.map +1 -0
  27. package/dist/components/ui/badge.d.ts +10 -0
  28. package/dist/components/ui/badge.d.ts.map +1 -0
  29. package/dist/components/ui/badge.js +29 -0
  30. package/dist/components/ui/badge.js.map +1 -0
  31. package/dist/components/ui/breadcrumb.d.ts +12 -0
  32. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  33. package/dist/components/ui/breadcrumb.js +72 -0
  34. package/dist/components/ui/breadcrumb.js.map +1 -0
  35. package/dist/components/ui/bubble.d.ts +18 -0
  36. package/dist/components/ui/bubble.d.ts.map +1 -0
  37. package/dist/components/ui/bubble.js +73 -0
  38. package/dist/components/ui/bubble.js.map +1 -0
  39. package/dist/components/ui/button-group.d.ts +12 -0
  40. package/dist/components/ui/button-group.d.ts.map +1 -0
  41. package/dist/components/ui/button-group.js +40 -0
  42. package/dist/components/ui/button-group.js.map +1 -0
  43. package/dist/components/ui/button.d.ts +22 -0
  44. package/dist/components/ui/button.d.ts.map +1 -0
  45. package/dist/components/ui/button.js +61 -0
  46. package/dist/components/ui/button.js.map +1 -0
  47. package/dist/components/ui/calendar.d.ts +11 -0
  48. package/dist/components/ui/calendar.d.ts.map +1 -0
  49. package/dist/components/ui/calendar.js +111 -0
  50. package/dist/components/ui/calendar.js.map +1 -0
  51. package/dist/components/ui/card.d.ts +26 -0
  52. package/dist/components/ui/card.d.ts.map +1 -0
  53. package/dist/components/ui/card.js +76 -0
  54. package/dist/components/ui/card.js.map +1 -0
  55. package/dist/components/ui/carousel.d.ts +29 -0
  56. package/dist/components/ui/carousel.d.ts.map +1 -0
  57. package/dist/components/ui/carousel.js +132 -0
  58. package/dist/components/ui/carousel.js.map +1 -0
  59. package/dist/components/ui/chart.d.ts +45 -0
  60. package/dist/components/ui/chart.d.ts.map +1 -0
  61. package/dist/components/ui/chart.js +151 -0
  62. package/dist/components/ui/chart.js.map +1 -0
  63. package/dist/components/ui/checkbox.d.ts +5 -0
  64. package/dist/components/ui/checkbox.d.ts.map +1 -0
  65. package/dist/components/ui/checkbox.js +21 -0
  66. package/dist/components/ui/checkbox.js.map +1 -0
  67. package/dist/components/ui/code-block.d.ts +27 -0
  68. package/dist/components/ui/code-block.d.ts.map +1 -0
  69. package/dist/components/ui/code-block.js +123 -0
  70. package/dist/components/ui/code-block.js.map +1 -0
  71. package/dist/components/ui/collapsible.d.ts +6 -0
  72. package/dist/components/ui/collapsible.d.ts.map +1 -0
  73. package/dist/components/ui/collapsible.js +26 -0
  74. package/dist/components/ui/collapsible.js.map +1 -0
  75. package/dist/components/ui/combobox.d.ts +25 -0
  76. package/dist/components/ui/combobox.d.ts.map +1 -0
  77. package/dist/components/ui/combobox.js +174 -0
  78. package/dist/components/ui/combobox.js.map +1 -0
  79. package/dist/components/ui/command.d.ts +19 -0
  80. package/dist/components/ui/command.d.ts.map +1 -0
  81. package/dist/components/ui/command.js +90 -0
  82. package/dist/components/ui/command.js.map +1 -0
  83. package/dist/components/ui/context-menu.d.ts +32 -0
  84. package/dist/components/ui/context-menu.d.ts.map +1 -0
  85. package/dist/components/ui/context-menu.js +125 -0
  86. package/dist/components/ui/context-menu.js.map +1 -0
  87. package/dist/components/ui/dialog.d.ts +18 -0
  88. package/dist/components/ui/dialog.d.ts.map +1 -0
  89. package/dist/components/ui/dialog.js +98 -0
  90. package/dist/components/ui/dialog.js.map +1 -0
  91. package/dist/components/ui/direction.d.ts +12 -0
  92. package/dist/components/ui/direction.d.ts.map +1 -0
  93. package/dist/components/ui/direction.js +16 -0
  94. package/dist/components/ui/direction.js.map +1 -0
  95. package/dist/components/ui/drawer.d.ts +14 -0
  96. package/dist/components/ui/drawer.d.ts.map +1 -0
  97. package/dist/components/ui/drawer.js +78 -0
  98. package/dist/components/ui/drawer.js.map +1 -0
  99. package/dist/components/ui/dropdown-menu.d.ts +30 -0
  100. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  101. package/dist/components/ui/dropdown-menu.js +130 -0
  102. package/dist/components/ui/dropdown-menu.js.map +1 -0
  103. package/dist/components/ui/empty.d.ts +12 -0
  104. package/dist/components/ui/empty.d.ts.map +1 -0
  105. package/dist/components/ui/empty.js +60 -0
  106. package/dist/components/ui/empty.js.map +1 -0
  107. package/dist/components/ui/field.d.ts +25 -0
  108. package/dist/components/ui/field.d.ts.map +1 -0
  109. package/dist/components/ui/field.js +112 -0
  110. package/dist/components/ui/field.js.map +1 -0
  111. package/dist/components/ui/hover-card.d.ts +7 -0
  112. package/dist/components/ui/hover-card.d.ts.map +1 -0
  113. package/dist/components/ui/hover-card.js +32 -0
  114. package/dist/components/ui/hover-card.js.map +1 -0
  115. package/dist/components/ui/input-group.d.ts +17 -0
  116. package/dist/components/ui/input-group.d.ts.map +1 -0
  117. package/dist/components/ui/input-group.js +79 -0
  118. package/dist/components/ui/input-group.js.map +1 -0
  119. package/dist/components/ui/input-otp.d.ts +12 -0
  120. package/dist/components/ui/input-otp.d.ts.map +1 -0
  121. package/dist/components/ui/input-otp.js +49 -0
  122. package/dist/components/ui/input-otp.js.map +1 -0
  123. package/dist/components/ui/input.d.ts +11 -0
  124. package/dist/components/ui/input.d.ts.map +1 -0
  125. package/dist/components/ui/input.js +25 -0
  126. package/dist/components/ui/input.js.map +1 -0
  127. package/dist/components/ui/item.d.ts +24 -0
  128. package/dist/components/ui/item.d.ts.map +1 -0
  129. package/dist/components/ui/item.js +121 -0
  130. package/dist/components/ui/item.js.map +1 -0
  131. package/dist/components/ui/kbd.d.ts +4 -0
  132. package/dist/components/ui/kbd.d.ts.map +1 -0
  133. package/dist/components/ui/kbd.js +20 -0
  134. package/dist/components/ui/kbd.js.map +1 -0
  135. package/dist/components/ui/label.d.ts +5 -0
  136. package/dist/components/ui/label.d.ts.map +1 -0
  137. package/dist/components/ui/label.js +15 -0
  138. package/dist/components/ui/label.js.map +1 -0
  139. package/dist/components/ui/marker.d.ts +12 -0
  140. package/dist/components/ui/marker.d.ts.map +1 -0
  141. package/dist/components/ui/marker.js +41 -0
  142. package/dist/components/ui/marker.js.map +1 -0
  143. package/dist/components/ui/menubar.d.ts +31 -0
  144. package/dist/components/ui/menubar.d.ts.map +1 -0
  145. package/dist/components/ui/menubar.js +137 -0
  146. package/dist/components/ui/menubar.js.map +1 -0
  147. package/dist/components/ui/message-scroller.d.ts +11 -0
  148. package/dist/components/ui/message-scroller.d.ts.map +1 -0
  149. package/dist/components/ui/message-scroller.js +61 -0
  150. package/dist/components/ui/message-scroller.js.map +1 -0
  151. package/dist/components/ui/message.d.ts +11 -0
  152. package/dist/components/ui/message.d.ts.map +1 -0
  153. package/dist/components/ui/message.js +50 -0
  154. package/dist/components/ui/message.js.map +1 -0
  155. package/dist/components/ui/native-select.d.ts +9 -0
  156. package/dist/components/ui/native-select.d.ts.map +1 -0
  157. package/dist/components/ui/native-select.js +39 -0
  158. package/dist/components/ui/native-select.js.map +1 -0
  159. package/dist/components/ui/navigation-menu.d.ts +15 -0
  160. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  161. package/dist/components/ui/navigation-menu.js +81 -0
  162. package/dist/components/ui/navigation-menu.js.map +1 -0
  163. package/dist/components/ui/pagination.d.ts +18 -0
  164. package/dist/components/ui/pagination.d.ts.map +1 -0
  165. package/dist/components/ui/pagination.js +81 -0
  166. package/dist/components/ui/pagination.js.map +1 -0
  167. package/dist/components/ui/popover.d.ts +11 -0
  168. package/dist/components/ui/popover.d.ts.map +1 -0
  169. package/dist/components/ui/popover.js +56 -0
  170. package/dist/components/ui/popover.js.map +1 -0
  171. package/dist/components/ui/progress.d.ts +5 -0
  172. package/dist/components/ui/progress.d.ts.map +1 -0
  173. package/dist/components/ui/progress.js +23 -0
  174. package/dist/components/ui/progress.js.map +1 -0
  175. package/dist/components/ui/questionnaire.d.ts +20 -0
  176. package/dist/components/ui/questionnaire.d.ts.map +1 -0
  177. package/dist/components/ui/questionnaire.js +172 -0
  178. package/dist/components/ui/questionnaire.js.map +1 -0
  179. package/dist/components/ui/radio-group.d.ts +6 -0
  180. package/dist/components/ui/radio-group.d.ts.map +1 -0
  181. package/dist/components/ui/radio-group.js +27 -0
  182. package/dist/components/ui/radio-group.js.map +1 -0
  183. package/dist/components/ui/resizable.d.ts +8 -0
  184. package/dist/components/ui/resizable.d.ts.map +1 -0
  185. package/dist/components/ui/resizable.js +30 -0
  186. package/dist/components/ui/resizable.js.map +1 -0
  187. package/dist/components/ui/scroll-area.d.ts +6 -0
  188. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  189. package/dist/components/ui/scroll-area.js +38 -0
  190. package/dist/components/ui/scroll-area.js.map +1 -0
  191. package/dist/components/ui/select.d.ts +16 -0
  192. package/dist/components/ui/select.d.ts.map +1 -0
  193. package/dist/components/ui/select.js +102 -0
  194. package/dist/components/ui/select.js.map +1 -0
  195. package/dist/components/ui/separator.d.ts +5 -0
  196. package/dist/components/ui/separator.d.ts.map +1 -0
  197. package/dist/components/ui/separator.js +17 -0
  198. package/dist/components/ui/separator.js.map +1 -0
  199. package/dist/components/ui/sheet.d.ts +15 -0
  200. package/dist/components/ui/sheet.d.ts.map +1 -0
  201. package/dist/components/ui/sheet.js +90 -0
  202. package/dist/components/ui/sheet.js.map +1 -0
  203. package/dist/components/ui/sidebar.d.ts +70 -0
  204. package/dist/components/ui/sidebar.d.ts.map +1 -0
  205. package/dist/components/ui/sidebar.js +380 -0
  206. package/dist/components/ui/sidebar.js.map +1 -0
  207. package/dist/components/ui/skeleton.d.ts +3 -0
  208. package/dist/components/ui/skeleton.d.ts.map +1 -0
  209. package/dist/components/ui/skeleton.js +13 -0
  210. package/dist/components/ui/skeleton.js.map +1 -0
  211. package/dist/components/ui/slider.d.ts +8 -0
  212. package/dist/components/ui/slider.d.ts.map +1 -0
  213. package/dist/components/ui/slider.js +40 -0
  214. package/dist/components/ui/slider.js.map +1 -0
  215. package/dist/components/ui/sonner.d.ts +14 -0
  216. package/dist/components/ui/sonner.d.ts.map +1 -0
  217. package/dist/components/ui/sonner.js +35 -0
  218. package/dist/components/ui/sonner.js.map +1 -0
  219. package/dist/components/ui/spinner.d.ts +3 -0
  220. package/dist/components/ui/spinner.d.ts.map +1 -0
  221. package/dist/components/ui/spinner.js +16 -0
  222. package/dist/components/ui/spinner.js.map +1 -0
  223. package/dist/components/ui/switch.d.ts +7 -0
  224. package/dist/components/ui/switch.d.ts.map +1 -0
  225. package/dist/components/ui/switch.js +22 -0
  226. package/dist/components/ui/switch.js.map +1 -0
  227. package/dist/components/ui/table.d.ts +11 -0
  228. package/dist/components/ui/table.d.ts.map +1 -0
  229. package/dist/components/ui/table.js +67 -0
  230. package/dist/components/ui/table.js.map +1 -0
  231. package/dist/components/ui/tabs.d.ts +12 -0
  232. package/dist/components/ui/tabs.d.ts.map +1 -0
  233. package/dist/components/ui/tabs.js +48 -0
  234. package/dist/components/ui/tabs.js.map +1 -0
  235. package/dist/components/ui/textarea.d.ts +10 -0
  236. package/dist/components/ui/textarea.d.ts.map +1 -0
  237. package/dist/components/ui/textarea.js +37 -0
  238. package/dist/components/ui/textarea.js.map +1 -0
  239. package/dist/components/ui/toggle-group.d.ts +11 -0
  240. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  241. package/dist/components/ui/toggle-group.js +53 -0
  242. package/dist/components/ui/toggle-group.js.map +1 -0
  243. package/dist/components/ui/toggle.d.ts +10 -0
  244. package/dist/components/ui/toggle.d.ts.map +1 -0
  245. package/dist/components/ui/toggle.js +37 -0
  246. package/dist/components/ui/toggle.js.map +1 -0
  247. package/dist/components/ui/tooltip.d.ts +8 -0
  248. package/dist/components/ui/tooltip.d.ts.map +1 -0
  249. package/dist/components/ui/tooltip.js +38 -0
  250. package/dist/components/ui/tooltip.js.map +1 -0
  251. package/dist/components/ui/trace.d.ts +19 -0
  252. package/dist/components/ui/trace.d.ts.map +1 -0
  253. package/dist/components/ui/trace.js +76 -0
  254. package/dist/components/ui/trace.js.map +1 -0
  255. package/dist/hooks/use-highlighted-code.d.ts +3 -0
  256. package/dist/hooks/use-highlighted-code.d.ts.map +1 -0
  257. package/dist/hooks/use-mobile.d.ts +2 -0
  258. package/dist/hooks/use-mobile.d.ts.map +1 -0
  259. package/dist/hooks/use-mobile.js +22 -0
  260. package/dist/hooks/use-mobile.js.map +1 -0
  261. package/dist/index.d.ts +74 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/index.js +67 -0
  264. package/dist/lib/get-placeholder.d.ts +6 -0
  265. package/dist/lib/get-placeholder.d.ts.map +1 -0
  266. package/dist/lib/get-placeholder.js +12 -0
  267. package/dist/lib/get-placeholder.js.map +1 -0
  268. package/dist/lib/highlighter.d.ts +10 -0
  269. package/dist/lib/highlighter.d.ts.map +1 -0
  270. package/dist/lib/utils.d.ts +9 -0
  271. package/dist/lib/utils.d.ts.map +1 -0
  272. package/dist/lib/utils.js +1 -0
  273. package/package.json +148 -3
  274. package/src/styles/base.css +70 -0
  275. package/src/styles/globals.css +33 -0
  276. package/src/styles/prose.css +105 -0
  277. package/src/styles/theme.css +108 -0
  278. package/src/styles/tokens.css +129 -0
  279. package/src/styles/utilities.css +57 -0
  280. package/src/styles/variants.css +649 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","names":[],"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,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,wYACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EACjB,WACA,QACA,GAAG,SAGF;CACD,OACE,oBAAC,QAAD;EACE,aAAU;EACV,eAAa;EACb,WAAW,GACT,wWACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAuC;CACxE,OACE,oBAAC,QAAD;EACE,aAAU;EACV,eAAY;EACZ,WAAW,GACT,uJACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAuC;CACzE,OACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GAAG,+CAA+C,SAAS;EACtE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAuC;CAC/E,OACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GAAG,kDAAkD,SAAS;EACzE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SAQA;CACH,OACE,oBAAC,aAAD;EACE,aAAU;EACV,WAAW,GAAG,gCAAgC,SAAS;EACvD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,qBAAC,oBAAD;EACE,aAAU;EACV,WAAW,GACT,yPACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,oBAAC,WAAD;GAAW,WAAU;GACnB,UAAA,oBAAC,kBAAD,CAAmB,CAAA;EACV,CAAA,CACO;;AAExB;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,oBAAC,oBAAD;EACE,aAAU;EACV,WAAU;EACV,GAAI;EAEJ,UAAA,oBAAC,OAAD;GACE,aAAU;GACV,WAAW,GACT,0HACA,SACF;GAEC;EACE,CAAA;CACa,CAAA;AAExB"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare function useHighlightedCode(value: string, language: string): (string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element[] | null | undefined)[];
3
+ //# sourceMappingURL=use-highlighted-code.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare function useIsMobile(): boolean;
2
+ //# sourceMappingURL=use-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,YAE1B"}
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ // src/hooks/use-mobile.ts
3
+ var MOBILE_BREAKPOINT = 768;
4
+ var QUERY = `(max-width: 767px)`;
5
+ function subscribe(onChange) {
6
+ const mql = window.matchMedia(QUERY);
7
+ mql.addEventListener("change", onChange);
8
+ return () => mql.removeEventListener("change", onChange);
9
+ }
10
+ function getSnapshot() {
11
+ return window.innerWidth < MOBILE_BREAKPOINT;
12
+ }
13
+ /** `false` on the server and during hydration, then the real viewport. */
14
+ function getServerSnapshot() {
15
+ return false;
16
+ }
17
+ function useIsMobile() {
18
+ return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
19
+ }
20
+ export { useIsMobile };
21
+
22
+ //# sourceMappingURL=use-mobile.js.map
@@ -0,0 +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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @konopskidev/ui
3
+ *
4
+ * Every component is also importable on its own, e.g.
5
+ * `import { Button } from '@konopskidev/ui/components/button'`,
6
+ * which keeps a consumer bundle to what it actually uses.
7
+ */
8
+ export * from './components/ui/accordion.js';
9
+ export * from './components/ui/alert.js';
10
+ export * from './components/ui/alert-dialog.js';
11
+ export * from './components/ui/aspect-ratio.js';
12
+ export * from './components/ui/attachment.js';
13
+ export * from './components/ui/avatar.js';
14
+ export * from './components/ui/badge.js';
15
+ export * from './components/ui/breadcrumb.js';
16
+ export * from './components/ui/bubble.js';
17
+ export * from './components/ui/button.js';
18
+ export * from './components/ui/button-group.js';
19
+ export * from './components/ui/calendar.js';
20
+ export * from './components/ui/card.js';
21
+ export * from './components/ui/carousel.js';
22
+ export * from './components/ui/chart.js';
23
+ export * from './components/ui/checkbox.js';
24
+ export * from './components/ui/code-block.js';
25
+ export * from './components/ui/collapsible.js';
26
+ export * from './components/ui/combobox.js';
27
+ export * from './components/ui/command.js';
28
+ export * from './components/ui/context-menu.js';
29
+ export * from './components/ui/dialog.js';
30
+ export * from './components/ui/direction.js';
31
+ export * from './components/ui/drawer.js';
32
+ export * from './components/ui/dropdown-menu.js';
33
+ export * from './components/ui/empty.js';
34
+ export * from './components/ui/field.js';
35
+ export * from './components/ui/hover-card.js';
36
+ export * from './components/ui/input.js';
37
+ export * from './components/ui/input-group.js';
38
+ export * from './components/ui/input-otp.js';
39
+ export * from './components/ui/item.js';
40
+ export * from './components/ui/kbd.js';
41
+ export * from './components/ui/label.js';
42
+ export * from './components/ui/marker.js';
43
+ export * from './components/ui/menubar.js';
44
+ export * from './components/ui/message.js';
45
+ export * from './components/ui/message-scroller.js';
46
+ export * from './components/ui/native-select.js';
47
+ export * from './components/ui/navigation-menu.js';
48
+ export * from './components/ui/pagination.js';
49
+ export * from './components/ui/popover.js';
50
+ export * from './components/ui/progress.js';
51
+ export * from './components/ui/questionnaire.js';
52
+ export * from './components/ui/radio-group.js';
53
+ export * from './components/ui/resizable.js';
54
+ export * from './components/ui/scroll-area.js';
55
+ export * from './components/ui/select.js';
56
+ export * from './components/ui/separator.js';
57
+ export * from './components/ui/sheet.js';
58
+ export * from './components/ui/sidebar.js';
59
+ export * from './components/ui/skeleton.js';
60
+ export * from './components/ui/slider.js';
61
+ export * from './components/ui/sonner.js';
62
+ export * from './components/ui/spinner.js';
63
+ export * from './components/ui/switch.js';
64
+ export * from './components/ui/table.js';
65
+ export * from './components/ui/tabs.js';
66
+ export * from './components/ui/textarea.js';
67
+ export * from './components/ui/toggle.js';
68
+ export * from './components/ui/toggle-group.js';
69
+ export * from './components/ui/tooltip.js';
70
+ export * from './components/ui/trace.js';
71
+ export * from './lib/utils.js';
72
+ export * from './lib/get-placeholder.js';
73
+ export * from './hooks/use-mobile.js';
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,67 @@
1
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/ui/accordion.js";
2
+ import { Alert, AlertAction, AlertDescription, AlertTitle } from "./components/ui/alert.js";
3
+ import { Button, buttonVariants } from "./components/ui/button.js";
4
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./components/ui/alert-dialog.js";
5
+ import { AspectRatio } from "./components/ui/aspect-ratio.js";
6
+ import { Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger } from "./components/ui/attachment.js";
7
+ import { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from "./components/ui/avatar.js";
8
+ import { Badge, badgeVariants } from "./components/ui/badge.js";
9
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/ui/breadcrumb.js";
10
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./components/ui/bubble.js";
11
+ import { Separator } from "./components/ui/separator.js";
12
+ import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants } from "./components/ui/button-group.js";
13
+ import { Calendar, CalendarDayButton } from "./components/ui/calendar.js";
14
+ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle } from "./components/ui/card.js";
15
+ import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel } from "./components/ui/carousel.js";
16
+ import { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from "./components/ui/chart.js";
17
+ import { Checkbox } from "./components/ui/checkbox.js";
18
+ import { CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle } from "./components/ui/code-block.js";
19
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/ui/collapsible.js";
20
+ import { getPlaceholder } from "./lib/get-placeholder.js";
21
+ import { Input } from "./components/ui/input.js";
22
+ import { Textarea } from "./components/ui/textarea.js";
23
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./components/ui/input-group.js";
24
+ import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, useComboboxAnchor } from "./components/ui/combobox.js";
25
+ import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/ui/dialog.js";
26
+ import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from "./components/ui/command.js";
27
+ import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from "./components/ui/context-menu.js";
28
+ import { DirectionProvider, useDirection } from "./components/ui/direction.js";
29
+ import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from "./components/ui/drawer.js";
30
+ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./components/ui/dropdown-menu.js";
31
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "./components/ui/empty.js";
32
+ import { Label } from "./components/ui/label.js";
33
+ import { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle } from "./components/ui/field.js";
34
+ import { HoverCard, HoverCardContent, HoverCardTrigger } from "./components/ui/hover-card.js";
35
+ import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from "./components/ui/input-otp.js";
36
+ import { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle } from "./components/ui/item.js";
37
+ import { Kbd, KbdGroup } from "./components/ui/kbd.js";
38
+ import { Marker, MarkerContent, MarkerIcon, markerVariants } from "./components/ui/marker.js";
39
+ import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from "./components/ui/menubar.js";
40
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "./components/ui/message.js";
41
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "./components/ui/message-scroller.js";
42
+ import { NativeSelect, NativeSelectOptGroup, NativeSelectOption } from "./components/ui/native-select.js";
43
+ import { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from "./components/ui/navigation-menu.js";
44
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "./components/ui/pagination.js";
45
+ import { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from "./components/ui/popover.js";
46
+ import { Progress } from "./components/ui/progress.js";
47
+ import { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle } from "./components/ui/questionnaire.js";
48
+ import { RadioGroup, RadioGroupItem } from "./components/ui/radio-group.js";
49
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./components/ui/resizable.js";
50
+ import { ScrollArea, ScrollBar } from "./components/ui/scroll-area.js";
51
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./components/ui/select.js";
52
+ import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./components/ui/sheet.js";
53
+ import { Skeleton } from "./components/ui/skeleton.js";
54
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/ui/tooltip.js";
55
+ import { useIsMobile } from "./hooks/use-mobile.js";
56
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar } from "./components/ui/sidebar.js";
57
+ import { Slider } from "./components/ui/slider.js";
58
+ import { Toaster } from "./components/ui/sonner.js";
59
+ import { Spinner } from "./components/ui/spinner.js";
60
+ import { Switch } from "./components/ui/switch.js";
61
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/ui/table.js";
62
+ import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants } from "./components/ui/tabs.js";
63
+ import { Toggle, toggleVariants } from "./components/ui/toggle.js";
64
+ import { ToggleGroup, ToggleGroupItem } from "./components/ui/toggle-group.js";
65
+ import { Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle } from "./components/ui/trace.js";
66
+ import { cn } from "./lib/utils.js";
67
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Marker, MarkerContent, MarkerIcon, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, badgeVariants, buttonGroupVariants, buttonVariants, cn, getPlaceholder, markerVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useCarousel, useComboboxAnchor, useDirection, useIsMobile, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Appends `(optional)` to a placeholder for fields that are not required, so a
3
+ * form never has to say it twice. Mirrors konopskidev's `components/ui/helpers`.
4
+ */
5
+ export declare function getPlaceholder(placeholder?: string, required?: boolean): string | undefined;
6
+ //# sourceMappingURL=get-placeholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-placeholder.d.ts","sourceRoot":"","sources":["../../src/lib/get-placeholder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,sBAItE"}
@@ -0,0 +1,12 @@
1
+ // src/lib/get-placeholder.ts
2
+ /**
3
+ * Appends `(optional)` to a placeholder for fields that are not required, so a
4
+ * form never has to say it twice. Mirrors konopskidev's `components/ui/helpers`.
5
+ */
6
+ function getPlaceholder(placeholder, required) {
7
+ if (!placeholder || required) return placeholder;
8
+ return `${placeholder} (optional)`;
9
+ }
10
+ export { getPlaceholder };
11
+
12
+ //# sourceMappingURL=get-placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-placeholder.js","names":[],"sources":["../../src/lib/get-placeholder.ts"],"sourcesContent":["/**\n * Appends `(optional)` to a placeholder for fields that are not required, so a\n * form never has to say it twice. Mirrors konopskidev's `components/ui/helpers`.\n */\nexport function getPlaceholder(placeholder?: string, required?: boolean) {\n if (!placeholder || required) return placeholder;\n\n return `${placeholder} (optional)`;\n}\n"],"mappings":";;;;;AAIA,SAAgB,eAAe,aAAsB,UAAoB;CACvE,IAAI,CAAC,eAAe,UAAU,OAAO;CAErC,OAAO,GAAG,YAAY;AACxB"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type GrammarState } from 'shiki/core';
3
+ export declare function loadHighlighter(language: string): Promise<{
4
+ highlight(code: string, state?: GrammarState): {
5
+ lines: React.JSX.Element[][];
6
+ state: GrammarState | undefined;
7
+ };
8
+ } | null>;
9
+ export declare function highlightCode(code: string, language: string): Promise<React.JSX.Element[][] | null>;
10
+ //# sourceMappingURL=highlighter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/lib/highlighter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAyB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AA4D5F,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM;oBAgBlC,MAAM,UAAU,YAAY;;;;UA8B/C;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,yCAIjE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The class-name merger every component in this package uses.
3
+ *
4
+ * It is re-exported here so an app consuming `@konopskidev/ui` can merge its own
5
+ * classes with the same semantics without adding its own copy of
6
+ * `clsx` + `tailwind-merge`.
7
+ */
8
+ export { cn } from 'cn';
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ export { cn } from "cn";
package/package.json CHANGED
@@ -1,6 +1,151 @@
1
1
  {
2
2
  "name": "@konopskidev/ui",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "The konopskidev design system: shadcn/ui components styled with the konopskidev tokens on Tailwind CSS v4.",
5
+ "keywords": [
6
+ "shadcn",
7
+ "radix-ui",
8
+ "tailwindcss",
9
+ "react",
10
+ "design-system",
11
+ "components",
12
+ "ui"
13
+ ],
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/misiekhardcore/konopskidevui.git"
18
+ },
19
+ "homepage": "https://github.com/misiekhardcore/konopskidevui#readme",
20
+ "bugs": {
21
+ "url": "https://github.com/misiekhardcore/konopskidevui/issues"
22
+ },
23
+ "type": "module",
24
+ "sideEffects": false,
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "files": [
29
+ "dist",
30
+ "src/styles",
31
+ "README.md",
32
+ "LICENSE"
33
+ ],
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js"
38
+ },
39
+ "./components/*": {
40
+ "types": "./dist/components/ui/*.d.ts",
41
+ "import": "./dist/components/ui/*.js"
42
+ },
43
+ "./lib/*": {
44
+ "types": "./dist/lib/*.d.ts",
45
+ "import": "./dist/lib/*.js"
46
+ },
47
+ "./hooks/*": {
48
+ "types": "./dist/hooks/*.d.ts",
49
+ "import": "./dist/hooks/*.js"
50
+ },
51
+ "./styles.css": "./src/styles/globals.css",
52
+ "./package.json": "./package.json"
53
+ },
54
+ "peerDependencies": {
55
+ "react": "^19.0.0",
56
+ "react-dom": "^19.0.0",
57
+ "tailwindcss": "^4.0.0"
58
+ },
59
+ "peerDependenciesMeta": {
60
+ "tailwindcss": {
61
+ "optional": true
62
+ }
63
+ },
64
+ "engines": {
65
+ "node": ">=20"
66
+ },
67
+ "devDependencies": {
68
+ "@arethetypeswrong/cli": "^0.18.5",
69
+ "@eslint/js": "^10.0.1",
70
+ "@fontsource/jetbrains-mono": "^5.3.0",
71
+ "@fontsource/lato": "^5.3.0",
72
+ "@fontsource/lora": "^5.3.0",
73
+ "@fontsource/playfair-display": "^5.3.0",
74
+ "@storybook/addon-a11y": "10.6.5",
75
+ "@storybook/addon-docs": "10.6.5",
76
+ "@storybook/addon-themes": "10.6.5",
77
+ "@storybook/addon-vitest": "10.6.5",
78
+ "@storybook/react-vite": "10.6.5",
79
+ "@tailwindcss/vite": "^4.3.3",
80
+ "@testing-library/dom": "^10.4.2",
81
+ "@testing-library/jest-dom": "^7.0.1",
82
+ "@testing-library/react": "^16.3.3",
83
+ "@testing-library/user-event": "^14.6.8",
84
+ "@types/node": "^26.6.5",
85
+ "@types/react": "^19.3.0",
86
+ "@types/react-dom": "^19.3.0",
87
+ "@vitejs/plugin-react": "^6.1.2",
88
+ "@vitest/browser-playwright": "^5.0.5",
89
+ "@vitest/coverage-v8": "^5.0.5",
90
+ "eslint": "^10.13.0",
91
+ "eslint-config-prettier": "^10.1.8",
92
+ "eslint-plugin-import-x": "^4.17.1",
93
+ "eslint-plugin-prettier": "^5.5.7",
94
+ "eslint-plugin-react-hooks": "^7.1.1",
95
+ "eslint-plugin-testing-library": "^7.16.2",
96
+ "globals": "^17.13.0",
97
+ "husky": "^9.1.7",
98
+ "jsdom": "^30.1.3",
99
+ "lint-staged": "^17.6.0",
100
+ "playwright": "^1.64.1",
101
+ "prettier": "^3.9.10",
102
+ "prettier-plugin-tailwindcss": "^0.8.1",
103
+ "publint": "^0.3.25",
104
+ "react": "^19.3.1",
105
+ "react-dom": "^19.3.1",
106
+ "shadcn": "^4.23.0",
107
+ "storybook": "10.6.5",
108
+ "tailwindcss": "^4.0.0",
109
+ "typescript": "~5.9.3",
110
+ "typescript-eslint": "^8.72.1",
111
+ "vite": "^8.3.5",
112
+ "vitest": "^5.0.5"
113
+ },
114
+ "dependencies": {
115
+ "@base-ui/react": "^1.9.0",
116
+ "@shadcn/react": "^0.3.1",
117
+ "class-variance-authority": "^0.7.1",
118
+ "cmdk": "^1.1.1",
119
+ "cn": "^0.5.0",
120
+ "date-fns": "^4.4.0",
121
+ "embla-carousel-react": "^8.6.0",
122
+ "input-otp": "^1.5.0",
123
+ "lucide-react": "^1.62.0",
124
+ "radix-ui": "^1.8.1",
125
+ "react-day-picker": "^10.0.2",
126
+ "react-resizable-panels": "^4.15.0",
127
+ "recharts": "3.8.0",
128
+ "shiki": "^4.5.0",
129
+ "sonner": "^2.0.8",
130
+ "tw-animate-css": "^1.4.0",
131
+ "vaul": "^1.1.2"
132
+ },
133
+ "scripts": {
134
+ "dev": "storybook dev -p 6006",
135
+ "build": "vite build && tsc -p tsconfig.build.json && node scripts/fix-declarations.mjs",
136
+ "build:storybook": "storybook build",
137
+ "lint": "eslint . --max-warnings=0",
138
+ "lint:fix": "eslint . --fix",
139
+ "format": "prettier --write .",
140
+ "format:check": "prettier --check .",
141
+ "tsc": "tsc --noEmit",
142
+ "test": "vitest run --project=unit",
143
+ "test:watch": "vitest --project=unit",
144
+ "test:stories": "vitest run --project=storybook",
145
+ "test:coverage": "vitest run --project=unit --coverage",
146
+ "verify:package": "publint && attw --pack . --profile esm-only --exclude-entrypoints ./styles.css",
147
+ "verify": "pnpm lint && pnpm tsc && pnpm test && pnpm build && pnpm verify:package",
148
+ "style": "node scripts/apply-house-style.mjs && prettier --write \"src/components/ui/**/*.tsx\"",
149
+ "barrel": "node scripts/generate-barrel.mjs"
150
+ }
6
151
  }
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Base layer
3
+ * ==========
4
+ *
5
+ * Only the parts of konopskidev's base layer that belong to a component
6
+ * library. The site's `html` and `body` rules (`min-h-screen`, `font-serif`,
7
+ * `scroll-pt-20`, `scroll-smooth`) are app-shell decisions and stay in the app;
8
+ * `prose.css` sets its own font so long-form content does not depend on them.
9
+ */
10
+
11
+ @layer base {
12
+ * {
13
+ @apply border-border;
14
+ }
15
+
16
+ /*
17
+ * Headings are display-face and take a step of the scale, so no component can
18
+ * leave one unstyled, on the UI sans, or smaller than the copy it introduces.
19
+ * Components override a level with `text-h*` when the visual step differs
20
+ * from the semantic tag.
21
+ */
22
+ h1,
23
+ h2,
24
+ h3,
25
+ h4,
26
+ h5,
27
+ h6 {
28
+ @apply font-display font-semibold tracking-tight;
29
+ }
30
+
31
+ h1 {
32
+ @apply text-h1;
33
+ }
34
+
35
+ h2 {
36
+ @apply text-h2;
37
+ }
38
+
39
+ h3 {
40
+ @apply text-h3;
41
+ }
42
+
43
+ h4 {
44
+ @apply text-h4;
45
+ }
46
+
47
+ h5 {
48
+ @apply text-h5;
49
+ }
50
+
51
+ h6 {
52
+ @apply text-h6;
53
+ }
54
+
55
+ ::selection {
56
+ @apply bg-primary/15 text-foreground;
57
+ }
58
+
59
+ *:focus-visible {
60
+ @apply focus-ring;
61
+ }
62
+
63
+ pre:focus-visible {
64
+ @apply focus-visible:-outline-offset-2!;
65
+ }
66
+
67
+ img {
68
+ @apply block h-auto max-w-full;
69
+ }
70
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * @konopskidev/ui — stylesheet entry
3
+ * ==================================
4
+ *
5
+ * This file is the package's `"./styles.css"` export. A consuming app imports
6
+ * it *after* Tailwind, and registers this package as a source so the classes
7
+ * used by the components are generated:
8
+ *
9
+ * @import 'tailwindcss';
10
+ * @import '@konopskidev/ui/styles.css';
11
+ * @source '../node_modules/@konopskidev/ui/dist';
12
+ *
13
+ * It deliberately does not import `tailwindcss` itself: the app owns that
14
+ * import order, and importing it here would make the app's own `@source` and
15
+ * `@theme` blocks fight this file's.
16
+ */
17
+
18
+ /* Every animate-in / fade-in / slide-in-* utility the overlay components use. */
19
+ @import 'tw-animate-css';
20
+
21
+ /*
22
+ * The data-* variants (data-open, data-checked, …) and the scroll-fade /
23
+ * shimmer / no-scrollbar utilities that current shadcn components rely on.
24
+ * Vendored from shadcn@4: variants and utilities only, no colour tokens, so it
25
+ * composes with the konopskidev palette instead of competing with it.
26
+ */
27
+ @import './variants.css';
28
+
29
+ @import './tokens.css';
30
+ @import './theme.css';
31
+ @import './utilities.css';
32
+ @import './base.css';
33
+ @import './prose.css';