{"version":3,"file":"createColors.cjs","sources":["../../../src/themes/createColors.ts"],"sourcesContent":["import { merge } from 'lodash';\nimport { z } from 'zod';\n\nimport { alpha, darken, emphasize, getContrastRatio, lighten } from './colorManipulator';\nimport { palette } from './palette';\nimport { DeepRequired, ThemeRichColor, ThemeRichColorInputSchema } from './types';\n\nconst ThemeColorsModeSchema = z.enum(['light', 'dark']);\n/** @internal */\nexport type ThemeColorsMode = z.infer<typeof ThemeColorsModeSchema>;\n\nconst createThemeColorsBaseSchema = <TColor>(color: TColor) =>\n  z\n    .object({\n      mode: ThemeColorsModeSchema,\n\n      primary: color,\n      secondary: color,\n      info: color,\n      error: color,\n      success: color,\n      warning: color,\n\n      text: z.object({\n        primary: z.string().optional(),\n        secondary: z.string().optional(),\n        disabled: z.string().optional(),\n        link: z.string().optional(),\n        /** Used for auto white or dark text on colored backgrounds */\n        maxContrast: z.string().optional(),\n      }),\n\n      background: z.object({\n        /** Dashboard and body background */\n        canvas: z.string().optional(),\n        /** Primary content pane background (panels etc) */\n        primary: z.string().optional(),\n        /** Cards and elements that need to stand out on the primary background */\n        secondary: z.string().optional(),\n        /**\n         * For popovers and menu backgrounds. This is the same color as primary in most light themes but in dark\n         * themes it has a brighter shade to help give it contrast against the primary background.\n         **/\n        elevated: z.string().optional(),\n      }),\n\n      border: z.object({\n        weak: z.string().optional(),\n        medium: z.string().optional(),\n        strong: z.string().optional(),\n      }),\n\n      gradients: z.object({\n        brandVertical: z.string().optional(),\n        brandHorizontal: z.string().optional(),\n      }),\n\n      action: z.object({\n        /** Used for selected menu item / select option */\n        selected: z.string().optional(),\n        /**\n         * @alpha (Do not use from plugins)\n         * Used for selected items when background only change is not enough (Currently only used for FilterPill)\n         **/\n        selectedBorder: z.string().optional(),\n        /** Used for hovered menu item / select option */\n        hover: z.string().optional(),\n        /** Used for button/colored background hover opacity */\n        hoverOpacity: z.number().optional(),\n        /** Used focused menu item / select option */\n        focus: z.string().optional(),\n        /** Used for disabled buttons and inputs */\n        disabledBackground: z.string().optional(),\n        /** Disabled text */\n        disabledText: z.string().optional(),\n        /** Disablerd opacity */\n        disabledOpacity: z.number().optional(),\n      }),\n\n      hoverFactor: z.number(),\n      contrastThreshold: z.number(),\n      tonalOffset: z.number(),\n    })\n    .partial();\n\n// Need to override the zod type to include the generic properly\n/** @internal */\nexport type ThemeColorsBase<TColor> = DeepRequired<\n  Omit<\n    z.infer<ReturnType<typeof createThemeColorsBaseSchema>>,\n    'primary' | 'secondary' | 'info' | 'error' | 'success' | 'warning'\n  >\n> & {\n  primary: TColor;\n  secondary: TColor;\n  info: TColor;\n  error: TColor;\n  success: TColor;\n  warning: TColor;\n};\n\nexport interface ThemeHoverStrengh {}\n\n/** @beta */\nexport interface ThemeColors extends ThemeColorsBase<ThemeRichColor> {\n  /** Returns a text color for the background */\n  getContrastText(background: string, threshold?: number): string;\n  /* Brighten or darken a color by specified factor (0-1) */\n  emphasize(color: string, amount?: number): string;\n}\n\nexport const ThemeColorsInputSchema = createThemeColorsBaseSchema(ThemeRichColorInputSchema);\n\n/** @internal */\nexport type ThemeColorsInput = z.infer<typeof ThemeColorsInputSchema>;\n\nclass DarkColors implements ThemeColorsBase<Partial<ThemeRichColor>> {\n  mode: ThemeColorsMode = 'dark';\n\n  // Used to get more white opacity colors\n  whiteBase = '204, 204, 220';\n\n  border = {\n    weak: `rgba(${this.whiteBase}, 0.12)`,\n    medium: `rgba(${this.whiteBase}, 0.2)`,\n    strong: `rgba(${this.whiteBase}, 0.30)`,\n  };\n\n  text = {\n    primary: `rgb(${this.whiteBase})`,\n    secondary: `rgba(${this.whiteBase}, 0.65)`,\n    disabled: `rgba(${this.whiteBase}, 0.61)`,\n    link: palette.blueDarkText,\n    maxContrast: palette.white,\n  };\n\n  primary = {\n    main: palette.blueDarkMain,\n    text: palette.blueDarkText,\n    border: palette.blueDarkText,\n  };\n\n  secondary = {\n    main: `rgba(${this.whiteBase}, 0.10)`,\n    shade: `rgba(${this.whiteBase}, 0.14)`,\n    transparent: `rgba(${this.whiteBase}, 0.08)`,\n    text: this.text.primary,\n    contrastText: `rgb(${this.whiteBase})`,\n    border: `rgba(${this.whiteBase}, 0.08)`,\n  };\n\n  info = this.primary;\n\n  error = {\n    main: palette.redDarkMain,\n    text: palette.redDarkText,\n  };\n\n  success = {\n    main: palette.greenDarkMain,\n    text: palette.greenDarkText,\n  };\n\n  warning = {\n    main: palette.orangeDarkMain,\n    text: palette.orangeDarkText,\n  };\n\n  background = {\n    canvas: palette.gray05,\n    primary: palette.gray10,\n    secondary: palette.gray15,\n    elevated: palette.gray15,\n  };\n\n  action = {\n    hover: `rgba(${this.whiteBase}, 0.16)`,\n    selected: `rgba(${this.whiteBase}, 0.12)`,\n    selectedBorder: palette.orangeDarkMain,\n    focus: `rgba(${this.whiteBase}, 0.16)`,\n    hoverOpacity: 0.08,\n    disabledText: this.text.disabled,\n    disabledBackground: `rgba(${this.whiteBase}, 0.04)`,\n    disabledOpacity: 0.38,\n  };\n\n  gradients = {\n    brandHorizontal: 'linear-gradient(270deg, #F55F3E 0%, #FF8833 100%)',\n    brandVertical: 'linear-gradient(0.01deg, #F55F3E 0.01%, #FF8833 99.99%)',\n  };\n\n  contrastThreshold = 3;\n  hoverFactor = 0.03;\n  tonalOffset = 0.15;\n}\n\nclass LightColors implements ThemeColorsBase<Partial<ThemeRichColor>> {\n  mode: ThemeColorsMode = 'light';\n\n  blackBase = '36, 41, 46';\n\n  primary = {\n    main: palette.blueLightMain,\n    border: palette.blueLightText,\n    text: palette.blueLightText,\n  };\n\n  text = {\n    primary: `rgba(${this.blackBase}, 1)`,\n    secondary: `rgba(${this.blackBase}, 0.75)`,\n    disabled: `rgba(${this.blackBase}, 0.65)`,\n    link: this.primary.text,\n    maxContrast: palette.black,\n  };\n\n  border = {\n    weak: `rgba(${this.blackBase}, 0.12)`,\n    medium: `rgba(${this.blackBase}, 0.3)`,\n    strong: `rgba(${this.blackBase}, 0.4)`,\n  };\n\n  secondary = {\n    main: `rgba(${this.blackBase}, 0.08)`,\n    shade: `rgba(${this.blackBase}, 0.15)`,\n    transparent: `rgba(${this.blackBase}, 0.08)`,\n    contrastText: `rgba(${this.blackBase},  1)`,\n    text: this.text.primary,\n    border: this.border.weak,\n  };\n\n  info = {\n    main: palette.blueLightMain,\n    text: palette.blueLightText,\n  };\n\n  error = {\n    main: palette.redLightMain,\n    text: palette.redLightText,\n    border: palette.redLightText,\n  };\n\n  success = {\n    main: palette.greenLightMain,\n    text: palette.greenLightText,\n  };\n\n  warning = {\n    main: palette.orangeLightMain,\n    text: palette.orangeLightText,\n  };\n\n  background = {\n    canvas: palette.gray90,\n    primary: palette.white,\n    secondary: palette.gray100,\n    elevated: palette.white,\n  };\n\n  action = {\n    hover: `rgba(${this.blackBase}, 0.12)`,\n    selected: `rgba(${this.blackBase}, 0.08)`,\n    selectedBorder: palette.orangeLightMain,\n    hoverOpacity: 0.08,\n    focus: `rgba(${this.blackBase}, 0.12)`,\n    disabledBackground: `rgba(${this.blackBase}, 0.04)`,\n    disabledText: this.text.disabled,\n    disabledOpacity: 0.38,\n  };\n\n  gradients = {\n    brandHorizontal: 'linear-gradient(90deg, #FF8833 0%, #F53E4C 100%)',\n    brandVertical: 'linear-gradient(0.01deg, #F53E4C -31.2%, #FF8833 113.07%)',\n  };\n\n  contrastThreshold = 3;\n  hoverFactor = 0.03;\n  tonalOffset = 0.2;\n}\n\nexport function createColors(colors: ThemeColorsInput): ThemeColors {\n  const dark = new DarkColors();\n  const light = new LightColors();\n  const base = (colors.mode ?? 'dark') === 'dark' ? dark : light;\n  const {\n    primary = base.primary,\n    secondary = base.secondary,\n    info = base.info,\n    warning = base.warning,\n    success = base.success,\n    error = base.error,\n    tonalOffset = base.tonalOffset,\n    hoverFactor = base.hoverFactor,\n    contrastThreshold = base.contrastThreshold,\n    ...other\n  } = colors;\n\n  function getContrastText(background: string, threshold: number = contrastThreshold) {\n    const contrastText =\n      getContrastRatio(dark.text.maxContrast, background, base.background.primary) >= threshold\n        ? dark.text.maxContrast\n        : light.text.maxContrast;\n    // todo, need color framework\n    return contrastText;\n  }\n\n  const getRichColor = ({ color, name }: GetRichColorProps): ThemeRichColor => {\n    color = { ...color, name };\n    if (!color.main) {\n      color.main = base[name].main;\n    }\n    if (!color.text) {\n      color.text = color.main;\n    }\n    if (!color.border) {\n      color.border = color.text;\n    }\n    if (!color.shade) {\n      color.shade = base.mode === 'light' ? darken(color.main, tonalOffset) : lighten(color.main, tonalOffset);\n    }\n    if (!color.transparent) {\n      color.transparent = alpha(color.main, 0.15);\n    }\n    if (!color.contrastText) {\n      color.contrastText = getContrastText(color.main);\n    }\n    if (!color.borderTransparent) {\n      color.borderTransparent = alpha(color.border, 0.25);\n    }\n    return color as ThemeRichColor;\n  };\n\n  return merge(\n    {\n      ...base,\n      primary: getRichColor({ color: primary, name: 'primary' }),\n      secondary: getRichColor({ color: secondary, name: 'secondary' }),\n      info: getRichColor({ color: info, name: 'info' }),\n      error: getRichColor({ color: error, name: 'error' }),\n      success: getRichColor({ color: success, name: 'success' }),\n      warning: getRichColor({ color: warning, name: 'warning' }),\n      getContrastText,\n      emphasize: (color: string, factor?: number) => {\n        return emphasize(color, factor ?? hoverFactor);\n      },\n    },\n    other\n  );\n}\n\ntype RichColorNames = 'primary' | 'secondary' | 'info' | 'error' | 'success' | 'warning';\n\ninterface GetRichColorProps {\n  color: Partial<ThemeRichColor>;\n  name: RichColorNames;\n}\n"],"names":["z","ThemeRichColorInputSchema","palette","getContrastRatio","darken","lighten","alpha","merge","emphasize"],"mappings":"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"}