@aws/nx-plugin 0.80.1 → 0.82.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 (50) hide show
  1. package/LICENSE-THIRD-PARTY +141 -373
  2. package/package.json +4 -4
  3. package/src/infra/app/__snapshots__/generator.spec.ts.snap +11 -11
  4. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +368 -86
  5. package/src/py/fast-api/generator.js +3 -0
  6. package/src/py/fast-api/generator.js.map +1 -1
  7. package/src/py/fast-api/schema.d.ts +1 -0
  8. package/src/py/fast-api/schema.json +22 -0
  9. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
  10. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +5 -5
  11. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +12 -8
  12. package/src/smithy/ts/api/generator.js +3 -0
  13. package/src/smithy/ts/api/generator.js.map +1 -1
  14. package/src/smithy/ts/api/schema.d.ts +4 -0
  15. package/src/smithy/ts/api/schema.json +22 -0
  16. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +392 -102
  17. package/src/trpc/backend/generator.js +20 -1
  18. package/src/trpc/backend/generator.js.map +1 -1
  19. package/src/trpc/backend/schema.d.ts +1 -0
  20. package/src/trpc/backend/schema.json +22 -0
  21. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +2 -3
  22. package/src/trpc/react/generator.js +1 -2
  23. package/src/trpc/react/generator.js.map +1 -1
  24. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
  25. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +28 -28
  26. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +5 -4
  27. package/src/ts/strands-agent/files/app/router.ts.template +5 -4
  28. package/src/utils/api-constructs/api-constructs.d.ts +1 -0
  29. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  30. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +18 -10
  31. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +28 -16
  32. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +25 -5
  33. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +32 -8
  34. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +151 -32
  35. package/src/utils/connection/open-api/react.js +1 -2
  36. package/src/utils/connection/open-api/react.js.map +1 -1
  37. package/src/utils/files/common/shadcn/src/components/ui/alert.tsx.template +3 -3
  38. package/src/utils/files/common/shadcn/src/components/ui/breadcrumb.tsx.template +3 -3
  39. package/src/utils/files/common/shadcn/src/components/ui/button.tsx.template +4 -4
  40. package/src/utils/files/common/shadcn/src/components/ui/card.tsx.template +2 -2
  41. package/src/utils/files/common/shadcn/src/components/ui/input.tsx.template +3 -3
  42. package/src/utils/files/common/shadcn/src/components/ui/separator.tsx.template +1 -1
  43. package/src/utils/files/common/shadcn/src/components/ui/sheet.tsx.template +9 -9
  44. package/src/utils/files/common/shadcn/src/components/ui/sidebar.tsx.template +18 -18
  45. package/src/utils/files/common/shadcn/src/components/ui/skeleton.tsx.template +1 -1
  46. package/src/utils/files/common/shadcn/src/components/ui/tooltip.tsx.template +2 -2
  47. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +2 -3
  48. package/src/utils/versions.d.ts +40 -42
  49. package/src/utils/versions.js +39 -41
  50. package/src/utils/versions.js.map +1 -1
@@ -6,17 +6,21 @@ import {
6
6
  Stage,
7
7
  } from 'aws-cdk-lib/aws-apigateway';
8
8
  import { RuntimeConfig } from '../runtime-config.js';
9
- import { OperationDetails, RestApiIntegration } from './utils.js';
9
+ import {
10
+ ApiIntegrations,
11
+ OperationDetails,
12
+ RestApiIntegration,
13
+ } from './utils.js';
10
14
  import { suppressRules } from '../checkov.js';
11
15
 
12
16
  /**
13
17
  * Properties for creating a RestApi construct.
14
18
  *
15
- * @template TIntegrations - Record mapping operation names to their integrations
19
+ * @template TIntegrations - Record mapping integration keys to their integrations
16
20
  * @template TOperation - String literal type representing operation names
17
21
  */
18
22
  export interface RestApiProps<
19
- TIntegrations extends Record<TOperation, RestApiIntegration>,
23
+ TIntegrations extends ApiIntegrations<TOperation, RestApiIntegration>,
20
24
  TOperation extends string,
