@zukhruf/shadcn 0.0.0-stage → 0.3.21

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 (277) hide show
  1. package/LICENSE +48 -0
  2. package/README.md +166 -2
  3. package/dist/components/accordion.d.ts +7 -0
  4. package/dist/components/accordion.d.ts.map +1 -0
  5. package/dist/components/accordion.js +18 -0
  6. package/dist/components/accordion.js.map +1 -0
  7. package/dist/components/alert-dialog.d.ts +19 -0
  8. package/dist/components/alert-dialog.d.ts.map +1 -0
  9. package/dist/components/alert-dialog.js +44 -0
  10. package/dist/components/alert-dialog.js.map +1 -0
  11. package/dist/components/alert.d.ts +11 -0
  12. package/dist/components/alert.d.ts.map +1 -0
  13. package/dist/components/alert.js +29 -0
  14. package/dist/components/alert.js.map +1 -0
  15. package/dist/components/aspect-ratio.d.ts +5 -0
  16. package/dist/components/aspect-ratio.d.ts.map +1 -0
  17. package/dist/components/aspect-ratio.js +9 -0
  18. package/dist/components/aspect-ratio.js.map +1 -0
  19. package/dist/components/attachment.d.ts +24 -0
  20. package/dist/components/attachment.d.ts.map +1 -0
  21. package/dist/components/attachment.js +70 -0
  22. package/dist/components/attachment.js.map +1 -0
  23. package/dist/components/avatar.d.ts +12 -0
  24. package/dist/components/avatar.d.ts.map +1 -0
  25. package/dist/components/avatar.js +25 -0
  26. package/dist/components/avatar.js.map +1 -0
  27. package/dist/components/badge.d.ts +8 -0
  28. package/dist/components/badge.d.ts.map +1 -0
  29. package/dist/components/badge.js +34 -0
  30. package/dist/components/badge.js.map +1 -0
  31. package/dist/components/breadcrumb.d.ts +11 -0
  32. package/dist/components/breadcrumb.d.ts.map +1 -0
  33. package/dist/components/breadcrumb.js +38 -0
  34. package/dist/components/breadcrumb.js.map +1 -0
  35. package/dist/components/bubble.d.ts +17 -0
  36. package/dist/components/bubble.d.ts.map +1 -0
  37. package/dist/components/bubble.js +61 -0
  38. package/dist/components/bubble.js.map +1 -0
  39. package/dist/components/button-group.d.ts +11 -0
  40. package/dist/components/button-group.d.ts.map +1 -0
  41. package/dist/components/button-group.js +37 -0
  42. package/dist/components/button-group.js.map +1 -0
  43. package/dist/components/button.d.ts +9 -0
  44. package/dist/components/button.d.ts.map +1 -0
  45. package/dist/components/button.js +35 -0
  46. package/dist/components/button.js.map +1 -0
  47. package/dist/components/calendar.d.ts +11 -0
  48. package/dist/components/calendar.d.ts.map +1 -0
  49. package/dist/components/calendar.js +77 -0
  50. package/dist/components/calendar.js.map +1 -0
  51. package/dist/components/card.d.ts +12 -0
  52. package/dist/components/card.d.ts.map +1 -0
  53. package/dist/components/card.js +26 -0
  54. package/dist/components/card.js.map +1 -0
  55. package/dist/components/carousel.d.ts +29 -0
  56. package/dist/components/carousel.d.ts.map +1 -0
  57. package/dist/components/carousel.js +92 -0
  58. package/dist/components/carousel.js.map +1 -0
  59. package/dist/components/chart.d.ts +45 -0
  60. package/dist/components/chart.d.ts.map +1 -0
  61. package/dist/components/chart.js +133 -0
  62. package/dist/components/chart.js.map +1 -0
  63. package/dist/components/checkbox.d.ts +4 -0
  64. package/dist/components/checkbox.d.ts.map +1 -0
  65. package/dist/components/checkbox.js +10 -0
  66. package/dist/components/checkbox.js.map +1 -0
  67. package/dist/components/code-block.d.ts +27 -0
  68. package/dist/components/code-block.d.ts.map +1 -0
  69. package/dist/components/code-block.js +81 -0
  70. package/dist/components/code-block.js.map +1 -0
  71. package/dist/components/collapsible.d.ts +6 -0
  72. package/dist/components/collapsible.d.ts.map +1 -0
  73. package/dist/components/collapsible.js +14 -0
  74. package/dist/components/collapsible.js.map +1 -0
  75. package/dist/components/combobox.d.ts +25 -0
  76. package/dist/components/combobox.d.ts.map +1 -0
  77. package/dist/components/combobox.js +59 -0
  78. package/dist/components/combobox.js.map +1 -0
  79. package/dist/components/command.d.ts +20 -0
  80. package/dist/components/command.d.ts.map +1 -0
  81. package/dist/components/command.js +37 -0
  82. package/dist/components/command.js.map +1 -0
  83. package/dist/components/context-menu.d.ts +30 -0
  84. package/dist/components/context-menu.d.ts.map +1 -0
  85. package/dist/components/context-menu.js +53 -0
  86. package/dist/components/context-menu.js.map +1 -0
  87. package/dist/components/dialog.d.ts +18 -0
  88. package/dist/components/dialog.d.ts.map +1 -0
  89. package/dist/components/dialog.js +39 -0
  90. package/dist/components/dialog.js.map +1 -0
  91. package/dist/components/direction.d.ts +2 -0
  92. package/dist/components/direction.d.ts.map +1 -0
  93. package/dist/components/direction.js +3 -0
  94. package/dist/components/direction.js.map +1 -0
  95. package/dist/components/drawer.d.ts +17 -0
  96. package/dist/components/drawer.d.ts.map +1 -0
  97. package/dist/components/drawer.js +76 -0
  98. package/dist/components/drawer.js.map +1 -0
  99. package/dist/components/dropdown-menu.d.ts +30 -0
  100. package/dist/components/dropdown-menu.d.ts.map +1 -0
  101. package/dist/components/dropdown-menu.js +53 -0
  102. package/dist/components/dropdown-menu.js.map +1 -0
  103. package/dist/components/empty.d.ts +12 -0
  104. package/dist/components/empty.d.ts.map +1 -0
  105. package/dist/components/empty.js +34 -0
  106. package/dist/components/empty.js.map +1 -0
  107. package/dist/components/field.d.ts +25 -0
  108. package/dist/components/field.d.ts.map +1 -0
  109. package/dist/components/field.js +69 -0
  110. package/dist/components/field.js.map +1 -0
  111. package/dist/components/hover-card.d.ts +6 -0
  112. package/dist/components/hover-card.d.ts.map +1 -0
  113. package/dist/components/hover-card.js +15 -0
  114. package/dist/components/hover-card.js.map +1 -0
  115. package/dist/components/input-group.d.ts +19 -0
  116. package/dist/components/input-group.d.ts.map +1 -0
  117. package/dist/components/input-group.js +59 -0
  118. package/dist/components/input-group.js.map +1 -0
  119. package/dist/components/input-otp.d.ts +12 -0
  120. package/dist/components/input-otp.d.ts.map +1 -0
  121. package/dist/components/input-otp.js +22 -0
  122. package/dist/components/input-otp.js.map +1 -0
  123. package/dist/components/input.d.ts +4 -0
  124. package/dist/components/input.d.ts.map +1 -0
  125. package/dist/components/input.js +9 -0
  126. package/dist/components/input.js.map +1 -0
  127. package/dist/components/item.d.ts +23 -0
  128. package/dist/components/item.d.ts.map +1 -0
  129. package/dist/components/item.js +80 -0
  130. package/dist/components/item.js.map +1 -0
  131. package/dist/components/kbd.d.ts +4 -0
  132. package/dist/components/kbd.d.ts.map +1 -0
  133. package/dist/components/kbd.js +10 -0
  134. package/dist/components/kbd.js.map +1 -0
  135. package/dist/components/label.d.ts +4 -0
  136. package/dist/components/label.d.ts.map +1 -0
  137. package/dist/components/label.js +9 -0
  138. package/dist/components/label.js.map +1 -0
  139. package/dist/components/marker.d.ts +11 -0
  140. package/dist/components/marker.d.ts.map +1 -0
  141. package/dist/components/marker.js +36 -0
  142. package/dist/components/marker.js.map +1 -0
  143. package/dist/components/menubar.d.ts +30 -0
  144. package/dist/components/menubar.d.ts.map +1 -0
  145. package/dist/components/menubar.js +58 -0
  146. package/dist/components/menubar.js.map +1 -0
  147. package/dist/components/message-scroller.d.ts +11 -0
  148. package/dist/components/message-scroller.d.ts.map +1 -0
  149. package/dist/components/message-scroller.js +27 -0
  150. package/dist/components/message-scroller.js.map +1 -0
  151. package/dist/components/message.d.ts +11 -0
  152. package/dist/components/message.d.ts.map +1 -0
  153. package/dist/components/message.js +23 -0
  154. package/dist/components/message.js.map +1 -0
  155. package/dist/components/native-select.d.ts +9 -0
  156. package/dist/components/native-select.d.ts.map +1 -0
  157. package/dist/components/native-select.js +15 -0
  158. package/dist/components/native-select.js.map +1 -0
  159. package/dist/components/navigation-menu.d.ts +12 -0
  160. package/dist/components/navigation-menu.d.ts.map +1 -0
  161. package/dist/components/navigation-menu.js +32 -0
  162. package/dist/components/navigation-menu.js.map +1 -0
  163. package/dist/components/pagination.d.ts +18 -0
  164. package/dist/components/pagination.d.ts.map +1 -0
  165. package/dist/components/pagination.js +28 -0
  166. package/dist/components/pagination.js.map +1 -0
  167. package/dist/components/popover.d.ts +10 -0
  168. package/dist/components/popover.d.ts.map +1 -0
  169. package/dist/components/popover.js +25 -0
  170. package/dist/components/popover.js.map +1 -0
  171. package/dist/components/progress.d.ts +8 -0
  172. package/dist/components/progress.d.ts.map +1 -0
  173. package/dist/components/progress.js +21 -0
  174. package/dist/components/progress.js.map +1 -0
  175. package/dist/components/questionnaire.d.ts +20 -0
  176. package/dist/components/questionnaire.d.ts.map +1 -0
  177. package/dist/components/questionnaire.js +54 -0
  178. package/dist/components/questionnaire.js.map +1 -0
  179. package/dist/components/radio-group.d.ts +6 -0
  180. package/dist/components/radio-group.d.ts.map +1 -0
  181. package/dist/components/radio-group.js +13 -0
  182. package/dist/components/radio-group.js.map +1 -0
  183. package/dist/components/resizable.d.ts +8 -0
  184. package/dist/components/resizable.d.ts.map +1 -0
  185. package/dist/components/resizable.js +15 -0
  186. package/dist/components/resizable.js.map +1 -0
  187. package/dist/components/scroll-area.d.ts +6 -0
  188. package/dist/components/scroll-area.d.ts.map +1 -0
  189. package/dist/components/scroll-area.js +13 -0
  190. package/dist/components/scroll-area.js.map +1 -0
  191. package/dist/components/select.d.ts +16 -0
  192. package/dist/components/select.d.ts.map +1 -0
  193. package/dist/components/select.js +36 -0
  194. package/dist/components/select.js.map +1 -0
  195. package/dist/components/separator.d.ts +4 -0
  196. package/dist/components/separator.d.ts.map +1 -0
  197. package/dist/components/separator.js +9 -0
  198. package/dist/components/separator.js.map +1 -0
  199. package/dist/components/sheet.d.ts +15 -0
  200. package/dist/components/sheet.d.ts.map +1 -0
  201. package/dist/components/sheet.js +39 -0
  202. package/dist/components/sheet.js.map +1 -0
  203. package/dist/components/sidebar.d.ts +64 -0
  204. package/dist/components/sidebar.d.ts.map +1 -0
  205. package/dist/components/sidebar.js +257 -0
  206. package/dist/components/sidebar.js.map +1 -0
  207. package/dist/components/skeleton.d.ts +3 -0
  208. package/dist/components/skeleton.d.ts.map +1 -0
  209. package/dist/components/skeleton.js +7 -0
  210. package/dist/components/skeleton.js.map +1 -0
  211. package/dist/components/slider.d.ts +4 -0
  212. package/dist/components/slider.d.ts.map +1 -0
  213. package/dist/components/slider.js +13 -0
  214. package/dist/components/slider.js.map +1 -0
  215. package/dist/components/spinner.d.ts +3 -0
  216. package/dist/components/spinner.d.ts.map +1 -0
  217. package/dist/components/spinner.js +8 -0
  218. package/dist/components/spinner.js.map +1 -0
  219. package/dist/components/switch.d.ts +6 -0
  220. package/dist/components/switch.d.ts.map +1 -0
  221. package/dist/components/switch.js +9 -0
  222. package/dist/components/switch.js.map +1 -0
  223. package/dist/components/table.d.ts +11 -0
  224. package/dist/components/table.d.ts.map +1 -0
  225. package/dist/components/table.js +30 -0
  226. package/dist/components/table.js.map +1 -0
  227. package/dist/components/tabs.d.ts +11 -0
  228. package/dist/components/tabs.d.ts.map +1 -0
  229. package/dist/components/tabs.js +30 -0
  230. package/dist/components/tabs.js.map +1 -0
  231. package/dist/components/textarea.d.ts +4 -0
  232. package/dist/components/textarea.d.ts.map +1 -0
  233. package/dist/components/textarea.js +8 -0
  234. package/dist/components/textarea.js.map +1 -0
  235. package/dist/components/toast.d.ts +17 -0
  236. package/dist/components/toast.d.ts.map +1 -0
  237. package/dist/components/toast.js +68 -0
  238. package/dist/components/toast.js.map +1 -0
  239. package/dist/components/toggle-group.d.ts +12 -0
  240. package/dist/components/toggle-group.d.ts.map +1 -0
  241. package/dist/components/toggle-group.js +26 -0
  242. package/dist/components/toggle-group.js.map +1 -0
  243. package/dist/components/toggle.d.ts +9 -0
  244. package/dist/components/toggle.d.ts.map +1 -0
  245. package/dist/components/toggle.js +27 -0
  246. package/dist/components/toggle.js.map +1 -0
  247. package/dist/components/tooltip.d.ts +7 -0
  248. package/dist/components/tooltip.d.ts.map +1 -0
  249. package/dist/components/tooltip.js +18 -0
  250. package/dist/components/tooltip.js.map +1 -0
  251. package/dist/components/trace.d.ts +19 -0
  252. package/dist/components/trace.d.ts.map +1 -0
  253. package/dist/components/trace.js +31 -0
  254. package/dist/components/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-highlighted-code.js +50 -0
  258. package/dist/hooks/use-highlighted-code.js.map +1 -0
  259. package/dist/hooks/use-mobile.d.ts +2 -0
  260. package/dist/hooks/use-mobile.d.ts.map +1 -0
  261. package/dist/hooks/use-mobile.js +16 -0
  262. package/dist/hooks/use-mobile.js.map +1 -0
  263. package/dist/index.d.ts +66 -0
  264. package/dist/index.d.ts.map +1 -0
  265. package/dist/index.js +66 -0
  266. package/dist/index.js.map +1 -0
  267. package/dist/lib/highlighter.d.ts +10 -0
  268. package/dist/lib/highlighter.d.ts.map +1 -0
  269. package/dist/lib/highlighter.js +92 -0
  270. package/dist/lib/highlighter.js.map +1 -0
  271. package/dist/lib/utils.d.ts +2 -0
  272. package/dist/lib/utils.d.ts.map +1 -0
  273. package/dist/lib/utils.js +2 -0
  274. package/dist/lib/utils.js.map +1 -0
  275. package/package.json +85 -4
  276. package/styles.css +18 -0
  277. package/theme.css +772 -0
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '#components/collapsible';
3
+ import { cn } from 'cn';
4
+ import { ChevronRightIcon } from 'lucide-react';
5
+ import * as React from 'react';
6
+ function Trace({ className, ...props }) {
7
+ return (_jsx("div", { "data-slot": "trace", className: cn('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-md *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none *:has-[>[data-slot=trace-line]]:focus-visible:ring-3 *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50', className), ...props }));
8
+ }
9
+ function TraceLine({ className, status, ...props }) {
10
+ return (_jsx("span", { "data-slot": "trace-line", "data-status": status, className: cn('flex w-fit max-w-full min-w-0 items-center gap-2 text-sm text-muted-foreground transition-colors in-[a,button]:cursor-pointer in-[a:hover,button:hover]:text-foreground data-[status=error]:text-destructive data-[status=error]:in-[a:hover,button:hover]:text-destructive data-[status=pending]:opacity-60 data-[status=running]:*:data-[slot=trace-title]:shimmer', className), ...props }));
11
+ }
12
+ function TraceIcon({ className, ...props }) {
13
+ return (_jsx("span", { "data-slot": "trace-icon", "aria-hidden": "true", className: cn("flex size-4 shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [[data-slot=trace-title]~&]:-ml-1", className), ...props }));
14
+ }
15
+ function TraceTitle({ className, ...props }) {
16
+ return (_jsx("span", { "data-slot": "trace-title", className: cn('min-w-0 truncate motion-reduce:shimmer-none', className), ...props }));
17
+ }
18
+ function TraceDescription({ className, ...props }) {
19
+ return (_jsx("span", { "data-slot": "trace-description", className: cn('shrink-0 text-muted-foreground/70 tabular-nums', className), ...props }));
20
+ }
21
+ function TraceCollapsible({ className, ...props }) {
22
+ return (_jsx(Collapsible, { "data-slot": "trace-collapsible", className: cn('flex w-full min-w-0 flex-col', className), ...props }));
23
+ }
24
+ function TraceCollapsibleTrigger({ className, children, ...props }) {
25
+ return (_jsxs(CollapsibleTrigger, { "data-slot": "trace-collapsible-trigger", className: cn('group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-md text-left text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 has-[[data-status=error]]:text-destructive', className), ...props, children: [children, _jsx(TraceIcon, { className: "transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90", children: _jsx(ChevronRightIcon, {}) })] }));
26
+ }
27
+ function TraceCollapsibleContent({ className, children, ...props }) {
28
+ return (_jsx(CollapsibleContent, { "data-slot": "trace-collapsible-content", className: "h-(--collapsible-panel-height) min-w-0 overflow-hidden transition-[height] duration-200 data-ending-style:h-0 data-starting-style:h-0", ...props, children: _jsx("div", { "data-slot": "trace-collapsible-content-inner", className: cn('mt-2 mb-1 ml-[calc(--spacing(2)-1px)] min-w-0 border-l pr-1 pl-4 leading-relaxed wrap-break-word text-muted-foreground', className), children: children }) }));
29
+ }
30
+ export { Trace, TraceLine, TraceIcon, TraceTitle, TraceDescription, TraceCollapsible, TraceCollapsibleTrigger, TraceCollapsibleContent, };
31
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/components/trace.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACjE,OAAO,CACL,2BACY,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,obAAob,EACpb,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EAGT;IACC,OAAO,CACL,4BACY,YAAY,iBACT,MAAM,EACnB,SAAS,EAAE,EAAE,CACX,sWAAsW,EACtW,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IACtE,OAAO,CACL,4BACY,YAAY,iBACV,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,qJAAqJ,EACrJ,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IACvE,OAAO,CACL,4BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KACnE,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACqB;IAC7B,OAAO,CACL,4BACY,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EAUP;IACD,OAAO,CACL,KAAC,WAAW,iBACA,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,KACpD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACwC;IAChD,OAAO,CACL,MAAC,kBAAkB,iBACP,2BAA2B,EACrC,SAAS,EAAE,EAAE,CACX,4RAA4R,EAC5R,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,SAAS,IAAC,SAAS,EAAC,8EAA8E,YACjG,KAAC,gBAAgB,KAAG,GACV,IACO,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACwC;IAChD,OAAO,CACL,KAAC,kBAAkB,iBACP,2BAA2B,EACrC,SAAS,EAAC,uIAAuI,KAC7I,KAAK,YAET,2BACY,iCAAiC,EAC3C,SAAS,EAAE,EAAE,CACX,wHAAwH,EACxH,SAAS,CACV,YAEA,QAAQ,GACL,GACa,CACtB,CAAC;AACJ,CAAC;AAED,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,CAAC"}
@@ -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":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kXAsEjE"}
@@ -0,0 +1,50 @@
1
+ import { loadHighlighter } from '#lib/highlighter';
2
+ import * as React from 'react';
3
+ export function useHighlightedCode(value, language) {
4
+ // A trailing newline would render as an extra empty line.
5
+ const code = value.endsWith('\n') ? value.slice(0, -1) : value;
6
+ const [loaded, setLoaded] = React.useState(null);
7
+ const highlighter = loaded?.language === language ? loaded.highlighter : null;
8
+ React.useEffect(() => {
9
+ let cancelled = false;
10
+ loadHighlighter(language)
11
+ .then((next) => {
12
+ if (!cancelled) {
13
+ setLoaded({ language, highlighter: next });
14
+ }
15
+ })
16
+ .catch(() => { });
17
+ return () => {
18
+ cancelled = true;
19
+ };
20
+ }, [language]);
21
+ // The complete lines, highlighted. While the code streams, only the new
22
+ // lines are tokenized, starting from the grammar state of the last one.
23
+ const [done, setDone] = React.useState({ highlighter: null, text: '', lines: [] });
24
+ let next = done;
25
+ if (next.highlighter !== highlighter || !code.startsWith(next.text)) {
26
+ next = { highlighter, text: '', lines: [] };
27
+ }
28
+ const end = code.lastIndexOf('\n') + 1;
29
+ if (highlighter && end > next.text.length) {
30
+ const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);
31
+ next = {
32
+ highlighter,
33
+ text: code.slice(0, end),
34
+ lines: [...next.lines, ...result.lines],
35
+ state: result.state,
36
+ };
37
+ }
38
+ if (next !== done) {
39
+ setDone(next);
40
+ }
41
+ // The last line is still being written, so it is tokenized on every render.
42
+ const tail = code.slice(end);
43
+ return React.useMemo(() => {
44
+ if (!highlighter) {
45
+ return code.split('\n');
46
+ }
47
+ return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];
48
+ }, [code, highlighter, next, tail]);
49
+ }
50
+ //# sourceMappingURL=use-highlighted-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-highlighted-code.js","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"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"}
@@ -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":"AAIA,wBAAgB,WAAW,YAgB1B"}
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ const MOBILE_BREAKPOINT = 768;
3
+ export function useIsMobile() {
4
+ const [isMobile, setIsMobile] = React.useState(undefined);
5
+ React.useEffect(() => {
6
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
7
+ const onChange = () => {
8
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
9
+ };
10
+ mql.addEventListener('change', onChange);
11
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
12
+ return () => mql.removeEventListener('change', onChange);
13
+ }, []);
14
+ return !!isMobile;
15
+ }
16
+ //# sourceMappingURL=use-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,SAAS,CACV,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,66 @@
1
+ export * from './components/accordion.tsx';
2
+ export * from './components/alert-dialog.tsx';
3
+ export * from './components/alert.tsx';
4
+ export * from './components/aspect-ratio.tsx';
5
+ export * from './components/attachment.tsx';
6
+ export * from './components/avatar.tsx';
7
+ export * from './components/badge.tsx';
8
+ export * from './components/breadcrumb.tsx';
9
+ export * from './components/bubble.tsx';
10
+ export * from './components/button-group.tsx';
11
+ export * from './components/button.tsx';
12
+ export * from './components/calendar.tsx';
13
+ export * from './components/card.tsx';
14
+ export * from './components/carousel.tsx';
15
+ export * from './components/chart.tsx';
16
+ export * from './components/checkbox.tsx';
17
+ export * from './components/code-block.tsx';
18
+ export * from './components/collapsible.tsx';
19
+ export * from './components/combobox.tsx';
20
+ export * from './components/command.tsx';
21
+ export * from './components/context-menu.tsx';
22
+ export * from './components/dialog.tsx';
23
+ export * from './components/direction.tsx';
24
+ export * from './components/drawer.tsx';
25
+ export * from './components/dropdown-menu.tsx';
26
+ export * from './components/empty.tsx';
27
+ export * from './components/field.tsx';
28
+ export * from './components/hover-card.tsx';
29
+ export * from './components/input-group.tsx';
30
+ export * from './components/input-otp.tsx';
31
+ export * from './components/input.tsx';
32
+ export * from './components/item.tsx';
33
+ export * from './components/kbd.tsx';
34
+ export * from './components/label.tsx';
35
+ export * from './components/marker.tsx';
36
+ export * from './components/menubar.tsx';
37
+ export * from './components/message-scroller.tsx';
38
+ export * from './components/message.tsx';
39
+ export * from './components/native-select.tsx';
40
+ export * from './components/navigation-menu.tsx';
41
+ export * from './components/pagination.tsx';
42
+ export * from './components/popover.tsx';
43
+ export * from './components/progress.tsx';
44
+ export * from './components/questionnaire.tsx';
45
+ export * from './components/radio-group.tsx';
46
+ export * from './components/resizable.tsx';
47
+ export * from './components/scroll-area.tsx';
48
+ export * from './components/select.tsx';
49
+ export * from './components/separator.tsx';
50
+ export * from './components/sheet.tsx';
51
+ export * from './components/sidebar.tsx';
52
+ export * from './components/skeleton.tsx';
53
+ export * from './components/slider.tsx';
54
+ export * from './components/spinner.tsx';
55
+ export * from './components/switch.tsx';
56
+ export * from './components/table.tsx';
57
+ export * from './components/tabs.tsx';
58
+ export * from './components/textarea.tsx';
59
+ export * from './components/toast.tsx';
60
+ export * from './components/toggle-group.tsx';
61
+ export * from './components/toggle.tsx';
62
+ export * from './components/tooltip.tsx';
63
+ export * from './components/trace.tsx';
64
+ export * from './hooks/use-highlighted-code.ts';
65
+ export * from './hooks/use-mobile.ts';
66
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,66 @@
1
+ export * from "./components/accordion.js";
2
+ export * from "./components/alert-dialog.js";
3
+ export * from "./components/alert.js";
4
+ export * from "./components/aspect-ratio.js";
5
+ export * from "./components/attachment.js";
6
+ export * from "./components/avatar.js";
7
+ export * from "./components/badge.js";
8
+ export * from "./components/breadcrumb.js";
9
+ export * from "./components/bubble.js";
10
+ export * from "./components/button-group.js";
11
+ export * from "./components/button.js";
12
+ export * from "./components/calendar.js";
13
+ export * from "./components/card.js";
14
+ export * from "./components/carousel.js";
15
+ export * from "./components/chart.js";
16
+ export * from "./components/checkbox.js";
17
+ export * from "./components/code-block.js";
18
+ export * from "./components/collapsible.js";
19
+ export * from "./components/combobox.js";
20
+ export * from "./components/command.js";
21
+ export * from "./components/context-menu.js";
22
+ export * from "./components/dialog.js";
23
+ export * from "./components/direction.js";
24
+ export * from "./components/drawer.js";
25
+ export * from "./components/dropdown-menu.js";
26
+ export * from "./components/empty.js";
27
+ export * from "./components/field.js";
28
+ export * from "./components/hover-card.js";
29
+ export * from "./components/input-group.js";
30
+ export * from "./components/input-otp.js";
31
+ export * from "./components/input.js";
32
+ export * from "./components/item.js";
33
+ export * from "./components/kbd.js";
34
+ export * from "./components/label.js";
35
+ export * from "./components/marker.js";
36
+ export * from "./components/menubar.js";
37
+ export * from "./components/message-scroller.js";
38
+ export * from "./components/message.js";
39
+ export * from "./components/native-select.js";
40
+ export * from "./components/navigation-menu.js";
41
+ export * from "./components/pagination.js";
42
+ export * from "./components/popover.js";
43
+ export * from "./components/progress.js";
44
+ export * from "./components/questionnaire.js";
45
+ export * from "./components/radio-group.js";
46
+ export * from "./components/resizable.js";
47
+ export * from "./components/scroll-area.js";
48
+ export * from "./components/select.js";
49
+ export * from "./components/separator.js";
50
+ export * from "./components/sheet.js";
51
+ export * from "./components/sidebar.js";
52
+ export * from "./components/skeleton.js";
53
+ export * from "./components/slider.js";
54
+ export * from "./components/spinner.js";
55
+ export * from "./components/switch.js";
56
+ export * from "./components/table.js";
57
+ export * from "./components/tabs.js";
58
+ export * from "./components/textarea.js";
59
+ export * from "./components/toast.js";
60
+ export * from "./components/toggle-group.js";
61
+ export * from "./components/toggle.js";
62
+ export * from "./components/tooltip.js";
63
+ export * from "./components/trace.js";
64
+ export * from "./hooks/use-highlighted-code.js";
65
+ export * from "./hooks/use-mobile.js";
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA4B,CAAC;AAC3C,cAAc,8BAA+B,CAAC;AAC9C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,0BAA2B,CAAC;AAC1C,cAAc,yBAA0B,CAAC;AACzC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,wBAAyB,CAAC;AACxC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,uBAAwB,CAAC;AACvC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,qBAAsB,CAAC;AACrC,cAAc,uBAAwB,CAAC;AACvC,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,kCAAmC,CAAC;AAClD,cAAc,yBAA0B,CAAC;AACzC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,iCAAkC,CAAC;AACjD,cAAc,4BAA6B,CAAC;AAC5C,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,+BAAgC,CAAC;AAC/C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,uBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
@@ -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,EACL,KAAK,YAAY,EAGlB,MAAM,YAAY,CAAC;AA+DpB,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM;oBAgBlC,MAAM,UAAU,YAAY;;;;UAgC/C;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,yCAIjE"}
@@ -0,0 +1,92 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { createHighlighterCore, } from 'shiki/core';
4
+ import { createJavaScriptRegexEngine } from 'shiki/engine/javascript';
5
+ // Add the languages you need. Each one loads the first time it is used.
6
+ const 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
+ const 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
+ let highlighter;
33
+ function getHighlighter() {
34
+ highlighter ??= createHighlighterCore({
35
+ themes: [
36
+ import('shiki/themes/github-light.mjs'),
37
+ import('shiki/themes/github-dark.mjs'),
38
+ ],
39
+ langs: [],
40
+ engine: createJavaScriptRegexEngine({ forgiving: true }),
41
+ });
42
+ return highlighter;
43
+ }
44
+ function getLanguage(language) {
45
+ const name = language.toLowerCase();
46
+ if (name === 'ansi') {
47
+ return name;
48
+ }
49
+ if (name in languages) {
50
+ return name;
51
+ }
52
+ return aliases[name] ?? null;
53
+ }
54
+ // Loads a language and returns a highlighter for it, or null for a language
55
+ // that is not listed.
56
+ export async function loadHighlighter(language) {
57
+ const lang = getLanguage(language);
58
+ if (!lang) {
59
+ return null;
60
+ }
61
+ const shiki = await getHighlighter();
62
+ if (lang !== 'ansi' && !shiki.getLoadedLanguages().includes(lang)) {
63
+ await shiki.loadLanguage(languages[lang]);
64
+ }
65
+ return {
66
+ // Returns one React node per line, and the grammar state after the last
67
+ // line. Pass that state back to continue where the code left off.
68
+ highlight(code, state) {
69
+ const tokenize = (text) => shiki.codeToTokens(text, {
70
+ lang,
71
+ themes: { light: 'github-light', dark: 'github-dark' },
72
+ defaultColor: false,
73
+ grammarState: state,
74
+ }).tokens;
75
+ // ANSI has no grammar state, so each line is tokenized on its own and
76
+ // gets the same colors whether it arrives in one piece or streams.
77
+ const tokens = lang === 'ansi'
78
+ ? code.split('\n').flatMap((line) => tokenize(line))
79
+ : tokenize(code);
80
+ return {
81
+ lines: tokens.map((line) => line.map((token, index) => (_jsx("span", { style: token.htmlStyle, className: "text-(--shiki-light) dark:text-(--shiki-dark)", children: token.content }, index)))),
82
+ state: shiki.getLastGrammarState(tokens),
83
+ };
84
+ },
85
+ };
86
+ }
87
+ // Returns one React node per line, or null for a language that is not listed.
88
+ export async function highlightCode(code, language) {
89
+ const highlighter = await loadHighlighter(language);
90
+ return highlighter ? highlighter.highlight(code).lines : null;
91
+ }
92
+ //# sourceMappingURL=highlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/lib/highlighter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { cn } from 'cn';
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { cn } from 'cn';
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,87 @@
1
1
  {
2
2
  "name": "@zukhruf/shadcn",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.21",
4
+ "description": "Every shadcn/ui component for Base UI with the nova preset, as one package: import the components from one entry and the styles from one stylesheet.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/JanuaryLabs/zukhruf",
9
+ "directory": "packages/shadcn"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/JanuaryLabs/zukhruf/issues"
13
+ },
14
+ "homepage": "https://github.com/JanuaryLabs/zukhruf/tree/main/packages/shadcn#readme",
15
+ "keywords": [
16
+ "shadcn",
17
+ "shadcn-ui",
18
+ "base-ui",
19
+ "react",
20
+ "components",
21
+ "tailwindcss",
22
+ "ui"
23
+ ],
24
+ "type": "module",
25
+ "imports": {
26
+ "#components/*": {
27
+ "@zukhruf/source": "./src/components/*.tsx",
28
+ "types": "./dist/components/*.d.ts",
29
+ "default": "./dist/components/*.js"
30
+ },
31
+ "#lib/*": {
32
+ "@zukhruf/source": "./src/lib/*.tsx",
33
+ "types": "./dist/lib/*.d.ts",
34
+ "default": "./dist/lib/*.js"
35
+ },
36
+ "#hooks/*": {
37
+ "@zukhruf/source": "./src/hooks/*.ts",
38
+ "types": "./dist/hooks/*.d.ts",
39
+ "default": "./dist/hooks/*.js"
40
+ }
41
+ },
42
+ "exports": {
43
+ "./package.json": "./package.json",
44
+ ".": {
45
+ "@zukhruf/source": "./src/index.ts",
46
+ "types": "./dist/index.d.ts",
47
+ "default": "./dist/index.js"
48
+ },
49
+ "./styles.css": "./styles.css"
50
+ },
51
+ "sideEffects": [
52
+ "**/*.css"
53
+ ],
54
+ "files": [
55
+ "dist",
56
+ "styles.css",
57
+ "theme.css",
58
+ "!dist/spec/**",
59
+ "!**/*.tsbuildinfo",
60
+ "!**/*.test.*"
61
+ ],
62
+ "publishConfig": {
63
+ "access": "public"
64
+ },
65
+ "dependencies": {
66
+ "@base-ui/react": "^1.9.0",
67
+ "@shadcn/react": "^0.3.1",
68
+ "class-variance-authority": "^0.7.1",
69
+ "cmdk": "^1.1.1",
70
+ "cn": "^0.4.0",
71
+ "date-fns": "^4.4.0",
72
+ "embla-carousel-react": "^8.6.0",
73
+ "input-otp": "^1.5.0",
74
+ "lucide-react": "^1.57.0",
75
+ "react-day-picker": "^10.0.2",
76
+ "react-is": "^19.3.1",
77
+ "react-resizable-panels": "^4.14.5",
78
+ "recharts": "^3.8.0",
79
+ "shiki": "^4.5.0",
80
+ "tw-animate-css": "^1.4.0"
81
+ },
82
+ "peerDependencies": {
83
+ "react": "^19.0.0",
84
+ "react-dom": "^19.0.0",
85
+ "tailwindcss": "^4.0.0"
86
+ }
87
+ }
package/styles.css ADDED
@@ -0,0 +1,18 @@
1
+ @import './theme.css';
2
+ @source "./dist";
3
+
4
+ /* Tailwind v4 upgrade guide: buttons use cursor: default */
5
+ @layer base {
6
+ button:not(:disabled),
7
+ [role='button']:not(:disabled) {
8
+ cursor: pointer;
9
+ }
10
+ }
11
+
12
+ /* footer actions stay reachable on short windows */
13
+ @layer components {
14
+ [data-slot='dialog-content'] {
15
+ max-height: calc(100dvh - 2rem);
16
+ overflow-y: auto;
17
+ }
18
+ }