@aws/nx-plugin 0.68.1 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +19 -195
- package/package.json +7 -7
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +15 -15
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +195 -311
- package/src/ts/react-website/app/files/app/shadcn/src/app.tsx.template +12 -0
- package/src/ts/react-website/app/files/app/shadcn/src/components/AppLayout/index.tsx.template +116 -0
- package/src/ts/react-website/app/files/app/shadcn/src/components/alert.tsx.template +30 -0
- package/src/ts/react-website/app/files/app/shadcn/src/components/spinner.tsx.template +3 -0
- package/src/ts/react-website/app/files/app/shadcn/src/main.tsx.template +32 -0
- package/src/ts/react-website/app/files/app/shadcn/src/styles.css.template +2 -0
- package/src/ts/react-website/app/files/tanstack-router/shadcn/src/components/app-sidebar.tsx.template +49 -0
- package/src/ts/react-website/app/files/tanstack-router/shadcn/src/routes/index.tsx.template +16 -0
- package/src/ts/react-website/app/generator.d.ts +3 -2
- package/src/ts/react-website/app/generator.js +41 -11
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.ts +1 -1
- package/src/ts/react-website/app/schema.json +6 -2
- package/src/ts/react-website/cognito-auth/generator.js +12 -8
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -0
- package/src/ts/react-website/cognito-auth/utils.js +113 -1
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/utils/files/common/shadcn/readme/README.md.template +32 -0
- package/src/utils/files/common/shadcn/src/components/ui/alert.tsx.template +66 -0
- package/src/utils/files/common/shadcn/src/components/ui/breadcrumb.tsx.template +109 -0
- package/src/utils/files/common/shadcn/src/components/ui/button.tsx.template +62 -0
- package/src/utils/files/common/shadcn/src/components/ui/card.tsx.template +92 -0
- package/src/utils/files/common/shadcn/src/components/ui/input.tsx.template +21 -0
- package/src/utils/files/common/shadcn/src/components/ui/separator.tsx.template +28 -0
- package/src/utils/files/common/shadcn/src/components/ui/sheet.tsx.template +139 -0
- package/src/utils/files/common/shadcn/src/components/ui/sidebar.tsx.template +726 -0
- package/src/utils/files/common/shadcn/src/components/ui/skeleton.tsx.template +13 -0
- package/src/utils/files/common/shadcn/src/components/ui/spinner.tsx.template +16 -0
- package/src/utils/files/common/shadcn/src/components/ui/tooltip.tsx.template +61 -0
- package/src/utils/files/common/shadcn/src/hooks/use-mobile.ts.template +19 -0
- package/src/utils/files/common/shadcn/src/index.ts.template +2 -0
- package/src/utils/files/common/shadcn/src/lib/utils.ts.template +6 -0
- package/src/utils/files/common/shadcn/src/styles/globals.css.template +125 -0
- package/src/utils/files/shadcn/components.json.template +20 -0
- package/src/utils/shared-constructs-constants.d.ts +2 -0
- package/src/utils/shared-constructs-constants.js +3 -1
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +6 -0
- package/src/utils/shared-shadcn.js +123 -0
- package/src/utils/shared-shadcn.js.map +1 -0
- package/src/utils/versions.d.ts +38 -26
- package/src/utils/versions.js +37 -25
- package/src/utils/versions.js.map +1 -1
|
@@ -338,13 +338,26 @@ exports[`react-website generator (uxProvider=Cloudscape) > should update package
|
|
|
338
338
|
"
|
|
339
339
|
`;
|
|
340
340
|
|
|
341
|
-
exports[`react-website generator (uxProvider=
|
|
341
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/components/AppLayout/index.tsx 1`] = `
|
|
342
342
|
"import * as React from 'react';
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
343
|
+
import {
|
|
344
|
+
SidebarInset,
|
|
345
|
+
SidebarProvider,
|
|
346
|
+
SidebarTrigger,
|
|
347
|
+
} from ':proj/common-shadcn/components/ui/sidebar';
|
|
348
|
+
import { Separator } from ':proj/common-shadcn/components/ui/separator';
|
|
346
349
|
import Config from '../../config';
|
|
350
|
+
|
|
347
351
|
import { Link, useLocation, useMatchRoute } from '@tanstack/react-router';
|
|
352
|
+
import {
|
|
353
|
+
Breadcrumb,
|
|
354
|
+
BreadcrumbItem,
|
|
355
|
+
BreadcrumbLink,
|
|
356
|
+
BreadcrumbList,
|
|
357
|
+
BreadcrumbPage,
|
|
358
|
+
BreadcrumbSeparator,
|
|
359
|
+
} from ':proj/common-shadcn/components/ui/breadcrumb';
|
|
360
|
+
import { AppSidebar } from '../app-sidebar';
|
|
348
361
|
|
|
349
362
|
const getBreadcrumbs = (
|
|
350
363
|
matchRoute: ReturnType<typeof useMatchRoute>,
|
|
@@ -377,72 +390,70 @@ const getBreadcrumbs = (
|
|
|
377
390
|
});
|
|
378
391
|
};
|
|
379
392
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
*/
|
|
383
|
-
const AppLayout: React.FC<React.PropsWithChildren> = ({ children }) => {
|
|
384
|
-
const [activeBreadcrumbs, setActiveBreadcrumbs] = useState<
|
|
393
|
+
const AppLayout = ({ children }: { children: React.ReactNode }) => {
|
|
394
|
+
const [activeBreadcrumbs, setActiveBreadcrumbs] = React.useState<
|
|
385
395
|
{ href: string; text: string }[]
|
|
386
396
|
>([{ text: '/', href: '/' }]);
|
|
387
397
|
const matchRoute = useMatchRoute();
|
|
388
398
|
const { pathname, search } = useLocation();
|
|
389
|
-
const navItems = useMemo(() => [{ to: '/', label: 'Home' }], []);
|
|
390
399
|
|
|
391
|
-
useEffect(() => {
|
|
400
|
+
React.useEffect(() => {
|
|
392
401
|
const breadcrumbs = getBreadcrumbs(
|
|
393
402
|
matchRoute,
|
|
394
403
|
pathname,
|
|
395
404
|
Object.entries(search).reduce((p, [k, v]) => p + \`\${k}=\${v}\`, ''),
|
|
396
|
-
'
|
|
405
|
+
'/',
|
|
397
406
|
);
|
|
398
407
|
setActiveBreadcrumbs(breadcrumbs);
|
|
399
408
|
}, [matchRoute, pathname, search]);
|
|
400
409
|
|
|
401
410
|
return (
|
|
402
|
-
<
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
411
|
+
<SidebarProvider>
|
|
412
|
+
<AppSidebar />
|
|
413
|
+
<SidebarInset>
|
|
414
|
+
<header className="supports-backdrop-blur:bg-background/60 sticky top-0 z-10 flex h-16 items-center gap-4 border-b bg-background/80 px-4 backdrop-blur">
|
|
415
|
+
<div className="flex items-center gap-3">
|
|
416
|
+
<SidebarTrigger className="-ml-1" />
|
|
417
|
+
<Separator orientation="vertical" className="h-6" />
|
|
418
|
+
<div className="flex items-center gap-2">
|
|
407
419
|
<img
|
|
408
|
-
src={Config.logo}
|
|
409
420
|
alt={\`\${Config.applicationName} logo\`}
|
|
410
|
-
className="
|
|
421
|
+
className="size-10 rounded-lg border border-border/60 bg-background object-cover shadow-sm"
|
|
422
|
+
src={Config.logo}
|
|
411
423
|
/>
|
|
412
|
-
<
|
|
413
|
-
|
|
424
|
+
<div className="flex flex-col leading-tight">
|
|
425
|
+
<span className="text-sm font-semibold">
|
|
426
|
+
{Config.applicationName}
|
|
427
|
+
</span>
|
|
428
|
+
</div>
|
|
429
|
+
</div>
|
|
414
430
|
</div>
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
431
|
+
</header>
|
|
432
|
+
<div className="flex flex-1 flex-col gap-6 p-6 pt-4">
|
|
433
|
+
<Breadcrumb>
|
|
434
|
+
<BreadcrumbList>
|
|
435
|
+
{activeBreadcrumbs.map((crumb, index) => (
|
|
436
|
+
<React.Fragment key={crumb.href || index}>
|
|
437
|
+
<BreadcrumbItem>
|
|
438
|
+
{index === activeBreadcrumbs.length - 1 ? (
|
|
439
|
+
<BreadcrumbPage>{crumb.text}</BreadcrumbPage>
|
|
440
|
+
) : (
|
|
441
|
+
<BreadcrumbLink asChild>
|
|
442
|
+
<Link to={crumb.href}>{crumb.text}</Link>
|
|
443
|
+
</BreadcrumbLink>
|
|
444
|
+
)}
|
|
445
|
+
</BreadcrumbItem>
|
|
446
|
+
{index < activeBreadcrumbs.length - 1 && (
|
|
447
|
+
<BreadcrumbSeparator />
|
|
448
|
+
)}
|
|
449
|
+
</React.Fragment>
|
|
450
|
+
))}
|
|
451
|
+
</BreadcrumbList>
|
|
452
|
+
</Breadcrumb>
|
|
453
|
+
{children}
|
|
427
454
|
</div>
|
|
428
|
-
</
|
|
429
|
-
|
|
430
|
-
<nav className="breadcrumbs" aria-label="Breadcrumb">
|
|
431
|
-
{activeBreadcrumbs.map((crumb, index) => (
|
|
432
|
-
<span className="breadcrumb-segment" key={crumb.href || index}>
|
|
433
|
-
{index > 0 && <span className="breadcrumb-separator">/</span>}
|
|
434
|
-
{index === activeBreadcrumbs.length - 1 ? (
|
|
435
|
-
<span className="breadcrumb-current">{crumb.text}</span>
|
|
436
|
-
) : (
|
|
437
|
-
<Link to={crumb.href}>{crumb.text}</Link>
|
|
438
|
-
)}
|
|
439
|
-
</span>
|
|
440
|
-
))}
|
|
441
|
-
</nav>
|
|
442
|
-
|
|
443
|
-
<section className="card">{children}</section>
|
|
444
|
-
</main>
|
|
445
|
-
</div>
|
|
455
|
+
</SidebarInset>
|
|
456
|
+
</SidebarProvider>
|
|
446
457
|
);
|
|
447
458
|
};
|
|
448
459
|
|
|
@@ -450,36 +461,101 @@ export default AppLayout;
|
|
|
450
461
|
"
|
|
451
462
|
`;
|
|
452
463
|
|
|
453
|
-
exports[`react-website generator (uxProvider=
|
|
464
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/components/alert.tsx 1`] = `
|
|
454
465
|
"import React from 'react';
|
|
466
|
+
import {
|
|
467
|
+
Alert as ShadcnAlert,
|
|
468
|
+
AlertDescription,
|
|
469
|
+
AlertTitle,
|
|
470
|
+
} from ':proj/common-shadcn/components/ui/alert';
|
|
471
|
+
|
|
472
|
+
type AlertType = 'info' | 'error';
|
|
455
473
|
|
|
456
|
-
interface AlertProps {
|
|
457
|
-
type
|
|
458
|
-
header:
|
|
474
|
+
export interface AlertProps {
|
|
475
|
+
type?: AlertType;
|
|
476
|
+
header: React.ReactNode;
|
|
459
477
|
children: React.ReactNode;
|
|
460
478
|
}
|
|
461
479
|
|
|
462
|
-
export const Alert: React.FC<AlertProps> = ({
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
480
|
+
export const Alert: React.FC<AlertProps> = ({
|
|
481
|
+
type = 'info',
|
|
482
|
+
header,
|
|
483
|
+
children,
|
|
484
|
+
}) => {
|
|
485
|
+
const variant = type === 'error' ? 'destructive' : 'default';
|
|
486
|
+
const role = type === 'error' ? 'alert' : 'status';
|
|
487
|
+
|
|
488
|
+
return (
|
|
489
|
+
<ShadcnAlert variant={variant} role={role}>
|
|
490
|
+
<AlertTitle>{header}</AlertTitle>
|
|
491
|
+
<AlertDescription>{children}</AlertDescription>
|
|
492
|
+
</ShadcnAlert>
|
|
493
|
+
);
|
|
494
|
+
};
|
|
468
495
|
"
|
|
469
496
|
`;
|
|
470
497
|
|
|
471
|
-
exports[`react-website generator (uxProvider=
|
|
472
|
-
"import
|
|
498
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/components/app-sidebar.tsx 1`] = `
|
|
499
|
+
"import { Home } from 'lucide-react';
|
|
473
500
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
501
|
+
import {
|
|
502
|
+
Sidebar,
|
|
503
|
+
SidebarContent,
|
|
504
|
+
SidebarGroup,
|
|
505
|
+
SidebarGroupContent,
|
|
506
|
+
SidebarGroupLabel,
|
|
507
|
+
SidebarMenu,
|
|
508
|
+
SidebarMenuButton,
|
|
509
|
+
SidebarMenuItem,
|
|
510
|
+
} from ':proj/common-shadcn/components/ui/sidebar';
|
|
511
|
+
import { Link } from '@tanstack/react-router';
|
|
512
|
+
|
|
513
|
+
import Config from '../config';
|
|
514
|
+
|
|
515
|
+
export function AppSidebar() {
|
|
516
|
+
// Menu items.
|
|
517
|
+
const navItems = [
|
|
518
|
+
{
|
|
519
|
+
label: 'Home',
|
|
520
|
+
to: '/',
|
|
521
|
+
icon: Home,
|
|
522
|
+
},
|
|
523
|
+
];
|
|
524
|
+
return (
|
|
525
|
+
<Sidebar>
|
|
526
|
+
<SidebarContent>
|
|
527
|
+
<SidebarGroup>
|
|
528
|
+
<SidebarGroupLabel>{Config.applicationName}</SidebarGroupLabel>
|
|
529
|
+
<SidebarGroupContent>
|
|
530
|
+
<SidebarMenu>
|
|
531
|
+
{navItems.map((item) => (
|
|
532
|
+
<SidebarMenuItem key={item.label}>
|
|
533
|
+
<SidebarMenuButton asChild>
|
|
534
|
+
<Link to={item.to} preload="intent">
|
|
535
|
+
<item.icon />
|
|
536
|
+
<span>{item.label}</span>
|
|
537
|
+
</Link>
|
|
538
|
+
</SidebarMenuButton>
|
|
539
|
+
</SidebarMenuItem>
|
|
540
|
+
))}
|
|
541
|
+
</SidebarMenu>
|
|
542
|
+
</SidebarGroupContent>
|
|
543
|
+
</SidebarGroup>
|
|
544
|
+
</SidebarContent>
|
|
545
|
+
</Sidebar>
|
|
546
|
+
);
|
|
547
|
+
}
|
|
548
|
+
"
|
|
549
|
+
`;
|
|
550
|
+
|
|
551
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/components/spinner.tsx 1`] = `
|
|
552
|
+
"import { Spinner as ShadcnSpinner } from ':proj/common-shadcn/components/ui/spinner';
|
|
553
|
+
|
|
554
|
+
export const Spinner = ShadcnSpinner;
|
|
479
555
|
"
|
|
480
556
|
`;
|
|
481
557
|
|
|
482
|
-
exports[`react-website generator (uxProvider=
|
|
558
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/config.ts 1`] = `
|
|
483
559
|
"export default {
|
|
484
560
|
applicationName: 'test-app',
|
|
485
561
|
logo: 'data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KDTwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyBmaWxsPSIjMjQ4YmFlIiB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0cm9rZT0iIzI0OGJhZSI+Cg08ZyBpZD0iU1ZHUmVwb19iZ0NhcnJpZXIiIHN0cm9rZS13aWR0aD0iMCIvPgoNPGcgaWQ9IlNWR1JlcG9fdHJhY2VyQ2FycmllciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cg08ZyBpZD0iU1ZHUmVwb19pY29uQ2FycmllciI+Cg08dGl0bGU+aW9uaWNvbnMtdjVfbG9nb3M8L3RpdGxlPgoNPHBhdGggZD0iTTQxMC42NiwxODAuNzJoMHEtNy42Ny0yLjYyLTE1LjQ1LTQuODgsMS4yOS01LjI1LDIuMzgtMTAuNTZjMTEuNy01Ni45LDQuMDUtMTAyLjc0LTIyLjA2LTExNy44My0yNS0xNC40OC02NiwuNjEtMTA3LjM2LDM2LjY5cS02LjEsNS4zNC0xMS45NSwxMS0zLjktMy43Ni04LTcuMzZjLTQzLjM1LTM4LjU4LTg2LjgtNTQuODMtMTEyLjg4LTM5LjY5LTI1LDE0LjUxLTMyLjQzLDU3LjYtMjEuOSwxMTEuNTNxMS41OCw4LDMuNTUsMTUuOTNjLTYuMTUsMS43NS0xMi4wOSwzLjYyLTE3Ljc3LDUuNkM0OC40NiwxOTguOSwxNiwyMjYuNzMsMTYsMjU1LjU5YzAsMjkuODIsMzQuODQsNTkuNzIsODcuNzcsNzcuODVxNi40NCwyLjE5LDEzLDQuMDdRMTE0LjY0LDM0NiwxMTMsMzU0LjY4Yy0xMCw1My0yLjIsOTUuMDcsMjIuNzUsMTA5LjQ5LDI1Ljc3LDE0Ljg5LDY5LS40MSwxMTEuMTQtMzcuMzFxNS00LjM4LDEwLTkuMjUsNi4zMiw2LjExLDEzLDExLjg2YzQwLjgsMzUuMTgsODEuMDksNDkuMzksMTA2LDM0LjkzLDI1Ljc1LTE0Ljk0LDM0LjEyLTYwLjE0LDIzLjI1LTExNS4xM3EtMS4yNS02LjMtMi44OC0xMi44Niw0LjU2LTEuMzUsOC45My0yLjc5YzU1LTE4LjI3LDkwLjgzLTQ3LjgxLDkwLjgzLTc4QzQ5NiwyMjYuNjIsNDYyLjUsMTk4LjYxLDQxMC42NiwxODAuNzJabS0xMjktODEuMDhjMzUuNDMtMzAuOTEsNjguNTUtNDMuMTEsODMuNjUtMzQuMzloMGMxNi4wNyw5LjI5LDIyLjMyLDQ2Ljc1LDEyLjIyLDk1Ljg4cS0xLDQuOC0yLjE2LDkuNTdhNDg3LjgzLDQ4Ny44MywwLDAsMC02NC4xOC0xMC4xNiw0ODEuMjcsNDgxLjI3LDAsMCwwLTQwLjU3LTUwLjc1UTI3NiwxMDQuNTcsMjgxLjY0LDk5LjY0Wk0xNTcuNzMsMjgwLjI1cTYuNTEsMTIuNiwxMy42MSwyNC44OSw3LjIzLDEyLjU0LDE1LjA3LDI0LjcxYTQzNS4yOCw0MzUuMjgsMCwwLDEtNDQuMjQtNy4xM0MxNDYuNDEsMzA5LDE1MS42MywyOTQuNzUsMTU3LjczLDI4MC4yNVptMC00OC4zM2MtNi0xNC4xOS0xMS4wOC0yOC4xNS0xNS4yNS00MS42MywxMy43LTMuMDcsMjguMy01LjU4LDQzLjUyLTcuNDhxLTcuNjUsMTEuOTQtMTQuNzIsMjQuMjNUMTU3LjcsMjMxLjkyWm0xMC45LDI0LjE3cTkuNDgtMTkuNzcsMjAuNDItMzguNzhoMHExMC45My0xOSwyMy4yNy0zNy4xM2MxNC4yOC0xLjA4LDI4LjkyLTEuNjUsNDMuNzEtMS42NXMyOS41Mi41Nyw0My43OSwxLjY2cTEyLjIxLDE4LjA5LDIzLjEzLDM3dDIwLjY5LDM4LjZRMzM0LDI3NS42MywzMjMsMjk0LjczaDBxLTEwLjkxLDE5LTIzLDM3LjI0Yy0xNC4yNSwxLTI5LDEuNTUtNDQsMS41NXMtMjkuNDctLjQ3LTQzLjQ2LTEuMzhxLTEyLjQzLTE4LjE5LTIzLjQ2LTM3LjI5VDE2OC42LDI1Ni4wOVpNMzQwLjc1LDMwNXE3LjI1LTEyLjU4LDEzLjkyLTI1LjQ5aDBhNDQwLjQxLDQ0MC40MSwwLDAsMSwxNi4xMiw0Mi4zMkE0MzQuNDQsNDM0LjQ0LDAsMCwxLDMyNiwzMjkuNDhRMzMzLjYyLDMxNy4zOSwzNDAuNzUsMzA1Wm0xMy43Mi03My4wN3EtNi42NC0xMi42NS0xMy44MS0yNWgwcS03LTEyLjE4LTE0LjU5LTI0LjA2YzE1LjMxLDEuOTQsMzAsNC41Miw0My43Nyw3LjY3QTQzOS44OSw0MzkuODksMCwwLDEsMzU0LjQ3LDIzMS45M1pNMjU2LjIzLDEyNC40OGgwYTQzOS43NSw0MzkuNzUsMCwwLDEsMjguMjUsMzQuMThxLTI4LjM1LTEuMzUtNTYuNzQsMEMyMzcuMDcsMTQ2LjMyLDI0Ni42MiwxMzQuODcsMjU2LjIzLDEyNC40OFpNMTQ1LjY2LDY1Ljg2YzE2LjA2LTkuMzIsNTEuNTcsNCw4OSwzNy4yNywyLjM5LDIuMTMsNC44LDQuMzYsNy4yLDYuNjdBNDkxLjM3LDQ5MS4zNywwLDAsMCwyMDEsMTYwLjUxYTQ5OS4xMiw0OTkuMTIsMCwwLDAtNjQuMDYsMTBxLTEuODMtNy4zNi0zLjMtMTQuODJoMEMxMjQuNTksMTA5LjQ2LDEzMC41OCw3NC42MSwxNDUuNjYsNjUuODZaTTEyMi4yNSwzMTcuNzFxLTYtMS43MS0xMS44NS0zLjcxYy0yMy40LTgtNDIuNzMtMTguNDQtNTYtMjkuODFDNDIuNTIsMjc0LDM2LjUsMjYzLjgzLDM2LjUsMjU1LjU5YzAtMTcuNTEsMjYuMDYtMzkuODUsNjkuNTItNTVxOC4xOS0yLjg1LDE2LjUyLTUuMjFhNDkzLjU0LDQ5My41NCwwLDAsMCwyMy40LDYwLjc1QTUwMi40Niw1MDIuNDYsMCwwLDAsMTIyLjI1LDMxNy43MVptMTExLjEzLDkzLjY3Yy0xOC42MywxNi4zMi0zNy4yOSwyNy44OS01My43NCwzMy43MmgwYy0xNC43OCw1LjIzLTI2LjU1LDUuMzgtMzMuNjYsMS4yNy0xNS4xNC04Ljc1LTIxLjQ0LTQyLjU0LTEyLjg1LTg3Ljg2cTEuNTMtOCwzLjUtMTZhNDgwLjg1LDQ4MC44NSwwLDAsMCw2NC42OSw5LjM5LDUwMS4yLDUwMS4yLDAsMCwwLDQxLjIsNTFDMjM5LjU0LDQwNS44MywyMzYuNDksNDA4LjY1LDIzMy4zOCw0MTEuMzhabTIzLjQyLTIzLjIyYy05LjcyLTEwLjUxLTE5LjQyLTIyLjE0LTI4Ljg4LTM0LjY0cTEzLjc5LjU0LDI4LjA4LjU0YzkuNzgsMCwxOS40Ni0uMjEsMjktLjY0QTQzOS4zMyw0MzkuMzMsMCwwLDEsMjU2LjgsMzg4LjE2Wm0xMjQuNTIsMjguNTljLTIuODYsMTUuNDQtOC42MSwyNS43NC0xNS43MiwyOS44Ni0xNS4xMyw4Ljc4LTQ3LjQ4LTIuNjMtODIuMzYtMzIuNzItNC0zLjQ0LTgtNy4xMy0xMi4wNy0xMWE0ODQuNTQsNDg0LjU0LDAsMCwwLDQwLjIzLTUxLjIsNDc3Ljg0LDQ3Ny44NCwwLDAsMCw2NS0xMC4wNXExLjQ3LDUuOTQsMi42LDExLjY0aDBDMzgzLjgxLDM3Ny41OCwzODQuNSwzOTkuNTYsMzgxLjMyLDQxNi43NVptMTcuNC0xMDIuNjRoMGMtMi42Mi44Ny01LjMyLDEuNzEtOC4wNiwyLjUzYTQ4My4yNiw0ODMuMjYsMCwwLDAtMjQuMzEtNjAuOTQsNDgxLjUyLDQ4MS41MiwwLDAsMCwyMy4zNi02MC4wNmM0LjkxLDEuNDMsOS42OCwyLjkzLDE0LjI3LDQuNTIsNDQuNDIsMTUuMzIsNzEuNTIsMzgsNzEuNTIsNTUuNDNDNDc1LjUsMjc0LjE5LDQ0Ni4yMywyOTguMzMsMzk4LjcyLDMxNC4xMVoiLz4KDTxwYXRoIGQ9Ik0yNTYsMjk4LjU1YTQzLDQzLDAsMSwwLTQyLjg2LTQzQTQyLjkxLDQyLjkxLDAsMCwwLDI1NiwyOTguNTVaIi8+Cg08L2c+Cg08L3N2Zz4=',
|
|
@@ -487,11 +563,12 @@ exports[`react-website generator (uxProvider=None) > should update package.json
|
|
|
487
563
|
"
|
|
488
564
|
`;
|
|
489
565
|
|
|
490
|
-
exports[`react-website generator (uxProvider=
|
|
566
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/main.tsx 1`] = `
|
|
491
567
|
"import React from 'react';
|
|
492
568
|
import { createRoot } from 'react-dom/client';
|
|
493
569
|
import { RouterProvider, createRouter } from '@tanstack/react-router';
|
|
494
570
|
import { routeTree } from './routeTree.gen';
|
|
571
|
+
import './styles.css';
|
|
495
572
|
|
|
496
573
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
497
574
|
export type RouterProviderContext = {};
|
|
@@ -522,7 +599,7 @@ root &&
|
|
|
522
599
|
"
|
|
523
600
|
`;
|
|
524
601
|
|
|
525
|
-
exports[`react-website generator (uxProvider=
|
|
602
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/routeTree.gen.ts 1`] = `
|
|
526
603
|
"/* eslint-disable */
|
|
527
604
|
|
|
528
605
|
// @ts-nocheck
|
|
@@ -585,7 +662,7 @@ export const routeTree = rootRouteImport
|
|
|
585
662
|
"
|
|
586
663
|
`;
|
|
587
664
|
|
|
588
|
-
exports[`react-website generator (uxProvider=
|
|
665
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/routes/__root.tsx 1`] = `
|
|
589
666
|
"import { createRootRouteWithContext } from '@tanstack/react-router';
|
|
590
667
|
import AppLayout from '../components/AppLayout';
|
|
591
668
|
import { RouterProviderContext } from '../main';
|
|
@@ -601,7 +678,7 @@ export const Route = createRootRouteWithContext<RouterProviderContext>()({
|
|
|
601
678
|
"
|
|
602
679
|
`;
|
|
603
680
|
|
|
604
|
-
exports[`react-website generator (uxProvider=
|
|
681
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/routes/index.tsx 1`] = `
|
|
605
682
|
"import { createFileRoute } from '@tanstack/react-router';
|
|
606
683
|
|
|
607
684
|
export const Route = createFileRoute('/')({
|
|
@@ -610,213 +687,20 @@ export const Route = createFileRoute('/')({
|
|
|
610
687
|
|
|
611
688
|
function RouteComponent() {
|
|
612
689
|
return (
|
|
613
|
-
|
|
614
|
-
<
|
|
615
|
-
|
|
616
|
-
|
|
690
|
+
<div className="text-center">
|
|
691
|
+
<header>
|
|
692
|
+
<h1>Welcome</h1>
|
|
693
|
+
<p>Welcome to your new React website!</p>
|
|
694
|
+
</header>
|
|
695
|
+
</div>
|
|
617
696
|
);
|
|
618
697
|
}
|
|
619
698
|
"
|
|
620
699
|
`;
|
|
621
700
|
|
|
622
|
-
exports[`react-website generator (uxProvider=
|
|
623
|
-
"@import '
|
|
624
|
-
|
|
625
|
-
:root {
|
|
626
|
-
color-scheme: light;
|
|
627
|
-
font-family:
|
|
628
|
-
system-ui,
|
|
629
|
-
-apple-system,
|
|
630
|
-
BlinkMacSystemFont,
|
|
631
|
-
'Segoe UI',
|
|
632
|
-
sans-serif;
|
|
633
|
-
background-color: #f8fafc;
|
|
634
|
-
color: #0f172a;
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
* {
|
|
638
|
-
box-sizing: border-box;
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
body {
|
|
642
|
-
margin: 0;
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
a {
|
|
646
|
-
color: inherit;
|
|
647
|
-
text-decoration: none;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
.app-shell {
|
|
651
|
-
min-height: 100vh;
|
|
652
|
-
display: flex;
|
|
653
|
-
flex-direction: column;
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
.app-header {
|
|
657
|
-
display: flex;
|
|
658
|
-
align-items: center;
|
|
659
|
-
justify-content: flex-start;
|
|
660
|
-
padding: 1rem 0;
|
|
661
|
-
border-bottom: 1px solid #e2e8f0;
|
|
662
|
-
background: #ffffff;
|
|
663
|
-
position: sticky;
|
|
664
|
-
top: 0;
|
|
665
|
-
z-index: 1;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
.app-header-inner {
|
|
669
|
-
display: flex;
|
|
670
|
-
align-items: center;
|
|
671
|
-
gap: 1.25rem;
|
|
672
|
-
width: min(1100px, 100%);
|
|
673
|
-
margin: 0 auto;
|
|
674
|
-
padding: 0 1rem;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
.brand {
|
|
678
|
-
display: flex;
|
|
679
|
-
align-items: center;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
.brand a {
|
|
683
|
-
display: inline-flex;
|
|
684
|
-
align-items: center;
|
|
685
|
-
gap: 0.5rem;
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
.brand-logo {
|
|
689
|
-
height: 32px;
|
|
690
|
-
width: auto;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
.brand-name {
|
|
694
|
-
font-weight: 700;
|
|
695
|
-
font-size: 1.1rem;
|
|
696
|
-
line-height: 1.1;
|
|
697
|
-
display: inline-flex;
|
|
698
|
-
align-items: center;
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
.user-greeting {
|
|
702
|
-
margin-left: auto;
|
|
703
|
-
display: flex;
|
|
704
|
-
align-items: center;
|
|
705
|
-
gap: 0.5rem;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
.signout-link {
|
|
709
|
-
border: none;
|
|
710
|
-
background: transparent;
|
|
711
|
-
color: #0ea5e9;
|
|
712
|
-
cursor: pointer;
|
|
713
|
-
font-weight: 600;
|
|
714
|
-
padding: 0.25rem 0.35rem;
|
|
715
|
-
border-radius: 0.35rem;
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
.signout-link:hover {
|
|
719
|
-
background: #e0f2fe;
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
.app-main {
|
|
723
|
-
width: min(1100px, 100%);
|
|
724
|
-
margin: 2rem auto;
|
|
725
|
-
padding: 0 1rem 3rem;
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
.card {
|
|
729
|
-
background: #ffffff;
|
|
730
|
-
border-radius: 0.75rem;
|
|
731
|
-
padding: 1.5rem;
|
|
732
|
-
box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
|
|
733
|
-
border: 1px solid #e2e8f0;
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
.card h1 {
|
|
737
|
-
margin-top: 0;
|
|
738
|
-
margin-bottom: 0.5rem;
|
|
739
|
-
font-size: 1.5rem;
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
.card p {
|
|
743
|
-
margin: 0;
|
|
744
|
-
color: #334155;
|
|
745
|
-
line-height: 1.6;
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
.spinner {
|
|
749
|
-
display: inline-block;
|
|
750
|
-
padding: 0.75rem 1rem;
|
|
751
|
-
border: 1px solid #e2e8f0;
|
|
752
|
-
border-radius: 0.5rem;
|
|
753
|
-
background: #ffffff;
|
|
754
|
-
color: #0f172a;
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
.alert {
|
|
758
|
-
border-radius: 0.75rem;
|
|
759
|
-
padding: 1rem 1.25rem;
|
|
760
|
-
margin: 1rem 0;
|
|
761
|
-
border: 1px solid #e2e8f0;
|
|
762
|
-
background: #fff;
|
|
763
|
-
color: #0f172a;
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
.alert-error {
|
|
767
|
-
border-color: #fecdd3;
|
|
768
|
-
background: #fff1f2;
|
|
769
|
-
color: #881337;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
.alert-header {
|
|
773
|
-
font-weight: 700;
|
|
774
|
-
margin-bottom: 0.35rem;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
.alert-body {
|
|
778
|
-
margin: 0;
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
.app-nav {
|
|
782
|
-
display: flex;
|
|
783
|
-
align-items: center;
|
|
784
|
-
gap: 0.75rem;
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
.app-nav a {
|
|
788
|
-
display: inline-flex;
|
|
789
|
-
align-items: center;
|
|
790
|
-
padding: 0.35rem 0.65rem;
|
|
791
|
-
border-radius: 0.375rem;
|
|
792
|
-
line-height: 1.1;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
.app-nav a.active {
|
|
796
|
-
background: #e2e8f0;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
.breadcrumbs {
|
|
800
|
-
display: flex;
|
|
801
|
-
align-items: center;
|
|
802
|
-
gap: 0.35rem;
|
|
803
|
-
font-size: 0.95rem;
|
|
804
|
-
color: #475569;
|
|
805
|
-
margin: 0 0 1rem;
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
.breadcrumb-segment a {
|
|
809
|
-
color: inherit;
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
.breadcrumb-current {
|
|
813
|
-
font-weight: 600;
|
|
814
|
-
color: #0f172a;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
.breadcrumb-separator {
|
|
818
|
-
color: #cbd5e1;
|
|
819
|
-
}
|
|
701
|
+
exports[`react-website generator (uxProvider=Shadcn) > should update package.json with required dependencies > test-app/src/styles.css 1`] = `
|
|
702
|
+
"@import '../../packages/common/shadcn/src/styles/globals.css';
|
|
703
|
+
@source './**/*.{ts,tsx}';
|
|
820
704
|
"
|
|
821
705
|
`;
|
|
822
706
|
|
|
@@ -1874,24 +1758,24 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
1874
1758
|
"{
|
|
1875
1759
|
"name": "@proj/source",
|
|
1876
1760
|
"dependencies": {
|
|
1877
|
-
"@cloudscape-design/board-components": "3.0.
|
|
1878
|
-
"@cloudscape-design/components": "3.0.
|
|
1879
|
-
"@cloudscape-design/global-styles": "1.0.
|
|
1880
|
-
"aws-cdk-lib": "2.
|
|
1761
|
+
"@cloudscape-design/board-components": "3.0.145",
|
|
1762
|
+
"@cloudscape-design/components": "3.0.1184",
|
|
1763
|
+
"@cloudscape-design/global-styles": "1.0.50",
|
|
1764
|
+
"aws-cdk-lib": "2.236.0",
|
|
1881
1765
|
"constructs": "10.4.5",
|
|
1882
|
-
"react": "19.2.
|
|
1883
|
-
"react-dom": "19.2.
|
|
1766
|
+
"react": "19.2.4",
|
|
1767
|
+
"react-dom": "19.2.4",
|
|
1884
1768
|
"tailwindcss": "4.1.18"
|
|
1885
1769
|
},
|
|
1886
1770
|
"devDependencies": {
|
|
1887
1771
|
"@eslint/js": "^9.8.0",
|
|
1888
|
-
"@nx/eslint": "22.4.
|
|
1889
|
-
"@nx/eslint-plugin": "22.4.
|
|
1890
|
-
"@nx/js": "22.4.
|
|
1891
|
-
"@nx/react": "22.4.
|
|
1892
|
-
"@nx/vite": "22.4.
|
|
1893
|
-
"@nx/vitest": "22.4.
|
|
1894
|
-
"@nx/web": "22.4.
|
|
1772
|
+
"@nx/eslint": "22.4.4",
|
|
1773
|
+
"@nx/eslint-plugin": "22.4.4",
|
|
1774
|
+
"@nx/js": "22.4.4",
|
|
1775
|
+
"@nx/react": "22.4.4",
|
|
1776
|
+
"@nx/vite": "22.4.4",
|
|
1777
|
+
"@nx/vitest": "22.4.4",
|
|
1778
|
+
"@nx/web": "22.4.4",
|
|
1895
1779
|
"@swc-node/register": "~1.9.1",
|
|
1896
1780
|
"@swc/cli": "~0.6.0",
|
|
1897
1781
|
"@swc/core": "~1.5.7",
|
|
@@ -3316,32 +3200,32 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
3316
3200
|
"{
|
|
3317
3201
|
"name": "@proj/source",
|
|
3318
3202
|
"dependencies": {
|
|
3319
|
-
"@cloudscape-design/board-components": "3.0.
|
|
3320
|
-
"@cloudscape-design/components": "3.0.
|
|
3321
|
-
"@cloudscape-design/global-styles": "1.0.
|
|
3322
|
-
"@tanstack/react-router": "1.
|
|
3323
|
-
"aws-cdk-lib": "2.
|
|
3203
|
+
"@cloudscape-design/board-components": "3.0.145",
|
|
3204
|
+
"@cloudscape-design/components": "3.0.1184",
|
|
3205
|
+
"@cloudscape-design/global-styles": "1.0.50",
|
|
3206
|
+
"@tanstack/react-router": "1.157.16",
|
|
3207
|
+
"aws-cdk-lib": "2.236.0",
|
|
3324
3208
|
"constructs": "10.4.5",
|
|
3325
|
-
"react": "19.2.
|
|
3326
|
-
"react-dom": "19.2.
|
|
3209
|
+
"react": "19.2.4",
|
|
3210
|
+
"react-dom": "19.2.4",
|
|
3327
3211
|
"tailwindcss": "4.1.18"
|
|
3328
3212
|
},
|
|
3329
3213
|
"devDependencies": {
|
|
3330
3214
|
"@eslint/js": "^9.8.0",
|
|
3331
|
-
"@nx/eslint": "22.4.
|
|
3332
|
-
"@nx/eslint-plugin": "22.4.
|
|
3333
|
-
"@nx/js": "22.4.
|
|
3334
|
-
"@nx/react": "22.4.
|
|
3335
|
-
"@nx/vite": "22.4.
|
|
3336
|
-
"@nx/vitest": "22.4.
|
|
3337
|
-
"@nx/web": "22.4.
|
|
3215
|
+
"@nx/eslint": "22.4.4",
|
|
3216
|
+
"@nx/eslint-plugin": "22.4.4",
|
|
3217
|
+
"@nx/js": "22.4.4",
|
|
3218
|
+
"@nx/react": "22.4.4",
|
|
3219
|
+
"@nx/vite": "22.4.4",
|
|
3220
|
+
"@nx/vitest": "22.4.4",
|
|
3221
|
+
"@nx/web": "22.4.4",
|
|
3338
3222
|
"@swc-node/register": "~1.9.1",
|
|
3339
3223
|
"@swc/cli": "~0.6.0",
|
|
3340
3224
|
"@swc/core": "~1.5.7",
|
|
3341
3225
|
"@swc/helpers": "~0.5.11",
|
|
3342
3226
|
"@tailwindcss/vite": "4.1.18",
|
|
3343
|
-
"@tanstack/router-generator": "1.
|
|
3344
|
-
"@tanstack/router-plugin": "1.
|
|
3227
|
+
"@tanstack/router-generator": "1.157.16",
|
|
3228
|
+
"@tanstack/router-plugin": "1.157.16",
|
|
3345
3229
|
"@tanstack/router-utils": "1.154.7",
|
|
3346
3230
|
"@tanstack/virtual-file-routes": "1.154.7",
|
|
3347
3231
|
"@testing-library/dom": "10.4.0",
|
|
@@ -5403,14 +5287,14 @@ root &&
|
|
|
5403
5287
|
|
|
5404
5288
|
exports[`react-website generator > should handle npm scope prefix correctly > scoped-dependencies 1`] = `
|
|
5405
5289
|
{
|
|
5406
|
-
"@cloudscape-design/board-components": "3.0.
|
|
5407
|
-
"@cloudscape-design/components": "3.0.
|
|
5408
|
-
"@cloudscape-design/global-styles": "1.0.
|
|
5409
|
-
"@tanstack/react-router": "1.
|
|
5410
|
-
"aws-cdk-lib": "2.
|
|
5290
|
+
"@cloudscape-design/board-components": "3.0.145",
|
|
5291
|
+
"@cloudscape-design/components": "3.0.1184",
|
|
5292
|
+
"@cloudscape-design/global-styles": "1.0.50",
|
|
5293
|
+
"@tanstack/react-router": "1.157.16",
|
|
5294
|
+
"aws-cdk-lib": "2.236.0",
|
|
5411
5295
|
"constructs": "10.4.5",
|
|
5412
|
-
"react": "19.2.
|
|
5413
|
-
"react-dom": "19.2.
|
|
5296
|
+
"react": "19.2.4",
|
|
5297
|
+
"react-dom": "19.2.4",
|
|
5414
5298
|
"tailwindcss": "4.1.18",
|
|
5415
5299
|
}
|
|
5416
5300
|
`;
|