import { CSSObject } from 'styled-components'; import { BreakpointType } from '../../../breakpoints/breakPoints'; export type MobileNavigationV2State = 'default' | 'active'; export type MobileNavigationV2TokenType = { /** * MobileNavigationV2 anatomy * - container: floating dock surface * - layout: padding/gaps/safe-area offsets used for height calculations * - row: a horizontal strip of items (primary and optional secondary rows) * - item: each navigation button * - primaryAction: optional center primary action button */ container: { zIndex: CSSObject['zIndex']; /** Base/fallback dock fill; use a color that already includes alpha (e.g. `#RRGGBBAA`). */ backgroundColor: CSSObject['backgroundColor']; /** Optional fill when `backdrop-filter` is supported (typically slightly lower alpha). */ background?: CSSObject['background']; border: CSSObject['border']; borderWidth: CSSObject['borderWidth']; borderRadius: CSSObject['borderRadius']; backdropFilter: CSSObject['backdropFilter']; transition: CSSObject['transition']; }; layout: { safeAreaOffset: CSSObject['padding']; floatingPadding: CSSObject['padding']; primaryActionMarginX: CSSObject['margin']; itemLabelMarginTop: CSSObject['margin']; itemLabelLineHeight: CSSObject['lineHeight']; paddingTop: CSSObject['paddingTop']; paddingBottom: CSSObject['paddingBottom']; paddingLeft: CSSObject['paddingLeft']; paddingRight: CSSObject['paddingRight']; gap: CSSObject['gap']; rowPaddingTop: CSSObject['paddingTop']; rowPaddingBottom: CSSObject['paddingBottom']; rowPaddingLeft: CSSObject['paddingLeft']; rowPaddingRight: CSSObject['paddingRight']; rowGap: CSSObject['gap']; }; item: { width: CSSObject['width']; height: CSSObject['height']; borderRadius: CSSObject['borderRadius']; gap: CSSObject['gap']; backgroundColor: { [key in MobileNavigationV2State]: CSSObject['backgroundColor']; }; color: { [key in MobileNavigationV2State]: CSSObject['color']; }; fontWeight: CSSObject['fontWeight']; icon: { width: CSSObject['width']; height: CSSObject['height']; borderRadius: CSSObject['borderRadius']; transition: CSSObject['transition']; /** SVG stroke width for Lucide-style icons. */ strokeWidth: number; }; text: { fontSize: CSSObject['fontSize']; fontWeight: CSSObject['fontWeight']; textAlign: CSSObject['textAlign']; }; }; primaryAction: { width: CSSObject['width']; height: CSSObject['height']; borderRadius: CSSObject['borderRadius']; background: CSSObject['background']; boxShadow: CSSObject['boxShadow']; color: CSSObject['color']; icon: { width: CSSObject['width']; height: CSSObject['height']; strokeWidth: number; }; }; }; export type ResponsiveMobileNavigationV2Tokens = { [key in keyof BreakpointType]: MobileNavigationV2TokenType; };