@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.
- package/LICENSE +48 -0
- package/README.md +166 -2
- package/dist/components/accordion.d.ts +7 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +18 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +19 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +44 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +11 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +29 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +5 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +9 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/attachment.d.ts +24 -0
- package/dist/components/attachment.d.ts.map +1 -0
- package/dist/components/attachment.js +70 -0
- package/dist/components/attachment.js.map +1 -0
- package/dist/components/avatar.d.ts +12 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +25 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +8 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +34 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +11 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +38 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/bubble.d.ts +17 -0
- package/dist/components/bubble.d.ts.map +1 -0
- package/dist/components/bubble.js +61 -0
- package/dist/components/bubble.js.map +1 -0
- package/dist/components/button-group.d.ts +11 -0
- package/dist/components/button-group.d.ts.map +1 -0
- package/dist/components/button-group.js +37 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.d.ts +9 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +35 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +11 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +77 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +12 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +26 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +29 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +92 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +45 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +133 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +4 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +10 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/code-block.d.ts +27 -0
- package/dist/components/code-block.d.ts.map +1 -0
- package/dist/components/code-block.js +81 -0
- package/dist/components/code-block.js.map +1 -0
- package/dist/components/collapsible.d.ts +6 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +14 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +25 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +59 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +20 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +37 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +30 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +53 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.d.ts +18 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +39 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/direction.d.ts +2 -0
- package/dist/components/direction.d.ts.map +1 -0
- package/dist/components/direction.js +3 -0
- package/dist/components/direction.js.map +1 -0
- package/dist/components/drawer.d.ts +17 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +76 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +30 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +53 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty.d.ts +12 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.js +34 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.d.ts +25 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +69 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/hover-card.d.ts +6 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +15 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.d.ts +19 -0
- package/dist/components/input-group.d.ts.map +1 -0
- package/dist/components/input-group.js +59 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.d.ts +12 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +22 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.d.ts +4 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +9 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/item.d.ts +23 -0
- package/dist/components/item.d.ts.map +1 -0
- package/dist/components/item.js +80 -0
- package/dist/components/item.js.map +1 -0
- package/dist/components/kbd.d.ts +4 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +10 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.d.ts +4 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +9 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/marker.d.ts +11 -0
- package/dist/components/marker.d.ts.map +1 -0
- package/dist/components/marker.js +36 -0
- package/dist/components/marker.js.map +1 -0
- package/dist/components/menubar.d.ts +30 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +58 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/message-scroller.d.ts +11 -0
- package/dist/components/message-scroller.d.ts.map +1 -0
- package/dist/components/message-scroller.js +27 -0
- package/dist/components/message-scroller.js.map +1 -0
- package/dist/components/message.d.ts +11 -0
- package/dist/components/message.d.ts.map +1 -0
- package/dist/components/message.js +23 -0
- package/dist/components/message.js.map +1 -0
- package/dist/components/native-select.d.ts +9 -0
- package/dist/components/native-select.d.ts.map +1 -0
- package/dist/components/native-select.js +15 -0
- package/dist/components/native-select.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +12 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +32 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.d.ts +18 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +28 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +10 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +25 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +8 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +21 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/questionnaire.d.ts +20 -0
- package/dist/components/questionnaire.d.ts.map +1 -0
- package/dist/components/questionnaire.js +54 -0
- package/dist/components/questionnaire.js.map +1 -0
- package/dist/components/radio-group.d.ts +6 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +13 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.d.ts +8 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +15 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.d.ts +6 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +13 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +36 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +15 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +39 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +64 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +257 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +7 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +4 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +13 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.d.ts +3 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +8 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.d.ts +6 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +9 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +30 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +11 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +30 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +4 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +8 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.d.ts +17 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +68 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toggle-group.d.ts +12 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +26 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +9 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +27 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.d.ts +7 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +18 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/trace.d.ts +19 -0
- package/dist/components/trace.d.ts.map +1 -0
- package/dist/components/trace.js +31 -0
- package/dist/components/trace.js.map +1 -0
- package/dist/hooks/use-highlighted-code.d.ts +3 -0
- package/dist/hooks/use-highlighted-code.d.ts.map +1 -0
- package/dist/hooks/use-highlighted-code.js +50 -0
- package/dist/hooks/use-highlighted-code.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/highlighter.d.ts +10 -0
- package/dist/lib/highlighter.d.ts.map +1 -0
- package/dist/lib/highlighter.js +92 -0
- package/dist/lib/highlighter.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +2 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +85 -4
- package/styles.css +18 -0
- 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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
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
|
+
}
|