@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.
- package/README.md +102 -13
- package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
- package/dist/components/ui/accordion.cjs +62 -0
- package/dist/components/ui/accordion.cjs.map +1 -0
- package/dist/components/ui/accordion.d.cts +7 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -8
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/alert-dialog.cjs +116 -0
- package/dist/components/ui/alert-dialog.cjs.map +1 -0
- package/dist/components/ui/alert-dialog.d.cts +18 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +13 -12
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert.cjs +49 -0
- package/dist/components/ui/alert.cjs.map +1 -0
- package/dist/components/ui/alert.d.cts +10 -0
- package/dist/components/ui/aspect-ratio.cjs +14 -0
- package/dist/components/ui/aspect-ratio.cjs.map +1 -0
- package/dist/components/ui/aspect-ratio.d.cts +3 -0
- package/dist/components/ui/aspect-ratio.js +4 -5
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/attachment.cjs +113 -0
- package/dist/components/ui/attachment.cjs.map +1 -0
- package/dist/components/ui/attachment.d.cts +24 -0
- package/dist/components/ui/avatar.cjs +60 -0
- package/dist/components/ui/avatar.cjs.map +1 -0
- package/dist/components/ui/avatar.d.cts +11 -0
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +7 -6
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/badge.cjs +33 -0
- package/dist/components/ui/badge.cjs.map +1 -0
- package/dist/components/ui/badge.d.cts +9 -0
- package/dist/components/ui/breadcrumb.cjs +81 -0
- package/dist/components/ui/breadcrumb.cjs.map +1 -0
- package/dist/components/ui/breadcrumb.d.cts +11 -0
- package/dist/components/ui/bubble.cjs +79 -0
- package/dist/components/ui/bubble.cjs.map +1 -0
- package/dist/components/ui/bubble.d.cts +17 -0
- package/dist/components/ui/button-group.cjs +43 -0
- package/dist/components/ui/button-group.cjs.map +1 -0
- package/dist/components/ui/button-group.d.cts +11 -0
- package/dist/components/ui/button.cjs +64 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.cts +21 -0
- package/dist/components/ui/calendar.cjs +114 -0
- package/dist/components/ui/calendar.cjs.map +1 -0
- package/dist/components/ui/calendar.d.cts +10 -0
- package/dist/components/ui/calendar.js +0 -1
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.cjs +80 -0
- package/dist/components/ui/card.cjs.map +1 -0
- package/dist/components/ui/card.d.cts +33 -0
- package/dist/components/ui/card.d.ts +7 -2
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/carousel.cjs +142 -0
- package/dist/components/ui/carousel.cjs.map +1 -0
- package/dist/components/ui/carousel.d.cts +28 -0
- package/dist/components/ui/carousel.d.ts +1 -1
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +1 -0
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/chart.cjs +159 -0
- package/dist/components/ui/chart.cjs.map +1 -0
- package/dist/components/ui/chart.d.cts +44 -0
- package/dist/components/ui/chart.js +0 -1
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/checkbox.cjs +25 -0
- package/dist/components/ui/checkbox.cjs.map +1 -0
- package/dist/components/ui/checkbox.d.cts +4 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +6 -5
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/code-block.cjs +134 -0
- package/dist/components/ui/code-block.cjs.map +1 -0
- package/dist/components/ui/code-block.d.cts +26 -0
- package/dist/components/ui/code-block.d.ts.map +1 -1
- package/dist/components/ui/code-block.js +1 -0
- package/dist/components/ui/code-block.js.map +1 -1
- package/dist/components/ui/collapsible.cjs +28 -0
- package/dist/components/ui/collapsible.cjs.map +1 -0
- package/dist/components/ui/collapsible.d.cts +5 -0
- package/dist/components/ui/collapsible.js +6 -7
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/combobox.cjs +193 -0
- package/dist/components/ui/combobox.cjs.map +1 -0
- package/dist/components/ui/combobox.d.cts +24 -0
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +22 -21
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/command.cjs +99 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +18 -0
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +10 -12
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.cjs +143 -0
- package/dist/components/ui/context-menu.cjs.map +1 -0
- package/dist/components/ui/context-menu.d.cts +31 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +20 -19
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dialog.cjs +148 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.cts +55 -0
- package/dist/components/ui/dialog.d.ts +41 -3
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +65 -26
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/direction.cjs +19 -0
- package/dist/components/ui/direction.cjs.map +1 -0
- package/dist/components/ui/direction.d.cts +11 -0
- package/dist/components/ui/direction.d.ts +1 -1
- package/dist/components/ui/direction.d.ts.map +1 -1
- package/dist/components/ui/direction.js +0 -1
- package/dist/components/ui/direction.js.map +1 -1
- package/dist/components/ui/drawer.cjs +90 -0
- package/dist/components/ui/drawer.cjs.map +1 -0
- package/dist/components/ui/drawer.d.cts +13 -0
- package/dist/components/ui/drawer.js +11 -11
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs +146 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.cts +29 -0
- package/dist/components/ui/dropdown-menu.js +19 -20
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/empty.cjs +66 -0
- package/dist/components/ui/empty.cjs.map +1 -0
- package/dist/components/ui/empty.d.cts +11 -0
- package/dist/components/ui/field.cjs +121 -0
- package/dist/components/ui/field.cjs.map +1 -0
- package/dist/components/ui/field.d.cts +24 -0
- package/dist/components/ui/field.js +0 -1
- package/dist/components/ui/field.js.map +1 -1
- package/dist/components/ui/hover-card.cjs +38 -0
- package/dist/components/ui/hover-card.cjs.map +1 -0
- package/dist/components/ui/hover-card.d.cts +6 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +8 -7
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/input-group.cjs +87 -0
- package/dist/components/ui/input-group.cjs.map +1 -0
- package/dist/components/ui/input-group.d.cts +16 -0
- package/dist/components/ui/input-otp.cjs +54 -0
- package/dist/components/ui/input-otp.cjs.map +1 -0
- package/dist/components/ui/input-otp.d.cts +11 -0
- package/dist/components/ui/input-otp.js +0 -1
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input.cjs +28 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.cts +10 -0
- package/dist/components/ui/item.cjs +133 -0
- package/dist/components/ui/item.cjs.map +1 -0
- package/dist/components/ui/item.d.cts +23 -0
- package/dist/components/ui/kbd.cjs +22 -0
- package/dist/components/ui/kbd.cjs.map +1 -0
- package/dist/components/ui/kbd.d.cts +3 -0
- package/dist/components/ui/label.cjs +19 -0
- package/dist/components/ui/label.cjs.map +1 -0
- package/dist/components/ui/label.d.cts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +5 -4
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/marker.cjs +46 -0
- package/dist/components/ui/marker.cjs.map +1 -0
- package/dist/components/ui/marker.d.cts +11 -0
- package/dist/components/ui/menubar.cjs +154 -0
- package/dist/components/ui/menubar.cjs.map +1 -0
- package/dist/components/ui/menubar.d.cts +30 -0
- package/dist/components/ui/menubar.js +20 -21
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/message-scroller.cjs +87 -0
- package/dist/components/ui/message-scroller.cjs.map +1 -0
- package/dist/components/ui/message-scroller.d.cts +10 -0
- package/dist/components/ui/message-scroller.js +9 -9
- package/dist/components/ui/message-scroller.js.map +1 -1
- package/dist/components/ui/message.cjs +58 -0
- package/dist/components/ui/message.cjs.map +1 -0
- package/dist/components/ui/message.d.cts +10 -0
- package/dist/components/ui/native-select.cjs +44 -0
- package/dist/components/ui/native-select.cjs.map +1 -0
- package/dist/components/ui/native-select.d.cts +8 -0
- package/dist/components/ui/native-select.d.ts +1 -1
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs +93 -0
- package/dist/components/ui/navigation-menu.cjs.map +1 -0
- package/dist/components/ui/navigation-menu.d.cts +14 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +12 -11
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination.cjs +90 -0
- package/dist/components/ui/pagination.cjs.map +1 -0
- package/dist/components/ui/pagination.d.cts +17 -0
- package/dist/components/ui/pagination.d.ts +1 -1
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/popover.cjs +66 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.cts +10 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -7
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/progress.cjs +25 -0
- package/dist/components/ui/progress.cjs.map +1 -0
- package/dist/components/ui/progress.d.cts +4 -0
- package/dist/components/ui/progress.js +5 -6
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/questionnaire.cjs +187 -0
- package/dist/components/ui/questionnaire.cjs.map +1 -0
- package/dist/components/ui/questionnaire.d.cts +19 -0
- package/dist/components/ui/questionnaire.d.ts.map +1 -1
- package/dist/components/ui/questionnaire.js +19 -21
- package/dist/components/ui/questionnaire.js.map +1 -1
- package/dist/components/ui/radio-group.cjs +32 -0
- package/dist/components/ui/radio-group.cjs.map +1 -0
- package/dist/components/ui/radio-group.d.cts +5 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +7 -6
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/resizable.cjs +33 -0
- package/dist/components/ui/resizable.cjs.map +1 -0
- package/dist/components/ui/resizable.d.cts +7 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +0 -2
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs +43 -0
- package/dist/components/ui/scroll-area.cjs.map +1 -0
- package/dist/components/ui/scroll-area.d.cts +5 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +9 -8
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs +113 -0
- package/dist/components/ui/select.cjs.map +1 -0
- package/dist/components/ui/select.d.cts +15 -0
- package/dist/components/ui/select.js +17 -18
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/separator.cjs +21 -0
- package/dist/components/ui/separator.cjs.map +1 -0
- package/dist/components/ui/separator.d.cts +4 -0
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +5 -4
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/sheet.cjs +101 -0
- package/dist/components/ui/sheet.cjs.map +1 -0
- package/dist/components/ui/sheet.d.cts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +1 -0
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.cjs +405 -0
- package/dist/components/ui/sidebar.cjs.map +1 -0
- package/dist/components/ui/sidebar.d.cts +69 -0
- package/dist/components/ui/sidebar.js +0 -1
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/skeleton.cjs +14 -0
- package/dist/components/ui/skeleton.cjs.map +1 -0
- package/dist/components/ui/skeleton.d.cts +2 -0
- package/dist/components/ui/slider.cjs +42 -0
- package/dist/components/ui/slider.cjs.map +1 -0
- package/dist/components/ui/slider.d.cts +7 -0
- package/dist/components/ui/slider.js +7 -8
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/sonner.cjs +36 -0
- package/dist/components/ui/sonner.cjs.map +1 -0
- package/dist/components/ui/sonner.d.cts +13 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +4 -6
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/spinner.cjs +17 -0
- package/dist/components/ui/spinner.cjs.map +1 -0
- package/dist/components/ui/spinner.d.cts +2 -0
- package/dist/components/ui/switch.cjs +24 -0
- package/dist/components/ui/switch.cjs.map +1 -0
- package/dist/components/ui/switch.d.cts +6 -0
- package/dist/components/ui/switch.js +5 -6
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.cjs +77 -0
- package/dist/components/ui/table.cjs.map +1 -0
- package/dist/components/ui/table.d.cts +10 -0
- package/dist/components/ui/tabs.cjs +54 -0
- package/dist/components/ui/tabs.cjs.map +1 -0
- package/dist/components/ui/tabs.d.cts +11 -0
- package/dist/components/ui/tabs.js +7 -8
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs +39 -0
- package/dist/components/ui/textarea.cjs.map +1 -0
- package/dist/components/ui/textarea.d.cts +9 -0
- package/dist/components/ui/textarea.js +0 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle-group.cjs +56 -0
- package/dist/components/ui/toggle-group.cjs.map +1 -0
- package/dist/components/ui/toggle-group.d.cts +10 -0
- package/dist/components/ui/toggle-group.js +5 -6
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle.cjs +41 -0
- package/dist/components/ui/toggle.cjs.map +1 -0
- package/dist/components/ui/toggle.d.cts +9 -0
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +5 -4
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/tooltip.cjs +43 -0
- package/dist/components/ui/tooltip.cjs.map +1 -0
- package/dist/components/ui/tooltip.d.cts +7 -0
- package/dist/components/ui/tooltip.js +8 -9
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/trace.cjs +86 -0
- package/dist/components/ui/trace.cjs.map +1 -0
- package/dist/components/ui/trace.d.cts +18 -0
- package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
- package/dist/hooks/use-highlighted-code.js +56 -0
- package/dist/hooks/use-highlighted-code.js.map +1 -0
- package/dist/hooks/use-mobile.cjs +26 -0
- package/dist/hooks/use-mobile.cjs.map +1 -0
- package/dist/hooks/use-mobile.d.cts +1 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +1 -0
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/index.cjs +356 -0
- package/dist/index.d.cts +67 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -14
- package/dist/lib/get-placeholder.cjs +13 -0
- package/dist/lib/get-placeholder.cjs.map +1 -0
- package/dist/lib/get-placeholder.d.cts +5 -0
- package/dist/lib/highlighter.js +79 -0
- package/dist/lib/highlighter.js.map +1 -0
- package/dist/lib/utils.cjs +8 -0
- package/dist/lib/utils.d.cts +8 -0
- package/{src → dist}/styles/globals.css +11 -0
- package/package.json +111 -32
- /package/{src → dist}/styles/base.css +0 -0
- /package/{src → dist}/styles/prose.css +0 -0
- /package/{src → dist}/styles/theme.css +0 -0
- /package/{src → dist}/styles/tokens.css +0 -0
- /package/{src → dist}/styles/utilities.css +0 -0
- /package/{src → dist}/styles/variants.css +0 -0
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use client";
|
|
3
2
|
import { cn } from "cn";
|
|
4
|
-
import { Tooltip } from "radix-ui";
|
|
3
|
+
import { Tooltip as Tooltip$1 } from "radix-ui";
|
|
5
4
|
import "react";
|
|
6
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
// src/components/ui/tooltip.tsx
|
|
8
7
|
function TooltipProvider({ delayDuration = 0, ...props }) {
|
|
9
|
-
return /* @__PURE__ */ jsx(Tooltip.Provider, {
|
|
8
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Provider, {
|
|
10
9
|
"data-slot": "tooltip-provider",
|
|
11
10
|
delayDuration,
|
|
12
11
|
...props
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
|
-
function Tooltip
|
|
16
|
-
return /* @__PURE__ */ jsx(Tooltip.Root, {
|
|
14
|
+
function Tooltip({ ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Root, {
|
|
17
16
|
"data-slot": "tooltip",
|
|
18
17
|
...props
|
|
19
18
|
});
|
|
20
19
|
}
|
|
21
20
|
function TooltipTrigger({ ...props }) {
|
|
22
|
-
return /* @__PURE__ */ jsx(Tooltip.Trigger, {
|
|
21
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Trigger, {
|
|
23
22
|
"data-slot": "tooltip-trigger",
|
|
24
23
|
...props
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
function TooltipContent({ className, sideOffset = 0, children, ...props }) {
|
|
28
|
-
return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsxs(Tooltip.Content, {
|
|
27
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsxs(Tooltip$1.Content, {
|
|
29
28
|
"data-slot": "tooltip-content",
|
|
30
29
|
sideOffset,
|
|
31
30
|
className: cn("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
32
31
|
...props,
|
|
33
|
-
children: [children, /* @__PURE__ */ jsx(Tooltip.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground" })]
|
|
32
|
+
children: [children, /* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground" })]
|
|
34
33
|
}) });
|
|
35
34
|
}
|
|
36
|
-
export { Tooltip
|
|
35
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
37
36
|
|
|
38
37
|
//# sourceMappingURL=tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../../src/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-sm bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-sm bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":";;;;;;AAMA,SAAS,gBAAgB,EACvB,gBAAgB,GAChB,GAAG,SACsD;CACzD,OACE,oBAACA,UAAiB,UAAlB;EACE,aAAU;EACK;EACf,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,QAAQ,EAAE,GAAG,SAA6D;CACjF,OAAO,oBAACA,UAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;CAAQ,CAAA;AAChE;AAEA,SAAS,eAAe,EAAE,GAAG,SAAgE;CAC3F,OAAO,oBAACA,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,eAAe,EACtB,WACA,aAAa,GACb,UACA,GAAG,SACqD;CACxD,OACE,oBAACA,UAAiB,QAAlB,EAAA,UACE,qBAACA,UAAiB,SAAlB;EACE,aAAU;EACE;EACZ,WAAW,GACT,8rBACA,SACF;EACA,GAAI;EAPN,UAAA,CASG,UACD,oBAACA,UAAiB,OAAlB,EAAwB,WAAU,kGAAmG,CAAA,CAC7G;CACH,CAAA,EAAA,CAAA;AAE7B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
|
|
3
|
+
const require_components_ui_collapsible = require("./collapsible.cjs");
|
|
4
|
+
let cn = require("cn");
|
|
5
|
+
let lucide_react = require("lucide-react");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
react = require_rolldown_runtime.__toESM(react, 1);
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
// src/components/ui/trace.tsx
|
|
10
|
+
function Trace({ className, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
12
|
+
"data-slot": "trace",
|
|
13
|
+
className: (0, cn.cn)("*:has-[>[data-slot=trace-line]]: *:has-[>[data-slot=trace-line]]: flex w-full min-w-0 flex-col gap-2 *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-sm *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none", className),
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function TraceLine({ className, status, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
19
|
+
"data-slot": "trace-line",
|
|
20
|
+
"data-status": status,
|
|
21
|
+
className: (0, cn.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),
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function TraceIcon({ className, ...props }) {
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
27
|
+
"data-slot": "trace-icon",
|
|
28
|
+
"aria-hidden": "true",
|
|
29
|
+
className: (0, cn.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),
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function TraceTitle({ className, ...props }) {
|
|
34
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
35
|
+
"data-slot": "trace-title",
|
|
36
|
+
className: (0, cn.cn)("min-w-0 truncate motion-reduce:shimmer-none", className),
|
|
37
|
+
...props
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function TraceDescription({ className, ...props }) {
|
|
41
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
42
|
+
"data-slot": "trace-description",
|
|
43
|
+
className: (0, cn.cn)("shrink-0 text-muted-foreground/70 tabular-nums", className),
|
|
44
|
+
...props
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function TraceCollapsible({ className, ...props }) {
|
|
48
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_collapsible.Collapsible, {
|
|
49
|
+
"data-slot": "trace-collapsible",
|
|
50
|
+
className: (0, cn.cn)("flex w-full min-w-0 flex-col", className),
|
|
51
|
+
...props
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function TraceCollapsibleTrigger({ className, children, ...props }) {
|
|
55
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_components_ui_collapsible.CollapsibleTrigger, {
|
|
56
|
+
"data-slot": "trace-collapsible-trigger",
|
|
57
|
+
className: (0, cn.cn)("group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left text-muted-foreground focus-ring transition-colors outline-none hover:text-foreground has-[[data-status=error]]:text-destructive", className),
|
|
58
|
+
...props,
|
|
59
|
+
children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceIcon, {
|
|
60
|
+
className: "transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90",
|
|
61
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRightIcon, {})
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function TraceCollapsibleContent({ className, children, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_collapsible.CollapsibleContent, {
|
|
67
|
+
"data-slot": "trace-collapsible-content",
|
|
68
|
+
className: "min-w-0 overflow-hidden duration-200 [--radix-accordion-content-height:var(--radix-collapsible-content-height)] data-open:animate-accordion-down data-closed:animate-accordion-up",
|
|
69
|
+
...props,
|
|
70
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
71
|
+
"data-slot": "trace-collapsible-content-inner",
|
|
72
|
+
className: (0, cn.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),
|
|
73
|
+
children
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
exports.Trace = Trace;
|
|
78
|
+
exports.TraceCollapsible = TraceCollapsible;
|
|
79
|
+
exports.TraceCollapsibleContent = TraceCollapsibleContent;
|
|
80
|
+
exports.TraceCollapsibleTrigger = TraceCollapsibleTrigger;
|
|
81
|
+
exports.TraceDescription = TraceDescription;
|
|
82
|
+
exports.TraceIcon = TraceIcon;
|
|
83
|
+
exports.TraceLine = TraceLine;
|
|
84
|
+
exports.TraceTitle = TraceTitle;
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=trace.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.cjs","names":["Collapsible","CollapsibleTrigger","ChevronRightIcon","CollapsibleContent"],"sources":["../../../src/components/ui/trace.tsx"],"sourcesContent":["import { cn } from 'cn';\nimport { ChevronRightIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible';\n\nfunction Trace({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"trace\"\n className={cn(\n '*:has-[>[data-slot=trace-line]]: *:has-[>[data-slot=trace-line]]: flex w-full min-w-0 flex-col gap-2 *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-sm *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceLine({\n className,\n status,\n ...props\n}: React.ComponentProps<'span'> & {\n status?: 'running' | 'error' | 'pending';\n}) {\n return (\n <span\n data-slot=\"trace-line\"\n data-status={status}\n className={cn(\n 'flex w-fit max-w-full min-w-0 items-center gap-2 text-sm text-muted-foreground transition-colors in-[a,button]:cursor-pointer in-[a:hover,button:hover]:text-foreground data-[status=error]:text-destructive data-[status=error]:in-[a:hover,button:hover]:text-destructive data-[status=pending]:opacity-60 data-[status=running]:*:data-[slot=trace-title]:shimmer',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceIcon({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-icon\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-4 shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [[data-slot=trace-title]~&]:-ml-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TraceTitle({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-title\"\n className={cn('min-w-0 truncate motion-reduce:shimmer-none', className)}\n {...props}\n />\n );\n}\n\nfunction TraceDescription({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"trace-description\"\n className={cn('shrink-0 text-muted-foreground/70 tabular-nums', className)}\n {...props}\n />\n );\n}\n\nfunction TraceCollapsible({\n className,\n ...props\n}: Omit<React.ComponentProps<typeof Collapsible>, 'asChild' | 'open'> &\n (\n | { open?: undefined }\n | {\n open: boolean;\n onOpenChange: NonNullable<React.ComponentProps<typeof Collapsible>['onOpenChange']>;\n }\n )) {\n return (\n <Collapsible\n data-slot=\"trace-collapsible\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction TraceCollapsibleTrigger({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof CollapsibleTrigger>, 'asChild'>) {\n return (\n <CollapsibleTrigger\n data-slot=\"trace-collapsible-trigger\"\n className={cn(\n 'group/trace-collapsible-trigger flex w-fit max-w-full min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left text-muted-foreground focus-ring transition-colors outline-none hover:text-foreground has-[[data-status=error]]:text-destructive',\n className,\n )}\n {...props}\n >\n {children}\n <TraceIcon className=\"transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90\">\n <ChevronRightIcon />\n </TraceIcon>\n </CollapsibleTrigger>\n );\n}\n\nfunction TraceCollapsibleContent({\n className,\n children,\n ...props\n}: Omit<React.ComponentProps<typeof CollapsibleContent>, 'asChild'>) {\n return (\n <CollapsibleContent\n data-slot=\"trace-collapsible-content\"\n className=\"min-w-0 overflow-hidden duration-200 [--radix-accordion-content-height:var(--radix-collapsible-content-height)] data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n data-slot=\"trace-collapsible-content-inner\"\n className={cn(\n 'mt-2 mb-1 ml-[calc(--spacing(2)-1px)] min-w-0 border-l pr-1 pl-4 leading-relaxed wrap-break-word text-muted-foreground',\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n );\n}\n\nexport {\n Trace,\n TraceLine,\n TraceIcon,\n TraceTitle,\n TraceDescription,\n TraceCollapsible,\n TraceCollapsibleTrigger,\n TraceCollapsibleContent,\n};\n"],"mappings":";;;;;;;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;CACnE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,wYACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EACjB,WACA,QACA,GAAG,SAGF;CACD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,eAAa;EACb,YAAA,GAAW,GAAA,GAAA,CACT,wWACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAuC;CACxE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,eAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CACT,uJACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAuC;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,+CAA+C,SAAS;EACtE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAuC;CAC/E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,kDAAkD,SAAS;EACzE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SAQA;CACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,kCAAAA,aAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,gCAAgC,SAAS;EACvD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,kCAAAA,oBAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,yPACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;GAAW,WAAU;GACnB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,kBAAD,CAAmB,CAAA;EACV,CAAA,CACO;;AAExB;AAEA,SAAS,wBAAwB,EAC/B,WACA,UACA,GAAG,SACgE;CACnE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kCAAAA,oBAAD;EACE,aAAU;EACV,WAAU;EACV,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,aAAU;GACV,YAAA,GAAW,GAAA,GAAA,CACT,0HACA,SACF;GAEC;EACE,CAAA;CACa,CAAA;AAExB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible.cjs';
|
|
3
|
+
declare function Trace({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
4
|
+
declare function TraceLine({ className, status, ...props }: React.ComponentProps<'span'> & {
|
|
5
|
+
status?: 'running' | 'error' | 'pending';
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
declare function TraceIcon({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
8
|
+
declare function TraceTitle({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
9
|
+
declare function TraceDescription({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
10
|
+
declare function TraceCollapsible({ className, ...props }: Omit<React.ComponentProps<typeof Collapsible>, 'asChild' | 'open'> & ({
|
|
11
|
+
open?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
open: boolean;
|
|
14
|
+
onOpenChange: NonNullable<React.ComponentProps<typeof Collapsible>['onOpenChange']>;
|
|
15
|
+
})): React.JSX.Element;
|
|
16
|
+
declare function TraceCollapsibleTrigger({ className, children, ...props }: Omit<React.ComponentProps<typeof CollapsibleTrigger>, 'asChild'>): React.JSX.Element;
|
|
17
|
+
declare function TraceCollapsibleContent({ className, children, ...props }: Omit<React.ComponentProps<typeof CollapsibleContent>, 'asChild'>): React.JSX.Element;
|
|
18
|
+
export { Trace, TraceLine, TraceIcon, TraceTitle, TraceDescription, TraceCollapsible, TraceCollapsibleTrigger, TraceCollapsibleContent, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-highlighted-code.d.ts","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-highlighted-code.d.ts","sourceRoot":"","sources":["../../src/hooks/use-highlighted-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kXAmEjE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { loadHighlighter } from "@/lib/highlighter";
|
|
4
|
+
// src/hooks/use-highlighted-code.ts
|
|
5
|
+
function useHighlightedCode(value, language) {
|
|
6
|
+
const code = value.endsWith("\n") ? value.slice(0, -1) : value;
|
|
7
|
+
const [loaded, setLoaded] = React.useState(null);
|
|
8
|
+
const highlighter = loaded?.language === language ? loaded.highlighter : null;
|
|
9
|
+
React.useEffect(() => {
|
|
10
|
+
let cancelled = false;
|
|
11
|
+
loadHighlighter(language).then((next) => {
|
|
12
|
+
if (!cancelled) setLoaded({
|
|
13
|
+
language,
|
|
14
|
+
highlighter: next
|
|
15
|
+
});
|
|
16
|
+
}).catch(() => {});
|
|
17
|
+
return () => {
|
|
18
|
+
cancelled = true;
|
|
19
|
+
};
|
|
20
|
+
}, [language]);
|
|
21
|
+
const [done, setDone] = React.useState({
|
|
22
|
+
highlighter: null,
|
|
23
|
+
text: "",
|
|
24
|
+
lines: []
|
|
25
|
+
});
|
|
26
|
+
let next = done;
|
|
27
|
+
if (next.highlighter !== highlighter || !code.startsWith(next.text)) next = {
|
|
28
|
+
highlighter,
|
|
29
|
+
text: "",
|
|
30
|
+
lines: []
|
|
31
|
+
};
|
|
32
|
+
const end = code.lastIndexOf("\n") + 1;
|
|
33
|
+
if (highlighter && end > next.text.length) {
|
|
34
|
+
const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);
|
|
35
|
+
next = {
|
|
36
|
+
highlighter,
|
|
37
|
+
text: code.slice(0, end),
|
|
38
|
+
lines: [...next.lines, ...result.lines],
|
|
39
|
+
state: result.state
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if (next !== done) setDone(next);
|
|
43
|
+
const tail = code.slice(end);
|
|
44
|
+
return React.useMemo(() => {
|
|
45
|
+
if (!highlighter) return code.split("\n");
|
|
46
|
+
return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];
|
|
47
|
+
}, [
|
|
48
|
+
code,
|
|
49
|
+
highlighter,
|
|
50
|
+
next,
|
|
51
|
+
tail
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
export { useHighlightedCode };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=use-highlighted-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-highlighted-code.js","names":[],"sources":["../../src/hooks/use-highlighted-code.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { loadHighlighter } from '@/lib/highlighter';\n\nexport function useHighlightedCode(value: string, language: string) {\n // A trailing newline would render as an extra empty line.\n const code = value.endsWith('\\n') ? value.slice(0, -1) : value;\n const [loaded, setLoaded] = React.useState<{\n language: string;\n highlighter: Awaited<ReturnType<typeof loadHighlighter>>;\n } | null>(null);\n const highlighter = loaded?.language === language ? loaded.highlighter : null;\n\n React.useEffect(() => {\n let cancelled = false;\n\n loadHighlighter(language)\n .then((next) => {\n if (!cancelled) {\n setLoaded({ language, highlighter: next });\n }\n })\n .catch(() => {});\n\n return () => {\n cancelled = true;\n };\n }, [language]);\n\n // The complete lines, highlighted. While the code streams, only the new\n // lines are tokenized, starting from the grammar state of the last one.\n const [done, setDone] = React.useState<{\n highlighter: typeof highlighter;\n text: string;\n lines: React.ReactNode[];\n state?: Parameters<NonNullable<typeof highlighter>['highlight']>[1];\n }>({ highlighter: null, text: '', lines: [] });\n\n let next = done;\n\n if (next.highlighter !== highlighter || !code.startsWith(next.text)) {\n next = { highlighter, text: '', lines: [] };\n }\n\n const end = code.lastIndexOf('\\n') + 1;\n\n if (highlighter && end > next.text.length) {\n const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);\n\n next = {\n highlighter,\n text: code.slice(0, end),\n lines: [...next.lines, ...result.lines],\n state: result.state,\n };\n }\n\n if (next !== done) {\n setDone(next);\n }\n\n // The last line is still being written, so it is tokenized on every render.\n const tail = code.slice(end);\n\n return React.useMemo(() => {\n if (!highlighter) {\n return code.split('\\n');\n }\n\n return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];\n }, [code, highlighter, next, tail]);\n}\n"],"mappings":";;;;AAMA,SAAgB,mBAAmB,OAAe,UAAkB;CAElE,MAAM,OAAO,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;CACzD,MAAM,CAAC,QAAQ,aAAa,MAAM,SAGxB,IAAI;CACd,MAAM,cAAc,QAAQ,aAAa,WAAW,OAAO,cAAc;CAEzE,MAAM,gBAAgB;EACpB,IAAI,YAAY;EAEhB,gBAAgB,QAAQ,CAAC,CACtB,MAAM,SAAS;GACd,IAAI,CAAC,WACH,UAAU;IAAE;IAAU,aAAa;GAAK,CAAC;EAE7C,CAAC,CAAC,CACD,YAAY,CAAC,CAAC;EAEjB,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,QAAQ,CAAC;CAIb,MAAM,CAAC,MAAM,WAAW,MAAM,SAK3B;EAAE,aAAa;EAAM,MAAM;EAAI,OAAO,CAAC;CAAE,CAAC;CAE7C,IAAI,OAAO;CAEX,IAAI,KAAK,gBAAgB,eAAe,CAAC,KAAK,WAAW,KAAK,IAAI,GAChE,OAAO;EAAE;EAAa,MAAM;EAAI,OAAO,CAAC;CAAE;CAG5C,MAAM,MAAM,KAAK,YAAY,IAAI,IAAI;CAErC,IAAI,eAAe,MAAM,KAAK,KAAK,QAAQ;EACzC,MAAM,SAAS,YAAY,UAAU,KAAK,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC,GAAG,KAAK,KAAK;EAEtF,OAAO;GACL;GACA,MAAM,KAAK,MAAM,GAAG,GAAG;GACvB,OAAO,CAAC,GAAG,KAAK,OAAO,GAAG,OAAO,KAAK;GACtC,OAAO,OAAO;EAChB;CACF;CAEA,IAAI,SAAS,MACX,QAAQ,IAAI;CAId,MAAM,OAAO,KAAK,MAAM,GAAG;CAE3B,OAAO,MAAM,cAAc;EACzB,IAAI,CAAC,aACH,OAAO,KAAK,MAAM,IAAI;EAGxB,OAAO,CAAC,GAAG,KAAK,OAAO,YAAY,UAAU,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE;CACzE,GAAG;EAAC;EAAM;EAAa;EAAM;CAAI,CAAC;AACpC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_rolldown_runtime = require("../chunks/rolldown-runtime-CmQyd0Gu.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_rolldown_runtime.__toESM(react, 1);
|
|
6
|
+
// src/hooks/use-mobile.ts
|
|
7
|
+
var MOBILE_BREAKPOINT = 768;
|
|
8
|
+
var QUERY = `(max-width: 767px)`;
|
|
9
|
+
function subscribe(onChange) {
|
|
10
|
+
const mql = window.matchMedia(QUERY);
|
|
11
|
+
mql.addEventListener("change", onChange);
|
|
12
|
+
return () => mql.removeEventListener("change", onChange);
|
|
13
|
+
}
|
|
14
|
+
function getSnapshot() {
|
|
15
|
+
return window.innerWidth < MOBILE_BREAKPOINT;
|
|
16
|
+
}
|
|
17
|
+
/** `false` on the server and during hydration, then the real viewport. */
|
|
18
|
+
function getServerSnapshot() {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
function useIsMobile() {
|
|
22
|
+
return react.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
23
|
+
}
|
|
24
|
+
exports.useIsMobile = useIsMobile;
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=use-mobile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.cjs","names":["React"],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\nconst QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;\n\nfunction subscribe(onChange: () => void) {\n const mql = window.matchMedia(QUERY);\n mql.addEventListener('change', onChange);\n\n return () => mql.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n return window.innerWidth < MOBILE_BREAKPOINT;\n}\n\n/** `false` on the server and during hydration, then the real viewport. */\nfunction getServerSnapshot() {\n return false;\n}\n\nexport function useIsMobile() {\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n"],"mappings":";;;;;;AAIA,IAAM,oBAAoB;AAC1B,IAAM,QAAQ;AAEd,SAAS,UAAU,UAAsB;CACvC,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,IAAI,iBAAiB,UAAU,QAAQ;CAEvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,cAAc;CACrB,OAAO,OAAO,aAAa;AAC7B;;AAGA,SAAS,oBAAoB;CAC3B,OAAO;AACT;AAEA,SAAgB,cAAc;CAC5B,OAAOA,MAAM,qBAAqB,WAAW,aAAa,iBAAiB;AAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useIsMobile(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAuBA,wBAAgB,WAAW,YAE1B"}
|
package/dist/hooks/use-mobile.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mobile.js","names":[],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"use-mobile.js","names":[],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\nconst QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;\n\nfunction subscribe(onChange: () => void) {\n const mql = window.matchMedia(QUERY);\n mql.addEventListener('change', onChange);\n\n return () => mql.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n return window.innerWidth < MOBILE_BREAKPOINT;\n}\n\n/** `false` on the server and during hydration, then the real viewport. */\nfunction getServerSnapshot() {\n return false;\n}\n\nexport function useIsMobile() {\n return React.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n"],"mappings":";;;AAIA,IAAM,oBAAoB;AAC1B,IAAM,QAAQ;AAEd,SAAS,UAAU,UAAsB;CACvC,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,IAAI,iBAAiB,UAAU,QAAQ;CAEvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,cAAc;CACrB,OAAO,OAAO,aAAa;AAC7B;;AAGA,SAAS,oBAAoB;CAC3B,OAAO;AACT;AAEA,SAAgB,cAAc;CAC5B,OAAO,MAAM,qBAAqB,WAAW,aAAa,iBAAiB;AAC7E"}
|