@nationaldesignstudio/react 0.5.6 → 0.6.1
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/dist/index.d.ts +290 -7
- package/dist/index.js +95 -17
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
- package/src/components/organisms/card/card.tsx +87 -12
- package/src/components/sections/hero/hero.tsx +35 -0
- package/src/theme/index.ts +6 -0
- package/src/theme/theme-provider.tsx +48 -8
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { Select as Select$1 } from '@base-ui-components/react/select';
|
|
|
12
12
|
import { Tooltip as Tooltip$1 } from '@base-ui-components/react/tooltip';
|
|
13
13
|
import { Dialog as Dialog$1 } from '@base-ui-components/react/dialog';
|
|
14
14
|
import { ClassValue } from 'clsx';
|
|
15
|
-
import { CSSVariableMap, NestedStringRecord, ColorThemeName, SurfaceThemeName } from '@nds-design-system/tokens';
|
|
15
|
+
import { CSSVariableMap, NestedStringRecord, ColorThemeName, SurfaceThemeName, ResolvedProjectTheme } from '@nds-design-system/tokens';
|
|
16
16
|
|
|
17
17
|
declare const accordionVariants: tailwind_variants.TVReturnType<{
|
|
18
18
|
colorScheme: {
|
|
@@ -3268,6 +3268,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3268
3268
|
* Use with Background components for images/gradients.
|
|
3269
3269
|
*/
|
|
3270
3270
|
overlay: string;
|
|
3271
|
+
/**
|
|
3272
|
+
* Profile layout - square image with stacked content below.
|
|
3273
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3274
|
+
*/
|
|
3275
|
+
profile: string;
|
|
3276
|
+
/**
|
|
3277
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3278
|
+
* Ideal for news items, article previews, resource lists.
|
|
3279
|
+
*/
|
|
3280
|
+
compact: string;
|
|
3271
3281
|
};
|
|
3272
3282
|
}, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
|
|
3273
3283
|
layout: {
|
|
@@ -3278,6 +3288,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3278
3288
|
* Use with Background components for images/gradients.
|
|
3279
3289
|
*/
|
|
3280
3290
|
overlay: string;
|
|
3291
|
+
/**
|
|
3292
|
+
* Profile layout - square image with stacked content below.
|
|
3293
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3294
|
+
*/
|
|
3295
|
+
profile: string;
|
|
3296
|
+
/**
|
|
3297
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3298
|
+
* Ideal for news items, article previews, resource lists.
|
|
3299
|
+
*/
|
|
3300
|
+
compact: string;
|
|
3281
3301
|
};
|
|
3282
3302
|
}, {
|
|
3283
3303
|
layout: {
|
|
@@ -3288,6 +3308,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3288
3308
|
* Use with Background components for images/gradients.
|
|
3289
3309
|
*/
|
|
3290
3310
|
overlay: string;
|
|
3311
|
+
/**
|
|
3312
|
+
* Profile layout - square image with stacked content below.
|
|
3313
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3314
|
+
*/
|
|
3315
|
+
profile: string;
|
|
3316
|
+
/**
|
|
3317
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3318
|
+
* Ideal for news items, article previews, resource lists.
|
|
3319
|
+
*/
|
|
3320
|
+
compact: string;
|
|
3291
3321
|
};
|
|
3292
3322
|
}>, {
|
|
3293
3323
|
layout: {
|
|
@@ -3298,6 +3328,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3298
3328
|
* Use with Background components for images/gradients.
|
|
3299
3329
|
*/
|
|
3300
3330
|
overlay: string;
|
|
3331
|
+
/**
|
|
3332
|
+
* Profile layout - square image with stacked content below.
|
|
3333
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3334
|
+
*/
|
|
3335
|
+
profile: string;
|
|
3336
|
+
/**
|
|
3337
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3338
|
+
* Ideal for news items, article previews, resource lists.
|
|
3339
|
+
*/
|
|
3340
|
+
compact: string;
|
|
3301
3341
|
};
|
|
3302
3342
|
}, undefined, tailwind_variants.TVReturnType<{
|
|
3303
3343
|
layout: {
|
|
@@ -3308,6 +3348,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3308
3348
|
* Use with Background components for images/gradients.
|
|
3309
3349
|
*/
|
|
3310
3350
|
overlay: string;
|
|
3351
|
+
/**
|
|
3352
|
+
* Profile layout - square image with stacked content below.
|
|
3353
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3354
|
+
*/
|
|
3355
|
+
profile: string;
|
|
3356
|
+
/**
|
|
3357
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3358
|
+
* Ideal for news items, article previews, resource lists.
|
|
3359
|
+
*/
|
|
3360
|
+
compact: string;
|
|
3311
3361
|
};
|
|
3312
3362
|
}, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
|
|
3313
3363
|
layout: {
|
|
@@ -3318,6 +3368,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3318
3368
|
* Use with Background components for images/gradients.
|
|
3319
3369
|
*/
|
|
3320
3370
|
overlay: string;
|
|
3371
|
+
/**
|
|
3372
|
+
* Profile layout - square image with stacked content below.
|
|
3373
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3374
|
+
*/
|
|
3375
|
+
profile: string;
|
|
3376
|
+
/**
|
|
3377
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3378
|
+
* Ideal for news items, article previews, resource lists.
|
|
3379
|
+
*/
|
|
3380
|
+
compact: string;
|
|
3321
3381
|
};
|
|
3322
3382
|
}, {
|
|
3323
3383
|
layout: {
|
|
@@ -3328,6 +3388,16 @@ declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
|
3328
3388
|
* Use with Background components for images/gradients.
|
|
3329
3389
|
*/
|
|
3330
3390
|
overlay: string;
|
|
3391
|
+
/**
|
|
3392
|
+
* Profile layout - square image with stacked content below.
|
|
3393
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3394
|
+
*/
|
|
3395
|
+
profile: string;
|
|
3396
|
+
/**
|
|
3397
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3398
|
+
* Ideal for news items, article previews, resource lists.
|
|
3399
|
+
*/
|
|
3400
|
+
compact: string;
|
|
3331
3401
|
};
|
|
3332
3402
|
}>, unknown, unknown, undefined>>;
|
|
3333
3403
|
interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
@@ -3344,7 +3414,78 @@ interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps
|
|
|
3344
3414
|
* For overlay layout, use Background components for full-bleed backgrounds.
|
|
3345
3415
|
*/
|
|
3346
3416
|
declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3347
|
-
|
|
3417
|
+
declare const cardImageVariants: tailwind_variants.TVReturnType<{
|
|
3418
|
+
layout: {
|
|
3419
|
+
vertical: string;
|
|
3420
|
+
horizontal: string;
|
|
3421
|
+
overlay: string;
|
|
3422
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3423
|
+
profile: string;
|
|
3424
|
+
/** Compact: fixed small size for thumbnails */
|
|
3425
|
+
compact: string;
|
|
3426
|
+
};
|
|
3427
|
+
}, undefined, "relative shrink-0 bg-bg-muted", tailwind_variants_dist_config_js.TVConfig<{
|
|
3428
|
+
layout: {
|
|
3429
|
+
vertical: string;
|
|
3430
|
+
horizontal: string;
|
|
3431
|
+
overlay: string;
|
|
3432
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3433
|
+
profile: string;
|
|
3434
|
+
/** Compact: fixed small size for thumbnails */
|
|
3435
|
+
compact: string;
|
|
3436
|
+
};
|
|
3437
|
+
}, {
|
|
3438
|
+
layout: {
|
|
3439
|
+
vertical: string;
|
|
3440
|
+
horizontal: string;
|
|
3441
|
+
overlay: string;
|
|
3442
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3443
|
+
profile: string;
|
|
3444
|
+
/** Compact: fixed small size for thumbnails */
|
|
3445
|
+
compact: string;
|
|
3446
|
+
};
|
|
3447
|
+
}>, {
|
|
3448
|
+
layout: {
|
|
3449
|
+
vertical: string;
|
|
3450
|
+
horizontal: string;
|
|
3451
|
+
overlay: string;
|
|
3452
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3453
|
+
profile: string;
|
|
3454
|
+
/** Compact: fixed small size for thumbnails */
|
|
3455
|
+
compact: string;
|
|
3456
|
+
};
|
|
3457
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
3458
|
+
layout: {
|
|
3459
|
+
vertical: string;
|
|
3460
|
+
horizontal: string;
|
|
3461
|
+
overlay: string;
|
|
3462
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3463
|
+
profile: string;
|
|
3464
|
+
/** Compact: fixed small size for thumbnails */
|
|
3465
|
+
compact: string;
|
|
3466
|
+
};
|
|
3467
|
+
}, undefined, "relative shrink-0 bg-bg-muted", tailwind_variants_dist_config_js.TVConfig<{
|
|
3468
|
+
layout: {
|
|
3469
|
+
vertical: string;
|
|
3470
|
+
horizontal: string;
|
|
3471
|
+
overlay: string;
|
|
3472
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3473
|
+
profile: string;
|
|
3474
|
+
/** Compact: fixed small size for thumbnails */
|
|
3475
|
+
compact: string;
|
|
3476
|
+
};
|
|
3477
|
+
}, {
|
|
3478
|
+
layout: {
|
|
3479
|
+
vertical: string;
|
|
3480
|
+
horizontal: string;
|
|
3481
|
+
overlay: string;
|
|
3482
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3483
|
+
profile: string;
|
|
3484
|
+
/** Compact: fixed small size for thumbnails */
|
|
3485
|
+
compact: string;
|
|
3486
|
+
};
|
|
3487
|
+
}>, unknown, unknown, undefined>>;
|
|
3488
|
+
interface CardImageProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardImageVariants> {
|
|
3348
3489
|
/**
|
|
3349
3490
|
* The image source URL
|
|
3350
3491
|
*/
|
|
@@ -3355,8 +3496,11 @@ interface CardImageProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
3355
3496
|
alt?: string;
|
|
3356
3497
|
}
|
|
3357
3498
|
/**
|
|
3358
|
-
* Card image area
|
|
3359
|
-
*
|
|
3499
|
+
* Card image area with layout-specific styling.
|
|
3500
|
+
* - vertical: 16:9 aspect ratio, full width
|
|
3501
|
+
* - horizontal: ~40% width, stretches to content height
|
|
3502
|
+
* - profile: square aspect ratio for headshots/avatars
|
|
3503
|
+
* - compact: fixed small size for thumbnails
|
|
3360
3504
|
*/
|
|
3361
3505
|
declare const CardImage: React$1.ForwardRefExoticComponent<CardImageProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3362
3506
|
declare const cardContentVariants: tailwind_variants.TVReturnType<{
|
|
@@ -4038,6 +4182,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4038
4182
|
content: string[];
|
|
4039
4183
|
};
|
|
4040
4184
|
};
|
|
4185
|
+
/**
|
|
4186
|
+
* Vertical alignment of content within the hero.
|
|
4187
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4188
|
+
*/
|
|
4189
|
+
contentAlign: {
|
|
4190
|
+
top: {
|
|
4191
|
+
content: string;
|
|
4192
|
+
};
|
|
4193
|
+
center: {
|
|
4194
|
+
content: string;
|
|
4195
|
+
};
|
|
4196
|
+
bottom: {
|
|
4197
|
+
content: string;
|
|
4198
|
+
};
|
|
4199
|
+
};
|
|
4041
4200
|
colorScheme: {
|
|
4042
4201
|
dark: {
|
|
4043
4202
|
root: string;
|
|
@@ -4058,6 +4217,7 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4058
4217
|
top: string;
|
|
4059
4218
|
content: string[];
|
|
4060
4219
|
title: string;
|
|
4220
|
+
indicator: string;
|
|
4061
4221
|
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
4062
4222
|
variant: {
|
|
4063
4223
|
A1: {
|
|
@@ -4073,6 +4233,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4073
4233
|
content: string[];
|
|
4074
4234
|
};
|
|
4075
4235
|
};
|
|
4236
|
+
/**
|
|
4237
|
+
* Vertical alignment of content within the hero.
|
|
4238
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4239
|
+
*/
|
|
4240
|
+
contentAlign: {
|
|
4241
|
+
top: {
|
|
4242
|
+
content: string;
|
|
4243
|
+
};
|
|
4244
|
+
center: {
|
|
4245
|
+
content: string;
|
|
4246
|
+
};
|
|
4247
|
+
bottom: {
|
|
4248
|
+
content: string;
|
|
4249
|
+
};
|
|
4250
|
+
};
|
|
4076
4251
|
colorScheme: {
|
|
4077
4252
|
dark: {
|
|
4078
4253
|
root: string;
|
|
@@ -4103,6 +4278,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4103
4278
|
content: string[];
|
|
4104
4279
|
};
|
|
4105
4280
|
};
|
|
4281
|
+
/**
|
|
4282
|
+
* Vertical alignment of content within the hero.
|
|
4283
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4284
|
+
*/
|
|
4285
|
+
contentAlign: {
|
|
4286
|
+
top: {
|
|
4287
|
+
content: string;
|
|
4288
|
+
};
|
|
4289
|
+
center: {
|
|
4290
|
+
content: string;
|
|
4291
|
+
};
|
|
4292
|
+
bottom: {
|
|
4293
|
+
content: string;
|
|
4294
|
+
};
|
|
4295
|
+
};
|
|
4106
4296
|
colorScheme: {
|
|
4107
4297
|
dark: {
|
|
4108
4298
|
root: string;
|
|
@@ -4133,6 +4323,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4133
4323
|
content: string[];
|
|
4134
4324
|
};
|
|
4135
4325
|
};
|
|
4326
|
+
/**
|
|
4327
|
+
* Vertical alignment of content within the hero.
|
|
4328
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4329
|
+
*/
|
|
4330
|
+
contentAlign: {
|
|
4331
|
+
top: {
|
|
4332
|
+
content: string;
|
|
4333
|
+
};
|
|
4334
|
+
center: {
|
|
4335
|
+
content: string;
|
|
4336
|
+
};
|
|
4337
|
+
bottom: {
|
|
4338
|
+
content: string;
|
|
4339
|
+
};
|
|
4340
|
+
};
|
|
4136
4341
|
colorScheme: {
|
|
4137
4342
|
dark: {
|
|
4138
4343
|
root: string;
|
|
@@ -4153,6 +4358,7 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4153
4358
|
top: string;
|
|
4154
4359
|
content: string[];
|
|
4155
4360
|
title: string;
|
|
4361
|
+
indicator: string;
|
|
4156
4362
|
}, tailwind_variants.TVReturnType<{
|
|
4157
4363
|
variant: {
|
|
4158
4364
|
A1: {
|
|
@@ -4168,6 +4374,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4168
4374
|
content: string[];
|
|
4169
4375
|
};
|
|
4170
4376
|
};
|
|
4377
|
+
/**
|
|
4378
|
+
* Vertical alignment of content within the hero.
|
|
4379
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4380
|
+
*/
|
|
4381
|
+
contentAlign: {
|
|
4382
|
+
top: {
|
|
4383
|
+
content: string;
|
|
4384
|
+
};
|
|
4385
|
+
center: {
|
|
4386
|
+
content: string;
|
|
4387
|
+
};
|
|
4388
|
+
bottom: {
|
|
4389
|
+
content: string;
|
|
4390
|
+
};
|
|
4391
|
+
};
|
|
4171
4392
|
colorScheme: {
|
|
4172
4393
|
dark: {
|
|
4173
4394
|
root: string;
|
|
@@ -4188,6 +4409,7 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4188
4409
|
top: string;
|
|
4189
4410
|
content: string[];
|
|
4190
4411
|
title: string;
|
|
4412
|
+
indicator: string;
|
|
4191
4413
|
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
4192
4414
|
variant: {
|
|
4193
4415
|
A1: {
|
|
@@ -4203,6 +4425,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4203
4425
|
content: string[];
|
|
4204
4426
|
};
|
|
4205
4427
|
};
|
|
4428
|
+
/**
|
|
4429
|
+
* Vertical alignment of content within the hero.
|
|
4430
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4431
|
+
*/
|
|
4432
|
+
contentAlign: {
|
|
4433
|
+
top: {
|
|
4434
|
+
content: string;
|
|
4435
|
+
};
|
|
4436
|
+
center: {
|
|
4437
|
+
content: string;
|
|
4438
|
+
};
|
|
4439
|
+
bottom: {
|
|
4440
|
+
content: string;
|
|
4441
|
+
};
|
|
4442
|
+
};
|
|
4206
4443
|
colorScheme: {
|
|
4207
4444
|
dark: {
|
|
4208
4445
|
root: string;
|
|
@@ -4233,6 +4470,21 @@ declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
|
4233
4470
|
content: string[];
|
|
4234
4471
|
};
|
|
4235
4472
|
};
|
|
4473
|
+
/**
|
|
4474
|
+
* Vertical alignment of content within the hero.
|
|
4475
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4476
|
+
*/
|
|
4477
|
+
contentAlign: {
|
|
4478
|
+
top: {
|
|
4479
|
+
content: string;
|
|
4480
|
+
};
|
|
4481
|
+
center: {
|
|
4482
|
+
content: string;
|
|
4483
|
+
};
|
|
4484
|
+
bottom: {
|
|
4485
|
+
content: string;
|
|
4486
|
+
};
|
|
4487
|
+
};
|
|
4236
4488
|
colorScheme: {
|
|
4237
4489
|
dark: {
|
|
4238
4490
|
root: string;
|
|
@@ -4288,6 +4540,17 @@ interface HeroProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "title">,
|
|
|
4288
4540
|
* Use for USGovBanner, Navigation, etc.
|
|
4289
4541
|
*/
|
|
4290
4542
|
top?: React$1.ReactNode;
|
|
4543
|
+
/**
|
|
4544
|
+
* Indicator slot for scroll hints, arrows, or other visual cues.
|
|
4545
|
+
* Rendered at the bottom of the hero, below the main content.
|
|
4546
|
+
* @example
|
|
4547
|
+
* ```tsx
|
|
4548
|
+
* <Hero indicator={<ChevronDown className="animate-bounce" />}>
|
|
4549
|
+
* <h1>Welcome</h1>
|
|
4550
|
+
* </Hero>
|
|
4551
|
+
* ```
|
|
4552
|
+
*/
|
|
4553
|
+
indicator?: React$1.ReactNode;
|
|
4291
4554
|
/**
|
|
4292
4555
|
* Background for the hero. Can be:
|
|
4293
4556
|
* - A color string (hex, rgb, etc.) for solid backgrounds
|
|
@@ -4954,6 +5217,11 @@ interface ThemeProviderProps {
|
|
|
4954
5217
|
color?: ColorThemeName;
|
|
4955
5218
|
/** Surface theme name (defaults to "base") */
|
|
4956
5219
|
surface?: SurfaceThemeName;
|
|
5220
|
+
/**
|
|
5221
|
+
* Custom project theme created with defineTheme()
|
|
5222
|
+
* When provided, overrides color/surface props with custom theme tokens
|
|
5223
|
+
*/
|
|
5224
|
+
customTheme?: ResolvedProjectTheme;
|
|
4957
5225
|
/** Children to render */
|
|
4958
5226
|
children: ReactNode;
|
|
4959
5227
|
/** Optional className for the wrapper div */
|
|
@@ -4978,13 +5246,28 @@ interface ThemeProviderProps {
|
|
|
4978
5246
|
* <App />
|
|
4979
5247
|
* </ThemeProvider>
|
|
4980
5248
|
*
|
|
4981
|
-
* //
|
|
4982
|
-
*
|
|
5249
|
+
* // Use a custom project theme
|
|
5250
|
+
* import { defineTheme, srgb } from "@nds-design-system/tokens";
|
|
5251
|
+
*
|
|
5252
|
+
* const myTheme = defineTheme({
|
|
5253
|
+
* name: "my-project",
|
|
5254
|
+
* extends: "base",
|
|
5255
|
+
* tokens: {
|
|
5256
|
+
* semantic: {
|
|
5257
|
+
* color: {
|
|
5258
|
+
* bg: { page: srgb("#FEFDF9") },
|
|
5259
|
+
* accent: { brand: srgb("#A68B5E") },
|
|
5260
|
+
* },
|
|
5261
|
+
* },
|
|
5262
|
+
* },
|
|
5263
|
+
* });
|
|
5264
|
+
*
|
|
5265
|
+
* <ThemeProvider customTheme={myTheme}>
|
|
4983
5266
|
* <App />
|
|
4984
5267
|
* </ThemeProvider>
|
|
4985
5268
|
* ```
|
|
4986
5269
|
*/
|
|
4987
|
-
declare function ThemeProvider({ color, surface, children, className, applyStyles, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
5270
|
+
declare function ThemeProvider({ color, surface, customTheme, children, className, applyStyles, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
4988
5271
|
|
|
4989
5272
|
/**
|
|
4990
5273
|
* Theme Hooks
|
package/dist/index.js
CHANGED
|
@@ -3798,7 +3798,17 @@ var cardVariants = tv({
|
|
|
3798
3798
|
* Overlay layout - content sits on top of full-bleed background.
|
|
3799
3799
|
* Use with Background components for images/gradients.
|
|
3800
3800
|
*/
|
|
3801
|
-
overlay: "w-full flex-col"
|
|
3801
|
+
overlay: "w-full flex-col",
|
|
3802
|
+
/**
|
|
3803
|
+
* Profile layout - square image with stacked content below.
|
|
3804
|
+
* Ideal for team member cards, user profiles, testimonials.
|
|
3805
|
+
*/
|
|
3806
|
+
profile: "w-full flex-col",
|
|
3807
|
+
/**
|
|
3808
|
+
* Compact layout - small thumbnail with condensed horizontal content.
|
|
3809
|
+
* Ideal for news items, article previews, resource lists.
|
|
3810
|
+
*/
|
|
3811
|
+
compact: "w-full flex-row items-center gap-16"
|
|
3802
3812
|
}
|
|
3803
3813
|
},
|
|
3804
3814
|
defaultVariants: {
|
|
@@ -3819,21 +3829,29 @@ var Card = React14.forwardRef(
|
|
|
3819
3829
|
);
|
|
3820
3830
|
Card.displayName = "Card";
|
|
3821
3831
|
var cardImageVariants = tv({
|
|
3822
|
-
base:
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3832
|
+
base: "relative shrink-0 bg-bg-muted",
|
|
3833
|
+
variants: {
|
|
3834
|
+
layout: {
|
|
3835
|
+
vertical: "aspect-video w-full",
|
|
3836
|
+
horizontal: "aspect-auto w-2/5 self-stretch",
|
|
3837
|
+
overlay: "aspect-video w-full",
|
|
3838
|
+
/** Profile: square aspect ratio for headshots/avatars */
|
|
3839
|
+
profile: "aspect-square w-full",
|
|
3840
|
+
/** Compact: fixed small size for thumbnails */
|
|
3841
|
+
compact: "size-80 rounded-8"
|
|
3842
|
+
}
|
|
3843
|
+
},
|
|
3844
|
+
defaultVariants: {
|
|
3845
|
+
layout: "vertical"
|
|
3846
|
+
}
|
|
3829
3847
|
});
|
|
3830
3848
|
var CardImage = React14.forwardRef(
|
|
3831
|
-
({ className, src, alt = "", ...props }, ref) => {
|
|
3849
|
+
({ className, src, alt = "", layout, ...props }, ref) => {
|
|
3832
3850
|
return /* @__PURE__ */ jsx(
|
|
3833
3851
|
"div",
|
|
3834
3852
|
{
|
|
3835
3853
|
ref,
|
|
3836
|
-
className: cardImageVariants({ class: className }),
|
|
3854
|
+
className: cardImageVariants({ layout, class: className }),
|
|
3837
3855
|
...props,
|
|
3838
3856
|
children: src && /* @__PURE__ */ jsx(
|
|
3839
3857
|
"img",
|
|
@@ -3953,6 +3971,33 @@ var CardActions = React14.forwardRef(
|
|
|
3953
3971
|
}
|
|
3954
3972
|
);
|
|
3955
3973
|
CardActions.displayName = "CardActions";
|
|
3974
|
+
var cardLinkVariants = tv({
|
|
3975
|
+
base: "group/link flex items-center gap-4 text-text-muted transition-colors duration-200 hover:text-text-primary"
|
|
3976
|
+
});
|
|
3977
|
+
var CardLink = React14.forwardRef(
|
|
3978
|
+
({ className, children, showArrow = true, ...props }, ref) => {
|
|
3979
|
+
return /* @__PURE__ */ jsxs(
|
|
3980
|
+
"span",
|
|
3981
|
+
{
|
|
3982
|
+
ref,
|
|
3983
|
+
className: cardLinkVariants({ class: className }),
|
|
3984
|
+
...props,
|
|
3985
|
+
children: [
|
|
3986
|
+
/* @__PURE__ */ jsx("span", { children }),
|
|
3987
|
+
showArrow && /* @__PURE__ */ jsx(
|
|
3988
|
+
"span",
|
|
3989
|
+
{
|
|
3990
|
+
"aria-hidden": "true",
|
|
3991
|
+
className: "inline-block transition-transform duration-200 ease-out group-hover/link:translate-x-4",
|
|
3992
|
+
children: "\u2192"
|
|
3993
|
+
}
|
|
3994
|
+
)
|
|
3995
|
+
]
|
|
3996
|
+
}
|
|
3997
|
+
);
|
|
3998
|
+
}
|
|
3999
|
+
);
|
|
4000
|
+
CardLink.displayName = "CardLink";
|
|
3956
4001
|
var NavbarContext = React14.createContext({
|
|
3957
4002
|
isMobileMenuOpen: false,
|
|
3958
4003
|
setIsMobileMenuOpen: () => {
|
|
@@ -4533,7 +4578,8 @@ var heroVariants = tv({
|
|
|
4533
4578
|
"p-20",
|
|
4534
4579
|
"md:p-56"
|
|
4535
4580
|
],
|
|
4536
|
-
title: DEFAULT_TITLE_TYPOGRAPHY
|
|
4581
|
+
title: DEFAULT_TITLE_TYPOGRAPHY,
|
|
4582
|
+
indicator: "absolute inset-x-0 bottom-0 z-10 flex justify-center pb-24"
|
|
4537
4583
|
},
|
|
4538
4584
|
variants: {
|
|
4539
4585
|
variant: {
|
|
@@ -4550,6 +4596,21 @@ var heroVariants = tv({
|
|
|
4550
4596
|
content: ["items-center justify-center", "lg:p-64"]
|
|
4551
4597
|
}
|
|
4552
4598
|
},
|
|
4599
|
+
/**
|
|
4600
|
+
* Vertical alignment of content within the hero.
|
|
4601
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
4602
|
+
*/
|
|
4603
|
+
contentAlign: {
|
|
4604
|
+
top: {
|
|
4605
|
+
content: "justify-start"
|
|
4606
|
+
},
|
|
4607
|
+
center: {
|
|
4608
|
+
content: "items-center justify-center"
|
|
4609
|
+
},
|
|
4610
|
+
bottom: {
|
|
4611
|
+
content: "justify-end"
|
|
4612
|
+
}
|
|
4613
|
+
},
|
|
4553
4614
|
colorScheme: {
|
|
4554
4615
|
dark: {
|
|
4555
4616
|
root: "bg-bg-page",
|
|
@@ -4614,7 +4675,9 @@ var Hero = React14.forwardRef(
|
|
|
4614
4675
|
title,
|
|
4615
4676
|
titleClassName,
|
|
4616
4677
|
colorScheme = "dark",
|
|
4678
|
+
contentAlign,
|
|
4617
4679
|
top,
|
|
4680
|
+
indicator,
|
|
4618
4681
|
variant,
|
|
4619
4682
|
background,
|
|
4620
4683
|
overlayOpacity = 0,
|
|
@@ -4628,6 +4691,7 @@ var Hero = React14.forwardRef(
|
|
|
4628
4691
|
const hasMediaBackground = background && !isColor;
|
|
4629
4692
|
const styles = heroVariants({
|
|
4630
4693
|
variant,
|
|
4694
|
+
contentAlign,
|
|
4631
4695
|
colorScheme,
|
|
4632
4696
|
hasBackground: !!background
|
|
4633
4697
|
});
|
|
@@ -4659,7 +4723,8 @@ var Hero = React14.forwardRef(
|
|
|
4659
4723
|
/* @__PURE__ */ jsxs("div", { className: styles.content(), children: [
|
|
4660
4724
|
title && /* @__PURE__ */ jsx("h1", { className: styles.title({ class: titleClassName }), children: title }),
|
|
4661
4725
|
children
|
|
4662
|
-
] })
|
|
4726
|
+
] }),
|
|
4727
|
+
indicator && /* @__PURE__ */ jsx("div", { className: styles.indicator(), children: indicator })
|
|
4663
4728
|
]
|
|
4664
4729
|
}
|
|
4665
4730
|
);
|
|
@@ -9184,6 +9249,7 @@ function deepMerge2(target, source) {
|
|
|
9184
9249
|
function ThemeProvider({
|
|
9185
9250
|
color = "base",
|
|
9186
9251
|
surface = "base",
|
|
9252
|
+
customTheme,
|
|
9187
9253
|
children,
|
|
9188
9254
|
className,
|
|
9189
9255
|
applyStyles = true
|
|
@@ -9191,8 +9257,9 @@ function ThemeProvider({
|
|
|
9191
9257
|
const { tokens: tokens2, cssVars } = useMemo(() => {
|
|
9192
9258
|
const flatTokens = {};
|
|
9193
9259
|
const baseColorModule = colorThemes.base;
|
|
9194
|
-
const
|
|
9195
|
-
const
|
|
9260
|
+
const effectiveColor = customTheme ? customTheme.extends : color;
|
|
9261
|
+
const colorModule = colorThemes[effectiveColor] ?? colorThemes.base;
|
|
9262
|
+
const mergedColor = effectiveColor === "base" ? baseColorModule : mergeTokenModules(baseColorModule, colorModule);
|
|
9196
9263
|
const colorTokens = mergedColor?.semantic?.color ?? mergedColor;
|
|
9197
9264
|
Object.assign(flatTokens, processColorTokens(colorTokens));
|
|
9198
9265
|
const baseSurfaceModule = surfaceThemes.base;
|
|
@@ -9201,13 +9268,24 @@ function ThemeProvider({
|
|
|
9201
9268
|
const surfaceTokens = mergedSurface?.semantic?.surface ?? mergedSurface;
|
|
9202
9269
|
Object.assign(flatTokens, processSurfaceTokens(surfaceTokens));
|
|
9203
9270
|
const nestedTokens = flatToNested(flatTokens);
|
|
9204
|
-
|
|
9271
|
+
let cssVariables = flatToCSSVars(flatTokens);
|
|
9272
|
+
if (customTheme) {
|
|
9273
|
+
cssVariables = {
|
|
9274
|
+
...cssVariables,
|
|
9275
|
+
...Object.fromEntries(
|
|
9276
|
+
Object.entries(customTheme.cssVars).map(([key, value]) => [
|
|
9277
|
+
key.startsWith("--") ? key : `--${key}`,
|
|
9278
|
+
value
|
|
9279
|
+
])
|
|
9280
|
+
)
|
|
9281
|
+
};
|
|
9282
|
+
}
|
|
9205
9283
|
return { tokens: nestedTokens, cssVars: cssVariables };
|
|
9206
|
-
}, [color, surface]);
|
|
9284
|
+
}, [color, surface, customTheme]);
|
|
9207
9285
|
const contextValue = {
|
|
9208
9286
|
cssVars,
|
|
9209
9287
|
tokens: tokens2,
|
|
9210
|
-
colorTheme: color,
|
|
9288
|
+
colorTheme: customTheme ? customTheme.extends : color,
|
|
9211
9289
|
surfaceTheme: surface
|
|
9212
9290
|
};
|
|
9213
9291
|
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: contextValue, children: applyStyles ? /* @__PURE__ */ jsx("div", { style: cssVars, className, children }) : children });
|