@prototyperco/ui 0.5.0-alpha.0 → 0.5.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/dist/components/accordion.cjs +154 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +14 -0
- package/dist/components/accordion.d.ts +14 -0
- package/dist/components/accordion.js +127 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.cjs +324 -0
- package/dist/components/alert-dialog.cjs.map +1 -0
- package/dist/components/alert-dialog.d.cts +30 -0
- package/dist/components/alert-dialog.d.ts +30 -0
- package/dist/components/alert-dialog.js +289 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.cjs +105 -0
- package/dist/components/alert.cjs.map +1 -0
- package/dist/components/alert.d.cts +17 -0
- package/dist/components/alert.d.ts +17 -0
- package/dist/components/alert.js +78 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/autocomplete.cjs +512 -0
- package/dist/components/autocomplete.cjs.map +1 -0
- package/dist/components/autocomplete.d.cts +31 -0
- package/dist/components/autocomplete.d.ts +31 -0
- package/dist/components/autocomplete.js +472 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/avatar.cjs +144 -0
- package/dist/components/avatar.cjs.map +1 -0
- package/dist/components/avatar.d.cts +18 -0
- package/dist/components/avatar.d.ts +18 -0
- package/dist/components/avatar.js +115 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.cjs +81 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +13 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.js +56 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.cjs +142 -0
- package/dist/components/breadcrumb.cjs.map +1 -0
- package/dist/components/breadcrumb.d.cts +20 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.js +112 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.cjs +145 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +16 -0
- package/dist/components/button.d.ts +16 -0
- package/dist/components/button.js +120 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.cjs +141 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +23 -0
- package/dist/components/card.d.ts +23 -0
- package/dist/components/card.js +111 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox-group.cjs +56 -0
- package/dist/components/checkbox-group.cjs.map +1 -0
- package/dist/components/checkbox-group.d.cts +8 -0
- package/dist/components/checkbox-group.d.ts +8 -0
- package/dist/components/checkbox-group.js +32 -0
- package/dist/components/checkbox-group.js.map +1 -0
- package/dist/components/checkbox.cjs +152 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +12 -0
- package/dist/components/checkbox.d.ts +12 -0
- package/dist/components/checkbox.js +126 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.cjs +89 -0
- package/dist/components/collapsible.cjs.map +1 -0
- package/dist/components/collapsible.d.cts +12 -0
- package/dist/components/collapsible.d.ts +12 -0
- package/dist/components/collapsible.js +63 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/color-picker.cjs +983 -0
- package/dist/components/color-picker.cjs.map +1 -0
- package/dist/components/color-picker.d.cts +41 -0
- package/dist/components/color-picker.d.ts +41 -0
- package/dist/components/color-picker.js +939 -0
- package/dist/components/color-picker.js.map +1 -0
- package/dist/components/columns.cjs +163 -0
- package/dist/components/columns.cjs.map +1 -0
- package/dist/components/columns.d.cts +16 -0
- package/dist/components/columns.d.ts +16 -0
- package/dist/components/columns.js +136 -0
- package/dist/components/columns.js.map +1 -0
- package/dist/components/combobox.cjs +633 -0
- package/dist/components/combobox.cjs.map +1 -0
- package/dist/components/combobox.d.cts +40 -0
- package/dist/components/combobox.d.ts +40 -0
- package/dist/components/combobox.js +576 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.cjs +370 -0
- package/dist/components/command-palette.cjs.map +1 -0
- package/dist/components/command-palette.d.cts +42 -0
- package/dist/components/command-palette.d.ts +42 -0
- package/dist/components/command-palette.js +329 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/container.cjs +80 -0
- package/dist/components/container.cjs.map +1 -0
- package/dist/components/container.d.cts +27 -0
- package/dist/components/container.d.ts +27 -0
- package/dist/components/container.js +54 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/context-menu.cjs +309 -0
- package/dist/components/context-menu.cjs.map +1 -0
- package/dist/components/context-menu.d.cts +37 -0
- package/dist/components/context-menu.d.ts +37 -0
- package/dist/components/context-menu.js +271 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.cjs +319 -0
- package/dist/components/dialog.cjs.map +1 -0
- package/dist/components/dialog.d.cts +32 -0
- package/dist/components/dialog.d.ts +32 -0
- package/dist/components/dialog.js +285 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.cjs +185 -0
- package/dist/components/drawer.cjs.map +1 -0
- package/dist/components/drawer.d.cts +32 -0
- package/dist/components/drawer.d.ts +32 -0
- package/dist/components/drawer.js +151 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/field.cjs +334 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.cts +39 -0
- package/dist/components/field.d.ts +39 -0
- package/dist/components/field.js +299 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/fieldset.cjs +75 -0
- package/dist/components/fieldset.cjs.map +1 -0
- package/dist/components/fieldset.d.cts +12 -0
- package/dist/components/fieldset.d.ts +12 -0
- package/dist/components/fieldset.js +50 -0
- package/dist/components/fieldset.js.map +1 -0
- package/dist/components/form.cjs +52 -0
- package/dist/components/form.cjs.map +1 -0
- package/dist/components/form.d.cts +8 -0
- package/dist/components/form.d.ts +8 -0
- package/dist/components/form.js +28 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/input-group.cjs +338 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +27 -0
- package/dist/components/input-group.d.ts +27 -0
- package/dist/components/input-group.js +307 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.cjs +63 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +8 -0
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.js +39 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.cjs +54 -0
- package/dist/components/label.cjs.map +1 -0
- package/dist/components/label.d.cts +8 -0
- package/dist/components/label.d.ts +8 -0
- package/dist/components/label.js +28 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menu.cjs +305 -0
- package/dist/components/menu.cjs.map +1 -0
- package/dist/components/menu.d.cts +37 -0
- package/dist/components/menu.d.ts +37 -0
- package/dist/components/menu.js +267 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/menubar.cjs +503 -0
- package/dist/components/menubar.cjs.map +1 -0
- package/dist/components/menubar.d.cts +37 -0
- package/dist/components/menubar.d.ts +37 -0
- package/dist/components/menubar.js +464 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.cjs +152 -0
- package/dist/components/meter.cjs.map +1 -0
- package/dist/components/meter.d.cts +23 -0
- package/dist/components/meter.d.ts +23 -0
- package/dist/components/meter.js +122 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/navigation-menu.cjs +315 -0
- package/dist/components/navigation-menu.cjs.map +1 -0
- package/dist/components/navigation-menu.d.cts +22 -0
- package/dist/components/navigation-menu.d.ts +22 -0
- package/dist/components/navigation-menu.js +283 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/number-field.cjs +217 -0
- package/dist/components/number-field.cjs.map +1 -0
- package/dist/components/number-field.d.cts +23 -0
- package/dist/components/number-field.d.ts +23 -0
- package/dist/components/number-field.js +185 -0
- package/dist/components/number-field.js.map +1 -0
- package/dist/components/popover.cjs +125 -0
- package/dist/components/popover.cjs.map +1 -0
- package/dist/components/popover.d.cts +16 -0
- package/dist/components/popover.d.ts +16 -0
- package/dist/components/popover.js +96 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/preview-card.cjs +86 -0
- package/dist/components/preview-card.cjs.map +1 -0
- package/dist/components/preview-card.d.cts +12 -0
- package/dist/components/preview-card.d.ts +12 -0
- package/dist/components/preview-card.js +60 -0
- package/dist/components/preview-card.js.map +1 -0
- package/dist/components/progress.cjs +167 -0
- package/dist/components/progress.cjs.map +1 -0
- package/dist/components/progress.d.cts +23 -0
- package/dist/components/progress.d.ts +23 -0
- package/dist/components/progress.js +137 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.cjs +98 -0
- package/dist/components/radio-group.cjs.map +1 -0
- package/dist/components/radio-group.d.cts +11 -0
- package/dist/components/radio-group.d.ts +11 -0
- package/dist/components/radio-group.js +73 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable-panel.cjs +91 -0
- package/dist/components/resizable-panel.cjs.map +1 -0
- package/dist/components/resizable-panel.d.cts +14 -0
- package/dist/components/resizable-panel.d.ts +14 -0
- package/dist/components/resizable-panel.js +69 -0
- package/dist/components/resizable-panel.js.map +1 -0
- package/dist/components/row.cjs +94 -0
- package/dist/components/row.cjs.map +1 -0
- package/dist/components/row.d.cts +27 -0
- package/dist/components/row.d.ts +27 -0
- package/dist/components/row.js +68 -0
- package/dist/components/row.js.map +1 -0
- package/dist/components/scroll-area.cjs +96 -0
- package/dist/components/scroll-area.cjs.map +1 -0
- package/dist/components/scroll-area.d.cts +10 -0
- package/dist/components/scroll-area.d.ts +10 -0
- package/dist/components/scroll-area.js +71 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/section.cjs +104 -0
- package/dist/components/section.cjs.map +1 -0
- package/dist/components/section.d.cts +26 -0
- package/dist/components/section.d.ts +26 -0
- package/dist/components/section.js +79 -0
- package/dist/components/section.js.map +1 -0
- package/dist/components/segmented-control.cjs +117 -0
- package/dist/components/segmented-control.cjs.map +1 -0
- package/dist/components/segmented-control.d.cts +16 -0
- package/dist/components/segmented-control.d.ts +16 -0
- package/dist/components/segmented-control.js +91 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.cjs +273 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.cts +26 -0
- package/dist/components/select.d.ts +26 -0
- package/dist/components/select.js +239 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.cjs +60 -0
- package/dist/components/separator.cjs.map +1 -0
- package/dist/components/separator.d.cts +8 -0
- package/dist/components/separator.d.ts +8 -0
- package/dist/components/separator.js +36 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.cjs +54 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +8 -0
- package/dist/components/skeleton.d.ts +8 -0
- package/dist/components/skeleton.js +28 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +221 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +16 -0
- package/dist/components/slider.d.ts +16 -0
- package/dist/components/slider.js +182 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.cjs +97 -0
- package/dist/components/spinner.cjs.map +1 -0
- package/dist/components/spinner.d.cts +13 -0
- package/dist/components/spinner.d.ts +13 -0
- package/dist/components/spinner.js +72 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.cjs +177 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +22 -0
- package/dist/components/switch.d.ts +22 -0
- package/dist/components/switch.js +139 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +123 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +19 -0
- package/dist/components/tabs.d.ts +19 -0
- package/dist/components/tabs.js +95 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text-field.cjs +290 -0
- package/dist/components/text-field.cjs.map +1 -0
- package/dist/components/text-field.d.cts +27 -0
- package/dist/components/text-field.d.ts +27 -0
- package/dist/components/text-field.js +262 -0
- package/dist/components/text-field.js.map +1 -0
- package/dist/components/textarea.cjs +60 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.cts +8 -0
- package/dist/components/textarea.d.ts +8 -0
- package/dist/components/textarea.js +34 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.cjs +167 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +28 -0
- package/dist/components/toast.d.ts +28 -0
- package/dist/components/toast.js +147 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toggle-group.cjs +171 -0
- package/dist/components/toggle-group.cjs.map +1 -0
- package/dist/components/toggle-group.d.cts +18 -0
- package/dist/components/toggle-group.d.ts +18 -0
- package/dist/components/toggle-group.js +136 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.cjs +92 -0
- package/dist/components/toggle.cjs.map +1 -0
- package/dist/components/toggle.d.cts +14 -0
- package/dist/components/toggle.d.ts +14 -0
- package/dist/components/toggle.js +67 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/toolbar.cjs +160 -0
- package/dist/components/toolbar.cjs.map +1 -0
- package/dist/components/toolbar.d.cts +14 -0
- package/dist/components/toolbar.d.ts +14 -0
- package/dist/components/toolbar.js +131 -0
- package/dist/components/toolbar.js.map +1 -0
- package/dist/components/tooltip.cjs +116 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +13 -0
- package/dist/components/tooltip.d.ts +13 -0
- package/dist/components/tooltip.js +89 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/tree-view.cjs +472 -0
- package/dist/components/tree-view.cjs.map +1 -0
- package/dist/components/tree-view.d.cts +33 -0
- package/dist/components/tree-view.d.ts +33 -0
- package/dist/components/tree-view.js +435 -0
- package/dist/components/tree-view.js.map +1 -0
- package/dist/index.cjs +11 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +101 -903
- package/dist/index.d.ts +101 -903
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/color-utils.cjs +315 -0
- package/dist/lib/color-utils.cjs.map +1 -0
- package/dist/lib/color-utils.d.cts +24 -0
- package/dist/lib/color-utils.d.ts +24 -0
- package/dist/lib/color-utils.js +280 -0
- package/dist/lib/color-utils.js.map +1 -0
- package/dist/lib/utils.cjs +35 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +24 -5
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): react_jsx_runtime.JSX.Element;
|
|
5
|
+
declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): react_jsx_runtime.JSX.Element;
|
|
6
|
+
declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function BreadcrumbLink({ className, ...props }: React.ComponentProps<"a">): react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
9
|
+
declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
type BreadcrumbProps = React.ComponentProps<typeof Breadcrumb>;
|
|
13
|
+
type BreadcrumbListProps = React.ComponentProps<typeof BreadcrumbList>;
|
|
14
|
+
type BreadcrumbItemProps = React.ComponentProps<typeof BreadcrumbItem>;
|
|
15
|
+
type BreadcrumbLinkProps = React.ComponentProps<typeof BreadcrumbLink>;
|
|
16
|
+
type BreadcrumbPageProps = React.ComponentProps<typeof BreadcrumbPage>;
|
|
17
|
+
type BreadcrumbSeparatorProps = React.ComponentProps<typeof BreadcrumbSeparator>;
|
|
18
|
+
type BreadcrumbEllipsisProps = React.ComponentProps<typeof BreadcrumbEllipsis>;
|
|
19
|
+
|
|
20
|
+
export { Breadcrumb, BreadcrumbEllipsis, type BreadcrumbEllipsisProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, type BreadcrumbListProps, BreadcrumbPage, type BreadcrumbPageProps, type BreadcrumbProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): react_jsx_runtime.JSX.Element;
|
|
5
|
+
declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): react_jsx_runtime.JSX.Element;
|
|
6
|
+
declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function BreadcrumbLink({ className, ...props }: React.ComponentProps<"a">): react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
9
|
+
declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
type BreadcrumbProps = React.ComponentProps<typeof Breadcrumb>;
|
|
13
|
+
type BreadcrumbListProps = React.ComponentProps<typeof BreadcrumbList>;
|
|
14
|
+
type BreadcrumbItemProps = React.ComponentProps<typeof BreadcrumbItem>;
|
|
15
|
+
type BreadcrumbLinkProps = React.ComponentProps<typeof BreadcrumbLink>;
|
|
16
|
+
type BreadcrumbPageProps = React.ComponentProps<typeof BreadcrumbPage>;
|
|
17
|
+
type BreadcrumbSeparatorProps = React.ComponentProps<typeof BreadcrumbSeparator>;
|
|
18
|
+
type BreadcrumbEllipsisProps = React.ComponentProps<typeof BreadcrumbEllipsis>;
|
|
19
|
+
|
|
20
|
+
export { Breadcrumb, BreadcrumbEllipsis, type BreadcrumbEllipsisProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, type BreadcrumbListProps, BreadcrumbPage, type BreadcrumbPageProps, type BreadcrumbProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/breadcrumb.tsx
|
|
4
|
+
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
// src/lib/utils.ts
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { twMerge } from "tailwind-merge";
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// src/components/breadcrumb.tsx
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
function Breadcrumb({ ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx("nav", { "data-slot": "breadcrumb", "aria-label": "breadcrumb", ...props });
|
|
17
|
+
}
|
|
18
|
+
function BreadcrumbList({ className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
"ol",
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "breadcrumb-list",
|
|
23
|
+
className: cn(
|
|
24
|
+
"flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground sm:gap-2.5",
|
|
25
|
+
className
|
|
26
|
+
),
|
|
27
|
+
...props
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
function BreadcrumbItem({ className, ...props }) {
|
|
32
|
+
return /* @__PURE__ */ jsx(
|
|
33
|
+
"li",
|
|
34
|
+
{
|
|
35
|
+
"data-slot": "breadcrumb-item",
|
|
36
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
37
|
+
...props
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function BreadcrumbLink({ className, ...props }) {
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
"a",
|
|
44
|
+
{
|
|
45
|
+
"data-slot": "breadcrumb-link",
|
|
46
|
+
className: cn(
|
|
47
|
+
"rounded-sm transition-colors duration-150 hover-only:hover:text-foreground focus-visible:focus-ring",
|
|
48
|
+
className
|
|
49
|
+
),
|
|
50
|
+
...props
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
function BreadcrumbPage({ className, ...props }) {
|
|
55
|
+
return /* @__PURE__ */ jsx(
|
|
56
|
+
"span",
|
|
57
|
+
{
|
|
58
|
+
"data-slot": "breadcrumb-page",
|
|
59
|
+
role: "link",
|
|
60
|
+
"aria-disabled": "true",
|
|
61
|
+
"aria-current": "page",
|
|
62
|
+
className: cn("font-normal text-foreground", className),
|
|
63
|
+
...props
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function BreadcrumbSeparator({
|
|
68
|
+
children,
|
|
69
|
+
className,
|
|
70
|
+
...props
|
|
71
|
+
}) {
|
|
72
|
+
return /* @__PURE__ */ jsx(
|
|
73
|
+
"li",
|
|
74
|
+
{
|
|
75
|
+
"data-slot": "breadcrumb-separator",
|
|
76
|
+
role: "presentation",
|
|
77
|
+
"aria-hidden": "true",
|
|
78
|
+
className: cn("[&>svg]:size-3.5", className),
|
|
79
|
+
...props,
|
|
80
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
function BreadcrumbEllipsis({
|
|
85
|
+
className,
|
|
86
|
+
...props
|
|
87
|
+
}) {
|
|
88
|
+
return /* @__PURE__ */ jsxs(
|
|
89
|
+
"span",
|
|
90
|
+
{
|
|
91
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
92
|
+
role: "presentation",
|
|
93
|
+
"aria-hidden": "true",
|
|
94
|
+
className: cn("flex size-9 items-center justify-center", className),
|
|
95
|
+
...props,
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
|
|
98
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
export {
|
|
104
|
+
Breadcrumb,
|
|
105
|
+
BreadcrumbEllipsis,
|
|
106
|
+
BreadcrumbItem,
|
|
107
|
+
BreadcrumbLink,
|
|
108
|
+
BreadcrumbList,
|
|
109
|
+
BreadcrumbPage,
|
|
110
|
+
BreadcrumbSeparator
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/breadcrumb.tsx","../../src/lib/utils.ts"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav data-slot=\"breadcrumb\" aria-label=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({ className, ...props }: React.ComponentProps<\"a\">) {\n return (\n <a\n data-slot=\"breadcrumb-link\"\n className={cn(\n \"rounded-sm transition-colors duration-150 hover-only:hover:text-foreground focus-visible:focus-ring\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n\nexport type BreadcrumbProps = React.ComponentProps<typeof Breadcrumb>;\nexport type BreadcrumbListProps = React.ComponentProps<typeof BreadcrumbList>;\nexport type BreadcrumbItemProps = React.ComponentProps<typeof BreadcrumbItem>;\nexport type BreadcrumbLinkProps = React.ComponentProps<typeof BreadcrumbLink>;\nexport type BreadcrumbPageProps = React.ComponentProps<typeof BreadcrumbPage>;\nexport type BreadcrumbSeparatorProps = React.ComponentProps<\n typeof BreadcrumbSeparator\n>;\nexport type BreadcrumbEllipsisProps = React.ComponentProps<\n typeof BreadcrumbEllipsis\n>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAGA,SAAS,cAAc,sBAAsB;;;ACH7C,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADGS,cA2EL,YA3EK;AADT,SAAS,WAAW,EAAE,GAAG,MAAM,GAAgC;AAC7D,SAAO,oBAAC,SAAI,aAAU,cAAa,cAAW,cAAc,GAAG,OAAO;AACxE;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,oCAAoC,SAAS;AAAA,MAC1D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAA8B;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAAiC;AAC7E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAW,GAAG,+BAA+B,SAAS;AAAA,MACrD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA+B;AAC7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,WAAW,GAAG,oBAAoB,SAAS;AAAA,MAC1C,GAAG;AAAA,MAEH,sBAAY,oBAAC,gBAAa;AAAA;AAAA,EAC7B;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAiC;AAC/B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,WAAW,GAAG,2CAA2C,SAAS;AAAA,MACjE,GAAG;AAAA,MAEJ;AAAA,4BAAC,kBAAe,WAAU,UAAS;AAAA,QACnC,oBAAC,UAAK,WAAU,WAAU,kBAAI;AAAA;AAAA;AAAA,EAChC;AAEJ;","names":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/components/button.tsx
|
|
22
|
+
var button_exports = {};
|
|
23
|
+
__export(button_exports, {
|
|
24
|
+
Button: () => Button,
|
|
25
|
+
buttonVariants: () => buttonVariants
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(button_exports);
|
|
28
|
+
var import_button = require("@base-ui/react/button");
|
|
29
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
30
|
+
|
|
31
|
+
// src/lib/utils.ts
|
|
32
|
+
var import_clsx = require("clsx");
|
|
33
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
34
|
+
function cn(...inputs) {
|
|
35
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/components/button.tsx
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
41
|
+
[
|
|
42
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium",
|
|
43
|
+
"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth",
|
|
44
|
+
"motion-reduce:transition-none",
|
|
45
|
+
"disabled:status-disabled",
|
|
46
|
+
"focus-visible:focus-ring",
|
|
47
|
+
"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
48
|
+
"shrink-0 group/button select-none no-highlight"
|
|
49
|
+
],
|
|
50
|
+
{
|
|
51
|
+
variants: {
|
|
52
|
+
variant: {
|
|
53
|
+
default: [
|
|
54
|
+
// Base styles
|
|
55
|
+
"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark",
|
|
56
|
+
"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]",
|
|
57
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
58
|
+
// Combined gradient layer with primary colors
|
|
59
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
60
|
+
"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark",
|
|
61
|
+
"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark",
|
|
62
|
+
"before:z-[-1]",
|
|
63
|
+
// Additional outer border
|
|
64
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
65
|
+
"after:bg-gradient-to-br after:from-primary after:to-primary-dark",
|
|
66
|
+
"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none",
|
|
67
|
+
// Hover state
|
|
68
|
+
"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200"
|
|
69
|
+
].join(" "),
|
|
70
|
+
destructive: "bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover",
|
|
71
|
+
outline: [
|
|
72
|
+
// Base styles
|
|
73
|
+
"relative rounded-lg overflow-visible shadow-field border",
|
|
74
|
+
"isolate text-foreground",
|
|
75
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
76
|
+
// Background layer
|
|
77
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
78
|
+
"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50",
|
|
79
|
+
"before:dark:from-border-light before:dark:to-border-dark",
|
|
80
|
+
"before:z-[-1]",
|
|
81
|
+
// Inner background layer
|
|
82
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
83
|
+
"after:bg-background",
|
|
84
|
+
"after:z-[-1]",
|
|
85
|
+
"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none",
|
|
86
|
+
// Hover state
|
|
87
|
+
"hover-only:after:bg-muted"
|
|
88
|
+
].join(" "),
|
|
89
|
+
secondary: "bg-secondary text-secondary-foreground hover-only:hover:bg-accent",
|
|
90
|
+
ghost: "hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100",
|
|
91
|
+
"primary-soft": "bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover",
|
|
92
|
+
"destructive-soft": "bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover",
|
|
93
|
+
success: "bg-success text-success-foreground hover-only:hover:bg-success-hover",
|
|
94
|
+
warning: "bg-warning text-warning-foreground hover-only:hover:bg-warning-hover",
|
|
95
|
+
link: "dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100"
|
|
96
|
+
},
|
|
97
|
+
size: {
|
|
98
|
+
default: "h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]",
|
|
99
|
+
xs: "h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]",
|
|
100
|
+
sm: "h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]",
|
|
101
|
+
lg: "h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]",
|
|
102
|
+
icon: "size-9 motion-safe:active:scale-[0.97]",
|
|
103
|
+
"icon-xs": "size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]",
|
|
104
|
+
"icon-sm": "size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]",
|
|
105
|
+
"icon-lg": "size-10 motion-safe:active:scale-[0.96]"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
defaultVariants: {
|
|
109
|
+
variant: "default",
|
|
110
|
+
size: "default"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
function Button({
|
|
115
|
+
className,
|
|
116
|
+
variant = "default",
|
|
117
|
+
size = "default",
|
|
118
|
+
isPending,
|
|
119
|
+
nativeButton,
|
|
120
|
+
render,
|
|
121
|
+
...props
|
|
122
|
+
}) {
|
|
123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
|
+
import_button.Button,
|
|
125
|
+
{
|
|
126
|
+
"data-slot": "button",
|
|
127
|
+
"data-pending": isPending || void 0,
|
|
128
|
+
"aria-disabled": isPending || void 0,
|
|
129
|
+
nativeButton: nativeButton ?? (render ? false : void 0),
|
|
130
|
+
render,
|
|
131
|
+
className: cn(
|
|
132
|
+
buttonVariants({ variant, size }),
|
|
133
|
+
isPending && "status-pending",
|
|
134
|
+
className
|
|
135
|
+
),
|
|
136
|
+
...props
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
141
|
+
0 && (module.exports = {
|
|
142
|
+
Button,
|
|
143
|
+
buttonVariants
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/button.tsx","../../src/lib/utils.ts"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA0C;AAC1C,sCAAuC;;;ACHvC,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADkGI;AAhGJ,IAAM,qBAAiB;AAAA,EACrB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA;AAAA,UAEP;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,QACF,EAAE,KAAK,GAAG;AAAA,QACV,aACE;AAAA,QACF,SAAS;AAAA;AAAA,UAEP;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,QACF,EAAE,KAAK,GAAG;AAAA,QACV,WACE;AAAA,QACF,OACE;AAAA,QACF,gBACE;AAAA,QACF,oBACE;AAAA,QACF,SACE;AAAA,QACF,SACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WACE;AAAA,QACF,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACiE;AAC/D,SACE;AAAA,IAAC,cAAAA;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc,aAAa;AAAA,MAC3B,iBAAe,aAAa;AAAA,MAC5B,cAAc,iBAAiB,SAAS,QAAQ;AAAA,MAChD;AAAA,MACA,WAAW;AAAA,QACT,eAAe,EAAE,SAAS,KAAK,CAAC;AAAA,QAChC,aAAa;AAAA,QACb;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":["ButtonPrimitive"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "primary-soft" | "destructive-soft" | "success" | "warning" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, isPending, nativeButton, render, ...props }: Button$1.Props & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
isPending?: boolean;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
type ButtonProps = React.ComponentProps<typeof Button>;
|
|
15
|
+
|
|
16
|
+
export { Button, type ButtonProps, buttonVariants };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "primary-soft" | "destructive-soft" | "success" | "warning" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, isPending, nativeButton, render, ...props }: Button$1.Props & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
isPending?: boolean;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
type ButtonProps = React.ComponentProps<typeof Button>;
|
|
15
|
+
|
|
16
|
+
export { Button, type ButtonProps, buttonVariants };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/button.tsx
|
|
4
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
|
|
7
|
+
// src/lib/utils.ts
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { twMerge } from "tailwind-merge";
|
|
10
|
+
function cn(...inputs) {
|
|
11
|
+
return twMerge(clsx(inputs));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// src/components/button.tsx
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
var buttonVariants = cva(
|
|
17
|
+
[
|
|
18
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium",
|
|
19
|
+
"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth",
|
|
20
|
+
"motion-reduce:transition-none",
|
|
21
|
+
"disabled:status-disabled",
|
|
22
|
+
"focus-visible:focus-ring",
|
|
23
|
+
"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
24
|
+
"shrink-0 group/button select-none no-highlight"
|
|
25
|
+
],
|
|
26
|
+
{
|
|
27
|
+
variants: {
|
|
28
|
+
variant: {
|
|
29
|
+
default: [
|
|
30
|
+
// Base styles
|
|
31
|
+
"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark",
|
|
32
|
+
"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]",
|
|
33
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
34
|
+
// Combined gradient layer with primary colors
|
|
35
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
36
|
+
"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark",
|
|
37
|
+
"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark",
|
|
38
|
+
"before:z-[-1]",
|
|
39
|
+
// Additional outer border
|
|
40
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
41
|
+
"after:bg-gradient-to-br after:from-primary after:to-primary-dark",
|
|
42
|
+
"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none",
|
|
43
|
+
// Hover state
|
|
44
|
+
"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200"
|
|
45
|
+
].join(" "),
|
|
46
|
+
destructive: "bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover",
|
|
47
|
+
outline: [
|
|
48
|
+
// Base styles
|
|
49
|
+
"relative rounded-lg overflow-visible shadow-field border",
|
|
50
|
+
"isolate text-foreground",
|
|
51
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
52
|
+
// Background layer
|
|
53
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
54
|
+
"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50",
|
|
55
|
+
"before:dark:from-border-light before:dark:to-border-dark",
|
|
56
|
+
"before:z-[-1]",
|
|
57
|
+
// Inner background layer
|
|
58
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
59
|
+
"after:bg-background",
|
|
60
|
+
"after:z-[-1]",
|
|
61
|
+
"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none",
|
|
62
|
+
// Hover state
|
|
63
|
+
"hover-only:after:bg-muted"
|
|
64
|
+
].join(" "),
|
|
65
|
+
secondary: "bg-secondary text-secondary-foreground hover-only:hover:bg-accent",
|
|
66
|
+
ghost: "hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100",
|
|
67
|
+
"primary-soft": "bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover",
|
|
68
|
+
"destructive-soft": "bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover",
|
|
69
|
+
success: "bg-success text-success-foreground hover-only:hover:bg-success-hover",
|
|
70
|
+
warning: "bg-warning text-warning-foreground hover-only:hover:bg-warning-hover",
|
|
71
|
+
link: "dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100"
|
|
72
|
+
},
|
|
73
|
+
size: {
|
|
74
|
+
default: "h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]",
|
|
75
|
+
xs: "h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]",
|
|
76
|
+
sm: "h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]",
|
|
77
|
+
lg: "h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]",
|
|
78
|
+
icon: "size-9 motion-safe:active:scale-[0.97]",
|
|
79
|
+
"icon-xs": "size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]",
|
|
80
|
+
"icon-sm": "size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]",
|
|
81
|
+
"icon-lg": "size-10 motion-safe:active:scale-[0.96]"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
defaultVariants: {
|
|
85
|
+
variant: "default",
|
|
86
|
+
size: "default"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
function Button({
|
|
91
|
+
className,
|
|
92
|
+
variant = "default",
|
|
93
|
+
size = "default",
|
|
94
|
+
isPending,
|
|
95
|
+
nativeButton,
|
|
96
|
+
render,
|
|
97
|
+
...props
|
|
98
|
+
}) {
|
|
99
|
+
return /* @__PURE__ */ jsx(
|
|
100
|
+
ButtonPrimitive,
|
|
101
|
+
{
|
|
102
|
+
"data-slot": "button",
|
|
103
|
+
"data-pending": isPending || void 0,
|
|
104
|
+
"aria-disabled": isPending || void 0,
|
|
105
|
+
nativeButton: nativeButton ?? (render ? false : void 0),
|
|
106
|
+
render,
|
|
107
|
+
className: cn(
|
|
108
|
+
buttonVariants({ variant, size }),
|
|
109
|
+
isPending && "status-pending",
|
|
110
|
+
className
|
|
111
|
+
),
|
|
112
|
+
...props
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
Button,
|
|
118
|
+
buttonVariants
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/button.tsx","../../src/lib/utils.ts"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAEA,SAAS,UAAU,uBAAuB;AAC1C,SAAS,WAA8B;;;ACHvC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADkGI;AAhGJ,IAAM,iBAAiB;AAAA,EACrB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA;AAAA,UAEP;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,QACF,EAAE,KAAK,GAAG;AAAA,QACV,aACE;AAAA,QACF,SAAS;AAAA;AAAA,UAEP;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,QACF,EAAE,KAAK,GAAG;AAAA,QACV,WACE;AAAA,QACF,OACE;AAAA,QACF,gBACE;AAAA,QACF,oBACE;AAAA,QACF,SACE;AAAA,QACF,SACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WACE;AAAA,QACF,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACiE;AAC/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc,aAAa;AAAA,MAC3B,iBAAe,aAAa;AAAA,MAC5B,cAAc,iBAAiB,SAAS,QAAQ;AAAA,MAChD;AAAA,MACA,WAAW;AAAA,QACT,eAAe,EAAE,SAAS,KAAK,CAAC;AAAA,QAChC,aAAa;AAAA,QACb;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/components/card.tsx
|
|
22
|
+
var card_exports = {};
|
|
23
|
+
__export(card_exports, {
|
|
24
|
+
Card: () => Card,
|
|
25
|
+
CardContent: () => CardContent,
|
|
26
|
+
CardDescription: () => CardDescription,
|
|
27
|
+
CardFooter: () => CardFooter,
|
|
28
|
+
CardHeader: () => CardHeader,
|
|
29
|
+
CardTitle: () => CardTitle,
|
|
30
|
+
cardVariants: () => cardVariants
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(card_exports);
|
|
33
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
34
|
+
|
|
35
|
+
// src/lib/utils.ts
|
|
36
|
+
var import_clsx = require("clsx");
|
|
37
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
38
|
+
function cn(...inputs) {
|
|
39
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/components/card.tsx
|
|
43
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
44
|
+
var cardVariants = (0, import_class_variance_authority.cva)(
|
|
45
|
+
[
|
|
46
|
+
"relative flex flex-col gap-3 overflow-hidden rounded-xl p-4",
|
|
47
|
+
"text-foreground",
|
|
48
|
+
"transition-[transform,box-shadow,border-color] duration-200 ease-out-fluid motion-reduce:transition-none"
|
|
49
|
+
],
|
|
50
|
+
{
|
|
51
|
+
variants: {
|
|
52
|
+
variant: {
|
|
53
|
+
default: "bg-surface shadow-surface",
|
|
54
|
+
secondary: "bg-surface-secondary shadow-surface",
|
|
55
|
+
tertiary: "bg-surface-tertiary shadow-surface",
|
|
56
|
+
elevated: "bg-surface shadow-overlay",
|
|
57
|
+
transparent: "bg-transparent shadow-none"
|
|
58
|
+
},
|
|
59
|
+
interactive: {
|
|
60
|
+
true: "cursor-pointer hover-only:hover:-translate-y-0.5 hover-only:hover:shadow-overlay motion-safe:active:scale-[0.99]"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
defaultVariants: { variant: "default" }
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
function Card({
|
|
67
|
+
className,
|
|
68
|
+
variant,
|
|
69
|
+
interactive,
|
|
70
|
+
...props
|
|
71
|
+
}) {
|
|
72
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
73
|
+
"div",
|
|
74
|
+
{
|
|
75
|
+
"data-slot": "card",
|
|
76
|
+
className: cn(cardVariants({ variant, interactive }), className),
|
|
77
|
+
...props
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
function CardHeader({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
83
|
+
"div",
|
|
84
|
+
{
|
|
85
|
+
"data-slot": "card-header",
|
|
86
|
+
className: cn("flex flex-col", className),
|
|
87
|
+
...props
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
function CardTitle({ className, ...props }) {
|
|
92
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
93
|
+
"h3",
|
|
94
|
+
{
|
|
95
|
+
"data-slot": "card-title",
|
|
96
|
+
className: cn("text-sm font-medium", className),
|
|
97
|
+
...props
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
function CardDescription({ className, ...props }) {
|
|
102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
103
|
+
"p",
|
|
104
|
+
{
|
|
105
|
+
"data-slot": "card-description",
|
|
106
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
107
|
+
...props
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
function CardContent({ className, ...props }) {
|
|
112
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
113
|
+
"div",
|
|
114
|
+
{
|
|
115
|
+
"data-slot": "card-content",
|
|
116
|
+
className: cn("flex flex-1 flex-col gap-1", className),
|
|
117
|
+
...props
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
function CardFooter({ className, ...props }) {
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
123
|
+
"div",
|
|
124
|
+
{
|
|
125
|
+
"data-slot": "card-footer",
|
|
126
|
+
className: cn("flex items-center gap-2", className),
|
|
127
|
+
...props
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
132
|
+
0 && (module.exports = {
|
|
133
|
+
Card,
|
|
134
|
+
CardContent,
|
|
135
|
+
CardDescription,
|
|
136
|
+
CardFooter,
|
|
137
|
+
CardHeader,
|
|
138
|
+
CardTitle,
|
|
139
|
+
cardVariants
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=card.cjs.map
|