@konopskidev/ui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/README.md +102 -13
  2. package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
  3. package/dist/components/ui/accordion.cjs +62 -0
  4. package/dist/components/ui/accordion.cjs.map +1 -0
  5. package/dist/components/ui/accordion.d.cts +7 -0
  6. package/dist/components/ui/accordion.d.ts.map +1 -1
  7. package/dist/components/ui/accordion.js +9 -8
  8. package/dist/components/ui/accordion.js.map +1 -1
  9. package/dist/components/ui/alert-dialog.cjs +116 -0
  10. package/dist/components/ui/alert-dialog.cjs.map +1 -0
  11. package/dist/components/ui/alert-dialog.d.cts +18 -0
  12. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  13. package/dist/components/ui/alert-dialog.js +13 -12
  14. package/dist/components/ui/alert-dialog.js.map +1 -1
  15. package/dist/components/ui/alert.cjs +49 -0
  16. package/dist/components/ui/alert.cjs.map +1 -0
  17. package/dist/components/ui/alert.d.cts +10 -0
  18. package/dist/components/ui/aspect-ratio.cjs +14 -0
  19. package/dist/components/ui/aspect-ratio.cjs.map +1 -0
  20. package/dist/components/ui/aspect-ratio.d.cts +3 -0
  21. package/dist/components/ui/aspect-ratio.js +4 -5
  22. package/dist/components/ui/aspect-ratio.js.map +1 -1
  23. package/dist/components/ui/attachment.cjs +113 -0
  24. package/dist/components/ui/attachment.cjs.map +1 -0
  25. package/dist/components/ui/attachment.d.cts +24 -0
  26. package/dist/components/ui/avatar.cjs +60 -0
  27. package/dist/components/ui/avatar.cjs.map +1 -0
  28. package/dist/components/ui/avatar.d.cts +11 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -1
  30. package/dist/components/ui/avatar.js +7 -6
  31. package/dist/components/ui/avatar.js.map +1 -1
  32. package/dist/components/ui/badge.cjs +33 -0
  33. package/dist/components/ui/badge.cjs.map +1 -0
  34. package/dist/components/ui/badge.d.cts +9 -0
  35. package/dist/components/ui/breadcrumb.cjs +81 -0
  36. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  37. package/dist/components/ui/breadcrumb.d.cts +11 -0
  38. package/dist/components/ui/bubble.cjs +79 -0
  39. package/dist/components/ui/bubble.cjs.map +1 -0
  40. package/dist/components/ui/bubble.d.cts +17 -0
  41. package/dist/components/ui/button-group.cjs +43 -0
  42. package/dist/components/ui/button-group.cjs.map +1 -0
  43. package/dist/components/ui/button-group.d.cts +11 -0
  44. package/dist/components/ui/button.cjs +64 -0
  45. package/dist/components/ui/button.cjs.map +1 -0
  46. package/dist/components/ui/button.d.cts +21 -0
  47. package/dist/components/ui/calendar.cjs +114 -0
  48. package/dist/components/ui/calendar.cjs.map +1 -0
  49. package/dist/components/ui/calendar.d.cts +10 -0
  50. package/dist/components/ui/calendar.js +0 -1
  51. package/dist/components/ui/calendar.js.map +1 -1
  52. package/dist/components/ui/card.cjs +80 -0
  53. package/dist/components/ui/card.cjs.map +1 -0
  54. package/dist/components/ui/card.d.cts +33 -0
  55. package/dist/components/ui/card.d.ts +7 -2
  56. package/dist/components/ui/card.d.ts.map +1 -1
  57. package/dist/components/ui/card.js.map +1 -1
  58. package/dist/components/ui/carousel.cjs +142 -0
  59. package/dist/components/ui/carousel.cjs.map +1 -0
  60. package/dist/components/ui/carousel.d.cts +28 -0
  61. package/dist/components/ui/carousel.d.ts +1 -1
  62. package/dist/components/ui/carousel.d.ts.map +1 -1
  63. package/dist/components/ui/carousel.js +1 -0
  64. package/dist/components/ui/carousel.js.map +1 -1
  65. package/dist/components/ui/chart.cjs +159 -0
  66. package/dist/components/ui/chart.cjs.map +1 -0
  67. package/dist/components/ui/chart.d.cts +44 -0
  68. package/dist/components/ui/chart.js +0 -1
  69. package/dist/components/ui/chart.js.map +1 -1
  70. package/dist/components/ui/checkbox.cjs +25 -0
  71. package/dist/components/ui/checkbox.cjs.map +1 -0
  72. package/dist/components/ui/checkbox.d.cts +4 -0
  73. package/dist/components/ui/checkbox.d.ts.map +1 -1
  74. package/dist/components/ui/checkbox.js +6 -5
  75. package/dist/components/ui/checkbox.js.map +1 -1
  76. package/dist/components/ui/code-block.cjs +134 -0
  77. package/dist/components/ui/code-block.cjs.map +1 -0
  78. package/dist/components/ui/code-block.d.cts +26 -0
  79. package/dist/components/ui/code-block.d.ts.map +1 -1
  80. package/dist/components/ui/code-block.js +1 -0
  81. package/dist/components/ui/code-block.js.map +1 -1
  82. package/dist/components/ui/collapsible.cjs +28 -0
  83. package/dist/components/ui/collapsible.cjs.map +1 -0
  84. package/dist/components/ui/collapsible.d.cts +5 -0
  85. package/dist/components/ui/collapsible.js +6 -7
  86. package/dist/components/ui/collapsible.js.map +1 -1
  87. package/dist/components/ui/combobox.cjs +193 -0
  88. package/dist/components/ui/combobox.cjs.map +1 -0
  89. package/dist/components/ui/combobox.d.cts +24 -0
  90. package/dist/components/ui/combobox.d.ts.map +1 -1
  91. package/dist/components/ui/combobox.js +22 -21
  92. package/dist/components/ui/combobox.js.map +1 -1
  93. package/dist/components/ui/command.cjs +99 -0
  94. package/dist/components/ui/command.cjs.map +1 -0
  95. package/dist/components/ui/command.d.cts +18 -0
  96. package/dist/components/ui/command.d.ts.map +1 -1
  97. package/dist/components/ui/command.js +10 -12
  98. package/dist/components/ui/command.js.map +1 -1
  99. package/dist/components/ui/context-menu.cjs +143 -0
  100. package/dist/components/ui/context-menu.cjs.map +1 -0
  101. package/dist/components/ui/context-menu.d.cts +31 -0
  102. package/dist/components/ui/context-menu.d.ts.map +1 -1
  103. package/dist/components/ui/context-menu.js +20 -19
  104. package/dist/components/ui/context-menu.js.map +1 -1
  105. package/dist/components/ui/dialog.cjs +148 -0
  106. package/dist/components/ui/dialog.cjs.map +1 -0
  107. package/dist/components/ui/dialog.d.cts +55 -0
  108. package/dist/components/ui/dialog.d.ts +41 -3
  109. package/dist/components/ui/dialog.d.ts.map +1 -1
  110. package/dist/components/ui/dialog.js +65 -26
  111. package/dist/components/ui/dialog.js.map +1 -1
  112. package/dist/components/ui/direction.cjs +19 -0
  113. package/dist/components/ui/direction.cjs.map +1 -0
  114. package/dist/components/ui/direction.d.cts +11 -0
  115. package/dist/components/ui/direction.d.ts +1 -1
  116. package/dist/components/ui/direction.d.ts.map +1 -1
  117. package/dist/components/ui/direction.js +0 -1
  118. package/dist/components/ui/direction.js.map +1 -1
  119. package/dist/components/ui/drawer.cjs +90 -0
  120. package/dist/components/ui/drawer.cjs.map +1 -0
  121. package/dist/components/ui/drawer.d.cts +13 -0
  122. package/dist/components/ui/drawer.js +11 -11
  123. package/dist/components/ui/drawer.js.map +1 -1
  124. package/dist/components/ui/dropdown-menu.cjs +146 -0
  125. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  126. package/dist/components/ui/dropdown-menu.d.cts +29 -0
  127. package/dist/components/ui/dropdown-menu.js +19 -20
  128. package/dist/components/ui/dropdown-menu.js.map +1 -1
  129. package/dist/components/ui/empty.cjs +66 -0
  130. package/dist/components/ui/empty.cjs.map +1 -0
  131. package/dist/components/ui/empty.d.cts +11 -0
  132. package/dist/components/ui/field.cjs +121 -0
  133. package/dist/components/ui/field.cjs.map +1 -0
  134. package/dist/components/ui/field.d.cts +24 -0
  135. package/dist/components/ui/field.js +0 -1
  136. package/dist/components/ui/field.js.map +1 -1
  137. package/dist/components/ui/hover-card.cjs +38 -0
  138. package/dist/components/ui/hover-card.cjs.map +1 -0
  139. package/dist/components/ui/hover-card.d.cts +6 -0
  140. package/dist/components/ui/hover-card.d.ts.map +1 -1
  141. package/dist/components/ui/hover-card.js +8 -7
  142. package/dist/components/ui/hover-card.js.map +1 -1
  143. package/dist/components/ui/input-group.cjs +87 -0
  144. package/dist/components/ui/input-group.cjs.map +1 -0
  145. package/dist/components/ui/input-group.d.cts +16 -0
  146. package/dist/components/ui/input-otp.cjs +54 -0
  147. package/dist/components/ui/input-otp.cjs.map +1 -0
  148. package/dist/components/ui/input-otp.d.cts +11 -0
  149. package/dist/components/ui/input-otp.js +0 -1
  150. package/dist/components/ui/input-otp.js.map +1 -1
  151. package/dist/components/ui/input.cjs +28 -0
  152. package/dist/components/ui/input.cjs.map +1 -0
  153. package/dist/components/ui/input.d.cts +10 -0
  154. package/dist/components/ui/item.cjs +133 -0
  155. package/dist/components/ui/item.cjs.map +1 -0
  156. package/dist/components/ui/item.d.cts +23 -0
  157. package/dist/components/ui/kbd.cjs +22 -0
  158. package/dist/components/ui/kbd.cjs.map +1 -0
  159. package/dist/components/ui/kbd.d.cts +3 -0
  160. package/dist/components/ui/label.cjs +19 -0
  161. package/dist/components/ui/label.cjs.map +1 -0
  162. package/dist/components/ui/label.d.cts +4 -0
  163. package/dist/components/ui/label.d.ts.map +1 -1
  164. package/dist/components/ui/label.js +5 -4
  165. package/dist/components/ui/label.js.map +1 -1
  166. package/dist/components/ui/marker.cjs +46 -0
  167. package/dist/components/ui/marker.cjs.map +1 -0
  168. package/dist/components/ui/marker.d.cts +11 -0
  169. package/dist/components/ui/menubar.cjs +154 -0
  170. package/dist/components/ui/menubar.cjs.map +1 -0
  171. package/dist/components/ui/menubar.d.cts +30 -0
  172. package/dist/components/ui/menubar.js +20 -21
  173. package/dist/components/ui/menubar.js.map +1 -1
  174. package/dist/components/ui/message-scroller.cjs +87 -0
  175. package/dist/components/ui/message-scroller.cjs.map +1 -0
  176. package/dist/components/ui/message-scroller.d.cts +10 -0
  177. package/dist/components/ui/message-scroller.js +9 -9
  178. package/dist/components/ui/message-scroller.js.map +1 -1
  179. package/dist/components/ui/message.cjs +58 -0
  180. package/dist/components/ui/message.cjs.map +1 -0
  181. package/dist/components/ui/message.d.cts +10 -0
  182. package/dist/components/ui/native-select.cjs +44 -0
  183. package/dist/components/ui/native-select.cjs.map +1 -0
  184. package/dist/components/ui/native-select.d.cts +8 -0
  185. package/dist/components/ui/native-select.d.ts +1 -1
  186. package/dist/components/ui/native-select.d.ts.map +1 -1
  187. package/dist/components/ui/native-select.js.map +1 -1
  188. package/dist/components/ui/navigation-menu.cjs +93 -0
  189. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  190. package/dist/components/ui/navigation-menu.d.cts +14 -0
  191. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  192. package/dist/components/ui/navigation-menu.js +12 -11
  193. package/dist/components/ui/navigation-menu.js.map +1 -1
  194. package/dist/components/ui/pagination.cjs +90 -0
  195. package/dist/components/ui/pagination.cjs.map +1 -0
  196. package/dist/components/ui/pagination.d.cts +17 -0
  197. package/dist/components/ui/pagination.d.ts +1 -1
  198. package/dist/components/ui/pagination.d.ts.map +1 -1
  199. package/dist/components/ui/pagination.js.map +1 -1
  200. package/dist/components/ui/popover.cjs +66 -0
  201. package/dist/components/ui/popover.cjs.map +1 -0
  202. package/dist/components/ui/popover.d.cts +10 -0
  203. package/dist/components/ui/popover.d.ts.map +1 -1
  204. package/dist/components/ui/popover.js +8 -7
  205. package/dist/components/ui/popover.js.map +1 -1
  206. package/dist/components/ui/progress.cjs +25 -0
  207. package/dist/components/ui/progress.cjs.map +1 -0
  208. package/dist/components/ui/progress.d.cts +4 -0
  209. package/dist/components/ui/progress.js +5 -6
  210. package/dist/components/ui/progress.js.map +1 -1
  211. package/dist/components/ui/questionnaire.cjs +187 -0
  212. package/dist/components/ui/questionnaire.cjs.map +1 -0
  213. package/dist/components/ui/questionnaire.d.cts +19 -0
  214. package/dist/components/ui/questionnaire.d.ts.map +1 -1
  215. package/dist/components/ui/questionnaire.js +19 -21
  216. package/dist/components/ui/questionnaire.js.map +1 -1
  217. package/dist/components/ui/radio-group.cjs +32 -0
  218. package/dist/components/ui/radio-group.cjs.map +1 -0
  219. package/dist/components/ui/radio-group.d.cts +5 -0
  220. package/dist/components/ui/radio-group.d.ts.map +1 -1
  221. package/dist/components/ui/radio-group.js +7 -6
  222. package/dist/components/ui/radio-group.js.map +1 -1
  223. package/dist/components/ui/resizable.cjs +33 -0
  224. package/dist/components/ui/resizable.cjs.map +1 -0
  225. package/dist/components/ui/resizable.d.cts +7 -0
  226. package/dist/components/ui/resizable.d.ts.map +1 -1
  227. package/dist/components/ui/resizable.js +0 -2
  228. package/dist/components/ui/resizable.js.map +1 -1
  229. package/dist/components/ui/scroll-area.cjs +43 -0
  230. package/dist/components/ui/scroll-area.cjs.map +1 -0
  231. package/dist/components/ui/scroll-area.d.cts +5 -0
  232. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  233. package/dist/components/ui/scroll-area.js +9 -8
  234. package/dist/components/ui/scroll-area.js.map +1 -1
  235. package/dist/components/ui/select.cjs +113 -0
  236. package/dist/components/ui/select.cjs.map +1 -0
  237. package/dist/components/ui/select.d.cts +15 -0
  238. package/dist/components/ui/select.js +17 -18
  239. package/dist/components/ui/select.js.map +1 -1
  240. package/dist/components/ui/separator.cjs +21 -0
  241. package/dist/components/ui/separator.cjs.map +1 -0
  242. package/dist/components/ui/separator.d.cts +4 -0
  243. package/dist/components/ui/separator.d.ts.map +1 -1
  244. package/dist/components/ui/separator.js +5 -4
  245. package/dist/components/ui/separator.js.map +1 -1
  246. package/dist/components/ui/sheet.cjs +101 -0
  247. package/dist/components/ui/sheet.cjs.map +1 -0
  248. package/dist/components/ui/sheet.d.cts +14 -0
  249. package/dist/components/ui/sheet.d.ts.map +1 -1
  250. package/dist/components/ui/sheet.js +1 -0
  251. package/dist/components/ui/sheet.js.map +1 -1
  252. package/dist/components/ui/sidebar.cjs +405 -0
  253. package/dist/components/ui/sidebar.cjs.map +1 -0
  254. package/dist/components/ui/sidebar.d.cts +69 -0
  255. package/dist/components/ui/sidebar.js +0 -1
  256. package/dist/components/ui/sidebar.js.map +1 -1
  257. package/dist/components/ui/skeleton.cjs +14 -0
  258. package/dist/components/ui/skeleton.cjs.map +1 -0
  259. package/dist/components/ui/skeleton.d.cts +2 -0
  260. package/dist/components/ui/slider.cjs +42 -0
  261. package/dist/components/ui/slider.cjs.map +1 -0
  262. package/dist/components/ui/slider.d.cts +7 -0
  263. package/dist/components/ui/slider.js +7 -8
  264. package/dist/components/ui/slider.js.map +1 -1
  265. package/dist/components/ui/sonner.cjs +36 -0
  266. package/dist/components/ui/sonner.cjs.map +1 -0
  267. package/dist/components/ui/sonner.d.cts +13 -0
  268. package/dist/components/ui/sonner.d.ts.map +1 -1
  269. package/dist/components/ui/sonner.js +4 -6
  270. package/dist/components/ui/sonner.js.map +1 -1
  271. package/dist/components/ui/spinner.cjs +17 -0
  272. package/dist/components/ui/spinner.cjs.map +1 -0
  273. package/dist/components/ui/spinner.d.cts +2 -0
  274. package/dist/components/ui/switch.cjs +24 -0
  275. package/dist/components/ui/switch.cjs.map +1 -0
  276. package/dist/components/ui/switch.d.cts +6 -0
  277. package/dist/components/ui/switch.js +5 -6
  278. package/dist/components/ui/switch.js.map +1 -1
  279. package/dist/components/ui/table.cjs +77 -0
  280. package/dist/components/ui/table.cjs.map +1 -0
  281. package/dist/components/ui/table.d.cts +10 -0
  282. package/dist/components/ui/tabs.cjs +54 -0
  283. package/dist/components/ui/tabs.cjs.map +1 -0
  284. package/dist/components/ui/tabs.d.cts +11 -0
  285. package/dist/components/ui/tabs.js +7 -8
  286. package/dist/components/ui/tabs.js.map +1 -1
  287. package/dist/components/ui/textarea.cjs +39 -0
  288. package/dist/components/ui/textarea.cjs.map +1 -0
  289. package/dist/components/ui/textarea.d.cts +9 -0
  290. package/dist/components/ui/textarea.js +0 -1
  291. package/dist/components/ui/textarea.js.map +1 -1
  292. package/dist/components/ui/toggle-group.cjs +56 -0
  293. package/dist/components/ui/toggle-group.cjs.map +1 -0
  294. package/dist/components/ui/toggle-group.d.cts +10 -0
  295. package/dist/components/ui/toggle-group.js +5 -6
  296. package/dist/components/ui/toggle-group.js.map +1 -1
  297. package/dist/components/ui/toggle.cjs +41 -0
  298. package/dist/components/ui/toggle.cjs.map +1 -0
  299. package/dist/components/ui/toggle.d.cts +9 -0
  300. package/dist/components/ui/toggle.d.ts.map +1 -1
  301. package/dist/components/ui/toggle.js +5 -4
  302. package/dist/components/ui/toggle.js.map +1 -1
  303. package/dist/components/ui/tooltip.cjs +43 -0
  304. package/dist/components/ui/tooltip.cjs.map +1 -0
  305. package/dist/components/ui/tooltip.d.cts +7 -0
  306. package/dist/components/ui/tooltip.js +8 -9
  307. package/dist/components/ui/tooltip.js.map +1 -1
  308. package/dist/components/ui/trace.cjs +86 -0
  309. package/dist/components/ui/trace.cjs.map +1 -0
  310. package/dist/components/ui/trace.d.cts +18 -0
  311. package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
  312. package/dist/hooks/use-highlighted-code.js +56 -0
  313. package/dist/hooks/use-highlighted-code.js.map +1 -0
  314. package/dist/hooks/use-mobile.cjs +26 -0
  315. package/dist/hooks/use-mobile.cjs.map +1 -0
  316. package/dist/hooks/use-mobile.d.cts +1 -0
  317. package/dist/hooks/use-mobile.d.ts.map +1 -1
  318. package/dist/hooks/use-mobile.js +1 -0
  319. package/dist/hooks/use-mobile.js.map +1 -1
  320. package/dist/index.cjs +356 -0
  321. package/dist/index.d.cts +67 -0
  322. package/dist/index.d.ts +5 -11
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +3 -14
  325. package/dist/lib/get-placeholder.cjs +13 -0
  326. package/dist/lib/get-placeholder.cjs.map +1 -0
  327. package/dist/lib/get-placeholder.d.cts +5 -0
  328. package/dist/lib/highlighter.js +79 -0
  329. package/dist/lib/highlighter.js.map +1 -0
  330. package/dist/lib/utils.cjs +8 -0
  331. package/dist/lib/utils.d.cts +8 -0
  332. package/{src → dist}/styles/globals.css +11 -0
  333. package/package.json +111 -32
  334. /package/{src → dist}/styles/base.css +0 -0
  335. /package/{src → dist}/styles/prose.css +0 -0
  336. /package/{src → dist}/styles/theme.css +0 -0
  337. /package/{src → dist}/styles/tokens.css +0 -0
  338. /package/{src → dist}/styles/utilities.css +0 -0
  339. /package/{src → dist}/styles/variants.css +0 -0
