{"version":3,"file":"label_language_mapping.js","sourceRoot":"","sources":["../../src/connect/label_language_mapping.ts"],"names":[],"mappings":";;;AAgEA,8DAYC;AA5ED;;GAEG;AACH,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,uCAAmB,CAAA;IACnB,oDAAgC,CAAA;IAChC,iCAAa,CAAA;IACb,+BAAW,CAAA;IACX,uCAAmB,CAAA;IACnB,iCAAa,CAAA;AACf,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B;AAED;;GAEG;AACH,IAAY,uBAqBX;AArBD,WAAY,uBAAuB;IACjC,oDAAyB,CAAA;IACzB,sCAAW,CAAA;IACX,wCAAa,CAAA;IACb,sCAAW,CAAA;IACX,oDAAyB,CAAA;IACzB,wCAAa,CAAA;IACb,wCAAa,CAAA;IACb,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,oCAAS,CAAA;IACT,sCAAW,CAAA;IACX,0CAAe,CAAA;IACf,4CAAiB,CAAA;IACjB,wCAAa,CAAA;IACb,wCAAa,CAAA;IACb,sCAAW,CAAA;IACX,kDAAuB,CAAA;IACvB,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,wCAAa,CAAA;AACf,CAAC,EArBW,uBAAuB,uCAAvB,uBAAuB,QAqBlC;AAED;;;GAGG;AACH,MAAM,qBAAqB,GAAsD;IAC/E,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,GAAG;IACrD,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAChE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC,KAAK;IACzD,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC,MAAM;IAC1D,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC,IAAI;IAC9D,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC,IAAI;IACrD,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC,IAAI;IACpD,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC,IAAI;IACxD,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC,SAAS;CAC3D,CAAA;AAED;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,KAAa,EACb,kBAA2C,uBAAuB,CAAC,SAAS;IAE5E,kDAAkD;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,CAAA;IAE3F,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,qBAAqB,CAAC,UAA8B,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC","sourcesContent":["/**\n * Default Code Connect labels for native parsers\n */\nexport enum CodeConnectLabel {\n React = 'React',\n Storybook = 'Storybook',\n SwiftUI = 'SwiftUI',\n Compose = 'Compose',\n WebComponents = 'Web Components',\n HTML = 'HTML',\n Vue = 'Vue',\n Angular = 'Angular',\n Code = 'Code', // Default/fallback label\n}\n\n/**\n * Supported Code Connect languages for syntax highlighting and formatting\n */\nexport enum SyntaxHighlightLanguage {\n TypeScript = 'typescript',\n CPP = 'cpp',\n Ruby = 'ruby',\n CSS = 'css',\n JavaScript = 'javascript',\n HTML = 'html',\n JSON = 'json',\n GraphQL = 'graphql',\n Python = 'python',\n Go = 'go',\n SQL = 'sql',\n Swift = 'swift',\n Kotlin = 'kotlin',\n Rust = 'rust',\n Bash = 'bash',\n XML = 'xml',\n Plaintext = 'plaintext',\n JSX = 'jsx',\n TSX = 'tsx',\n Dart = 'dart',\n}\n\n/**\n * Maps Code Connect labels to their corresponding language for syntax highlighting.\n * This is used for raw template files to infer the correct language.\n */\nconst LABEL_TO_LANGUAGE_MAP: Record = {\n [CodeConnectLabel.React]: SyntaxHighlightLanguage.JSX,\n [CodeConnectLabel.Storybook]: SyntaxHighlightLanguage.TypeScript,\n [CodeConnectLabel.SwiftUI]: SyntaxHighlightLanguage.Swift,\n [CodeConnectLabel.Compose]: SyntaxHighlightLanguage.Kotlin,\n [CodeConnectLabel.WebComponents]: SyntaxHighlightLanguage.HTML,\n [CodeConnectLabel.HTML]: SyntaxHighlightLanguage.HTML,\n [CodeConnectLabel.Vue]: SyntaxHighlightLanguage.HTML,\n [CodeConnectLabel.Angular]: SyntaxHighlightLanguage.HTML,\n [CodeConnectLabel.Code]: SyntaxHighlightLanguage.Plaintext,\n}\n\n/**\n * Infers the appropriate language for a raw template file based on its label.\n * Falls back to 'plaintext' if the label is not recognized.\n *\n * @param label - The label associated with the Code Connect file\n * @returns The corresponding language identifier for syntax highlighting\n */\nexport function getInferredLanguageForRaw(\n label: string,\n defaultLanguage: SyntaxHighlightLanguage = SyntaxHighlightLanguage.Plaintext,\n): SyntaxHighlightLanguage {\n // Try to match against known labels (enum values)\n const knownLabel = Object.values(CodeConnectLabel).find((enumLabel) => enumLabel === label)\n\n if (knownLabel) {\n return LABEL_TO_LANGUAGE_MAP[knownLabel as CodeConnectLabel]\n }\n\n return defaultLanguage\n}\n"]}