@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.
Files changed (135) hide show
  1. package/README.md +8 -8
  2. package/api/blog/blog.doc.mjs +2 -2
  3. package/api/build/build.doc.mjs +1 -1
  4. package/api/component/component.doc.mjs +1 -1
  5. package/api/discover/discover.doc.mjs +2 -2
  6. package/api/docs/docs.doc.mjs +2 -2
  7. package/api/doctor/doctor.doc.mjs +3 -3
  8. package/api/hook/hook.doc.mjs +1 -1
  9. package/api/init/init.doc.mjs +1 -1
  10. package/api/integration/summarizeIssues.doc.mjs +1 -1
  11. package/api/integration/validateIntegration.doc.mjs +1 -1
  12. package/api/json/assertResponse.doc.mjs +2 -2
  13. package/api/json/isError.doc.mjs +1 -1
  14. package/api/json/parseResponse.doc.mjs +2 -2
  15. package/api/layout/layoutCheck.doc.mjs +1 -1
  16. package/api/layout/layoutExpand.doc.mjs +1 -1
  17. package/api/layout/layoutGrammar.doc.mjs +1 -1
  18. package/api/swizzle/swizzle.doc.mjs +1 -1
  19. package/api/template/template.test.mjs +38 -13
  20. package/api/theme/listThemes.doc.mjs +2 -2
  21. package/api/theme/themeAdd.doc.mjs +1 -1
  22. package/api/theme/themeBuild.doc.mjs +3 -3
  23. package/api/theme/themeList.doc.mjs +2 -2
  24. package/api/upgrade/upgrade.doc.mjs +1 -1
  25. package/assets/codemods/transforms/next/__tests__/next-codemods.test.mjs +92 -0
  26. package/assets/codemods/transforms/next/index.mjs +11 -1
  27. package/assets/codemods/transforms/next/rename-dropdown-menu-radio-dot-target.mjs +152 -0
  28. package/assets/codemods/transforms/v0.3.0/__tests__/migrate-grid-minchildwidth-to-columns.test.mjs +82 -0
  29. package/assets/codemods/transforms/v0.3.0/__tests__/migrate-table-rowexpansion-to-tree.test.mjs +201 -0
  30. package/assets/codemods/transforms/v0.3.0/index.mjs +8 -0
  31. package/assets/codemods/transforms/v0.3.0/migrate-grid-minchildwidth-to-columns.mjs +38 -2
  32. package/assets/codemods/transforms/v0.3.0/migrate-table-rowexpansion-to-tree.mjs +214 -0
  33. package/assets/docs/browser-support.doc.mjs +6 -6
  34. package/assets/docs/getting-started.doc.mjs +3 -3
  35. package/assets/docs/icons.doc.mjs +3 -3
  36. package/assets/docs/illustrations.doc.mjs +2 -2
  37. package/assets/docs/internationalization.doc.mjs +1 -1
  38. package/assets/docs/layout.doc.dense.mjs +1 -1
  39. package/assets/docs/migration.doc.mjs +1 -1
  40. package/assets/docs/principles.doc.mjs +1 -1
  41. package/assets/docs/styling-libraries.doc.mjs +1 -1
  42. package/assets/docs/styling.doc.mjs +4 -4
  43. package/assets/docs/theme.doc.mjs +3 -3
  44. package/assets/docs/typography.doc.mjs +2 -2
  45. package/assets/templates/blocks/components/AspectRatio/AspectRatioCircleImage.tsx +1 -1
  46. package/assets/templates/blocks/components/AspectRatio/AspectRatioImageGallery.tsx +1 -1
  47. package/assets/templates/blocks/components/AspectRatio/AspectRatioShowcase.tsx +3 -3
  48. package/assets/templates/blocks/components/AspectRatio/AspectRatioSquareImage.tsx +1 -1
  49. package/assets/templates/blocks/components/AspectRatio/AspectRatioWidescreen.tsx +1 -1
  50. package/assets/templates/blocks/components/Avatar/AvatarFallbackChain.tsx +6 -6
  51. package/assets/templates/blocks/components/Avatar/AvatarGroup.tsx +5 -5
  52. package/assets/templates/blocks/components/Avatar/AvatarInteractive.tsx +2 -2
  53. package/assets/templates/blocks/components/Avatar/AvatarShowcase.tsx +4 -4
  54. package/assets/templates/blocks/components/Avatar/AvatarTooltip.tsx +4 -4
  55. package/assets/templates/blocks/components/Avatar/AvatarUserCard.tsx +3 -3
  56. package/assets/templates/blocks/components/Avatar/AvatarWithImage.tsx +4 -4
  57. package/assets/templates/blocks/components/Avatar/AvatarWithStatus.tsx +3 -3
  58. package/assets/templates/blocks/components/ChatComposerDrawer/ChatComposerDrawerAttachments.tsx +5 -5
  59. package/assets/templates/blocks/components/Lightbox/LightboxGallery.tsx +4 -4
  60. package/assets/templates/blocks/components/Lightbox/LightboxShowcase.tsx +1 -1
  61. package/assets/templates/blocks/components/Lightbox/LightboxVideo.tsx +1 -1
  62. package/assets/templates/blocks/components/Lightbox/LightboxZoom.tsx +2 -2
  63. package/assets/templates/blocks/components/MediaTheme/MediaThemeImageOverlay.tsx +1 -1
  64. package/assets/templates/blocks/components/MediaTheme/MediaThemeLightScrim.tsx +1 -1
  65. package/assets/templates/blocks/components/MediaTheme/MediaThemeShowcase.tsx +1 -1
  66. package/assets/templates/blocks/components/Overlay/OverlayBottomStrip.tsx +1 -1
  67. package/assets/templates/blocks/components/Overlay/OverlayHoverReveal.tsx +1 -1
  68. package/assets/templates/blocks/components/Overlay/OverlayShowcase.tsx +1 -1
  69. package/assets/templates/blocks/components/Stepper/StepperHorizontal.doc.mjs +14 -0
  70. package/assets/templates/blocks/components/Stepper/StepperHorizontal.tsx +24 -0
  71. package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.doc.mjs +14 -0
  72. package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.tsx +68 -0
  73. package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.doc.mjs +14 -0
  74. package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.tsx +92 -0
  75. package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.doc.mjs +14 -0
  76. package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.tsx +41 -0
  77. package/assets/templates/blocks/components/Stepper/StepperShowcase.doc.mjs +15 -0
  78. package/assets/templates/blocks/components/Stepper/StepperShowcase.tsx +25 -0
  79. package/assets/templates/blocks/components/Stepper/StepperStatus.doc.mjs +14 -0
  80. package/assets/templates/blocks/components/Stepper/StepperStatus.tsx +50 -0
  81. package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.doc.mjs +14 -0
  82. package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.tsx +40 -0
  83. package/assets/templates/blocks/components/Table/TableRowExpansionTable.tsx +61 -58
  84. package/assets/templates/blocks/components/TextArea/TextAreaStates.tsx +1 -1
  85. package/assets/templates/blocks/components/TopNav/TopNavMegaMenu.tsx +1 -1
  86. package/assets/templates/pages/centered-hero/page.tsx +1 -1
  87. package/assets/templates/pages/classic-gallery/page.tsx +10 -10
  88. package/assets/templates/pages/detail-page/page.tsx +5 -5
  89. package/assets/templates/pages/form-two-column/page.tsx +1 -1
  90. package/assets/templates/pages/gallery-hero/page.tsx +3 -3
  91. package/assets/templates/pages/library/page.tsx +30 -30
  92. package/assets/templates/pages/login/page.tsx +1 -2
  93. package/assets/templates/pages/login-card/page.tsx +1 -2
  94. package/assets/templates/pages/login-split/page.tsx +5 -6
  95. package/assets/templates/pages/login-sso/page.tsx +2 -3
  96. package/assets/templates/pages/mixed-gallery/page.tsx +5 -5
  97. package/assets/templates/pages/payment-form/page.tsx +3 -3
  98. package/assets/templates/pages/product-detail/page.tsx +7 -7
  99. package/assets/templates/pages/product-gallery/page.tsx +6 -6
  100. package/assets/templates/pages/shell-top-nav/page.tsx +2 -2
  101. package/assets/templates/pages/side-gallery/page.tsx +9 -9
  102. package/assets/templates/pages/table-page-chart/page.tsx +6 -6
  103. package/assets/templates/pages/theme-showcase/page.tsx +6 -6
  104. package/assets/templates/themes/neutral/neutralTheme.ts +4 -1
  105. package/authoring/codemod/codemod.doc.mjs +2 -2
  106. package/authoring/config/config.doc.mjs +1 -1
  107. package/authoring/doctypes/base/type.ts +21 -0
  108. package/authoring/doctypes/command/command.doc.mjs +2 -2
  109. package/authoring/doctypes/component/component.doc.mjs +7 -7
  110. package/authoring/doctypes/enum/enum.doc.mjs +2 -2
  111. package/authoring/doctypes/function/function.doc.mjs +3 -3
  112. package/authoring/doctypes/hook/hook.doc.mjs +3 -3
  113. package/authoring/doctypes/reference/reference.doc.mjs +3 -3
  114. package/authoring/doctypes/schema/schema.doc.mjs +1 -1
  115. package/authoring/doctypes/template/template.doc.mjs +3 -3
  116. package/clients/cli/commands/build-theme.registry.test.mjs +14 -1
  117. package/clients/cli/commands/build.doc.mjs +1 -1
  118. package/clients/cli/commands/component.doc.mjs +1 -1
  119. package/clients/cli/commands/doctor.doc.mjs +2 -2
  120. package/clients/cli/commands/layout-expand.doc.mjs +1 -1
  121. package/clients/cli/commands/layout.doc.mjs +1 -1
  122. package/clients/cli/commands/manifest.doc.mjs +3 -3
  123. package/clients/cli/commands/search.doc.mjs +1 -1
  124. package/clients/cli/commands/theme-add.doc.mjs +1 -1
  125. package/clients/cli/commands/theme-build.doc.mjs +1 -1
  126. package/clients/cli/commands/theme-list.doc.mjs +1 -1
  127. package/clients/cli/commands/theme.doc.mjs +2 -2
  128. package/clients/cli/commands/validate-integration.doc.mjs +2 -2
  129. package/foundation/agent-docs/agent-docs.mjs +3 -4
  130. package/foundation/agent-docs/agent-docs.test.mjs +8 -0
  131. package/foundation/discovery/template-adapter.d.mts +6 -3
  132. package/foundation/discovery/template-adapter.mjs +33 -13
  133. package/foundation/response/response-types.doc.mjs +7 -7
  134. package/foundation/response/response.doc.mjs +5 -5
  135. 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 FileNode extends Record<string, unknown> {
16
+ interface Order extends Record<string, unknown> {
15
17
  id: string;
16
- name: string;
17
- type: 'folder' | 'file';
18
- size: string;
19
- children?: FileNode[];
18
+ customer: string;
19
+ status: string;
20
+ total: string;
21
+ items: {name: string; qty: number; price: string}[];
20
22
  }
21
23
 
22
- const fileTree: FileNode[] = [
24
+ const orders: Order[] = [
23
25
  {
24
- id: 'src',
25
- name: 'src',
26
- type: 'folder',
27
- size: '—',
28
- children: [
29
- {
30
- id: 'src/components',
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: 'package.json',
62
- name: 'package.json',
63
- type: 'file',
64
- size: '1.8 KB',
65
- children: [],
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: 'name', header: 'Name', width: proportional(2)},
71
- {key: 'type', header: 'Type', width: pixel(80)},
72
- {key: 'size', header: 'Size', width: pixel(90)},
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(['src']),
59
+ new Set(['ord-1001']),
78
60
  );
79
61
 
80
- const {data, expansionConfig} = useTableRowExpansionState<FileNode>({
81
- baseData: fileTree,
82
- getChildren: item => item.children ?? [],
83
- getRowKey: item => item.id,
62
+ const expansion = useTableRowExpansion<Order>({
84
63
  expandedKeys,
85
- setExpandedKeys,
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={data}
95
+ data={orders}
93
96
  columns={columns}
94
97
  idKey="id"
95
98
  hasHover
@@ -20,7 +20,7 @@ export default function TextAreaStates() {
20
20
  />
21
21
  <TextArea
22
22
  label="Disabled field"
23
- value="This field is read-only and cannot be edited."
23
+ value="This field is disabled and cannot be edited."
24
24
  onChange={() => {}}
25
25
  isDisabled
26
26
  />
@@ -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="https://lookaside.facebook.com/assets/astryx/light-working-horizontal-1.png"
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
- 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png';
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: 'https://lookaside.facebook.com/assets/astryx/moody-scene-horizontal-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-lifestyle-vertical-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-home-vertical-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-scene-horizontal-2.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-lifestyle-vertical-2.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-lifestyle-horizontal-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-scene-vertical-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-home-vertical-2.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-home-horizontal-1.png',
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: 'https://lookaside.facebook.com/assets/astryx/moody-scene-vertical-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-product-1.png',
68
- 'https://lookaside.facebook.com/assets/astryx/light-product-2.png',
69
- 'https://lookaside.facebook.com/assets/astryx/light-product-3.png',
70
- 'https://lookaside.facebook.com/assets/astryx/light-product-4.png',
71
- 'https://lookaside.facebook.com/assets/astryx/light-product-5.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-working-vertical-2.png';
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: 'https://lookaside.facebook.com/assets/astryx/colorful-home-horizontal-1.png',
16
+ src: '/template-assets/colorful-home-horizontal-1.png',
17
17
  alt: 'Colorful home interior with vibrant decor',
18
18
  },
19
19
  {
20
- src: 'https://lookaside.facebook.com/assets/astryx/colorful-lifestyle-horizontal-1.png',
20
+ src: '/template-assets/colorful-lifestyle-horizontal-1.png',
21
21
  alt: 'Colorful lifestyle portrait with natural lighting',
22
22
  },
23
23
  {
24
- src: 'https://lookaside.facebook.com/assets/astryx/colorful-lifestyle-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-home-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-3.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-working-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-scene-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-lifestyle-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-working-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-working-horizontal-3.png',
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
- 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-home-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-home-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-product-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-5.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-working-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-lifestyle-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-home-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-working-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-working-horizontal-3.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-working-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-lifestyle-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-lifestyle-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-home-horizontal-1.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-working-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-4.png',
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
- 'https://lookaside.facebook.com/assets/astryx/light-working-horizontal-4.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-lifestyle-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-scene-horizontal-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/colorful-product-2.png',
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
- 'https://lookaside.facebook.com/assets/astryx/moody-working-horizontal-3.png',
318
+ '/template-assets/moody-working-horizontal-3.png',
319
319
  },
320
320
  ];
321
321