@moveindustries/movement-design-system 1.0.0
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/CHANGELOG.md +190 -0
- package/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/components/Branding/Branding.d.ts +31 -0
- package/dist/components/Branding/Branding.d.ts.map +1 -0
- package/dist/components/Branding/index.d.ts +3 -0
- package/dist/components/Branding/index.d.ts.map +1 -0
- package/dist/components/DottedBackground/DottedBackground.d.ts +11 -0
- package/dist/components/DottedBackground/DottedBackground.d.ts.map +1 -0
- package/dist/components/DottedBackground/index.d.ts +2 -0
- package/dist/components/DottedBackground/index.d.ts.map +1 -0
- package/dist/components/Footer/Footer.d.ts +72 -0
- package/dist/components/Footer/Footer.d.ts.map +1 -0
- package/dist/components/Footer/index.d.ts +3 -0
- package/dist/components/Footer/index.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/GlobalNavMenu.d.ts +87 -0
- package/dist/components/GlobalNavMenu/GlobalNavMenu.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/BridgeIcon.d.ts +2 -0
- package/dist/components/GlobalNavMenu/icons/BridgeIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/DelegatedStakingIcon.d.ts +2 -0
- package/dist/components/GlobalNavMenu/icons/DelegatedStakingIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/ExplorerIcon.d.ts +2 -0
- package/dist/components/GlobalNavMenu/icons/ExplorerIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/GridIcon.d.ts +4 -0
- package/dist/components/GlobalNavMenu/icons/GridIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/MoveDocsIcon.d.ts +2 -0
- package/dist/components/GlobalNavMenu/icons/MoveDocsIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/ParthenonIcon.d.ts +2 -0
- package/dist/components/GlobalNavMenu/icons/ParthenonIcon.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/icons/index.d.ts +7 -0
- package/dist/components/GlobalNavMenu/icons/index.d.ts.map +1 -0
- package/dist/components/GlobalNavMenu/index.d.ts +3 -0
- package/dist/components/GlobalNavMenu/index.d.ts.map +1 -0
- package/dist/components/Icon/AllAssetIcons.d.ts +45 -0
- package/dist/components/Icon/AllAssetIcons.d.ts.map +1 -0
- package/dist/components/Icon/AssetIcons.d.ts +5 -0
- package/dist/components/Icon/AssetIcons.d.ts.map +1 -0
- package/dist/components/Icon/index.d.ts +3 -0
- package/dist/components/Icon/index.d.ts.map +1 -0
- package/dist/components/IconButton/IconButton.d.ts +8 -0
- package/dist/components/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/Logo/Logo.d.ts +3 -0
- package/dist/components/Logo/Logo.d.ts.map +1 -0
- package/dist/components/MultiOutlineText/MultiOutlineText.d.ts +23 -0
- package/dist/components/MultiOutlineText/MultiOutlineText.d.ts.map +1 -0
- package/dist/components/MultiOutlineText/index.d.ts +3 -0
- package/dist/components/MultiOutlineText/index.d.ts.map +1 -0
- package/dist/components/ProgressButton/ProgressButton.d.ts +53 -0
- package/dist/components/ProgressButton/ProgressButton.d.ts.map +1 -0
- package/dist/components/ProgressButton/index.d.ts +2 -0
- package/dist/components/ProgressButton/index.d.ts.map +1 -0
- package/dist/components/WalletModal/WalletModal.d.ts +6 -0
- package/dist/components/WalletModal/WalletModal.d.ts.map +1 -0
- package/dist/components/WalletModal/index.d.ts +3 -0
- package/dist/components/WalletModal/index.d.ts.map +1 -0
- package/dist/components/shadcn/accordion.d.ts +17 -0
- package/dist/components/shadcn/accordion.d.ts.map +1 -0
- package/dist/components/shadcn/alert-dialog.d.ts +15 -0
- package/dist/components/shadcn/alert-dialog.d.ts.map +1 -0
- package/dist/components/shadcn/alert.d.ts +10 -0
- package/dist/components/shadcn/alert.d.ts.map +1 -0
- package/dist/components/shadcn/aspect-ratio.d.ts +4 -0
- package/dist/components/shadcn/aspect-ratio.d.ts.map +1 -0
- package/dist/components/shadcn/avatar.d.ts +13 -0
- package/dist/components/shadcn/avatar.d.ts.map +1 -0
- package/dist/components/shadcn/badge.d.ts +11 -0
- package/dist/components/shadcn/badge.d.ts.map +1 -0
- package/dist/components/shadcn/breadcrumb.d.ts +12 -0
- package/dist/components/shadcn/breadcrumb.d.ts.map +1 -0
- package/dist/components/shadcn/button-group.d.ts +12 -0
- package/dist/components/shadcn/button-group.d.ts.map +1 -0
- package/dist/components/shadcn/button.d.ts +11 -0
- package/dist/components/shadcn/button.d.ts.map +1 -0
- package/dist/components/shadcn/card.d.ts +17 -0
- package/dist/components/shadcn/card.d.ts.map +1 -0
- package/dist/components/shadcn/carousel.d.ts +20 -0
- package/dist/components/shadcn/carousel.d.ts.map +1 -0
- package/dist/components/shadcn/checkbox.d.ts +5 -0
- package/dist/components/shadcn/checkbox.d.ts.map +1 -0
- package/dist/components/shadcn/crypto-amount-input.d.ts +31 -0
- package/dist/components/shadcn/crypto-amount-input.d.ts.map +1 -0
- package/dist/components/shadcn/dialog.d.ts +22 -0
- package/dist/components/shadcn/dialog.d.ts.map +1 -0
- package/dist/components/shadcn/drawer.d.ts +14 -0
- package/dist/components/shadcn/drawer.d.ts.map +1 -0
- package/dist/components/shadcn/dropdown-menu.d.ts +26 -0
- package/dist/components/shadcn/dropdown-menu.d.ts.map +1 -0
- package/dist/components/shadcn/empty.d.ts +12 -0
- package/dist/components/shadcn/empty.d.ts.map +1 -0
- package/dist/components/shadcn/field.d.ts +25 -0
- package/dist/components/shadcn/field.d.ts.map +1 -0
- package/dist/components/shadcn/form.d.ts +25 -0
- package/dist/components/shadcn/form.d.ts.map +1 -0
- package/dist/components/shadcn/hover-card.d.ts +7 -0
- package/dist/components/shadcn/hover-card.d.ts.map +1 -0
- package/dist/components/shadcn/input-group.d.ts +17 -0
- package/dist/components/shadcn/input-group.d.ts.map +1 -0
- package/dist/components/shadcn/input.d.ts +28 -0
- package/dist/components/shadcn/input.d.ts.map +1 -0
- package/dist/components/shadcn/item.d.ts +24 -0
- package/dist/components/shadcn/item.d.ts.map +1 -0
- package/dist/components/shadcn/label.d.ts +5 -0
- package/dist/components/shadcn/label.d.ts.map +1 -0
- package/dist/components/shadcn/list.d.ts +45 -0
- package/dist/components/shadcn/list.d.ts.map +1 -0
- package/dist/components/shadcn/menubar.d.ts +27 -0
- package/dist/components/shadcn/menubar.d.ts.map +1 -0
- package/dist/components/shadcn/navigation-menu.d.ts +15 -0
- package/dist/components/shadcn/navigation-menu.d.ts.map +1 -0
- package/dist/components/shadcn/pagination.d.ts +31 -0
- package/dist/components/shadcn/pagination.d.ts.map +1 -0
- package/dist/components/shadcn/popover.d.ts +8 -0
- package/dist/components/shadcn/popover.d.ts.map +1 -0
- package/dist/components/shadcn/progress.d.ts +5 -0
- package/dist/components/shadcn/progress.d.ts.map +1 -0
- package/dist/components/shadcn/radio-group.d.ts +6 -0
- package/dist/components/shadcn/radio-group.d.ts.map +1 -0
- package/dist/components/shadcn/scroll-area.d.ts +6 -0
- package/dist/components/shadcn/scroll-area.d.ts.map +1 -0
- package/dist/components/shadcn/select.d.ts +16 -0
- package/dist/components/shadcn/select.d.ts.map +1 -0
- package/dist/components/shadcn/separator.d.ts +5 -0
- package/dist/components/shadcn/separator.d.ts.map +1 -0
- package/dist/components/shadcn/sheet.d.ts +19 -0
- package/dist/components/shadcn/sheet.d.ts.map +1 -0
- package/dist/components/shadcn/sidebar.d.ts +70 -0
- package/dist/components/shadcn/sidebar.d.ts.map +1 -0
- package/dist/components/shadcn/skeleton.d.ts +3 -0
- package/dist/components/shadcn/skeleton.d.ts.map +1 -0
- package/dist/components/shadcn/slider.d.ts +5 -0
- package/dist/components/shadcn/slider.d.ts.map +1 -0
- package/dist/components/shadcn/sonner.d.ts +38 -0
- package/dist/components/shadcn/sonner.d.ts.map +1 -0
- package/dist/components/shadcn/spinner.d.ts +3 -0
- package/dist/components/shadcn/spinner.d.ts.map +1 -0
- package/dist/components/shadcn/switch.d.ts +5 -0
- package/dist/components/shadcn/switch.d.ts.map +1 -0
- package/dist/components/shadcn/table-hooks.d.ts +20 -0
- package/dist/components/shadcn/table-hooks.d.ts.map +1 -0
- package/dist/components/shadcn/table.d.ts +26 -0
- package/dist/components/shadcn/table.d.ts.map +1 -0
- package/dist/components/shadcn/tabs.d.ts +8 -0
- package/dist/components/shadcn/tabs.d.ts.map +1 -0
- package/dist/components/shadcn/textarea.d.ts +4 -0
- package/dist/components/shadcn/textarea.d.ts.map +1 -0
- package/dist/components/shadcn/toast-types.d.ts +13 -0
- package/dist/components/shadcn/toast-types.d.ts.map +1 -0
- package/dist/components/shadcn/toast.d.ts +14 -0
- package/dist/components/shadcn/toast.d.ts.map +1 -0
- package/dist/components/shadcn/toggle-group.d.ts +30 -0
- package/dist/components/shadcn/toggle-group.d.ts.map +1 -0
- package/dist/components/shadcn/toggle.d.ts +10 -0
- package/dist/components/shadcn/toggle.d.ts.map +1 -0
- package/dist/components/shadcn/tooltip.d.ts +35 -0
- package/dist/components/shadcn/tooltip.d.ts.map +1 -0
- package/dist/components/shadcn/typography.d.ts +14 -0
- package/dist/components/shadcn/typography.d.ts.map +1 -0
- package/dist/components/theme/index.d.ts +4 -0
- package/dist/components/theme/index.d.ts.map +1 -0
- package/dist/components/theme/theme-provider.d.ts +28 -0
- package/dist/components/theme/theme-provider.d.ts.map +1 -0
- package/dist/components/theme/theme-switcher.d.ts +33 -0
- package/dist/components/theme/theme-switcher.d.ts.map +1 -0
- package/dist/components/theme/use-theme.d.ts +20 -0
- package/dist/components/theme/use-theme.d.ts.map +1 -0
- package/dist/fonts.css +331 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/index.cjs +548 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77374 -0
- package/dist/lib/border-styles.d.ts +33 -0
- package/dist/lib/border-styles.d.ts.map +1 -0
- package/dist/lib/global-toast.d.ts +35 -0
- package/dist/lib/global-toast.d.ts.map +1 -0
- package/dist/lib/gradient-styles.d.ts +23 -0
- package/dist/lib/gradient-styles.d.ts.map +1 -0
- package/dist/lib/scales.d.ts +335 -0
- package/dist/lib/scales.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/recipes.css +108 -0
- package/dist/theme.css +650 -0
- package/dist/vite.svg +1 -0
- package/package.json +156 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [1.0.0] - 2026-02-05
|
|
10
|
+
|
|
11
|
+
First public release of the Move Industries Design System on npm. This release represents the culmination of 8 months of development, from initial scaffolding (June 2025) through production hardening across Movement Labs applications. The library delivers 60+ accessible React components, a comprehensive theme system, and deep Aptos wallet integration — all built on shadcn/ui, Radix UI, and Tailwind CSS v4.
|
|
12
|
+
|
|
13
|
+
### Core Component Library
|
|
14
|
+
|
|
15
|
+
#### Layout & Containers
|
|
16
|
+
- **Card** — Container with header, title, description, content, footer, and action slots
|
|
17
|
+
- **AspectRatio** — Constrained aspect ratio wrapper
|
|
18
|
+
- **Separator** — Horizontal/vertical dividers
|
|
19
|
+
- **ScrollArea** / **ScrollBar** — Custom scrollable regions
|
|
20
|
+
- **Resizable** — Resizable panel groups with drag handles (ResizablePanel, ResizablePanelGroup, ResizableHandle)
|
|
21
|
+
- **Collapsible** — Expandable/collapsible content sections
|
|
22
|
+
- **Item** — Styled list item element
|
|
23
|
+
|
|
24
|
+
#### Navigation
|
|
25
|
+
- **Tabs** — Tabbed content navigation (TabsList, TabsTrigger, TabsContent)
|
|
26
|
+
- **Breadcrumb** — Breadcrumb trail with ellipsis support (BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis)
|
|
27
|
+
- **NavigationMenu** — Accessible navigation menus with viewport, indicators, and trigger styles
|
|
28
|
+
- **Menubar** — Top-level menu bar with submenus, checkboxes, radio items, and keyboard navigation
|
|
29
|
+
- **Pagination** — Page navigation with standard and bullet pagination variants (BulletPagination)
|
|
30
|
+
- **Sidebar** — Full sidebar layout system with provider, header, footer, groups, menus, sub-menus, skeleton states, rail, and useSidebar hook
|
|
31
|
+
|
|
32
|
+
#### Buttons & Controls
|
|
33
|
+
- **Button** — Primary button with multiple variants via `buttonVariants` (CVA)
|
|
34
|
+
- **ButtonGroup** — Grouped button layout
|
|
35
|
+
- **Toggle** / **ToggleGroup** — Toggle buttons with `toggleVariants`
|
|
36
|
+
- **IconButton** — Icon-only button component
|
|
37
|
+
- **ProgressButton** — Button with built-in progress indication
|
|
38
|
+
|
|
39
|
+
#### Form Components
|
|
40
|
+
- **Input** — Text input with variant support
|
|
41
|
+
- **Textarea** — Multi-line text input
|
|
42
|
+
- **Label** — Accessible form labels
|
|
43
|
+
- **Checkbox** — Checkbox with indeterminate support
|
|
44
|
+
- **RadioGroup** / **RadioGroupItem** — Radio button groups
|
|
45
|
+
- **Switch** — Toggle switch
|
|
46
|
+
- **Select** — Dropdown select with groups, scroll buttons, and separators
|
|
47
|
+
- **Slider** — Range slider with segmented variant support
|
|
48
|
+
- **InputOTP** — One-time password input
|
|
49
|
+
- **InputGroup** — Composite input with addons, buttons, and text (InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea)
|
|
50
|
+
- **CryptoAmountInput** — Specialized numeric input for cryptocurrency amounts with WalletIcon
|
|
51
|
+
- **Calendar** — Date picker (react-day-picker integration)
|
|
52
|
+
- **Command** — Command palette / combobox (cmdk integration)
|
|
53
|
+
|
|
54
|
+
#### Form Management
|
|
55
|
+
- **Form** — React Hook Form integration with FormField, FormControl, FormItem, FormLabel, FormDescription, FormMessage
|
|
56
|
+
- **Field** — Standalone field wrapper with FieldLabel, FieldError, FieldDescription, FieldGroup, FieldLegend, FieldSet, FieldTitle, FieldContent, FieldSeparator
|
|
57
|
+
- **useFormField** hook for field context access
|
|
58
|
+
|
|
59
|
+
#### Dialogs & Overlays
|
|
60
|
+
- **Dialog** — Modal dialog with `dialogContentVariants` and configurable close button
|
|
61
|
+
- **AlertDialog** — Confirmation/alert dialog with action and cancel buttons
|
|
62
|
+
- **Drawer** — Mobile-friendly slide-up drawer with drag-to-dismiss (vaul)
|
|
63
|
+
- **Sheet** — Side panel overlay with `sheetContentVariants` and directional support
|
|
64
|
+
- **Popover** — Floating content popover
|
|
65
|
+
- **HoverCard** — Hover-triggered information card
|
|
66
|
+
- **ContextMenu** — Right-click context menus with full sub-menu support
|
|
67
|
+
- **Tooltip** — Tooltip with provider for delay/skip configuration
|
|
68
|
+
|
|
69
|
+
#### Menus & Dropdowns
|
|
70
|
+
- **DropdownMenu** — Full dropdown menu system with checkbox items, radio groups, sub-menus, shortcuts, labels, separators, and portal support
|
|
71
|
+
|
|
72
|
+
#### Data Display
|
|
73
|
+
- **Table** — Data table with header, body, row, cell, footer, caption, and `TableVariant` type support
|
|
74
|
+
- **List** — Styled lists with `listVariants`, `listItemVariants`, and `bulletVariants`
|
|
75
|
+
- **Accordion** — Expandable content sections with hover interaction support
|
|
76
|
+
- **Carousel** — Content carousel with navigation (embla-carousel)
|
|
77
|
+
- **Badge** — Status/label badges with `badgeVariants`
|
|
78
|
+
- **Avatar** — User avatars with image, fallback, and `avatarVariants`
|
|
79
|
+
- **Skeleton** — Loading placeholder skeletons
|
|
80
|
+
- **Empty** — Empty state display component
|
|
81
|
+
|
|
82
|
+
#### Typography
|
|
83
|
+
- **Typography** / **Text** — Text rendering with `typographyVariants` for consistent type scales
|
|
84
|
+
- **Kbd** — Keyboard shortcut display
|
|
85
|
+
- **MultiOutlineText** — Decorative text with multiple configurable outline layers and thickness control
|
|
86
|
+
|
|
87
|
+
#### Feedback & Status
|
|
88
|
+
- **Alert** — Alert banners with title and description
|
|
89
|
+
- **Progress** — Progress bar
|
|
90
|
+
- **Spinner** — Loading spinner
|
|
91
|
+
|
|
92
|
+
#### Notifications
|
|
93
|
+
- **Toaster** / **toast** — Sonner-based toast notification system with movement-branded styling
|
|
94
|
+
- **GlobalToaster** / **movementToast** — Application-wide toast singleton with typed variants (success, error, warning, info)
|
|
95
|
+
- **toastVariants** — Visual toast variant definitions
|
|
96
|
+
- Toast types: `CreateToastArgs`, `TypedToastArgs`, `ToastVariant`
|
|
97
|
+
- Mobile-optimized toast positioning with queued display
|
|
98
|
+
|
|
99
|
+
### Movement-Specific Components
|
|
100
|
+
|
|
101
|
+
#### Branding
|
|
102
|
+
- **Branding** — Movement/Move Industries brand assets with theme (industries, labs), variant (lockup-long, lockup-short, logomark, moveus), and color (black, white, color) support
|
|
103
|
+
- **Logo** — Movement logo component
|
|
104
|
+
- **DottedBackground** — Decorative dotted pattern background
|
|
105
|
+
|
|
106
|
+
#### Global Navigation
|
|
107
|
+
- **GlobalNavMenu** — Global product navigation menu for Movement ecosystem apps
|
|
108
|
+
- Desktop flyout menu with product blocks
|
|
109
|
+
- Mobile drawer variant with responsive breakpoint handling
|
|
110
|
+
- `productBlockVariants` for consistent product card styling
|
|
111
|
+
- Configurable nav items via `NavMenuItem` type
|
|
112
|
+
|
|
113
|
+
#### Footer
|
|
114
|
+
- **Footer** — Responsive footer with desktop and mobile layouts
|
|
115
|
+
- **DesktopFooter** / **MobileFooter** — Layout-specific sub-components
|
|
116
|
+
- Configurable link columns via `FooterColumn` / `FooterLink` types
|
|
117
|
+
- Social icon row via `SocialLink` type
|
|
118
|
+
- `footerLinkVariants`, `footerHeaderVariants`, `socialIconVariants`
|
|
119
|
+
|
|
120
|
+
#### Wallet Integration
|
|
121
|
+
- **WalletModal** — Aptos wallet connection dialog
|
|
122
|
+
- Responsive: dialog on desktop, drawer on mobile
|
|
123
|
+
- Wallet providers: Nightly, OKX, MSafe, Petra, Aptos Connect
|
|
124
|
+
- Automatic wallet detection and sorting
|
|
125
|
+
- `ConnectWalletDialogProps` type
|
|
126
|
+
|
|
127
|
+
### Icon System
|
|
128
|
+
|
|
129
|
+
- **Icon** component with comprehensive icon library
|
|
130
|
+
- 44+ crypto, network, and wallet asset icons: Aptos, Avalanche, Binance, BSC, Bitcoin (multiple variants), Coinbase, Ethereum, Movement (logomark, wordmark), Polygon, Solana, MetaMask, Nightly, Petra, Rabby, Razor, Sender, and more
|
|
131
|
+
- Full Phosphor Icons integration via `@phosphor-icons/react`
|
|
132
|
+
- Lucide React icons for UI primitives
|
|
133
|
+
|
|
134
|
+
### Theme System
|
|
135
|
+
|
|
136
|
+
#### CSS Custom Properties
|
|
137
|
+
- Multi-layer token architecture:
|
|
138
|
+
- **Primitive tokens** — raw spacing, sizing, border-radius, border-width, shadow, opacity scales
|
|
139
|
+
- **Brand colors** — Movement palette (moveus-marigold, guild-green, etc.)
|
|
140
|
+
- **Semantic tokens** — background, foreground, border, ring mapped to brand colors
|
|
141
|
+
- **Component tokens** — per-component color/spacing overrides (accordion, badge, card, input, sidebar, toast, etc.)
|
|
142
|
+
- Light and dark mode support via `prefers-color-scheme` and `.dark` class
|
|
143
|
+
- **ThemeProvider** — React context provider for theme state
|
|
144
|
+
- **ThemeSwitcher** — Theme picker UI
|
|
145
|
+
- **ThemeToggle** — Simple light/dark toggle
|
|
146
|
+
- **useTheme** hook
|
|
147
|
+
|
|
148
|
+
#### Design Tokens (JS)
|
|
149
|
+
- `spacing` — 21-value spacing scale (0–384px)
|
|
150
|
+
- `sizes` — All spacing values plus prose, full, min, max, fit
|
|
151
|
+
- `radii` — Border radius scale (sm through full)
|
|
152
|
+
- `borderWidths` — 0–8px scale
|
|
153
|
+
- `shadows` — xs through 2xl, inner, none
|
|
154
|
+
- `zIndex` — Semantic z-index scale (hide, base, docked, dropdown, sticky, banner, overlay, modal, popover, skipLink, toast, tooltip)
|
|
155
|
+
|
|
156
|
+
#### CSS Exports
|
|
157
|
+
- `@movementlabsxyz/movement-design-system/component-styles` — Component CSS
|
|
158
|
+
- `@movementlabsxyz/movement-design-system/theme` — Theme variables
|
|
159
|
+
- `@movementlabsxyz/movement-design-system/fonts` — Font definitions
|
|
160
|
+
|
|
161
|
+
### Styling Utilities
|
|
162
|
+
|
|
163
|
+
- **cn()** — Tailwind-safe class name merging (clsx + tailwind-merge)
|
|
164
|
+
- **gradientBorderClasses** — Gradient border recipes (.gradient-border-glow, .gradient-border-error, .gradient-border-iridescent, .gradient-border-diagonal)
|
|
165
|
+
- **glassBackgroundClasses** — Glass morphism effects (.glass-background-dark, .glass-background-light)
|
|
166
|
+
- **gradientBackgroundClasses** / **getGradientClass()** — Gradient background helpers (.gradient-mint-cyan, .gradient-glass-overlay)
|
|
167
|
+
- **Iridescent variants** — Iridescent border and input styling recipes
|
|
168
|
+
|
|
169
|
+
### Hooks
|
|
170
|
+
|
|
171
|
+
- **useIsMobile** — Responsive breakpoint detection
|
|
172
|
+
- **useSidebar** — Sidebar open/close state management
|
|
173
|
+
- **useFormField** — React Hook Form field context
|
|
174
|
+
- **useTableSort** / **useSortableData** — Table column sorting with `SortDirection` and `SortFunction` types
|
|
175
|
+
- **useTheme** — Theme state access
|
|
176
|
+
|
|
177
|
+
### Build & Distribution
|
|
178
|
+
|
|
179
|
+
- Vite library mode build with ESM (`dist/index.js`) and CommonJS (`dist/index.cjs`) outputs
|
|
180
|
+
- TypeScript declarations via `vite-plugin-dts` and `tsc`
|
|
181
|
+
- Tree-shakeable exports with proper `sideEffects` configuration
|
|
182
|
+
- Source maps for debugging
|
|
183
|
+
- `prepublishOnly` script runs full build automatically
|
|
184
|
+
- Peer dependencies: React 18/19, React DOM, Tailwind CSS v4, @aptos-labs/wallet-adapter-react
|
|
185
|
+
- Storybook 9 documentation site with interactive examples
|
|
186
|
+
|
|
187
|
+
### Reference Blocks (Non-exported)
|
|
188
|
+
|
|
189
|
+
The following example implementations are included in the source as reference patterns:
|
|
190
|
+
- HamburgerMenu, PaginatedTable, ValidatorsTable, MobileValidatorsTable, StakeForm, StakingBalance
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Movement Network
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Move Industries Design System
|
|
2
|
+
|
|
3
|
+
A production-ready React component library built for Move Industries applications. This design system provides accessible, customizable UI components with consistent styling and behavior across all Move Industries products.
|
|
4
|
+
|
|
5
|
+
## Tech Stack
|
|
6
|
+
|
|
7
|
+
- **React 18+** - UI framework
|
|
8
|
+
- **TypeScript** - Type safety
|
|
9
|
+
- **Tailwind CSS v4** - Utility-first styling
|
|
10
|
+
- **shadcn/ui** - Component architecture
|
|
11
|
+
- **Radix UI** - Accessible primitives
|
|
12
|
+
- **Vite** - Build tooling
|
|
13
|
+
- **Storybook** - Component documentation
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
### Prerequisites
|
|
18
|
+
|
|
19
|
+
- React 18+ or 19+
|
|
20
|
+
- Tailwind CSS v4
|
|
21
|
+
- PostCSS
|
|
22
|
+
|
|
23
|
+
### Install the Package
|
|
24
|
+
|
|
25
|
+
**Coming soon to npm.**
|
|
26
|
+
|
|
27
|
+
### Import Styles
|
|
28
|
+
|
|
29
|
+
Add these imports to your `global.css` file in this exact order:
|
|
30
|
+
|
|
31
|
+
```css
|
|
32
|
+
@import "movement-design-system/component-styles";
|
|
33
|
+
@import "movement-design-system/theme";
|
|
34
|
+
@import "tailwindcss";
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
> **Note**: The import order matters. Component styles and theme must come before Tailwind CSS.
|
|
38
|
+
|
|
39
|
+
### Usage
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
import { Button, Card, Input } from 'movement-design-system';
|
|
43
|
+
|
|
44
|
+
function App() {
|
|
45
|
+
return (
|
|
46
|
+
<Card>
|
|
47
|
+
<Input placeholder="Enter text..." />
|
|
48
|
+
<Button>Submit</Button>
|
|
49
|
+
</Card>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Development
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Install dependencies
|
|
58
|
+
pnpm install
|
|
59
|
+
|
|
60
|
+
# Start Storybook
|
|
61
|
+
pnpm storybook
|
|
62
|
+
|
|
63
|
+
# Build library
|
|
64
|
+
pnpm build:lib
|
|
65
|
+
|
|
66
|
+
# Run tests
|
|
67
|
+
pnpm test
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Documentation
|
|
71
|
+
|
|
72
|
+
See the full component documentation in [Storybook](https://movement-design-system-docs-git-shadcn-movement-labs.vercel.app/).
|
|
73
|
+
|
|
74
|
+
## License
|
|
75
|
+
|
|
76
|
+
MIT
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type BrandingTheme = "industries" | "labs";
|
|
3
|
+
export type BrandingVariant = "lockup-long" | "lockup-short" | "logomark" | "moveus";
|
|
4
|
+
export type BrandingColor = "black" | "white" | "color";
|
|
5
|
+
export interface BrandingProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
6
|
+
/**
|
|
7
|
+
* The branding theme to display
|
|
8
|
+
* @default 'industries'
|
|
9
|
+
*/
|
|
10
|
+
theme?: BrandingTheme;
|
|
11
|
+
/**
|
|
12
|
+
* The logo variant to display
|
|
13
|
+
* @default 'logomark'
|
|
14
|
+
*/
|
|
15
|
+
variant?: BrandingVariant;
|
|
16
|
+
/**
|
|
17
|
+
* The color version to display
|
|
18
|
+
* @default 'color'
|
|
19
|
+
*/
|
|
20
|
+
color?: BrandingColor;
|
|
21
|
+
/**
|
|
22
|
+
* Custom class name
|
|
23
|
+
*/
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Branding component for displaying Movement Labs logos
|
|
28
|
+
*/
|
|
29
|
+
declare function Branding({ theme, variant, color, className, alt, ...props }: BrandingProps): import("react/jsx-runtime").JSX.Element | null;
|
|
30
|
+
export { Branding };
|
|
31
|
+
//# sourceMappingURL=Branding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Branding.d.ts","sourceRoot":"","sources":["../../../src/components/Branding/Branding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,cAAc,GACd,UAAU,GACV,QAAQ,CAAC;AACb,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,aACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IACjD;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAoB,EACpB,OAAoB,EACpB,KAAe,EACf,SAAS,EACT,GAA0B,EAC1B,GAAG,KAAK,EACT,EAAE,aAAa,kDA0Bf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Branding/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface DottedBackgroundProps {
|
|
2
|
+
children?: React.ReactNode;
|
|
3
|
+
className?: string;
|
|
4
|
+
dotColor?: string;
|
|
5
|
+
dotSize?: number;
|
|
6
|
+
gap?: number;
|
|
7
|
+
variant?: "dots" | "grid" | "gradient";
|
|
8
|
+
}
|
|
9
|
+
export declare function DottedBackground({ children, className, dotColor, dotSize, gap, variant, }: DottedBackgroundProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=DottedBackground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DottedBackground.d.ts","sourceRoot":"","sources":["../../../src/components/DottedBackground/DottedBackground.tsx"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAW,EACX,GAAQ,EACR,OAAgB,GACjB,EAAE,qBAAqB,2CAmFvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DottedBackground/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
declare const footerLinkVariants: (props?: ({
|
|
3
|
+
variant?: "default" | "muted" | null | undefined;
|
|
4
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
5
|
+
declare const socialIconVariants: (props?: ({
|
|
6
|
+
variant?: "default" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
declare const footerHeaderVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
9
|
+
export interface FooterLink {
|
|
10
|
+
label: string;
|
|
11
|
+
href: string;
|
|
12
|
+
}
|
|
13
|
+
export interface FooterColumn {
|
|
14
|
+
title: string;
|
|
15
|
+
links: FooterLink[];
|
|
16
|
+
}
|
|
17
|
+
export interface SocialLink {
|
|
18
|
+
platform: "x" | "discord" | "github" | "linkedin" | "reddit" | "telegram";
|
|
19
|
+
href: string;
|
|
20
|
+
}
|
|
21
|
+
export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
|
|
22
|
+
/**
|
|
23
|
+
* Whether to show the heading tagline
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
showHeading?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Custom heading text
|
|
29
|
+
*/
|
|
30
|
+
heading?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Footer navigation columns
|
|
33
|
+
*/
|
|
34
|
+
columns?: FooterColumn[];
|
|
35
|
+
/**
|
|
36
|
+
* Social media links
|
|
37
|
+
*/
|
|
38
|
+
socialLinks?: SocialLink[];
|
|
39
|
+
/**
|
|
40
|
+
* Copyright text
|
|
41
|
+
* @default "© 2026 Move Industries. All rights reserved."
|
|
42
|
+
*/
|
|
43
|
+
copyright?: string;
|
|
44
|
+
}
|
|
45
|
+
interface DesktopFooterProps {
|
|
46
|
+
showHeading: boolean;
|
|
47
|
+
heading: string;
|
|
48
|
+
columns: FooterColumn[];
|
|
49
|
+
socialLinks: SocialLink[];
|
|
50
|
+
copyright: string;
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
declare function DesktopFooter({ showHeading, heading, columns, socialLinks, copyright, className, }: DesktopFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
interface MobileFooterProps {
|
|
55
|
+
showHeading: boolean;
|
|
56
|
+
heading: string;
|
|
57
|
+
columns: FooterColumn[];
|
|
58
|
+
socialLinks: SocialLink[];
|
|
59
|
+
copyright: string;
|
|
60
|
+
className?: string;
|
|
61
|
+
}
|
|
62
|
+
declare function MobileFooter({ showHeading, heading, columns, socialLinks, copyright, className, }: MobileFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
/**
|
|
64
|
+
* Footer component for displaying site-wide footer with navigation, social links, and branding.
|
|
65
|
+
* Automatically switches between desktop and mobile layouts based on screen size.
|
|
66
|
+
*
|
|
67
|
+
* - Desktop (≥768px): Horizontal layout with logo left, nav columns right
|
|
68
|
+
* - Mobile (<768px): Centered layout with 2x2 grid for nav columns
|
|
69
|
+
*/
|
|
70
|
+
declare function Footer({ className, showHeading, heading, columns, socialLinks, copyright, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
export { Footer, DesktopFooter, MobileFooter, footerLinkVariants, footerHeaderVariants, socialIconVariants, };
|
|
72
|
+
//# sourceMappingURL=Footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgF1B,QAAA,MAAM,kBAAkB;;8EAavB,CAAC;AAGF,QAAA,MAAM,kBAAkB;;8EAYvB,CAAC;AAGF,QAAA,MAAM,oBAAoB,oFAAoE,CAAC;AAG/F,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwGD,UAAU,kBAAkB;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,aAAa,CAAC,EACrB,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,GACV,EAAE,kBAAkB,2CA0CpB;AAKD,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,YAAY,CAAC,EACpB,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,2CAqCnB;AAMD;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,WAAkB,EAClB,OAAwD,EACxD,OAAwB,EACxB,WAAgC,EAChC,SAA0D,EAC1D,GAAG,KAAK,EACT,EAAE,WAAW,2CAqBb;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const productBlockVariants: (props?: ({
|
|
3
|
+
variant?: "default" | null | undefined;
|
|
4
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
5
|
+
export interface NavMenuItem {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
href?: string;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export interface GlobalNavMenuProps {
|
|
13
|
+
/**
|
|
14
|
+
* Navigation items to display in the menu
|
|
15
|
+
*/
|
|
16
|
+
items?: NavMenuItem[];
|
|
17
|
+
/**
|
|
18
|
+
* Trigger element (defaults to hamburger button)
|
|
19
|
+
*/
|
|
20
|
+
trigger?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to show the video placeholder section (desktop only)
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
showVideoSection?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether to show the Move Alliance section (desktop only)
|
|
28
|
+
* @default true
|
|
29
|
+
*/
|
|
30
|
+
showAllianceSection?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Move price to display (e.g., "$0.03")
|
|
33
|
+
*/
|
|
34
|
+
movePrice?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Callback when an item is clicked
|
|
37
|
+
*/
|
|
38
|
+
onItemClick?: (item: NavMenuItem) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Additional class name for the trigger button
|
|
41
|
+
*/
|
|
42
|
+
triggerClassName?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Additional class name for the content
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
}
|
|
48
|
+
interface ProductBlockProps {
|
|
49
|
+
item: NavMenuItem;
|
|
50
|
+
onClick?: () => void;
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
interface DesktopMenuContentProps {
|
|
54
|
+
items: NavMenuItem[];
|
|
55
|
+
showVideoSection: boolean;
|
|
56
|
+
showAllianceSection: boolean;
|
|
57
|
+
movePrice?: string;
|
|
58
|
+
onItemClick?: (item: NavMenuItem) => void;
|
|
59
|
+
}
|
|
60
|
+
interface MobileMenuContentProps {
|
|
61
|
+
items: NavMenuItem[];
|
|
62
|
+
onItemClick?: (item: NavMenuItem) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* GlobalNavMenu component - A full-screen navigation menu triggered by an icon button.
|
|
66
|
+
*
|
|
67
|
+
* Features:
|
|
68
|
+
* - Responsive design with separate desktop and mobile layouts
|
|
69
|
+
* - Uses Sheet component for slide-down animation
|
|
70
|
+
* - Displays product/app navigation items with icons and descriptions
|
|
71
|
+
* - Desktop includes video placeholder and Move Alliance section
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* <GlobalNavMenu
|
|
76
|
+
* items={[
|
|
77
|
+
* { id: 'bridge', title: 'BRIDGE', description: '...' },
|
|
78
|
+
* { id: 'staking', title: 'STAKING', description: '...' },
|
|
79
|
+
* ]}
|
|
80
|
+
* onItemClick={(item) => console.log('Clicked:', item.id)}
|
|
81
|
+
* />
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
declare function GlobalNavMenu({ items, trigger, showVideoSection, showAllianceSection, movePrice, onItemClick, triggerClassName, className, }: GlobalNavMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
85
|
+
export { GlobalNavMenu, productBlockVariants };
|
|
86
|
+
export type { ProductBlockProps, DesktopMenuContentProps, MobileMenuContentProps };
|
|
87
|
+
//# sourceMappingURL=GlobalNavMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalNavMenu.d.ts","sourceRoot":"","sources":["../../../src/components/GlobalNavMenu/GlobalNavMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,QAAA,MAAM,oBAAoB;;8EAYzB,CAAC;AA6GF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgDD,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD,UAAU,uBAAuB;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AA0HD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAiCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,aAAa,CAAC,EACrB,KAAuB,EACvB,OAAO,EACP,gBAAuB,EACvB,mBAA0B,EAC1B,SAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,SAAS,GACV,EAAE,kBAAkB,2CAgDpB;AAED,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BridgeIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/BridgeIcon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,+CAWtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DelegatedStakingIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/DelegatedStakingIcon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,+CAIhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExplorerIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/ExplorerIcon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+CAWxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/GridIcon.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,eAAe;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4CAc7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoveDocsIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/MoveDocsIcon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+CAWxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParthenonIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/ParthenonIcon.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,+CA2BzB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { GridIcon } from './GridIcon';
|
|
2
|
+
export { BridgeIcon } from './BridgeIcon';
|
|
3
|
+
export { DelegatedStakingIcon } from './DelegatedStakingIcon';
|
|
4
|
+
export { ParthenonIcon } from './ParthenonIcon';
|
|
5
|
+
export { ExplorerIcon } from './ExplorerIcon';
|
|
6
|
+
export { MoveDocsIcon } from './MoveDocsIcon';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/GlobalNavMenu/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GlobalNavMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
|