{"version":3,"file":"theme.mjs","names":["computed","inject","provide","ref","watch","watchEffect","createRange","darken","getCurrentInstance","getForeground","getLuma","IN_BROWSER","lighten","mergeDeep","parseColor","propsFactory","RGBtoHex","ThemeSymbol","Symbol","for","makeThemeProps","theme","String","genDefaults","defaultTheme","variations","colors","themes","light","dark","background","surface","primary","secondary","error","info","success","warning","variables","parseThemeOptions","options","arguments","length","undefined","defaults","isDisabled","key","Object","entries","createTheme","parsedOptions","name","computedThemes","acc","original","value","color","variation","fn","amount","keys","test","onColor","colorVal","current","styles","lines","createCssClass","genCssVariables","themeName","bgLines","fgLines","Set","values","flatMap","push","map","str","i","join","getHead","style","children","id","nonce","cspNonce","install","app","head","_context","provides","usehead","entry","patch","addHeadObjs","updateDOM","styleEl","document","getElementById","updateStyles","immediate","el","createElement","type","setAttribute","appendChild","innerHTML","themeClasses","global","provideTheme","props","Error","newTheme","useTheme","selector","content","line","lightOverlay","darkOverlay","rgb","r","g","b","startsWith"],"sources":["../../src/composables/theme.ts"],"sourcesContent":["// Utilities\nimport {\n  computed,\n  inject,\n  provide,\n  ref,\n  watch,\n  watchEffect,\n} from 'vue'\nimport {\n  createRange,\n  darken,\n  getCurrentInstance,\n  getForeground,\n  getLuma,\n  IN_BROWSER,\n  lighten,\n  mergeDeep,\n  parseColor,\n  propsFactory,\n  RGBtoHex,\n} from '@/util'\n\n// Types\nimport type { VueHeadClient } from '@unhead/vue'\nimport type { HeadClient } from '@vueuse/head'\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\n\ntype DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T\n\nexport type ThemeOptions = false | {\n  cspNonce?: string\n  defaultTheme?: string\n  variations?: false | VariationsOptions\n  themes?: Record<string, ThemeDefinition>\n}\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\ninterface InternalThemeOptions {\n  cspNonce?: string\n  isDisabled: boolean\n  defaultTheme: string\n  variations: false | VariationsOptions\n  themes: Record<string, InternalThemeDefinition>\n}\n\ninterface VariationsOptions {\n  colors: string[]\n  lighten: number\n  darken: number\n}\n\ninterface InternalThemeDefinition {\n  dark: boolean\n  colors: Colors\n  variables: Record<string, string | number>\n}\n\nexport interface Colors extends BaseColors, OnColors {\n  [key: string]: string\n}\n\ninterface BaseColors {\n  background: string\n  surface: string\n  primary: string\n  secondary: string\n  success: string\n  warning: string\n  error: string\n  info: string\n}\n\ninterface OnColors {\n  'on-background': string\n  'on-surface': string\n  'on-primary': string\n  'on-secondary': string\n  'on-success': string\n  'on-warning': string\n  'on-error': string\n  'on-info': string\n}\n\nexport interface ThemeInstance {\n  readonly isDisabled: boolean\n  readonly themes: Ref<Record<string, InternalThemeDefinition>>\n\n  readonly name: Readonly<Ref<string>>\n  readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n  readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>\n\n  readonly themeClasses: Readonly<Ref<string | undefined>>\n  readonly styles: Readonly<Ref<string>>\n\n  readonly global: {\n    readonly name: Ref<string>\n    readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n  }\n}\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n  theme: String,\n}, 'theme')\n\nfunction genDefaults () {\n  return {\n    defaultTheme: 'light',\n    variations: { colors: [], lighten: 0, darken: 0 },\n    themes: {\n      light: {\n        dark: false,\n        colors: {\n          background: '#FFFFFF',\n          surface: '#FFFFFF',\n          'surface-bright': '#FFFFFF',\n          'surface-light': '#EEEEEE',\n          'surface-variant': '#424242',\n          'on-surface-variant': '#EEEEEE',\n          primary: '#1867C0',\n          'primary-darken-1': '#1F5592',\n          secondary: '#48A9A6',\n          'secondary-darken-1': '#018786',\n          error: '#B00020',\n          info: '#2196F3',\n          success: '#4CAF50',\n          warning: '#FB8C00',\n        },\n        variables: {\n          'border-color': '#000000',\n          'border-opacity': 0.12,\n          'high-emphasis-opacity': 0.87,\n          'medium-emphasis-opacity': 0.60,\n          'disabled-opacity': 0.38,\n          'idle-opacity': 0.04,\n          'hover-opacity': 0.04,\n          'focus-opacity': 0.12,\n          'selected-opacity': 0.08,\n          'activated-opacity': 0.12,\n          'pressed-opacity': 0.12,\n          'dragged-opacity': 0.08,\n          'theme-kbd': '#212529',\n          'theme-on-kbd': '#FFFFFF',\n          'theme-code': '#F5F5F5',\n          'theme-on-code': '#000000',\n        },\n      },\n      dark: {\n        dark: true,\n        colors: {\n          background: '#121212',\n          surface: '#212121',\n          'surface-bright': '#ccbfd6',\n          'surface-light': '#424242',\n          'surface-variant': '#a3a3a3',\n          'on-surface-variant': '#424242',\n          primary: '#2196F3',\n          'primary-darken-1': '#277CC1',\n          secondary: '#54B6B2',\n          'secondary-darken-1': '#48A9A6',\n          error: '#CF6679',\n          info: '#2196F3',\n          success: '#4CAF50',\n          warning: '#FB8C00',\n        },\n        variables: {\n          'border-color': '#FFFFFF',\n          'border-opacity': 0.12,\n          'high-emphasis-opacity': 1,\n          'medium-emphasis-opacity': 0.70,\n          'disabled-opacity': 0.50,\n          'idle-opacity': 0.10,\n          'hover-opacity': 0.04,\n          'focus-opacity': 0.12,\n          'selected-opacity': 0.08,\n          'activated-opacity': 0.12,\n          'pressed-opacity': 0.16,\n          'dragged-opacity': 0.08,\n          'theme-kbd': '#212529',\n          'theme-on-kbd': '#FFFFFF',\n          'theme-code': '#343434',\n          'theme-on-code': '#CCCCCC',\n        },\n      },\n    },\n  }\n}\n\nfunction parseThemeOptions (options: ThemeOptions = genDefaults()): InternalThemeOptions {\n  const defaults = genDefaults()\n\n  if (!options) return { ...defaults, isDisabled: true } as any\n\n  const themes: Record<string, InternalThemeDefinition> = {}\n  for (const [key, theme] of Object.entries(options.themes ?? {})) {\n    const defaultTheme = theme.dark || key === 'dark'\n      ? defaults.themes?.dark\n      : defaults.themes?.light\n    themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n  }\n\n  return mergeDeep(\n    defaults,\n    { ...options, themes },\n  ) as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n  const parsedOptions = parseThemeOptions(options)\n  const name = ref(parsedOptions.defaultTheme)\n  const themes = ref(parsedOptions.themes)\n\n  const computedThemes = computed(() => {\n    const acc: Record<string, InternalThemeDefinition> = {}\n    for (const [name, original] of Object.entries(themes.value)) {\n      const theme: InternalThemeDefinition = acc[name] = {\n        ...original,\n        colors: {\n          ...original.colors,\n        },\n      }\n\n      if (parsedOptions.variations) {\n        for (const name of parsedOptions.variations.colors) {\n          const color = theme.colors[name]\n\n          if (!color) continue\n\n          for (const variation of (['lighten', 'darken'] as const)) {\n            const fn = variation === 'lighten' ? lighten : darken\n            for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n              theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount))\n            }\n          }\n        }\n      }\n\n      for (const color of Object.keys(theme.colors)) {\n        if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n        const onColor = `on-${color}` as keyof OnColors\n        const colorVal = parseColor(theme.colors[color]!)\n\n        theme.colors[onColor] = getForeground(colorVal)\n      }\n    }\n\n    return acc\n  })\n  const current = computed(() => computedThemes.value[name.value])\n\n  const styles = computed(() => {\n    const lines: string[] = []\n\n    if (current.value?.dark) {\n      createCssClass(lines, ':root', ['color-scheme: dark'])\n    }\n\n    createCssClass(lines, ':root', genCssVariables(current.value))\n\n    for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n      createCssClass(lines, `.v-theme--${themeName}`, [\n        `color-scheme: ${theme.dark ? 'dark' : 'normal'}`,\n        ...genCssVariables(theme),\n      ])\n    }\n\n    const bgLines: string[] = []\n    const fgLines: string[] = []\n\n    const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n    for (const key of colors) {\n      if (/^on-[a-z]/.test(key)) {\n        createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n      } else {\n        createCssClass(bgLines, `.bg-${key}`, [\n          `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n          `background-color: rgb(var(--v-theme-${key})) !important`,\n          `color: rgb(var(--v-theme-on-${key})) !important`,\n        ])\n        createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n        createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`])\n      }\n    }\n\n    lines.push(...bgLines, ...fgLines)\n\n    return lines.map((str, i) => i === 0 ? str : `    ${str}`).join('')\n  })\n\n  function getHead () {\n    return {\n      style: [{\n        children: styles.value,\n        id: 'vuetify-theme-stylesheet',\n        nonce: parsedOptions.cspNonce || false as never,\n      }],\n    }\n  }\n\n  function install (app: App) {\n    if (parsedOptions.isDisabled) return\n\n    const head = app._context.provides.usehead as HeadClient & VueHeadClient<any> | undefined\n    if (head) {\n      if (head.push) {\n        const entry = head.push(getHead)\n        if (IN_BROWSER) {\n          watch(styles, () => { entry.patch(getHead) })\n        }\n      } else {\n        if (IN_BROWSER) {\n          head.addHeadObjs(computed(getHead))\n          watchEffect(() => head.updateDOM())\n        } else {\n          head.addHeadObjs(getHead())\n        }\n      }\n    } else {\n      let styleEl = IN_BROWSER\n        ? document.getElementById('vuetify-theme-stylesheet')\n        : null\n\n      if (IN_BROWSER) {\n        watch(styles, updateStyles, { immediate: true })\n      } else {\n        updateStyles()\n      }\n\n      function updateStyles () {\n        if (typeof document !== 'undefined' && !styleEl) {\n          const el = document.createElement('style')\n          el.type = 'text/css'\n          el.id = 'vuetify-theme-stylesheet'\n          if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce)\n\n          styleEl = el\n          document.head.appendChild(styleEl)\n        }\n\n        if (styleEl) styleEl.innerHTML = styles.value\n      }\n    }\n  }\n\n  const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`)\n\n  return {\n    install,\n    isDisabled: parsedOptions.isDisabled,\n    name,\n    themes,\n    current,\n    computedThemes,\n    themeClasses,\n    styles,\n    global: {\n      name,\n      current,\n    },\n  }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n  getCurrentInstance('provideTheme')\n\n  const theme = inject(ThemeSymbol, null)\n\n  if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n  const name = computed<string>(() => {\n    return props.theme ?? theme.name.value\n  })\n  const current = computed(() => theme.themes.value[name.value])\n\n  const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`)\n\n  const newTheme: ThemeInstance = {\n    ...theme,\n    name,\n    current,\n    themeClasses,\n  }\n\n  provide(ThemeSymbol, newTheme)\n\n  return newTheme\n}\n\nexport function useTheme () {\n  getCurrentInstance('useTheme')\n\n  const theme = inject(ThemeSymbol, null)\n\n  if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n  return theme\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[]) {\n  lines.push(\n    `${selector} {\\n`,\n    ...content.map(line => `  ${line};\\n`),\n    '}\\n',\n  )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition) {\n  const lightOverlay = theme.dark ? 2 : 1\n  const darkOverlay = theme.dark ? 1 : 2\n\n  const variables: string[] = []\n  for (const [key, value] of Object.entries(theme.colors)) {\n    const rgb = parseColor(value)\n    variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n    if (!key.startsWith('on-')) {\n      variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n    }\n  }\n\n  for (const [key, value] of Object.entries(theme.variables)) {\n    const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined\n    const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n    variables.push(`--v-${key}: ${rgb ?? value}`)\n  }\n\n  return variables\n}\n"],"mappings":"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","ignoreList":[]}