@astryxdesign/cli 0.1.2-canary.deb5aa0 → 0.1.2-canary.df46db7
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/docs/layout.doc.dense.mjs +90 -0
- package/docs/layout.doc.mjs +160 -0
- package/docs/principles.doc.dense.mjs +2 -2
- package/docs/principles.doc.mjs +4 -0
- package/docs/principles.doc.zh.mjs +2 -2
- package/package.json +7 -7
- package/src/api/blog.mjs +192 -0
- package/src/api/blog.test.mjs +144 -0
- package/src/api/index.mjs +1 -0
- package/src/commands/agent-docs.mjs +3 -0
- package/src/commands/blog.mjs +60 -0
- package/src/commands/build-theme.mjs +117 -0
- package/src/commands/build-theme.watch.test.mjs +157 -0
- package/src/index.mjs +1 -0
- package/src/lib/error-codes.mjs +8 -0
- package/src/lib/site.mjs +20 -0
- package/templates/blocks/components/AvatarStatusDot/AvatarStatusDotVariants.doc.mjs +14 -0
- package/templates/blocks/components/AvatarStatusDot/AvatarStatusDotVariants.tsx +28 -0
- package/templates/blocks/components/Blockquote/BlockquoteTestimonials.doc.mjs +14 -0
- package/templates/blocks/components/Blockquote/BlockquoteTestimonials.tsx +34 -0
- package/templates/blocks/components/Blockquote/BlockquoteWithCite.doc.mjs +14 -0
- package/templates/blocks/components/Blockquote/BlockquoteWithCite.tsx +21 -0
- package/templates/blocks/components/BreadcrumbItem/BreadcrumbItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/BreadcrumbItem/BreadcrumbItemBasic.tsx +15 -0
- package/templates/blocks/components/ButtonGroup/ButtonGroupBasic.doc.mjs +14 -0
- package/templates/blocks/components/ButtonGroup/ButtonGroupBasic.tsx +16 -0
- package/templates/blocks/components/ChatDictationButton/ChatDictationButtonBasic.doc.mjs +19 -0
- package/templates/blocks/components/ChatDictationButton/ChatDictationButtonBasic.tsx +34 -0
- package/templates/blocks/components/CheckboxListItem/CheckboxListItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/CheckboxListItem/CheckboxListItemBasic.tsx +30 -0
- package/templates/blocks/components/CollapsibleGroup/CollapsibleGroupAccordion.doc.mjs +14 -0
- package/templates/blocks/components/CollapsibleGroup/CollapsibleGroupAccordion.tsx +31 -0
- package/templates/blocks/components/CommandPaletteEmpty/CommandPaletteEmptyBasic.doc.mjs +14 -0
- package/templates/blocks/components/CommandPaletteEmpty/CommandPaletteEmptyBasic.tsx +26 -0
- package/templates/blocks/components/CommandPaletteFooter/CommandPaletteFooterBasic.doc.mjs +14 -0
- package/templates/blocks/components/CommandPaletteFooter/CommandPaletteFooterBasic.tsx +32 -0
- package/templates/blocks/components/CommandPaletteGroup/CommandPaletteGroupBasic.doc.mjs +18 -0
- package/templates/blocks/components/CommandPaletteGroup/CommandPaletteGroupBasic.tsx +32 -0
- package/templates/blocks/components/CommandPaletteItem/CommandPaletteItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/CommandPaletteItem/CommandPaletteItemBasic.tsx +27 -0
- package/templates/blocks/components/ContextMenu/ContextMenuBasic.doc.mjs +14 -0
- package/templates/blocks/components/ContextMenu/ContextMenuBasic.tsx +32 -0
- package/templates/blocks/components/DialogHeader/DialogHeaderBasic.doc.mjs +14 -0
- package/templates/blocks/components/DialogHeader/DialogHeaderBasic.tsx +30 -0
- package/templates/blocks/components/DropdownMenu/DropdownMenuShowcase.tsx +0 -5
- package/templates/blocks/components/DropdownMenuItem/DropdownMenuItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/DropdownMenuItem/DropdownMenuItemBasic.tsx +27 -0
- package/templates/blocks/components/DropdownMenuItem/DropdownMenuItemShowcase.tsx +1 -4
- package/templates/blocks/components/FieldLabel/FieldLabelBasic.doc.mjs +14 -0
- package/templates/blocks/components/FieldLabel/FieldLabelBasic.tsx +20 -0
- package/templates/blocks/components/FieldStatus/FieldStatusBasic.doc.mjs +14 -0
- package/templates/blocks/components/FieldStatus/FieldStatusBasic.tsx +23 -0
- package/templates/blocks/components/FileInput/FileInputBasic.doc.mjs +14 -0
- package/templates/blocks/components/FileInput/FileInputBasic.tsx +22 -0
- package/templates/blocks/components/GridSpan/GridSpanColumns.doc.mjs +14 -0
- package/templates/blocks/components/GridSpan/GridSpanColumns.tsx +38 -0
- package/templates/blocks/components/HStack/HStackBasic.doc.mjs +14 -0
- package/templates/blocks/components/HStack/HStackBasic.tsx +16 -0
- package/templates/blocks/components/InputGroup/InputGroupBasic.doc.mjs +14 -0
- package/templates/blocks/components/InputGroup/InputGroupBasic.tsx +27 -0
- package/templates/blocks/components/LayoutContent/LayoutContentBasic.doc.mjs +23 -0
- package/templates/blocks/components/LayoutContent/LayoutContentBasic.tsx +40 -0
- package/templates/blocks/components/LayoutFooter/LayoutFooterActions.doc.mjs +22 -0
- package/templates/blocks/components/LayoutFooter/LayoutFooterActions.tsx +41 -0
- package/templates/blocks/components/LayoutHeader/LayoutHeaderWithActions.doc.mjs +23 -0
- package/templates/blocks/components/LayoutHeader/LayoutHeaderWithActions.tsx +40 -0
- package/templates/blocks/components/LayoutPanel/LayoutPanelNavigation.doc.mjs +22 -0
- package/templates/blocks/components/LayoutPanel/LayoutPanelNavigation.tsx +37 -0
- package/templates/blocks/components/Lightbox/LightboxGallery.doc.mjs +14 -0
- package/templates/blocks/components/Lightbox/LightboxGallery.tsx +53 -0
- package/templates/blocks/components/Lightbox/LightboxShowcase.tsx +4 -3
- package/templates/blocks/components/Lightbox/LightboxVideo.doc.mjs +14 -0
- package/templates/blocks/components/Lightbox/LightboxVideo.tsx +27 -0
- package/templates/blocks/components/Lightbox/LightboxZoom.doc.mjs +14 -0
- package/templates/blocks/components/Lightbox/LightboxZoom.tsx +33 -0
- package/templates/blocks/components/MetadataListItem/MetadataListItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/MetadataListItem/MetadataListItemBasic.tsx +19 -0
- package/templates/blocks/components/MobileNavToggle/MobileNavToggleBasic.doc.mjs +23 -0
- package/templates/blocks/components/MobileNavToggle/MobileNavToggleBasic.tsx +42 -0
- package/templates/blocks/components/MoreMenu/MoreMenuShowcase.tsx +0 -5
- package/templates/blocks/components/NavIcon/NavIconBasic.doc.mjs +14 -0
- package/templates/blocks/components/NavIcon/NavIconBasic.tsx +16 -0
- package/templates/blocks/components/RadioListItem/RadioListItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/RadioListItem/RadioListItemBasic.tsx +30 -0
- package/templates/blocks/components/Resizable/ResizableSidebar.doc.mjs +25 -0
- package/templates/blocks/components/Resizable/ResizableSidebar.tsx +67 -0
- package/templates/blocks/components/SegmentedControlItem/SegmentedControlItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/SegmentedControlItem/SegmentedControlItemBasic.tsx +21 -0
- package/templates/blocks/components/SelectorOption/SelectorOptionBasic.doc.mjs +14 -0
- package/templates/blocks/components/SelectorOption/SelectorOptionBasic.tsx +39 -0
- package/templates/blocks/components/SideNavCollapseButton/SideNavCollapseButtonBasic.doc.mjs +14 -0
- package/templates/blocks/components/SideNavCollapseButton/SideNavCollapseButtonBasic.tsx +55 -0
- package/templates/blocks/components/SideNavHeading/SideNavHeadingBasic.doc.mjs +14 -0
- package/templates/blocks/components/SideNavHeading/SideNavHeadingBasic.tsx +38 -0
- package/templates/blocks/components/SideNavItem/SideNavItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/SideNavItem/SideNavItemBasic.tsx +49 -0
- package/templates/blocks/components/SideNavSection/SideNavSectionBasic.doc.mjs +14 -0
- package/templates/blocks/components/SideNavSection/SideNavSectionBasic.tsx +71 -0
- package/templates/blocks/components/StackItem/StackItemFill.doc.mjs +14 -0
- package/templates/blocks/components/StackItem/StackItemFill.tsx +28 -0
- package/templates/blocks/components/TabMenu/TabMenuBasic.doc.mjs +14 -0
- package/templates/blocks/components/TabMenu/TabMenuBasic.tsx +23 -0
- package/templates/blocks/components/ToggleButtonGroup/ToggleButtonGroupVertical.doc.mjs +14 -0
- package/templates/blocks/components/ToggleButtonGroup/ToggleButtonGroupVertical.tsx +47 -0
- package/templates/blocks/components/TopNavHeading/TopNavHeadingBasic.doc.mjs +14 -0
- package/templates/blocks/components/TopNavHeading/TopNavHeadingBasic.tsx +22 -0
- package/templates/blocks/components/TopNavItem/TopNavItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/TopNavItem/TopNavItemBasic.tsx +21 -0
- package/templates/blocks/components/TopNavMegaMenu/TopNavMegaMenuBasic.doc.mjs +20 -0
- package/templates/blocks/components/TopNavMegaMenu/TopNavMegaMenuBasic.tsx +46 -0
- package/templates/blocks/components/TopNavMegaMenuFeaturedCard/TopNavMegaMenuFeaturedCardBasic.doc.mjs +14 -0
- package/templates/blocks/components/TopNavMegaMenuFeaturedCard/TopNavMegaMenuFeaturedCardBasic.tsx +16 -0
- package/templates/blocks/components/TopNavMegaMenuItem/TopNavMegaMenuItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/TopNavMegaMenuItem/TopNavMegaMenuItemBasic.tsx +26 -0
- package/templates/blocks/components/TopNavMenu/TopNavMenuBasic.doc.mjs +14 -0
- package/templates/blocks/components/TopNavMenu/TopNavMenuBasic.tsx +43 -0
- package/templates/blocks/components/TypeaheadItem/TypeaheadItemBasic.doc.mjs +14 -0
- package/templates/blocks/components/TypeaheadItem/TypeaheadItemBasic.tsx +43 -0
- package/templates/blocks/components/VStack/VStackBasic.doc.mjs +14 -0
- package/templates/blocks/components/VStack/VStackBasic.tsx +20 -0
- package/templates/pages/kanban-board/page.tsx +729 -0
- package/templates/pages/kanban-board/template.doc.mjs +12 -0
- package/templates/blocks/components/TreeListBranches/TreeListBranchesShowcase.doc.mjs +0 -14
- package/templates/blocks/components/TreeListBranches/TreeListBranchesShowcase.tsx +0 -64
- package/templates/blocks/components/TreeListItem/TreeListItemShowcase.doc.mjs +0 -14
- package/templates/blocks/components/TreeListItem/TreeListItemShowcase.tsx +0 -60
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavHeading',
|
|
7
|
+
name: 'TopNavHeading — Basic',
|
|
8
|
+
displayName: 'TopNavHeading — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A product heading with a logo inside a TopNav, linked to the home page. Use as the leading brand element of a top navigation bar.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['TopNav', 'TopNavHeading', 'NavIcon', 'Icon'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {TopNav, TopNavHeading} from '@astryxdesign/core/TopNav';
|
|
6
|
+
import {NavIcon} from '@astryxdesign/core/NavIcon';
|
|
7
|
+
import {Icon} from '@astryxdesign/core/Icon';
|
|
8
|
+
|
|
9
|
+
export default function TopNavHeadingBasic() {
|
|
10
|
+
return (
|
|
11
|
+
<TopNav
|
|
12
|
+
label="Product navigation"
|
|
13
|
+
heading={
|
|
14
|
+
<TopNavHeading
|
|
15
|
+
heading="Acme Platform"
|
|
16
|
+
logo={<NavIcon icon={<Icon icon="viewColumns" />} />}
|
|
17
|
+
headingHref="/"
|
|
18
|
+
/>
|
|
19
|
+
}
|
|
20
|
+
/>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavItem',
|
|
7
|
+
name: 'TopNavItem — Basic',
|
|
8
|
+
displayName: 'TopNavItem — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'Navigation links inside a TopNav with one item marked as selected. Use for top-level pages of an application.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 3,
|
|
13
|
+
componentsUsed: ['TopNav', 'TopNavHeading', 'TopNavItem'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {TopNav, TopNavHeading, TopNavItem} from '@astryxdesign/core/TopNav';
|
|
6
|
+
|
|
7
|
+
export default function TopNavItemBasic() {
|
|
8
|
+
return (
|
|
9
|
+
<TopNav
|
|
10
|
+
label="Main navigation"
|
|
11
|
+
heading={<TopNavHeading heading="App" />}
|
|
12
|
+
startContent={
|
|
13
|
+
<>
|
|
14
|
+
<TopNavItem label="Dashboard" href="#" isSelected />
|
|
15
|
+
<TopNavItem label="Projects" href="#" />
|
|
16
|
+
<TopNavItem label="Reports" href="#" />
|
|
17
|
+
</>
|
|
18
|
+
}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavMegaMenu',
|
|
7
|
+
name: 'TopNavMegaMenu — Basic',
|
|
8
|
+
displayName: 'TopNavMegaMenu — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A mega menu trigger inside a TopNav that opens a panel of rich link items. Use when a navigation section has multiple destinations worth describing.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: [
|
|
14
|
+
'TopNav',
|
|
15
|
+
'TopNavHeading',
|
|
16
|
+
'TopNavItem',
|
|
17
|
+
'TopNavMegaMenu',
|
|
18
|
+
'TopNavMegaMenuItem',
|
|
19
|
+
],
|
|
20
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
TopNav,
|
|
7
|
+
TopNavHeading,
|
|
8
|
+
TopNavItem,
|
|
9
|
+
TopNavMegaMenu,
|
|
10
|
+
TopNavMegaMenuItem,
|
|
11
|
+
} from '@astryxdesign/core/TopNav';
|
|
12
|
+
import {RocketLaunchIcon, BookOpenIcon} from '@heroicons/react/24/outline';
|
|
13
|
+
|
|
14
|
+
export default function TopNavMegaMenuBasic() {
|
|
15
|
+
return (
|
|
16
|
+
<TopNav
|
|
17
|
+
style={{width: 600}}
|
|
18
|
+
label="Main navigation"
|
|
19
|
+
heading={<TopNavHeading heading="DevTools" />}
|
|
20
|
+
startContent={
|
|
21
|
+
<>
|
|
22
|
+
<TopNavItem label="Overview" href="#" isSelected />
|
|
23
|
+
<TopNavMegaMenu
|
|
24
|
+
label="Products"
|
|
25
|
+
items={
|
|
26
|
+
<>
|
|
27
|
+
<TopNavMegaMenuItem
|
|
28
|
+
title="Deploy"
|
|
29
|
+
description="Ship to production in seconds"
|
|
30
|
+
icon={<RocketLaunchIcon width={20} height={20} />}
|
|
31
|
+
href="#deploy"
|
|
32
|
+
/>
|
|
33
|
+
<TopNavMegaMenuItem
|
|
34
|
+
title="Documentation"
|
|
35
|
+
description="Guides, references, and tutorials"
|
|
36
|
+
icon={<BookOpenIcon width={20} height={20} />}
|
|
37
|
+
href="#docs"
|
|
38
|
+
/>
|
|
39
|
+
</>
|
|
40
|
+
}
|
|
41
|
+
/>
|
|
42
|
+
</>
|
|
43
|
+
}
|
|
44
|
+
/>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavMegaMenuFeaturedCard',
|
|
7
|
+
name: 'TopNavMegaMenuFeaturedCard — Basic',
|
|
8
|
+
displayName: 'TopNavMegaMenuFeaturedCard — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A promotional card with a title, description, and call-to-action link. Pass it to the featured slot of a TopNavMegaMenu to highlight announcements.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['TopNavMegaMenuFeaturedCard'],
|
|
14
|
+
};
|
package/templates/blocks/components/TopNavMegaMenuFeaturedCard/TopNavMegaMenuFeaturedCardBasic.tsx
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {TopNavMegaMenuFeaturedCard} from '@astryxdesign/core/TopNav';
|
|
6
|
+
|
|
7
|
+
export default function TopNavMegaMenuFeaturedCardBasic() {
|
|
8
|
+
return (
|
|
9
|
+
<TopNavMegaMenuFeaturedCard
|
|
10
|
+
title="What's New"
|
|
11
|
+
description="Check out the latest features and improvements in the Q2 release."
|
|
12
|
+
linkLabel="Read the changelog"
|
|
13
|
+
linkHref="#changelog"
|
|
14
|
+
/>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavMegaMenuItem',
|
|
7
|
+
name: 'TopNavMegaMenuItem — Basic',
|
|
8
|
+
displayName: 'TopNavMegaMenuItem — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'Rich link items with an icon, title, and description. Use inside the items slot of a TopNavMegaMenu to describe each destination.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['TopNavMegaMenuItem', 'Grid'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {TopNavMegaMenuItem} from '@astryxdesign/core/TopNav';
|
|
6
|
+
import {Grid} from '@astryxdesign/core/Grid';
|
|
7
|
+
import {BoltIcon, CircleStackIcon} from '@heroicons/react/24/outline';
|
|
8
|
+
|
|
9
|
+
export default function TopNavMegaMenuItemBasic() {
|
|
10
|
+
return (
|
|
11
|
+
<Grid columns={2} gap={2}>
|
|
12
|
+
<TopNavMegaMenuItem
|
|
13
|
+
title="Edge Functions"
|
|
14
|
+
description="Run serverless code at the network edge"
|
|
15
|
+
icon={<BoltIcon width={20} height={20} />}
|
|
16
|
+
href="#edge"
|
|
17
|
+
/>
|
|
18
|
+
<TopNavMegaMenuItem
|
|
19
|
+
title="Storage"
|
|
20
|
+
description="Object and file storage for your application"
|
|
21
|
+
icon={<CircleStackIcon width={20} height={20} />}
|
|
22
|
+
href="#storage"
|
|
23
|
+
/>
|
|
24
|
+
</Grid>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TopNavMenu',
|
|
7
|
+
name: 'TopNavMenu — Basic',
|
|
8
|
+
displayName: 'TopNavMenu — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A dropdown menu inside a TopNav built from an items array with icons and descriptions. Use to group related destinations under a single trigger.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['TopNav', 'TopNavHeading', 'TopNavItem', 'TopNavMenu'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
TopNav,
|
|
7
|
+
TopNavHeading,
|
|
8
|
+
TopNavItem,
|
|
9
|
+
TopNavMenu,
|
|
10
|
+
} from '@astryxdesign/core/TopNav';
|
|
11
|
+
import {ChartBarIcon, Cog6ToothIcon} from '@heroicons/react/24/outline';
|
|
12
|
+
|
|
13
|
+
export default function TopNavMenuBasic() {
|
|
14
|
+
return (
|
|
15
|
+
<TopNav
|
|
16
|
+
style={{width: 600}}
|
|
17
|
+
label="Main navigation"
|
|
18
|
+
heading={<TopNavHeading heading="Platform" />}
|
|
19
|
+
startContent={
|
|
20
|
+
<>
|
|
21
|
+
<TopNavItem label="Home" href="#" isSelected />
|
|
22
|
+
<TopNavMenu
|
|
23
|
+
label="Tools"
|
|
24
|
+
items={[
|
|
25
|
+
{
|
|
26
|
+
title: 'Analytics',
|
|
27
|
+
description: 'View traffic and engagement metrics',
|
|
28
|
+
icon: <ChartBarIcon />,
|
|
29
|
+
href: '#analytics',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
title: 'Settings',
|
|
33
|
+
description: 'Configure your workspace',
|
|
34
|
+
icon: <Cog6ToothIcon />,
|
|
35
|
+
href: '#settings',
|
|
36
|
+
},
|
|
37
|
+
]}
|
|
38
|
+
/>
|
|
39
|
+
</>
|
|
40
|
+
}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'TypeaheadItem',
|
|
7
|
+
name: 'TypeaheadItem — Basic',
|
|
8
|
+
displayName: 'TypeaheadItem — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A typeahead whose results are rendered with TypeaheadItem, adding a secondary description below each label. Use inside renderItem to keep custom results visually consistent.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['Typeahead', 'TypeaheadItem', 'Center'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {useState} from 'react';
|
|
6
|
+
import {Typeahead, TypeaheadItem} from '@astryxdesign/core/Typeahead';
|
|
7
|
+
import type {SearchableItem, SearchSource} from '@astryxdesign/core/Typeahead';
|
|
8
|
+
import {Center} from '@astryxdesign/core/Center';
|
|
9
|
+
|
|
10
|
+
interface PersonItem extends SearchableItem {
|
|
11
|
+
auxiliaryData: {role: string};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const people: PersonItem[] = [
|
|
15
|
+
{id: '1', label: 'Alice Johnson', auxiliaryData: {role: 'Engineer'}},
|
|
16
|
+
{id: '2', label: 'Bob Smith', auxiliaryData: {role: 'Designer'}},
|
|
17
|
+
{id: '3', label: 'Charlie Brown', auxiliaryData: {role: 'Product Manager'}},
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const peopleSource: SearchSource<PersonItem> = {
|
|
21
|
+
search: (query: string) =>
|
|
22
|
+
people.filter(p => p.label.toLowerCase().includes(query.toLowerCase())),
|
|
23
|
+
bootstrap: () => people,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default function TypeaheadItemBasic() {
|
|
27
|
+
const [value, setValue] = useState<PersonItem | null>(null);
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<Center width={320}>
|
|
31
|
+
<Typeahead
|
|
32
|
+
label="Assignee"
|
|
33
|
+
placeholder="Search people..."
|
|
34
|
+
searchSource={peopleSource}
|
|
35
|
+
value={value}
|
|
36
|
+
onChange={setValue}
|
|
37
|
+
renderItem={(item: PersonItem) => (
|
|
38
|
+
<TypeaheadItem item={item} description={item.auxiliaryData.role} />
|
|
39
|
+
)}
|
|
40
|
+
/>
|
|
41
|
+
</Center>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/** @type {import('../../../../../core/src/docs-types').TemplateDoc} */
|
|
4
|
+
export const doc = {
|
|
5
|
+
type: 'block',
|
|
6
|
+
exampleFor: 'VStack',
|
|
7
|
+
name: 'VStack — Basic',
|
|
8
|
+
displayName: 'VStack — Basic',
|
|
9
|
+
description:
|
|
10
|
+
'A heading and paragraphs stacked vertically with a consistent gap. Use VStack whenever siblings should flow top to bottom with even spacing.',
|
|
11
|
+
isReady: true,
|
|
12
|
+
aspectRatio: 16 / 9,
|
|
13
|
+
componentsUsed: ['VStack', 'Text', 'Heading'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
import {VStack} from '@astryxdesign/core/Layout';
|
|
6
|
+
import {Text, Heading} from '@astryxdesign/core/Text';
|
|
7
|
+
|
|
8
|
+
export default function VStackBasic() {
|
|
9
|
+
return (
|
|
10
|
+
<VStack gap={3}>
|
|
11
|
+
<Heading level={5}>Weekly Report</Heading>
|
|
12
|
+
<Text type="body" color="secondary">
|
|
13
|
+
VStack arranges its children in a vertical column.
|
|
14
|
+
</Text>
|
|
15
|
+
<Text type="body" color="secondary">
|
|
16
|
+
The gap prop controls the spacing between each item.
|
|
17
|
+
</Text>
|
|
18
|
+
</VStack>
|
|
19
|
+
);
|
|
20
|
+
}
|