one
Version:
One is a React framework for web, iOS, and Android apps.
113 lines • 4.19 kB
TypeScript
import type { ReactNode } from 'react';
import type { ColorValue, ViewProps } from 'react-native';
import type { GlassEffect, GlassEffectShape, Material, OneNativeStyle, OneNativeViewProps } from './controlTypes';
import type * as Styles from './swiftui';
import type { ColorScheme, ControlSize, DynamicTypeSize, SpacerSizing, ToolbarItemPlacement } from './swiftui';
import type { SFSymbolName } from './sfSymbolNames';
export type HostAxis = 'vertical' | 'horizontal';
export type HostAlignment = 'leading' | 'center' | 'trailing';
export type ZStackAlignment = 'topLeading' | 'top' | 'topTrailing' | 'leading' | 'center' | 'trailing' | 'bottomLeading' | 'bottom' | 'bottomTrailing';
export interface EnvironmentProps {
colorScheme?: ColorScheme;
dynamicTypeSize?: DynamicTypeSize;
controlSize?: ControlSize;
locale?: string;
tint?: ColorValue;
isEnabled?: boolean;
}
export interface HostProps extends ViewProps, EnvironmentProps {
axis?: HostAxis;
spacing?: number;
alignment?: HostAlignment;
children: ReactNode;
}
export type StackProps = Omit<HostProps, 'axis'>;
export interface ZStackProps extends ViewProps {
alignment?: ZStackAlignment;
children: ReactNode;
}
export interface SpacerProps extends ViewProps {
minLength?: number;
}
export type FormSizing = 'fill' | 'content';
export interface FormProps extends ViewProps, EnvironmentProps {
sizing?: FormSizing;
children: ReactNode;
}
export interface SectionProps extends ViewProps {
title?: string;
footer?: string;
swiftStyle?: OneNativeStyle;
children: ReactNode;
}
export interface LabeledContentProps extends ViewProps {
label: string;
value?: string;
systemImage?: SFSymbolName | '';
children?: ReactNode;
}
export interface ButtonProps extends OneNativeViewProps {
onPress?: () => void;
label?: string;
disabled?: boolean;
subtitle?: string;
systemImage?: SFSymbolName | '';
buttonRole?: Styles.ButtonRole | '';
buttonStyle?: Styles.PrimitiveButtonStyle;
disclosureIndicator?: boolean;
children?: ReactNode;
}
export interface GlassProps extends ViewProps {
material?: Material;
glassEffect?: GlassEffect;
interactive?: boolean;
shape?: GlassEffectShape;
cornerRadius?: number;
tint?: ColorValue;
colorScheme?: ColorScheme;
children: ReactNode;
}
export interface SlotProps extends ViewProps {
height: number;
width?: number;
children: ReactNode;
}
export interface NavigationStackProps extends OneNativeViewProps {
children: ReactNode;
}
export type NavigationSplitViewVisibility = 'automatic' | 'all' | 'doubleColumn' | 'detailOnly';
export type NavigationSplitViewColumn = 'sidebar' | 'content' | 'detail';
export interface NavigationSplitViewProps extends OneNativeViewProps {
columnVisibility?: NavigationSplitViewVisibility;
onColumnVisibilityChange?: (visibility: NavigationSplitViewVisibility) => void;
preferredCompactColumn?: NavigationSplitViewColumn;
onPreferredCompactColumnChange?: (column: NavigationSplitViewColumn) => void;
children: ReactNode;
}
export interface NavigationSplitViewColumnProps extends OneNativeViewProps {
children: ReactNode;
}
export interface ToolbarProps extends ViewProps {
children: ReactNode;
}
export interface ToolbarContentProps extends ViewProps {
children: ReactNode;
}
export interface ToolbarItemProps extends OneNativeViewProps {
placement?: ToolbarItemPlacement;
children: ReactNode;
}
export interface ToolbarItemGroupProps extends OneNativeViewProps {
placement?: ToolbarItemPlacement;
label?: string;
systemImage?: SFSymbolName | '';
children: ReactNode;
}
export interface ToolbarSpacerProps extends ViewProps {
sizing?: SpacerSizing;
placement?: ToolbarItemPlacement;
}
export declare const hostAxes: readonly ['vertical', 'horizontal'];
export declare const hostAlignments: readonly ['leading', 'center', 'trailing'];
export declare const zStackAlignments: readonly ['topLeading', 'top', 'topTrailing', 'leading', 'center', 'trailing', 'bottomLeading', 'bottom', 'bottomTrailing'];
//# sourceMappingURL=containerTypes.d.ts.map