@ptengine/design-components 0.6.0 → 0.7.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/CHANGELOG.md +95 -0
- package/COMPONENTS-DESIGN-SYSTEM.md +14 -2
- package/README.md +32 -13
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/input-otp.d.ts.map +1 -1
- package/dist/components/ui/prompt-picker.d.ts +2 -2
- package/dist/components/ui/search-input.d.ts +3 -3
- package/dist/components/ui/select.d.ts +2 -2
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +472 -467
- package/dist/style.css +398 -0
- package/package.json +8 -4
- package/src/components/ui/accordion.tsx +6 -6
- package/src/components/ui/alert-dialog.tsx +9 -7
- package/src/components/ui/alert.tsx +5 -5
- package/src/components/ui/attachment.tsx +15 -15
- package/src/components/ui/avatar.tsx +6 -6
- package/src/components/ui/badge.tsx +8 -8
- package/src/components/ui/breadcrumb.tsx +8 -8
- package/src/components/ui/bubble.tsx +15 -15
- package/src/components/ui/button-group.tsx +5 -5
- package/src/components/ui/button.tsx +16 -16
- package/src/components/ui/calendar.tsx +23 -23
- package/src/components/ui/card.tsx +6 -6
- package/src/components/ui/carousel.tsx +16 -16
- package/src/components/ui/chart.tsx +21 -21
- package/src/components/ui/checkbox.tsx +3 -3
- package/src/components/ui/command.tsx +12 -12
- package/src/components/ui/context-menu.tsx +16 -16
- package/src/components/ui/dialog.tsx +12 -10
- package/src/components/ui/drawer.tsx +9 -7
- package/src/components/ui/dropdown-menu.tsx +17 -17
- package/src/components/ui/empty.tsx +7 -7
- package/src/components/ui/field.tsx +18 -18
- package/src/components/ui/hover-card.tsx +1 -1
- package/src/components/ui/input-group.tsx +11 -11
- package/src/components/ui/input-otp.tsx +9 -9
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/item.tsx +18 -18
- package/src/components/ui/kbd.tsx +2 -2
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/marker.tsx +5 -5
- package/src/components/ui/menubar.tsx +18 -18
- package/src/components/ui/message-scroller.tsx +6 -6
- package/src/components/ui/message.tsx +6 -6
- package/src/components/ui/native-select.tsx +3 -3
- package/src/components/ui/navigation-menu.tsx +9 -9
- package/src/components/ui/pagination.tsx +9 -9
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/progress.tsx +2 -2
- package/src/components/ui/prompt-picker.tsx +25 -25
- package/src/components/ui/radio-group.tsx +4 -4
- package/src/components/ui/resizable.tsx +4 -4
- package/src/components/ui/scroll-area.tsx +6 -6
- package/src/components/ui/search-input.tsx +12 -12
- package/src/components/ui/select.tsx +17 -17
- package/src/components/ui/separator.tsx +2 -2
- package/src/components/ui/sheet.tsx +15 -13
- package/src/components/ui/sidebar.tsx +70 -70
- package/src/components/ui/skeleton.tsx +12 -1
- package/src/components/ui/slider.tsx +4 -4
- package/src/components/ui/sonner.tsx +4 -4
- package/src/components/ui/spinner.tsx +1 -1
- package/src/components/ui/switch.tsx +2 -2
- package/src/components/ui/table.tsx +9 -9
- package/src/components/ui/tabs.tsx +16 -16
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle-group.tsx +1 -1
- package/src/components/ui/toggle.tsx +6 -6
- package/src/components/ui/tooltip.tsx +1 -1
|
@@ -25,14 +25,14 @@ const DropdownMenuSubTrigger = React.forwardRef<
|
|
|
25
25
|
<DropdownMenuPrimitive.SubTrigger
|
|
26
26
|
ref={ref}
|
|
27
27
|
className={cn(
|
|
28
|
-
'flex cursor-default select-none items-center rounded-[var(--pt-radius-sm)] px-[8px] py-[6px] text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',
|
|
29
|
-
inset && 'pl-[32px]',
|
|
28
|
+
'ptx-flex ptx-cursor-default ptx-select-none ptx-items-center ptx-rounded-[var(--pt-radius-sm)] ptx-px-[8px] ptx-py-[6px] ptx-text-sm ptx-outline-none focus:ptx-bg-accent data-[state=open]:ptx-bg-accent',
|
|
29
|
+
inset && 'ptx-pl-[32px]',
|
|
30
30
|
className
|
|
31
31
|
)}
|
|
32
32
|
{...props}
|
|
33
33
|
>
|
|
34
34
|
{children}
|
|
35
|
-
<ChevronRight className="ml-auto h-[16px] w-[16px]" />
|
|
35
|
+
<ChevronRight className="ptx-ml-auto ptx-h-[16px] ptx-w-[16px]" />
|
|
36
36
|
</DropdownMenuPrimitive.SubTrigger>
|
|
37
37
|
));
|
|
38
38
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
@@ -44,7 +44,7 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
44
44
|
<DropdownMenuPrimitive.SubContent
|
|
45
45
|
ref={ref}
|
|
46
46
|
className={cn(
|
|
47
|
-
'z-[var(--pt-z-popup,50)] min-w-[8rem] overflow-hidden rounded-[var(--pt-radius-md)] border bg-popover p-[4px] 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',
|
|
47
|
+
'ptx-z-[var(--pt-z-popup,50)] ptx-min-w-[8rem] ptx-overflow-hidden ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-bg-popover ptx-p-[4px] ptx-text-popover-foreground ptx-shadow-lg data-[state=open]:ptx-animate-in data-[state=closed]:ptx-animate-out data-[state=closed]:ptx-fade-out-0 data-[state=open]:ptx-fade-in-0 data-[state=closed]:ptx-zoom-out-95 data-[state=open]:ptx-zoom-in-95 data-[side=bottom]:ptx-slide-in-from-top-2 data-[side=left]:ptx-slide-in-from-right-2 data-[side=right]:ptx-slide-in-from-left-2 data-[side=top]:ptx-slide-in-from-bottom-2',
|
|
48
48
|
className
|
|
49
49
|
)}
|
|
50
50
|
{...props}
|
|
@@ -61,8 +61,8 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
61
61
|
ref={ref}
|
|
62
62
|
sideOffset={sideOffset}
|
|
63
63
|
className={cn(
|
|
64
|
-
'z-[var(--pt-z-popup,50)] min-w-[8rem] overflow-hidden rounded-[var(--pt-radius-md)] border bg-popover p-[4px] text-popover-foreground shadow-md',
|
|
65
|
-
'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',
|
|
64
|
+
'ptx-z-[var(--pt-z-popup,50)] ptx-min-w-[8rem] ptx-overflow-hidden ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-bg-popover ptx-p-[4px] ptx-text-popover-foreground ptx-shadow-md',
|
|
65
|
+
'data-[state=open]:ptx-animate-in data-[state=closed]:ptx-animate-out data-[state=closed]:ptx-fade-out-0 data-[state=open]:ptx-fade-in-0 data-[state=closed]:ptx-zoom-out-95 data-[state=open]:ptx-zoom-in-95 data-[side=bottom]:ptx-slide-in-from-top-2 data-[side=left]:ptx-slide-in-from-right-2 data-[side=right]:ptx-slide-in-from-left-2 data-[side=top]:ptx-slide-in-from-bottom-2',
|
|
66
66
|
className
|
|
67
67
|
)}
|
|
68
68
|
{...props}
|
|
@@ -80,8 +80,8 @@ const DropdownMenuItem = React.forwardRef<
|
|
|
80
80
|
<DropdownMenuPrimitive.Item
|
|
81
81
|
ref={ref}
|
|
82
82
|
className={cn(
|
|
83
|
-
'relative flex cursor-default select-none items-center gap-[8px] rounded-[var(--pt-radius-sm)] px-[8px] py-[6px] text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-[16px] [&>svg]:shrink-0',
|
|
84
|
-
inset && 'pl-[32px]',
|
|
83
|
+
'ptx-relative ptx-flex ptx-cursor-default ptx-select-none ptx-items-center ptx-gap-[8px] ptx-rounded-[var(--pt-radius-sm)] ptx-px-[8px] ptx-py-[6px] ptx-text-sm ptx-outline-none ptx-transition-colors focus:ptx-bg-accent focus:ptx-text-accent-foreground data-[disabled]:ptx-pointer-events-none data-[disabled]:ptx-opacity-50 [&>svg]:ptx-size-[16px] [&>svg]:ptx-shrink-0',
|
|
84
|
+
inset && 'ptx-pl-[32px]',
|
|
85
85
|
className
|
|
86
86
|
)}
|
|
87
87
|
{...props}
|
|
@@ -96,15 +96,15 @@ const DropdownMenuCheckboxItem = React.forwardRef<
|
|
|
96
96
|
<DropdownMenuPrimitive.CheckboxItem
|
|
97
97
|
ref={ref}
|
|
98
98
|
className={cn(
|
|
99
|
-
'relative flex cursor-default select-none items-center rounded-[var(--pt-radius-sm)] py-[6px] pl-[32px] pr-[8px] text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
|
|
99
|
+
'ptx-relative ptx-flex ptx-cursor-default ptx-select-none ptx-items-center ptx-rounded-[var(--pt-radius-sm)] ptx-py-[6px] ptx-pl-[32px] ptx-pr-[8px] ptx-text-sm ptx-outline-none ptx-transition-colors focus:ptx-bg-accent focus:ptx-text-accent-foreground data-[disabled]:ptx-pointer-events-none data-[disabled]:ptx-opacity-50',
|
|
100
100
|
className
|
|
101
101
|
)}
|
|
102
102
|
checked={checked}
|
|
103
103
|
{...props}
|
|
104
104
|
>
|
|
105
|
-
<span className="absolute left-[8px] flex h-[14px] w-[14px] items-center justify-center">
|
|
105
|
+
<span className="ptx-absolute ptx-left-[8px] ptx-flex ptx-h-[14px] ptx-w-[14px] ptx-items-center ptx-justify-center">
|
|
106
106
|
<DropdownMenuPrimitive.ItemIndicator>
|
|
107
|
-
<Check className="h-[16px] w-[16px]" />
|
|
107
|
+
<Check className="ptx-h-[16px] ptx-w-[16px]" />
|
|
108
108
|
</DropdownMenuPrimitive.ItemIndicator>
|
|
109
109
|
</span>
|
|
110
110
|
{children}
|
|
@@ -119,14 +119,14 @@ const DropdownMenuRadioItem = React.forwardRef<
|
|
|
119
119
|
<DropdownMenuPrimitive.RadioItem
|
|
120
120
|
ref={ref}
|
|
121
121
|
className={cn(
|
|
122
|
-
'relative flex cursor-default select-none items-center rounded-[var(--pt-radius-sm)] py-[6px] pl-[32px] pr-[8px] text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
|
|
122
|
+
'ptx-relative ptx-flex ptx-cursor-default ptx-select-none ptx-items-center ptx-rounded-[var(--pt-radius-sm)] ptx-py-[6px] ptx-pl-[32px] ptx-pr-[8px] ptx-text-sm ptx-outline-none ptx-transition-colors focus:ptx-bg-accent focus:ptx-text-accent-foreground data-[disabled]:ptx-pointer-events-none data-[disabled]:ptx-opacity-50',
|
|
123
123
|
className
|
|
124
124
|
)}
|
|
125
125
|
{...props}
|
|
126
126
|
>
|
|
127
|
-
<span className="absolute left-[8px] flex h-[14px] w-[14px] items-center justify-center">
|
|
127
|
+
<span className="ptx-absolute ptx-left-[8px] ptx-flex ptx-h-[14px] ptx-w-[14px] ptx-items-center ptx-justify-center">
|
|
128
128
|
<DropdownMenuPrimitive.ItemIndicator>
|
|
129
|
-
<Circle className="h-[8px] w-[8px] fill-current" />
|
|
129
|
+
<Circle className="ptx-h-[8px] ptx-w-[8px] ptx-fill-current" />
|
|
130
130
|
</DropdownMenuPrimitive.ItemIndicator>
|
|
131
131
|
</span>
|
|
132
132
|
{children}
|
|
@@ -142,7 +142,7 @@ const DropdownMenuLabel = React.forwardRef<
|
|
|
142
142
|
>(({ className, inset, ...props }, ref) => (
|
|
143
143
|
<DropdownMenuPrimitive.Label
|
|
144
144
|
ref={ref}
|
|
145
|
-
className={cn('px-[8px] py-[6px] text-sm font-semibold', inset && 'pl-[32px]', className)}
|
|
145
|
+
className={cn('ptx-px-[8px] ptx-py-[6px] ptx-text-sm ptx-font-semibold', inset && 'ptx-pl-[32px]', className)}
|
|
146
146
|
{...props}
|
|
147
147
|
/>
|
|
148
148
|
));
|
|
@@ -154,7 +154,7 @@ const DropdownMenuSeparator = React.forwardRef<
|
|
|
154
154
|
>(({ className, ...props }, ref) => (
|
|
155
155
|
<DropdownMenuPrimitive.Separator
|
|
156
156
|
ref={ref}
|
|
157
|
-
className={cn('-mx-[4px] my-[4px] h-px bg-muted', className)}
|
|
157
|
+
className={cn('-ptx-mx-[4px] ptx-my-[4px] ptx-h-px ptx-bg-muted', className)}
|
|
158
158
|
{...props}
|
|
159
159
|
/>
|
|
160
160
|
));
|
|
@@ -162,7 +162,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
162
162
|
|
|
163
163
|
const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
164
164
|
return (
|
|
165
|
-
<span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />
|
|
165
|
+
<span className={cn('ptx-ml-auto ptx-text-xs ptx-tracking-widest ptx-opacity-60', className)} {...props} />
|
|
166
166
|
);
|
|
167
167
|
};
|
|
168
168
|
DropdownMenuShortcut.displayName = 'DropdownMenuShortcut';
|
|
@@ -7,7 +7,7 @@ function Empty({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
|
7
7
|
return (
|
|
8
8
|
<div
|
|
9
9
|
className={cn(
|
|
10
|
-
'flex min-w-0 flex-1 flex-col items-center justify-center gap-[24px] text-balance rounded-[var(--pt-radius)] border border-dashed p-[24px] text-center text-foreground md:p-[48px]',
|
|
10
|
+
'ptx-flex ptx-min-w-0 ptx-flex-1 ptx-flex-col ptx-items-center ptx-justify-center ptx-gap-[24px] ptx-text-balance ptx-rounded-[var(--pt-radius)] ptx-border ptx-border-dashed ptx-p-[24px] ptx-text-center ptx-text-foreground md:ptx-p-[48px]',
|
|
11
11
|
className
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
@@ -18,17 +18,17 @@ function Empty({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
|
18
18
|
function EmptyHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
19
19
|
return (
|
|
20
20
|
<div
|
|
21
|
-
className={cn('flex max-w-sm flex-col items-center gap-[8px] text-center', className)}
|
|
21
|
+
className={cn('ptx-flex ptx-max-w-sm ptx-flex-col ptx-items-center ptx-gap-[8px] ptx-text-center', className)}
|
|
22
22
|
{...props}
|
|
23
23
|
/>
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
const emptyMediaVariants = cva('flex shrink-0 items-center justify-center', {
|
|
27
|
+
const emptyMediaVariants = cva('ptx-flex ptx-shrink-0 ptx-items-center ptx-justify-center', {
|
|
28
28
|
variants: {
|
|
29
29
|
variant: {
|
|
30
30
|
default: '',
|
|
31
|
-
icon: 'size-[40px] rounded-[var(--pt-radius)] bg-secondary text-foreground [&_svg]:size-[24px]'
|
|
31
|
+
icon: 'ptx-size-[40px] ptx-rounded-[var(--pt-radius)] ptx-bg-secondary ptx-text-foreground [&_svg]:ptx-size-[24px]'
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
defaultVariants: {
|
|
@@ -45,14 +45,14 @@ function EmptyMedia({
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
function EmptyTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
48
|
-
return <div className={cn('text-lg font-medium tracking-tight', className)} {...props} />;
|
|
48
|
+
return <div className={cn('ptx-text-lg ptx-font-medium ptx-tracking-tight', className)} {...props} />;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function EmptyDescription({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
52
52
|
return (
|
|
53
53
|
<div
|
|
54
54
|
className={cn(
|
|
55
|
-
'text-sm leading-relaxed text-muted-foreground [&>a]:text-primary [&>a]:underline [&>a]:underline-offset-4',
|
|
55
|
+
'ptx-text-sm ptx-leading-relaxed ptx-text-muted-foreground [&>a]:ptx-text-primary [&>a]:ptx-underline [&>a]:ptx-underline-offset-4',
|
|
56
56
|
className
|
|
57
57
|
)}
|
|
58
58
|
{...props}
|
|
@@ -64,7 +64,7 @@ function EmptyContent({ className, ...props }: React.HTMLAttributes<HTMLDivEleme
|
|
|
64
64
|
return (
|
|
65
65
|
<div
|
|
66
66
|
className={cn(
|
|
67
|
-
'flex w-full max-w-sm min-w-0 flex-col items-center gap-[16px] text-balance text-sm',
|
|
67
|
+
'ptx-flex ptx-w-full ptx-max-w-sm ptx-min-w-0 ptx-flex-col ptx-items-center ptx-gap-[16px] ptx-text-balance ptx-text-sm',
|
|
68
68
|
className
|
|
69
69
|
)}
|
|
70
70
|
{...props}
|
|
@@ -6,14 +6,14 @@ import { Label } from './label';
|
|
|
6
6
|
import { Separator } from './separator';
|
|
7
7
|
|
|
8
8
|
function FieldSet({ className, ...props }: React.FieldsetHTMLAttributes<HTMLFieldSetElement>) {
|
|
9
|
-
return <fieldset className={cn('flex flex-col gap-[24px]', className)} {...props} />;
|
|
9
|
+
return <fieldset className={cn('ptx-flex ptx-flex-col ptx-gap-[24px]', className)} {...props} />;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const fieldLegendVariants = cva('mb-[12px] font-medium text-foreground', {
|
|
12
|
+
const fieldLegendVariants = cva('ptx-mb-[12px] ptx-font-medium ptx-text-foreground', {
|
|
13
13
|
variants: {
|
|
14
14
|
variant: {
|
|
15
|
-
legend: 'text-base',
|
|
16
|
-
label: 'text-sm'
|
|
15
|
+
legend: 'ptx-text-base',
|
|
16
|
+
label: 'ptx-text-sm'
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
defaultVariants: {
|
|
@@ -30,15 +30,15 @@ function FieldLegend({
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
function FieldGroup({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
33
|
-
return <div className={cn('group/field-group flex w-full flex-col gap-[28px]', className)} {...props} />;
|
|
33
|
+
return <div className={cn('group/field-group ptx-flex ptx-w-full ptx-flex-col ptx-gap-[28px]', className)} {...props} />;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
const fieldVariants = cva('group/field flex w-full gap-[8px] data-[invalid=true]:text-destructive', {
|
|
36
|
+
const fieldVariants = cva('group/field ptx-flex ptx-w-full ptx-gap-[8px] data-[invalid=true]:ptx-text-destructive', {
|
|
37
37
|
variants: {
|
|
38
38
|
orientation: {
|
|
39
|
-
vertical: 'flex-col',
|
|
40
|
-
horizontal: 'flex-row items-center',
|
|
41
|
-
responsive: 'flex-col md:flex-row md:items-center'
|
|
39
|
+
vertical: 'ptx-flex-col',
|
|
40
|
+
horizontal: 'ptx-flex-row ptx-items-center',
|
|
41
|
+
responsive: 'ptx-flex-col md:ptx-flex-row md:ptx-items-center'
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
defaultVariants: {
|
|
@@ -64,7 +64,7 @@ function Field({
|
|
|
64
64
|
function FieldContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
65
65
|
return (
|
|
66
66
|
<div
|
|
67
|
-
className={cn('group/field-content flex flex-1 flex-col gap-[6px] leading-snug', className)}
|
|
67
|
+
className={cn('group/field-content ptx-flex ptx-flex-1 ptx-flex-col ptx-gap-[6px] ptx-leading-snug', className)}
|
|
68
68
|
{...props}
|
|
69
69
|
/>
|
|
70
70
|
);
|
|
@@ -74,7 +74,7 @@ function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>)
|
|
|
74
74
|
return (
|
|
75
75
|
<Label
|
|
76
76
|
data-slot="field-label"
|
|
77
|
-
className={cn('flex w-fit gap-[8px] leading-snug', className)}
|
|
77
|
+
className={cn('ptx-flex ptx-w-fit ptx-gap-[8px] ptx-leading-snug', className)}
|
|
78
78
|
{...props}
|
|
79
79
|
/>
|
|
80
80
|
);
|
|
@@ -84,7 +84,7 @@ function FieldTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement
|
|
|
84
84
|
return (
|
|
85
85
|
<div
|
|
86
86
|
className={cn(
|
|
87
|
-
'flex w-fit items-center gap-[8px] text-sm font-medium leading-snug text-foreground',
|
|
87
|
+
'ptx-flex ptx-w-fit ptx-items-center ptx-gap-[8px] ptx-text-sm ptx-font-medium ptx-leading-snug ptx-text-foreground',
|
|
88
88
|
className
|
|
89
89
|
)}
|
|
90
90
|
{...props}
|
|
@@ -95,7 +95,7 @@ function FieldTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement
|
|
|
95
95
|
function FieldDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {
|
|
96
96
|
return (
|
|
97
97
|
<p
|
|
98
|
-
className={cn('text-sm font-normal leading-normal text-muted-foreground', className)}
|
|
98
|
+
className={cn('ptx-text-sm ptx-font-normal ptx-leading-normal ptx-text-muted-foreground', className)}
|
|
99
99
|
{...props}
|
|
100
100
|
/>
|
|
101
101
|
);
|
|
@@ -107,10 +107,10 @@ function FieldSeparator({
|
|
|
107
107
|
...props
|
|
108
108
|
}: React.HTMLAttributes<HTMLDivElement>) {
|
|
109
109
|
return (
|
|
110
|
-
<div className={cn('relative -my-[8px] h-[20px] text-sm', className)} {...props}>
|
|
111
|
-
<Separator className="absolute inset-0 top-1/2" />
|
|
110
|
+
<div className={cn('ptx-relative -ptx-my-[8px] ptx-h-[20px] ptx-text-sm', className)} {...props}>
|
|
111
|
+
<Separator className="ptx-absolute ptx-inset-0 ptx-top-1/2" />
|
|
112
112
|
{children && (
|
|
113
|
-
<span className="relative mx-auto flex w-fit items-center justify-center bg-background px-[8px] text-muted-foreground">
|
|
113
|
+
<span className="ptx-relative ptx-mx-auto ptx-flex ptx-w-fit ptx-items-center ptx-justify-center ptx-bg-background ptx-px-[8px] ptx-text-muted-foreground">
|
|
114
114
|
{children}
|
|
115
115
|
</span>
|
|
116
116
|
)}
|
|
@@ -138,7 +138,7 @@ function FieldError({
|
|
|
138
138
|
return messages[0];
|
|
139
139
|
}
|
|
140
140
|
return (
|
|
141
|
-
<ul className="ml-[16px] flex list-disc flex-col gap-[4px]">
|
|
141
|
+
<ul className="ptx-ml-[16px] ptx-flex ptx-list-disc ptx-flex-col ptx-gap-[4px]">
|
|
142
142
|
{messages.map((message, index) => (
|
|
143
143
|
<li key={index}>{message}</li>
|
|
144
144
|
))}
|
|
@@ -153,7 +153,7 @@ function FieldError({
|
|
|
153
153
|
return (
|
|
154
154
|
<div
|
|
155
155
|
role="alert"
|
|
156
|
-
className={cn('text-sm font-normal text-destructive', className)}
|
|
156
|
+
className={cn('ptx-text-sm ptx-font-normal ptx-text-destructive', className)}
|
|
157
157
|
{...props}
|
|
158
158
|
>
|
|
159
159
|
{content}
|
|
@@ -16,7 +16,7 @@ const HoverCardContent = React.forwardRef<
|
|
|
16
16
|
align={align}
|
|
17
17
|
sideOffset={sideOffset}
|
|
18
18
|
className={cn(
|
|
19
|
-
'z-[var(--pt-z-popup,50)] w-[256px] rounded-[var(--pt-radius-md)] border bg-popover p-[16px] 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',
|
|
19
|
+
'ptx-z-[var(--pt-z-popup,50)] ptx-w-[256px] ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-bg-popover ptx-p-[16px] ptx-text-popover-foreground ptx-shadow-md ptx-outline-none data-[state=open]:ptx-animate-in data-[state=closed]:ptx-animate-out data-[state=closed]:ptx-fade-out-0 data-[state=open]:ptx-fade-in-0 data-[state=closed]:ptx-zoom-out-95 data-[state=open]:ptx-zoom-in-95 data-[side=bottom]:ptx-slide-in-from-top-2 data-[side=left]:ptx-slide-in-from-right-2 data-[side=right]:ptx-slide-in-from-left-2 data-[side=top]:ptx-slide-in-from-bottom-2',
|
|
20
20
|
className
|
|
21
21
|
)}
|
|
22
22
|
{...props}
|
|
@@ -9,11 +9,11 @@ function InputGroup({ className, ...props }: React.HTMLAttributes<HTMLDivElement
|
|
|
9
9
|
<div
|
|
10
10
|
role="group"
|
|
11
11
|
className={cn(
|
|
12
|
-
'group/input-group relative flex h-[32px] w-full items-center gap-[8px] rounded-[var(--pt-radius-md)] border border-input px-[12px] transition-colors',
|
|
13
|
-
'hover:border-neutral',
|
|
14
|
-
'has-[input:focus-visible]:ring-1 has-[input:focus-visible]:ring-ring',
|
|
15
|
-
'has-[input[aria-invalid=true]]:border-destructive has-[input[aria-invalid=true]]:hover:border-destructive',
|
|
16
|
-
'has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50 has-[input:disabled]:hover:border-input',
|
|
12
|
+
'group/input-group ptx-relative ptx-flex ptx-h-[32px] ptx-w-full ptx-items-center ptx-gap-[8px] ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-border-input ptx-px-[12px] ptx-transition-colors',
|
|
13
|
+
'hover:ptx-border-neutral',
|
|
14
|
+
'has-[input:focus-visible]:ptx-ring-1 has-[input:focus-visible]:ptx-ring-ring',
|
|
15
|
+
'has-[input[aria-invalid=true]]:ptx-border-destructive has-[input[aria-invalid=true]]:hover:ptx-border-destructive',
|
|
16
|
+
'has-[input:disabled]:ptx-cursor-not-allowed has-[input:disabled]:ptx-opacity-50 has-[input:disabled]:hover:ptx-border-input',
|
|
17
17
|
className
|
|
18
18
|
)}
|
|
19
19
|
{...props}
|
|
@@ -28,7 +28,7 @@ const InputGroupInput = React.forwardRef<
|
|
|
28
28
|
<input
|
|
29
29
|
ref={ref}
|
|
30
30
|
className={cn(
|
|
31
|
-
'h-full w-full flex-1 bg-transparent text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed',
|
|
31
|
+
'ptx-h-full ptx-w-full ptx-flex-1 ptx-bg-transparent ptx-text-xs ptx-text-foreground placeholder:ptx-text-muted-foreground focus-visible:ptx-outline-none disabled:ptx-cursor-not-allowed',
|
|
32
32
|
className
|
|
33
33
|
)}
|
|
34
34
|
{...props}
|
|
@@ -37,12 +37,12 @@ const InputGroupInput = React.forwardRef<
|
|
|
37
37
|
InputGroupInput.displayName = 'InputGroupInput';
|
|
38
38
|
|
|
39
39
|
const inputGroupAddonVariants = cva(
|
|
40
|
-
'flex items-center gap-[8px] text-sm text-muted-foreground [&_svg]:size-[16px] [&_svg]:shrink-0',
|
|
40
|
+
'ptx-flex ptx-items-center ptx-gap-[8px] ptx-text-sm ptx-text-muted-foreground [&_svg]:ptx-size-[16px] [&_svg]:ptx-shrink-0',
|
|
41
41
|
{
|
|
42
42
|
variants: {
|
|
43
43
|
align: {
|
|
44
|
-
'inline-start': 'order-first',
|
|
45
|
-
'inline-end': 'order-last'
|
|
44
|
+
'inline-start': 'ptx-order-first',
|
|
45
|
+
'inline-end': 'ptx-order-last'
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
defaultVariants: {
|
|
@@ -62,7 +62,7 @@ function InputGroupAddon({
|
|
|
62
62
|
function InputGroupText({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {
|
|
63
63
|
return (
|
|
64
64
|
<span
|
|
65
|
-
className={cn('flex items-center gap-[8px] text-sm text-muted-foreground', className)}
|
|
65
|
+
className={cn('ptx-flex ptx-items-center ptx-gap-[8px] ptx-text-sm ptx-text-muted-foreground', className)}
|
|
66
66
|
{...props}
|
|
67
67
|
/>
|
|
68
68
|
);
|
|
@@ -74,7 +74,7 @@ function InputGroupButton({
|
|
|
74
74
|
variant = 'ghost',
|
|
75
75
|
...props
|
|
76
76
|
}: React.ComponentProps<typeof Button>) {
|
|
77
|
-
return <Button size={size} variant={variant} className={cn('shrink-0', className)} {...props} />;
|
|
77
|
+
return <Button size={size} variant={variant} className={cn('ptx-shrink-0', className)} {...props} />;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText };
|
|
@@ -11,10 +11,10 @@ const InputOTP = React.forwardRef<
|
|
|
11
11
|
<OTPInput
|
|
12
12
|
ref={ref}
|
|
13
13
|
containerClassName={cn(
|
|
14
|
-
'group/input-otp flex items-center gap-[8px] has-[:disabled]:opacity-50',
|
|
14
|
+
'group/input-otp ptx-flex ptx-items-center ptx-gap-[8px] has-[:disabled]:ptx-opacity-50',
|
|
15
15
|
containerClassName
|
|
16
16
|
)}
|
|
17
|
-
className={cn('disabled:cursor-not-allowed', className)}
|
|
17
|
+
className={cn('disabled:ptx-cursor-not-allowed', className)}
|
|
18
18
|
{...props}
|
|
19
19
|
/>
|
|
20
20
|
));
|
|
@@ -22,7 +22,7 @@ InputOTP.displayName = 'InputOTP';
|
|
|
22
22
|
|
|
23
23
|
const InputOTPGroup = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(
|
|
24
24
|
({ className, ...props }, ref) => (
|
|
25
|
-
<div ref={ref} className={cn('flex items-center', className)} {...props} />
|
|
25
|
+
<div ref={ref} className={cn('ptx-flex ptx-items-center', className)} {...props} />
|
|
26
26
|
)
|
|
27
27
|
);
|
|
28
28
|
InputOTPGroup.displayName = 'InputOTPGroup';
|
|
@@ -38,16 +38,16 @@ const InputOTPSlot = React.forwardRef<
|
|
|
38
38
|
<div
|
|
39
39
|
ref={ref}
|
|
40
40
|
className={cn(
|
|
41
|
-
'relative flex h-[32px] w-[36px] items-center justify-center border-y border-r border-input text-xs text-foreground transition-all first:rounded-l-[var(--pt-radius-md)] first:border-l last:rounded-r-[var(--pt-radius-md)] group-hover/input-otp:border-neutral',
|
|
42
|
-
isActive && 'z-10 ring-1 ring-ring',
|
|
41
|
+
'ptx-relative ptx-flex ptx-h-[32px] ptx-w-[36px] ptx-items-center ptx-justify-center ptx-border-y ptx-border-r ptx-border-input ptx-text-xs ptx-text-foreground ptx-transition-all first:ptx-rounded-l-[var(--pt-radius-md)] first:ptx-border-l last:ptx-rounded-r-[var(--pt-radius-md)] group-hover/input-otp:ptx-border-neutral',
|
|
42
|
+
isActive && 'ptx-z-10 ptx-ring-1 ptx-ring-ring',
|
|
43
43
|
className
|
|
44
44
|
)}
|
|
45
45
|
{...props}
|
|
46
46
|
>
|
|
47
47
|
{char}
|
|
48
48
|
{hasFakeCaret && (
|
|
49
|
-
<div className="pointer-events-none absolute inset-0 flex items-center justify-center">
|
|
50
|
-
<div className="h-[16px] w-px animate-caret-blink bg-foreground duration-1000" />
|
|
49
|
+
<div className="ptx-pointer-events-none ptx-absolute ptx-inset-0 ptx-flex ptx-items-center ptx-justify-center">
|
|
50
|
+
<div className="ptx-h-[16px] ptx-w-px ptx-animate-caret-blink ptx-bg-foreground ptx-duration-1000" />
|
|
51
51
|
</div>
|
|
52
52
|
)}
|
|
53
53
|
</div>
|
|
@@ -57,8 +57,8 @@ InputOTPSlot.displayName = 'InputOTPSlot';
|
|
|
57
57
|
|
|
58
58
|
const InputOTPSeparator = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(
|
|
59
59
|
({ ...props }, ref) => (
|
|
60
|
-
<div ref={ref} role="separator" className="text-muted-foreground" {...props}>
|
|
61
|
-
<Minus className="h-[16px] w-[16px]" />
|
|
60
|
+
<div ref={ref} role="separator" className="ptx-text-muted-foreground" {...props}>
|
|
61
|
+
<Minus className="ptx-h-[16px] ptx-w-[16px]" />
|
|
62
62
|
</div>
|
|
63
63
|
)
|
|
64
64
|
);
|
|
@@ -10,7 +10,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
10
10
|
<input
|
|
11
11
|
type={type}
|
|
12
12
|
className={cn(
|
|
13
|
-
'flex h-[32px] w-full rounded-[var(--pt-radius-md)] border border-input bg-transparent px-[12px] py-[4px] text-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground enabled:hover:border-neutral focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive aria-[invalid=true]:enabled:hover:border-destructive aria-[invalid=true]:focus-visible:ring-destructive/30',
|
|
13
|
+
'ptx-flex ptx-h-[32px] ptx-w-full ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-border-input ptx-bg-transparent ptx-px-[12px] ptx-py-[4px] ptx-text-xs ptx-transition-colors file:ptx-border-0 file:ptx-bg-transparent file:ptx-text-sm file:ptx-font-medium placeholder:ptx-text-muted-foreground enabled:hover:ptx-border-neutral focus-visible:ptx-outline-none focus-visible:ptx-ring-1 focus-visible:ptx-ring-ring disabled:ptx-cursor-not-allowed disabled:ptx-opacity-50 aria-[invalid=true]:ptx-border-destructive aria-[invalid=true]:enabled:hover:ptx-border-destructive aria-[invalid=true]:focus-visible:ptx-ring-destructive/30',
|
|
14
14
|
className
|
|
15
15
|
)}
|
|
16
16
|
ref={ref}
|
|
@@ -6,25 +6,25 @@ import { cn } from '../../lib/utils';
|
|
|
6
6
|
import { Separator } from './separator';
|
|
7
7
|
|
|
8
8
|
function ItemGroup({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
9
|
-
return <div role="list" className={cn('group/item-group flex flex-col', className)} {...props} />;
|
|
9
|
+
return <div role="list" className={cn('group/item-group ptx-flex ptx-flex-col', className)} {...props} />;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {
|
|
13
|
-
return <Separator orientation="horizontal" className={cn('my-0', className)} {...props} />;
|
|
13
|
+
return <Separator orientation="horizontal" className={cn('ptx-my-0', className)} {...props} />;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
const itemVariants = cva(
|
|
17
|
-
'group/item flex flex-wrap items-center rounded-[var(--pt-radius-md)] border text-sm text-foreground outline-none transition-colors',
|
|
17
|
+
'group/item ptx-flex ptx-flex-wrap ptx-items-center ptx-rounded-[var(--pt-radius-md)] ptx-border ptx-text-sm ptx-text-foreground ptx-outline-none ptx-transition-colors',
|
|
18
18
|
{
|
|
19
19
|
variants: {
|
|
20
20
|
variant: {
|
|
21
|
-
default: 'border-transparent',
|
|
22
|
-
outline: 'border-border',
|
|
23
|
-
muted: 'border-transparent bg-muted'
|
|
21
|
+
default: 'ptx-border-transparent',
|
|
22
|
+
outline: 'ptx-border-border',
|
|
23
|
+
muted: 'ptx-border-transparent ptx-bg-muted'
|
|
24
24
|
},
|
|
25
25
|
size: {
|
|
26
|
-
default: 'gap-[16px] p-[16px]',
|
|
27
|
-
sm: 'gap-[10px] px-[16px] py-[12px]'
|
|
26
|
+
default: 'ptx-gap-[16px] ptx-p-[16px]',
|
|
27
|
+
sm: 'ptx-gap-[10px] ptx-px-[16px] ptx-py-[12px]'
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
defaultVariants: {
|
|
@@ -45,12 +45,12 @@ function Item({
|
|
|
45
45
|
return <Comp className={cn(itemVariants({ variant, size }), className)} {...props} />;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const itemMediaVariants = cva('flex shrink-0 items-center justify-center gap-[8px] [&_svg]:pointer-events-none', {
|
|
48
|
+
const itemMediaVariants = cva('ptx-flex ptx-shrink-0 ptx-items-center ptx-justify-center ptx-gap-[8px] [&_svg]:ptx-pointer-events-none', {
|
|
49
49
|
variants: {
|
|
50
50
|
variant: {
|
|
51
|
-
default: 'bg-transparent [&_svg]:size-[20px] [&_svg]:text-muted-foreground',
|
|
52
|
-
icon: 'size-[32px] rounded-[var(--pt-radius-sm)] border bg-secondary [&_svg]:size-[16px] [&_svg]:text-foreground',
|
|
53
|
-
image: 'size-[40px] overflow-hidden rounded-[var(--pt-radius-sm)] [&_img]:size-full [&_img]:object-cover'
|
|
51
|
+
default: 'ptx-bg-transparent [&_svg]:ptx-size-[20px] [&_svg]:ptx-text-muted-foreground',
|
|
52
|
+
icon: 'ptx-size-[32px] ptx-rounded-[var(--pt-radius-sm)] ptx-border ptx-bg-secondary [&_svg]:ptx-size-[16px] [&_svg]:ptx-text-foreground',
|
|
53
|
+
image: 'ptx-size-[40px] ptx-overflow-hidden ptx-rounded-[var(--pt-radius-sm)] [&_img]:ptx-size-full [&_img]:ptx-object-cover'
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
defaultVariants: {
|
|
@@ -67,13 +67,13 @@ function ItemMedia({
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
function ItemContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
70
|
-
return <div className={cn('flex flex-1 flex-col gap-[4px]', className)} {...props} />;
|
|
70
|
+
return <div className={cn('ptx-flex ptx-flex-1 ptx-flex-col ptx-gap-[4px]', className)} {...props} />;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
function ItemTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
74
74
|
return (
|
|
75
75
|
<div
|
|
76
|
-
className={cn('flex w-fit items-center gap-[8px] text-sm font-medium leading-snug', className)}
|
|
76
|
+
className={cn('ptx-flex ptx-w-fit ptx-items-center ptx-gap-[8px] ptx-text-sm ptx-font-medium ptx-leading-snug', className)}
|
|
77
77
|
{...props}
|
|
78
78
|
/>
|
|
79
79
|
);
|
|
@@ -82,25 +82,25 @@ function ItemTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement>
|
|
|
82
82
|
function ItemDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {
|
|
83
83
|
return (
|
|
84
84
|
<p
|
|
85
|
-
className={cn('line-clamp-2 text-sm leading-normal text-muted-foreground', className)}
|
|
85
|
+
className={cn('ptx-line-clamp-2 ptx-text-sm ptx-leading-normal ptx-text-muted-foreground', className)}
|
|
86
86
|
{...props}
|
|
87
87
|
/>
|
|
88
88
|
);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function ItemActions({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
92
|
-
return <div className={cn('flex items-center gap-[8px]', className)} {...props} />;
|
|
92
|
+
return <div className={cn('ptx-flex ptx-items-center ptx-gap-[8px]', className)} {...props} />;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
function ItemHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
96
96
|
return (
|
|
97
|
-
<div className={cn('flex basis-full items-center justify-between gap-[8px]', className)} {...props} />
|
|
97
|
+
<div className={cn('ptx-flex ptx-basis-full ptx-items-center ptx-justify-between ptx-gap-[8px]', className)} {...props} />
|
|
98
98
|
);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
function ItemFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
|
|
102
102
|
return (
|
|
103
|
-
<div className={cn('flex basis-full items-center justify-between gap-[8px]', className)} {...props} />
|
|
103
|
+
<div className={cn('ptx-flex ptx-basis-full ptx-items-center ptx-justify-between ptx-gap-[8px]', className)} {...props} />
|
|
104
104
|
);
|
|
105
105
|
}
|
|
106
106
|
|
|
@@ -6,7 +6,7 @@ function Kbd({ className, ...props }: React.HTMLAttributes<HTMLElement>) {
|
|
|
6
6
|
return (
|
|
7
7
|
<kbd
|
|
8
8
|
className={cn(
|
|
9
|
-
'pointer-events-none inline-flex h-[20px] w-fit min-w-[20px] select-none items-center justify-center gap-[4px] rounded-[var(--pt-radius-sm)] bg-muted px-[4px] font-sans text-2xs font-medium text-muted-foreground [&_svg]:size-[12px]',
|
|
9
|
+
'ptx-pointer-events-none ptx-inline-flex ptx-h-[20px] ptx-w-fit ptx-min-w-[20px] ptx-select-none ptx-items-center ptx-justify-center ptx-gap-[4px] ptx-rounded-[var(--pt-radius-sm)] ptx-bg-muted ptx-px-[4px] ptx-font-sans ptx-text-2xs ptx-font-medium ptx-text-muted-foreground [&_svg]:ptx-size-[12px]',
|
|
10
10
|
className
|
|
11
11
|
)}
|
|
12
12
|
{...props}
|
|
@@ -15,7 +15,7 @@ function Kbd({ className, ...props }: React.HTMLAttributes<HTMLElement>) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
function KbdGroup({ className, ...props }: React.HTMLAttributes<HTMLElement>) {
|
|
18
|
-
return <span className={cn('inline-flex items-center gap-[4px]', className)} {...props} />;
|
|
18
|
+
return <span className={cn('ptx-inline-flex ptx-items-center ptx-gap-[4px]', className)} {...props} />;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export { Kbd, KbdGroup };
|
|
@@ -5,7 +5,7 @@ import { cva, type VariantProps } from 'class-variance-authority';
|
|
|
5
5
|
import { cn } from '../../lib/utils';
|
|
6
6
|
|
|
7
7
|
const labelVariants = cva(
|
|
8
|
-
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50'
|
|
8
|
+
'ptx-text-sm ptx-font-medium ptx-leading-none peer-disabled:ptx-cursor-not-allowed peer-disabled:ptx-opacity-50'
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
const Label = React.forwardRef<
|
|
@@ -5,14 +5,14 @@ import { cva, type VariantProps } from 'class-variance-authority';
|
|
|
5
5
|
import { cn } from '../../lib/utils';
|
|
6
6
|
|
|
7
7
|
const markerVariants = cva(
|
|
8
|
-
"group/marker relative flex min-h-[16px] w-full items-center gap-[8px] text-left text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-[16px] [&:is(a)]:underline [&:is(a)]:underline-offset-4 [&:is(a):hover]:text-foreground",
|
|
8
|
+
"group/marker ptx-relative ptx-flex ptx-min-h-[16px] ptx-w-full ptx-items-center ptx-gap-[8px] ptx-text-left ptx-text-sm ptx-text-muted-foreground [&_svg:not([class*='size-'])]:ptx-size-[16px] [&:is(a)]:ptx-underline [&:is(a)]:ptx-underline-offset-4 [&:is(a):hover]:ptx-text-foreground",
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
12
|
default: '',
|
|
13
13
|
separator:
|
|
14
|
-
'before:mr-[4px] before:h-px before:min-w-0 before:flex-1 before:bg-border after:ml-[4px] after:h-px after:min-w-0 after:flex-1 after:bg-border',
|
|
15
|
-
border: 'border-b border-border pb-[8px]'
|
|
14
|
+
'before:ptx-mr-[4px] before:ptx-h-px before:ptx-min-w-0 before:ptx-flex-1 before:ptx-bg-border after:ptx-ml-[4px] after:ptx-h-px after:ptx-min-w-0 after:ptx-flex-1 after:ptx-bg-border',
|
|
15
|
+
border: 'ptx-border-b ptx-border-border ptx-pb-[8px]'
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -45,7 +45,7 @@ function MarkerIcon({ className, ...props }: React.HTMLAttributes<HTMLSpanElemen
|
|
|
45
45
|
<span
|
|
46
46
|
data-slot="marker-icon"
|
|
47
47
|
aria-hidden="true"
|
|
48
|
-
className={cn("size-[16px] shrink-0 [&_svg:not([class*='size-'])]:size-[16px]", className)}
|
|
48
|
+
className={cn("ptx-size-[16px] ptx-shrink-0 [&_svg:not([class*='size-'])]:ptx-size-[16px]", className)}
|
|
49
49
|
{...props}
|
|
50
50
|
/>
|
|
51
51
|
);
|
|
@@ -56,7 +56,7 @@ function MarkerContent({ className, ...props }: React.HTMLAttributes<HTMLSpanEle
|
|
|
56
56
|
<span
|
|
57
57
|
data-slot="marker-content"
|
|
58
58
|
className={cn(
|
|
59
|
-
'min-w-0 break-words group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:text-foreground',
|
|
59
|
+
'ptx-min-w-0 ptx-break-words group-data-[variant=separator]/marker:ptx-flex-none group-data-[variant=separator]/marker:ptx-text-center [&_a]:ptx-underline [&_a]:ptx-underline-offset-4 [&_a:hover]:ptx-text-foreground',
|
|
60
60
|
className
|
|
61
61
|
)}
|
|
62
62
|
{...props}
|