qstd 0.3.69 → 0.3.71

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.
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/block/input.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAU9B,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,2CAqFtD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,2CAyBhD;yBAzBe,QAAQ;;;AA4BxB,wBAAgB,SAAS,CACvB,KAAK,EAAE,EAAE,CAAC,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,kDA8BnE;yBA/Be,SAAS;;;AAkCzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,UAAU,2CA0DvE;yBA1De,KAAK"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/block/input.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAU9B,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,2CAqFtD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,2CAyBhD;yBAzBe,QAAQ;;;AA4BxB,wBAAgB,SAAS,CACvB,KAAK,EAAE,EAAE,CAAC,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,kDA8BnE;yBA/Be,SAAS;;;AAkCzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,UAAU,2CAwEvE;yBAxEe,KAAK"}
@@ -2342,12 +2342,25 @@ function Label2(props) {
2342
2342
  children,
2343
2343
  hasLeftIcon,
2344
2344
  bg: consumerBg,
2345
+ // Extract all spacing/style props that have defaults to prevent atomic CSS conflicts
2346
+ ml: consumerMl,
2347
+ mr: consumerMr,
2348
+ px: consumerPx,
2349
+ py: consumerPy,
2350
+ br: consumerBr,
2351
+ lineHeight: consumerLineHeight,
2345
2352
  _labelLifted: consumerLabelLifted,
2346
2353
  onAnimationStart: _onAnimationStart,
2347
2354
  onAnimationComplete: _onAnimationComplete,
2348
2355
  ...rest
2349
2356
  } = props;
