// Generated by purs version 0.13.6 "use strict"; var Color = require("../Color/index.js"); var Control_Semigroupoid = require("../Control.Semigroupoid/index.js"); var Data_Array_NonEmpty_Internal = require("../Data.Array.NonEmpty.Internal/index.js"); var Data_Foldable = require("../Data.Foldable/index.js"); var Data_Monoid = require("../Data.Monoid/index.js"); var Data_Symbol = require("../Data.Symbol/index.js"); var Record_Builder = require("../Record.Builder/index.js"); var increaseContrast = function (contrastWith) { var modify = (function () { var $546 = Color.isLight(contrastWith); if ($546) { return Color.darken; }; return Color.lighten; })(); var go = function ($copy_i) { return function ($copy_col) { var $tco_var_i = $copy_i; var $tco_done = false; var $tco_result; function $tco_loop(i, col) { var $547 = Color.contrast(contrastWith)(col) >= 7.5 || i >= 20; if ($547) { $tco_done = true; return col; }; $tco_var_i = i + 1 | 0; $copy_col = modify(0.1)(col); return; }; while (!$tco_done) { $tco_result = $tco_loop($tco_var_i, $copy_col); }; return $tco_result; }; }; return go(0); }; var f = Data_Symbol.SProxy.value; var fromTheme = function (theme) { var isLightTheme = Color.isLight(theme.backgroundColour); var lighter = (function () { if (isLightTheme) { return Color.lighten(4.0e-2); }; return Color.lighten(2.0e-2); })(); var darker = (function () { if (isLightTheme) { return Color.darken(1.0e-2); }; return Color.darken(1.0e-2); })(); return Record_Builder.build(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "backgroundColour"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "backgroundColourLighter"; }))(f)(Color.toHexString(lighter(theme.backgroundColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "backgroundColourLightest"; }))(f)(Color.toHexString(lighter(lighter(theme.backgroundColour)))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "backgroundColourDarker"; }))(f)(Color.toHexString(darker(theme.backgroundColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "backgroundColourDarkest"; }))(f)(Color.toHexString(darker(darker(theme.backgroundColour)))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "interfaceColour"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "interfaceColourLighter"; }))(f)(Color.toHexString(lighter(theme.interfaceColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "interfaceColourLightest"; }))(f)((function ($550) { return Color.toHexString(lighter($550)); })(lighter(theme.interfaceColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "interfaceColourDarker"; }))(f)(Color.toHexString(darker(theme.interfaceColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "interfaceColourDarkest"; }))(f)((function ($551) { return Color.toHexString(darker($551)); })(darker(theme.interfaceColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textColour"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textColourLighter"; }))(f)(Color.toHexString(lighter(theme.textColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textColourLightest"; }))(f)((function ($552) { return Color.toHexString(lighter($552)); })(lighter(theme.textColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textColourDarker"; }))(f)(Color.toHexString(darker(theme.textColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textColourDarkest"; }))(f)((function ($553) { return Color.toHexString(darker($553)); })(darker(theme.textColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "highlightColour"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "highlightColourDark"; }))(f)(Color.toHexString(Color.rotateHue(-10.0)(Color.darken(0.2)(theme.highlightColour)))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "altHighlightColour"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "altHighlightColourDark"; }))(f)(Color.toHexString(Color.darken(0.2)(theme.altHighlightColour))))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "yellow"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "green"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "pink"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "orange"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "turquoise"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "red"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "blue"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "white"; }))(f)(Color.toHexString))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "textFontFamily"; }))(f)(Data_Foldable.intercalate(Data_Array_NonEmpty_Internal.foldableNonEmptyArray)(Data_Monoid.monoidString)(",")))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "headingFontFamily"; }))(f)(Data_Foldable.intercalate(Data_Array_NonEmpty_Internal.foldableNonEmptyArray)(Data_Monoid.monoidString)(",")))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.modify()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "codeFontFamily"; }))(f)(Data_Foldable.intercalate(Data_Array_NonEmpty_Internal.foldableNonEmptyArray)(Data_Monoid.monoidString)(",")))(Control_Semigroupoid.composeFlipped(Record_Builder.semigroupoidBuilder)(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "isLight"; }))(f)(isLightTheme))(Record_Builder.insert()()(new Data_Symbol.IsSymbol(function ($dollar__unused) { return "fontWeightBold"; }))(f)("300")))))))))))))))))))))))))))))))))(theme); }; module.exports = { increaseContrast: increaseContrast, f: f, fromTheme: fromTheme };