/** * Shared SAIL type definitions * These types are used across multiple components to ensure consistency */ /** * Border radius/shape values matching SAIL's shape parameter */ export type SAILShape = "SQUARED" | "SEMI_ROUNDED" | "ROUNDED" /** * Padding values matching SAIL's padding parameter */ export type SAILPadding = "NONE" | "EVEN_LESS" | "LESS" | "STANDARD" | "MORE" | "EVEN_MORE" /** * Margin size values matching SAIL's marginAbove/marginBelow parameters */ export type SAILMarginSize = "NONE" | "EVEN_LESS" | "LESS" | "STANDARD" | "MORE" | "EVEN_MORE" /** * Common size values matching SAIL's size parameter */ export type SAILSize = "SMALL" | "STANDARD" | "MEDIUM" | "LARGE" /** * Extended size values (includes additional sizes used by some components) */ export type SAILSizeExtended = SAILSize | "MEDIUM_PLUS" | "LARGE_PLUS" | "EXTRA_LARGE" /** * Alignment values matching SAIL's align parameter */ export type SAILAlign = "START" | "CENTER" | "END" /** * Legacy alignment values used by older SAIL components (text fields, rich text, * checkboxes, links, editable grid headers). These components accept both the * modern START/CENTER/END and the older LEFT/CENTER/RIGHT systems. * * See: Appian docs — older form-input components use LEFT/CENTER/RIGHT while * newer display components use START/CENTER/END. */ export type SAILAlignLegacy = "START" | "CENTER" | "END" | "LEFT" | "RIGHT" /** * Label position values matching SAIL's labelPosition parameter */ export type SAILLabelPosition = "ABOVE" | "ADJACENT" | "COLLAPSED" | "JUSTIFIED" /** * Semantic color values matching SAIL's color constants */ export type SAILSemanticColor = "ACCENT" | "POSITIVE" | "NEGATIVE" | "SECONDARY" | "STANDARD" /** * Re-export palette colors generated from tokens/tokens.json */ export type { SAILPaletteColor } from './palette-colors.generated' /** * Combined color type: semantic names OR palette tokens (e.g. TEAL_700) * Components that accept arbitrary colors should use this type. */ import type { SAILPaletteColor as _PaletteColor } from './palette-colors.generated' export type SAILColor = SAILSemanticColor | _PaletteColor /** * Color prop type that preserves IntelliSense autocomplete for known tokens * while still accepting arbitrary hex strings. * * Uses the `string & {}` trick so TypeScript doesn't collapse the union to `string`. */ export type SAILColorInput = SAILColor | (string & {}) /** * Sort configuration for grid columns */ export interface SortInfo { field: string; ascending: boolean; } /** * Grid height values matching SAIL's height parameter for grids */ export type SAILGridHeight = | "SHORT" | "SHORT_PLUS" | "MEDIUM" | "MEDIUM_PLUS" | "TALL" | "TALL_PLUS" | "EXTRA_TALL" | "AUTO"; /** * Grid column width values matching SAIL's width parameter for grid columns */ export type SAILGridColumnWidth = | "AUTO" | "ICON" | "ICON_PLUS" | "NARROW" | "NARROW_PLUS" | "MEDIUM" | "MEDIUM_PLUS" | "WIDE" | "1X" | "2X" | "3X" | "4X" | "5X" | "6X" | "7X" | "8X" | "9X" | "10X";