{"version":3,"file":"ThemeUtil.0d84166e.js","sources":["../../app/javascript/app/utils/ThemeUtil.js"],"sourcesContent":["import ColorUtil from \"./ColorUtil\";\n\nexport default class ThemeUtil {\n\n static newStyleGuide() {\n\n return {\n id: null,\n user_id: null,\n name: 'New Style Guide',\n header_font: {\n family: 'Lato',\n weight: '900',\n },\n text_font: {\n family: 'Roboto',\n weight: '300',\n },\n }\n }\n\n updateButtonStyles(bgColor, buttonObject) {\n\n let colorObject = ColorUtil.getColorObject(bgColor)\n buttonObject.background_color = bgColor\n let colorFamily = webase.utils.color.getFamilyColors(colorObject.color)\n let colorShade = Number(colorObject.shade)\n let contrastShade = colorShade > 400 ? 100 : 700\n buttonObject.color = colorFamily[contrastShade]\n buttonObject.border_color = colorFamily[contrastShade]\n let hoverBgShade = colorShade < 700 ? colorShade + 200 : colorShade - 200\n\n // ensure we don't end up with a missing color like 750\n if(colorShade === 50) {\n hoverBgShade = 300\n }\n\n buttonObject.hover_color = colorFamily[hoverBgShade]\n buttonObject.hover_border_color = colorFamily[hoverBgShade] // TODO: we can do better\n }\n\n updateDefaultCardTheme(currentTheme) {\n currentTheme.card.background_color = currentTheme.primary_background.background_color\n currentTheme.card.color = currentTheme.primary_background.color\n currentTheme.card.border_color = currentTheme.primary_background.color\n currentTheme.card.box_shadow_color = currentTheme.primary_background.background_color\n }\n\n convertToFullTheme(newTheme) {\n let theme = this.defaultTheme()\n theme.name = newTheme.name\n theme.primary_background.background_color = newTheme.primary.bgColor\n theme.primary_background.color = newTheme.primary.color\n theme.secondary_background.background_color = newTheme.secondary.bgColor ? newTheme.secondary.bgColor : newTheme.primary.color\n theme.secondary_background.color = newTheme.secondary.color ? newTheme.secondary.color : newTheme.primary.bgColor\n theme.header_font = newTheme.header_font\n theme.text_font = newTheme.text_font\n\n theme.nav.background_color = newTheme.primary.color\n theme.nav.color = newTheme.primary.bgColor\n\n this.updateDefaultCardTheme(theme)\n this.updateButtonStyles(newTheme.ctaColor, theme.primary_button)\n this.updateButtonStyles(newTheme.primary.color, theme.secondary_button)\n return theme\n }\n\n newTheme() {\n\n // This is not a full theme, but just a partial one used for gathering top-level\n\n return {\n name: '',\n ctaColor: '',\n primary: {\n bgColor: '',\n color: '',\n },\n secondary: {\n bgColor: '',\n color: '',\n },\n header_font: {\n family: 'Lato',\n weight: '900',\n },\n text_font: {\n family: 'Inter',\n weight: 'regular',\n },\n }\n }\n\n defaultTheme() {\n\n return {\n id: null,\n user_id: null,\n name: 'New Theme',\n header_font: {\n family: 'Lato',\n weight: '900',\n },\n text_font: {\n family: 'Roboto',\n weight: '300',\n },\n primary_background: {\n type: 'solid',\n background_color: '#312e81',\n background_color2: '',\n color: '#fcfcfc'\n },\n secondary_background: {\n type: 'solid',\n background_color: '#171717',\n background_color2: '',\n color: '#fcfcfc'\n },\n primary_button: {\n background_color: \"#1d4ed8\",\n hover_color: '#1e40af',\n color: '#fcfcfc',\n border_color: '#1d4ed8',\n hover_border_color: '#1d4ed8'\n },\n secondary_button: {\n background_color: \"#1e3a8a\",\n hover_color: '#1e40af',\n color: '#fcfcfc',\n border_color: '#1e3a8a',\n hover_border_color: '#1e3a8a'\n },\n card: {\n background_color: \"#292524\",\n color: '#f5f3ff',\n border_color: '#8b5cf6',\n box_shadow_color: '#a78bfa',\n show_box_shadow: true\n },\n nav: {},\n link: {},\n footer: {},\n }\n\n }\n}"],"names":["ThemeUtil","bgColor","buttonObject","colorObject","ColorUtil","colorFamily","colorShade","contrastShade","hoverBgShade","currentTheme","newTheme","theme"],"mappings":"4CAEe,MAAMA,CAAU,CAE3B,OAAO,eAAgB,CAEnB,MAAO,CACH,GAAI,KACJ,QAAS,KACT,KAAM,kBACN,YAAa,CACT,OAAQ,OACR,OAAQ,KACX,EACD,UAAW,CACP,OAAQ,SACR,OAAQ,KACX,CACJ,CACJ,CAED,mBAAmBC,EAASC,EAAc,CAEtC,IAAIC,EAAcC,EAAU,eAAeH,CAAO,EAClDC,EAAa,iBAAmBD,EAChC,IAAII,EAAc,OAAO,MAAM,MAAM,gBAAgBF,EAAY,KAAK,EAClEG,EAAa,OAAOH,EAAY,KAAK,EACrCI,EAAgBD,EAAa,IAAM,IAAM,IAC7CJ,EAAa,MAAQG,EAAYE,CAAa,EAC9CL,EAAa,aAAeG,EAAYE,CAAa,EACrD,IAAIC,EAAeF,EAAa,IAAMA,EAAa,IAAMA,EAAa,IAGnEA,IAAe,KACdE,EAAe,KAGnBN,EAAa,YAAcG,EAAYG,CAAY,EACnDN,EAAa,mBAAqBG,EAAYG,CAAY,CAC7D,CAED,uBAAuBC,EAAc,CACjCA,EAAa,KAAK,iBAAmBA,EAAa,mBAAmB,iBACrEA,EAAa,KAAK,MAAQA,EAAa,mBAAmB,MAC1DA,EAAa,KAAK,aAAeA,EAAa,mBAAmB,MACjEA,EAAa,KAAK,iBAAmBA,EAAa,mBAAmB,gBACxE,CAED,mBAAmBC,EAAU,CACzB,IAAIC,EAAQ,KAAK,aAAc,EAC/B,OAAAA,EAAM,KAAOD,EAAS,KACtBC,EAAM,mBAAmB,iBAAmBD,EAAS,QAAQ,QAC7DC,EAAM,mBAAmB,MAAQD,EAAS,QAAQ,MAClDC,EAAM,qBAAqB,iBAAmBD,EAAS,UAAU,QAAUA,EAAS,UAAU,QAAUA,EAAS,QAAQ,MACzHC,EAAM,qBAAqB,MAAQD,EAAS,UAAU,MAASA,EAAS,UAAU,MAAQA,EAAS,QAAQ,QAC3GC,EAAM,YAAcD,EAAS,YAC7BC,EAAM,UAAYD,EAAS,UAE3BC,EAAM,IAAI,iBAAmBD,EAAS,QAAQ,MAC9CC,EAAM,IAAI,MAAQD,EAAS,QAAQ,QAEnC,KAAK,uBAAuBC,CAAK,EACjC,KAAK,mBAAmBD,EAAS,SAAUC,EAAM,cAAc,EAC/D,KAAK,mBAAmBD,EAAS,QAAQ,MAAOC,EAAM,gBAAgB,EAC/DA,CACV,CAED,UAAW,CAIP,MAAO,CACH,KAAM,GACN,SAAU,GACV,QAAS,CACL,QAAS,GACT,MAAO,EACV,EACD,UAAW,CACP,QAAS,GACT,MAAO,EACV,EACD,YAAa,CACT,OAAQ,OACR,OAAQ,KACX,EACD,UAAW,CACP,OAAQ,QACR,OAAQ,SACX,CACJ,CACJ,CAED,cAAe,CAEX,MAAO,CACH,GAAI,KACJ,QAAS,KACT,KAAM,YACN,YAAa,CACT,OAAQ,OACR,OAAQ,KACX,EACD,UAAW,CACP,OAAQ,SACR,OAAQ,KACX,EACD,mBAAoB,CAChB,KAAM,QACN,iBAAkB,UAClB,kBAAmB,GACnB,MAAO,SACV,EACD,qBAAsB,CAClB,KAAM,QACN,iBAAkB,UAClB,kBAAmB,GACnB,MAAO,SACV,EACD,eAAgB,CACZ,iBAAkB,UAClB,YAAa,UACb,MAAO,UACP,aAAc,UACd,mBAAoB,SACvB,EACD,iBAAkB,CACd,iBAAkB,UAClB,YAAa,UACb,MAAO,UACP,aAAc,UACd,mBAAoB,SACvB,EACD,KAAM,CACF,iBAAkB,UAClB,MAAO,UACP,aAAc,UACd,iBAAkB,UAClB,gBAAiB,EACpB,EACD,IAAK,CAAE,EACP,KAAM,CAAE,EACR,OAAQ,CAAE,CACb,CAEJ,CACL"}