@aereamart/design-system 0.3.6 → 0.4.2
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/cn.d.ts +2 -1
- package/dist/cn.js +4 -2
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-mobile.js +15 -0
- package/dist/index.d.ts +48 -37
- package/dist/index.js +48 -37
- package/dist/ui/accordion.d.ts +7 -0
- package/dist/ui/accordion.js +17 -0
- package/dist/ui/alert-dialog.d.ts +18 -0
- package/dist/ui/alert-dialog.js +42 -0
- package/dist/ui/alert.d.ts +9 -0
- package/dist/ui/alert.js +24 -0
- package/dist/ui/aspect-ratio.d.ts +3 -0
- package/dist/ui/aspect-ratio.js +6 -0
- package/dist/ui/avatar.d.ts +11 -0
- package/dist/ui/avatar.js +23 -0
- package/dist/ui/badge.d.ts +9 -0
- package/dist/ui/badge.js +24 -0
- package/dist/ui/breadcrumb.d.ts +11 -0
- package/dist/ui/breadcrumb.js +27 -0
- package/dist/ui/button.d.ts +10 -0
- package/dist/ui/button.js +35 -0
- package/dist/ui/calendar.d.ts +8 -0
- package/dist/ui/calendar.js +75 -0
- package/dist/ui/card.d.ts +9 -0
- package/dist/ui/card.js +24 -0
- package/dist/ui/carousel.d.ts +19 -0
- package/dist/ui/carousel.js +91 -0
- package/dist/ui/chart.d.ts +44 -0
- package/dist/ui/chart.js +132 -0
- package/dist/ui/checkbox.d.ts +4 -0
- package/dist/ui/checkbox.js +8 -0
- package/dist/ui/collapsible.d.ts +5 -0
- package/dist/ui/collapsible.js +13 -0
- package/dist/ui/command.d.ts +18 -0
- package/dist/ui/command.js +34 -0
- package/dist/ui/context-menu.d.ts +25 -0
- package/dist/ui/context-menu.js +51 -0
- package/dist/ui/dialog.d.ts +17 -0
- package/dist/ui/dialog.js +36 -0
- package/dist/ui/drawer.d.ts +13 -0
- package/dist/ui/drawer.js +35 -0
- package/dist/ui/dropdown-menu.d.ts +25 -0
- package/dist/ui/dropdown-menu.js +50 -0
- package/dist/ui/form.d.ts +24 -0
- package/dist/ui/form.js +58 -0
- package/dist/ui/hover-card.d.ts +6 -0
- package/dist/ui/hover-card.js +13 -0
- package/dist/ui/input-otp.d.ts +11 -0
- package/dist/ui/input-otp.js +21 -0
- package/dist/ui/input.d.ts +3 -0
- package/dist/ui/input.js +6 -0
- package/dist/ui/label.d.ts +4 -0
- package/dist/ui/label.js +8 -0
- package/dist/ui/menubar.d.ts +26 -0
- package/dist/ui/menubar.js +53 -0
- package/dist/ui/navigation-menu.d.ts +14 -0
- package/dist/ui/navigation-menu.js +31 -0
- package/dist/ui/pagination.d.ts +13 -0
- package/dist/ui/pagination.js +29 -0
- package/dist/ui/popover.d.ts +10 -0
- package/dist/ui/popover.js +26 -0
- package/dist/ui/progress.d.ts +4 -0
- package/dist/ui/progress.js +7 -0
- package/dist/ui/radio-group.d.ts +5 -0
- package/dist/ui/radio-group.js +12 -0
- package/dist/ui/resizable.d.ts +7 -0
- package/dist/ui/resizable.js +14 -0
- package/dist/ui/scroll-area.d.ts +5 -0
- package/dist/ui/scroll-area.js +12 -0
- package/dist/ui/select.d.ts +15 -0
- package/dist/ui/select.js +38 -0
- package/dist/ui/separator.d.ts +4 -0
- package/dist/ui/separator.js +7 -0
- package/dist/ui/sheet.d.ts +14 -0
- package/dist/ui/sheet.js +40 -0
- package/dist/ui/sidebar.d.ts +69 -0
- package/dist/ui/sidebar.js +211 -0
- package/dist/ui/skeleton.d.ts +2 -0
- package/dist/ui/skeleton.js +6 -0
- package/dist/ui/slider.d.ts +4 -0
- package/dist/ui/slider.js +13 -0
- package/dist/ui/sonner.d.ts +3 -0
- package/dist/ui/sonner.js +21 -0
- package/dist/ui/switch.d.ts +6 -0
- package/dist/ui/switch.js +7 -0
- package/dist/ui/table.d.ts +10 -0
- package/dist/ui/table.js +28 -0
- package/dist/ui/tabs.d.ts +11 -0
- package/dist/ui/tabs.js +28 -0
- package/dist/ui/textarea.d.ts +3 -0
- package/dist/ui/textarea.js +6 -0
- package/dist/ui/toggle-group.d.ts +9 -0
- package/dist/ui/toggle-group.js +22 -0
- package/dist/ui/toggle.d.ts +9 -0
- package/dist/ui/toggle.js +26 -0
- package/dist/ui/tooltip.d.ts +7 -0
- package/dist/ui/tooltip.js +16 -0
- package/package.json +28 -4
- package/src/cn.ts +5 -2
- package/src/hooks/use-mobile.ts +19 -0
- package/src/index.css +158 -0
- package/src/index.ts +48 -37
- package/src/ui/accordion.tsx +63 -0
- package/src/ui/alert-dialog.tsx +196 -0
- package/src/ui/alert.tsx +65 -0
- package/src/ui/aspect-ratio.tsx +9 -0
- package/src/ui/avatar.tsx +108 -0
- package/src/ui/badge.tsx +47 -0
- package/src/ui/breadcrumb.tsx +108 -0
- package/src/ui/button.tsx +63 -0
- package/src/ui/calendar.tsx +218 -0
- package/src/ui/card.tsx +91 -0
- package/src/ui/carousel.tsx +241 -0
- package/src/ui/chart.tsx +371 -0
- package/src/ui/checkbox.tsx +29 -0
- package/src/ui/collapsible.tsx +33 -0
- package/src/ui/command.tsx +184 -0
- package/src/ui/context-menu.tsx +251 -0
- package/src/ui/dialog.tsx +156 -0
- package/src/ui/drawer.tsx +134 -0
- package/src/ui/dropdown-menu.tsx +254 -0
- package/src/ui/form.tsx +165 -0
- package/src/ui/hover-card.tsx +41 -0
- package/src/ui/input-otp.tsx +76 -0
- package/src/ui/input.tsx +20 -0
- package/src/ui/label.tsx +23 -0
- package/src/ui/menubar.tsx +273 -0
- package/src/ui/navigation-menu.tsx +167 -0
- package/src/ui/pagination.tsx +127 -0
- package/src/ui/popover.tsx +88 -0
- package/src/ui/progress.tsx +28 -0
- package/src/ui/radio-group.tsx +44 -0
- package/src/ui/resizable.tsx +50 -0
- package/src/ui/scroll-area.tsx +55 -0
- package/src/ui/select.tsx +189 -0
- package/src/ui/separator.tsx +25 -0
- package/src/ui/sheet.tsx +142 -0
- package/src/ui/sidebar.tsx +724 -0
- package/src/ui/skeleton.tsx +13 -0
- package/src/ui/slider.tsx +60 -0
- package/src/ui/sonner.tsx +40 -0
- package/src/ui/switch.tsx +32 -0
- package/src/ui/table.tsx +115 -0
- package/src/ui/tabs.tsx +88 -0
- package/src/ui/textarea.tsx +17 -0
- package/src/ui/toggle-group.tsx +83 -0
- package/src/ui/toggle.tsx +46 -0
- package/src/ui/tooltip.tsx +54 -0
- package/dist/Accordion.d.ts +0 -10
- package/dist/Accordion.js +0 -12
- package/dist/AlertBanner.d.ts +0 -9
- package/dist/AlertBanner.js +0 -21
- package/dist/AppBar.d.ts +0 -7
- package/dist/AppBar.js +0 -5
- package/dist/Avatar.d.ts +0 -6
- package/dist/Avatar.js +0 -20
- package/dist/Badge.d.ts +0 -6
- package/dist/Badge.js +0 -11
- package/dist/BottomSheet.d.ts +0 -8
- package/dist/BottomSheet.js +0 -24
- package/dist/Breadcrumb.d.ts +0 -8
- package/dist/Breadcrumb.js +0 -9
- package/dist/Button.d.ts +0 -9
- package/dist/Button.js +0 -18
- package/dist/Card.d.ts +0 -7
- package/dist/Card.js +0 -6
- package/dist/Checkbox.d.ts +0 -5
- package/dist/Checkbox.js +0 -5
- package/dist/Chip.d.ts +0 -7
- package/dist/Chip.js +0 -15
- package/dist/DataTable.d.ts +0 -15
- package/dist/DataTable.js +0 -7
- package/dist/DatePicker.d.ts +0 -5
- package/dist/DatePicker.js +0 -11
- package/dist/Divider.d.ts +0 -5
- package/dist/Divider.js +0 -11
- package/dist/Drawer.d.ts +0 -10
- package/dist/Drawer.js +0 -24
- package/dist/EmptyState.d.ts +0 -7
- package/dist/EmptyState.js +0 -6
- package/dist/Input.d.ts +0 -5
- package/dist/Input.js +0 -7
- package/dist/Link.d.ts +0 -4
- package/dist/Link.js +0 -6
- package/dist/Menu.d.ts +0 -14
- package/dist/Menu.js +0 -29
- package/dist/Modal.d.ts +0 -9
- package/dist/Modal.js +0 -24
- package/dist/NavigationBar.d.ts +0 -14
- package/dist/NavigationBar.js +0 -22
- package/dist/Pagination.d.ts +0 -7
- package/dist/Pagination.js +0 -24
- package/dist/Popover.d.ts +0 -7
- package/dist/Popover.js +0 -9
- package/dist/Progress.d.ts +0 -8
- package/dist/Progress.js +0 -15
- package/dist/Radio.d.ts +0 -15
- package/dist/Radio.js +0 -8
- package/dist/SegmentedControl.d.ts +0 -13
- package/dist/SegmentedControl.js +0 -18
- package/dist/Select.d.ts +0 -5
- package/dist/Select.js +0 -7
- package/dist/Sidebar.d.ts +0 -16
- package/dist/Sidebar.js +0 -19
- package/dist/Slider.d.ts +0 -5
- package/dist/Slider.js +0 -5
- package/dist/Snackbar.d.ts +0 -12
- package/dist/Snackbar.js +0 -20
- package/dist/Spinner.d.ts +0 -3
- package/dist/Spinner.js +0 -5
- package/dist/Switch.d.ts +0 -4
- package/dist/Switch.js +0 -5
- package/dist/Tabs.d.ts +0 -14
- package/dist/Tabs.js +0 -24
- package/dist/Tag.d.ts +0 -6
- package/dist/Tag.js +0 -11
- package/dist/Textarea.d.ts +0 -5
- package/dist/Textarea.js +0 -7
- package/dist/Tooltip.d.ts +0 -7
- package/dist/Tooltip.js +0 -5
- package/dist/TreeView.d.ts +0 -12
- package/dist/TreeView.js +0 -34
- package/src/Accordion.tsx +0 -58
- package/src/AlertBanner.tsx +0 -62
- package/src/AppBar.tsx +0 -29
- package/src/Avatar.tsx +0 -42
- package/src/Badge.tsx +0 -27
- package/src/BottomSheet.tsx +0 -60
- package/src/Breadcrumb.tsx +0 -48
- package/src/Button.tsx +0 -54
- package/src/Card.tsx +0 -39
- package/src/Checkbox.tsx +0 -31
- package/src/Chip.tsx +0 -44
- package/src/DataTable.tsx +0 -64
- package/src/DatePicker.tsx +0 -44
- package/src/Divider.tsx +0 -33
- package/src/Drawer.tsx +0 -71
- package/src/EmptyState.tsx +0 -37
- package/src/Input.tsx +0 -30
- package/src/Link.tsx +0 -22
- package/src/Menu.tsx +0 -73
- package/src/Modal.tsx +0 -62
- package/src/NavigationBar.tsx +0 -68
- package/src/Pagination.tsx +0 -69
- package/src/Popover.tsx +0 -34
- package/src/Progress.tsx +0 -53
- package/src/Radio.tsx +0 -49
- package/src/SegmentedControl.tsx +0 -63
- package/src/Select.tsx +0 -32
- package/src/Sidebar.tsx +0 -73
- package/src/Slider.tsx +0 -33
- package/src/Snackbar.tsx +0 -72
- package/src/Spinner.tsx +0 -19
- package/src/Switch.tsx +0 -40
- package/src/Tabs.tsx +0 -77
- package/src/Tag.tsx +0 -29
- package/src/Textarea.tsx +0 -30
- package/src/Tooltip.tsx +0 -25
- package/src/TreeView.tsx +0 -105
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "../cn";
|
|
5
|
+
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
|
|
6
|
+
import { toggleVariants } from "./toggle";
|
|
7
|
+
const ToggleGroupContext = React.createContext({
|
|
8
|
+
size: "default",
|
|
9
|
+
variant: "default",
|
|
10
|
+
spacing: 0,
|
|
11
|
+
});
|
|
12
|
+
function ToggleGroup({ className, variant, size, spacing = 0, children, ...props }) {
|
|
13
|
+
return (_jsx(ToggleGroupPrimitive.Root, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, style: { "--gap": spacing }, className: cn("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs", className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children: children }) }));
|
|
14
|
+
}
|
|
15
|
+
function ToggleGroupItem({ className, children, variant, size, ...props }) {
|
|
16
|
+
const context = React.useContext(ToggleGroupContext);
|
|
17
|
+
return (_jsx(ToggleGroupPrimitive.Item, { "data-slot": "toggle-group-item", "data-variant": context.variant || variant, "data-size": context.size || size, "data-spacing": context.spacing, className: cn(toggleVariants({
|
|
18
|
+
variant: context.variant || variant,
|
|
19
|
+
size: context.size || size,
|
|
20
|
+
}), "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10", "data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l", className), ...props, children: children }));
|
|
21
|
+
}
|
|
22
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { Toggle as TogglePrimitive } from "radix-ui";
|
|
4
|
+
declare const toggleVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "outline" | null | undefined;
|
|
6
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare function Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>): React.JSX.Element;
|
|
9
|
+
export { Toggle, toggleVariants };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../cn";
|
|
5
|
+
import { Toggle as TogglePrimitive } from "radix-ui";
|
|
6
|
+
const toggleVariants = cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "bg-transparent",
|
|
10
|
+
outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground",
|
|
11
|
+
},
|
|
12
|
+
size: {
|
|
13
|
+
default: "h-9 min-w-9 px-2",
|
|
14
|
+
sm: "h-8 min-w-8 px-1.5",
|
|
15
|
+
lg: "h-10 min-w-10 px-2.5",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
variant: "default",
|
|
20
|
+
size: "default",
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
function Toggle({ className, variant, size, ...props }) {
|
|
24
|
+
return (_jsx(TogglePrimitive.Root, { "data-slot": "toggle", className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
25
|
+
}
|
|
26
|
+
export { Toggle, toggleVariants };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
3
|
+
declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): React.JSX.Element;
|
|
4
|
+
declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): React.JSX.Element;
|
|
5
|
+
declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): React.JSX.Element;
|
|
6
|
+
declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): React.JSX.Element;
|
|
7
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../cn";
|
|
3
|
+
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
4
|
+
function TooltipProvider({ delayDuration = 0, ...props }) {
|
|
5
|
+
return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
|
|
6
|
+
}
|
|
7
|
+
function Tooltip({ ...props }) {
|
|
8
|
+
return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
9
|
+
}
|
|
10
|
+
function TooltipTrigger({ ...props }) {
|
|
11
|
+
return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
12
|
+
}
|
|
13
|
+
function TooltipContent({ className, sideOffset = 0, children, ...props }) {
|
|
14
|
+
return (_jsx(TooltipPrimitive.Portal, { children: _jsxs(TooltipPrimitive.Content, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" })] }) }));
|
|
15
|
+
}
|
|
16
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aereamart/design-system",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Aereamart
|
|
3
|
+
"version": "0.4.2",
|
|
4
|
+
"description": "Aereamart design system — stock shadcn/ui (new-york) components + default zinc theme, one package.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
12
|
"import": "./dist/index.js"
|
|
13
|
-
}
|
|
13
|
+
},
|
|
14
|
+
"./src/*": "./src/*",
|
|
15
|
+
"./styles.css": "./src/index.css",
|
|
16
|
+
"./brand.css": "./src/brand.css",
|
|
17
|
+
"./package.json": "./package.json"
|
|
14
18
|
},
|
|
15
19
|
"files": [
|
|
16
20
|
"dist",
|
|
@@ -26,7 +30,27 @@
|
|
|
26
30
|
"react-dom": "^19.2.8"
|
|
27
31
|
},
|
|
28
32
|
"dependencies": {
|
|
29
|
-
"
|
|
33
|
+
"@fontsource-variable/geist": "^5.3.0",
|
|
34
|
+
"@fontsource-variable/geist-mono": "^5.3.0",
|
|
35
|
+
"@hookform/resolvers": "^5.9.1",
|
|
36
|
+
"class-variance-authority": "^0.7.1",
|
|
37
|
+
"clsx": "^2.1.1",
|
|
38
|
+
"cmdk": "^1.1.1",
|
|
39
|
+
"date-fns": "^4.4.0",
|
|
40
|
+
"embla-carousel-react": "^8.6.0",
|
|
41
|
+
"input-otp": "^1.5.0",
|
|
42
|
+
"lucide-react": "^1.30.0",
|
|
43
|
+
"next-themes": "^0.4.6",
|
|
44
|
+
"radix-ui": "^1.6.7",
|
|
45
|
+
"react-day-picker": "^10.0.1",
|
|
46
|
+
"react-hook-form": "^7.88.0",
|
|
47
|
+
"react-resizable-panels": "^4.12.4",
|
|
48
|
+
"recharts": "^3.8.0",
|
|
49
|
+
"sonner": "^2.0.8",
|
|
50
|
+
"tailwind-merge": "^3.3.1",
|
|
51
|
+
"tw-animate-css": "^1.3.4",
|
|
52
|
+
"vaul": "^1.1.2",
|
|
53
|
+
"zod": "^3.25.76"
|
|
30
54
|
},
|
|
31
55
|
"devDependencies": {
|
|
32
56
|
"@types/react": "^19.2.17",
|
package/src/cn.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { clsx, type ClassValue } from "clsx";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
|
|
4
|
+
export function cn(...inputs: ClassValue[]) {
|
|
5
|
+
return twMerge(clsx(inputs));
|
|
3
6
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
|
|
3
|
+
const MOBILE_BREAKPOINT = 768
|
|
4
|
+
|
|
5
|
+
export function useIsMobile() {
|
|
6
|
+
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
|
|
7
|
+
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
|
|
10
|
+
const onChange = () => {
|
|
11
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
|
12
|
+
}
|
|
13
|
+
mql.addEventListener("change", onChange)
|
|
14
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
|
15
|
+
return () => mql.removeEventListener("change", onChange)
|
|
16
|
+
}, [])
|
|
17
|
+
|
|
18
|
+
return !!isMobile
|
|
19
|
+
}
|
package/src/index.css
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Aereamart design system — stock shadcn/ui (new-york) default theme.
|
|
3
|
+
*
|
|
4
|
+
* Exactly what `shadcn init` generates with baseColor: zinc — no branding,
|
|
5
|
+
* no custom palettes. Components reference semantic variables only
|
|
6
|
+
* (--primary, --background, --ring, …), so a brand can be layered later by
|
|
7
|
+
* overriding these vars (see future brand.css) without touching components.
|
|
8
|
+
*
|
|
9
|
+
* Consumers:
|
|
10
|
+
* @import "tailwindcss";
|
|
11
|
+
* @import "@aereamart/design-system/src/index.css";
|
|
12
|
+
* @source "../node_modules/@aereamart/design-system/src";
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
@import "tailwindcss";
|
|
16
|
+
@import "tw-animate-css";
|
|
17
|
+
@import "@fontsource-variable/geist";
|
|
18
|
+
@import "@fontsource-variable/geist-mono";
|
|
19
|
+
|
|
20
|
+
@custom-variant dark (&:is(.dark *));
|
|
21
|
+
|
|
22
|
+
:root {
|
|
23
|
+
--radius: 0.625rem;
|
|
24
|
+
--background: oklch(1 0 0);
|
|
25
|
+
--foreground: oklch(0.141 0.005 285.823);
|
|
26
|
+
--card: oklch(1 0 0);
|
|
27
|
+
--card-foreground: oklch(0.141 0.005 285.823);
|
|
28
|
+
--popover: oklch(1 0 0);
|
|
29
|
+
--popover-foreground: oklch(0.141 0.005 285.823);
|
|
30
|
+
--primary: oklch(0.21 0.006 285.885);
|
|
31
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
32
|
+
--secondary: oklch(0.967 0.001 286.375);
|
|
33
|
+
--secondary-foreground: oklch(0.21 0.006 285.885);
|
|
34
|
+
--muted: oklch(0.967 0.001 286.375);
|
|
35
|
+
--muted-foreground: oklch(0.552 0.016 285.938);
|
|
36
|
+
--accent: oklch(0.967 0.001 286.375);
|
|
37
|
+
--accent-foreground: oklch(0.21 0.006 285.885);
|
|
38
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
39
|
+
--success: oklch(0.596 0.145 163.225);
|
|
40
|
+
--success-foreground: oklch(0.985 0 0);
|
|
41
|
+
--warning: oklch(0.703 0.154 57.533);
|
|
42
|
+
--warning-foreground: oklch(0.985 0 0);
|
|
43
|
+
--info: oklch(0.542 0.132 259.863);
|
|
44
|
+
--info-foreground: oklch(0.985 0 0);
|
|
45
|
+
--border: oklch(0.92 0.004 286.32);
|
|
46
|
+
--input: oklch(0.92 0.004 286.32);
|
|
47
|
+
--ring: oklch(0.705 0.015 286.067);
|
|
48
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
49
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
50
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
51
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
52
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
53
|
+
--sidebar: oklch(0.985 0 0);
|
|
54
|
+
--sidebar-foreground: oklch(0.141 0.005 285.823);
|
|
55
|
+
--sidebar-primary: oklch(0.21 0.006 285.885);
|
|
56
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
57
|
+
--sidebar-accent: oklch(0.967 0.001 286.375);
|
|
58
|
+
--sidebar-accent-foreground: oklch(0.21 0.006 285.885);
|
|
59
|
+
--sidebar-border: oklch(0.92 0.004 286.32);
|
|
60
|
+
--sidebar-ring: oklch(0.705 0.015 286.067);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.dark {
|
|
64
|
+
--background: hwb(240 4% 96%);
|
|
65
|
+
--foreground: oklch(0.985 0 0);
|
|
66
|
+
--card: oklch(0.21 0.006 285.885);
|
|
67
|
+
--card-foreground: oklch(0.985 0 0);
|
|
68
|
+
--popover: oklch(0.21 0.006 285.885);
|
|
69
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
70
|
+
--primary: oklch(0.92 0.004 286.32);
|
|
71
|
+
--primary-foreground: oklch(0.21 0.006 285.885);
|
|
72
|
+
--secondary: oklch(0.274 0.006 286.033);
|
|
73
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
74
|
+
--muted: oklch(0.274 0.006 286.033);
|
|
75
|
+
--muted-foreground: oklch(0.705 0.015 286.067);
|
|
76
|
+
--accent: oklch(0.274 0.006 286.033);
|
|
77
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
78
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
79
|
+
--success: oklch(0.696 0.17 162.48);
|
|
80
|
+
--success-foreground: oklch(0.141 0.005 285.823);
|
|
81
|
+
--warning: oklch(0.769 0.188 70.08);
|
|
82
|
+
--warning-foreground: oklch(0.141 0.005 285.823);
|
|
83
|
+
--info: oklch(0.623 0.214 259.815);
|
|
84
|
+
--info-foreground: oklch(0.141 0.005 285.823);
|
|
85
|
+
--border: oklch(1 0 0 / 10%);
|
|
86
|
+
--input: oklch(1 0 0 / 15%);
|
|
87
|
+
--ring: oklch(0.552 0.016 285.938);
|
|
88
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
89
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
90
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
91
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
92
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
93
|
+
--sidebar: oklch(0.21 0.006 285.885);
|
|
94
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
95
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
96
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
97
|
+
--sidebar-accent: oklch(0.274 0.006 286.033);
|
|
98
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
99
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
100
|
+
--sidebar-ring: oklch(0.552 0.016 285.938);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@theme inline {
|
|
104
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
105
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
106
|
+
--radius-lg: var(--radius);
|
|
107
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
108
|
+
--color-background: var(--background);
|
|
109
|
+
--color-foreground: var(--foreground);
|
|
110
|
+
--color-card: var(--card);
|
|
111
|
+
--color-card-foreground: var(--card-foreground);
|
|
112
|
+
--color-popover: var(--popover);
|
|
113
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
114
|
+
--color-primary: var(--primary);
|
|
115
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
116
|
+
--color-secondary: var(--secondary);
|
|
117
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
118
|
+
--color-muted: var(--muted);
|
|
119
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
120
|
+
--color-accent: var(--accent);
|
|
121
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
122
|
+
--color-destructive: var(--destructive);
|
|
123
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
124
|
+
--color-success: var(--success);
|
|
125
|
+
--color-success-foreground: var(--success-foreground);
|
|
126
|
+
--color-warning: var(--warning);
|
|
127
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
128
|
+
--color-info: var(--info);
|
|
129
|
+
--color-info-foreground: var(--info-foreground);
|
|
130
|
+
--color-border: var(--border);
|
|
131
|
+
--color-input: var(--input);
|
|
132
|
+
--color-ring: var(--ring);
|
|
133
|
+
--color-chart-1: var(--chart-1);
|
|
134
|
+
--color-chart-2: var(--chart-2);
|
|
135
|
+
--color-chart-3: var(--chart-3);
|
|
136
|
+
--color-chart-4: var(--chart-4);
|
|
137
|
+
--color-chart-5: var(--chart-5);
|
|
138
|
+
--color-sidebar: var(--sidebar);
|
|
139
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
140
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
141
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
142
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
143
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
144
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
145
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
146
|
+
--font-sans: "Geist Variable", ui-sans-serif, system-ui, sans-serif;
|
|
147
|
+
--font-display: "Geist Variable", ui-sans-serif, system-ui, sans-serif;
|
|
148
|
+
--font-mono: "Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@layer base {
|
|
152
|
+
* {
|
|
153
|
+
@apply border-border outline-ring/50;
|
|
154
|
+
}
|
|
155
|
+
body {
|
|
156
|
+
@apply bg-background text-foreground;
|
|
157
|
+
}
|
|
158
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,38 +1,49 @@
|
|
|
1
1
|
export { cn } from './cn';
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
37
|
-
export
|
|
38
|
-
export
|
|
2
|
+
export { toast } from 'sonner';
|
|
3
|
+
export * from './hooks/use-mobile';
|
|
4
|
+
export * from './ui/accordion';
|
|
5
|
+
export * from './ui/alert';
|
|
6
|
+
export * from './ui/alert-dialog';
|
|
7
|
+
export * from './ui/aspect-ratio';
|
|
8
|
+
export * from './ui/avatar';
|
|
9
|
+
export * from './ui/badge';
|
|
10
|
+
export * from './ui/breadcrumb';
|
|
11
|
+
export * from './ui/button';
|
|
12
|
+
export * from './ui/calendar';
|
|
13
|
+
export * from './ui/card';
|
|
14
|
+
export * from './ui/carousel';
|
|
15
|
+
export * from './ui/chart';
|
|
16
|
+
export * from './ui/checkbox';
|
|
17
|
+
export * from './ui/collapsible';
|
|
18
|
+
export * from './ui/command';
|
|
19
|
+
export * from './ui/context-menu';
|
|
20
|
+
export * from './ui/dialog';
|
|
21
|
+
export * from './ui/drawer';
|
|
22
|
+
export * from './ui/dropdown-menu';
|
|
23
|
+
export * from './ui/form';
|
|
24
|
+
export * from './ui/hover-card';
|
|
25
|
+
export * from './ui/input';
|
|
26
|
+
export * from './ui/input-otp';
|
|
27
|
+
export * from './ui/label';
|
|
28
|
+
export * from './ui/menubar';
|
|
29
|
+
export * from './ui/navigation-menu';
|
|
30
|
+
export * from './ui/pagination';
|
|
31
|
+
export * from './ui/popover';
|
|
32
|
+
export * from './ui/progress';
|
|
33
|
+
export * from './ui/radio-group';
|
|
34
|
+
export * from './ui/resizable';
|
|
35
|
+
export * from './ui/scroll-area';
|
|
36
|
+
export * from './ui/select';
|
|
37
|
+
export * from './ui/separator';
|
|
38
|
+
export * from './ui/sheet';
|
|
39
|
+
export * from './ui/sidebar';
|
|
40
|
+
export * from './ui/skeleton';
|
|
41
|
+
export * from './ui/slider';
|
|
42
|
+
export * from './ui/sonner';
|
|
43
|
+
export * from './ui/switch';
|
|
44
|
+
export * from './ui/table';
|
|
45
|
+
export * from './ui/tabs';
|
|
46
|
+
export * from './ui/textarea';
|
|
47
|
+
export * from './ui/toggle';
|
|
48
|
+
export * from './ui/toggle-group';
|
|
49
|
+
export * from './ui/tooltip';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { cn } from "../cn"
|
|
3
|
+
import { ChevronDownIcon } from "lucide-react"
|
|
4
|
+
import { Accordion as AccordionPrimitive } from "radix-ui"
|
|
5
|
+
|
|
6
|
+
function Accordion({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof AccordionPrimitive.Root>) {
|
|
9
|
+
return <AccordionPrimitive.Root data-slot="accordion" {...props} />
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function AccordionItem({
|
|
13
|
+
className,
|
|
14
|
+
...props
|
|
15
|
+
}: React.ComponentProps<typeof AccordionPrimitive.Item>) {
|
|
16
|
+
return (
|
|
17
|
+
<AccordionPrimitive.Item
|
|
18
|
+
data-slot="accordion-item"
|
|
19
|
+
className={cn("border-b last:border-b-0", className)}
|
|
20
|
+
{...props}
|
|
21
|
+
/>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function AccordionTrigger({
|
|
26
|
+
className,
|
|
27
|
+
children,
|
|
28
|
+
...props
|
|
29
|
+
}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {
|
|
30
|
+
return (
|
|
31
|
+
<AccordionPrimitive.Header className="flex">
|
|
32
|
+
<AccordionPrimitive.Trigger
|
|
33
|
+
data-slot="accordion-trigger"
|
|
34
|
+
className={cn(
|
|
35
|
+
"flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
|
|
36
|
+
className
|
|
37
|
+
)}
|
|
38
|
+
{...props}
|
|
39
|
+
>
|
|
40
|
+
{children}
|
|
41
|
+
<ChevronDownIcon className="pointer-events-none size-4 shrink-0 translate-y-0.5 text-muted-foreground transition-transform duration-200" />
|
|
42
|
+
</AccordionPrimitive.Trigger>
|
|
43
|
+
</AccordionPrimitive.Header>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function AccordionContent({
|
|
48
|
+
className,
|
|
49
|
+
children,
|
|
50
|
+
...props
|
|
51
|
+
}: React.ComponentProps<typeof AccordionPrimitive.Content>) {
|
|
52
|
+
return (
|
|
53
|
+
<AccordionPrimitive.Content
|
|
54
|
+
data-slot="accordion-content"
|
|
55
|
+
className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
|
|
56
|
+
{...props}
|
|
57
|
+
>
|
|
58
|
+
<div className={cn("pt-0 pb-4", className)}>{children}</div>
|
|
59
|
+
</AccordionPrimitive.Content>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
|