@@ -0,0 +1,79 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { createHighlighterCore } from "shiki/core";
4
+ import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
5
+ // src/lib/highlighter.tsx
6
+ var languages = {
7
+ bash: () => import("shiki/langs/shellscript.mjs"),
8
+ css: () => import("shiki/langs/css.mjs"),
9
+ diff: () => import("shiki/langs/diff.mjs"),
10
+ html: () => import("shiki/langs/html.mjs"),
11
+ javascript: () => import("shiki/langs/javascript.mjs"),
12
+ json: () => import("shiki/langs/json.mjs"),
13
+ jsx: () => import("shiki/langs/jsx.mjs"),
14
+ markdown: () => import("shiki/langs/markdown.mjs"),
15
+ python: () => import("shiki/langs/python.mjs"),
16
+ sql: () => import("shiki/langs/sql.mjs"),
17
+ tsx: () => import("shiki/langs/tsx.mjs"),
18
+ typescript: () => import("shiki/langs/typescript.mjs"),
19
+ yaml: () => import("shiki/langs/yaml.mjs")
20
+ };
21
+ var aliases = {
22
+ js: "javascript",
23
+ md: "markdown",
24
+ py: "python",
25
+ sh: "bash",
26
+ shell: "bash",
27
+ shellscript: "bash",
28
+ ts: "typescript",
29
+ yml: "yaml",
30
+ zsh: "bash"
31
+ };
32
+ var highlighter;
33
+ function getHighlighter() {
34
+ highlighter ??= createHighlighterCore({
35
+ themes: [import("shiki/themes/github-light.mjs"), import("shiki/themes/github-dark.mjs")],
36
+ langs: [],
37
+ engine: createJavaScriptRegexEngine({ forgiving: true })
38
+ });
39
+ return highlighter;
40
+ }
41
+ function getLanguage(language) {
42
+ const name = language.toLowerCase();
43
+ if (name === "ansi") return name;
44
+ if (name in languages) return name;
45
+ return aliases[name] ?? null;
46
+ }
47
+ async function loadHighlighter(language) {
48
+ const lang = getLanguage(language);
49
+ if (!lang) return null;
50
+ const shiki = await getHighlighter();
51
+ if (lang !== "ansi" && !shiki.getLoadedLanguages().includes(lang)) await shiki.loadLanguage(languages[lang]);
52
+ return { highlight(code, state) {
53
+ const tokenize = (text) => shiki.codeToTokens(text, {
54
+ lang,
55
+ themes: {
56
+ light: "github-light",
57
+ dark: "github-dark"
58
+ },
59
+ defaultColor: false,
60
+ grammarState: state
61
+ }).tokens;
62
+ const tokens = lang === "ansi" ? code.split("\n").flatMap((line) => tokenize(line)) : tokenize(code);
63
+ return {
64
+ lines: tokens.map((line) => line.map((token, index) => /* @__PURE__ */ jsx("span", {
65
+ style: token.htmlStyle,
66
+ className: "text-(--shiki-light) dark:text-(--shiki-dark)",
67
+ children: token.content
68
+ }, index))),
69
+ state: shiki.getLastGrammarState(tokens)
70
+ };
71
+ } };
72
+ }
73
+ async function highlightCode(code, language) {
74
+ const highlighter = await loadHighlighter(language);
75
+ return highlighter ? highlighter.highlight(code).lines : null;
76
+ }
77
+ export { highlightCode, loadHighlighter };
78
+
79
+ //# sourceMappingURL=highlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlighter.js","names":[],"sources":["../../src/lib/highlighter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { createHighlighterCore, type GrammarState, type HighlighterCore } from 'shiki/core';\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript';\n\n// Add the languages you need. Each one loads the first time it is used.\nconst languages = {\n bash: () => import('shiki/langs/shellscript.mjs'),\n css: () => import('shiki/langs/css.mjs'),\n diff: () => import('shiki/langs/diff.mjs'),\n html: () => import('shiki/langs/html.mjs'),\n javascript: () => import('shiki/langs/javascript.mjs'),\n json: () => import('shiki/langs/json.mjs'),\n jsx: () => import('shiki/langs/jsx.mjs'),\n markdown: () => import('shiki/langs/markdown.mjs'),\n python: () => import('shiki/langs/python.mjs'),\n sql: () => import('shiki/langs/sql.mjs'),\n tsx: () => import('shiki/langs/tsx.mjs'),\n typescript: () => import('shiki/langs/typescript.mjs'),\n yaml: () => import('shiki/langs/yaml.mjs'),\n};\n\nconst aliases: Record<string, keyof typeof languages> = {\n js: 'javascript',\n md: 'markdown',\n py: 'python',\n sh: 'bash',\n shell: 'bash',\n shellscript: 'bash',\n ts: 'typescript',\n yml: 'yaml',\n zsh: 'bash',\n};\n\nlet highlighter: Promise<HighlighterCore> | undefined;\n\nfunction getHighlighter() {\n highlighter ??= createHighlighterCore({\n themes: [import('shiki/themes/github-light.mjs'), import('shiki/themes/github-dark.mjs')],\n langs: [],\n engine: createJavaScriptRegexEngine({ forgiving: true }),\n });\n\n return highlighter;\n}\n\nfunction getLanguage(language: string) {\n const name = language.toLowerCase();\n\n if (name === 'ansi') {\n return name;\n }\n\n if (name in languages) {\n return name as keyof typeof languages;\n }\n\n return aliases[name] ?? null;\n}\n\n// Loads a language and returns a highlighter for it, or null for a language\n// that is not listed.\nexport async function loadHighlighter(language: string) {\n const lang = getLanguage(language);\n\n if (!lang) {\n return null;\n }\n\n const shiki = await getHighlighter();\n\n if (lang !== 'ansi' && !shiki.getLoadedLanguages().includes(lang)) {\n await shiki.loadLanguage(languages[lang]);\n }\n\n return {\n // Returns one React node per line, and the grammar state after the last\n // line. Pass that state back to continue where the code left off.\n highlight(code: string, state?: GrammarState) {\n const tokenize = (text: string) =>\n shiki.codeToTokens(text, {\n lang,\n themes: { light: 'github-light', dark: 'github-dark' },\n defaultColor: false,\n grammarState: state,\n }).tokens;\n\n // ANSI has no grammar state, so each line is tokenized on its own and\n // gets the same colors whether it arrives in one piece or streams.\n const tokens =\n lang === 'ansi' ? code.split('\\n').flatMap((line) => tokenize(line)) : tokenize(code);\n\n return {\n lines: tokens.map((line) =>\n line.map((token, index) => (\n <span\n key={index}\n style={token.htmlStyle as React.CSSProperties}\n className=\"text-(--shiki-light) dark:text-(--shiki-dark)\"\n >\n {token.content}\n </span>\n )),\n ),\n state: shiki.getLastGrammarState(tokens),\n };\n },\n };\n}\n\n// Returns one React node per line, or null for a language that is not listed.\nexport async function highlightCode(code: string, language: string) {\n const highlighter = await loadHighlighter(language);\n\n return highlighter ? highlighter.highlight(code).lines : null;\n}\n"],"mappings":";;;;;AAKA,IAAM,YAAY;CAChB,YAAY,OAAO;CACnB,WAAW,OAAO;CAClB,YAAY,OAAO;CACnB,YAAY,OAAO;CACnB,kBAAkB,OAAO;CACzB,YAAY,OAAO;CACnB,WAAW,OAAO;CAClB,gBAAgB,OAAO;CACvB,cAAc,OAAO;CACrB,WAAW,OAAO;CAClB,WAAW,OAAO;CAClB,kBAAkB,OAAO;CACzB,YAAY,OAAO;AACrB;AAEA,IAAM,UAAkD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,aAAa;CACb,IAAI;CACJ,KAAK;CACL,KAAK;AACP;AAEA,IAAI;AAEJ,SAAS,iBAAiB;CACxB,gBAAgB,sBAAsB;EACpC,QAAQ,CAAC,OAAO,kCAAkC,OAAO,+BAA+B;EACxF,OAAO,CAAC;EACR,QAAQ,4BAA4B,EAAE,WAAW,KAAK,CAAC;CACzD,CAAC;CAED,OAAO;AACT;AAEA,SAAS,YAAY,UAAkB;CACrC,MAAM,OAAO,SAAS,YAAY;CAElC,IAAI,SAAS,QACX,OAAO;CAGT,IAAI,QAAQ,WACV,OAAO;CAGT,OAAO,QAAQ,SAAS;AAC1B;AAIA,eAAsB,gBAAgB,UAAkB;CACtD,MAAM,OAAO,YAAY,QAAQ;CAEjC,IAAI,CAAC,MACH,OAAO;CAGT,MAAM,QAAQ,MAAM,eAAe;CAEnC,IAAI,SAAS,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC,SAAS,IAAI,GAC9D,MAAM,MAAM,aAAa,UAAU,KAAK;CAG1C,OAAO,EAGL,UAAU,MAAc,OAAsB;EAC5C,MAAM,YAAY,SAChB,MAAM,aAAa,MAAM;GACvB;GACA,QAAQ;IAAE,OAAO;IAAgB,MAAM;GAAc;GACrD,cAAc;GACd,cAAc;EAChB,CAAC,CAAC,CAAC;EAIL,MAAM,SACJ,SAAS,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI;EAEtF,OAAO;GACL,OAAO,OAAO,KAAK,SACjB,KAAK,KAAK,OAAO,UACf,oBAAC,QAAD;IAEE,OAAO,MAAM;IACb,WAAU;IAET,UAAA,MAAM;GACH,GALC,KAKD,CACP,CACH;GACA,OAAO,MAAM,oBAAoB,MAAM;EACzC;CACF,EACF;AACF;AAGA,eAAsB,cAAc,MAAc,UAAkB;CAClE,MAAM,cAAc,MAAM,gBAAgB,QAAQ;CAElD,OAAO,cAAc,YAAY,UAAU,IAAI,CAAC,CAAC,QAAQ;AAC3D"}
@@ -0,0 +1,8 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let cn = require("cn");
3
+ Object.defineProperty(exports, "cn", {
4
+ enumerable: true,
5
+ get: function() {
6
+ return cn.cn;
7
+ }
8
+ });
@@ -0,0 +1,8 @@
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';
@@ -31,3 +31,14 @@
31
31
  @import './utilities.css';
