UNPKG

igniteui-theming

Version:

A set of Sass variables, mixins, and functions for generating palettes, typography, and elevations used by Ignite UI components.

63 lines (62 loc) 2.22 kB
import { PLATFORM_METADATA } from "../../knowledge/platforms/index.js"; import { SASS_USE_ASSEMBLY_NOTE } from "../../utils/sass.js"; import { generateElevations } from "../../generators/sass.js"; import { formatCssOutput, generateElevationsCss } from "../../generators/css.js"; //#region src/tools/handlers/elevations.ts /** * Handler for create_elevations tool. */ async function handleCreateElevations(params) { if ((params.output ?? (params.platform === "angular" ? "sass" : "css")) === "css") return handleCssOutput(params); return handleSassOutput(params); } async function handleCssOutput(params) { try { const result = await generateElevationsCss({ designSystem: params.designSystem }); const formattedCss = formatCssOutput(result.css, result.description); const responseParts = [result.description]; responseParts.push(""); responseParts.push("Output format: CSS custom properties"); responseParts.push(""); responseParts.push("```css"); responseParts.push(formattedCss.trimEnd()); responseParts.push("```"); return { content: [{ type: "text", text: responseParts.join("\n") }] }; } catch (error) { return { content: [{ type: "text", text: `**Error generating CSS elevations**\n\n${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } function handleSassOutput(params) { const result = generateElevations({ platform: params.platform, licensed: params.licensed, designSystem: params.designSystem, name: params.name }); const responseParts = [result.description]; const platformNote = params.platform ? `Platform: ${PLATFORM_METADATA[params.platform]?.name ?? params.platform}` : "Platform: Not specified (generic output). Specify `platform` for optimized code."; responseParts.push(""); responseParts.push(platformNote); responseParts.push(""); responseParts.push(`Variables used: ${result.variables.join(", ")}`); responseParts.push(""); responseParts.push("```scss"); responseParts.push(result.code.trimEnd()); responseParts.push("```"); responseParts.push(SASS_USE_ASSEMBLY_NOTE); return { content: [{ type: "text", text: responseParts.join("\n") }] }; } //#endregion export { handleCreateElevations };