@astryxdesign/cli 0.3.0-canary.fbc60c5 → 0.3.0-canary.fcbc342
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/README.md +8 -8
- package/api/blog/blog.doc.mjs +2 -2
- package/api/build/build.doc.mjs +1 -1
- package/api/component/component.doc.mjs +1 -1
- package/api/discover/discover.doc.mjs +2 -2
- package/api/docs/docs.doc.mjs +2 -2
- package/api/doctor/doctor.doc.mjs +3 -3
- package/api/hook/hook.doc.mjs +1 -1
- package/api/init/init.doc.mjs +1 -1
- package/api/integration/summarizeIssues.doc.mjs +1 -1
- package/api/integration/validateIntegration.doc.mjs +1 -1
- package/api/json/assertResponse.doc.mjs +2 -2
- package/api/json/isError.doc.mjs +1 -1
- package/api/json/parseResponse.doc.mjs +2 -2
- package/api/layout/layoutCheck.doc.mjs +1 -1
- package/api/layout/layoutExpand.doc.mjs +1 -1
- package/api/layout/layoutGrammar.doc.mjs +1 -1
- package/api/swizzle/swizzle.doc.mjs +1 -1
- package/api/template/template.test.mjs +38 -13
- package/api/theme/listThemes.doc.mjs +2 -2
- package/api/theme/themeAdd.doc.mjs +1 -1
- package/api/theme/themeBuild.doc.mjs +3 -3
- package/api/theme/themeList.doc.mjs +2 -2
- package/api/upgrade/upgrade.doc.mjs +1 -1
- package/assets/codemods/transforms/next/__tests__/next-codemods.test.mjs +92 -0
- package/assets/codemods/transforms/next/index.mjs +11 -1
- package/assets/codemods/transforms/next/rename-dropdown-menu-radio-dot-target.mjs +152 -0
- package/assets/codemods/transforms/v0.3.0/__tests__/migrate-grid-minchildwidth-to-columns.test.mjs +82 -0
- package/assets/codemods/transforms/v0.3.0/__tests__/migrate-table-rowexpansion-to-tree.test.mjs +201 -0
- package/assets/codemods/transforms/v0.3.0/index.mjs +8 -0
- package/assets/codemods/transforms/v0.3.0/migrate-grid-minchildwidth-to-columns.mjs +38 -2
- package/assets/codemods/transforms/v0.3.0/migrate-table-rowexpansion-to-tree.mjs +214 -0
- package/assets/docs/browser-support.doc.mjs +6 -6
- package/assets/docs/getting-started.doc.mjs +3 -3
- package/assets/docs/icons.doc.mjs +3 -3
- package/assets/docs/illustrations.doc.mjs +2 -2
- package/assets/docs/internationalization.doc.mjs +1 -1
- package/assets/docs/layout.doc.dense.mjs +1 -1
- package/assets/docs/migration.doc.mjs +1 -1
- package/assets/docs/principles.doc.mjs +1 -1
- package/assets/docs/styling-libraries.doc.mjs +1 -1
- package/assets/docs/styling.doc.mjs +4 -4
- package/assets/docs/theme.doc.mjs +3 -3
- package/assets/docs/typography.doc.mjs +2 -2
- package/assets/templates/blocks/components/AspectRatio/AspectRatioCircleImage.tsx +1 -1
- package/assets/templates/blocks/components/AspectRatio/AspectRatioImageGallery.tsx +1 -1
- package/assets/templates/blocks/components/AspectRatio/AspectRatioShowcase.tsx +3 -3
- package/assets/templates/blocks/components/AspectRatio/AspectRatioSquareImage.tsx +1 -1
- package/assets/templates/blocks/components/AspectRatio/AspectRatioWidescreen.tsx +1 -1
- package/assets/templates/blocks/components/Avatar/AvatarFallbackChain.tsx +6 -6
- package/assets/templates/blocks/components/Avatar/AvatarGroup.tsx +5 -5
- package/assets/templates/blocks/components/Avatar/AvatarInteractive.tsx +2 -2
- package/assets/templates/blocks/components/Avatar/AvatarShowcase.tsx +4 -4
- package/assets/templates/blocks/components/Avatar/AvatarTooltip.tsx +4 -4
- package/assets/templates/blocks/components/Avatar/AvatarUserCard.tsx +3 -3
- package/assets/templates/blocks/components/Avatar/AvatarWithImage.tsx +4 -4
- package/assets/templates/blocks/components/Avatar/AvatarWithStatus.tsx +3 -3
- package/assets/templates/blocks/components/ChatComposerDrawer/ChatComposerDrawerAttachments.tsx +5 -5
- package/assets/templates/blocks/components/Lightbox/LightboxGallery.tsx +4 -4
- package/assets/templates/blocks/components/Lightbox/LightboxShowcase.tsx +1 -1
- package/assets/templates/blocks/components/Lightbox/LightboxVideo.tsx +1 -1
- package/assets/templates/blocks/components/Lightbox/LightboxZoom.tsx +2 -2
- package/assets/templates/blocks/components/MediaTheme/MediaThemeImageOverlay.tsx +1 -1
- package/assets/templates/blocks/components/MediaTheme/MediaThemeLightScrim.tsx +1 -1
- package/assets/templates/blocks/components/MediaTheme/MediaThemeShowcase.tsx +1 -1
- package/assets/templates/blocks/components/Overlay/OverlayBottomStrip.tsx +1 -1
- package/assets/templates/blocks/components/Overlay/OverlayHoverReveal.tsx +1 -1
- package/assets/templates/blocks/components/Overlay/OverlayShowcase.tsx +1 -1
- package/assets/templates/blocks/components/Stepper/StepperHorizontal.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperHorizontal.tsx +24 -0
- package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.tsx +68 -0
- package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.tsx +92 -0
- package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.tsx +41 -0
- package/assets/templates/blocks/components/Stepper/StepperShowcase.doc.mjs +15 -0
- package/assets/templates/blocks/components/Stepper/StepperShowcase.tsx +25 -0
- package/assets/templates/blocks/components/Stepper/StepperStatus.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperStatus.tsx +50 -0
- package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.tsx +40 -0
- package/assets/templates/blocks/components/Table/TableRowExpansionTable.tsx +61 -58
- package/assets/templates/blocks/components/TextArea/TextAreaStates.tsx +1 -1
- package/assets/templates/blocks/components/TopNav/TopNavMegaMenu.tsx +1 -1
- package/assets/templates/pages/centered-hero/page.tsx +1 -1
- package/assets/templates/pages/classic-gallery/page.tsx +10 -10
- package/assets/templates/pages/detail-page/page.tsx +5 -5
- package/assets/templates/pages/form-two-column/page.tsx +1 -1
- package/assets/templates/pages/gallery-hero/page.tsx +3 -3
- package/assets/templates/pages/library/page.tsx +30 -30
- package/assets/templates/pages/login/page.tsx +1 -2
- package/assets/templates/pages/login-card/page.tsx +1 -2
- package/assets/templates/pages/login-split/page.tsx +5 -6
- package/assets/templates/pages/login-sso/page.tsx +2 -3
- package/assets/templates/pages/mixed-gallery/page.tsx +5 -5
- package/assets/templates/pages/payment-form/page.tsx +3 -3
- package/assets/templates/pages/product-detail/page.tsx +7 -7
- package/assets/templates/pages/product-gallery/page.tsx +6 -6
- package/assets/templates/pages/shell-top-nav/page.tsx +2 -2
- package/assets/templates/pages/side-gallery/page.tsx +9 -9
- package/assets/templates/pages/table-page-chart/page.tsx +6 -6
- package/assets/templates/pages/theme-showcase/page.tsx +6 -6
- package/assets/templates/themes/neutral/neutralTheme.ts +4 -1
- package/authoring/codemod/codemod.doc.mjs +2 -2
- package/authoring/config/config.doc.mjs +1 -1
- package/authoring/doctypes/base/type.ts +21 -0
- package/authoring/doctypes/command/command.doc.mjs +2 -2
- package/authoring/doctypes/component/component.doc.mjs +7 -7
- package/authoring/doctypes/enum/enum.doc.mjs +2 -2
- package/authoring/doctypes/function/function.doc.mjs +3 -3
- package/authoring/doctypes/hook/hook.doc.mjs +3 -3
- package/authoring/doctypes/reference/reference.doc.mjs +3 -3
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/clients/cli/commands/build-theme.registry.test.mjs +14 -1
- package/clients/cli/commands/build.doc.mjs +1 -1
- package/clients/cli/commands/component.doc.mjs +1 -1
- package/clients/cli/commands/doctor.doc.mjs +2 -2
- package/clients/cli/commands/layout-expand.doc.mjs +1 -1
- package/clients/cli/commands/layout.doc.mjs +1 -1
- package/clients/cli/commands/manifest.doc.mjs +3 -3
- package/clients/cli/commands/search.doc.mjs +1 -1
- package/clients/cli/commands/theme-add.doc.mjs +1 -1
- package/clients/cli/commands/theme-build.doc.mjs +1 -1
- package/clients/cli/commands/theme-list.doc.mjs +1 -1
- package/clients/cli/commands/theme.doc.mjs +2 -2
- package/clients/cli/commands/validate-integration.doc.mjs +2 -2
- package/foundation/agent-docs/agent-docs.mjs +3 -4
- package/foundation/agent-docs/agent-docs.test.mjs +8 -0
- package/foundation/discovery/template-adapter.d.mts +6 -3
- package/foundation/discovery/template-adapter.mjs +33 -13
- package/foundation/response/response-types.doc.mjs +7 -7
- package/foundation/response/response.doc.mjs +5 -5
- package/package.json +9 -9
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {useState} from 'react';
|
|
6
|
+
import {Stepper, Step} from '@astryxdesign/lab';
|
|
7
|
+
|
|
8
|
+
export default function StepperStatus() {
|
|
9
|
+
const [active, setActive] = useState(3);
|
|
10
|
+
return (
|
|
11
|
+
<div style={{width: '100%', maxWidth: 400}}>
|
|
12
|
+
<Stepper
|
|
13
|
+
activeStep={active}
|
|
14
|
+
orientation="vertical"
|
|
15
|
+
onStepClick={setActive}>
|
|
16
|
+
<Step
|
|
17
|
+
step={0}
|
|
18
|
+
label="Email verified"
|
|
19
|
+
description="you@example.com"
|
|
20
|
+
status="success"
|
|
21
|
+
/>
|
|
22
|
+
<Step
|
|
23
|
+
step={1}
|
|
24
|
+
label="Phone verified"
|
|
25
|
+
description="+1 (555) 012-3456"
|
|
26
|
+
status="success"
|
|
27
|
+
/>
|
|
28
|
+
<Step
|
|
29
|
+
step={2}
|
|
30
|
+
label="Identity document"
|
|
31
|
+
description="Passport upload failed"
|
|
32
|
+
status="error"
|
|
33
|
+
/>
|
|
34
|
+
<Step
|
|
35
|
+
step={3}
|
|
36
|
+
label="Address verification"
|
|
37
|
+
description="Pending review"
|
|
38
|
+
status="accent"
|
|
39
|
+
/>
|
|
40
|
+
<Step
|
|
41
|
+
step={4}
|
|
42
|
+
label="Background check"
|
|
43
|
+
isOptional
|
|
44
|
+
description="Skipped"
|
|
45
|
+
/>
|
|
46
|
+
<Step step={5} label="Account activated" />
|
|
47
|
+
</Stepper>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('@astryxdesign/cli/authoring').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'Stepper',
|
|
7
|
+
name: 'Stepper — Vertical Onboarding',
|
|
8
|
+
displayName: 'Stepper — Vertical Onboarding',
|
|
9
|
+
description:
|
|
10
|
+
'A vertical stepper for an onboarding flow, with a label and description per step. The auto indicator shows a check for completed steps, a ring for the current step, and a number for upcoming ones.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 4 / 3,
|
|
13
|
+
componentsUsed: ['Stepper'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {useState} from 'react';
|
|
6
|
+
import {Stepper, Step} from '@astryxdesign/lab';
|
|
7
|
+
|
|
8
|
+
export default function StepperVerticalOnboarding() {
|
|
9
|
+
const [active, setActive] = useState(2);
|
|
10
|
+
return (
|
|
11
|
+
<div style={{width: '100%', maxWidth: 400}}>
|
|
12
|
+
<Stepper
|
|
13
|
+
activeStep={active}
|
|
14
|
+
orientation="vertical"
|
|
15
|
+
onStepClick={setActive}>
|
|
16
|
+
<Step
|
|
17
|
+
step={0}
|
|
18
|
+
label="Create workspace"
|
|
19
|
+
description="Name and configure your workspace"
|
|
20
|
+
/>
|
|
21
|
+
<Step
|
|
22
|
+
step={1}
|
|
23
|
+
label="Invite team members"
|
|
24
|
+
description="Add collaborators by email"
|
|
25
|
+
/>
|
|
26
|
+
<Step
|
|
27
|
+
step={2}
|
|
28
|
+
label="Set up integrations"
|
|
29
|
+
description="Connect Slack, GitHub, Jira"
|
|
30
|
+
/>
|
|
31
|
+
<Step
|
|
32
|
+
step={3}
|
|
33
|
+
label="Import data"
|
|
34
|
+
description="Bring in existing projects"
|
|
35
|
+
/>
|
|
36
|
+
<Step step={4} label="Launch" description="Go live with your team" />
|
|
37
|
+
</Stepper>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -6,90 +6,93 @@ import {useState} from 'react';
|
|
|
6
6
|
import {
|
|
7
7
|
Table,
|
|
8
8
|
useTableRowExpansion,
|
|
9
|
-
useTableRowExpansionState,
|
|
10
9
|
proportional,
|
|
11
10
|
pixel,
|
|
12
11
|
} from '@astryxdesign/core/Table';
|
|
12
|
+
import {VStack, HStack} from '@astryxdesign/core/Stack';
|
|
13
|
+
import {Text, Heading} from '@astryxdesign/core/Text';
|
|
14
|
+
import {Badge} from '@astryxdesign/core/Badge';
|
|
13
15
|
|
|
14
|
-
interface
|
|
16
|
+
interface Order extends Record<string, unknown> {
|
|
15
17
|
id: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
customer: string;
|
|
19
|
+
status: string;
|
|
20
|
+
total: string;
|
|
21
|
+
items: {name: string; qty: number; price: string}[];
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
const
|
|
24
|
+
const orders: Order[] = [
|
|
23
25
|
{
|
|
24
|
-
id: '
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
name: 'components',
|
|
32
|
-
type: 'folder',
|
|
33
|
-
size: '—',
|
|
34
|
-
children: [
|
|
35
|
-
{
|
|
36
|
-
id: 'src/components/Button.tsx',
|
|
37
|
-
name: 'Button.tsx',
|
|
38
|
-
type: 'file',
|
|
39
|
-
size: '4.2 KB',
|
|
40
|
-
children: [],
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: 'src/components/Table.tsx',
|
|
44
|
-
name: 'Table.tsx',
|
|
45
|
-
type: 'file',
|
|
46
|
-
size: '12.8 KB',
|
|
47
|
-
children: [],
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: 'src/index.ts',
|
|
53
|
-
name: 'index.ts',
|
|
54
|
-
type: 'file',
|
|
55
|
-
size: '0.4 KB',
|
|
56
|
-
children: [],
|
|
57
|
-
},
|
|
26
|
+
id: 'ord-1001',
|
|
27
|
+
customer: 'Ada Lovelace',
|
|
28
|
+
status: 'Shipped',
|
|
29
|
+
total: '$248.00',
|
|
30
|
+
items: [
|
|
31
|
+
{name: 'Mechanical keyboard', qty: 1, price: '$180.00'},
|
|
32
|
+
{name: 'Wrist rest', qty: 2, price: '$34.00'},
|
|
58
33
|
],
|
|
59
34
|
},
|
|
60
35
|
{
|
|
61
|
-
id: '
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
36
|
+
id: 'ord-1002',
|
|
37
|
+
customer: 'Alan Turing',
|
|
38
|
+
status: 'Processing',
|
|
39
|
+
total: '$52.00',
|
|
40
|
+
items: [{name: 'USB-C cable', qty: 4, price: '$13.00'}],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: 'ord-1003',
|
|
44
|
+
customer: 'Grace Hopper',
|
|
45
|
+
status: 'Delivered',
|
|
46
|
+
total: '$1,200.00',
|
|
47
|
+
items: [{name: 'Standing desk', qty: 1, price: '$1,200.00'}],
|
|
66
48
|
},
|
|
67
49
|
];
|
|
68
50
|
|
|
69
51
|
const columns = [
|
|
70
|
-
{key: '
|
|
71
|
-
{key: '
|
|
72
|
-
{key: '
|
|
52
|
+
{key: 'customer', header: 'Customer', width: proportional(2)},
|
|
53
|
+
{key: 'status', header: 'Status', width: pixel(130)},
|
|
54
|
+
{key: 'total', header: 'Total', width: pixel(110)},
|
|
73
55
|
];
|
|
74
56
|
|
|
75
57
|
export default function TableRowExpansionTable() {
|
|
76
58
|
const [expandedKeys, setExpandedKeys] = useState<Set<string>>(
|
|
77
|
-
new Set(['
|
|
59
|
+
new Set(['ord-1001']),
|
|
78
60
|
);
|
|
79
61
|
|
|
80
|
-
const
|
|
81
|
-
baseData: fileTree,
|
|
82
|
-
getChildren: item => item.children ?? [],
|
|
83
|
-
getRowKey: item => item.id,
|
|
62
|
+
const expansion = useTableRowExpansion<Order>({
|
|
84
63
|
expandedKeys,
|
|
85
|
-
|
|
64
|
+
onToggle: key =>
|
|
65
|
+
setExpandedKeys(prev => {
|
|
66
|
+
const next = new Set(prev);
|
|
67
|
+
if (next.has(key)) {
|
|
68
|
+
next.delete(key);
|
|
69
|
+
} else {
|
|
70
|
+
next.add(key);
|
|
71
|
+
}
|
|
72
|
+
return next;
|
|
73
|
+
}),
|
|
74
|
+
getRowKey: item => item.id,
|
|
75
|
+
// The detail panel renders arbitrary content below the row: here, the
|
|
76
|
+
// order's line items. Any component composes here (charts, forms, tables).
|
|
77
|
+
renderExpanded: item => (
|
|
78
|
+
<VStack gap={2}>
|
|
79
|
+
<Heading level={4}>Line items</Heading>
|
|
80
|
+
{item.items.map(line => (
|
|
81
|
+
<HStack key={line.name} gap={3}>
|
|
82
|
+
<Badge label={`x${line.qty}`} variant="info" />
|
|
83
|
+
<Text type="body">{line.name}</Text>
|
|
84
|
+
<Text type="body" color="secondary">
|
|
85
|
+
{line.price}
|
|
86
|
+
</Text>
|
|
87
|
+
</HStack>
|
|
88
|
+
))}
|
|
89
|
+
</VStack>
|
|
90
|
+
),
|
|
86
91
|
});
|
|
87
92
|
|
|
88
|
-
const expansion = useTableRowExpansion(expansionConfig);
|
|
89
|
-
|
|
90
93
|
return (
|
|
91
94
|
<Table
|
|
92
|
-
data={
|
|
95
|
+
data={orders}
|
|
93
96
|
columns={columns}
|
|
94
97
|
idKey="id"
|
|
95
98
|
hasHover
|
|
@@ -75,7 +75,7 @@ export default function TopNavMegaMenuBlock() {
|
|
|
75
75
|
<TopNavMegaMenuFeaturedCard
|
|
76
76
|
title="What's new in v4.0"
|
|
77
77
|
description="AI-powered analytics and real-time collaboration."
|
|
78
|
-
image="
|
|
78
|
+
image="/template-assets/light-working-horizontal-1.png"
|
|
79
79
|
imageAlt="Team collaboration"
|
|
80
80
|
linkLabel="Read the announcement"
|
|
81
81
|
linkHref="#announcement"
|
|
@@ -12,7 +12,7 @@ import {Section} from '@astryxdesign/core/Section';
|
|
|
12
12
|
import {ArrowRightIcon} from '@heroicons/react/20/solid';
|
|
13
13
|
|
|
14
14
|
const IMAGE_URL =
|
|
15
|
-
'
|
|
15
|
+
'/template-assets/light-scene-horizontal-1.png';
|
|
16
16
|
|
|
17
17
|
const heroImage: CSSProperties = {
|
|
18
18
|
width: '100%',
|
|
@@ -47,52 +47,52 @@ interface GalleryImage {
|
|
|
47
47
|
|
|
48
48
|
const GALLERY_IMAGES: GalleryImage[] = [
|
|
49
49
|
{
|
|
50
|
-
src: '
|
|
50
|
+
src: '/template-assets/moody-scene-horizontal-1.png',
|
|
51
51
|
alt: 'Moody scene landscape',
|
|
52
52
|
category: 'scene',
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
src: '
|
|
55
|
+
src: '/template-assets/moody-lifestyle-vertical-1.png',
|
|
56
56
|
alt: 'Moody lifestyle portrait',
|
|
57
57
|
category: 'lifestyle',
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
src: '
|
|
60
|
+
src: '/template-assets/moody-home-vertical-1.png',
|
|
61
61
|
alt: 'Moody home interior',
|
|
62
62
|
category: 'home',
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
src: '
|
|
65
|
+
src: '/template-assets/moody-scene-horizontal-2.png',
|
|
66
66
|
alt: 'Moody scene vista',
|
|
67
67
|
category: 'scene',
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
|
-
src: '
|
|
70
|
+
src: '/template-assets/moody-lifestyle-vertical-2.png',
|
|
71
71
|
alt: 'Moody lifestyle scene',
|
|
72
72
|
category: 'lifestyle',
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
src: '
|
|
75
|
+
src: '/template-assets/moody-lifestyle-horizontal-1.png',
|
|
76
76
|
alt: 'Moody lifestyle horizontal',
|
|
77
77
|
category: 'lifestyle',
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
src: '
|
|
80
|
+
src: '/template-assets/moody-scene-vertical-1.png',
|
|
81
81
|
alt: 'Moody scene vertical',
|
|
82
82
|
category: 'scene',
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
src: '
|
|
85
|
+
src: '/template-assets/moody-home-vertical-2.png',
|
|
86
86
|
alt: 'Moody home vertical',
|
|
87
87
|
category: 'home',
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
|
-
src: '
|
|
90
|
+
src: '/template-assets/moody-home-horizontal-1.png',
|
|
91
91
|
alt: 'Moody home horizontal',
|
|
92
92
|
category: 'home',
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
|
-
src: '
|
|
95
|
+
src: '/template-assets/moody-scene-vertical-2.png',
|
|
96
96
|
alt: 'Moody scene vertical',
|
|
97
97
|
category: 'scene',
|
|
98
98
|
},
|
|
@@ -64,11 +64,11 @@ const itemsList: CSSProperties = {
|
|
|
64
64
|
|
|
65
65
|
// ─── Product data ───────────────────────────────────────────────────────────
|
|
66
66
|
const PRODUCT_IMAGES = [
|
|
67
|
-
'
|
|
68
|
-
'
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'
|
|
67
|
+
'/template-assets/light-product-1.png',
|
|
68
|
+
'/template-assets/light-product-2.png',
|
|
69
|
+
'/template-assets/light-product-3.png',
|
|
70
|
+
'/template-assets/light-product-4.png',
|
|
71
|
+
'/template-assets/light-product-5.png',
|
|
72
72
|
];
|
|
73
73
|
|
|
74
74
|
const PRODUCTS = [
|
|
@@ -19,7 +19,7 @@ import {Card} from '@astryxdesign/core/Card';
|
|
|
19
19
|
import {Selector} from '@astryxdesign/core/Selector';
|
|
20
20
|
|
|
21
21
|
const ILLUSTRATION_URL =
|
|
22
|
-
'
|
|
22
|
+
'/template-assets/light-working-vertical-2.png';
|
|
23
23
|
|
|
24
24
|
const INQUIRY_REASONS = [
|
|
25
25
|
'New business',
|
|
@@ -13,15 +13,15 @@ import {ArrowRightIcon} from '@heroicons/react/20/solid';
|
|
|
13
13
|
|
|
14
14
|
const IMAGES = [
|
|
15
15
|
{
|
|
16
|
-
src: '
|
|
16
|
+
src: '/template-assets/colorful-home-horizontal-1.png',
|
|
17
17
|
alt: 'Colorful home interior with vibrant decor',
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
src: '
|
|
20
|
+
src: '/template-assets/colorful-lifestyle-horizontal-1.png',
|
|
21
21
|
alt: 'Colorful lifestyle portrait with natural lighting',
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
|
-
src: '
|
|
24
|
+
src: '/template-assets/colorful-lifestyle-horizontal-2.png',
|
|
25
25
|
alt: 'Colorful lifestyle scene with warm tones',
|
|
26
26
|
},
|
|
27
27
|
];
|
|
@@ -37,7 +37,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
37
37
|
category: 'Layout',
|
|
38
38
|
type: 'Component',
|
|
39
39
|
imageUrl:
|
|
40
|
-
'
|
|
40
|
+
'/template-assets/colorful-home-horizontal-1.png',
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
id: '2',
|
|
@@ -47,7 +47,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
47
47
|
category: 'Layout',
|
|
48
48
|
type: 'Component',
|
|
49
49
|
imageUrl:
|
|
50
|
-
'
|
|
50
|
+
'/template-assets/illustrative-horizontal-3.png',
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
id: '3',
|
|
@@ -57,7 +57,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
57
57
|
category: 'Layout',
|
|
58
58
|
type: 'Component',
|
|
59
59
|
imageUrl:
|
|
60
|
-
'
|
|
60
|
+
'/template-assets/light-working-horizontal-2.png',
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
id: '4',
|
|
@@ -66,7 +66,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
66
66
|
category: 'Layout',
|
|
67
67
|
type: 'Utility',
|
|
68
68
|
imageUrl:
|
|
69
|
-
'
|
|
69
|
+
'/template-assets/moody-scene-horizontal-1.png',
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
id: '5',
|
|
@@ -75,7 +75,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
75
75
|
category: 'Layout',
|
|
76
76
|
type: 'Pattern',
|
|
77
77
|
imageUrl:
|
|
78
|
-
'
|
|
78
|
+
'/template-assets/colorful-lifestyle-horizontal-2.png',
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
id: '6',
|
|
@@ -84,7 +84,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
84
84
|
category: 'Layout',
|
|
85
85
|
type: 'Component',
|
|
86
86
|
imageUrl:
|
|
87
|
-
'
|
|
87
|
+
'/template-assets/light-scene-horizontal-1.png',
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
id: '7',
|
|
@@ -94,7 +94,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
94
94
|
category: 'Forms',
|
|
95
95
|
type: 'Component',
|
|
96
96
|
imageUrl:
|
|
97
|
-
'
|
|
97
|
+
'/template-assets/moody-working-horizontal-1.png',
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
id: '8',
|
|
@@ -103,7 +103,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
103
103
|
category: 'Forms',
|
|
104
104
|
type: 'Component',
|
|
105
105
|
imageUrl:
|
|
106
|
-
'
|
|
106
|
+
'/template-assets/colorful-working-horizontal-3.png',
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
109
|
id: '9',
|
|
@@ -112,7 +112,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
112
112
|
category: 'Forms',
|
|
113
113
|
type: 'Component',
|
|
114
114
|
imageUrl:
|
|
115
|
-
'
|
|
115
|
+
'/template-assets/illustrative-horizontal-1.png',
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
id: '10',
|
|
@@ -121,7 +121,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
121
121
|
category: 'Forms',
|
|
122
122
|
type: 'Component',
|
|
123
123
|
imageUrl:
|
|
124
|
-
'
|
|
124
|
+
'/template-assets/light-home-horizontal-1.png',
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
id: '11',
|
|
@@ -130,7 +130,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
130
130
|
category: 'Forms',
|
|
131
131
|
type: 'Component',
|
|
132
132
|
imageUrl:
|
|
133
|
-
'
|
|
133
|
+
'/template-assets/moody-home-horizontal-2.png',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
id: '12',
|
|
@@ -140,7 +140,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
140
140
|
category: 'Forms',
|
|
141
141
|
type: 'Component',
|
|
142
142
|
imageUrl:
|
|
143
|
-
'
|
|
143
|
+
'/template-assets/colorful-product-1.png',
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
146
|
id: '13',
|
|
@@ -150,7 +150,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
150
150
|
category: 'Navigation',
|
|
151
151
|
type: 'Component',
|
|
152
152
|
imageUrl:
|
|
153
|
-
'
|
|
153
|
+
'/template-assets/illustrative-horizontal-5.png',
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
156
|
id: '14',
|
|
@@ -159,7 +159,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
159
159
|
category: 'Navigation',
|
|
160
160
|
type: 'Pattern',
|
|
161
161
|
imageUrl:
|
|
162
|
-
'
|
|
162
|
+
'/template-assets/light-working-horizontal-1.png',
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
id: '15',
|
|
@@ -169,7 +169,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
169
169
|
category: 'Navigation',
|
|
170
170
|
type: 'Pattern',
|
|
171
171
|
imageUrl:
|
|
172
|
-
'
|
|
172
|
+
'/template-assets/moody-lifestyle-horizontal-1.png',
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
id: '16',
|
|
@@ -178,7 +178,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
178
178
|
category: 'Navigation',
|
|
179
179
|
type: 'Component',
|
|
180
180
|
imageUrl:
|
|
181
|
-
'
|
|
181
|
+
'/template-assets/colorful-home-horizontal-2.png',
|
|
182
182
|
},
|
|
183
183
|
{
|
|
184
184
|
id: '17',
|
|
@@ -188,7 +188,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
188
188
|
category: 'Navigation',
|
|
189
189
|
type: 'Component',
|
|
190
190
|
imageUrl:
|
|
191
|
-
'
|
|
191
|
+
'/template-assets/colorful-working-horizontal-1.png',
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
id: '18',
|
|
@@ -198,7 +198,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
198
198
|
category: 'Navigation',
|
|
199
199
|
type: 'Pattern',
|
|
200
200
|
imageUrl:
|
|
201
|
-
'
|
|
201
|
+
'/template-assets/light-working-horizontal-3.png',
|
|
202
202
|
},
|
|
203
203
|
{
|
|
204
204
|
id: '19',
|
|
@@ -208,7 +208,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
208
208
|
category: 'Feedback',
|
|
209
209
|
type: 'Component',
|
|
210
210
|
imageUrl:
|
|
211
|
-
'
|
|
211
|
+
'/template-assets/moody-working-horizontal-2.png',
|
|
212
212
|
},
|
|
213
213
|
{
|
|
214
214
|
id: '20',
|
|
@@ -218,7 +218,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
218
218
|
category: 'Feedback',
|
|
219
219
|
type: 'Component',
|
|
220
220
|
imageUrl:
|
|
221
|
-
'
|
|
221
|
+
'/template-assets/illustrative-horizontal-2.png',
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
id: '21',
|
|
@@ -227,7 +227,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
227
227
|
category: 'Feedback',
|
|
228
228
|
type: 'Component',
|
|
229
229
|
imageUrl:
|
|
230
|
-
'
|
|
230
|
+
'/template-assets/colorful-lifestyle-horizontal-1.png',
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
id: '22',
|
|
@@ -236,7 +236,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
236
236
|
category: 'Feedback',
|
|
237
237
|
type: 'Component',
|
|
238
238
|
imageUrl:
|
|
239
|
-
'
|
|
239
|
+
'/template-assets/light-lifestyle-horizontal-1.png',
|
|
240
240
|
},
|
|
241
241
|
{
|
|
242
242
|
id: '23',
|
|
@@ -246,7 +246,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
246
246
|
category: 'Feedback',
|
|
247
247
|
type: 'Component',
|
|
248
248
|
imageUrl:
|
|
249
|
-
'
|
|
249
|
+
'/template-assets/moody-home-horizontal-1.png',
|
|
250
250
|
},
|
|
251
251
|
{
|
|
252
252
|
id: '24',
|
|
@@ -256,7 +256,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
256
256
|
category: 'Feedback',
|
|
257
257
|
type: 'Component',
|
|
258
258
|
imageUrl:
|
|
259
|
-
'
|
|
259
|
+
'/template-assets/colorful-working-horizontal-2.png',
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
262
|
id: '25',
|
|
@@ -266,7 +266,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
266
266
|
category: 'Data',
|
|
267
267
|
type: 'Component',
|
|
268
268
|
imageUrl:
|
|
269
|
-
'
|
|
269
|
+
'/template-assets/illustrative-horizontal-4.png',
|
|
270
270
|
},
|
|
271
271
|
{
|
|
272
272
|
id: '26',
|
|
@@ -276,7 +276,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
276
276
|
category: 'Data',
|
|
277
277
|
type: 'Component',
|
|
278
278
|
imageUrl:
|
|
279
|
-
'
|
|
279
|
+
'/template-assets/light-working-horizontal-4.png',
|
|
280
280
|
},
|
|
281
281
|
{
|
|
282
282
|
id: '27',
|
|
@@ -286,7 +286,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
286
286
|
category: 'Data',
|
|
287
287
|
type: 'Utility',
|
|
288
288
|
imageUrl:
|
|
289
|
-
'
|
|
289
|
+
'/template-assets/moody-lifestyle-horizontal-2.png',
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
id: '28',
|
|
@@ -295,7 +295,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
295
295
|
category: 'Data',
|
|
296
296
|
type: 'Component',
|
|
297
297
|
imageUrl:
|
|
298
|
-
'
|
|
298
|
+
'/template-assets/moody-scene-horizontal-2.png',
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
id: '29',
|
|
@@ -305,7 +305,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
305
305
|
category: 'Data',
|
|
306
306
|
type: 'Pattern',
|
|
307
307
|
imageUrl:
|
|
308
|
-
'
|
|
308
|
+
'/template-assets/colorful-product-2.png',
|
|
309
309
|
},
|
|
310
310
|
{
|
|
311
311
|
id: '30',
|
|
@@ -315,7 +315,7 @@ const ITEMS: LibraryItem[] = [
|
|
|
315
315
|
category: 'Data',
|
|
316
316
|
type: 'Component',
|
|
317
317
|
imageUrl:
|
|
318
|
-
'
|
|
318
|
+
'/template-assets/moody-working-horizontal-3.png',
|
|
319
319
|
},
|
|
320
320
|
];
|
|
321
321
|
|