32
32
  @import './base.css';
33
33
  @import './prose.css';
34
+
35
+ /*
36
+ * Register this package's own modules as Tailwind sources.
37
+ *
38
+ * Tailwind does not scan `node_modules`, so without these lines every component
39
+ * renders unstyled with no error anywhere. The paths are relative to this file,
40
+ * which is why they work from a consumer's install without configuration.
41
+ */
42
+ @source '../components';
43
+ @source '../lib';
44
+ @source '../hooks';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konopskidev/ui",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "The konopskidev design system: shadcn/ui components styled with the konopskidev tokens on Tailwind CSS v4.",
5
5
  "keywords": [
6
6
  "shadcn",
@@ -27,42 +27,121 @@
27
27
  },
28
28
  "files": [
29
29
  "dist",
30
- "src/styles",
31
30
  "README.md",
32
31
  "LICENSE"
33
32
  ],
34
33
  "exports": {
35
34
  ".": {
36
- "types": "./dist/index.d.ts",
37
- "import": "./dist/index.js"
35
+ "import": {
36
+ "types": "./dist/index.d.ts",
37
+ "default": "./dist/index.js"
38
+ },
39
+ "require": {
40
+ "types": "./dist/index.d.cts",
41
+ "default": "./dist/index.cjs"
42
+ }
38
43
  },
39
44
  "./components/*": {
40
- "types": "./dist/components/ui/*.d.ts",
41
- "import": "./dist/components/ui/*.js"
45
+ "import": {
46
+ "types": "./dist/components/ui/*.d.ts",
47
+ "default": "./dist/components/ui/*.js"
48
+ },
49
+ "require": {
50
+ "types": "./dist/components/ui/*.d.cts",
51
+ "default": "./dist/components/ui/*.cjs"
52
+ }
42
53
  },
43
54
  "./lib/*": {
44
- "types": "./dist/lib/*.d.ts",
45
- "import": "./dist/lib/*.js"
55
+ "import": {
56
+ "types": "./dist/lib/*.d.ts",
57
+ "default": "./dist/lib/*.js"
58
+ },
59
+ "require": {
60
+ "types": "./dist/lib/*.d.cts",
61
+ "default": "./dist/lib/*.cjs"
62
+ }
46
63
  },
47
64
  "./hooks/*": {
48
- "types": "./dist/hooks/*.d.ts",
49
- "import": "./dist/hooks/*.js"
65
+ "import": {
66
+ "types": "./dist/hooks/*.d.ts",
67
+ "default": "./dist/hooks/*.js"
68
+ },
69
+ "require": {
70
+ "types": "./dist/hooks/*.d.cts",
71
+ "default": "./dist/hooks/*.cjs"
72
+ }
50
73
  },
51
- "./styles.css": "./src/styles/globals.css",
74
+ "./lib/highlighter": {
75
+ "import": {
76
+ "types": "./dist/lib/highlighter.d.ts",
77
+ "default": "./dist/lib/highlighter.js"
78
+ }
79
+ },
80
+ "./hooks/use-highlighted-code": {
81
+ "import": {
82
+ "types": "./dist/hooks/use-highlighted-code.d.ts",
83
+ "default": "./dist/hooks/use-highlighted-code.js"
84
+ }
85
+ },
86
+ "./styles.css": "./dist/styles/globals.css",
52
87
  "./package.json": "./package.json"
53
88
  },
