@djangocfg/ui-core 2.1.352 → 2.1.354
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/package.json +4 -4
- package/src/components/data/badge/index.tsx +1 -1
- package/src/components/data/calendar/calendar.tsx +1 -1
- package/src/components/data/chart/index.tsx +1 -1
- package/src/components/data/toggle/index.tsx +1 -1
- package/src/components/feedback/alert/index.tsx +1 -1
- package/src/components/feedback/empty/index.tsx +2 -2
- package/src/components/forms/button/index.tsx +4 -4
- package/src/components/forms/button-group/index.tsx +1 -1
- package/src/components/forms/field/index.tsx +1 -1
- package/src/components/forms/input/index.tsx +2 -2
- package/src/components/forms/input-group/index.tsx +2 -2
- package/src/components/forms/textarea/index.tsx +2 -2
- package/src/components/layout/card/index.tsx +1 -1
- package/src/components/navigation/command/index.tsx +3 -3
- package/src/components/navigation/context-menu/index.tsx +6 -6
- package/src/components/navigation/dropdown-menu/index.tsx +6 -6
- package/src/components/navigation/menubar/index.tsx +8 -8
- package/src/components/navigation/navigation-menu/index.tsx +2 -2
- package/src/components/navigation/tabs/index.tsx +3 -3
- package/src/components/overlay/alert-dialog/index.tsx +1 -1
- package/src/components/overlay/dialog/index.tsx +1 -1
- package/src/components/overlay/hover-card/index.tsx +1 -1
- package/src/components/overlay/popover/index.tsx +1 -1
- package/src/components/overlay/side-panel/index.tsx +1 -1
- package/src/components/overlay/tooltip/index.tsx +1 -1
- package/src/components/select/country-select.tsx +2 -2
- package/src/components/select/language-select.tsx +2 -2
- package/src/components/select/select.tsx +3 -3
- package/src/components/specialized/copy/index.tsx +1 -1
- package/src/components/specialized/item/index.tsx +1 -1
- package/src/styles/base.css +9 -0
- package/src/styles/theme/dark.css +1 -0
- package/src/styles/theme/light.css +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djangocfg/ui-core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.354",
|
|
4
4
|
"description": "Pure React UI component library without Next.js dependencies - for Electron, Vite, CRA apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui-components",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"playground": "playground dev"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
|
-
"@djangocfg/i18n": "^2.1.
|
|
94
|
+
"@djangocfg/i18n": "^2.1.354",
|
|
95
95
|
"consola": "^3.4.2",
|
|
96
96
|
"lucide-react": "^0.545.0",
|
|
97
97
|
"moment": "^2.30.1",
|
|
@@ -161,9 +161,9 @@
|
|
|
161
161
|
"vaul": "1.1.2"
|
|
162
162
|
},
|
|
163
163
|
"devDependencies": {
|
|
164
|
-
"@djangocfg/i18n": "^2.1.
|
|
164
|
+
"@djangocfg/i18n": "^2.1.354",
|
|
165
165
|
"@djangocfg/playground": "workspace:*",
|
|
166
|
-
"@djangocfg/typescript-config": "^2.1.
|
|
166
|
+
"@djangocfg/typescript-config": "^2.1.354",
|
|
167
167
|
"@types/node": "^24.7.2",
|
|
168
168
|
"@types/react": "^19.1.0",
|
|
169
169
|
"@types/react-dom": "^19.1.0",
|
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { cn } from '../../../lib/utils';
|
|
5
5
|
|
|
6
6
|
const badgeVariants = cva(
|
|
7
|
-
"inline-flex items-center rounded-
|
|
7
|
+
"inline-flex items-center rounded-[var(--radius)] border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
@@ -66,7 +66,7 @@ function Calendar({
|
|
|
66
66
|
defaultClassNames.dropdowns
|
|
67
67
|
),
|
|
68
68
|
dropdown_root: cn(
|
|
69
|
-
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-
|
|
69
|
+
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-[var(--radius)] border",
|
|
70
70
|
defaultClassNames.dropdown_root
|
|
71
71
|
),
|
|
72
72
|
dropdown: cn(
|
|
@@ -179,7 +179,7 @@ const ChartTooltipContent = React.forwardRef<
|
|
|
179
179
|
<div
|
|
180
180
|
ref={ref}
|
|
181
181
|
className={cn(
|
|
182
|
-
"grid min-w-[8rem] items-start gap-1.5 rounded-
|
|
182
|
+
"grid min-w-[8rem] items-start gap-1.5 rounded-[var(--radius-popover)] border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
183
183
|
className
|
|
184
184
|
)}
|
|
185
185
|
>
|
|
@@ -8,7 +8,7 @@ import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
|
8
8
|
import { cn } from '../../../lib/utils';
|
|
9
9
|
|
|
10
10
|
const toggleVariants = cva(
|
|
11
|
-
"inline-flex items-center justify-center gap-2 rounded-
|
|
11
|
+
"inline-flex items-center justify-center gap-2 rounded-[var(--radius)] text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
12
12
|
{
|
|
13
13
|
variants: {
|
|
14
14
|
variant: {
|
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { cn } from '../../../lib/utils';
|
|
5
5
|
|
|
6
6
|
const alertVariants = cva(
|
|
7
|
-
"relative w-full rounded-
|
|
7
|
+
"relative w-full rounded-[var(--radius)] border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
@@ -7,7 +7,7 @@ function Empty({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
7
7
|
<div
|
|
8
8
|
data-slot="empty"
|
|
9
9
|
className={cn(
|
|
10
|
-
"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-
|
|
10
|
+
"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-[var(--radius)] border-dashed p-6 text-center md:p-12",
|
|
11
11
|
className
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
@@ -34,7 +34,7 @@ const emptyMediaVariants = cva(
|
|
|
34
34
|
variants: {
|
|
35
35
|
variant: {
|
|
36
36
|
default: "bg-transparent",
|
|
37
|
-
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&
|
|
37
|
+
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-[var(--radius)] [justify-center rounded-lg [&_svg_svg:not([class*='size-'])]:size-6",
|
|
38
38
|
},
|
|
39
39
|
},
|
|
40
40
|
defaultVariants: {
|
|
@@ -10,7 +10,7 @@ import { cn } from '../../../lib/utils';
|
|
|
10
10
|
import { Link } from '../../navigation/link';
|
|
11
11
|
|
|
12
12
|
const buttonVariants = cva(
|
|
13
|
-
"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-
|
|
13
|
+
"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-[var(--radius)] text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
14
14
|
{
|
|
15
15
|
variants: {
|
|
16
16
|
variant: {
|
|
@@ -27,10 +27,10 @@ const buttonVariants = cva(
|
|
|
27
27
|
},
|
|
28
28
|
size: {
|
|
29
29
|
default: "h-9 px-4 py-2",
|
|
30
|
-
sm: "h-8 rounded-
|
|
30
|
+
sm: "h-8 rounded-[var(--radius)] px-3 text-sm",
|
|
31
31
|
xs: "h-7 rounded px-2 py-1 text-xs",
|
|
32
|
-
lg: "h-11 rounded-
|
|
33
|
-
huge: "h-14 rounded-
|
|
32
|
+
lg: "h-11 rounded-[var(--radius)] px-8",
|
|
33
|
+
huge: "h-14 rounded-[var(--radius)] px-10 text-lg",
|
|
34
34
|
icon: "h-9 w-9",
|
|
35
35
|
},
|
|
36
36
|
},
|
|
@@ -52,7 +52,7 @@ function ButtonGroupText({
|
|
|
52
52
|
return (
|
|
53
53
|
<Comp
|
|
54
54
|
className={cn(
|
|
55
|
-
"bg-muted shadow-xs flex items-center gap-2 rounded-
|
|
55
|
+
"bg-muted shadow-xs flex items-center gap-2 rounded-[var(--radius)] border px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
|
|
56
56
|
className
|
|
57
57
|
)}
|
|
58
58
|
{...props}
|
|
@@ -116,7 +116,7 @@ function FieldLabel({
|
|
|
116
116
|
data-slot="field-label"
|
|
117
117
|
className={cn(
|
|
118
118
|
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
|
|
119
|
-
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-
|
|
119
|
+
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-[var(--radius)] has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4",
|
|
120
120
|
"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
|
|
121
121
|
className
|
|
122
122
|
)}
|
|
@@ -63,7 +63,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
63
63
|
<input
|
|
64
64
|
type={type}
|
|
65
65
|
className={cn(
|
|
66
|
-
"flex h-10 w-full rounded-
|
|
66
|
+
"flex h-10 w-full rounded-[var(--radius)] border border-input bg-transparent px-3 py-2 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
67
67
|
className
|
|
68
68
|
)}
|
|
69
69
|
ref={ref}
|
|
@@ -82,7 +82,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
82
82
|
<input
|
|
83
83
|
type={type}
|
|
84
84
|
className={cn(
|
|
85
|
-
"flex h-10 w-full rounded-
|
|
85
|
+
"flex h-10 w-full rounded-[var(--radius)] border border-input bg-transparent px-3 py-2 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
86
86
|
className
|
|
87
87
|
)}
|
|
88
88
|
ref={ref}
|
|
@@ -14,7 +14,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
14
14
|
data-slot="input-group"
|
|
15
15
|
role="group"
|
|
16
16
|
className={cn(
|
|
17
|
-
"group/input-group border-input dark:bg-input/30 shadow-xs relative flex w-full items-center rounded-
|
|
17
|
+
"group/input-group border-input dark:bg-input/30 shadow-xs relative flex w-full items-center rounded-[var(--radius)] border outline-none transition-[color,box-shadow]",
|
|
18
18
|
"h-9 has-[>textarea]:h-auto",
|
|
19
19
|
|
|
20
20
|
// Variants based on alignment.
|
|
@@ -85,7 +85,7 @@ const inputGroupButtonVariants = cva(
|
|
|
85
85
|
variants: {
|
|
86
86
|
size: {
|
|
87
87
|
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
|
|
88
|
-
sm: "h-8 gap-1.5 rounded-
|
|
88
|
+
sm: "h-8 gap-1.5 rounded-[var(--radius)] px-2.5 has-[>svg]:px-2.5",
|
|
89
89
|
"icon-xs":
|
|
90
90
|
"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
91
91
|
"icon-sm": "size-8 p-0 has-[>svg]:p-0",
|
|
@@ -41,7 +41,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
41
41
|
return (
|
|
42
42
|
<textarea
|
|
43
43
|
className={cn(
|
|
44
|
-
"flex min-h-[60px] w-full rounded-
|
|
44
|
+
"flex min-h-[60px] w-full rounded-[var(--radius)] border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
45
45
|
className
|
|
46
46
|
)}
|
|
47
47
|
ref={ref}
|
|
@@ -55,7 +55,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
55
55
|
return (
|
|
56
56
|
<textarea
|
|
57
57
|
className={cn(
|
|
58
|
-
"flex min-h-[60px] w-full rounded-
|
|
58
|
+
"flex min-h-[60px] w-full rounded-[var(--radius)] border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
59
59
|
className
|
|
60
60
|
)}
|
|
61
61
|
ref={ref}
|
|
@@ -9,7 +9,7 @@ const Card = React.forwardRef<
|
|
|
9
9
|
<div
|
|
10
10
|
ref={ref}
|
|
11
11
|
className={cn(
|
|
12
|
-
"rounded-
|
|
12
|
+
"rounded-[var(--radius-popover)] border bg-card text-card-foreground [box-shadow:var(--shadow-card)]",
|
|
13
13
|
className
|
|
14
14
|
)}
|
|
15
15
|
{...props}
|
|
@@ -16,7 +16,7 @@ const Command = React.forwardRef<
|
|
|
16
16
|
<CommandPrimitive
|
|
17
17
|
ref={ref}
|
|
18
18
|
className={cn(
|
|
19
|
-
"flex h-full w-full flex-col rounded-
|
|
19
|
+
"flex h-full w-full flex-col rounded-[var(--radius-popover)] bg-popover text-popover-foreground",
|
|
20
20
|
className
|
|
21
21
|
)}
|
|
22
22
|
{...props}
|
|
@@ -45,7 +45,7 @@ const CommandInput = React.forwardRef<
|
|
|
45
45
|
<CommandPrimitive.Input
|
|
46
46
|
ref={ref}
|
|
47
47
|
className={cn(
|
|
48
|
-
"flex h-10 w-full rounded-
|
|
48
|
+
"flex h-10 w-full rounded-[var(--radius)] bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
49
49
|
className
|
|
50
50
|
)}
|
|
51
51
|
{...props}
|
|
@@ -134,7 +134,7 @@ const CommandItem = React.forwardRef<
|
|
|
134
134
|
<CommandPrimitive.Item
|
|
135
135
|
ref={ref}
|
|
136
136
|
className={cn(
|
|
137
|
-
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
137
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
138
138
|
className
|
|
139
139
|
)}
|
|
140
140
|
{...props}
|
|
@@ -28,7 +28,7 @@ const ContextMenuSubTrigger = React.forwardRef<
|
|
|
28
28
|
<ContextMenuPrimitive.SubTrigger
|
|
29
29
|
ref={ref}
|
|
30
30
|
className={cn(
|
|
31
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
31
|
+
"flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
32
32
|
inset && "pl-8",
|
|
33
33
|
className
|
|
34
34
|
)}
|
|
@@ -47,7 +47,7 @@ const ContextMenuSubContent = React.forwardRef<
|
|
|
47
47
|
<ContextMenuPrimitive.SubContent
|
|
48
48
|
ref={ref}
|
|
49
49
|
className={cn(
|
|
50
|
-
"z-150 min-w-32 overflow-hidden rounded-
|
|
50
|
+
"z-150 min-w-32 overflow-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
51
51
|
className
|
|
52
52
|
)}
|
|
53
53
|
{...props}
|
|
@@ -63,7 +63,7 @@ const ContextMenuContent = React.forwardRef<
|
|
|
63
63
|
<ContextMenuPrimitive.Content
|
|
64
64
|
ref={ref}
|
|
65
65
|
className={cn(
|
|
66
|
-
"z-150 max-h-[--radix-context-menu-content-available-height] min-w-32 overflow-y-auto overflow-x-hidden rounded-
|
|
66
|
+
"z-150 max-h-[--radix-context-menu-content-available-height] min-w-32 overflow-y-auto overflow-x-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
67
67
|
className
|
|
68
68
|
)}
|
|
69
69
|
{...props}
|
|
@@ -85,7 +85,7 @@ const ContextMenuItem = React.forwardRef<
|
|
|
85
85
|
ref={ref}
|
|
86
86
|
data-variant={variant}
|
|
87
87
|
className={cn(
|
|
88
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
88
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
89
89
|
"data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive",
|
|
90
90
|
inset && "pl-8",
|
|
91
91
|
className
|
|
@@ -102,7 +102,7 @@ const ContextMenuCheckboxItem = React.forwardRef<
|
|
|
102
102
|
<ContextMenuPrimitive.CheckboxItem
|
|
103
103
|
ref={ref}
|
|
104
104
|
className={cn(
|
|
105
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
105
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
106
106
|
className
|
|
107
107
|
)}
|
|
108
108
|
checked={checked}
|
|
@@ -126,7 +126,7 @@ const ContextMenuRadioItem = React.forwardRef<
|
|
|
126
126
|
<ContextMenuPrimitive.RadioItem
|
|
127
127
|
ref={ref}
|
|
128
128
|
className={cn(
|
|
129
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
129
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
130
130
|
className
|
|
131
131
|
)}
|
|
132
132
|
{...props}
|
|
@@ -28,7 +28,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
|
|
|
28
28
|
<DropdownMenuPrimitive.SubTrigger
|
|
29
29
|
ref={ref}
|
|
30
30
|
className={cn(
|
|
31
|
-
"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
31
|
+
"flex cursor-default select-none items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
32
32
|
inset && "pl-8",
|
|
33
33
|
className
|
|
34
34
|
)}
|
|
@@ -48,7 +48,7 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
48
48
|
<DropdownMenuPrimitive.SubContent
|
|
49
49
|
ref={ref}
|
|
50
50
|
className={cn(
|
|
51
|
-
"z-600 min-w-32 overflow-hidden rounded-
|
|
51
|
+
"z-600 min-w-32 overflow-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
52
52
|
className
|
|
53
53
|
)}
|
|
54
54
|
{...props}
|
|
@@ -66,7 +66,7 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
66
66
|
ref={ref}
|
|
67
67
|
sideOffset={sideOffset}
|
|
68
68
|
className={cn(
|
|
69
|
-
"z-600 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-32 overflow-y-auto overflow-x-hidden rounded-
|
|
69
|
+
"z-600 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-32 overflow-y-auto overflow-x-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-md",
|
|
70
70
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
71
71
|
className
|
|
72
72
|
)}
|
|
@@ -87,7 +87,7 @@ const DropdownMenuItem = React.forwardRef<
|
|
|
87
87
|
}
|
|
88
88
|
>(({ className, inset, href, variant = "default", children, ...props }, ref) => {
|
|
89
89
|
const classes = cn(
|
|
90
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
90
|
+
"relative flex cursor-default select-none items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
91
91
|
"data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive",
|
|
92
92
|
inset && "pl-8",
|
|
93
93
|
className
|
|
@@ -123,7 +123,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
|
|
|
123
123
|
<DropdownMenuPrimitive.CheckboxItem
|
|
124
124
|
ref={ref}
|
|
125
125
|
className={cn(
|
|
126
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
126
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
127
127
|
className
|
|
128
128
|
)}
|
|
129
129
|
checked={checked}
|
|
@@ -147,7 +147,7 @@ const DropdownMenuRadioItem = React.forwardRef<
|
|
|
147
147
|
<DropdownMenuPrimitive.RadioItem
|
|
148
148
|
ref={ref}
|
|
149
149
|
className={cn(
|
|
150
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
150
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
151
151
|
className
|
|
152
152
|
)}
|
|
153
153
|
{...props}
|
|
@@ -44,7 +44,7 @@ const Menubar = React.forwardRef<
|
|
|
44
44
|
<MenubarPrimitive.Root
|
|
45
45
|
ref={ref}
|
|
46
46
|
className={cn(
|
|
47
|
-
"flex h-9 items-center space-x-1 rounded-
|
|
47
|
+
"flex h-9 items-center space-x-1 rounded-[var(--radius)] border bg-background p-1 shadow-sm",
|
|
48
48
|
className
|
|
49
49
|
)}
|
|
50
50
|
{...props}
|
|
@@ -59,7 +59,7 @@ const MenubarTrigger = React.forwardRef<
|
|
|
59
59
|
<MenubarPrimitive.Trigger
|
|
60
60
|
ref={ref}
|
|
61
61
|
className={cn(
|
|
62
|
-
"flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
62
|
+
"flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
63
63
|
className
|
|
64
64
|
)}
|
|
65
65
|
{...props}
|
|
@@ -76,7 +76,7 @@ const MenubarSubTrigger = React.forwardRef<
|
|
|
76
76
|
<MenubarPrimitive.SubTrigger
|
|
77
77
|
ref={ref}
|
|
78
78
|
className={cn(
|
|
79
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
79
|
+
"flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
80
80
|
inset && "pl-8",
|
|
81
81
|
className
|
|
82
82
|
)}
|
|
@@ -95,7 +95,7 @@ const MenubarSubContent = React.forwardRef<
|
|
|
95
95
|
<MenubarPrimitive.SubContent
|
|
96
96
|
ref={ref}
|
|
97
97
|
className={cn(
|
|
98
|
-
"z-150 min-w-32 overflow-hidden rounded-
|
|
98
|
+
"z-150 min-w-32 overflow-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
99
99
|
className
|
|
100
100
|
)}
|
|
101
101
|
{...props}
|
|
@@ -118,7 +118,7 @@ const MenubarContent = React.forwardRef<
|
|
|
118
118
|
alignOffset={alignOffset}
|
|
119
119
|
sideOffset={sideOffset}
|
|
120
120
|
className={cn(
|
|
121
|
-
"z-150 min-w-48 overflow-hidden rounded-
|
|
121
|
+
"z-150 min-w-48 overflow-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
122
122
|
className
|
|
123
123
|
)}
|
|
124
124
|
{...props}
|
|
@@ -139,7 +139,7 @@ const MenubarItem = React.forwardRef<
|
|
|
139
139
|
}
|
|
140
140
|
>(({ className, inset, href, variant = "default", children, ...props }, ref) => {
|
|
141
141
|
const classes = cn(
|
|
142
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
142
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
143
143
|
"data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive",
|
|
144
144
|
inset && "pl-8",
|
|
145
145
|
className
|
|
@@ -175,7 +175,7 @@ const MenubarCheckboxItem = React.forwardRef<
|
|
|
175
175
|
<MenubarPrimitive.CheckboxItem
|
|
176
176
|
ref={ref}
|
|
177
177
|
className={cn(
|
|
178
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
178
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
179
179
|
className
|
|
180
180
|
)}
|
|
181
181
|
checked={checked}
|
|
@@ -198,7 +198,7 @@ const MenubarRadioItem = React.forwardRef<
|
|
|
198
198
|
<MenubarPrimitive.RadioItem
|
|
199
199
|
ref={ref}
|
|
200
200
|
className={cn(
|
|
201
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
201
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
202
202
|
className
|
|
203
203
|
)}
|
|
204
204
|
{...props}
|
|
@@ -44,7 +44,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName
|
|
|
44
44
|
const NavigationMenuItem = NavigationMenuPrimitive.Item
|
|
45
45
|
|
|
46
46
|
const navigationMenuTriggerStyle = cva(
|
|
47
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-
|
|
47
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-[var(--radius)] bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
|
|
48
48
|
)
|
|
49
49
|
|
|
50
50
|
const NavigationMenuTrigger = React.forwardRef<
|
|
@@ -112,7 +112,7 @@ const NavigationMenuViewport = React.forwardRef<
|
|
|
112
112
|
>
|
|
113
113
|
<NavigationMenuPrimitive.Viewport
|
|
114
114
|
className={cn(
|
|
115
|
-
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] overflow-hidden rounded-
|
|
115
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] overflow-hidden rounded-[var(--radius-popover)] border backdrop-blur-xl bg-popover/80 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 w-[var(--radix-navigation-menu-viewport-width)]",
|
|
116
116
|
className
|
|
117
117
|
)}
|
|
118
118
|
ref={ref}
|
|
@@ -166,7 +166,7 @@ const Tabs = React.forwardRef<
|
|
|
166
166
|
triggerProps.onClick?.(e)
|
|
167
167
|
},
|
|
168
168
|
className: cn(
|
|
169
|
-
"flex items-center gap-3 px-3 py-2 rounded-
|
|
169
|
+
"flex items-center gap-3 px-3 py-2 rounded-[var(--radius-sm)] transition-colors justify-start w-full",
|
|
170
170
|
"data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
|
|
171
171
|
"hover:bg-muted",
|
|
172
172
|
triggerProps.className
|
|
@@ -219,7 +219,7 @@ const TabsList = React.forwardRef<
|
|
|
219
219
|
const listCls = cn(
|
|
220
220
|
isUnderline
|
|
221
221
|
? "inline-flex items-end gap-0 bg-transparent p-0 h-auto rounded-none"
|
|
222
|
-
: "inline-flex h-9 items-center justify-center rounded-
|
|
222
|
+
: "inline-flex h-9 items-center justify-center rounded-[var(--radius)] bg-muted p-1 text-muted-foreground",
|
|
223
223
|
fullWidth && "w-full flex",
|
|
224
224
|
className
|
|
225
225
|
)
|
|
@@ -284,7 +284,7 @@ const TabsTrigger = React.forwardRef<
|
|
|
284
284
|
"data-[state=active]:border-foreground data-[state=active]:shadow-none",
|
|
285
285
|
].join(" ")
|
|
286
286
|
: [
|
|
287
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-
|
|
287
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--radius-sm)] px-3 py-1",
|
|
288
288
|
"text-sm font-medium ring-offset-background transition-all",
|
|
289
289
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
290
290
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
@@ -38,7 +38,7 @@ const AlertDialogContent = React.forwardRef<
|
|
|
38
38
|
<AlertDialogPrimitive.Content
|
|
39
39
|
ref={ref}
|
|
40
40
|
className={cn(
|
|
41
|
-
"fixed left-1/2 top-1/2 z-600 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-
|
|
41
|
+
"fixed left-1/2 top-1/2 z-600 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-[var(--radius-dialog)]",
|
|
42
42
|
className
|
|
43
43
|
)}
|
|
44
44
|
{...props}
|
|
@@ -63,7 +63,7 @@ const DialogContent = React.forwardRef<
|
|
|
63
63
|
"fixed z-600 bg-background duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
64
64
|
fullscreen
|
|
65
65
|
? "left-0 top-0 grid h-[100dvh] w-screen max-w-none gap-0 border-0 p-0 shadow-none data-[state=closed]:zoom-out-[0.98] data-[state=open]:zoom-in-[0.98]"
|
|
66
|
-
: "left-1/2 top-1/2 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg sm:rounded-
|
|
66
|
+
: "left-1/2 top-1/2 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg sm:rounded-[var(--radius-dialog)] data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
67
67
|
className
|
|
68
68
|
)}
|
|
69
69
|
{...props}
|
|
@@ -20,7 +20,7 @@ const HoverCardContent = React.forwardRef<
|
|
|
20
20
|
align={align}
|
|
21
21
|
sideOffset={sideOffset}
|
|
22
22
|
className={cn(
|
|
23
|
-
"z-150 w-64 rounded-
|
|
23
|
+
"z-150 w-64 rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
24
24
|
className
|
|
25
25
|
)}
|
|
26
26
|
{...props}
|
|
@@ -23,7 +23,7 @@ const PopoverContent = React.forwardRef<
|
|
|
23
23
|
align={align}
|
|
24
24
|
sideOffset={sideOffset}
|
|
25
25
|
className={cn(
|
|
26
|
-
"z-[700] w-72 rounded-
|
|
26
|
+
"z-[700] w-72 rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
27
27
|
className
|
|
28
28
|
)}
|
|
29
29
|
{...props}
|
|
@@ -222,7 +222,7 @@ const SidePanelClose = React.forwardRef<HTMLButtonElement, SidePanelCloseProps>(
|
|
|
222
222
|
aria-label={label}
|
|
223
223
|
title={`${label} (Esc)`}
|
|
224
224
|
className={cn(
|
|
225
|
-
'shrink-0 h-7 w-7 inline-flex items-center justify-center rounded-
|
|
225
|
+
'shrink-0 h-7 w-7 inline-flex items-center justify-center rounded-[var(--radius-sm)]',
|
|
226
226
|
'text-muted-foreground hover:text-foreground hover:bg-muted transition-colors',
|
|
227
227
|
className,
|
|
228
228
|
)}
|
|
@@ -22,7 +22,7 @@ const TooltipContent = React.forwardRef<
|
|
|
22
22
|
aria-describedby={undefined}
|
|
23
23
|
sideOffset={sideOffset}
|
|
24
24
|
className={cn(
|
|
25
|
-
"z-[700] overflow-hidden rounded-
|
|
25
|
+
"z-[700] overflow-hidden rounded-[var(--radius-tooltip)] border border-border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
|
|
26
26
|
className
|
|
27
27
|
)}
|
|
28
28
|
{...props}
|
|
@@ -222,7 +222,7 @@ export function CountrySelect({
|
|
|
222
222
|
)}
|
|
223
223
|
|
|
224
224
|
{/* Country list */}
|
|
225
|
-
<ScrollArea style={{ height: maxHeight }} className="rounded-
|
|
225
|
+
<ScrollArea style={{ height: maxHeight }} className="rounded-[var(--radius-popover)] border">
|
|
226
226
|
<div className="p-1">
|
|
227
227
|
{filteredCountries.length === 0 ? (
|
|
228
228
|
<p className="text-sm text-muted-foreground text-center py-4">
|
|
@@ -235,7 +235,7 @@ export function CountrySelect({
|
|
|
235
235
|
<label
|
|
236
236
|
key={country.code}
|
|
237
237
|
className={cn(
|
|
238
|
-
'flex items-center gap-3 px-3 py-2 rounded-
|
|
238
|
+
'flex items-center gap-3 px-3 py-2 rounded-[var(--radius-sm)] cursor-pointer',
|
|
239
239
|
'hover:bg-accent/50 transition-colors',
|
|
240
240
|
isSelected && 'bg-primary/5',
|
|
241
241
|
disabled && 'opacity-50 cursor-not-allowed',
|
|
@@ -229,7 +229,7 @@ export function LanguageSelect({
|
|
|
229
229
|
)}
|
|
230
230
|
|
|
231
231
|
{/* Language list */}
|
|
232
|
-
<ScrollArea style={{ height: maxHeight }} className="rounded-
|
|
232
|
+
<ScrollArea style={{ height: maxHeight }} className="rounded-[var(--radius-popover)] border">
|
|
233
233
|
<div className="p-1">
|
|
234
234
|
{filteredLanguages.length === 0 ? (
|
|
235
235
|
<p className="text-sm text-muted-foreground text-center py-4">
|
|
@@ -251,7 +251,7 @@ export function LanguageSelect({
|
|
|
251
251
|
}
|
|
252
252
|
}}
|
|
253
253
|
className={cn(
|
|
254
|
-
'flex items-center gap-3 px-3 py-2 rounded-
|
|
254
|
+
'flex items-center gap-3 px-3 py-2 rounded-[var(--radius-sm)] cursor-pointer',
|
|
255
255
|
'hover:bg-accent/50 transition-colors',
|
|
256
256
|
isSelected && 'bg-primary/5',
|
|
257
257
|
disabled && 'opacity-50 cursor-not-allowed',
|
|
@@ -58,7 +58,7 @@ const SelectTrigger = React.forwardRef<
|
|
|
58
58
|
<SelectPrimitive.Trigger
|
|
59
59
|
ref={ref}
|
|
60
60
|
className={cn(
|
|
61
|
-
"flex h-10 w-full items-center justify-between whitespace-nowrap rounded-
|
|
61
|
+
"flex h-10 w-full items-center justify-between whitespace-nowrap rounded-[var(--radius)] border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
62
62
|
className
|
|
63
63
|
)}
|
|
64
64
|
{...props}
|
|
@@ -117,7 +117,7 @@ const SelectContent = React.forwardRef<
|
|
|
117
117
|
<SelectPrimitive.Content
|
|
118
118
|
ref={ref}
|
|
119
119
|
className={cn(
|
|
120
|
-
"relative z-[700] max-h-[--radix-select-content-available-height] min-w-32 overflow-y-auto overflow-x-hidden rounded-
|
|
120
|
+
"relative z-[700] max-h-[--radix-select-content-available-height] min-w-32 overflow-y-auto overflow-x-hidden rounded-[var(--radius-popover)] border bg-popover backdrop-blur-xl text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]: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",
|
|
121
121
|
position === "popper" &&
|
|
122
122
|
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
123
123
|
className
|
|
@@ -165,7 +165,7 @@ const SelectItem = React.forwardRef<
|
|
|
165
165
|
ref={ref}
|
|
166
166
|
value={value === '' ? EMPTY_SENTINEL : value}
|
|
167
167
|
className={cn(
|
|
168
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
168
|
+
"relative flex w-full cursor-default select-none items-center rounded-[var(--radius-sm)] py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
169
169
|
className
|
|
170
170
|
)}
|
|
171
171
|
{...props}
|
|
@@ -118,7 +118,7 @@ const CopyField = React.forwardRef<HTMLDivElement, CopyFieldProps>(
|
|
|
118
118
|
<div
|
|
119
119
|
ref={ref}
|
|
120
120
|
className={cn(
|
|
121
|
-
'flex items-center justify-between gap-2 p-3 rounded-
|
|
121
|
+
'flex items-center justify-between gap-2 p-3 rounded-[var(--radius)] bg-muted',
|
|
122
122
|
className
|
|
123
123
|
)}
|
|
124
124
|
{...props}
|
|
@@ -34,7 +34,7 @@ function ItemSeparator({
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
const itemVariants = cva(
|
|
37
|
-
"group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-
|
|
37
|
+
"group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-[var(--radius)] border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]",
|
|
38
38
|
{
|
|
39
39
|
variants: {
|
|
40
40
|
variant: {
|
package/src/styles/base.css
CHANGED
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
* Compatible with Tailwind CSS v4
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
/* Radius scale — theme-independent, shared by light and dark */
|
|
8
|
+
:root {
|
|
9
|
+
--radius: 0.625rem;
|
|
10
|
+
--radius-sm: 0.375rem;
|
|
11
|
+
--radius-popover: 0.75rem;
|
|
12
|
+
--radius-dialog: 1.5rem;
|
|
13
|
+
--radius-tooltip: 0.375rem;
|
|
14
|
+
}
|
|
15
|
+
|
|
7
16
|
/* Base element styles */
|
|
8
17
|
* {
|
|
9
18
|
border-color: hsl(var(--border));
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
:root {
|
|
13
13
|
/* Base colors - Clean white with neutral grays */
|
|
14
|
-
--background: 0 0%
|
|
14
|
+
--background: 0 0% 94%;
|
|
15
15
|
--foreground: 0 0% 9%;
|
|
16
16
|
--card: 0 0% 100%;
|
|
17
17
|
--card-foreground: 0 0% 9%;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
--border: 0 0% 90%;
|
|
33
33
|
--input: 0 0% 90%;
|
|
34
34
|
--ring: 192 90% 35%;
|
|
35
|
-
--
|
|
35
|
+
--shadow-card: 0 1px 3px 0 rgb(0 0 0 / 0.06), 0 1px 2px -1px rgb(0 0 0 / 0.04);
|
|
36
36
|
|
|
37
37
|
/* Code surface — used by markdown code fences, terminal blocks,
|
|
38
38
|
* any "this is code, not prose" panel. Single source of truth so
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
--code-inline-foreground: 0 0% 14%;
|
|
52
52
|
|
|
53
53
|
/* Sidebar Light Theme - Subtle gray background */
|
|
54
|
-
--sidebar-background: 0 0%
|
|
54
|
+
--sidebar-background: 0 0% 97%;
|
|
55
55
|
--sidebar-foreground: 0 0% 9%;
|
|
56
56
|
--sidebar-primary: 192 90% 35%;
|
|
57
57
|
--sidebar-primary-foreground: 0 0% 100%;
|