21
25
  > extends _RestApiProps {
22
26
  /**
@@ -28,7 +32,7 @@ export interface RestApiProps<
28
32
  */
29
33
  readonly operations: Record<TOperation, OperationDetails>;
30
34
  /**
31
- * Map of operation names to their API Gateway integrations
35
+ * Map of integration keys to their API Gateway integrations
32
36
  */
33
37
  readonly integrations: TIntegrations;
34
38
  }
@@ -42,16 +46,16 @@ export interface RestApiProps<
42
46
  * - Integration with runtime configuration for client discovery
43
47
  *
44
48
  * @template TOperation - String literal type representing operation names
45
- * @template TIntegrations - Record mapping operation names to their integrations
49
+ * @template TIntegrations - Record mapping integration keys to their integrations
46
50
  */
47
51
  export class RestApi<
48
52
  TOperation extends string,
49
- TIntegrations extends Record<TOperation, RestApiIntegration>,
53
+ TIntegrations extends ApiIntegrations<TOperation, RestApiIntegration>,
50
54
  > extends Construct {
51
55
  /** The underlying CDK RestApi instance */
52
56
  public readonly api: _RestApi;
53
57
 
54
- /** Map of operation names to their API Gateway integrations */
58
+ /** Map of integration keys to their API Gateway integrations */
55
59
  public readonly integrations: TIntegrations;
56
60
 
57
61
  constructor(
@@ -83,9 +87,25 @@ export class RestApi<
83
87
  (c) => c instanceof Stage,
84
88
  );
85
89
 
90
+ // Resolve the integration for a given operation.
91
+ // If the operation has a dedicated integration, use it; otherwise fall back to $router.
92
+ const resolveIntegration = (op: TOperation): RestApiIntegration => {
93
+ const record = integrations as Record<string, RestApiIntegration>;
94
+ if (op in record) {
95
+ return record[op];
96
+ }
97
+ if ('$router' in record) {
98
+ return record['$router'];
99
+ }
100
+ throw new Error(
101
+ `No integration found for operation '${op}' and no $router integration available`,
102
+ );
103
+ };
104
+
86
105
  // Create API resources and methods for each operation
87
106
  (Object.entries(operations) as [TOperation, OperationDetails][]).map(
88
107
  ([op, details]) => {
108
+ const integration = resolveIntegration(op);
89
109
  const resource = this.getOrCreateResource(
90
110
  this.api.root,
91
111
  (details.path.startsWith('/')
@@ -93,7 +113,11 @@ export class RestApi<
93
113
  : details.path
94
114
  ).split('/'),
95
115
  );
96
- resource.addMethod(details.method, integrations[op].integration, integrations[op].options);
116
+ resource.addMethod(
117
+ details.method,
118
+ integration.integration,
119
+ integration.options,
120
+ );
97
121
  },
98
122
  );
99
123
 
@@ -46,20 +46,46 @@ export interface HttpApiIntegration {
46
46
  }
47
47
 
48
48
  /**
49
- * Options for constructing an IntegrationBuilder
49
+ * Common options shared by all IntegrationBuilder configurations
50
50
  */
51
- export interface IntegrationBuilderProps<
51
+ interface IntegrationBuilderPropsBase<
52
52
  TOperation extends string,
53
- TBaseIntegration,
54
53
  TDefaultIntegrationProps extends object,
55
- TDefaultIntegration extends TBaseIntegration,
56
54
  > {
57
55
  /** Map of operation names to their API path and HTTP method details */
58
56
  operations: Record<TOperation, OperationDetails>;
59
57
 
60
58
  /** Default configuration options for integrations */
61
59
  defaultIntegrationOptions: TDefaultIntegrationProps;
60
+ }
61
+
62
+ /**
63
+ * Options for constructing an IntegrationBuilder with a shared integration pattern.
64
+ * A single default integration is built once (for '$router') and reused for all operations.
65
+ */
66
+ interface SharedIntegrationBuilderProps<
67
+ TOperation extends string,
68
+ TDefaultIntegrationProps extends object,
69
+ TDefaultIntegration,
70
+ > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
71
+ pattern: 'shared';
72
+ /** Function to create a default integration for the shared router */
73
+ buildDefaultIntegration: (
74
+ op: '$router',
75
+ props: TDefaultIntegrationProps,
76
+ ) => TDefaultIntegration;
77
+ }
62
78
 
