{"version":3,"file":"module.mjs","sources":["../src/setup/color-mode.ts","../src/setup/utils.ts","../src/setup/components.ts","../src/setup/icon.ts","../src/setup/plugins.ts","../src/setup/tailwind.ts","../src/setup/types.ts","../src/module.ts"],"sourcesContent":["import { hasNuxtModule, installModule } from '@nuxt/kit';\n\nimport type { SetupContext } from './types';\n\n/**\n * installs `@nuxtjs/color-mode` module if it wasn't already,\n * and forces removal of classPrefix/classSuffix\n */\nexport async function setupColorMode<K extends string>(context: SetupContext<K>) {\n  const { nuxt } = context;\n\n  if (nuxt.options.colorMode === false) return;\n\n  if (hasNuxtModule('@nuxtjs/color-mode', nuxt)) {\n    if (nuxt.options.colorMode) {\n      nuxt.options.colorMode.classPrefix = '';\n      nuxt.options.colorMode.classSuffix = '';\n    }\n  } else {\n    await installModule('@nuxtjs/color-mode', {\n      ...(nuxt.options.colorMode ?? undefined),\n      classPrefix: '',\n      classSuffix: '',\n    }, nuxt);\n  }\n};\n","import { env } from 'std-env';\n\nexport {\n  type Nuxt,\n  type NuxtOptions,\n} from '@nuxt/schema';\n\nexport {\n  type CSSProperties,\n  formatCSSProperties,\n} from '@poupe/css';\n\nexport {\n  defaultPrimaryColor,\n  formatTheme,\n  makeThemeFromPartialOptions,\n  type Theme,\n  type ThemeOptions,\n} from '@poupe/tailwindcss/theme';\n\nexport {\n  DEFAULT_PREFIX as defaultComponentPrefix,\n} from '@poupe/vue/resolver';\n\nexport const DEBUG: boolean = env.DEBUG === 'true';\n","import { addComponent } from '@nuxt/kit';\n\nimport { components, DEFAULT_PREFIX, normalizedComponentPrefix, themeComponents } from '@poupe/vue/resolver';\n\nimport type { SetupContext } from './types';\nimport { DEBUG } from './utils';\n\nexport const COMPONENTS_PACKAGE = '@poupe/vue';\nexport const THEME_COMPONENTS_PACKAGE = '@poupe/vue/theme-scheme';\n\nexport const setupComponents = <K extends string>(context: SetupContext<K>): void => {\n  const { logger } = context;\n  const { prefix: $prefix = DEFAULT_PREFIX } = context.options;\n  const prefix = normalizedComponentPrefix($prefix);\n\n  const start = Date.now();\n  if (DEBUG) logger.info(`Registering \\`${COMPONENTS_PACKAGE}\\` components using prefix \\`${prefix}\\``);\n\n  let count = 0;\n\n  const registerComponents = (componentList: readonly string[], packagePath: string, suffix = '') => {\n    for (const name of componentList) {\n      const fullName = `${prefix}${name}`;\n\n      try {\n        addComponent({\n          name: fullName,\n          export: name,\n          filePath: packagePath,\n        });\n        count++;\n        if (DEBUG) logger.log(` - \\`${fullName}\\` registered${suffix}.`);\n      } catch (error) {\n        logger.error(`   \\`${fullName}\\` failed to register:`, error);\n      }\n    }\n  };\n\n  // Register regular components\n  registerComponents(components, COMPONENTS_PACKAGE);\n\n  // Register theme components from separate export\n  registerComponents(themeComponents, THEME_COMPONENTS_PACKAGE, ' from theme-scheme export');\n\n  logger.success(`Poupe registered ${count} components in ${Date.now() - start}ms`);\n};\n","import { hasNuxtModule, installModule } from '@nuxt/kit';\n\nimport type { SetupContext } from './types';\n\nexport const setupIcon = async (context: SetupContext) => {\n  const { nuxt } = context;\n\n  if (nuxt.options.icon === false) return;\n\n  if (!hasNuxtModule('@nuxt/icon', nuxt)) {\n    await installModule('@nuxt/icon', nuxt.options.icon ?? {}, nuxt);\n  }\n};\n","import { addPlugin } from '@nuxt/kit';\n\nimport type { SetupContext } from './types';\n\nexport const setupPlugins = <K extends string>(context: SetupContext<K>) => {\n  const { resolve } = context;\n  addPlugin(resolve('./runtime/plugin'));\n};\n","import { addTemplate, addVitePlugin } from '@nuxt/kit';\nimport tailwindPlugin from '@tailwindcss/vite';\n\nimport { contentGlobs } from '@poupe/vue/config';\n\nimport {\n  type CSSProperties,\n\n  DEBUG,\n  formatCSSProperties,\n  formatTheme,\n  makeThemeFromPartialOptions,\n} from './utils';\n\nimport type {\n  SetupContext,\n  TailwindOptions,\n  TailwindPlugin,\n} from './types';\n\nconst TAILWIND_CSS_FILENAME = 'tailwind.css';\nconst TAILWIND_CSS_ALIAS = '#poupe.css';\n\nexport const formatPlugin = (plugin: TailwindPlugin, indent: string = '  '): string[] => {\n  if (typeof plugin === 'string') {\n    return [`@plugin \"${plugin}\";`];\n  }\n\n  const [name, props] = plugin;\n  const lines = formatCSSProperties(props);\n\n  if (lines.length === 0)\n    return [`@plugin \"${name}\";`];\n\n  return [\n    `@plugin \"${name}\" {`,\n    ...lines.map((line) => `${indent}${line};`),\n    '}',\n  ];\n};\n\n/** @returns a resolved and deduplicated list of sources to scan */\nconst prepareSources = (context: SetupContext): string[] => {\n  const { resolve, nuxt, options } = context;\n\n  // resolve and make unique\n  const sources = [\n    nuxt.options.srcDir,\n    ...contentGlobs(),\n\n    // extra files to scan\n    ...(options.tailwind?.sources || []).filter((source) => source != '').map((source) => resolve(source)),\n  ];\n\n  // reassemble. first-insert order preserved\n  return [...new Set(sources)];\n};\n\n// TODO: move to @poupe/vue\nconst defaultTailwindPlugins: TailwindPlugin[] = [\n  'tailwind-scrollbar',\n];\n\n/** @returns sanitized list of plugins to enable */\nconst preparePlugins = (options?: TailwindOptions): TailwindPlugin[] => {\n  // filter out empty entries\n  const plugins: TailwindPlugin[] = [\n    ...defaultTailwindPlugins,\n    ...options?.plugins || [],\n  ].filter((plugin) => {\n    if (typeof plugin === 'string') {\n      return plugin !== '';\n    }\n    if (Array.isArray(plugin) && plugin.length == 2) {\n      return plugin[0] !== '';\n    }\n    return false;\n  });\n\n  // make unique\n  const pluginsMap: Map<string, CSSProperties | undefined> = new Map();\n  for (const plugin of plugins) {\n    if (typeof plugin === 'string') {\n      pluginsMap.set(plugin, undefined);\n    } else {\n      pluginsMap.set(plugin[0], plugin[1]);\n    }\n  }\n\n  // reassemble. first-insert order preserved\n  return [...pluginsMap.entries()].map(([name, props]) => {\n    if (props) {\n      return [name, props];\n    }\n    return name;\n  });\n};\n\n/** generate the content of the `tailwind.css` file */\nconst getCSSContent = <K extends string>(context: SetupContext<K>): string => {\n  const { options } = context;\n\n  const sources = prepareSources(context);\n  const plugins = preparePlugins(options.tailwind);\n  const theme = makeThemeFromPartialOptions(options.theme);\n\n  // generate content for the `tailwind.css` file embedding\n  // the poupe theme\n  const lines: string[] = [\n    '/* This file is generated by @poupe/nuxt. DO NOT EDIT */',\n    '',\n    '@import \"tailwindcss\";',\n    '',\n    // @theme\n    ...formatTheme(theme),\n    // @plugin\n    ...(plugins ? ['', ...plugins.flatMap((plugin) => formatPlugin(plugin))] : []),\n    // @source\n    ...(sources ? ['', ...sources.map((path) => `@source \"${path}\";`)] : []),\n  ];\n\n  return lines.join('\\n');\n};\n\nexport const setupTailwind = async <K extends string>(context: SetupContext<K>) => {\n  const { logger, nuxt } = context;\n  const start = Date.now();\n\n  if (DEBUG) logger.debug(`Generating \\`${TAILWIND_CSS_FILENAME}\\`...`);\n\n  // template\n  const cssFile = addTemplate({\n    filename: TAILWIND_CSS_FILENAME,\n    write: true,\n    getContents: () => getCSSContent(context),\n  });\n\n  logger.success(`Poupe generated \\`${DEBUG ? cssFile.dst : TAILWIND_CSS_ALIAS}\\` in ${Date.now() - start}ms`);\n  nuxt.options.alias[TAILWIND_CSS_ALIAS] = cssFile.dst;\n\n  // vite plugin\n  addVitePlugin(tailwindPlugin());\n\n  // TODO: setup vite\n\n  // inject CSS\n  nuxt.options.css = nuxt.options.css || [];\n  if (!Array.isArray(nuxt.options.css)) {\n    nuxt.options.css = [nuxt.options.css];\n  }\n  nuxt.options.css.unshift(cssFile.dst);\n};\n","import type { ConsolaInstance } from 'consola';\n\nimport {\n  type CSSProperties,\n  type Nuxt,\n  type ThemeOptions,\n\n  defaultComponentPrefix,\n  defaultPrimaryColor,\n} from './utils';\n\nexport type TailwindPlugin = [ string, CSSProperties ] | string;\n\nexport interface TailwindOptions {\n  plugins?: TailwindPlugin[]\n  sources?: string[]\n}\n\nexport interface ModuleOptions<K extends string = string> {\n  /** @defaultValue 'P' */\n  prefix?: string\n\n  /**\n   * options for the theme builder\n   * @defaultValue `{ color: { primary: '#2a364b' }}`\n   */\n  theme?: Partial<ThemeOptions<K>>\n\n  /**\n   * options to setup tailwind integration\n   */\n  tailwind?: TailwindOptions\n}\n\n/** Default configuration options for the module */\nexport const defaultModuleOptions: Readonly<ModuleOptions> = {\n  prefix: defaultComponentPrefix,\n  theme: {\n    colors: {\n      primary: defaultPrimaryColor,\n    },\n  },\n};\n\n/** Context for module setup */\nexport type SetupContext<K extends string = string> = {\n  nuxt: Nuxt\n  options: ModuleOptions<K>\n\n  logger: ConsolaInstance\n  resolve: (...path: string[]) => string\n};\n","import {\n  createResolver,\n  defineNuxtModule,\n  useLogger,\n} from '@nuxt/kit';\n\nimport {\n  type ModuleOptions,\n  type Nuxt,\n  type SetupContext,\n\n  defaultModuleOptions,\n  setupColorMode,\n  setupComponents,\n  setupIcon,\n  setupPlugins,\n  setupTailwind,\n} from './setup/index';\n\nasync function setup<K extends string = string>(options: ModuleOptions<K>, nuxt: Nuxt) {\n  const { resolve } = createResolver(import.meta.url);\n\n  // Preparations\n  nuxt.options.alias['#poupe'] = resolve('./runtime');\n\n  const setupContext: SetupContext<K> = {\n    options,\n    nuxt,\n    resolve,\n    logger: useLogger('poupe'),\n  };\n\n  // Modules\n  await setupIcon(setupContext);\n  await setupColorMode(setupContext);\n  await setupTailwind(setupContext);\n\n  // Components & Plugins\n  setupComponents(setupContext);\n  setupPlugins(setupContext);\n}\n\nexport { type ModuleOptions } from './setup/types';\n\nexport default defineNuxtModule({\n  meta: {\n    name: '@poupe/nuxt',\n    configKey: 'poupe',\n    compatibility: {\n      nuxt: '^4.0.0',\n    },\n  },\n  defaults: defaultModuleOptions,\n  setup,\n});\n"],"names":["defaultComponentPrefix"],"mappings":";;;;;;;;AAQA,eAAsB,eAAiC,OAAA,EAA0B;AAC/E,EAAA,MAAM,EAAE,MAAK,GAAI,OAAA;AAEjB,EAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,SAAA,KAAc,KAAA,EAAO;AAEtC,EAAA,IAAI,aAAA,CAAc,oBAAA,EAAsB,IAAI,CAAA,EAAG;AAC7C,IAAA,IAAI,IAAA,CAAK,QAAQ,SAAA,EAAW;AAC1B,MAAA,IAAA,CAAK,OAAA,CAAQ,UAAU,WAAA,GAAc,EAAA;AACrC,MAAA,IAAA,CAAK,OAAA,CAAQ,UAAU,WAAA,GAAc,EAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,cAAc,oBAAA,EAAsB;AAAA,MACxC,GAAI,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,MAC9B,WAAA,EAAa,EAAA;AAAA,MACb,WAAA,EAAa;AAAA,OACZ,IAAI,CAAA;AAAA,EACT;AACF;;ACDO,MAAM,KAAA,GAAiB,IAAI,KAAA,KAAU,MAAA;;ACjBrC,MAAM,kBAAA,GAAqB,YAAA;AAC3B,MAAM,wBAAA,GAA2B,yBAAA;AAEjC,MAAM,eAAA,GAAkB,CAAmB,OAAA,KAAmC;AACnF,EAAA,MAAM,EAAE,QAAO,GAAI,OAAA;AACnB,EAAA,MAAM,EAAE,MAAA,EAAQ,OAAA,GAAU,cAAA,KAAmB,OAAA,CAAQ,OAAA;AACrD,EAAA,MAAM,MAAA,GAAS,0BAA0B,OAAO,CAAA;AAEhD,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,EAAI;AACvB,EAAA,IAAI,OAAO,MAAA,CAAO,IAAA,CAAK,iBAAiB,kBAAkB,CAAA,6BAAA,EAAgC,MAAM,CAAA,EAAA,CAAI,CAAA;AAEpG,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,MAAM,kBAAA,GAAqB,CAAC,aAAA,EAAkC,WAAA,EAAqB,SAAS,EAAA,KAAO;AACjG,IAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,MAAA,MAAM,QAAA,GAAW,CAAA,EAAG,MAAM,CAAA,EAAG,IAAI,CAAA,CAAA;AAEjC,MAAA,IAAI;AACF,QAAA,YAAA,CAAa;AAAA,UACX,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,IAAA;AAAA,UACR,QAAA,EAAU;AAAA,SACX,CAAA;AACD,QAAA,KAAA,EAAA;AACA,QAAA,IAAI,OAAO,MAAA,CAAO,GAAA,CAAI,QAAQ,QAAQ,CAAA,aAAA,EAAgB,MAAM,CAAA,CAAA,CAAG,CAAA;AAAA,MACjE,SAAS,KAAA,EAAO;AACd,QAAA,MAAA,CAAO,KAAA,CAAM,CAAA,KAAA,EAAQ,QAAQ,CAAA,sBAAA,CAAA,EAA0B,KAAK,CAAA;AAAA,MAC9D;AAAA,IACF;AAAA,EACF,CAAA;AAGA,EAAA,kBAAA,CAAmB,YAAY,kBAAkB,CAAA;AAGjD,EAAA,kBAAA,CAAmB,eAAA,EAAiB,0BAA0B,2BAA2B,CAAA;AAEzF,EAAA,MAAA,CAAO,OAAA,CAAQ,oBAAoB,KAAK,CAAA,eAAA,EAAkB,KAAK,GAAA,EAAI,GAAI,KAAK,CAAA,EAAA,CAAI,CAAA;AAClF,CAAA;;ACzCO,MAAM,SAAA,GAAY,OAAO,OAAA,KAA0B;AACxD,EAAA,MAAM,EAAE,MAAK,GAAI,OAAA;AAEjB,EAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,IAAA,KAAS,KAAA,EAAO;AAEjC,EAAA,IAAI,CAAC,aAAA,CAAc,YAAA,EAAc,IAAI,CAAA,EAAG;AACtC,IAAA,MAAM,cAAc,YAAA,EAAc,IAAA,CAAK,QAAQ,IAAA,IAAQ,IAAI,IAAI,CAAA;AAAA,EACjE;AACF,CAAA;;ACRO,MAAM,YAAA,GAAe,CAAmB,OAAA,KAA6B;AAC1E,EAAA,MAAM,EAAE,SAAQ,GAAI,OAAA;AACpB,EAAA,SAAA,CAAU,OAAA,CAAQ,kBAAkB,CAAC,CAAA;AACvC,CAAA;;ACaA,MAAM,qBAAA,GAAwB,cAAA;AAC9B,MAAM,kBAAA,GAAqB,YAAA;AAEpB,MAAM,YAAA,GAAe,CAAC,MAAA,EAAwB,MAAA,GAAiB,IAAA,KAAmB;AACvF,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAO,CAAC,CAAA,SAAA,EAAY,MAAM,CAAA,EAAA,CAAI,CAAA;AAAA,EAChC;AAEA,EAAA,MAAM,CAAC,IAAA,EAAM,KAAK,CAAA,GAAI,MAAA;AACtB,EAAA,MAAM,KAAA,GAAQ,oBAAoB,KAAK,CAAA;AAEvC,EAAA,IAAI,MAAM,MAAA,KAAW,CAAA;AACnB,IAAA,OAAO,CAAC,CAAA,SAAA,EAAY,IAAI,CAAA,EAAA,CAAI,CAAA;AAE9B,EAAA,OAAO;AAAA,IACL,YAAY,IAAI,CAAA,GAAA,CAAA;AAAA,IAChB,GAAG,MAAM,GAAA,CAAI,CAAC,SAAS,CAAA,EAAG,MAAM,CAAA,EAAG,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,IAC1C;AAAA,GACF;AACF,CAAA;AAGA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAoC;AAC1D,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ,GAAI,OAAA;AAGnC,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,KAAK,OAAA,CAAQ,MAAA;AAAA,IACb,GAAG,YAAA,EAAa;AAAA;AAAA,IAGhB,IAAI,OAAA,CAAQ,QAAA,EAAU,OAAA,IAAW,IAAI,MAAA,CAAO,CAAC,MAAA,KAAW,MAAA,IAAU,EAAE,CAAA,CAAE,GAAA,CAAI,CAAC,MAAA,KAAW,OAAA,CAAQ,MAAM,CAAC;AAAA,GACvG;AAGA,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,OAAO,CAAC,CAAA;AAC7B,CAAA;AAGA,MAAM,sBAAA,GAA2C;AAAA,EAC/C;AACF,CAAA;AAGA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAgD;AAEtE,EAAA,MAAM,OAAA,GAA4B;AAAA,IAChC,GAAG,sBAAA;AAAA,IACH,GAAG,OAAA,EAAS,OAAA,IAAW;AAAC,GAC1B,CAAE,MAAA,CAAO,CAAC,MAAA,KAAW;AACnB,IAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,MAAA,OAAO,MAAA,KAAW,EAAA;AAAA,IACpB;AACA,IAAA,IAAI,MAAM,OAAA,CAAQ,MAAM,CAAA,IAAK,MAAA,CAAO,UAAU,CAAA,EAAG;AAC/C,MAAA,OAAO,MAAA,CAAO,CAAC,CAAA,KAAM,EAAA;AAAA,IACvB;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAC,CAAA;AAGD,EAAA,MAAM,UAAA,uBAAyD,GAAA,EAAI;AACnE,EAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,MAAA,UAAA,CAAW,GAAA,CAAI,QAAQ,MAAS,CAAA;AAAA,IAClC,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,IAAI,MAAA,CAAO,CAAC,CAAA,EAAG,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,IACrC;AAAA,EACF;AAGA,EAAA,OAAO,CAAC,GAAG,UAAA,CAAW,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AACtD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH,CAAA;AAGA,MAAM,aAAA,GAAgB,CAAmB,OAAA,KAAqC;AAC5E,EAAA,MAAM,EAAE,SAAQ,GAAI,OAAA;AAEpB,EAAA,MAAM,OAAA,GAAU,eAAe,OAAO,CAAA;AACtC,EAAA,MAAM,OAAA,GAAU,cAAA,CAAe,OAAA,CAAQ,QAAQ,CAAA;AAC/C,EAAA,MAAM,KAAA,GAAQ,2BAAA,CAA4B,OAAA,CAAQ,KAAK,CAAA;AAIvD,EAAA,MAAM,KAAA,GAAkB;AAAA,IACtB,0DAAA;AAAA,IACA,EAAA;AAAA,IACA,wBAAA;AAAA,IACA,EAAA;AAAA;AAAA,IAEA,GAAG,YAAY,KAAK,CAAA;AAAA;AAAA,IAEpB,GAAI,OAAA,GAAU,CAAC,EAAA,EAAI,GAAG,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW,YAAA,CAAa,MAAM,CAAC,CAAC,IAAI,EAAC;AAAA;AAAA,IAE5E,GAAI,OAAA,GAAU,CAAC,EAAA,EAAI,GAAG,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,CAAA,SAAA,EAAY,IAAI,CAAA,EAAA,CAAI,CAAC,IAAI;AAAC,GACxE;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,IAAI,CAAA;AACxB,CAAA;AAEO,MAAM,aAAA,GAAgB,OAAyB,OAAA,KAA6B;AACjF,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,OAAA;AACzB,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,EAAI;AAEvB,EAAA,IAAI,KAAA,EAAO,MAAA,CAAO,KAAA,CAAM,CAAA,aAAA,EAAgB,qBAAqB,CAAA,KAAA,CAAO,CAAA;AAGpE,EAAA,MAAM,UAAU,WAAA,CAAY;AAAA,IAC1B,QAAA,EAAU,qBAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,WAAA,EAAa,MAAM,aAAA,CAAc,OAAO;AAAA,GACzC,CAAA;AAED,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,kBAAA,EAAqB,KAAA,GAAQ,OAAA,CAAQ,GAAA,GAAM,kBAAkB,CAAA,MAAA,EAAS,IAAA,CAAK,GAAA,EAAI,GAAI,KAAK,CAAA,EAAA,CAAI,CAAA;AAC3G,EAAA,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,kBAAkB,CAAA,GAAI,OAAA,CAAQ,GAAA;AAGjD,EAAA,aAAA,CAAc,gBAAgB,CAAA;AAK9B,EAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,OAAO,EAAC;AACxC,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA,EAAG;AACpC,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,GAAM,CAAC,IAAA,CAAK,QAAQ,GAAG,CAAA;AAAA,EACtC;AACA,EAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA;AACtC,CAAA;;ACpHO,MAAM,oBAAA,GAAgD;AAAA,EAC3D,MAAA,EAAQA,cAAA;AAAA,EACR,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;;ACvBA,eAAe,KAAA,CAAiC,SAA2B,IAAA,EAAY;AACrF,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,cAAA,CAAe,YAAY,GAAG,CAAA;AAGlD,EAAA,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA,GAAI,QAAQ,WAAW,CAAA;AAElD,EAAA,MAAM,YAAA,GAAgC;AAAA,IACpC,OAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA,EAAQ,UAAU,OAAO;AAAA,GAC3B;AAGA,EAAA,MAAM,UAAU,YAAY,CAAA;AAC5B,EAAA,MAAM,eAAe,YAAY,CAAA;AACjC,EAAA,MAAM,cAAc,YAAY,CAAA;AAGhC,EAAA,eAAA,CAAgB,YAAY,CAAA;AAC5B,EAAA,YAAA,CAAa,YAAY,CAAA;AAC3B;AAIA,iBAAe,gBAAA,CAAiB;AAAA,EAC9B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,SAAA,EAAW,OAAA;AAAA,IACX,aAAA,EAAe;AAAA,MACb,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,QAAA,EAAU,oBAAA;AAAA,EACV;AACF,CAAC,CAAA;;;;"}