@gram-ai/elements 1.27.3 → 1.27.5
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 +72 -60
- package/README.typedoc.md +6 -6
- package/bin/cli.js +74 -74
- package/dist/compat-shims-CO9JXXV4.cjs.map +1 -1
- package/dist/{compat-shims-BPJ7Q68c.js → compat-shims-DxtUrORi.js} +4 -2
- package/dist/compat-shims-DxtUrORi.js.map +1 -0
- package/dist/components/ShareButton/index.d.ts +2 -2
- package/dist/components/assistant-ui/message-feedback.d.ts +1 -1
- package/dist/components/assistant-ui/tooltip-icon-button.d.ts +2 -2
- package/dist/components/ui/avatar.d.ts +2 -2
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/calendar.d.ts +1 -1
- package/dist/components/ui/collapsible.d.ts +1 -1
- package/dist/components/ui/dialog.d.ts +4 -4
- package/dist/components/ui/popover.d.ts +2 -2
- package/dist/components/ui/skeleton.d.ts +1 -1
- package/dist/components/ui/time-range-picker.d.ts +4 -2
- package/dist/components/ui/tool-ui.d.ts +7 -7
- package/dist/components/ui/tooltip.d.ts +2 -2
- package/dist/contexts/ConnectionStatusContext.d.ts +1 -1
- package/dist/elements.cjs +1 -1
- package/dist/elements.css +1 -1
- package/dist/elements.js +2 -2
- package/dist/hooks/useDensity.d.ts +73 -73
- package/dist/hooks/useMCPTools.d.ts +1 -1
- package/dist/hooks/useRadius.d.ts +1 -1
- package/dist/{index-BpJstUh1.cjs → index-C4bFBGfl.cjs} +4 -4
- package/dist/{index-BpJstUh1.cjs.map → index-C4bFBGfl.cjs.map} +1 -1
- package/dist/{index-CUitXazZ.js → index-D93pV0_o.js} +55 -55
- package/dist/{index-CUitXazZ.js.map → index-D93pV0_o.js.map} +1 -1
- package/dist/{index-DBrhzauj.js → index-DuCQRbcQ.js} +6386 -6337
- package/dist/index-DuCQRbcQ.js.map +1 -0
- package/dist/{index-DxfW52oA.cjs → index-y_PNN5vK.cjs} +64 -46
- package/dist/index-y_PNN5vK.cjs.map +1 -0
- package/dist/lib/cassette.d.ts +4 -4
- package/dist/lib/errorTracking.d.ts +1 -1
- package/dist/lib/messageConverter.d.ts +1 -1
- package/dist/lib/models.d.ts +1 -1
- package/dist/plugins/chart/ui/bar-chart.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/accordion-wrapper.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/accordion.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/action-button.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/alert-wrapper.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/alert.d.ts +4 -4
- package/dist/plugins/generative-ui/ui/avatar.d.ts +5 -5
- package/dist/plugins/generative-ui/ui/badge.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/button-wrapper.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/button.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/card-wrapper.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/card.d.ts +8 -8
- package/dist/plugins/generative-ui/ui/checkbox.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/data-table.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/dialog.d.ts +3 -3
- package/dist/plugins/generative-ui/ui/dropdown-menu.d.ts +3 -3
- package/dist/plugins/generative-ui/ui/grid.d.ts +3 -3
- package/dist/plugins/generative-ui/ui/input-wrapper.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/input.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/label.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/metric.d.ts +3 -3
- package/dist/plugins/generative-ui/ui/pagination.d.ts +6 -6
- package/dist/plugins/generative-ui/ui/popover.d.ts +4 -4
- package/dist/plugins/generative-ui/ui/progress.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/radio-group.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/select.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/separator.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/skeleton.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/stack.d.ts +6 -6
- package/dist/plugins/generative-ui/ui/switch.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/table.d.ts +9 -9
- package/dist/plugins/generative-ui/ui/tabs-wrapper.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/tabs.d.ts +1 -1
- package/dist/plugins/generative-ui/ui/text.d.ts +3 -3
- package/dist/plugins/generative-ui/ui/textarea.d.ts +2 -2
- package/dist/plugins/generative-ui/ui/tooltip.d.ts +1 -1
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.js +1 -1
- package/dist/{profiler-D6ndqfsd.js → profiler-FpBY9eRv.js} +2 -2
- package/dist/{profiler-D6ndqfsd.js.map → profiler-FpBY9eRv.js.map} +1 -1
- package/dist/{profiler-DhnzZ34c.cjs → profiler-_mthyjvo.cjs} +2 -2
- package/dist/{profiler-DhnzZ34c.cjs.map → profiler-_mthyjvo.cjs.map} +1 -1
- package/dist/react-shim.js +1 -1
- package/dist/server/express.cjs.map +1 -1
- package/dist/server/express.js.map +1 -1
- package/dist/{startRecording-BwXmdmy1.cjs → startRecording-NJcpiHw-.cjs} +2 -2
- package/dist/{startRecording-BwXmdmy1.cjs.map → startRecording-NJcpiHw-.cjs.map} +1 -1
- package/dist/{startRecording-B_9CRZ_P.js → startRecording-r5MXQ2Dm.js} +2 -2
- package/dist/{startRecording-B_9CRZ_P.js.map → startRecording-r5MXQ2Dm.js.map} +1 -1
- package/dist/types/index.d.ts +2 -2
- package/package.json +1 -5
- package/src/compat-plugin.ts +14 -14
- package/src/compat-shims.ts +33 -31
- package/src/compat.test.ts +48 -48
- package/src/compat.ts +6 -6
- package/src/components/Chat/index.tsx +17 -17
- package/src/components/Chat/stories/Charts.stories.tsx +98 -98
- package/src/components/Chat/stories/Composer.stories.tsx +15 -15
- package/src/components/Chat/stories/ConnectionConfiguration.stories.tsx +44 -44
- package/src/components/Chat/stories/CustomComponents.stories.tsx +17 -17
- package/src/components/Chat/stories/Density.stories.tsx +20 -20
- package/src/components/Chat/stories/ErrorBoundary.stories.tsx +47 -47
- package/src/components/Chat/stories/FrontendTools.stories.tsx +39 -39
- package/src/components/Chat/stories/GenerativeUI.stories.tsx +48 -48
- package/src/components/Chat/stories/MessageFeedback.stories.tsx +52 -52
- package/src/components/Chat/stories/Modal.stories.tsx +28 -28
- package/src/components/Chat/stories/Model.stories.tsx +11 -11
- package/src/components/Chat/stories/Radius.stories.tsx +20 -20
- package/src/components/Chat/stories/Sidecar.stories.tsx +13 -13
- package/src/components/Chat/stories/StyleIsolation.stories.tsx +11 -11
- package/src/components/Chat/stories/Theme.stories.tsx +25 -25
- package/src/components/Chat/stories/Thread.stories.tsx +25 -25
- package/src/components/Chat/stories/ToolApproval.stories.tsx +55 -55
- package/src/components/Chat/stories/ToolMentions.stories.tsx +17 -17
- package/src/components/Chat/stories/Tools.stories.tsx +88 -88
- package/src/components/Chat/stories/Variants.stories.tsx +32 -32
- package/src/components/Chat/stories/Welcome.stories.tsx +14 -14
- package/src/components/ChatHistory.tsx +7 -7
- package/src/components/FrontendTools/index.tsx +5 -5
- package/src/components/Replay.stories.tsx +157 -157
- package/src/components/Replay.tsx +76 -73
- package/src/components/ShadowRoot.tsx +40 -40
- package/src/components/ShareButton/index.tsx +32 -32
- package/src/components/assistant-ui/assistant-modal.tsx +92 -87
- package/src/components/assistant-ui/assistant-sidecar.tsx +35 -35
- package/src/components/assistant-ui/attachment.tsx +80 -80
- package/src/components/assistant-ui/connection-status-indicator.tsx +33 -33
- package/src/components/assistant-ui/error-boundary.tsx +34 -34
- package/src/components/assistant-ui/follow-on-suggestions.tsx +26 -26
- package/src/components/assistant-ui/markdown-text.tsx +69 -69
- package/src/components/assistant-ui/mentioned-tools-badges.tsx +38 -38
- package/src/components/assistant-ui/message-feedback.tsx +74 -61
- package/src/components/assistant-ui/reasoning.tsx +83 -83
- package/src/components/assistant-ui/thread-list.tsx +45 -45
- package/src/components/assistant-ui/thread.tsx +278 -278
- package/src/components/assistant-ui/tool-fallback.tsx +37 -37
- package/src/components/assistant-ui/tool-group.tsx +26 -26
- package/src/components/assistant-ui/tool-mention-autocomplete.tsx +122 -122
- package/src/components/assistant-ui/tooltip-icon-button.tsx +18 -18
- package/src/components/ui/avatar.tsx +12 -12
- package/src/components/ui/button.tsx +12 -12
- package/src/components/ui/buttonVariants.ts +17 -17
- package/src/components/ui/calendar.tsx +106 -106
- package/src/components/ui/charts.stories.tsx +56 -56
- package/src/components/ui/collapsible.tsx +5 -5
- package/src/components/ui/dialog.tsx +30 -30
- package/src/components/ui/generative-ui.stories.tsx +200 -200
- package/src/components/ui/generative-ui.tsx +26 -26
- package/src/components/ui/popover.tsx +14 -14
- package/src/components/ui/skeleton.tsx +5 -5
- package/src/components/ui/time-range-picker.stories.tsx +80 -80
- package/src/components/ui/time-range-picker.tsx +272 -235
- package/src/components/ui/tool-ui.stories.tsx +37 -37
- package/src/components/ui/tool-ui.tsx +221 -215
- package/src/components/ui/tooltip.tsx +15 -15
- package/src/constants/tailwind.ts +1 -1
- package/src/contexts/ChatIdContext.tsx +7 -7
- package/src/contexts/ConnectionStatusContext.tsx +64 -64
- package/src/contexts/ElementsProvider.tsx +222 -211
- package/src/contexts/ReplayContext.ts +3 -3
- package/src/contexts/ToolApprovalContext.tsx +54 -54
- package/src/contexts/ToolExecutionContext.tsx +34 -34
- package/src/contexts/contexts.ts +7 -7
- package/src/contexts/portal-container-context.ts +2 -2
- package/src/contexts/portal-container.tsx +7 -7
- package/src/embedded.ts +1 -1
- package/src/global.css +25 -25
- package/src/hooks/useAuth.ts +72 -72
- package/src/hooks/useDensity.ts +79 -79
- package/src/hooks/useElements.ts +6 -6
- package/src/hooks/useExpanded.ts +12 -12
- package/src/hooks/useFollowOnSuggestions.ts +87 -82
- package/src/hooks/useGramThreadListAdapter.tsx +99 -99
- package/src/hooks/useMCPTools.ts +47 -47
- package/src/hooks/useModel.ts +14 -14
- package/src/hooks/usePluginComponents.ts +11 -11
- package/src/hooks/usePortalContainer.ts +5 -5
- package/src/hooks/useRadius.ts +23 -23
- package/src/hooks/useRecordCassette.ts +34 -34
- package/src/hooks/useSession.ts +11 -11
- package/src/hooks/useThemeProps.ts +13 -13
- package/src/hooks/useThreadId.ts +4 -4
- package/src/hooks/useToolApproval.ts +7 -7
- package/src/hooks/useToolMentions.ts +40 -40
- package/src/index.ts +26 -26
- package/src/lib/api.test.ts +61 -61
- package/src/lib/api.ts +4 -3
- package/src/lib/auth.ts +13 -13
- package/src/lib/cassette.ts +84 -84
- package/src/lib/easing.ts +1 -1
- package/src/lib/errorTracking.config.ts +5 -5
- package/src/lib/errorTracking.ts +29 -29
- package/src/lib/generative-ui.ts +7 -7
- package/src/lib/humanize.ts +3 -3
- package/src/lib/messageConverter.test.ts +130 -127
- package/src/lib/messageConverter.ts +196 -196
- package/src/lib/models.ts +21 -20
- package/src/lib/token.test.ts +56 -56
- package/src/lib/token.ts +14 -14
- package/src/lib/tool-mentions.ts +45 -45
- package/src/lib/tools.ts +66 -62
- package/src/lib/utils.ts +5 -5
- package/src/lib.d.ts +1 -1
- package/src/plugins/README.md +5 -5
- package/src/plugins/chart/catalog.ts +18 -18
- package/src/plugins/chart/chart.test.ts +31 -31
- package/src/plugins/chart/component.tsx +34 -34
- package/src/plugins/chart/index.ts +4 -4
- package/src/plugins/chart/ui/area-chart.tsx +42 -42
- package/src/plugins/chart/ui/bar-chart.tsx +46 -46
- package/src/plugins/chart/ui/donut-chart.tsx +48 -48
- package/src/plugins/chart/ui/index.ts +7 -7
- package/src/plugins/chart/ui/line-chart.tsx +43 -43
- package/src/plugins/chart/ui/pie-chart.tsx +44 -44
- package/src/plugins/chart/ui/radar-chart.tsx +33 -33
- package/src/plugins/chart/ui/scatter-chart.tsx +43 -43
- package/src/plugins/components/MacOSWindowFrame.tsx +15 -15
- package/src/plugins/components/PluginLoadingState.tsx +10 -10
- package/src/plugins/components/index.ts +1 -1
- package/src/plugins/generative-ui/catalog.ts +54 -54
- package/src/plugins/generative-ui/component.tsx +85 -85
- package/src/plugins/generative-ui/index.ts +4 -4
- package/src/plugins/generative-ui/ui/accordion-wrapper.tsx +16 -16
- package/src/plugins/generative-ui/ui/accordion.tsx +16 -16
- package/src/plugins/generative-ui/ui/action-button.tsx +28 -28
- package/src/plugins/generative-ui/ui/alert-wrapper.tsx +8 -8
- package/src/plugins/generative-ui/ui/alert.tsx +20 -20
- package/src/plugins/generative-ui/ui/avatar-wrapper.tsx +7 -7
- package/src/plugins/generative-ui/ui/avatar.tsx +30 -30
- package/src/plugins/generative-ui/ui/badge.tsx +22 -22
- package/src/plugins/generative-ui/ui/button-wrapper.tsx +12 -12
- package/src/plugins/generative-ui/ui/button.tsx +28 -28
- package/src/plugins/generative-ui/ui/card-wrapper.tsx +8 -8
- package/src/plugins/generative-ui/ui/card.tsx +27 -27
- package/src/plugins/generative-ui/ui/checkbox-wrapper.tsx +9 -9
- package/src/plugins/generative-ui/ui/checkbox.tsx +9 -9
- package/src/plugins/generative-ui/ui/data-table.tsx +8 -8
- package/src/plugins/generative-ui/ui/dialog.tsx +31 -31
- package/src/plugins/generative-ui/ui/dropdown-menu.tsx +44 -44
- package/src/plugins/generative-ui/ui/grid.tsx +12 -12
- package/src/plugins/generative-ui/ui/index.ts +40 -40
- package/src/plugins/generative-ui/ui/input-wrapper.tsx +11 -11
- package/src/plugins/generative-ui/ui/input.tsx +9 -9
- package/src/plugins/generative-ui/ui/label.tsx +8 -8
- package/src/plugins/generative-ui/ui/list.tsx +11 -11
- package/src/plugins/generative-ui/ui/metric.tsx +23 -23
- package/src/plugins/generative-ui/ui/pagination.tsx +28 -28
- package/src/plugins/generative-ui/ui/popover.tsx +21 -21
- package/src/plugins/generative-ui/ui/progress.tsx +13 -13
- package/src/plugins/generative-ui/ui/radio-group.tsx +12 -12
- package/src/plugins/generative-ui/ui/select-wrapper.tsx +7 -7
- package/src/plugins/generative-ui/ui/select.tsx +37 -37
- package/src/plugins/generative-ui/ui/separator.tsx +9 -9
- package/src/plugins/generative-ui/ui/skeleton-wrapper.tsx +10 -10
- package/src/plugins/generative-ui/ui/skeleton.tsx +5 -5
- package/src/plugins/generative-ui/ui/stack.tsx +28 -28
- package/src/plugins/generative-ui/ui/switch.tsx +11 -11
- package/src/plugins/generative-ui/ui/table.tsx +32 -32
- package/src/plugins/generative-ui/ui/tabs-wrapper.tsx +11 -11
- package/src/plugins/generative-ui/ui/tabs.tsx +26 -26
- package/src/plugins/generative-ui/ui/text.tsx +12 -12
- package/src/plugins/generative-ui/ui/textarea.tsx +7 -7
- package/src/plugins/generative-ui/ui/tooltip.tsx +12 -12
- package/src/plugins/index.ts +7 -7
- package/src/react-shim.ts +6 -6
- package/src/server/bun.ts +12 -12
- package/src/server/core.ts +25 -25
- package/src/server/express.ts +17 -15
- package/src/server/fastify.ts +14 -14
- package/src/server/hono.ts +9 -9
- package/src/server/nextjs.ts +12 -12
- package/src/server/tanstack-start.ts +12 -12
- package/src/server.ts +27 -27
- package/src/storybook.d.ts +4 -4
- package/src/types/index.ts +122 -122
- package/src/types/plugins.ts +7 -7
- package/src/vite-env.d.ts +12 -12
- package/dist/compat-shims-BPJ7Q68c.js.map +0 -1
- package/dist/index-DBrhzauj.js.map +0 -1
- package/dist/index-DxfW52oA.cjs.map +0 -1
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import {
|
|
3
3
|
ChevronLeftIcon,
|
|
4
4
|
ChevronRightIcon,
|
|
5
5
|
MoreHorizontalIcon,
|
|
6
|
-
} from
|
|
6
|
+
} from "lucide-react";
|
|
7
7
|
|
|
8
|
-
import { cn } from
|
|
9
|
-
import { buttonVariants, Button } from
|
|
8
|
+
import { cn } from "@/lib/utils";
|
|
9
|
+
import { buttonVariants, Button } from "./button";
|
|
10
10
|
|
|
11
|
-
function Pagination({ className, ...props }: React.ComponentProps<
|
|
11
|
+
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
|
|
12
12
|
return (
|
|
13
13
|
<nav
|
|
14
14
|
role="navigation"
|
|
15
15
|
aria-label="pagination"
|
|
16
16
|
data-slot="pagination"
|
|
17
|
-
className={cn(
|
|
17
|
+
className={cn("mx-auto flex w-full justify-center", className)}
|
|
18
18
|
{...props}
|
|
19
19
|
/>
|
|
20
|
-
)
|
|
20
|
+
);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
function PaginationContent({
|
|
24
24
|
className,
|
|
25
25
|
...props
|
|
26
|
-
}: React.ComponentProps<
|
|
26
|
+
}: React.ComponentProps<"ul">) {
|
|
27
27
|
return (
|
|
28
28
|
<ul
|
|
29
29
|
data-slot="pagination-content"
|
|
30
|
-
className={cn(
|
|
30
|
+
className={cn("flex flex-row items-center gap-1", className)}
|
|
31
31
|
{...props}
|
|
32
32
|
/>
|
|
33
|
-
)
|
|
33
|
+
);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
function PaginationItem({ ...props }: React.ComponentProps<
|
|
37
|
-
return <li data-slot="pagination-item" {...props}
|
|
36
|
+
function PaginationItem({ ...props }: React.ComponentProps<"li">) {
|
|
37
|
+
return <li data-slot="pagination-item" {...props} />;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
type PaginationLinkProps = {
|
|
41
|
-
isActive?: boolean
|
|
42
|
-
} & Pick<React.ComponentProps<typeof Button>,
|
|
43
|
-
React.ComponentProps<
|
|
41
|
+
isActive?: boolean;
|
|
42
|
+
} & Pick<React.ComponentProps<typeof Button>, "size"> &
|
|
43
|
+
React.ComponentProps<"a">;
|
|
44
44
|
|
|
45
45
|
function PaginationLink({
|
|
46
46
|
className,
|
|
47
47
|
isActive,
|
|
48
|
-
size =
|
|
48
|
+
size = "icon",
|
|
49
49
|
...props
|
|
50
50
|
}: PaginationLinkProps) {
|
|
51
51
|
return (
|
|
52
52
|
<a
|
|
53
|
-
aria-current={isActive ?
|
|
53
|
+
aria-current={isActive ? "page" : undefined}
|
|
54
54
|
data-slot="pagination-link"
|
|
55
55
|
data-active={isActive}
|
|
56
56
|
className={cn(
|
|
57
57
|
buttonVariants({
|
|
58
|
-
variant: isActive ?
|
|
58
|
+
variant: isActive ? "outline" : "ghost",
|
|
59
59
|
size,
|
|
60
60
|
}),
|
|
61
|
-
className
|
|
61
|
+
className,
|
|
62
62
|
)}
|
|
63
63
|
{...props}
|
|
64
64
|
/>
|
|
65
|
-
)
|
|
65
|
+
);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
function PaginationPrevious({
|
|
@@ -73,13 +73,13 @@ function PaginationPrevious({
|
|
|
73
73
|
<PaginationLink
|
|
74
74
|
aria-label="Go to previous page"
|
|
75
75
|
size="default"
|
|
76
|
-
className={cn(
|
|
76
|
+
className={cn("gap-1 px-2.5 sm:pl-2.5", className)}
|
|
77
77
|
{...props}
|
|
78
78
|
>
|
|
79
79
|
<ChevronLeftIcon />
|
|
80
80
|
<span className="hidden sm:block">Previous</span>
|
|
81
81
|
</PaginationLink>
|
|
82
|
-
)
|
|
82
|
+
);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
function PaginationNext({
|
|
@@ -90,30 +90,30 @@ function PaginationNext({
|
|
|
90
90
|
<PaginationLink
|
|
91
91
|
aria-label="Go to next page"
|
|
92
92
|
size="default"
|
|
93
|
-
className={cn(
|
|
93
|
+
className={cn("gap-1 px-2.5 sm:pr-2.5", className)}
|
|
94
94
|
{...props}
|
|
95
95
|
>
|
|
96
96
|
<span className="hidden sm:block">Next</span>
|
|
97
97
|
<ChevronRightIcon />
|
|
98
98
|
</PaginationLink>
|
|
99
|
-
)
|
|
99
|
+
);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
function PaginationEllipsis({
|
|
103
103
|
className,
|
|
104
104
|
...props
|
|
105
|
-
}: React.ComponentProps<
|
|
105
|
+
}: React.ComponentProps<"span">) {
|
|
106
106
|
return (
|
|
107
107
|
<span
|
|
108
108
|
aria-hidden
|
|
109
109
|
data-slot="pagination-ellipsis"
|
|
110
|
-
className={cn(
|
|
110
|
+
className={cn("flex size-9 items-center justify-center", className)}
|
|
111
111
|
{...props}
|
|
112
112
|
>
|
|
113
113
|
<MoreHorizontalIcon className="size-4" />
|
|
114
114
|
<span className="sr-only">More pages</span>
|
|
115
115
|
</span>
|
|
116
|
-
)
|
|
116
|
+
);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
export {
|
|
@@ -124,4 +124,4 @@ export {
|
|
|
124
124
|
PaginationPrevious,
|
|
125
125
|
PaginationNext,
|
|
126
126
|
PaginationEllipsis,
|
|
127
|
-
}
|
|
127
|
+
};
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Popover as PopoverPrimitive } from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
5
5
|
|
|
6
|
-
import { cn } from
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
7
|
|
|
8
8
|
function Popover({
|
|
9
9
|
...props
|
|
10
10
|
}: React.ComponentProps<typeof PopoverPrimitive.Root>) {
|
|
11
|
-
return <PopoverPrimitive.Root data-slot="popover" {...props}
|
|
11
|
+
return <PopoverPrimitive.Root data-slot="popover" {...props} />;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
function PopoverTrigger({
|
|
15
15
|
...props
|
|
16
16
|
}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
|
|
17
|
-
return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props}
|
|
17
|
+
return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
function PopoverContent({
|
|
21
21
|
className,
|
|
22
|
-
align =
|
|
22
|
+
align = "center",
|
|
23
23
|
sideOffset = 4,
|
|
24
24
|
...props
|
|
25
25
|
}: React.ComponentProps<typeof PopoverPrimitive.Content>) {
|
|
@@ -30,52 +30,52 @@ function PopoverContent({
|
|
|
30
30
|
align={align}
|
|
31
31
|
sideOffset={sideOffset}
|
|
32
32
|
className={cn(
|
|
33
|
-
|
|
34
|
-
className
|
|
33
|
+
"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
34
|
+
className,
|
|
35
35
|
)}
|
|
36
36
|
{...props}
|
|
37
37
|
/>
|
|
38
38
|
</PopoverPrimitive.Portal>
|
|
39
|
-
)
|
|
39
|
+
);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function PopoverAnchor({
|
|
43
43
|
...props
|
|
44
44
|
}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
|
|
45
|
-
return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props}
|
|
45
|
+
return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
function PopoverHeader({ className, ...props }: React.ComponentProps<
|
|
48
|
+
function PopoverHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
49
49
|
return (
|
|
50
50
|
<div
|
|
51
51
|
data-slot="popover-header"
|
|
52
|
-
className={cn(
|
|
52
|
+
className={cn("flex flex-col gap-1 text-sm", className)}
|
|
53
53
|
{...props}
|
|
54
54
|
/>
|
|
55
|
-
)
|
|
55
|
+
);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
function PopoverTitle({ className, ...props }: React.ComponentProps<
|
|
58
|
+
function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">) {
|
|
59
59
|
return (
|
|
60
60
|
<div
|
|
61
61
|
data-slot="popover-title"
|
|
62
|
-
className={cn(
|
|
62
|
+
className={cn("font-medium", className)}
|
|
63
63
|
{...props}
|
|
64
64
|
/>
|
|
65
|
-
)
|
|
65
|
+
);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
function PopoverDescription({
|
|
69
69
|
className,
|
|
70
70
|
...props
|
|
71
|
-
}: React.ComponentProps<
|
|
71
|
+
}: React.ComponentProps<"p">) {
|
|
72
72
|
return (
|
|
73
73
|
<p
|
|
74
74
|
data-slot="popover-description"
|
|
75
|
-
className={cn(
|
|
75
|
+
className={cn("text-muted-foreground", className)}
|
|
76
76
|
{...props}
|
|
77
77
|
/>
|
|
78
|
-
)
|
|
78
|
+
);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
export {
|
|
@@ -86,4 +86,4 @@ export {
|
|
|
86
86
|
PopoverHeader,
|
|
87
87
|
PopoverTitle,
|
|
88
88
|
PopoverDescription,
|
|
89
|
-
}
|
|
89
|
+
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Progress as ProgressPrimitive } from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Progress as ProgressPrimitive } from "radix-ui";
|
|
5
5
|
|
|
6
|
-
import { cn } from
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
7
|
|
|
8
8
|
interface ProgressProps extends Omit<
|
|
9
9
|
React.ComponentProps<typeof ProgressPrimitive.Root>,
|
|
10
|
-
|
|
10
|
+
"max"
|
|
11
11
|
> {
|
|
12
12
|
/** Label to display above the progress bar (matches LLM prompt) */
|
|
13
|
-
label?: string
|
|
13
|
+
label?: string;
|
|
14
14
|
/** Maximum value (matches LLM prompt) */
|
|
15
|
-
max?: number
|
|
15
|
+
max?: number;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function Progress({
|
|
@@ -25,10 +25,10 @@ function Progress({
|
|
|
25
25
|
const percentage =
|
|
26
26
|
value != null && max > 0
|
|
27
27
|
? Math.min(100, Math.max(0, (value / max) * 100))
|
|
28
|
-
: 0
|
|
28
|
+
: 0;
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
|
-
<div className={cn(
|
|
31
|
+
<div className={cn("w-full space-y-2", className)}>
|
|
32
32
|
{label && (
|
|
33
33
|
<div className="flex justify-between text-sm">
|
|
34
34
|
<span>{label}</span>
|
|
@@ -39,19 +39,19 @@ function Progress({
|
|
|
39
39
|
)}
|
|
40
40
|
<ProgressPrimitive.Root
|
|
41
41
|
data-slot="progress"
|
|
42
|
-
className="
|
|
42
|
+
className="relative h-2 w-full overflow-hidden rounded-full bg-primary/20"
|
|
43
43
|
value={value}
|
|
44
44
|
max={max}
|
|
45
45
|
{...props}
|
|
46
46
|
>
|
|
47
47
|
<ProgressPrimitive.Indicator
|
|
48
48
|
data-slot="progress-indicator"
|
|
49
|
-
className="
|
|
49
|
+
className="h-full w-full flex-1 bg-primary transition-all"
|
|
50
50
|
style={{ transform: `translateX(-${100 - percentage}%)` }}
|
|
51
51
|
/>
|
|
52
52
|
</ProgressPrimitive.Root>
|
|
53
53
|
</div>
|
|
54
|
-
)
|
|
54
|
+
);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
export { Progress }
|
|
57
|
+
export { Progress };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { CircleIcon } from
|
|
5
|
-
import { RadioGroup as RadioGroupPrimitive } from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { CircleIcon } from "lucide-react";
|
|
5
|
+
import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
7
|
+
import { cn } from "@/lib/utils";
|
|
8
8
|
|
|
9
9
|
function RadioGroup({
|
|
10
10
|
className,
|
|
@@ -13,10 +13,10 @@ function RadioGroup({
|
|
|
13
13
|
return (
|
|
14
14
|
<RadioGroupPrimitive.Root
|
|
15
15
|
data-slot="radio-group"
|
|
16
|
-
className={cn(
|
|
16
|
+
className={cn("grid gap-3", className)}
|
|
17
17
|
{...props}
|
|
18
18
|
/>
|
|
19
|
-
)
|
|
19
|
+
);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function RadioGroupItem({
|
|
@@ -27,8 +27,8 @@ function RadioGroupItem({
|
|
|
27
27
|
<RadioGroupPrimitive.Item
|
|
28
28
|
data-slot="radio-group-item"
|
|
29
29
|
className={cn(
|
|
30
|
-
|
|
31
|
-
className
|
|
30
|
+
"aspect-square size-4 shrink-0 rounded-full border border-input text-primary shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
31
|
+
className,
|
|
32
32
|
)}
|
|
33
33
|
{...props}
|
|
34
34
|
>
|
|
@@ -36,10 +36,10 @@ function RadioGroupItem({
|
|
|
36
36
|
data-slot="radio-group-indicator"
|
|
37
37
|
className="relative flex items-center justify-center"
|
|
38
38
|
>
|
|
39
|
-
<CircleIcon className="
|
|
39
|
+
<CircleIcon className="absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" />
|
|
40
40
|
</RadioGroupPrimitive.Indicator>
|
|
41
41
|
</RadioGroupPrimitive.Item>
|
|
42
|
-
)
|
|
42
|
+
);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export { RadioGroup, RadioGroupItem }
|
|
45
|
+
export { RadioGroup, RadioGroupItem };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
3
|
+
import * as React from "react";
|
|
4
4
|
import {
|
|
5
5
|
Select,
|
|
6
6
|
SelectTrigger,
|
|
7
7
|
SelectValue,
|
|
8
8
|
SelectContent,
|
|
9
9
|
SelectItem,
|
|
10
|
-
} from
|
|
10
|
+
} from "./select";
|
|
11
11
|
|
|
12
12
|
export interface SelectWrapperProps {
|
|
13
|
-
placeholder?: string
|
|
13
|
+
placeholder?: string;
|
|
14
14
|
/** Path for form state management (future use) */
|
|
15
|
-
valuePath: string
|
|
16
|
-
options: Array<{ value: string; label: string }
|
|
15
|
+
valuePath: string;
|
|
16
|
+
options: Array<{ value: string; label: string }>;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -37,5 +37,5 @@ export function SelectWrapper({
|
|
|
37
37
|
))}
|
|
38
38
|
</SelectContent>
|
|
39
39
|
</Select>
|
|
40
|
-
)
|
|
40
|
+
);
|
|
41
41
|
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from
|
|
5
|
-
import { Select as SelectPrimitive } from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
5
|
+
import { Select as SelectPrimitive } from "radix-ui";
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
7
|
+
import { cn } from "@/lib/utils";
|
|
8
8
|
|
|
9
9
|
function Select({
|
|
10
10
|
...props
|
|
11
11
|
}: React.ComponentProps<typeof SelectPrimitive.Root>) {
|
|
12
|
-
return <SelectPrimitive.Root data-slot="select" {...props}
|
|
12
|
+
return <SelectPrimitive.Root data-slot="select" {...props} />;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
function SelectGroup({
|
|
16
16
|
...props
|
|
17
17
|
}: React.ComponentProps<typeof SelectPrimitive.Group>) {
|
|
18
|
-
return <SelectPrimitive.Group data-slot="select-group" {...props}
|
|
18
|
+
return <SelectPrimitive.Group data-slot="select-group" {...props} />;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
function SelectValue({
|
|
22
22
|
...props
|
|
23
23
|
}: React.ComponentProps<typeof SelectPrimitive.Value>) {
|
|
24
|
-
return <SelectPrimitive.Value data-slot="select-value" {...props}
|
|
24
|
+
return <SelectPrimitive.Value data-slot="select-value" {...props} />;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
function SelectTrigger({
|
|
28
28
|
className,
|
|
29
|
-
size =
|
|
29
|
+
size = "default",
|
|
30
30
|
children,
|
|
31
31
|
...props
|
|
32
32
|
}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
|
|
33
|
-
size?:
|
|
33
|
+
size?: "sm" | "default";
|
|
34
34
|
}) {
|
|
35
35
|
return (
|
|
36
36
|
<SelectPrimitive.Trigger
|
|
37
37
|
data-slot="select-trigger"
|
|
38
38
|
data-size={size}
|
|
39
39
|
className={cn(
|
|
40
|
-
"
|
|
41
|
-
className
|
|
40
|
+
"flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
41
|
+
className,
|
|
42
42
|
)}
|
|
43
43
|
{...props}
|
|
44
44
|
>
|
|
@@ -47,14 +47,14 @@ function SelectTrigger({
|
|
|
47
47
|
<ChevronDownIcon className="size-4 opacity-50" />
|
|
48
48
|
</SelectPrimitive.Icon>
|
|
49
49
|
</SelectPrimitive.Trigger>
|
|
50
|
-
)
|
|
50
|
+
);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
function SelectContent({
|
|
54
54
|
className,
|
|
55
55
|
children,
|
|
56
|
-
position =
|
|
57
|
-
align =
|
|
56
|
+
position = "item-aligned",
|
|
57
|
+
align = "center",
|
|
58
58
|
...props
|
|
59
59
|
}: React.ComponentProps<typeof SelectPrimitive.Content>) {
|
|
60
60
|
return (
|
|
@@ -62,10 +62,10 @@ function SelectContent({
|
|
|
62
62
|
<SelectPrimitive.Content
|
|
63
63
|
data-slot="select-content"
|
|
64
64
|
className={cn(
|
|
65
|
-
|
|
66
|
-
position ===
|
|
67
|
-
|
|
68
|
-
className
|
|
65
|
+
"relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md 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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
66
|
+
position === "popper" &&
|
|
67
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
68
|
+
className,
|
|
69
69
|
)}
|
|
70
70
|
position={position}
|
|
71
71
|
align={align}
|
|
@@ -74,9 +74,9 @@ function SelectContent({
|
|
|
74
74
|
<SelectScrollUpButton />
|
|
75
75
|
<SelectPrimitive.Viewport
|
|
76
76
|
className={cn(
|
|
77
|
-
|
|
78
|
-
position ===
|
|
79
|
-
|
|
77
|
+
"p-1",
|
|
78
|
+
position === "popper" &&
|
|
79
|
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1",
|
|
80
80
|
)}
|
|
81
81
|
>
|
|
82
82
|
{children}
|
|
@@ -84,7 +84,7 @@ function SelectContent({
|
|
|
84
84
|
<SelectScrollDownButton />
|
|
85
85
|
</SelectPrimitive.Content>
|
|
86
86
|
</SelectPrimitive.Portal>
|
|
87
|
-
)
|
|
87
|
+
);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
function SelectLabel({
|
|
@@ -94,10 +94,10 @@ function SelectLabel({
|
|
|
94
94
|
return (
|
|
95
95
|
<SelectPrimitive.Label
|
|
96
96
|
data-slot="select-label"
|
|
97
|
-
className={cn(
|
|
97
|
+
className={cn("px-2 py-1.5 text-xs text-muted-foreground", className)}
|
|
98
98
|
{...props}
|
|
99
99
|
/>
|
|
100
|
-
)
|
|
100
|
+
);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
function SelectItem({
|
|
@@ -109,8 +109,8 @@ function SelectItem({
|
|
|
109
109
|
<SelectPrimitive.Item
|
|
110
110
|
data-slot="select-item"
|
|
111
111
|
className={cn(
|
|
112
|
-
"
|
|
113
|
-
className
|
|
112
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
113
|
+
className,
|
|
114
114
|
)}
|
|
115
115
|
{...props}
|
|
116
116
|
>
|
|
@@ -124,7 +124,7 @@ function SelectItem({
|
|
|
124
124
|
</span>
|
|
125
125
|
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
126
126
|
</SelectPrimitive.Item>
|
|
127
|
-
)
|
|
127
|
+
);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
function SelectSeparator({
|
|
@@ -134,10 +134,10 @@ function SelectSeparator({
|
|
|
134
134
|
return (
|
|
135
135
|
<SelectPrimitive.Separator
|
|
136
136
|
data-slot="select-separator"
|
|
137
|
-
className={cn(
|
|
137
|
+
className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
|
|
138
138
|
{...props}
|
|
139
139
|
/>
|
|
140
|
-
)
|
|
140
|
+
);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
function SelectScrollUpButton({
|
|
@@ -148,14 +148,14 @@ function SelectScrollUpButton({
|
|
|
148
148
|
<SelectPrimitive.ScrollUpButton
|
|
149
149
|
data-slot="select-scroll-up-button"
|
|
150
150
|
className={cn(
|
|
151
|
-
|
|
152
|
-
className
|
|
151
|
+
"flex cursor-default items-center justify-center py-1",
|
|
152
|
+
className,
|
|
153
153
|
)}
|
|
154
154
|
{...props}
|
|
155
155
|
>
|
|
156
156
|
<ChevronUpIcon className="size-4" />
|
|
157
157
|
</SelectPrimitive.ScrollUpButton>
|
|
158
|
-
)
|
|
158
|
+
);
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
function SelectScrollDownButton({
|
|
@@ -166,14 +166,14 @@ function SelectScrollDownButton({
|
|
|
166
166
|
<SelectPrimitive.ScrollDownButton
|
|
167
167
|
data-slot="select-scroll-down-button"
|
|
168
168
|
className={cn(
|
|
169
|
-
|
|
170
|
-
className
|
|
169
|
+
"flex cursor-default items-center justify-center py-1",
|
|
170
|
+
className,
|
|
171
171
|
)}
|
|
172
172
|
{...props}
|
|
173
173
|
>
|
|
174
174
|
<ChevronDownIcon className="size-4" />
|
|
175
175
|
</SelectPrimitive.ScrollDownButton>
|
|
176
|
-
)
|
|
176
|
+
);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
export {
|
|
@@ -187,4 +187,4 @@ export {
|
|
|
187
187
|
SelectSeparator,
|
|
188
188
|
SelectTrigger,
|
|
189
189
|
SelectValue,
|
|
190
|
-
}
|
|
190
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Separator as SeparatorPrimitive } from
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Separator as SeparatorPrimitive } from "radix-ui";
|
|
5
5
|
|
|
6
|
-
import { cn } from
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
7
|
|
|
8
8
|
function Separator({
|
|
9
9
|
className,
|
|
10
|
-
orientation =
|
|
10
|
+
orientation = "horizontal",
|
|
11
11
|
decorative = true,
|
|
12
12
|
...props
|
|
13
13
|
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
|
|
@@ -17,12 +17,12 @@ function Separator({
|
|
|
17
17
|
decorative={decorative}
|
|
18
18
|
orientation={orientation}
|
|
19
19
|
className={cn(
|
|
20
|
-
|
|
21
|
-
className
|
|
20
|
+
"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
21
|
+
className,
|
|
22
22
|
)}
|
|
23
23
|
{...props}
|
|
24
24
|
/>
|
|
25
|
-
)
|
|
25
|
+
);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
export { Separator }
|
|
28
|
+
export { Separator };
|