79
+ /**
80
+ * Options for constructing an IntegrationBuilder with an isolated integration pattern.
81
+ * A separate default integration is built per operation.
82
+ */
83
+ interface IsolatedIntegrationBuilderProps<
84
+ TOperation extends string,
85
+ TDefaultIntegrationProps extends object,
86
+ TDefaultIntegration,
87
+ > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
88
+ pattern: 'isolated';
63
89
  /** Function to create a default integration for an operation */
64
90
  buildDefaultIntegration: (
65
91
  op: TOperation,
@@ -67,6 +93,71 @@ export interface IntegrationBuilderProps<
67
93
  ) => TDefaultIntegration;
68
94
  }
69
95
 
96
+ /**
97
+ * Options for constructing an IntegrationBuilder
98
+ */
99
+ export type IntegrationBuilderProps<
100
+ TOperation extends string,
101
+ TBaseIntegration,
102
+ TDefaultIntegrationProps extends object,
103
+ TDefaultIntegration extends TBaseIntegration,
104
+ > =
105
+ | SharedIntegrationBuilderProps<
106
+ TOperation,
107
+ TDefaultIntegrationProps,
108
+ TDefaultIntegration
109
+ >
110
+ | IsolatedIntegrationBuilderProps<
111
+ TOperation,
112
+ TDefaultIntegrationProps,
113
+ TDefaultIntegration
114
+ >;
115
+
116
+ /**
117
+ * Extracts the IntegrationBuilderProps variant matching the given pattern.
118
+ */
119
+ type IntegrationBuilderPropsForPattern<
120
+ TOperation extends string,
121
+ TBaseIntegration,
122
+ TDefaultIntegrationProps extends object,
123
+ TDefaultIntegration extends TBaseIntegration,
124
+ TPattern extends 'shared' | 'isolated',
125
+ > = Extract<
126
+ IntegrationBuilderProps<
127
+ TOperation,
128
+ TBaseIntegration,
129
+ TDefaultIntegrationProps,
130
+ TDefaultIntegration
131
+ >,
132
+ { pattern: TPattern }
133
+ >;
134
+
135
+ /**
136
+ * Resolves the default integration keys based on the pattern.
137
+ * - 'shared': only '$router' is a default key
138
+ * - 'isolated': all TOperation keys are default keys
139
+ */
140
+ type DefaultIntegrationKeys<
141
+ TPattern extends 'shared' | 'isolated',
142
+ TOperation extends string,
143
+ > = TPattern extends 'shared' ? '$router' : TOperation;
144
+
145
+ /**
146
+ * Shared integration record: $router is required, individual operations are optional.
147
+ */
148
+ type SharedIntegrations<TOperation extends string, TBaseIntegration> = {
149
+ $router: TBaseIntegration;
150
+ } & Partial<Record<TOperation, TBaseIntegration>>;
151
+
152
+ /**
153
+ * Valid integration record types for an API.
154
+ * Either all operations are provided (isolated), or $router is provided
155
+ * with optional per-operation overrides (shared).
156
+ */
157
+ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
158
+ | SharedIntegrations<TOperation, TBaseIntegration>
159
+ | (Record<TOperation, TBaseIntegration> & { $router?: never });
160
+
70
161
  /**
71
162
  * A builder class for creating API integrations with flexible configuration options.
72
163
  *
@@ -75,16 +166,18 @@ export interface IntegrationBuilderProps<
75
166
  *
76
167
  * @template TOperation - String literal type representing operation names
77
168
  * @template TBaseIntegration - Base type for all integrations
78
- * @template TIntegrations - Record mapping operation names to their integrations
169
+ * @template TIntegrations - Record mapping integration keys to their integrations
79
170
  * @template TDefaultIntegrationProps - Type for default integration properties
80
171
  * @template TDefaultIntegration - Type for default integration implementation
172
+ * @template TPattern - The integration pattern ('shared' or 'isolated')
81
173
  */
