{"version":3,"sources":["../src/components/Theme/v9BrandVariantsShim.ts"],"sourcesContent":["import type { IPalette } from '@fluentui/react';\nimport type { BrandVariants } from '@fluentui/react-components';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport type { ColorInput } from '@ctrl/tinycolor';\n\n/**\n * A helper to mix colors using tiny color by an amount and get back a hex string.\n */\nconst mixColors = (colorA: ColorInput, colorB: ColorInput, amount?: number) => {\n  return new TinyColor(colorA).mix(new TinyColor(colorB), amount).toHexString();\n};\n\n/**\n * Creates a v9 brand ramp by pairwise mixing v8 palette colors.\n */\nconst mixByPairs = (palette: IPalette): BrandVariants => {\n  return {\n    10: palette.themeDarker,\n    20: mixColors(palette.themeDarker, palette.themeDark),\n    30: palette.themeDark,\n    40: mixColors(palette.themeDark, palette.themeDarkAlt),\n    50: palette.themeDarkAlt,\n    60: mixColors(palette.themeDarkAlt, palette.themePrimary),\n    70: palette.themePrimary,\n    80: mixColors(palette.themePrimary, palette.themeSecondary),\n    90: palette.themeSecondary,\n    100: mixColors(palette.themeSecondary, palette.themeTertiary),\n    110: palette.themeTertiary,\n    120: mixColors(palette.themeTertiary, palette.themeLight),\n    130: palette.themeLight,\n    140: mixColors(palette.themeLight, palette.themeLighter),\n    150: palette.themeLighter,\n    160: mixColors(palette.themeLighter, palette.themeLighterAlt),\n  };\n};\n\n/**\n * Creates a v9 brand ramp by mixing v8 palette colors\n * using steps between themeDarker and themePrimary and\n * between themePrimary and themeLighterAlt.\n */\nconst mixPrimaryAndEnds = (palette: IPalette): BrandVariants => {\n  return {\n    10: palette.themeDarker,\n    20: mixColors(palette.themeDarker, palette.themePrimary, 20),\n    30: mixColors(palette.themeDarker, palette.themePrimary, 30),\n    40: mixColors(palette.themeDarker, palette.themePrimary, 40),\n    50: mixColors(palette.themeDarker, palette.themePrimary, 50),\n    60: mixColors(palette.themeDarker, palette.themePrimary, 60),\n    70: mixColors(palette.themeDarker, palette.themePrimary, 70),\n    80: palette.themePrimary,\n    90: mixColors(palette.themePrimary, palette.themeLighterAlt, 10),\n    100: mixColors(palette.themePrimary, palette.themeLighterAlt, 20),\n    110: mixColors(palette.themePrimary, palette.themeLighterAlt, 30),\n    120: mixColors(palette.themePrimary, palette.themeLighterAlt, 40),\n    130: mixColors(palette.themePrimary, palette.themeLighterAlt, 50),\n    140: mixColors(palette.themePrimary, palette.themeLighterAlt, 60),\n    150: mixColors(palette.themePrimary, palette.themeLighterAlt, 70),\n    160: palette.themeLighterAlt,\n  };\n};\n\ntype Interpolation = 'pairs' | 'primaryAndEnds';\n\n/**\n * Creates v9 brand colors from a v8 palette using interpolation\n * A v8 palette has nine colors and v9 has sixteen colors.\n */\nexport const createBrandVariants = (palette: IPalette, interpolation: Interpolation = 'pairs'): BrandVariants => {\n  switch (interpolation) {\n    case 'primaryAndEnds':\n      return mixPrimaryAndEnds(palette);\n    case 'pairs':\n    default:\n      return mixByPairs(palette);\n  }\n};\n"],"names":["TinyColor","mixColors","colorA","colorB","amount","mix","toHexString","mixByPairs","palette","themeDarker","themeDark","themeDarkAlt","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","mixPrimaryAndEnds","createBrandVariants","interpolation"],"mappings":";;;;;;;;;;2BAE0B,kBAAkB;AAG5C;;CAEC,GACD,MAAMC,YAAY,CAACC,QAAoBC,QAAoBC;IACzD,OAAO,IAAIJ,oBAAAA,CAAUE,QAAQG,GAAG,CAAC,IAAIL,oBAAAA,CAAUG,SAASC,QAAQE,WAAW;AAC7E;AAEA;;CAEC,GACD,MAAMC,aAAa,CAACC;IAClB,OAAO;QACL,IAAIA,QAAQC,WAAW;QACvB,IAAIR,UAAUO,QAAQC,WAAW,EAAED,QAAQE,SAAS;QACpD,IAAIF,QAAQE,SAAS;QACrB,IAAIT,UAAUO,QAAQE,SAAS,EAAEF,QAAQG,YAAY;QACrD,IAAIH,QAAQG,YAAY;QACxB,IAAIV,UAAUO,QAAQG,YAAY,EAAEH,QAAQI,YAAY;QACxD,IAAIJ,QAAQI,YAAY;QACxB,IAAIX,UAAUO,QAAQI,YAAY,EAAEJ,QAAQK,cAAc;QAC1D,IAAIL,QAAQK,cAAc;QAC1B,KAAKZ,UAAUO,QAAQK,cAAc,EAAEL,QAAQM,aAAa;QAC5D,KAAKN,QAAQM,aAAa;QAC1B,KAAKb,UAAUO,QAAQM,aAAa,EAAEN,QAAQO,UAAU;QACxD,KAAKP,QAAQO,UAAU;QACvB,KAAKd,UAAUO,QAAQO,UAAU,EAAEP,QAAQQ,YAAY;QACvD,KAAKR,QAAQQ,YAAY;QACzB,KAAKf,UAAUO,QAAQQ,YAAY,EAAER,QAAQS,eAAe;IAC9D;AACF;AAEA;;;;CAIC,GACD,MAAMC,oBAAoB,CAACV;IACzB,OAAO;QACL,IAAIA,QAAQC,WAAW;QACvB,IAAIR,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIX,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIX,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIX,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIX,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIX,UAAUO,QAAQC,WAAW,EAAED,QAAQI,YAAY,EAAE;QACzD,IAAIJ,QAAQI,YAAY;QACxB,IAAIX,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC7D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKhB,UAAUO,QAAQI,YAAY,EAAEJ,QAAQS,eAAe,EAAE;QAC9D,KAAKT,QAAQS,eAAe;IAC9B;AACF;AAQO,MAAME,sBAAsB,CAACX,SAAmBY,gBAA+B,OAAO;IAC3F,OAAQA;QACN,KAAK;YACH,OAAOF,kBAAkBV;QAC3B,KAAK;QACL;YACE,OAAOD,WAAWC;IACtB;AACF,EAAE"}