@codefast/ui 0.3.16-canary.2 → 0.4.0-canary.4
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/CHANGELOG.md +81 -0
- package/README.md +28 -17
- package/dist/components/accordion.d.mts +7 -22
- package/dist/components/accordion.mjs +26 -29
- package/dist/components/alert-dialog.d.mts +27 -26
- package/dist/components/alert-dialog.mjs +53 -45
- package/dist/components/alert.d.mts +14 -14
- package/dist/components/alert.mjs +17 -28
- package/dist/components/aspect-ratio.d.mts +2 -2
- package/dist/components/aspect-ratio.mjs +2 -3
- package/dist/components/avatar.d.mts +41 -5
- package/dist/components/avatar.mjs +40 -10
- package/dist/components/badge.d.mts +3 -15
- package/dist/components/badge.mjs +6 -48
- package/dist/components/breadcrumb.d.mts +1 -0
- package/dist/components/breadcrumb.mjs +11 -10
- package/dist/components/button-group.d.mts +3 -13
- package/dist/components/button-group.mjs +9 -31
- package/dist/components/button.d.mts +3 -26
- package/dist/components/button.mjs +9 -79
- package/dist/components/calendar.d.mts +6 -2
- package/dist/components/calendar.mjs +41 -44
- package/dist/components/card.d.mts +4 -2
- package/dist/components/card.mjs +9 -9
- package/dist/components/carousel.d.mts +16 -5
- package/dist/components/carousel.mjs +24 -11
- package/dist/components/chart.d.mts +9 -6
- package/dist/components/chart.mjs +21 -15
- package/dist/components/checkbox-cards.mjs +4 -4
- package/dist/components/checkbox-group.mjs +3 -4
- package/dist/components/checkbox.d.mts +2 -2
- package/dist/components/checkbox.mjs +6 -7
- package/dist/components/collapsible.d.mts +4 -4
- package/dist/components/collapsible.mjs +4 -5
- package/dist/components/command.d.mts +11 -1
- package/dist/components/command.mjs +35 -32
- package/dist/components/context-menu.d.mts +22 -15
- package/dist/components/context-menu.mjs +44 -39
- package/dist/components/dialog.d.mts +19 -23
- package/dist/components/dialog.mjs +48 -47
- package/dist/components/direction.d.mts +24 -0
- package/dist/components/direction.mjs +18 -0
- package/dist/components/drawer.d.mts +3 -21
- package/dist/components/drawer.mjs +19 -27
- package/dist/components/dropdown-menu.d.mts +22 -15
- package/dist/components/dropdown-menu.mjs +41 -37
- package/dist/components/empty.d.mts +3 -13
- package/dist/components/empty.mjs +8 -23
- package/dist/components/field.d.mts +3 -14
- package/dist/components/field.mjs +14 -44
- package/dist/components/form.d.mts +7 -10
- package/dist/components/form.mjs +6 -7
- package/dist/components/hover-card.d.mts +5 -5
- package/dist/components/hover-card.mjs +14 -12
- package/dist/components/input-group.d.mts +4 -31
- package/dist/components/input-group.mjs +14 -96
- package/dist/components/input-number.d.mts +3 -1
- package/dist/components/input-number.mjs +50 -28
- package/dist/components/input-otp.mjs +9 -7
- package/dist/components/input-password.mjs +1 -4
- package/dist/components/input-search.mjs +3 -5
- package/dist/components/input.mjs +1 -2
- package/dist/components/item.d.mts +4 -29
- package/dist/components/item.mjs +12 -65
- package/dist/components/kbd.mjs +1 -1
- package/dist/components/label.d.mts +2 -2
- package/dist/components/label.mjs +3 -4
- package/dist/components/menubar.d.mts +22 -16
- package/dist/components/menubar.mjs +54 -47
- package/dist/components/native-select.d.mts +5 -1
- package/dist/components/native-select.mjs +9 -6
- package/dist/components/navigation-menu.d.mts +30 -13
- package/dist/components/navigation-menu.mjs +35 -32
- package/dist/components/pagination.d.mts +7 -1
- package/dist/components/pagination.mjs +27 -12
- package/dist/components/popover.d.mts +40 -7
- package/dist/components/popover.mjs +46 -14
- package/dist/components/progress-circle.d.mts +3 -47
- package/dist/components/progress-circle.mjs +2 -48
- package/dist/components/progress.d.mts +2 -2
- package/dist/components/progress.mjs +5 -6
- package/dist/components/radio-cards.d.mts +3 -3
- package/dist/components/radio-cards.mjs +11 -11
- package/dist/components/radio-group.d.mts +3 -3
- package/dist/components/radio-group.mjs +9 -9
- package/dist/components/radio.mjs +2 -3
- package/dist/components/resizable.mjs +3 -8
- package/dist/components/scroll-area.d.mts +8 -24
- package/dist/components/scroll-area.mjs +16 -70
- package/dist/components/select.d.mts +14 -14
- package/dist/components/select.mjs +47 -47
- package/dist/components/separator.d.mts +4 -19
- package/dist/components/separator.mjs +6 -27
- package/dist/components/sheet.d.mts +18 -31
- package/dist/components/sheet.mjs +46 -87
- package/dist/components/sidebar.d.mts +3 -19
- package/dist/components/sidebar.mjs +48 -84
- package/dist/components/skeleton.mjs +1 -1
- package/dist/components/slider.d.mts +2 -2
- package/dist/components/slider.mjs +9 -11
- package/dist/components/sonner.mjs +11 -3
- package/dist/components/spinner.mjs +6 -7
- package/dist/components/switch.d.mts +5 -2
- package/dist/components/switch.mjs +7 -7
- package/dist/components/table.mjs +10 -10
- package/dist/components/tabs.d.mts +8 -5
- package/dist/components/tabs.mjs +18 -12
- package/dist/components/textarea.mjs +1 -1
- package/dist/components/toggle-group.d.mts +11 -7
- package/dist/components/toggle-group.mjs +20 -21
- package/dist/components/toggle.d.mts +4 -24
- package/dist/components/toggle.mjs +6 -45
- package/dist/components/tooltip.d.mts +7 -6
- package/dist/components/tooltip.mjs +19 -17
- package/dist/hooks/use-animated-value.mjs +0 -1
- package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
- package/dist/hooks/use-is-mobile.mjs +0 -1
- package/dist/hooks/use-media-query.mjs +0 -1
- package/dist/hooks/use-mutation-observer.mjs +0 -1
- package/dist/hooks/use-pagination.mjs +0 -1
- package/dist/index.d.mts +38 -21
- package/dist/index.mjs +40 -23
- package/dist/lib/utils.d.mts +1 -12
- package/dist/lib/utils.mjs +1 -9
- package/dist/primitives/checkbox-group.d.mts +9 -11
- package/dist/primitives/checkbox-group.mjs +14 -19
- package/dist/primitives/input-number.d.mts +3 -4
- package/dist/primitives/input-number.mjs +3 -5
- package/dist/primitives/input.d.mts +4 -5
- package/dist/primitives/input.mjs +2 -3
- package/dist/primitives/progress-circle.d.mts +3 -4
- package/dist/primitives/progress-circle.mjs +2 -3
- package/dist/variants/alert.d.mts +18 -0
- package/dist/variants/alert.mjs +15 -0
- package/dist/variants/badge.d.mts +22 -0
- package/dist/variants/badge.mjs +19 -0
- package/dist/variants/button-group.d.mts +18 -0
- package/dist/variants/button-group.mjs +15 -0
- package/dist/variants/button.d.mts +32 -0
- package/dist/variants/button.mjs +34 -0
- package/dist/variants/empty.d.mts +18 -0
- package/dist/variants/empty.mjs +15 -0
- package/dist/variants/field.d.mts +19 -0
- package/dist/variants/field.mjs +16 -0
- package/dist/variants/input-group.d.mts +43 -0
- package/dist/variants/input-group.mjs +34 -0
- package/dist/variants/input-number.d.mts +45 -0
- package/dist/variants/input-number.mjs +40 -0
- package/dist/variants/item.d.mts +38 -0
- package/dist/variants/item.mjs +38 -0
- package/dist/variants/navigation-menu.d.mts +13 -0
- package/dist/variants/navigation-menu.mjs +8 -0
- package/dist/variants/progress-circle.d.mts +52 -0
- package/dist/variants/progress-circle.mjs +45 -0
- package/dist/variants/scroll-area.d.mts +24 -0
- package/dist/variants/scroll-area.mjs +58 -0
- package/dist/variants/separator.d.mts +23 -0
- package/dist/variants/separator.mjs +25 -0
- package/dist/variants/sheet.d.mts +20 -0
- package/dist/variants/sheet.mjs +17 -0
- package/dist/variants/sidebar.d.mts +23 -0
- package/dist/variants/sidebar.mjs +25 -0
- package/dist/variants/tabs.d.mts +18 -0
- package/dist/variants/tabs.mjs +15 -0
- package/dist/variants/toggle.d.mts +23 -0
- package/dist/variants/toggle.mjs +25 -0
- package/package.json +186 -55
- package/src/components/accordion.tsx +114 -0
- package/src/components/alert-dialog.tsx +298 -0
- package/src/components/alert.tsx +94 -0
- package/src/components/aspect-ratio.tsx +25 -0
- package/src/components/avatar.tsx +171 -0
- package/src/components/badge.tsx +35 -0
- package/src/components/breadcrumb.tsx +191 -0
- package/src/components/button-group.tsx +97 -0
- package/src/components/button.tsx +55 -0
- package/src/components/calendar.tsx +222 -0
- package/src/components/card.tsx +169 -0
- package/src/components/carousel.tsx +349 -0
- package/src/components/chart.tsx +536 -0
- package/src/components/checkbox-cards.tsx +72 -0
- package/src/components/checkbox-group.tsx +60 -0
- package/src/components/checkbox.tsx +44 -0
- package/src/components/collapsible.tsx +57 -0
- package/src/components/command.tsx +298 -0
- package/src/components/context-menu.tsx +410 -0
- package/src/components/dialog.tsx +243 -0
- package/src/components/direction.tsx +32 -0
- package/src/components/drawer.tsx +209 -0
- package/src/components/dropdown-menu.tsx +419 -0
- package/src/components/empty.tsx +155 -0
- package/src/components/field.tsx +329 -0
- package/src/components/form.tsx +258 -0
- package/src/components/hover-card.tsx +93 -0
- package/src/components/input-group.tsx +185 -0
- package/src/components/input-number.tsx +141 -0
- package/src/components/input-otp.tsx +132 -0
- package/src/components/input-password.tsx +50 -0
- package/src/components/input-search.tsx +81 -0
- package/src/components/input.tsx +36 -0
- package/src/components/item.tsx +266 -0
- package/src/components/kbd.tsx +47 -0
- package/src/components/label.tsx +36 -0
- package/src/components/menubar.tsx +440 -0
- package/src/components/native-select.tsx +87 -0
- package/src/components/navigation-menu.tsx +235 -0
- package/src/components/pagination.tsx +198 -0
- package/src/components/popover.tsx +170 -0
- package/src/components/progress-circle.tsx +185 -0
- package/src/components/progress.tsx +41 -0
- package/src/components/radio-cards.tsx +66 -0
- package/src/components/radio-group.tsx +59 -0
- package/src/components/radio.tsx +40 -0
- package/src/components/resizable.tsx +78 -0
- package/src/components/scroll-area.tsx +95 -0
- package/src/components/select.tsx +296 -0
- package/src/components/separator.tsx +60 -0
- package/src/components/sheet.tsx +241 -0
- package/src/components/sidebar.tsx +926 -0
- package/src/components/skeleton.tsx +35 -0
- package/src/components/slider.tsx +66 -0
- package/src/components/sonner.tsx +57 -0
- package/src/components/spinner.tsx +66 -0
- package/src/components/switch.tsx +44 -0
- package/src/components/table.tsx +183 -0
- package/src/components/tabs.tsx +110 -0
- package/src/components/textarea.tsx +35 -0
- package/src/components/toggle-group.tsx +137 -0
- package/src/components/toggle.tsx +30 -0
- package/src/components/tooltip.tsx +115 -0
- package/src/css/foundation/base.css +50 -0
- package/src/css/foundation/motion.css +36 -0
- package/src/css/foundation/source.css +3 -0
- package/src/css/foundation/tokens.css +71 -0
- package/src/css/foundation/variants.css +113 -0
- package/src/css/preset.css +5 -195
- package/src/css/style.css +1 -1
- package/src/css/{amber.css → themes/amber.css} +59 -22
- package/src/css/{blue.css → themes/blue.css} +59 -22
- package/src/css/{cyan.css → themes/cyan.css} +59 -22
- package/src/css/{emerald.css → themes/emerald.css} +59 -22
- package/src/css/{fuchsia.css → themes/fuchsia.css} +59 -22
- package/src/css/{gray.css → themes/gray.css} +59 -22
- package/src/css/{green.css → themes/green.css} +59 -22
- package/src/css/{indigo.css → themes/indigo.css} +59 -22
- package/src/css/{lime.css → themes/lime.css} +59 -22
- package/src/css/{neutral.css → themes/neutral.css} +59 -22
- package/src/css/{orange.css → themes/orange.css} +59 -22
- package/src/css/{pink.css → themes/pink.css} +59 -22
- package/src/css/{purple.css → themes/purple.css} +59 -22
- package/src/css/{red.css → themes/red.css} +59 -22
- package/src/css/{rose.css → themes/rose.css} +59 -22
- package/src/css/{sky.css → themes/sky.css} +59 -22
- package/src/css/{slate.css → themes/slate.css} +59 -22
- package/src/css/{stone.css → themes/stone.css} +59 -22
- package/src/css/{teal.css → themes/teal.css} +59 -22
- package/src/css/{violet.css → themes/violet.css} +59 -22
- package/src/css/{yellow.css → themes/yellow.css} +59 -22
- package/src/css/{zinc.css → themes/zinc.css} +59 -22
- package/src/hooks/use-animated-value.ts +91 -0
- package/src/hooks/use-copy-to-clipboard.ts +58 -0
- package/src/hooks/use-is-mobile.ts +25 -0
- package/src/hooks/use-media-query.ts +69 -0
- package/src/hooks/use-mutation-observer.ts +51 -0
- package/src/hooks/use-pagination.ts +164 -0
- package/src/index.ts +679 -0
- package/src/lib/utils.ts +5 -0
- package/src/primitives/checkbox-group.tsx +346 -0
- package/src/primitives/input-number.tsx +967 -0
- package/src/primitives/input.tsx +227 -0
- package/src/primitives/progress-circle.tsx +507 -0
- package/src/variants/alert.ts +34 -0
- package/src/variants/badge.ts +39 -0
- package/src/variants/button-group.ts +36 -0
- package/src/variants/button.ts +56 -0
- package/src/variants/empty.ts +34 -0
- package/src/variants/field.ts +37 -0
- package/src/variants/input-group.ts +80 -0
- package/src/variants/input-number.ts +65 -0
- package/src/variants/item.ts +68 -0
- package/src/variants/navigation-menu.ts +25 -0
- package/src/variants/progress-circle.ts +46 -0
- package/src/variants/scroll-area.ts +73 -0
- package/src/variants/separator.ts +40 -0
- package/src/variants/sheet.ts +37 -0
- package/src/variants/sidebar.ts +41 -0
- package/src/variants/tabs.ts +34 -0
- package/src/variants/toggle.ts +40 -0
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts +0 -6
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { Button } from "./button.mjs";
|
|
4
|
-
import {
|
|
3
|
+
import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
|
|
5
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
5
|
import { useCallback, useEffect, useState } from "react";
|
|
7
|
-
import { createContextScope } from "@radix-ui/react-context";
|
|
8
6
|
import useEmblaCarousel from "embla-carousel-react";
|
|
7
|
+
import { Context } from "radix-ui/internal";
|
|
9
8
|
//#region src/components/carousel.tsx
|
|
10
9
|
const CAROUSEL_NAME = "Carousel";
|
|
11
|
-
const [createCarouselContext, createCarouselScope] = createContextScope(CAROUSEL_NAME);
|
|
10
|
+
const [createCarouselContext, createCarouselScope] = Context.createContextScope(CAROUSEL_NAME);
|
|
12
11
|
const [CarouselContextProvider, useCarouselContext] = createCarouselContext(CAROUSEL_NAME);
|
|
13
12
|
/**
|
|
14
13
|
* @since 0.3.16-canary.0
|
|
@@ -66,8 +65,10 @@ function Carousel({ __scopeCarousel, children, className, opts, orientation, plu
|
|
|
66
65
|
scrollNext,
|
|
67
66
|
scrollPrev: scrollPrevious,
|
|
68
67
|
children: /* @__PURE__ */ jsx("div", {
|
|
68
|
+
"aria-roledescription": "carousel",
|
|
69
69
|
className: cn("relative", className),
|
|
70
70
|
"data-slot": "carousel",
|
|
71
|
+
role: "region",
|
|
71
72
|
onKeyDownCapture: handleKeyDown,
|
|
72
73
|
...props,
|
|
73
74
|
children
|
|
@@ -76,6 +77,18 @@ function Carousel({ __scopeCarousel, children, className, opts, orientation, plu
|
|
|
76
77
|
}
|
|
77
78
|
const CAROUSEL_CONTENT_NAME = "CarouselContent";
|
|
78
79
|
/**
|
|
80
|
+
* The scroll viewport requires `overflow-hidden` (Embla hides off-screen slides
|
|
81
|
+
* with it), so any ring/shadow on slide content that sits OUTSIDE the slide's
|
|
82
|
+
* border-box is clipped where the slide meets the viewport edge. This is
|
|
83
|
+
* inherent to every Embla-based carousel — the active slide is flush with both
|
|
84
|
+
* scroll-axis edges, so left/right rings (horizontal) cannot show without
|
|
85
|
+
* revealing the neighbouring slide.
|
|
86
|
+
*
|
|
87
|
+
* To give content shadows/rings breathing room on the CROSS axis (top/bottom
|
|
88
|
+
* for horizontal carousels), add a negative-margin + matching padding via
|
|
89
|
+
* `classNames.wrapper`, e.g. `classNames={{ wrapper: "-my-2 py-2" }}`. This
|
|
90
|
+
* shifts no layout but lets the clip happen `n`px further out.
|
|
91
|
+
*
|
|
79
92
|
* @since 0.3.16-canary.0
|
|
80
93
|
*/
|
|
81
94
|
function CarouselContent({ __scopeCarousel, className, classNames, ...props }) {
|
|
@@ -85,7 +98,7 @@ function CarouselContent({ __scopeCarousel, className, classNames, ...props }) {
|
|
|
85
98
|
className: cn("overflow-hidden", classNames?.wrapper),
|
|
86
99
|
"data-slot": "carousel-content",
|
|
87
100
|
children: /* @__PURE__ */ jsx("div", {
|
|
88
|
-
className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", classNames?.content, className),
|
|
101
|
+
className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 h-full flex-col", classNames?.content, className),
|
|
89
102
|
...props
|
|
90
103
|
})
|
|
91
104
|
});
|
|
@@ -108,18 +121,18 @@ const CAROUSEL_PREVIOUS_NAME = "CarouselPrevious";
|
|
|
108
121
|
/**
|
|
109
122
|
* @since 0.3.16-canary.0
|
|
110
123
|
*/
|
|
111
|
-
function CarouselPrevious({ __scopeCarousel, className, size = "icon", variant = "outline", ...props }) {
|
|
124
|
+
function CarouselPrevious({ __scopeCarousel, className, size = "icon-sm", variant = "outline", ...props }) {
|
|
112
125
|
const { canScrollPrev, orientation, scrollPrev } = useCarouselContext(CAROUSEL_PREVIOUS_NAME, __scopeCarousel);
|
|
113
126
|
return /* @__PURE__ */ jsxs(Button, {
|
|
114
127
|
"aria-label": "Previous slide",
|
|
115
|
-
className: cn("absolute
|
|
128
|
+
className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2 active:not-aria-[haspopup]:translate-y-[calc(-50%+1px)]" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
116
129
|
"data-slot": "carousel-previous",
|
|
117
130
|
disabled: !canScrollPrev,
|
|
118
131
|
size,
|
|
119
132
|
variant,
|
|
120
133
|
onClick: scrollPrev,
|
|
121
134
|
...props,
|
|
122
|
-
children: [/* @__PURE__ */ jsx(
|
|
135
|
+
children: [/* @__PURE__ */ jsx(ChevronLeftIcon, { className: "rtl:rotate-180" }), /* @__PURE__ */ jsx("span", {
|
|
123
136
|
className: "sr-only",
|
|
124
137
|
children: "Previous slide"
|
|
125
138
|
})]
|
|
@@ -129,18 +142,18 @@ const CAROUSEL_NEXT_NAME = "CarouselNext";
|
|
|
129
142
|
/**
|
|
130
143
|
* @since 0.3.16-canary.0
|
|
131
144
|
*/
|
|
132
|
-
function CarouselNext({ __scopeCarousel, className, size = "icon", variant = "outline", ...props }) {
|
|
145
|
+
function CarouselNext({ __scopeCarousel, className, size = "icon-sm", variant = "outline", ...props }) {
|
|
133
146
|
const { canScrollNext, orientation, scrollNext } = useCarouselContext(CAROUSEL_NEXT_NAME, __scopeCarousel);
|
|
134
147
|
return /* @__PURE__ */ jsxs(Button, {
|
|
135
148
|
"aria-label": "Next slide",
|
|
136
|
-
className: cn("absolute
|
|
149
|
+
className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2 active:not-aria-[haspopup]:translate-y-[calc(-50%+1px)]" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
137
150
|
"data-slot": "carousel-next",
|
|
138
151
|
disabled: !canScrollNext,
|
|
139
152
|
size,
|
|
140
153
|
variant,
|
|
141
154
|
onClick: scrollNext,
|
|
142
155
|
...props,
|
|
143
|
-
children: [/* @__PURE__ */ jsx(
|
|
156
|
+
children: [/* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180" }), /* @__PURE__ */ jsx("span", {
|
|
144
157
|
className: "sr-only",
|
|
145
158
|
children: "Next slide"
|
|
146
159
|
})]
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import * as _$react from "react";
|
|
2
1
|
import { ComponentProps, ComponentType, JSX, ReactNode } from "react";
|
|
3
|
-
import
|
|
4
|
-
import { Scope } from "@radix-ui/react-context";
|
|
2
|
+
import { Context } from "radix-ui/internal";
|
|
5
3
|
import * as RechartsPrimitive from "recharts";
|
|
6
4
|
import { TooltipContentProps, TooltipProps } from "recharts";
|
|
7
5
|
import { NameType, Payload, ValueType } from "recharts/types/component/DefaultTooltipContent";
|
|
@@ -27,15 +25,19 @@ type ChartConfig = Record<string, {
|
|
|
27
25
|
theme?: never;
|
|
28
26
|
})>;
|
|
29
27
|
type ScopedProps<P> = P & {
|
|
30
|
-
__scopeChart?: Scope;
|
|
28
|
+
__scopeChart?: Context.Scope;
|
|
31
29
|
};
|
|
32
|
-
declare const createChartScope:
|
|
30
|
+
declare const createChartScope: Context.CreateScope;
|
|
33
31
|
/**
|
|
34
32
|
* @since 0.3.16-canary.0
|
|
35
33
|
*/
|
|
36
34
|
interface ChartContainerProps extends ComponentProps<"div"> {
|
|
37
35
|
children: ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
38
36
|
config: ChartConfig;
|
|
37
|
+
initialDimension?: {
|
|
38
|
+
height: number;
|
|
39
|
+
width: number;
|
|
40
|
+
};
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* @since 0.3.16-canary.0
|
|
@@ -46,6 +48,7 @@ declare function ChartContainer({
|
|
|
46
48
|
className,
|
|
47
49
|
config,
|
|
48
50
|
id,
|
|
51
|
+
initialDimension,
|
|
49
52
|
...props
|
|
50
53
|
}: ScopedProps<ChartContainerProps>): JSX.Element;
|
|
51
54
|
/**
|
|
@@ -109,7 +112,7 @@ type ChartLegendProps = ComponentProps<typeof RechartsPrimitive.Legend>;
|
|
|
109
112
|
/**
|
|
110
113
|
* @since 0.3.16-canary.0
|
|
111
114
|
*/
|
|
112
|
-
declare const ChartLegend:
|
|
115
|
+
declare const ChartLegend: typeof RechartsPrimitive.Legend;
|
|
113
116
|
/**
|
|
114
117
|
* @since 0.3.16-canary.0
|
|
115
118
|
*/
|
|
@@ -1,35 +1,41 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
3
|
import { useId, useMemo } from "react";
|
|
5
|
-
import {
|
|
4
|
+
import { Context } from "radix-ui/internal";
|
|
6
5
|
import * as RechartsPrimitive from "recharts";
|
|
7
6
|
//#region src/components/chart.tsx
|
|
8
7
|
const THEMES = {
|
|
9
8
|
dark: ".dark",
|
|
10
9
|
light: ""
|
|
11
10
|
};
|
|
11
|
+
const INITIAL_DIMENSION = {
|
|
12
|
+
height: 200,
|
|
13
|
+
width: 320
|
|
14
|
+
};
|
|
12
15
|
const CHART_PROVIDER_NAME = "ChartProvider";
|
|
13
|
-
const [createChartContext, createChartScope] = createContextScope(CHART_PROVIDER_NAME);
|
|
16
|
+
const [createChartContext, createChartScope] = Context.createContextScope(CHART_PROVIDER_NAME);
|
|
14
17
|
const [ChartContextProvider, useChartContext] = createChartContext(CHART_PROVIDER_NAME);
|
|
15
18
|
/**
|
|
16
19
|
* @since 0.3.16-canary.0
|
|
17
20
|
*/
|
|
18
|
-
function ChartContainer({ __scopeChart, children, className, config, id, ...props }) {
|
|
21
|
+
function ChartContainer({ __scopeChart, children, className, config, id, initialDimension = INITIAL_DIMENSION, ...props }) {
|
|
19
22
|
const uniqueId = useId();
|
|
20
|
-
const chartId = `chart-${id ?? uniqueId}`;
|
|
23
|
+
const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
|
|
21
24
|
return /* @__PURE__ */ jsx(ChartContextProvider, {
|
|
22
25
|
config,
|
|
23
26
|
scope: __scopeChart,
|
|
24
27
|
children: /* @__PURE__ */ jsxs("div", {
|
|
25
|
-
className: cn("flex aspect-video justify-center text-xs
|
|
28
|
+
className: cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
|
|
26
29
|
"data-chart": chartId,
|
|
27
30
|
"data-slot": "chart",
|
|
28
31
|
...props,
|
|
29
32
|
children: [/* @__PURE__ */ jsx(ChartStyle, {
|
|
30
33
|
config,
|
|
31
34
|
id: chartId
|
|
32
|
-
}), /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, {
|
|
35
|
+
}), /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, {
|
|
36
|
+
initialDimension,
|
|
37
|
+
children
|
|
38
|
+
})]
|
|
33
39
|
})
|
|
34
40
|
});
|
|
35
41
|
}
|
|
@@ -79,7 +85,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
|
|
|
79
85
|
if (!active || payload.length === 0) return null;
|
|
80
86
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
81
87
|
return /* @__PURE__ */ jsxs("div", {
|
|
82
|
-
className: cn("grid min-w-
|
|
88
|
+
className: cn("grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl", className),
|
|
83
89
|
children: [nestLabel ? null : tooltipLabel, /* @__PURE__ */ jsx("div", {
|
|
84
90
|
className: "grid gap-1.5",
|
|
85
91
|
children: payload.map((item, index) => {
|
|
@@ -87,12 +93,12 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
|
|
|
87
93
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
88
94
|
const indicatorColor = color ?? (isRecord(item.payload) && "fill" in item.payload && typeof item.payload.fill === "string" ? item.payload.fill : void 0) ?? item.color;
|
|
89
95
|
return /* @__PURE__ */ jsx("div", {
|
|
90
|
-
className: cn("flex w-full flex-wrap items-stretch gap-2
|
|
96
|
+
className: cn("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground", indicator === "dot" && "items-center"),
|
|
91
97
|
children: formatter && item.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, [item]) : /* @__PURE__ */ jsxs(Fragment, { children: [itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx("div", {
|
|
92
|
-
className: cn("shrink-0
|
|
98
|
+
className: cn("shrink-0 rounded-xs border-(--color-border) bg-(--color-bg)", {
|
|
93
99
|
"h-2.5 w-2.5": indicator === "dot",
|
|
94
100
|
"my-0.5": nestLabel && indicator === "dashed",
|
|
95
|
-
"border-1.
|
|
101
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
96
102
|
"w-1": indicator === "line"
|
|
97
103
|
}),
|
|
98
104
|
style: {
|
|
@@ -100,7 +106,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
|
|
|
100
106
|
"--color-border": indicatorColor
|
|
101
107
|
}
|
|
102
108
|
}), /* @__PURE__ */ jsxs("div", {
|
|
103
|
-
className: cn("flex flex-1 justify-between
|
|
109
|
+
className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"),
|
|
104
110
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
105
111
|
className: "grid gap-1.5",
|
|
106
112
|
children: [nestLabel ? tooltipLabel : null, /* @__PURE__ */ jsx("span", {
|
|
@@ -108,7 +114,7 @@ function ChartTooltipContent({ __scopeChart, active, className, color, formatter
|
|
|
108
114
|
children: itemConfig?.label ?? item.name
|
|
109
115
|
})]
|
|
110
116
|
}), item.value != null && /* @__PURE__ */ jsx("span", {
|
|
111
|
-
className:
|
|
117
|
+
className: "font-mono font-medium text-foreground tabular-nums",
|
|
112
118
|
children: typeof item.value === "number" ? item.value.toLocaleString() : safeToString(item.value)
|
|
113
119
|
})]
|
|
114
120
|
})] })
|
|
@@ -136,9 +142,9 @@ function ChartLegendContent({ __scopeChart, className, hideIcon = false, nameKey
|
|
|
136
142
|
else if (item.dataKey != null) key = safeToString(item.dataKey);
|
|
137
143
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
138
144
|
return /* @__PURE__ */ jsxs("div", {
|
|
139
|
-
className:
|
|
145
|
+
className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground",
|
|
140
146
|
children: [itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx("div", {
|
|
141
|
-
className:
|
|
147
|
+
className: "h-2 w-2 shrink-0 rounded-xs",
|
|
142
148
|
style: { backgroundColor: item.color }
|
|
143
149
|
}), itemConfig?.label]
|
|
144
150
|
}, nameKey ? safeToString(itemConfig?.color ?? "") : safeToString(item.value ?? ""));
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { Label } from "./label.mjs";
|
|
4
3
|
import { CheckboxGroup, CheckboxGroupIndicator, CheckboxGroupItem } from "../primitives/checkbox-group.mjs";
|
|
@@ -19,15 +18,16 @@ function CheckboxCards(props) {
|
|
|
19
18
|
*/
|
|
20
19
|
function CheckboxCardsItem({ checkboxClassName, children, className, ...props }) {
|
|
21
20
|
return /* @__PURE__ */ jsxs(Label, {
|
|
22
|
-
className: cn("flex items-start gap-3
|
|
21
|
+
className: cn("flex items-start gap-3 rounded-md border border-input p-3 transition has-focus-visible:border-ring has-disabled:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5", className),
|
|
23
22
|
"data-slot": "checkbox-card",
|
|
24
23
|
children: [/* @__PURE__ */ jsx(CheckboxGroupItem, {
|
|
25
|
-
className: cn("peer flex size-4 shrink-0
|
|
24
|
+
className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary", checkboxClassName),
|
|
26
25
|
"data-slot": "checkbox-card-item",
|
|
27
26
|
...props,
|
|
28
27
|
children: /* @__PURE__ */ jsx(CheckboxGroupIndicator, {
|
|
28
|
+
className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
|
|
29
29
|
"data-slot": "checkbox-card-indicator",
|
|
30
|
-
children: /* @__PURE__ */ jsx(CheckIcon, {
|
|
30
|
+
children: /* @__PURE__ */ jsx(CheckIcon, {})
|
|
31
31
|
})
|
|
32
32
|
}), children]
|
|
33
33
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { CheckboxGroup as CheckboxGroup$1, CheckboxGroupIndicator, CheckboxGroupItem as CheckboxGroupItem$1 } from "../primitives/checkbox-group.mjs";
|
|
4
3
|
import { CheckIcon } from "lucide-react";
|
|
@@ -19,13 +18,13 @@ function CheckboxGroup({ className, ...props }) {
|
|
|
19
18
|
*/
|
|
20
19
|
function CheckboxGroupItem({ className, ...props }) {
|
|
21
20
|
return /* @__PURE__ */ jsx(CheckboxGroupItem$1, {
|
|
22
|
-
className: cn("peer flex size-4 shrink-0 items-center justify-center
|
|
21
|
+
className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary", className),
|
|
23
22
|
"data-slot": "checkbox-group-item",
|
|
24
23
|
...props,
|
|
25
24
|
children: /* @__PURE__ */ jsx(CheckboxGroupIndicator, {
|
|
26
|
-
className:
|
|
25
|
+
className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
|
|
27
26
|
"data-slot": "checkbox-group-indicator",
|
|
28
|
-
children: /* @__PURE__ */ jsx(CheckIcon, {
|
|
27
|
+
children: /* @__PURE__ */ jsx(CheckIcon, {})
|
|
29
28
|
})
|
|
30
29
|
});
|
|
31
30
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { Checkbox as Checkbox$1 } from "radix-ui";
|
|
1
2
|
import { ComponentProps, JSX } from "react";
|
|
2
|
-
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
3
3
|
|
|
4
4
|
//#region src/components/checkbox.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type CheckboxProps = ComponentProps<typeof
|
|
8
|
+
type CheckboxProps = ComponentProps<typeof Checkbox$1.Root>;
|
|
9
9
|
/**
|
|
10
10
|
* @since 0.3.16-canary.0
|
|
11
11
|
*/
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { CheckIcon } from "lucide-react";
|
|
3
|
+
import { Checkbox as Checkbox$1 } from "radix-ui";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
6
5
|
//#region src/components/checkbox.tsx
|
|
7
6
|
/**
|
|
8
7
|
* @since 0.3.16-canary.0
|
|
9
8
|
*/
|
|
10
9
|
function Checkbox({ className, ...props }) {
|
|
11
|
-
return /* @__PURE__ */ jsx(
|
|
12
|
-
className: cn("peer flex size-4 shrink-0 items-center justify-center
|
|
10
|
+
return /* @__PURE__ */ jsx(Checkbox$1.Root, {
|
|
11
|
+
className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-sm border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary", className),
|
|
13
12
|
"data-slot": "checkbox",
|
|
14
13
|
...props,
|
|
15
|
-
children: /* @__PURE__ */ jsx(
|
|
16
|
-
className:
|
|
14
|
+
children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, {
|
|
15
|
+
className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
|
|
17
16
|
"data-slot": "checkbox-indicator",
|
|
18
|
-
children: /* @__PURE__ */ jsx(CheckIcon, {
|
|
17
|
+
children: /* @__PURE__ */ jsx(CheckIcon, {})
|
|
19
18
|
})
|
|
20
19
|
});
|
|
21
20
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { Collapsible as Collapsible$1 } from "radix-ui";
|
|
1
2
|
import { ComponentProps, JSX } from "react";
|
|
2
|
-
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
3
3
|
|
|
4
4
|
//#region src/components/collapsible.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type CollapsibleProps = ComponentProps<typeof
|
|
8
|
+
type CollapsibleProps = ComponentProps<typeof Collapsible$1.Root>;
|
|
9
9
|
/**
|
|
10
10
|
* @since 0.3.16-canary.0
|
|
11
11
|
*/
|
|
@@ -15,7 +15,7 @@ declare function Collapsible({
|
|
|
15
15
|
/**
|
|
16
16
|
* @since 0.3.16-canary.0
|
|
17
17
|
*/
|
|
18
|
-
type CollapsibleTriggerProps = ComponentProps<typeof
|
|
18
|
+
type CollapsibleTriggerProps = ComponentProps<typeof Collapsible$1.CollapsibleTrigger>;
|
|
19
19
|
/**
|
|
20
20
|
* @since 0.3.16-canary.0
|
|
21
21
|
*/
|
|
@@ -25,7 +25,7 @@ declare function CollapsibleTrigger({
|
|
|
25
25
|
/**
|
|
26
26
|
* @since 0.3.16-canary.0
|
|
27
27
|
*/
|
|
28
|
-
type CollapsibleContentProps = ComponentProps<typeof
|
|
28
|
+
type CollapsibleContentProps = ComponentProps<typeof Collapsible$1.CollapsibleContent>;
|
|
29
29
|
/**
|
|
30
30
|
* @since 0.3.16-canary.0
|
|
31
31
|
*/
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { Collapsible as Collapsible$1 } from "radix-ui";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
4
3
|
//#region src/components/collapsible.tsx
|
|
5
4
|
/**
|
|
6
5
|
* @since 0.3.16-canary.0
|
|
7
6
|
*/
|
|
8
7
|
function Collapsible({ ...props }) {
|
|
9
|
-
return /* @__PURE__ */ jsx(
|
|
8
|
+
return /* @__PURE__ */ jsx(Collapsible$1.Root, {
|
|
10
9
|
"data-slot": "collapsible",
|
|
11
10
|
...props
|
|
12
11
|
});
|
|
@@ -15,7 +14,7 @@ function Collapsible({ ...props }) {
|
|
|
15
14
|
* @since 0.3.16-canary.0
|
|
16
15
|
*/
|
|
17
16
|
function CollapsibleTrigger({ ...props }) {
|
|
18
|
-
return /* @__PURE__ */ jsx(
|
|
17
|
+
return /* @__PURE__ */ jsx(Collapsible$1.CollapsibleTrigger, {
|
|
19
18
|
"data-slot": "collapsible-trigger",
|
|
20
19
|
...props
|
|
21
20
|
});
|
|
@@ -24,7 +23,7 @@ function CollapsibleTrigger({ ...props }) {
|
|
|
24
23
|
* @since 0.3.16-canary.0
|
|
25
24
|
*/
|
|
26
25
|
function CollapsibleContent({ ...props }) {
|
|
27
|
-
return /* @__PURE__ */ jsx(
|
|
26
|
+
return /* @__PURE__ */ jsx(Collapsible$1.CollapsibleContent, {
|
|
28
27
|
"data-slot": "collapsible-content",
|
|
29
28
|
...props
|
|
30
29
|
});
|
|
@@ -17,12 +17,21 @@ declare function Command({
|
|
|
17
17
|
/**
|
|
18
18
|
* @since 0.3.16-canary.0
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
interface CommandDialogProps extends ComponentProps<typeof Dialog> {
|
|
21
|
+
className?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
showCloseButton?: boolean;
|
|
24
|
+
title?: string;
|
|
25
|
+
}
|
|
21
26
|
/**
|
|
22
27
|
* @since 0.3.16-canary.0
|
|
23
28
|
*/
|
|
24
29
|
declare function CommandDialog({
|
|
25
30
|
children,
|
|
31
|
+
className,
|
|
32
|
+
description,
|
|
33
|
+
showCloseButton,
|
|
34
|
+
title,
|
|
26
35
|
...props
|
|
27
36
|
}: CommandDialogProps): JSX.Element;
|
|
28
37
|
/**
|
|
@@ -88,6 +97,7 @@ type CommandItemProps = ComponentProps<typeof Command$1.Item>;
|
|
|
88
97
|
* @since 0.3.16-canary.0
|
|
89
98
|
*/
|
|
90
99
|
declare function CommandItem({
|
|
100
|
+
children,
|
|
91
101
|
className,
|
|
92
102
|
...props
|
|
93
103
|
}: CommandItemProps): JSX.Element;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
|
-
import { Dialog, DialogContent, DialogDescription, DialogTitle } from "./dialog.mjs";
|
|
4
|
-
import {
|
|
2
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.mjs";
|
|
3
|
+
import { InputGroup, InputGroupAddon } from "./input-group.mjs";
|
|
4
|
+
import { CheckIcon, SearchIcon } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
|
|
7
6
|
import { Command as Command$1 } from "cmdk";
|
|
8
7
|
//#region src/components/command.tsx
|
|
9
8
|
/**
|
|
@@ -11,7 +10,7 @@ import { Command as Command$1 } from "cmdk";
|
|
|
11
10
|
*/
|
|
12
11
|
function Command({ className, ...props }) {
|
|
13
12
|
return /* @__PURE__ */ jsx(Command$1, {
|
|
14
|
-
className: cn("flex flex-col overflow-hidden
|
|
13
|
+
className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
|
|
15
14
|
"data-slot": "command",
|
|
16
15
|
...props
|
|
17
16
|
});
|
|
@@ -19,33 +18,36 @@ function Command({ className, ...props }) {
|
|
|
19
18
|
/**
|
|
20
19
|
* @since 0.3.16-canary.0
|
|
21
20
|
*/
|
|
22
|
-
function CommandDialog({ children, ...props }) {
|
|
23
|
-
return /* @__PURE__ */
|
|
21
|
+
function CommandDialog({ children, className, description = "Search for a command to run...", showCloseButton = false, title = "Command Palette", ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
24
23
|
"data-slot": "command-dialog",
|
|
25
24
|
...props,
|
|
26
|
-
children: /* @__PURE__ */ jsxs(
|
|
27
|
-
className:
|
|
25
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
26
|
+
className: "sr-only",
|
|
27
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
28
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
29
|
+
className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl p-0", className),
|
|
28
30
|
"data-slot": "command-dialog-content",
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
})]
|
|
33
|
-
})
|
|
31
|
+
showCloseButton,
|
|
32
|
+
children
|
|
33
|
+
})]
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* @since 0.3.16-canary.0
|
|
38
38
|
*/
|
|
39
39
|
function CommandInput({ className, ...props }) {
|
|
40
|
-
return /* @__PURE__ */
|
|
41
|
-
"
|
|
42
|
-
className: cn("flex items-center gap-2", "px-3", "border-b"),
|
|
40
|
+
return /* @__PURE__ */ jsx("div", {
|
|
41
|
+
className: "p-1 pb-0",
|
|
43
42
|
"data-slot": "command-input-wrapper",
|
|
44
|
-
children:
|
|
45
|
-
className:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
children: /* @__PURE__ */ jsxs(InputGroup, {
|
|
44
|
+
className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",
|
|
45
|
+
children: [/* @__PURE__ */ jsx(Command$1.Input, {
|
|
46
|
+
className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
47
|
+
"data-slot": "command-input",
|
|
48
|
+
...props
|
|
49
|
+
}), /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })]
|
|
50
|
+
})
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
@@ -53,7 +55,7 @@ function CommandInput({ className, ...props }) {
|
|
|
53
55
|
*/
|
|
54
56
|
function CommandList({ className, ...props }) {
|
|
55
57
|
return /* @__PURE__ */ jsx(Command$1.List, {
|
|
56
|
-
className: cn("max-h-
|
|
58
|
+
className: cn("max-h-72 scroll-py-1 scrollbar-none overflow-x-hidden overflow-y-auto outline-none", className),
|
|
57
59
|
"data-slot": "command-list",
|
|
58
60
|
...props
|
|
59
61
|
});
|
|
@@ -63,7 +65,7 @@ function CommandList({ className, ...props }) {
|
|
|
63
65
|
*/
|
|
64
66
|
function CommandEmpty({ className, ...props }) {
|
|
65
67
|
return /* @__PURE__ */ jsx(Command$1.Empty, {
|
|
66
|
-
className: cn("py-6
|
|
68
|
+
className: cn("py-6 text-center text-sm", className),
|
|
67
69
|
"data-slot": "command-empty",
|
|
68
70
|
...props
|
|
69
71
|
});
|
|
@@ -73,7 +75,7 @@ function CommandEmpty({ className, ...props }) {
|
|
|
73
75
|
*/
|
|
74
76
|
function CommandGroup({ className, ...props }) {
|
|
75
77
|
return /* @__PURE__ */ jsx(Command$1.Group, {
|
|
76
|
-
className: cn("overflow-hidden p-1 text-foreground
|
|
78
|
+
className: cn("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground", className),
|
|
77
79
|
"data-slot": "command-group",
|
|
78
80
|
...props
|
|
79
81
|
});
|
|
@@ -83,7 +85,7 @@ function CommandGroup({ className, ...props }) {
|
|
|
83
85
|
*/
|
|
84
86
|
function CommandSeparator({ className, ...props }) {
|
|
85
87
|
return /* @__PURE__ */ jsx(Command$1.Separator, {
|
|
86
|
-
className: cn("-mx-1 h-px
|
|
88
|
+
className: cn("-mx-1 h-px w-auto bg-border", className),
|
|
87
89
|
"data-slot": "command-separator",
|
|
88
90
|
...props
|
|
89
91
|
});
|
|
@@ -91,11 +93,12 @@ function CommandSeparator({ className, ...props }) {
|
|
|
91
93
|
/**
|
|
92
94
|
* @since 0.3.16-canary.0
|
|
93
95
|
*/
|
|
94
|
-
function CommandItem({ className, ...props }) {
|
|
95
|
-
return /* @__PURE__ */
|
|
96
|
-
className: cn("group/command-item relative flex items-center gap-
|
|
96
|
+
function CommandItem({ children, className, ...props }) {
|
|
97
|
+
return /* @__PURE__ */ jsxs(Command$1.Item, {
|
|
98
|
+
className: cn("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-selected:bg-muted data-selected:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:**:[svg]:text-foreground", className),
|
|
97
99
|
"data-slot": "command-item",
|
|
98
|
-
...props
|
|
100
|
+
...props,
|
|
101
|
+
children: [children, /* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-checked/command-item:opacity-100" })]
|
|
99
102
|
});
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
@@ -103,7 +106,7 @@ function CommandItem({ className, ...props }) {
|
|
|
103
106
|
*/
|
|
104
107
|
function CommandLoading({ className, ...props }) {
|
|
105
108
|
return /* @__PURE__ */ jsx(Command$1.Loading, {
|
|
106
|
-
className: cn("flex justify-center
|
|
109
|
+
className: cn("flex justify-center p-2", className),
|
|
107
110
|
"data-slot": "command-loading",
|
|
108
111
|
...props
|
|
109
112
|
});
|
|
@@ -113,7 +116,7 @@ function CommandLoading({ className, ...props }) {
|
|
|
113
116
|
*/
|
|
114
117
|
function CommandShortcut({ className, ...props }) {
|
|
115
118
|
return /* @__PURE__ */ jsx("span", {
|
|
116
|
-
className: cn("ml-auto
|
|
119
|
+
className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground", className),
|
|
117
120
|
"data-slot": "command-shortcut",
|
|
118
121
|
...props
|
|
119
122
|
});
|