82
174
  export class IntegrationBuilder<
83
175
  TOperation extends string,
84
176
  TBaseIntegration,
85
- TIntegrations extends Record<TOperation, TBaseIntegration>,
177
+ TIntegrations extends Record<string, TBaseIntegration>,
86
178
  TDefaultIntegrationProps extends object,
87
179
  TDefaultIntegration extends TBaseIntegration,
180
+ TPattern extends 'shared' | 'isolated',
88
181
  > {
89
182
  /** Options for the integration builder */
90
183
  private options: IntegrationBuilderProps<
@@ -102,23 +195,25 @@ export class IntegrationBuilder<
102
195
  */
103
196
  public static http = <
104
197
  TOperation extends string,
105
- TIntegrations extends Record<TOperation, TDefaultIntegration>,
106
198
  TDefaultIntegrationProps extends object,
107
199
  TDefaultIntegration extends HttpApiIntegration,
200
+ TPattern extends 'shared' | 'isolated',
108
201
  >(
109
- options: IntegrationBuilderProps<
202
+ options: IntegrationBuilderPropsForPattern<
110
203
  TOperation,
111
204
  HttpApiIntegration,
112
205
  TDefaultIntegrationProps,
113
- TDefaultIntegration
206
+ TDefaultIntegration,
207
+ TPattern
114
208
  >,
115
209
  ) => {
116
210
  return new IntegrationBuilder<
117
211
  TOperation,
118
212
  HttpApiIntegration,
119
- TIntegrations,
213
+ Record<DefaultIntegrationKeys<TPattern, TOperation>, TDefaultIntegration>,
120
214
  TDefaultIntegrationProps,
121
- TDefaultIntegration
215
+ TDefaultIntegration,
216
+ TPattern
122
217
  >(options);
123
218
  };
124
219
 
@@ -127,23 +222,25 @@ export class IntegrationBuilder<
127
222
  */
128
223
  public static rest = <
129
224
  TOperation extends string,
130
- TIntegrations extends Record<TOperation, TDefaultIntegration>,
131
225
  TDefaultIntegrationProps extends object,
132
226
  TDefaultIntegration extends RestApiIntegration,
227
+ TPattern extends 'shared' | 'isolated',
133
228
  >(
134
- options: IntegrationBuilderProps<
229
+ options: IntegrationBuilderPropsForPattern<
135
230
  TOperation,
136
231
  RestApiIntegration,
137
232
  TDefaultIntegrationProps,
138
- TDefaultIntegration
233
+ TDefaultIntegration,
234
+ TPattern
139
235
  >,
140
236
  ) => {
141
237
  return new IntegrationBuilder<
142
238
  TOperation,
143
239
  RestApiIntegration,
144
- TIntegrations,
240
+ Record<DefaultIntegrationKeys<TPattern, TOperation>, TDefaultIntegration>,
145
241
  TDefaultIntegrationProps,
146
- TDefaultIntegration
242
+ TDefaultIntegration,
243
+ TPattern
147
244
  >(options);
148
245
  };
149
246
 
@@ -168,13 +265,20 @@ export class IntegrationBuilder<
168
265
  TOverrideIntegrations extends Partial<Record<TOperation, TBaseIntegration>>,
169
266
  >(overrides: TOverrideIntegrations) {
170
267
  this.integrations = { ...this.integrations, ...overrides };
171
- // Re-type to include the overridden integration types
268
+ // Re-type to include the overridden integration types.
269
+ // If all operations are overridden in a 'shared' pattern, drop '$router' from the type.
270
+ type MergedIntegrations = [TOperation] extends [keyof TOverrideIntegrations]
271
+ ? Omit<TIntegrations, keyof TOverrideIntegrations | '$router'> &
272
+ TOverrideIntegrations
273
+ : Omit<TIntegrations, keyof TOverrideIntegrations> &
274
+ TOverrideIntegrations;
172
275
  return this as unknown as IntegrationBuilder<
173
276
  TOperation,
174
277
  TBaseIntegration,
175
- Omit<TIntegrations, keyof TOverrideIntegrations> & TOverrideIntegrations,
278
+ MergedIntegrations,
176
279
  TDefaultIntegrationProps,
177
- TDefaultIntegration
280
+ TDefaultIntegration,
281
+ TPattern
178
282
  >;
179
283
  }
180
284
 
@@ -200,24 +304,39 @@ export class IntegrationBuilder<
200
304
  * 1. Including all custom overrides provided via withOverrides()
201
305
  * 2. Creating default integrations for any operations without custom overrides
202
306
  *
203
- * @returns A complete map of operation names to their integrations
307
+ * For the 'shared' pattern, a single router integration is built and assigned to '$router'.
308
+ * For the 'isolated' pattern, each operation without an override gets its own integration.
309
+ *
310
+ * @returns A complete map of integration keys to their integrations
204
311
  */
205
312
  public build(): TIntegrations {
313
+ const options = this.options;
206
314
  return {
207
- ...this.integrations,
208
315
  ...Object.fromEntries(
209
- (Object.keys(this.options.operations) as TOperation[])
210
- .filter(
211
- (op) => !this.integrations[op as keyof typeof this.integrations],
212
- )
213
- .map((op) => [
214
- op,
215
- this.options.buildDefaultIntegration(
216
- op,
217
- this.options.defaultIntegrationOptions,
218
- ),
219
- ]),
316
+ options.pattern === 'shared'
317
+ ? [
318
+ [
319
+ '$router',
320
+ options.buildDefaultIntegration(
321
+ '$router',
322
+ options.defaultIntegrationOptions,
323
+ ),
324
+ ],
325
+ ]
326
+ : (Object.keys(options.operations) as TOperation[])
327
+ .filter(
328
+ (op) =>
329
+ !this.integrations[op as keyof typeof this.integrations],
330
+ )
331
+ .map((op) => [
332
+ op,
333
+ options.buildDefaultIntegration(
334
+ op,
335
+ options.defaultIntegrationOptions,
336
+ ),
337
+ ]),
220
338
  ),
339
+ ...this.integrations,
221
340
  } as unknown as TIntegrations;
222
341
  }
223
342
  }