54
89
  "peerDependencies": {
90
+ "@base-ui/react": "^1.9.0",
91
+ "@shadcn/react": "^0.3.1",
92
+ "cmdk": "^1.1.1",
93
+ "embla-carousel-react": "^8.6.0",
94
+ "input-otp": "^1.5.0",
55
95
  "lucide-react": ">=0.4 <2",
56
96
  "react": "^19.0.0",
97
+ "react-day-picker": "^10.0.2",
57
98
  "react-dom": "^19.0.0",
58
- "tailwindcss": "^4.0.0"
99
+ "react-resizable-panels": "^4.15.0",
100
+ "recharts": "3.8.0",
101
+ "shiki": "^4.5.0",
102
+ "sonner": "^2.0.8",
103
+ "tailwindcss": "^4.0.0",
104
+ "vaul": "^1.1.2"
59
105
  },
60
106
  "peerDependenciesMeta": {
61
- "tailwindcss": {
107
+ "@base-ui/react": {
108
+ "optional": true
109
+ },
110
+ "@shadcn/react": {
111
+ "optional": true
112
+ },
113
+ "cmdk": {
114
+ "optional": true
115
+ },
116
+ "embla-carousel-react": {
117
+ "optional": true
118
+ },
119
+ "input-otp": {
62
120
  "optional": true
63
121
  },
64
122
  "lucide-react": {
65
123
  "optional": true
124
+ },
125
+ "react-day-picker": {
126
+ "optional": true
127
+ },
128
+ "react-resizable-panels": {
129
+ "optional": true
130
+ },
131
+ "recharts": {
132
+ "optional": true
133
+ },
134
+ "shiki": {
135
+ "optional": true
136
+ },
137
+ "sonner": {
138
+ "optional": true
139
+ },
140
+ "tailwindcss": {
141
+ "optional": true
142
+ },
143
+ "vaul": {
144
+ "optional": true
66
145
  }
67
146
  },
68
147
  "engines": {
@@ -70,11 +149,13 @@
70
149
  },
71
150
  "devDependencies": {
72
151
  "@arethetypeswrong/cli": "^0.18.5",
152
+ "@base-ui/react": "^1.9.0",
73
153
  "@eslint/js": "^10.0.1",
74
154
  "@fontsource/jetbrains-mono": "^5.3.0",
75
155
  "@fontsource/lato": "^5.3.0",
76
156
  "@fontsource/lora": "^5.3.0",
77
157
  "@fontsource/playfair-display": "^5.3.0",
158
+ "@shadcn/react": "^0.3.1",
78
159
  "@storybook/addon-a11y": "10.6.5",
79
160
  "@storybook/addon-docs": "10.6.5",
80
161
  "@storybook/addon-themes": "10.6.5",
@@ -91,6 +172,8 @@
91
172
  "@vitejs/plugin-react": "^6.1.2",
92
173
  "@vitest/browser-playwright": "^5.0.5",
93
174
  "@vitest/coverage-v8": "^5.0.5",
175
+ "cmdk": "^1.1.1",
176
+ "embla-carousel-react": "^8.6.0",
94
177
  "eslint": "^10.13.0",
95
178
  "eslint-config-prettier": "^10.1.8",
96
179
  "eslint-plugin-import-x": "^4.17.1",
@@ -99,6 +182,7 @@
99
182
  "eslint-plugin-testing-library": "^7.16.2",
100
183
  "globals": "^17.13.0",
101
184
  "husky": "^9.1.7",
185
+ "input-otp": "^1.5.0",
102
186
  "jsdom": "^30.1.3",
103
187
  "lint-staged": "^17.6.0",
104
188
  "playwright": "^1.64.1",
@@ -106,38 +190,32 @@
106
190
  "prettier-plugin-tailwindcss": "^0.8.1",
107
191
  "publint": "^0.3.25",
108
192
  "react": "^19.3.1",
193
+ "react-day-picker": "^10.0.2",
109
194
  "react-dom": "^19.3.1",
195
+ "react-resizable-panels": "^4.15.0",
196
+ "recharts": "3.8.0",
110
197
  "shadcn": "^4.23.0",
198
+ "shiki": "^4.5.0",
199
+ "sonner": "^2.0.8",
111
200
  "storybook": "10.6.5",
112
201
  "tailwindcss": "^4.0.0",
113
202
  "typescript": "~5.9.3",
114
203
  "typescript-eslint": "^8.72.1",
204
+ "vaul": "^1.1.2",
115
205
  "vite": "^8.3.5",
116
206
  "vitest": "^5.0.5"
117
207
  },
118
208
  "dependencies": {
119
- "@base-ui/react": "^1.9.0",
120
- "@radix-ui/react-dialog": "^1.1.1",
121
- "@radix-ui/react-slot": "^1.1.1",
122
- "@shadcn/react": "^0.3.1",
123
209
  "class-variance-authority": "^0.7.1",
124
- "cmdk": "^1.1.1",
125
210
  "cn": "^0.5.0",
126
- "date-fns": "^4.4.0",
127
- "embla-carousel-react": "^8.6.0",
128
- "input-otp": "^1.5.0",
129
211
  "radix-ui": "^1.8.1",
130
- "react-day-picker": "^10.0.2",
131
- "react-resizable-panels": "^4.15.0",
132
- "recharts": "3.8.0",
133
- "shiki": "^4.5.0",
134
- "sonner": "^2.0.8",
135
- "tw-animate-css": "^1.4.0",
136
- "vaul": "^1.1.2"
212
+ "tw-animate-css": "^1.4.0"
137
213
  },
214
+ "main": "./dist/index.cjs",
215
+ "types": "./dist/index.d.ts",
138
216
  "scripts": {
139
217
  "dev": "storybook dev -p 6006",
140
- "build": "vite build && tsc -p tsconfig.build.json && node scripts/fix-declarations.mjs",
218
+ "build": "node scripts/build.mjs",
141
219
  "build:storybook": "storybook build",
142
220
  "lint": "eslint . --max-warnings=0",
143
221
  "lint:fix": "eslint . --fix",
@@ -148,9 +226,10 @@
148
226
  "test:watch": "vitest --project=unit",
149
227
  "test:stories": "vitest run --project=storybook",
150
228
  "test:coverage": "vitest run --project=unit --coverage",
151
- "verify:package": "publint && attw --pack . --profile esm-only --exclude-entrypoints ./styles.css",
152
- "verify": "pnpm lint && pnpm tsc && pnpm test && pnpm build && pnpm verify:package",
229
+ "verify:package": "publint && attw --pack . --profile node16 --exclude-entrypoints ./styles.css ./lib/highlighter ./hooks/use-highlighted-code",
230
+ "verify": "pnpm lint && pnpm tsc && pnpm test && pnpm build && pnpm test:package && pnpm verify:package",
153
231
  "style": "node scripts/apply-house-style.mjs && prettier --write \"src/components/ui/**/*.tsx\"",
154
- "barrel": "node scripts/generate-barrel.mjs"
232
+ "barrel": "node scripts/generate-barrel.mjs",
233
+ "test:package": "node scripts/test-package.mjs"
155
234
  }
156
235
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes