@salesforce/webapp-template-app-react-sample-b2x-experimental 1.62.2 → 1.64.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.
Files changed (27) hide show
  1. package/dist/.a4drules/skills/feature-graphql-graphql-data-access/SKILL.md +1 -1
  2. package/dist/.a4drules/skills/feature-micro-frontend-micro-frontend/SKILL.md +1 -1
  3. package/dist/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +1 -1
  4. package/dist/.a4drules/skills/feature-react-chart-analytics-charts/SKILL.md +1 -1
  5. package/dist/.a4drules/webapp.md +0 -2
  6. package/dist/CHANGELOG.md +19 -0
  7. package/dist/force-app/main/default/webapplications/appreactsampleb2x/package.json +11 -4
  8. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/alert.tsx +61 -54
  9. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/button.tsx +57 -57
  10. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/card.tsx +86 -75
  11. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/dialog.tsx +129 -110
  12. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/field.tsx +208 -193
  13. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/index.ts +64 -64
  14. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/input.tsx +14 -14
  15. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/label.tsx +17 -14
  16. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/pagination.tsx +108 -88
  17. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/select.tsx +156 -146
  18. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/separator.tsx +19 -19
  19. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/skeleton.tsx +10 -10
  20. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/spinner.tsx +12 -11
  21. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/table.tsx +96 -69
  22. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components/ui/tabs.tsx +71 -61
  23. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/components.json +1 -1
  24. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/lib/utils.ts +3 -3
  25. package/dist/force-app/main/default/webapplications/appreactsampleb2x/src/styles/global.css +107 -107
  26. package/dist/package.json +1 -1
  27. package/package.json +1 -1
@@ -1,222 +1,237 @@
1
- import { useMemo } from "react";
2
- import { cva, type VariantProps } from "class-variance-authority";
3
-
4
- import { cn } from "../../lib/utils";
5
- import { Label } from "./label";
6
- import { Separator } from "./separator";
7
-
8
- function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
9
- return (
10
- <fieldset
11
- data-slot="field-set"
12
- className={cn(
13
- "gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col",
14
- className,
15
- )}
16
- {...props}
17
- />
18
- );
1
+ import * as React from 'react';
2
+ import { useMemo } from 'react';
3
+ import { cva, type VariantProps } from 'class-variance-authority';
4
+
5
+ import { cn } from '../../lib/utils';
6
+ import { Label } from './label';
7
+ import { Separator } from './separator';
8
+
9
+ function FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {
10
+ return (
11
+ <fieldset
12
+ data-slot="field-set"
13
+ className={cn(
14
+ 'gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col',
15
+ className
16
+ )}
17
+ {...props}
18
+ />
19
+ );
19
20
  }
20
21
 
21
22
  function FieldLegend({
22
- className,
23
- variant = "legend",
24
- ...props
25
- }: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) {
26
- return (
27
- <legend
28
- data-slot="field-legend"
29
- data-variant={variant}
30
- className={cn(
31
- "mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base",
32
- className,
33
- )}
34
- {...props}
35
- />
36
- );
23
+ className,
24
+ variant = 'legend',
25
+ ...props
26
+ }: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {
27
+ return (
28
+ <legend
29
+ data-slot="field-legend"
30
+ data-variant={variant}
31
+ className={cn(
32
+ 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',
33
+ className
34
+ )}
35
+ {...props}
36
+ />
37
+ );
37
38
  }
38
39
 
39
- function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
40
- return (
41
- <div
42
- data-slot="field-group"
43
- className={cn(
44
- "gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col",
45
- className,
46
- )}
47
- {...props}
48
- />
49
- );
40
+ function FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {
41
+ return (
42
+ <div
43
+ data-slot="field-group"
44
+ className={cn(
45
+ 'gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col',
46
+ className
47
+ )}
48
+ {...props}
49
+ />
50
+ );
50
51
  }
51
52
 
52
- const fieldVariants = cva("data-[invalid=true]:text-destructive gap-2 group/field flex w-full", {
53
- variants: {
54
- orientation: {
55
- vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
56
- horizontal:
57
- "flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
58
- responsive:
59
- "flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
60
- },
61
- },
62
- defaultVariants: {
63
- orientation: "vertical",
64
- },
65
- });
53
+ const fieldVariants = cva(
54
+ 'data-[invalid=true]:text-destructive gap-2 group/field flex w-full',
55
+ {
56
+ variants: {
57
+ orientation: {
58
+ vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',
59
+ horizontal:
60
+ 'flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',
61
+ responsive:
62
+ 'flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',
63
+ },
64
+ },
65
+ defaultVariants: {
66
+ orientation: 'vertical',
67
+ },
68
+ }
69
+ );
66
70
 
67
71
  function Field({
68
- className,
69
- orientation = "vertical",
70
- ...props
71
- }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>) {
72
- return (
73
- <div
74
- role="group"
75
- data-slot="field"
76
- data-orientation={orientation}
77
- className={cn(fieldVariants({ orientation }), className)}
78
- {...props}
79
- />
80
- );
72
+ className,
73
+ orientation = 'vertical',
74
+ ...props
75
+ }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {
76
+ return (
77
+ <div
78
+ role="group"
79
+ data-slot="field"
80
+ data-orientation={orientation}
81
+ className={cn(fieldVariants({ orientation }), className)}
82
+ {...props}
83
+ />
84
+ );
81
85
  }
82
86
 
83
- function FieldContent({ className, ...props }: React.ComponentProps<"div">) {
84
- return (
85
- <div
86
- data-slot="field-content"
87
- className={cn("gap-0.5 group/field-content flex flex-1 flex-col leading-snug", className)}
88
- {...props}
89
- />
90
- );
87
+ function FieldContent({ className, ...props }: React.ComponentProps<'div'>) {
88
+ return (
89
+ <div
90
+ data-slot="field-content"
91
+ className={cn(
92
+ 'gap-0.5 group/field-content flex flex-1 flex-col leading-snug',
93
+ className
94
+ )}
95
+ {...props}
96
+ />
97
+ );
91
98
  }
92
99
 
93
- function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {
94
- return (
95
- <Label
96
- data-slot="field-label"
97
- className={cn(
98
- "has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 group/field-label peer/field-label flex w-fit leading-snug",
99
- "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
100
- className,
101
- )}
102
- {...props}
103
- />
104
- );
100
+ function FieldLabel({
101
+ className,
102
+ ...props
103
+ }: React.ComponentProps<typeof Label>) {
104
+ return (
105
+ <Label
106
+ data-slot="field-label"
107
+ className={cn(
108
+ 'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 group/field-label peer/field-label flex w-fit leading-snug',
109
+ 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',
110
+ className
111
+ )}
112
+ {...props}
113
+ />
114
+ );
105
115
  }
106
116
 
107
- function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
108
- return (
109
- <div
110
- data-slot="field-label"
111
- className={cn(
112
- "gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug",
113
- className,
114
- )}
115
- {...props}
116
- />
117
- );
117
+ function FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {
118
+ return (
119
+ <div
120
+ data-slot="field-label"
121
+ className={cn(
122
+ 'gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug',
123
+ className
124
+ )}
125
+ {...props}
126
+ />
127
+ );
118
128
  }
119
129
 
120
- function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
121
- return (
122
- <p
123
- data-slot="field-description"
124
- className={cn(
125
- "text-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance",
126
- "last:mt-0 nth-last-2:-mt-1",
127
- "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
128
- className,
129
- )}
130
- {...props}
131
- />
132
- );
130
+ function FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {
131
+ return (
132
+ <p
133
+ data-slot="field-description"
134
+ className={cn(
135
+ 'text-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance',
136
+ 'last:mt-0 nth-last-2:-mt-1',
137
+ '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',
138
+ className
139
+ )}
140
+ {...props}
141
+ />
142
+ );
133
143
  }
134
144
 
135
145
  function FieldSeparator({
136
- children,
137
- className,
138
- ...props
139
- }: React.ComponentProps<"div"> & {
140
- children?: React.ReactNode;
146
+ children,
147
+ className,
148
+ ...props
149
+ }: React.ComponentProps<'div'> & {
150
+ children?: React.ReactNode;
141
151
  }) {
142
- return (
143
- <div
144
- data-slot="field-separator"
145
- data-content={!!children}
146
- className={cn(
147
- "-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative",
148
- className,
149
- )}
150
- {...props}
151
- >
152
- <Separator className="absolute inset-0 top-1/2" />
153
- {children && (
154
- <span
155
- className="text-muted-foreground px-2 bg-background relative mx-auto block w-fit"
156
- data-slot="field-separator-content"
157
- >
158
- {children}
159
- </span>
160
- )}
161
- </div>
162
- );
152
+ return (
153
+ <div
154
+ data-slot="field-separator"
155
+ data-content={!!children}
156
+ className={cn(
157
+ '-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative',
158
+ className
159
+ )}
160
+ {...props}
161
+ >
162
+ <Separator className="absolute inset-0 top-1/2" />
163
+ {children && (
164
+ <span
165
+ className="text-muted-foreground px-2 bg-background relative mx-auto block w-fit"
166
+ data-slot="field-separator-content"
167
+ >
168
+ {children}
169
+ </span>
170
+ )}
171
+ </div>
172
+ );
163
173
  }
164
174
 
165
175
  function FieldError({
166
- className,
167
- children,
168
- errors,
169
- ...props
170
- }: React.ComponentProps<"div"> & {
171
- errors?: Array<{ message?: string } | undefined>;
176
+ className,
177
+ children,
178
+ errors,
179
+ ...props
180
+ }: React.ComponentProps<'div'> & {
181
+ errors?: Array<{ message?: string } | undefined>;
172
182
  }) {
173
- const content = useMemo(() => {
174
- if (children) {
175
- return children;
176
- }
177
-
178
- if (!errors?.length) {
179
- return null;
180
- }
181
-
182
- const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];
183
-
184
- if (uniqueErrors?.length == 1) {
185
- return uniqueErrors[0]?.message;
186
- }
187
-
188
- return (
189
- <ul className="ml-4 flex list-disc flex-col gap-1">
190
- {uniqueErrors.map((error, index) => error?.message && <li key={index}>{error.message}</li>)}
191
- </ul>
192
- );
193
- }, [children, errors]);
194
-
195
- if (!content) {
196
- return null;
197
- }
198
-
199
- return (
200
- <div
201
- role="alert"
202
- data-slot="field-error"
203
- className={cn("text-destructive text-sm font-normal", className)}
204
- {...props}
205
- >
206
- {content}
207
- </div>
208
- );
183
+ const content = useMemo(() => {
184
+ if (children) {
185
+ return children;
186
+ }
187
+
188
+ if (!errors?.length) {
189
+ return null;
190
+ }
191
+
192
+ const uniqueErrors = [
193
+ ...new Map(errors.map(error => [error?.message, error])).values(),
194
+ ];
195
+
196
+ if (uniqueErrors?.length == 1) {
197
+ return uniqueErrors[0]?.message;
198
+ }
199
+
200
+ return (
201
+ <ul className="ml-4 flex list-disc flex-col gap-1">
202
+ {uniqueErrors.map(
203
+ (error, index) =>
204
+ error?.message && <li key={index}>{error.message}</li>
205
+ )}
206
+ </ul>
207
+ );
208
+ }, [children, errors]);
209
+
210
+ if (!content) {
211
+ return null;
212
+ }
213
+
214
+ return (
215
+ <div
216
+ role="alert"
217
+ data-slot="field-error"
218
+ className={cn('text-destructive text-sm font-normal', className)}
219
+ {...props}
220
+ >
221
+ {content}
222
+ </div>
223
+ );
209
224
  }
210
225
 
211
226
  export {
212
- Field,
213
- FieldLabel,
214
- FieldDescription,
215
- FieldError,
216
- FieldGroup,
217
- FieldLegend,
218
- FieldSeparator,
219
- FieldSet,
220
- FieldContent,
221
- FieldTitle,
227
+ Field,
228
+ FieldLabel,
229
+ FieldDescription,
230
+ FieldError,
231
+ FieldGroup,
232
+ FieldLegend,
233
+ FieldSeparator,
234
+ FieldSet,
235
+ FieldContent,
236
+ FieldTitle,
222
237
  };
@@ -12,73 +12,73 @@
12
12
  * import { Tabs } from "@/components/ui/tabs"
13
13
  */
14
14
 
15
- export { Alert, AlertTitle, AlertDescription } from "./alert";
16
- export { Button, buttonVariants } from "./button";
15
+ export { Alert, AlertTitle, AlertDescription, AlertAction } from './alert';
16
+ export { Button, buttonVariants } from './button';
17
17
  export {
18
- Card,
19
- CardHeader,
20
- CardFooter,
21
- CardTitle,
22
- CardAction,
23
- CardDescription,
24
- CardContent,
25
- } from "./card";
18
+ Card,
19
+ CardHeader,
20
+ CardFooter,
21
+ CardTitle,
22
+ CardAction,
23
+ CardDescription,
24
+ CardContent,
25
+ } from './card';
26
26
  export {
27
- Dialog,
28
- DialogClose,
29
- DialogContent,
30
- DialogDescription,
31
- DialogFooter,
32
- DialogHeader,
33
- DialogOverlay,
34
- DialogPortal,
35
- DialogTitle,
36
- DialogTrigger,
37
- } from "./dialog";
27
+ Dialog,
28
+ DialogClose,
29
+ DialogContent,
30
+ DialogDescription,
31
+ DialogFooter,
32
+ DialogHeader,
33
+ DialogOverlay,
34
+ DialogPortal,
35
+ DialogTitle,
36
+ DialogTrigger,
37
+ } from './dialog';
38
38
  export {
39
- Field,
40
- FieldDescription,
41
- FieldError,
42
- FieldGroup,
43
- FieldLabel,
44
- FieldLegend,
45
- FieldSeparator,
46
- FieldSet,
47
- } from "./field";
48
- export { Input } from "./input";
49
- export { Label } from "./label";
39
+ Field,
40
+ FieldDescription,
41
+ FieldError,
42
+ FieldGroup,
43
+ FieldLabel,
44
+ FieldLegend,
45
+ FieldSeparator,
46
+ FieldSet,
47
+ } from './field';
48
+ export { Input } from './input';
49
+ export { Label } from './label';
50
50
  export {
51
- Select,
52
- SelectGroup,
53
- SelectValue,
54
- SelectTrigger,
55
- SelectContent,
56
- SelectLabel,
57
- SelectItem,
58
- SelectSeparator,
59
- SelectScrollUpButton,
60
- SelectScrollDownButton,
61
- } from "./select";
62
- export { Spinner } from "./spinner";
63
- export { Skeleton } from "./skeleton";
51
+ Select,
52
+ SelectGroup,
53
+ SelectValue,
54
+ SelectTrigger,
55
+ SelectContent,
56
+ SelectLabel,
57
+ SelectItem,
58
+ SelectSeparator,
59
+ SelectScrollUpButton,
60
+ SelectScrollDownButton,
61
+ } from './select';
62
+ export { Spinner } from './spinner';
63
+ export { Skeleton } from './skeleton';
64
64
  export {
65
- Table,
66
- TableHeader,
67
- TableBody,
68
- TableFooter,
69
- TableHead,
70
- TableRow,
71
- TableCell,
72
- TableCaption,
73
- } from "./table";
74
- export { Tabs, TabsList, TabsTrigger, TabsContent } from "./tabs";
65
+ Table,
66
+ TableHeader,
67
+ TableBody,
68
+ TableFooter,
69
+ TableHead,
70
+ TableRow,
71
+ TableCell,
72
+ TableCaption,
73
+ } from './table';
74
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './tabs';
75
75
  export {
76
- Pagination,
77
- PaginationContent,
78
- PaginationEllipsis,
79
- PaginationItem,
80
- PaginationLink,
81
- PaginationNext,
82
- PaginationPrevious,
83
- } from "./pagination";
84
- export { Separator } from "./separator";
76
+ Pagination,
77
+ PaginationContent,
78
+ PaginationEllipsis,
79
+ PaginationItem,
80
+ PaginationLink,
81
+ PaginationNext,
82
+ PaginationPrevious,
83
+ } from './pagination';
84
+ export { Separator } from './separator';
@@ -1,19 +1,19 @@
1
- import * as React from "react";
1
+ import * as React from 'react';
2
2
 
3
- import { cn } from "../../lib/utils";
3
+ import { cn } from '../../lib/utils';
4
4
 
5
- function Input({ className, type, ...props }: React.ComponentProps<"input">) {
6
- return (
7
- <input
8
- type={type}
9
- data-slot="input"
10
- className={cn(
11
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
12
- className,
13
- )}
14
- {...props}
15
- />
16
- );
5
+ function Input({ className, type, ...props }: React.ComponentProps<'input'>) {
6
+ return (
7
+ <input
8
+ type={type}
9
+ data-slot="input"
10
+ className={cn(
11
+ 'dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
12
+ className
13
+ )}
14
+ {...props}
15
+ />
16
+ );
17
17
  }
18
18
 
19
19
  export { Input };
@@ -1,19 +1,22 @@
1
- import * as React from "react";
2
- import { Label as LabelPrimitive } from "radix-ui";
1
+ import * as React from 'react';
2
+ import { Label as LabelPrimitive } from 'radix-ui';
3
3
 
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from '../../lib/utils';
5
5
 
6
- function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {
7
- return (
8
- <LabelPrimitive.Root
9
- data-slot="label"
10
- className={cn(
11
- "gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
12
- className,
13
- )}
14
- {...props}
15
- />
16
- );
6
+ function Label({
7
+ className,
8
+ ...props
9
+ }: React.ComponentProps<typeof LabelPrimitive.Root>) {
10
+ return (
11
+ <LabelPrimitive.Root
12
+ data-slot="label"
13
+ className={cn(
14
+ 'gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed',
15
+ className
16
+ )}
17
+ {...props}
18
+ />
19
+ );
17
20
  }
18
21
 
19
22
  export { Label };