2350
- const ml = hasLeftIcon ? 6 : 1;
2357
+ const defaultMl = hasLeftIcon ? 6 : 1;
2358
+ const ml = consumerMl ?? defaultMl;
2359
+ const mr = consumerMr ?? 1;
2360
+ const px = consumerPx ?? 2;
2361
+ const py = consumerPy ?? 0.5;
2362
+ const br = consumerBr ?? 8;
2363
+ const lineHeight = consumerLineHeight ?? 1.1;
2351
2364
  const defaultLabelLifted = {
2352
2365
  transformOrigin: "top left",
2353
2366
  transform: "scale(0.8)",
@@ -2367,12 +2380,12 @@ function Label2(props) {
2367
2380
  transform: "translate(0, -50%) scale(1)",
2368
2381
  transition: "200ms cubic-bezier(0, 0, 0.2, 1) 0ms, .2s color ease-in-out, .2s background ease-in-out",
2369
2382
  ml,
2370
- mr: 1,
2371
- px: 2,
2372
- py: 0.5,
2373
- br: 8,
2383
+ mr,
2384
+ px,
2385
+ py,
2386
+ br,
2374
2387
  color: error ? "text-alert" : "input-label-color",
2375
- lineHeight: 1.1,
2388
+ lineHeight,
2376
2389
  bg: consumerBg,
2377
2390
  ...rest,
2378
2391
  _labelLifted: {
@@ -888,12 +888,6 @@
888
888
  .rounded_50\% {
889
889
  border-radius: 50%;
890
890
  }
891
- .trs_200ms_cubic-bezier\(0\,_0\,_0\.2\,_1\)_0ms\,_\.2s_color_ease-in-out\,_\.2s_background_ease-in-out {
892
- transition:
893
- 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
894
- .2s color ease-in-out,
895
- .2s background ease-in-out;
896
- }
897
891
  .px_2 {
898
892
  padding-inline: var(--spacing-2);
899
893
  }
@@ -903,6 +897,12 @@
903
897
  .rounded_8 {
904
898
  border-radius: 8px;
905
899
  }
900
+ .trs_200ms_cubic-bezier\(0\,_0\,_0\.2\,_1\)_0ms\,_\.2s_color_ease-in-out\,_\.2s_background_ease-in-out {
901
+ transition:
902
+ 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
903
+ .2s color ease-in-out,
904
+ .2s background ease-in-out;
905
+ }
906
906
  .bd-c_input-border-color-error {
907
907
  border-color: var(--colors-input-border-color-error);
908
908
  }
@@ -1103,6 +1103,9 @@
1103
1103
  .c_input-label-color {
1104
1104
  color: var(--colors-input-label-color);
1105
1105
  }
1106
+ .lh_1\.1 {
1107
+ line-height: 1.1;
1108
+ }
1106
1109
  .grid-af_column {
1107
1110
  grid-auto-flow: column;
1108
1111
  }
@@ -1115,9 +1118,6 @@
1115
1118
  .trf_translate\(0\,_-50\%\)_scale\(1\) {
1116
1119
  transform: translate(0, -50%) scale(1);
1117
1120
  }
1118
- .lh_1\.1 {
1119
- line-height: 1.1;
1120
- }
1121
1121
  .ring-c_input-outline-color-error {
1122
1122
  outline-color: var(--colors-input-outline-color-error);
1123
1123
  }
@@ -2319,12 +2319,25 @@ function Label2(props) {
2319
2319
  children,
2320
2320
  hasLeftIcon,
2321
2321
  bg: consumerBg,
2322
+ // Extract all spacing/style props that have defaults to prevent atomic CSS conflicts
2323
+ ml: consumerMl,
2324
+ mr: consumerMr,
2325
+ px: consumerPx,
2326
+ py: consumerPy,
2327
+ br: consumerBr,
2328
+ lineHeight: consumerLineHeight,
2322
2329
  _labelLifted: consumerLabelLifted,
2323
2330
  onAnimationStart: _onAnimationStart,
2324
2331
  onAnimationComplete: _onAnimationComplete,
2325
2332
  ...rest
2326
2333
  } = props;
2327
- const ml = hasLeftIcon ? 6 : 1;
2334
+ const defaultMl = hasLeftIcon ? 6 : 1;
2335
+ const ml = consumerMl ?? defaultMl;
2336
+ const mr = consumerMr ?? 1;
2337
+ const px = consumerPx ?? 2;
2338
+ const py = consumerPy ?? 0.5;
2339
+ const br = consumerBr ?? 8;
2340
+ const lineHeight = consumerLineHeight ?? 1.1;
2328
2341
  const defaultLabelLifted = {
2329
2342
  transformOrigin: "top left",
2330
2343
  transform: "scale(0.8)",
@@ -2344,12 +2357,12 @@ function Label2(props) {
2344
2357
  transform: "translate(0, -50%) scale(1)",
2345
2358
  transition: "200ms cubic-bezier(0, 0, 0.2, 1) 0ms, .2s color ease-in-out, .2s background ease-in-out",
2346
2359
  ml,
2347
- mr: 1,
2348
- px: 2,
2349
- py: 0.5,
2350
- br: 8,
2360
+ mr,
2361
+ px,
2362
+ py,
2363
+ br,
2351
2364
  color: error ? "text-alert" : "input-label-color",
2352
- lineHeight: 1.1,
2365
+ lineHeight,
2353
2366
  bg: consumerBg,
2354
2367
  ...rest,
2355
2368
  _labelLifted: {
@@ -45,6 +45,55 @@ export type FileProps = {
45
45
  export declare const getFile: (s3: _t.Client, props: FileProps) => Promise<GetObjectCommandOutput>;
46
46
  export declare const deleteFile: (s3: _t.Client, props: FileProps) => Promise<DeleteObjectCommandOutput>;
47
47
  export declare const getFileMetadata: (s3: _t.Client, props: FileProps) => Promise<HeadObjectCommandOutput>;
48
+ /**
49
+ * Check if a file exists in S3.
50
+ *
51
+ * Returns true if the file exists, false if it doesn't.
52
+ * Only throws on unexpected errors (not 404).
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const exists = await S3.fileExists(s3, { key: "images/photo.jpg" });
57
+ * if (exists) {
58
+ * // File exists, safe to reference or copy
59
+ * }
60
+ * ```
61
+ */
62
+ export declare const fileExists: (s3: _t.Client, props: FileProps) => Promise<boolean>;
63
+ export type CopyFileProps = {
64
+ /** Source file location */
65
+ src: {
66
+ bucket?: string;
67
+ key: string;
68
+ };
69
+ /** Destination file location */
70
+ dest: {
71
+ bucket?: string;
72
+ key: string;
73
+ };
74
+ };
75
+ /**
76
+ * Copy a file within S3.
77
+ *
78
+ * By default, both source and destination use the client's configured bucket.
79
+ * Override with `src.bucket` or `dest.bucket` for cross-bucket copies.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * // Copy within same bucket
84
+ * await S3.copyFile(s3, {
85
+ * src: { key: "index.sqlite" },
86
+ * dest: { key: "index.backup.1.sqlite" },
87
+ * });
88
+ *
89
+ * // Copy across buckets
90
+ * await S3.copyFile(s3, {
91
+ * src: { bucket: "prod-bucket", key: "data/file.json" },
92
+ * dest: { bucket: "backup-bucket", key: "backup/file.json" },
93
+ * });
94
+ * ```
95
+ */
96
+ export declare const copyFile: (s3: _t.Client, props: CopyFileProps) => Promise<import("@aws-sdk/client-s3").CopyObjectCommandOutput>;
48
97
  /**
49
98
  * Create a new S3 bucket
50
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,eAAO,MAAM,MAAM,GAAI,QAAO,EAAE,CAAC,WAAgB,KAAG,EAAE,CAAC,MAKtD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,kBAAkB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC;AAC1B,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,CAAC,MAAM,EACb,KAAK,EAAE,EAAE,CAAC,uBAAuB,GAChC,OAAO,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC;AAoD5C;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,WAAW,iEAU9D,CAAC;AAMF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,sBAAsB,CAehC,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,yBAAyB,CAWnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,SAAS,KACf,OAAO,CAAC,uBAAuB,CAWjC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,oEAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,oEAG7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAU,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,MAAM,qBAgBnE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,EAAE,CAAC,MAAM,EACb,SAAS,EAAE,CAAC,kBAAkB,qDAkB/B,CAAC;AAMF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,GACjC,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,EAAE,CAAC,2BAA2B;;;;EAiCtC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,GAClC,IAAI,EAAE,CAAC,MAAM,EACb,OAAO,EAAE,CAAC,4BAA4B,+EAiCvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,EAAE,CAAC,SAAS,EAAE,GAAG,IAgB9D,CAAC"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/s3/domain.ts"],"names":[],"mappings":"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"}
@@ -2122,11 +2122,13 @@ var send2 = (ses, email) => {
2122
2122
  var s3_exports = {};
2123
2123
  __export(s3_exports, {
2124
2124
  bucketExists: () => bucketExists,
2125
+ copyFile: () => copyFile,
2125
2126
  create: () => create6,
2126
2127
  createBucket: () => createBucket,
2127
2128
  createSignedUrl: () => createSignedUrl,
2128
2129
  deleteBucket: () => deleteBucket,
2129
2130
  deleteFile: () => deleteFile,
2131
+ fileExists: () => fileExists,
2130
2132
  finalizeMultipartUpload: () => finalizeMultipartUpload,
2131
2133
  getFile: () => getFile,
2132
2134
  getFileMetadata: () => getFileMetadata,
@@ -2215,9 +2217,9 @@ var getFile = async (s3, props) => {
2215
2217
  const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
2216
2218
  return await s3.client.send(
2217
2219
  new clientS3.GetObjectCommand({
2218
- Range: props.range,
2220
+ Bucket,
2219
2221
  Key: props.key,
2220
- Bucket
2222
+ Range: props.range
2221
2223
  })
2222
2224
  );
2223
2225
  } catch (err) {
@@ -2250,6 +2252,35 @@ var getFileMetadata = async (s3, props) => {
2250
2252
  throw err;
2251
2253
  }
2252
2254
  };
2255
+ var fileExists = async (s3, props) => {
2256
+ try {
2257
+ const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
2258
+ await s3.client.send(new clientS3.HeadObjectCommand({ Bucket, Key: props.key }));
2259
+ return true;
2260
+ } catch (err) {
2261
+ const awsError = err;
2262
+ if (awsError.$metadata?.httpStatusCode === 404) {
2263
+ return false;
2264
+ }
2265
+ throw err;
2266
+ }
2267
+ };
2268
+ var copyFile = async (s3, props) => {
2269
+ const srcBucket = getBucketNameOrThrow(props.src.bucket, s3.bucketName);
2270
+ const dstBucket = getBucketNameOrThrow(props.dest.bucket, s3.bucketName);
2271
+ const command = new clientS3.CopyObjectCommand({
2272
+ CopySource: `${srcBucket}/${props.src.key}`,
2273
+ Key: props.dest.key,
2274
+ Bucket: dstBucket
2275
+ });
2276
+ try {
2277
+ return await s3.client.send(command);
2278
+ } catch (err) {
2279
+ console.log(`[error] [s3] [copyFile] failed. Input:`);
2280
+ console.dir(props, { depth: 100 });
2281
+ throw err;
2282
+ }
2283
+ };
2253
2284
  var createBucket = (s3, bucketName) => {
2254
2285
  const command = new clientS3.CreateBucketCommand({ Bucket: bucketName });
2255
2286
  return s3.client.send(command);
@@ -8,7 +8,7 @@ import signale from 'signale';
8
8
  import { SNSClient, PublishCommand } from '@aws-sdk/client-sns';
9
9
  import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs';
10
10
  import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses';
11
- import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand, CreateBucketCommand, DeleteBucketCommand, HeadBucketCommand, ListObjectsV2Command, CopyObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, ListPartsCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3';
11
+ import { S3Client, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand, CopyObjectCommand, CreateBucketCommand, DeleteBucketCommand, HeadBucketCommand, ListObjectsV2Command, CreateMultipartUploadCommand, UploadPartCommand, ListPartsCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3';
12
12
  import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
13
13
  import { createPresignedPost } from '@aws-sdk/s3-presigned-post';
14
14
 
@@ -2114,11 +2114,13 @@ var send2 = (ses, email) => {
2114
2114
  var s3_exports = {};
2115
2115
  __export(s3_exports, {
2116
2116
  bucketExists: () => bucketExists,
2117
+ copyFile: () => copyFile,
2117
2118
  create: () => create6,
2118
2119
  createBucket: () => createBucket,
2119
2120
  createSignedUrl: () => createSignedUrl,
2120
2121
  deleteBucket: () => deleteBucket,
2121
2122
  deleteFile: () => deleteFile,
2123
+ fileExists: () => fileExists,
2122
2124
  finalizeMultipartUpload: () => finalizeMultipartUpload,
2123
2125
  getFile: () => getFile,
2124
2126
  getFileMetadata: () => getFileMetadata,
@@ -2207,9 +2209,9 @@ var getFile = async (s3, props) => {
2207
2209
  const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
2208
2210
  return await s3.client.send(
2209
2211
  new GetObjectCommand({
2210
- Range: props.range,
2212
+ Bucket,
2211
2213
  Key: props.key,
2212
- Bucket
2214
+ Range: props.range
2213
2215
  })
2214
2216
  );
2215
2217
  } catch (err) {
@@ -2242,6 +2244,35 @@ var getFileMetadata = async (s3, props) => {
2242
2244
  throw err;
2243
2245
  }
2244
2246
  };
2247
+ var fileExists = async (s3, props) => {
2248
+ try {
2249
+ const Bucket = getBucketNameOrThrow(props.bucketName, s3.bucketName);
2250
+ await s3.client.send(new HeadObjectCommand({ Bucket, Key: props.key }));
2251
+ return true;
2252
+ } catch (err) {
2253
+ const awsError = err;
2254
+ if (awsError.$metadata?.httpStatusCode === 404) {
2255
+ return false;
2256
+ }
2257
+ throw err;
2258
+ }
2259
+ };
2260
+ var copyFile = async (s3, props) => {
2261
+ const srcBucket = getBucketNameOrThrow(props.src.bucket, s3.bucketName);
2262
+ const dstBucket = getBucketNameOrThrow(props.dest.bucket, s3.bucketName);
2263
+ const command = new CopyObjectCommand({
2264
+ CopySource: `${srcBucket}/${props.src.key}`,
2265
+ Key: props.dest.key,
2266
+ Bucket: dstBucket
2267
+ });
2268
+ try {
2269
+ return await s3.client.send(command);
2270
+ } catch (err) {
2271
+ console.log(`[error] [s3] [copyFile] failed. Input:`);
2272
+ console.dir(props, { depth: 100 });
2273
+ throw err;
2274
+ }
2275
+ };
2245
2276
  var createBucket = (s3, bucketName) => {
2246
2277
  const command = new CreateBucketCommand({ Bucket: bucketName });
2247
2278
  return s3.client.send(command);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qstd",
3
- "version": "0.3.69",
3
+ "version": "0.3.71",
4
4
  "description": "Standard Block component and utilities library with Panda CSS",
5
5
  "author": "malin1",
6
6
  "license": "MIT",
@@ -879,10 +879,6 @@
879
879
  border-radius: 50%;
880
880
  }
881
881
 
882
- .trs_200ms_cubic-bezier\(0\,_0\,_0\.2\,_1\)_0ms\,_\.2s_color_ease-in-out\,_\.2s_background_ease-in-out {
883
- transition: 200ms cubic-bezier(0, 0, 0.2, 1) 0ms, .2s color ease-in-out, .2s background ease-in-out;
884
- }
885
-
886
882
  .px_2 {
887
883
  padding-inline: var(--spacing-2);
888
884
  }
@@ -895,6 +891,10 @@
895
891
  border-radius: 8px;
896
892
  }
897
893
 
894
+ .trs_200ms_cubic-bezier\(0\,_0\,_0\.2\,_1\)_0ms\,_\.2s_color_ease-in-out\,_\.2s_background_ease-in-out {
895
+ transition: 200ms cubic-bezier(0, 0, 0.2, 1) 0ms, .2s color ease-in-out, .2s background ease-in-out;
896
+ }
897
+
898
898
  .bd-c_input-border-color-error {
899
899
  border-color: var(--colors-input-border-color-error);
900
900
  }
@@ -1151,6 +1151,10 @@
1151
1151
  color: var(--colors-input-label-color);
1152
1152
  }
1153
1153
 
1154
+ .lh_1\.1 {
1155
+ line-height: 1.1;
1156
+ }
1157
+
1154
1158
  .grid-af_column {
1155
1159
  grid-auto-flow: column;
1156
1160
  }
@@ -1167,10 +1171,6 @@
1167
1171
  transform: translate(0, -50%) scale(1);
1168
1172
  }
1169
1173
 
1170
- .lh_1\.1 {
1171
- line-height: 1.1;
1172
- }
1173
-
1174
1174
  .ring-c_input-outline-color-error {
1175
1175
  outline-color: var(--colors-input-outline-color-error);
1176
1176
  }