@astryxdesign/cli 0.3.0-canary.b8cfd19 → 0.3.0-canary.ccb5ca9

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 (116) 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/v0.3.0/__tests__/migrate-grid-minchildwidth-to-columns.test.mjs +82 -0
  26. package/assets/codemods/transforms/v0.3.0/__tests__/migrate-table-rowexpansion-to-tree.test.mjs +201 -0
  27. package/assets/codemods/transforms/v0.3.0/index.mjs +8 -0
  28. package/assets/codemods/transforms/v0.3.0/migrate-grid-minchildwidth-to-columns.mjs +38 -2
  29. package/assets/codemods/transforms/v0.3.0/migrate-table-rowexpansion-to-tree.mjs +214 -0
  30. package/assets/docs/browser-support.doc.mjs +6 -6
  31. package/assets/docs/icons.doc.mjs +3 -3
  32. package/assets/docs/illustrations.doc.mjs +2 -2
  33. package/assets/docs/internationalization.doc.mjs +1 -1
  34. package/assets/docs/layout.doc.dense.mjs +1 -1
  35. package/assets/docs/migration.doc.mjs +1 -1
  36. package/assets/docs/principles.doc.mjs +1 -1
  37. package/assets/docs/styling-libraries.doc.mjs +1 -1
  38. package/assets/docs/styling.doc.mjs +4 -4
  39. package/assets/docs/theme.doc.mjs +3 -3
  40. package/assets/docs/typography.doc.mjs +2 -2
  41. package/assets/templates/blocks/components/AspectRatio/AspectRatioCircleImage.tsx +1 -1
  42. package/assets/templates/blocks/components/AspectRatio/AspectRatioImageGallery.tsx +1 -1
  43. package/assets/templates/blocks/components/AspectRatio/AspectRatioShowcase.tsx +3 -3
  44. package/assets/templates/blocks/components/AspectRatio/AspectRatioSquareImage.tsx +1 -1
  45. package/assets/templates/blocks/components/AspectRatio/AspectRatioWidescreen.tsx +1 -1
  46. package/assets/templates/blocks/components/Avatar/AvatarFallbackChain.tsx +6 -6
  47. package/assets/templates/blocks/components/Avatar/AvatarGroup.tsx +5 -5
  48. package/assets/templates/blocks/components/Avatar/AvatarInteractive.tsx +2 -2
  49. package/assets/templates/blocks/components/Avatar/AvatarShowcase.tsx +4 -4
  50. package/assets/templates/blocks/components/Avatar/AvatarTooltip.tsx +4 -4
  51. package/assets/templates/blocks/components/Avatar/AvatarUserCard.tsx +3 -3
  52. package/assets/templates/blocks/components/Avatar/AvatarWithImage.tsx +4 -4
  53. package/assets/templates/blocks/components/Avatar/AvatarWithStatus.tsx +3 -3
  54. package/assets/templates/blocks/components/ChatComposerDrawer/ChatComposerDrawerAttachments.tsx +5 -5
  55. package/assets/templates/blocks/components/Lightbox/LightboxGallery.tsx +4 -4
  56. package/assets/templates/blocks/components/Lightbox/LightboxShowcase.tsx +1 -1
  57. package/assets/templates/blocks/components/Lightbox/LightboxVideo.tsx +1 -1
  58. package/assets/templates/blocks/components/Lightbox/LightboxZoom.tsx +2 -2
  59. package/assets/templates/blocks/components/MediaTheme/MediaThemeImageOverlay.tsx +1 -1
  60. package/assets/templates/blocks/components/MediaTheme/MediaThemeLightScrim.tsx +1 -1
  61. package/assets/templates/blocks/components/MediaTheme/MediaThemeShowcase.tsx +1 -1
  62. package/assets/templates/blocks/components/Overlay/OverlayBottomStrip.tsx +1 -1
  63. package/assets/templates/blocks/components/Overlay/OverlayHoverReveal.tsx +1 -1
  64. package/assets/templates/blocks/components/Overlay/OverlayShowcase.tsx +1 -1
  65. package/assets/templates/blocks/components/Table/TableRowExpansionTable.tsx +61 -58
  66. package/assets/templates/blocks/components/TopNav/TopNavMegaMenu.tsx +1 -1
  67. package/assets/templates/pages/centered-hero/page.tsx +1 -1
  68. package/assets/templates/pages/classic-gallery/page.tsx +10 -10
  69. package/assets/templates/pages/detail-page/page.tsx +5 -5
  70. package/assets/templates/pages/form-two-column/page.tsx +1 -1
  71. package/assets/templates/pages/gallery-hero/page.tsx +3 -3
  72. package/assets/templates/pages/library/page.tsx +30 -30
  73. package/assets/templates/pages/login/page.tsx +1 -2
  74. package/assets/templates/pages/login-card/page.tsx +1 -2
  75. package/assets/templates/pages/login-split/page.tsx +5 -6
  76. package/assets/templates/pages/login-sso/page.tsx +2 -3
  77. package/assets/templates/pages/mixed-gallery/page.tsx +5 -5
  78. package/assets/templates/pages/payment-form/page.tsx +3 -3
  79. package/assets/templates/pages/product-detail/page.tsx +7 -7
  80. package/assets/templates/pages/product-gallery/page.tsx +6 -6
  81. package/assets/templates/pages/shell-top-nav/page.tsx +2 -2
  82. package/assets/templates/pages/side-gallery/page.tsx +9 -9
  83. package/assets/templates/pages/table-page-chart/page.tsx +6 -6
  84. package/assets/templates/pages/theme-showcase/page.tsx +6 -6
  85. package/assets/templates/themes/neutral/neutralTheme.ts +4 -1
  86. package/authoring/codemod/codemod.doc.mjs +2 -2
  87. package/authoring/config/config.doc.mjs +1 -1
  88. package/authoring/doctypes/base/type.ts +6 -0
  89. package/authoring/doctypes/command/command.doc.mjs +2 -2
  90. package/authoring/doctypes/component/component.doc.mjs +7 -7
  91. package/authoring/doctypes/enum/enum.doc.mjs +2 -2
  92. package/authoring/doctypes/function/function.doc.mjs +3 -3
  93. package/authoring/doctypes/hook/hook.doc.mjs +3 -3
  94. package/authoring/doctypes/reference/reference.doc.mjs +3 -3
  95. package/authoring/doctypes/schema/schema.doc.mjs +1 -1
  96. package/authoring/doctypes/template/template.doc.mjs +3 -3
  97. package/clients/cli/commands/build-theme.registry.test.mjs +4 -1
  98. package/clients/cli/commands/build.doc.mjs +1 -1
  99. package/clients/cli/commands/component.doc.mjs +1 -1
  100. package/clients/cli/commands/doctor.doc.mjs +2 -2
  101. package/clients/cli/commands/layout-expand.doc.mjs +1 -1
  102. package/clients/cli/commands/layout.doc.mjs +1 -1
  103. package/clients/cli/commands/manifest.doc.mjs +3 -3
  104. package/clients/cli/commands/search.doc.mjs +1 -1
  105. package/clients/cli/commands/theme-add.doc.mjs +1 -1
  106. package/clients/cli/commands/theme-build.doc.mjs +1 -1
  107. package/clients/cli/commands/theme-list.doc.mjs +1 -1
  108. package/clients/cli/commands/theme.doc.mjs +2 -2
  109. package/clients/cli/commands/validate-integration.doc.mjs +2 -2
  110. package/foundation/agent-docs/agent-docs.mjs +3 -4
  111. package/foundation/agent-docs/agent-docs.test.mjs +8 -0
  112. package/foundation/discovery/template-adapter.d.mts +6 -3
  113. package/foundation/discovery/template-adapter.mjs +33 -13
  114. package/foundation/response/response-types.doc.mjs +7 -7
  115. package/foundation/response/response.doc.mjs +5 -5
  116. package/package.json +9 -9
