@astryxdesign/cli 0.3.0-canary.c857354 → 0.3.0-canary.d52d2cb

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 (129) hide show
  1. package/api/component/_adapter.mjs +3 -0
  2. package/api/integration/validate-integration.d.mts +2 -18
  3. package/api/integration/validate-integration.mjs +16 -141
  4. package/api/template/copy/copy.d.mts +2 -2
  5. package/api/template/copy/copy.mjs +2 -2
  6. package/api/template/list/list.d.mts +2 -2
  7. package/api/template/list/list.mjs +2 -2
  8. package/api/template/show/show.d.mts +2 -2
  9. package/api/template/show/show.mjs +2 -2
  10. package/api/template/skeleton/skeleton.d.mts +3 -3
  11. package/api/template/skeleton/skeleton.mjs +3 -3
  12. package/api/template/template.d.mts +7 -7
  13. package/api/template/template.mjs +7 -7
  14. package/api/template/template.test.mjs +12 -13
  15. package/assets/codemods/transforms/v0.3.0/__tests__/migrate-grid-minchildwidth-to-columns.test.mjs +82 -0
  16. package/assets/codemods/transforms/v0.3.0/migrate-grid-minchildwidth-to-columns.mjs +38 -2
  17. package/assets/docs/layout.doc.dense.mjs +1 -1
  18. package/assets/templates/blocks/components/AspectRatio/AspectRatioCircleImage.tsx +1 -1
  19. package/assets/templates/blocks/components/AspectRatio/AspectRatioImageGallery.tsx +1 -1
  20. package/assets/templates/blocks/components/AspectRatio/AspectRatioShowcase.tsx +3 -3
  21. package/assets/templates/blocks/components/AspectRatio/AspectRatioSquareImage.tsx +1 -1
  22. package/assets/templates/blocks/components/AspectRatio/AspectRatioWidescreen.tsx +1 -1
  23. package/assets/templates/blocks/components/Avatar/AvatarFallbackChain.tsx +6 -6
  24. package/assets/templates/blocks/components/Avatar/AvatarGroup.tsx +5 -5
  25. package/assets/templates/blocks/components/Avatar/AvatarInteractive.tsx +2 -2
  26. package/assets/templates/blocks/components/Avatar/AvatarShowcase.tsx +4 -4
  27. package/assets/templates/blocks/components/Avatar/AvatarTooltip.tsx +4 -4
  28. package/assets/templates/blocks/components/Avatar/AvatarUserCard.tsx +3 -3
  29. package/assets/templates/blocks/components/Avatar/AvatarWithImage.tsx +4 -4
  30. package/assets/templates/blocks/components/Avatar/AvatarWithStatus.tsx +3 -3
  31. package/assets/templates/blocks/components/ChatComposerDrawer/ChatComposerDrawerAttachments.tsx +5 -5
  32. package/assets/templates/blocks/components/Lightbox/LightboxGallery.tsx +4 -4
  33. package/assets/templates/blocks/components/Lightbox/LightboxShowcase.tsx +1 -1
  34. package/assets/templates/blocks/components/Lightbox/LightboxVideo.tsx +1 -1
  35. package/assets/templates/blocks/components/Lightbox/LightboxZoom.tsx +2 -2
  36. package/assets/templates/blocks/components/MediaTheme/MediaThemeImageOverlay.tsx +1 -1
  37. package/assets/templates/blocks/components/MediaTheme/MediaThemeLightScrim.tsx +1 -1
  38. package/assets/templates/blocks/components/MediaTheme/MediaThemeShowcase.tsx +1 -1
  39. package/assets/templates/blocks/components/Overlay/OverlayBottomStrip.tsx +1 -1
  40. package/assets/templates/blocks/components/Overlay/OverlayHoverReveal.tsx +1 -1
  41. package/assets/templates/blocks/components/Overlay/OverlayShowcase.tsx +1 -1
  42. package/assets/templates/blocks/components/TopNav/TopNavMegaMenu.tsx +1 -1
  43. package/assets/templates/pages/centered-hero/page.tsx +1 -1
  44. package/assets/templates/pages/classic-gallery/page.tsx +10 -10
  45. package/assets/templates/pages/detail-page/page.tsx +5 -5
  46. package/assets/templates/pages/form-two-column/page.tsx +1 -1
  47. package/assets/templates/pages/gallery-hero/page.tsx +3 -3
  48. package/assets/templates/pages/library/page.tsx +30 -30
  49. package/assets/templates/pages/login/page.tsx +1 -2
  50. package/assets/templates/pages/login-card/page.tsx +1 -2
  51. package/assets/templates/pages/login-split/page.tsx +5 -6
  52. package/assets/templates/pages/login-sso/page.tsx +2 -3
  53. package/assets/templates/pages/mixed-gallery/page.tsx +5 -5
  54. package/assets/templates/pages/payment-form/page.tsx +3 -3
  55. package/assets/templates/pages/product-detail/page.tsx +7 -7
  56. package/assets/templates/pages/product-gallery/page.tsx +6 -6
  57. package/assets/templates/pages/shell-top-nav/page.tsx +2 -2
  58. package/assets/templates/pages/side-gallery/page.tsx +9 -9
  59. package/assets/templates/pages/table-page-chart/page.tsx +6 -6
  60. package/assets/templates/pages/theme-showcase/page.tsx +6 -6
  61. package/authoring/_shared/errors.d.mts +21 -0
  62. package/authoring/codemod/codemod.doc.d.mts +11 -0
  63. package/authoring/codemod/parse.d.mts +48 -2
  64. package/authoring/config/config.doc.d.mts +10 -0
  65. package/authoring/config/parse.d.mts +54 -2
  66. package/authoring/doctypes/_schema.d.mts +248 -0
  67. package/authoring/doctypes/base/type.ts +6 -0
  68. package/authoring/doctypes/command/command.doc.d.mts +12 -0
  69. package/authoring/doctypes/command/parse.d.mts +11 -2
  70. package/authoring/doctypes/component/component.doc.d.mts +11 -0
  71. package/authoring/doctypes/component/parse.d.mts +11 -2
  72. package/authoring/doctypes/enum/enum.doc.d.mts +11 -0
  73. package/authoring/doctypes/enum/parse.d.mts +11 -2
  74. package/authoring/doctypes/function/function.doc.d.mts +11 -0
  75. package/authoring/doctypes/function/parse.d.mts +11 -2
  76. package/authoring/doctypes/function/parse.mjs +24 -4
  77. package/authoring/doctypes/hook/hook.doc.d.mts +10 -0
  78. package/authoring/doctypes/hook/parse.d.mts +11 -2
  79. package/authoring/doctypes/legacy.d.mts +13 -2
  80. package/authoring/doctypes/parse.d.mts +29 -20
  81. package/authoring/doctypes/reference/parse.d.mts +11 -2
  82. package/authoring/doctypes/reference/reference.doc.d.mts +11 -0
  83. package/authoring/doctypes/schema/parse.d.mts +11 -2
  84. package/authoring/doctypes/schema/schema.doc.d.mts +11 -0
  85. package/authoring/doctypes/template/parse.d.mts +12 -2
  86. package/authoring/doctypes/template/template.doc.d.mts +11 -0
  87. package/authoring/index.d.mts +16 -0
  88. package/authoring/integration/integration.doc.d.mts +10 -0
  89. package/authoring/integration/parse.d.mts +30 -2
  90. package/clients/cli/commands/hook.doc.mjs +1 -1
  91. package/clients/cli/lib/manifest.mjs +1 -1
  92. package/foundation/agent-docs/agent-docs.d.mts +197 -0
  93. package/foundation/agent-docs/agent-docs.mjs +3 -4
  94. package/foundation/agent-docs/agent-docs.test.mjs +8 -0
  95. package/foundation/config/config-cache.d.mts +53 -0
  96. package/foundation/config/project.d.mts +154 -0
  97. package/foundation/config/project.mjs +3 -3
  98. package/foundation/discovery/component-discovery.d.mts +140 -0
  99. package/foundation/discovery/component-loader.d.mts +50 -0
  100. package/foundation/discovery/hook-discovery.d.mts +28 -0
  101. package/{api/template/_adapter.d.mts → foundation/discovery/template-adapter.d.mts} +1 -1
  102. package/{api/template/_adapter.mjs → foundation/discovery/template-adapter.mjs} +28 -19
  103. package/foundation/env/node-version.d.mts +52 -0
  104. package/foundation/env/package-manager.d.mts +84 -0
  105. package/foundation/env/semver.d.mts +56 -0
  106. package/foundation/fs/module-loader.d.mts +36 -0
  107. package/foundation/fs/path-safety.d.mts +74 -0
  108. package/foundation/fs/paths.d.mts +35 -0
  109. package/foundation/integrations/integration-warnings.d.mts +17 -0
  110. package/foundation/integrations/integration-warnings.mjs +1 -1
  111. package/foundation/integrations/integrations.d.mts +80 -0
  112. package/foundation/integrations/validate-contributions.d.mts +22 -0
  113. package/foundation/integrations/validate-contributions.mjs +162 -0
  114. package/foundation/response/error-codes.d.mts +103 -0
  115. package/foundation/response/error-codes.doc.d.mts +11 -0
  116. package/foundation/response/json.d.mts +75 -0
  117. package/foundation/response/response-types.doc.d.mts +12 -0
  118. package/foundation/response/response.doc.d.mts +11 -0
  119. package/foundation/text/levenshtein.d.mts +21 -0
  120. package/foundation/text/string-utils.d.mts +43 -0
  121. package/foundation/xle/browser.d.mts +89 -0
  122. package/foundation/xle/expand.d.mts +23 -0
  123. package/foundation/xle/parse.d.mts +72 -0
  124. package/foundation/xle/print.d.mts +7 -0
  125. package/foundation/xle/registry-core.d.mts +168 -0
  126. package/foundation/xle/registry.d.mts +19 -0
  127. package/foundation/xle/splice.d.mts +42 -0
  128. package/foundation/xle/validate.d.mts +94 -0
  129. package/package.json +9 -9
