//
//  ShortNames.swift
//
//  AUTO-GENERATED from data/components.json
//  DO NOT EDIT MANUALLY - Changes will be overwritten
//  Schema version: 1.0.0

import Foundation

/// Unified short name mappings for props, style properties, and modifiers
/// Used to expand compressed payload keys back to their full names
public enum ShortNames {
  /// Mapping from short names to full names
  private static let shortToName: [String: String] = [
    "ap": "absolutePosition",
    "al": "alignment",
    "ar": "aspectRatio",
    "ahe": "autoHideOnEnd",
    "bkg": "background",
    "bg": "backgroundColor",
    "bgs": "backgroundStyle",
    "bd": "border",
    "bc": "borderColor",
    "br": "borderRadius",
    "bw": "borderWidth",
    "b": "bottom",
    "bs": "buttonStyle",
    "clip": "clipped",
    "c": "color",
    "cls": "colors",
    "cr": "cornerRadius",
    "cd": "countDown",
    "cvl": "currentValueLabel",
    "dv": "defaultValue",
    "dir": "direction",
    "dth": "dither",
    "dur": "durationMs",
    "end": "endAtMs",
    "ep": "endPoint",
    "fsh": "fixedSizeHorizontal",
    "fsv": "fixedSizeVertical",
    "fl": "flex",
    "fg": "flexGrow",
    "fgw": "flexGrowWidth",
    "fnt": "font",
    "fs": "fontSize",
    "fvar": "fontVariant",
    "fw": "fontWeight",
    "fgs": "foregroundStyle",
    "f": "frame",
    "gs": "gaugeStyle",
    "ge": "glassEffect",
    "h": "height",
    "it": "italic",
    "kern": "kerning",
    "lbl": "label",
    "lp": "layoutPriority",
    "l": "left",
    "ls": "letterSpacing",
    "lh": "lineHeight",
    "ll": "lineLimit",
    "lsp": "lineSpacing",
    "lw": "lineWidth",
    "m": "margin",
    "mb": "marginBottom",
    "mh": "marginHorizontal",
    "ml": "marginLeft",
    "mr": "marginRight",
    "mt": "marginTop",
    "mv": "marginVertical",
    "me": "maskElement",
    "maxh": "maxHeight",
    "max": "maximumValue",
    "maxl": "maximumValueLabel",
    "maxw": "maxWidth",
    "minh": "minHeight",
    "min": "minimumValue",
    "minvl": "minimumValueLabel",
    "minl": "minLength",
    "minw": "minWidth",
    "md": "monospacedDigit",
    "mta": "multilineTextAlignment",
    "n": "name",
    "nol": "numberOfLines",
    "off": "offset",
    "ox": "offsetX",
    "oy": "offsetY",
    "op": "opacity",
    "ov": "overflow",
    "pad": "padding",
    "pb": "paddingBottom",
    "ph": "paddingHorizontal",
    "pl": "paddingLeft",
    "pr": "paddingRight",
    "pt": "paddingTop",
    "pv": "paddingVertical",
    "pos": "position",
    "pc": "progressColor",
    "rm": "resizeMode",
    "r": "right",
    "re": "rotationEffect",
    "sc": "scale",
    "sce": "scaleEffect",
    "sh": "shadow",
    "shc": "shadowColor",
    "sho": "shadowOffset",
    "shop": "shadowOpacity",
    "shr": "shadowRadius",
    "sz": "size",
    "smc": "smallCaps",
    "src": "source",
    "sp": "spacing",
    "start": "startAtMs",
    "stp": "startPoint",
    "sts": "stops",
    "st": "strikethrough",
    "s": "style",
    "si": "systemImage",
    "ta": "textAlign",
    "tdl": "textDecorationLine",
    "ts": "textStyle",
    "tt": "textTemplates",
    "th": "thumb",
    "tnt": "tint",
    "tc": "tintColor",
    "ttl": "title",
    "t": "top",
    "trc": "trackColor",
    "tf": "transform",
    "typ": "type",
    "ul": "underline",
    "v": "value",
    "wt": "weight",
    "w": "width",
    "zi": "zIndex",
  ]

  /// Expand a short name to its full form
  /// - Parameter short: The short name (e.g., "bg", "al", "sp")
  /// - Returns: The full name (e.g., "backgroundColor", "alignment", "spacing"), or the input if no mapping exists
  public static func expand(_ short: String) -> String {
    shortToName[short] ?? short
  }
}