@@ -106,7 +106,7 @@ function App() {
106
106
  [
107
107
  'Y2K',
108
108
  "import {y2kTheme} from '@astryxdesign/theme-y2k'",
109
- 'Playful Y2K pop; periwinkle body, holographic accents, Poppins + Crimson Text.',
109
+ 'Playful Y2K pop; periwinkle body, holographic accents, Poppins + `Crimson Text`.',
110
110
  ],
111
111
  ],
112
112
  },
@@ -510,7 +510,7 @@ import './themes/ocean.css';
510
510
  content: [
511
511
  {
512
512
  type: 'prose',
513
- text: 'Wrap different sections in separate <Theme> providers.',
513
+ text: 'Wrap different sections in separate [`<Theme>`](/components/Theme) providers.',
514
514
  },
515
515
  {
516
516
  type: 'code',
@@ -606,7 +606,7 @@ function ChartConfig() {
606
606
  },
607
607
  {
608
608
  type: 'prose',
609
- text: 'Prefer CSS variables, StyleX token imports, xstyle, or className for ordinary styling. To change the theme or mode, manage state at the app level and pass it to <Theme>.',
609
+ text: 'Prefer CSS variables, StyleX token imports, xstyle, or className for ordinary styling. To change the theme or mode, manage state at the app level and pass it to `<Theme>`.',
610
610
  },
611
611
  {
612
612
  type: 'prose',
@@ -122,7 +122,7 @@ export const docs = {
122
122
  },
123
123
  {
124
124
  type: 'prose',
125
- text: 'Display text often needs heading semantics for accessibility. Use the type prop on Heading to apply display styling while preserving the correct HTML element: <Heading level={1} type="display-1"> gives you display-1 styling with an <h1> tag, so screen readers see the correct document outline.',
125
+ text: 'Display text often needs heading semantics for accessibility. Use the type prop on Heading to apply display styling while preserving the correct HTML element: `<Heading level={1} type="display-1">` gives you display-1 styling with an `<h1>` tag, so screen readers see the correct document outline.',
126
126
  },
127
127
  ],
128
128
  },
@@ -205,7 +205,7 @@ const denseTheme = defineTheme({
205
205
  items: [
206
206
  'Use Heading for document headings and Text for everything else; they apply the full type scale automatically.',
207
207
  'Adjust typography holistically: change base and ratio in defineTheme to shift the entire ramp (e.g. { base: 16, ratio: 1.25 } for editorial, { base: 12, ratio: 1.125 } for dense UI).',
208
- 'Use display types with as="h1" (or h2/h3) when display text is a page heading; this preserves accessibility while giving you display-level sizing. Or better, use <Heading level={1} type="display-1"> which handles both semantics and styling.',
208
+ 'Use display types with as="h1" (or h2/h3) when display text is a page heading; this preserves accessibility while giving you display-level sizing. Or better, use `<Heading level={1} type="display-1">` which handles both semantics and styling.',
209
209
  'Let line-height snap to the 4px grid via the type scale; expandTypeScale computes leading automatically from base and ratio.',
210
210
  'Use the supporting type for secondary information: timestamps, helper text, metadata, captions.',
211
211
  'Use accessibilityLevel on Heading when the visual hierarchy doesn\u0027t match the document outline (e.g. sidebar or card headings).',
@@ -10,7 +10,7 @@ export default function AspectRatioCircleImage() {
10
10
  <Center width={300}>
11
11
  <AspectRatio ratio={1} shape="ellipse" 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="Circular image"
15
15
  />
16
16
  </AspectRatio>
@@ -27,7 +27,7 @@ export default function AspectRatioImageGallery() {
27
27
  {images.map(({id, alt}) => (
28
28
  <AspectRatio key={id} ratio={4 / 3} fit="cover">
29
29
  <img
30
- src="https://lookaside.facebook.com/assets/astryx/illustrative-horizontal-1.png"
30
+ src="/template-assets/illustrative-horizontal-1.png"
31
31
  alt={alt}
32
32
  style={{borderRadius: 8}}
33
33
  />
@@ -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
  />