@@ -10,19 +10,19 @@ const items = [
10
10
  {
11
11
  ratio: 1,
12
12
  label: '1 : 1',
13
- src: 'https://lookaside.facebook.com/assets/astryx/light-home-square-1.png',
13
+ src: '/template-assets/light-home-square-1.png',
14
14
  alt: '1:1 square',
15
15
  },
16
16
  {
17
17
  ratio: 4 / 3,
18
18
  label: '4 : 3',
19
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-1.png',
19
+ src: '/template-assets/illustrative-horizontal-1.png',
20
20
  alt: '4:3 standard',
21
21
  },
22
22
  {
23
23
  ratio: 16 / 9,
24
24
  label: '16 : 9',
25
- src: 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
25
+ src: '/template-assets/light-scene-horizontal-1.png',
26
26
  alt: '16:9 widescreen',
27
27
  },
28
28
  ];
@@ -10,7 +10,7 @@ export default function AspectRatioSquareImage() {
10
10
  <Center width={300}>
11
11
  <AspectRatio ratio={1} fit="cover">
12
12
  <img
13
- src="https://lookaside.facebook.com/assets/astryx/light-home-square-1.png"
13
+ src="/template-assets/light-home-square-1.png"
14
14
  alt="1:1 square"
15
15
  />
16
16
  </AspectRatio>
@@ -10,7 +10,7 @@ export default function AspectRatioWidescreen() {
10
10
  <Center width={600}>
11
11
  <AspectRatio ratio={16 / 9} fit="cover">
12
12
  <img
13
- src="https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png"
13
+ src="/template-assets/light-scene-horizontal-1.png"
14
14
  alt="16:9 widescreen"
15
15
  />
16
16
  </AspectRatio>
@@ -11,7 +11,7 @@ export default function AvatarFallbackChain() {
11
11
  <VStack gap={4}>
12
12
  <HStack gap={3} vAlign="center">
13
13
  <Avatar
14
- src="https://lookaside.facebook.com/assets/astryx/DATA-Daniela-Gimenez.png"
14
+ src="/template-assets/DATA-Daniela-Gimenez.png"
15
15
  name="Daniela Gimenez"
16
16
  size="lg"
17
17
  />
@@ -19,8 +19,8 @@ export default function AvatarFallbackChain() {
19
19
  </HStack>
20
20
  <HStack gap={3} vAlign="center">
21
21
  <Avatar
22
- src="https://lookaside.facebook.com/assets/astryx/does-not-exist-primary.jpg"
23
- fallbackSrc="https://lookaside.facebook.com/assets/astryx/DATA-Ami-Pena.png"
22
+ src="/template-assets/does-not-exist-primary.jpg"
23
+ fallbackSrc="/template-assets/DATA-Ami-Pena.png"
24
24
  name="Invalid User"
25
25
  size="lg"
26
26
  />
@@ -28,8 +28,8 @@ export default function AvatarFallbackChain() {
28
28
  </HStack>
29
29
  <HStack gap={3} vAlign="center">
30
30
  <Avatar
31
- src="https://lookaside.facebook.com/assets/astryx/does-not-exist-primary.jpg"
32
- fallbackSrc="https://lookaside.facebook.com/assets/astryx/does-not-exist-fallback.jpg"
31
+ src="/template-assets/does-not-exist-primary.jpg"
32
+ fallbackSrc="/template-assets/does-not-exist-fallback.jpg"
33
33
  name="Test User"
34
34
  size="lg"
35
35
  />
@@ -37,7 +37,7 @@ export default function AvatarFallbackChain() {
37
37
  </HStack>
38
38
  <HStack gap={3} vAlign="center">
39
39
  <Avatar
40
- src="https://lookaside.facebook.com/assets/astryx/does-not-exist-primary.jpg"
40
+ src="/template-assets/does-not-exist-primary.jpg"
41
41
  size="lg"
42
42
  />
43
43
  <Text type="supporting">All invalid, no name</Text>
@@ -10,23 +10,23 @@ import {Text} from '@astryxdesign/core/Text';
10
10
  const USERS = [
11
11
  {
12
12
  name: 'Ami Pena',
13
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Ami-Pena.png',
13
+ src: '/template-assets/DATA-Ami-Pena.png',
14
14
  },
15
15
  {
16
16
  name: 'Drew Young',
17
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Drew-Young.png',
17
+ src: '/template-assets/DATA-Drew-Young.png',
18
18
  },
19
19
  {
20
20
  name: 'Gabriela Fernandez',
21
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Gabriela-Fernandez.png',
21
+ src: '/template-assets/DATA-Gabriela-Fernandez.png',
22
22
  },
23
23
  {
24
24
  name: 'Jihoo Song',
25
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Jihoo-Song.png',
25
+ src: '/template-assets/DATA-Jihoo-Song.png',
26
26
  },
27
27
  {
28
28
  name: 'Nam Tran',
29
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Nam-Tran.png',
29
+ src: '/template-assets/DATA-Nam-Tran.png',
30
30
  },
31
31
  ];
32
32
 
@@ -11,7 +11,7 @@ export default function AvatarInteractive() {
11
11
  <Stack direction="horizontal" gap={6} vAlign="start">
12
12
  <Stack direction="vertical" gap={2} hAlign="center">
13
13
  <Avatar
14
- src="https://lookaside.facebook.com/assets/astryx/DATA-Itai-Jordaan.png"
14
+ src="/template-assets/DATA-Itai-Jordaan.png"
15
15
  name="Itai Jordaan"
16
16
  size="xl"
17
17
  href="https://example.com/people/itai-jordaan"
@@ -22,7 +22,7 @@ export default function AvatarInteractive() {
22
22
  </Stack>
23
23
  <Stack direction="vertical" gap={2} hAlign="center">
24
24
  <Avatar
25
- src="https://lookaside.facebook.com/assets/astryx/DATA-Margot-Schroder.png"
25
+ src="/template-assets/DATA-Margot-Schroder.png"
26
26
  name="Margot Schroder"
27
27
  size="xl"
28
28
  onClick={() => window.alert('Opening Margot Schroder’s profile')}
@@ -9,23 +9,23 @@ export default function AvatarShowcase() {
9
9
  return (
10
10
  <Stack direction="horizontal" gap={4} vAlign="center">
11
11
  <Avatar
12
- src="https://lookaside.facebook.com/assets/astryx/DATA-Ana-Thomas.png"
12
+ src="/template-assets/DATA-Ana-Thomas.png"
13
13
  name="Ana Thomas"
14
14
  size="xl"
15
15
  status={<AvatarStatusDot variant="success" label="Online" />}
16
16
  />
17
17
  <Avatar
18
- src="https://lookaside.facebook.com/assets/astryx/DATA-Drew-Young.png"
18
+ src="/template-assets/DATA-Drew-Young.png"
19
19
  name="Drew Young"
20
20
  size="xl"
21
21
  />
22
22
  <Avatar
23
- src="https://lookaside.facebook.com/assets/astryx/DATA-Jihoo-Song.png"
23
+ src="/template-assets/DATA-Jihoo-Song.png"
24
24
  name="Jihoo Song"
25
25
  size="xl"
26
26
  />
27
27
  <Avatar
28
- src="https://lookaside.facebook.com/assets/astryx/DATA-Nam-Tran.png"
28
+ src="/template-assets/DATA-Nam-Tran.png"
29
29
  name="Nam Tran"
30
30
  size="xl"
31
31
  status={<AvatarStatusDot variant="error" label="Busy" />}
@@ -15,17 +15,17 @@ export default function AvatarTooltip() {
15
15
  </Text>
16
16
  <Stack direction="horizontal" gap={4} vAlign="center">
17
17
  <Avatar
18
- src="https://lookaside.facebook.com/assets/astryx/DATA-Ana-Thomas.png"
18
+ src="/template-assets/DATA-Ana-Thomas.png"
19
19
  name="Ana Thomas"
20
20
  size="xl"
21
21
  />
22
22
  <Avatar
23
- src="https://lookaside.facebook.com/assets/astryx/DATA-Drew-Young.png"
23
+ src="/template-assets/DATA-Drew-Young.png"
24
24
  name="Drew Young"
25
25
  size="xl"
26
26
  />
27
27
  <Avatar
28
- src="https://lookaside.facebook.com/assets/astryx/DATA-Jihoo-Song.png"
28
+ src="/template-assets/DATA-Jihoo-Song.png"
29
29
  name="Jihoo Song"
30
30
  size="xl"
31
31
  />
@@ -36,7 +36,7 @@ export default function AvatarTooltip() {
36
36
  Custom tooltip text
37
37
  </Text>
38
38
  <Avatar
39
- src="https://lookaside.facebook.com/assets/astryx/DATA-Itai-Jordaan.png"
39
+ src="/template-assets/DATA-Itai-Jordaan.png"
40
40
  name="Itai Jordaan"
41
41
  size="xl"
42
42
  tooltip="Itai Jordaan · Engineering Lead"
@@ -9,19 +9,19 @@ import {Text} from '@astryxdesign/core/Text';
9
9
  const USERS = [
10
10
  {
11
11
  name: 'Itai Jordaan',
12
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Itai-Jordaan.png',
12
+ src: '/template-assets/DATA-Itai-Jordaan.png',
13
13
  role: 'Engineering Lead',
14
14
  variant: 'success' as const,
15
15
  },
16
16
  {
17
17
  name: 'Margot Schroder',
18
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Margot-Schroder.png',
18
+ src: '/template-assets/DATA-Margot-Schroder.png',
19
19
  role: 'Product Designer',
20
20
  variant: 'neutral' as const,
21
21
  },
22
22
  {
23
23
  name: 'Daniela Gimenez',
24
- src: 'https://lookaside.facebook.com/assets/astryx/DATA-Daniela-Gimenez.png',
24
+ src: '/template-assets/DATA-Daniela-Gimenez.png',
25
25
  role: 'Engineering Manager',
26
26
  variant: 'error' as const,
27
27
  },
@@ -9,22 +9,22 @@ export default function AvatarWithImage() {
9
9
  return (
10
10
  <Stack direction="horizontal" gap={4} vAlign="center">
11
11
  <Avatar
12
- src="https://lookaside.facebook.com/assets/astryx/DATA-Ami-Pena.png"
12
+ src="/template-assets/DATA-Ami-Pena.png"
13
13
  name="Ami Pena"
14
14
  size="xsm"
15
15
  />
16
16
  <Avatar
17
- src="https://lookaside.facebook.com/assets/astryx/DATA-Ana-Thomas.png"
17
+ src="/template-assets/DATA-Ana-Thomas.png"
18
18
  name="Ana Thomas"
19
19
  size="md"
20
20
  />
21
21
  <Avatar
22
- src="https://lookaside.facebook.com/assets/astryx/DATA-Daniela-Gimenez.png"
22
+ src="/template-assets/DATA-Daniela-Gimenez.png"
23
23
  name="Daniela Gimenez"
24
24
  size="lg"
25
25
  />
26
26
  <Avatar
27
- src="https://lookaside.facebook.com/assets/astryx/DATA-Gabriela-Fernandez.png"
27
+ src="/template-assets/DATA-Gabriela-Fernandez.png"
28
28
  name="Gabriela Fernandez"
29
29
  size="xl"
30
30
  />
@@ -9,19 +9,19 @@ export default function AvatarWithStatus() {
9
9
  return (
10
10
  <Stack direction="horizontal" gap={4} vAlign="center">
11
11
  <Avatar
12
- src="https://lookaside.facebook.com/assets/astryx/DATA-Itai-Jordaan.png"
12
+ src="/template-assets/DATA-Itai-Jordaan.png"
13
13
  name="Itai Jordaan"
14
14
  size="xl"
15
15
  status={<AvatarStatusDot variant="success" label="Online" />}
16
16
  />
17
17
  <Avatar
18
- src="https://lookaside.facebook.com/assets/astryx/DATA-Margot-Schroder.png"
18
+ src="/template-assets/DATA-Margot-Schroder.png"
19
19
  name="Margot Schroder"
20
20
  size="xl"
21
21
  status={<AvatarStatusDot variant="neutral" label="Offline" />}
22
22
  />
23
23
  <Avatar
24
- src="https://lookaside.facebook.com/assets/astryx/DATA-Pablo-Morales.png"
24
+ src="/template-assets/DATA-Pablo-Morales.png"
25
25
  name="Pablo Morales"
26
26
  size="xl"
27
27
  status={<AvatarStatusDot variant="error" label="Busy" />}
@@ -11,31 +11,31 @@ import {Stack} from '@astryxdesign/core/Layout';
11
11
  const IMAGE_ATTACHMENTS = [
12
12
  {
13
13
  id: '1',
14
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-1.png',
14
+ src: '/template-assets/illustrative-vertical-1.png',
15
15
  alt: 'River through a valley',
16
16
  label: 'valley.jpg',
17
17
  },
18
18
  {
19
19
  id: '2',
20
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-2.png',
20
+ src: '/template-assets/illustrative-vertical-2.png',
21
21
  alt: 'Foggy mountain peak',
22
22
  label: 'mountain.jpg',
23
23
  },
24
24
  {
25
25
  id: '3',
26
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-3.png',
26
+ src: '/template-assets/illustrative-vertical-3.png',
27
27
  alt: 'Golden retriever puppy',
28
28
  label: 'puppy.jpg',
29
29
  },
30
30
  {
31
31
  id: '4',
32
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-4.png',
32
+ src: '/template-assets/illustrative-vertical-4.png',
33
33
  alt: 'Bridge at sunset',
34
34
  label: 'bridge.jpg',
35
35
  },
36
36
  {
37
37
  id: '5',
38
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-5.png',
38
+ src: '/template-assets/illustrative-vertical-5.png',
39
39
  alt: 'Lakeside at dusk',
40
40
  label: 'lakeside.jpg',
41
41
  },
@@ -8,23 +8,23 @@ import {Thumbnail} from '@astryxdesign/core/Thumbnail';
8
8
 
9
9
  const PHOTOS = [
10
10
  {
11
- src: 'https://lookaside.facebook.com/assets/astryx/Neutral-Backpack.png',
11
+ src: '/template-assets/Neutral-Backpack.png',
12
12
  alt: 'Backpack',
13
13
  caption: 'A backpack displayed on a neutral background.',
14
14
  },
15
15
  {
16
- src: 'https://lookaside.facebook.com/assets/astryx/building.png',
16
+ src: '/template-assets/building.png',
17
17
  alt: 'Modern building',
18
18
  caption: 'A modern building with a contemporary architectural design.',
19
19
  },
20
20
  {
21
- src: 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
21
+ src: '/template-assets/light-scene-horizontal-1.png',
22
22
  alt: 'Coastal shoreline with ocean waves',
23
23
  caption:
24
24
  'A scenic coastline with waves rolling onto a sandy beach beneath a clear sky.',
25
25
  },
26
26
  {
27
- src: 'https://lookaside.facebook.com/assets/astryx/illustrative-vertical-1.png',
27
+ src: '/template-assets/illustrative-vertical-1.png',
28
28
  alt: 'Illustrated lakeside landscape at sunset',
29
29
  caption:
30
30
  'A stylized landscape illustration featuring pink clouds reflected over a calm lake at sunset.',
@@ -12,7 +12,7 @@ export default function LightboxShowcase() {
12
12
  isOpen={isOpen}
13
13
  onOpenChange={setIsOpen}
14
14
  media={{
15
- src: 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
15
+ src: '/template-assets/light-scene-horizontal-1.png',
16
16
  alt: 'Coastal shoreline with ocean waves',
17
17
  caption:
18
18
  'A scenic coastline with waves rolling onto a sandy beach beneath a clear sky.',
@@ -16,7 +16,7 @@ export default function LightboxVideo() {
16
16
  isOpen={isOpen}
17
17
  onOpenChange={setIsOpen}
18
18
  media={{
19
- src: 'https://lookaside.facebook.com/assets/?set=astryx&name=Nature-1&density=1',
19
+ src: '/template-assets/Nature-1.mp4',
20
20
  alt: 'Flower blooming in time-lapse',
21
21
  type: 'video',
22
22
  caption: 'A flower blooming in time-lapse',
@@ -12,7 +12,7 @@ export default function LightboxZoom() {
12
12
  return (
13
13
  <>
14
14
  <Thumbnail
15
- src="https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png"
15
+ src="/template-assets/light-scene-horizontal-1.png"
16
16
  alt="Coastal shoreline with ocean waves"
17
17
  label="Coastal shoreline with ocean waves"
18
18
  onClick={() => setIsOpen(true)}
@@ -21,7 +21,7 @@ export default function LightboxZoom() {
21
21
  isOpen={isOpen}
22
22
  onOpenChange={setIsOpen}
23
23
  media={{
24
- src: 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png',
24
+ src: '/template-assets/light-scene-horizontal-1.png',
25
25
  alt: 'Coastal shoreline with ocean waves',
26
26
  caption:
27
27
  'A scenic coastline. Double-click to zoom in and drag to pan.',
@@ -10,7 +10,7 @@ import {Stack} from '@astryxdesign/core/Layout';
10
10
  import {Text} from '@astryxdesign/core/Text';
11
11
 
12
12
  const LANDSCAPE_IMAGE_URL =
13
- 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png';
13
+ '/template-assets/light-scene-horizontal-1.png';
14
14
 
15
15
  export default function MediaThemeImageOverlay() {
16
16
  return (
@@ -10,7 +10,7 @@ import {Stack} from '@astryxdesign/core/Layout';
10
10
  import {Text} from '@astryxdesign/core/Text';
11
11
 
12
12
  const BRIGHT_ROOM_IMAGE_URL =
13
- 'https://lookaside.facebook.com/assets/astryx/light-home-square-1.png';
13
+ '/template-assets/light-home-square-1.png';
14
14
 
15
15
  export default function MediaThemeLightScrim() {
16
16
  return (
@@ -11,7 +11,7 @@ import {Badge} from '@astryxdesign/core/Badge';
11
11
  import {Icon} from '@astryxdesign/core/Icon';
12
12
 
13
13
  const SHOWCASE_IMAGE_URL =
14
- 'https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png';
14
+ '/template-assets/light-scene-horizontal-1.png';
15
15
 
16
16
  export default function MediaThemeShowcase() {
17
17
  return (
@@ -33,7 +33,7 @@ export default function OverlayBottomStrip() {
33
33
  overflow: 'clip',
34
34
  }}>
35
35
  <img
36
- src="https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-1.png"
36
+ src="/template-assets/illustrative-horizontal-1.png"
37
37
  alt="Product highlight preview"
38
38
  style={{width: '100%', height: '100%', objectFit: 'cover'}}
39
39
  />
@@ -28,7 +28,7 @@ export default function OverlayHoverReveal() {
28
28
  content={<Button label="Quick view" variant="secondary" size="sm" />}>
29
29
  <AspectRatio ratio={16 / 9} style={frame}>
30
30
  <img
31
- src="https://lookaside.facebook.com/assets/astryx/light-working-horizontal-1.png"
31
+ src="/template-assets/light-working-horizontal-1.png"
32
32
  alt="Workspace preview"
33
33
  style={image}
34
34
  />
@@ -29,7 +29,7 @@ export default function OverlayShowcase() {
29
29
  overflow: 'clip',
30
30
  }}>
31
31
  <img
32
- src="https://lookaside.facebook.com/assets/astryx/light-scene-horizontal-1.png"
32
+ src="/template-assets/light-scene-horizontal-1.png"
33
33
  alt="Abstract landscape"
34
34
  style={{width: '100%', height: '100%', objectFit: 'cover'}}
35
35
  />
@@ -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
  ];