@@ -120,8 +120,7 @@ const addOpenApiReactClient = (tree_1, _a) => tslib_1.__awaiter(void 0, [tree_1,
120
120
  ? [
121
121
  'oidc-client-ts',
122
122
  'react-oidc-context',
123
- '@aws-sdk/client-cognito-identity',
124
- '@aws-sdk/credential-provider-cognito-identity',
123
+ '@aws-sdk/credential-providers',
125
124
  'aws4fetch',
126
125
  ]
127
126
  : []),
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/utils/connection/open-api/react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/utils/connection/open-api/react.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { cva, type VariantProps } from "class-variance-authority"
4
4
  import { cn } from "<%= scopeAlias %>common-shadcn/lib/utils"
5
5
 
6
6
  const alertVariants = cva(
7
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
7
+ "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
11
  default: "bg-card text-card-foreground",
12
12
  destructive:
13
- "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",
13
+ "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current",
14
14
  },
15
15
  },
16
16
  defaultVariants: {
@@ -55,7 +55,7 @@ function AlertDescription({
55
55
  <div
56
56
  data-slot="alert-description"
57
57
  className={cn(
58
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
58
+ "col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed",
59
59
  className
60
60
  )}
61
61
  {...props}
@@ -13,7 +13,7 @@ function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {
13
13
  <ol
14
14
  data-slot="breadcrumb-list"
15
15
  className={cn(
16
- "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
16
+ "flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5",
17
17
  className
18
18
  )}
19
19
  {...props}
@@ -43,7 +43,7 @@ function BreadcrumbLink({
43
43
  return (
44
44
  <Comp
45
45
  data-slot="breadcrumb-link"
46
- className={cn("hover:text-foreground transition-colors", className)}
46
+ className={cn("transition-colors hover:text-foreground", className)}
47
47
  {...props}
48
48
  />
49
49
  )
@@ -56,7 +56,7 @@ function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {
56
56
  role="link"
57
57
  aria-disabled="true"
58
58
  aria-current="page"
59
- className={cn("text-foreground font-normal", className)}
59
+ className={cn("font-normal text-foreground", className)}
60
60
  {...props}
61
61
  />
62
62
  )
@@ -5,15 +5,15 @@ import { Slot } from "radix-ui"
5
5
  import { cn } from "<%= scopeAlias %>common-shadcn/lib/utils"
6
6
 
7
7
  const buttonVariants = cva(
8
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
8
+ "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
9
9
  {
10
10
  variants: {
11
11
  variant: {
12
12
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
13
  destructive:
14
- "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
14
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
15
15
  outline:
16
- "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
16
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
17
17
  secondary:
18
18
  "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19
19
  ghost:
@@ -23,7 +23,7 @@ const buttonVariants = cva(
23
23
  size: {
24
24
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
25
25
  xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
27
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
28
  icon: "size-9",
29
29
  "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
@@ -7,7 +7,7 @@ function Card({ className, ...props }: React.ComponentProps<"div">) {
7
7
  <div
8
8
  data-slot="card"
9
9
  className={cn(
10
- "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
10
+ "flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
11
11
  className
12
12
  )}
13
13
  {...props}
@@ -42,7 +42,7 @@ function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
42
42
  return (
43
43
  <div
44
44
  data-slot="card-description"
45
- className={cn("text-muted-foreground text-sm", className)}
45
+ className={cn("text-sm text-muted-foreground", className)}
46
46
  {...props}
47
47
  />
48
48
  )
@@ -8,9 +8,9 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
8
8
  type={type}
9
9
  data-slot="input"
10
10
  className={cn(
11
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
12
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
13
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
11
+ "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
12
+ "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
13
+ "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
14
14
  className
15
15
  )}
16
16
  {...props}
@@ -17,7 +17,7 @@ function Separator({
17
17
  decorative={decorative}
18
18
  orientation={orientation}
19
19
  className={cn(
20
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
20
+ "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
21
21
  className
22
22
  )}
23
23
  {...props}
@@ -36,7 +36,7 @@ function SheetOverlay({
36
36
  <SheetPrimitive.Overlay
37
37
  data-slot="sheet-overlay"
38
38
  className={cn(
39
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
39
+ "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
40
40
  className
41
41
  )}
42
42
  {...props}
@@ -60,22 +60,22 @@ function SheetContent({
60
60
  <SheetPrimitive.Content
61
61
  data-slot="sheet-content"
62
62
  className={cn(
63
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
63
+ "fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",
64
64
  side === "right" &&
65
- "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
65
+ "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
66
66
  side === "left" &&
67
- "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
67
+ "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
68
68
  side === "top" &&
69
- "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
69
+ "inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
70
70
  side === "bottom" &&
71
- "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
71
+ "inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
72
72
  className
73
73
  )}
74
74
  {...props}
75
75
  >
76
76
  {children}
77
77
  {showCloseButton && (
78
- <SheetPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none">
78
+ <SheetPrimitive.Close className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary">
79
79
  <XIcon className="size-4" />
80
80
  <span className="sr-only">Close</span>
81
81
  </SheetPrimitive.Close>
@@ -112,7 +112,7 @@ function SheetTitle({
112
112
  return (
113
113
  <SheetPrimitive.Title
114
114
  data-slot="sheet-title"
115
- className={cn("text-foreground font-semibold", className)}
115
+ className={cn("font-semibold text-foreground", className)}
116
116
  {...props}
117
117
  />
118
118
  )
@@ -125,7 +125,7 @@ function SheetDescription({
125
125
  return (
126
126
  <SheetPrimitive.Description
127
127
  data-slot="sheet-description"
128
- className={cn("text-muted-foreground text-sm", className)}
128
+ className={cn("text-sm text-muted-foreground", className)}
129
129
  {...props}
130
130
  />
131
131
  )