// https://github.dev/unocss/unocss/tree/main/examples/vite-vue3

import { defineConfig, presetAttributify, presetWind3, transformerDirectives, transformerVariantGroup } from 'unocss';
import { presetAnimations } from 'unocss-preset-animations';
// import presetChinese, { chineseTypography } from 'unocss-preset-chinese';
import { presetShadcn } from 'unocss-preset-shadcn';

// @unocss/preset-rem-to-px

export default defineConfig({
  // 默认情况下，`.ts` 和 `.js` 文件不会被提取。
  // 如果你想提取它们，请使用以下配置。
  // 如果你使用 shadcn-vue 或 shadcn-svelte，则必须添加以下配置。
  content: {
    pipeline: {
      include: [
        // the default
        /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/,
        'src/shadcn/components/**/*.{js,ts}',
        'src/components/InspiraUI/**/*.{js,ts}',
      ],
    },
  },
  presets: [
    presetWind3({
      /* prefix: "u-", */
      dark: {
        dark: '.app-dark',
      },
    }),
    presetAnimations(),
    // https://github.com/unocss-community/unocss-preset-shadcn?tab=readme-ov-file#usage
    // npx shadcn-vue@latest add button
    presetShadcn(
      {
        color: 'zinc',
        // With default setting for SolidUI, you need to set the darkSelector option.
        darkSelector: '.app-dark',
      },
      {
        // If you are using reka ui.
        componentLibrary: 'reka',
      },
    ),

    // chineseTypography(),
    // presetChinese({
    //   chineseType: 'simplified', // 指定文本为简体中文
    // }),

    // https://unocss.dev/presets/attributify
    presetAttributify(),
  ],

  shortcuts: [
    {
      'logo-transform': 'i-icon:pacman w-6em h-6em transform transition-800',
      pacman: 'i-icon:pacman text-(pink 36)',
    },
    {
      // https://github.com/primefaces/tailwindcss-primeui/blob/d5e903377e015b7c63cb5edf42490b9d6954ef04/src/utils/preset.js
      'text-muted-color': 'text-[var(--p-text-muted-color)]',
    },
  ],
  theme: {
    // https://unocss.dev/presets/wind#differences-from-tailwind-css
    // https://www.npmjs.com/package/unocss-preset-animations
    // https://github.com/whatnickcodes/unocss-preset-tailwindcss-motion
    animation: {
      counts: {
        fadeout: '1',
        scalein: '1',
      },
      durations: {
        fadeout: '0.15s',
        scalein: '0.15s',
      },
      keyframes: {
        fadeout: '{0% { opacity: 1; } 100% { opacity: 0; }}',
        scalein: '{0% { opacity: 0; transform: scaleY(0.8); } 100% { opacity: 1; transform: scaleY(1); }}',
      },
      properties: {
        fadeout: {},
        scalein: {
          transition: 'transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1)',
        },
      },
      timingFns: {
        fadeout: 'linear',
        scalein: 'linear',
      },
    },

    // https://unocss.dev/config/theme#usage
    colors: {
      'surface-0': 'var(--p-surface-0)', // text-surface-0
      'surface-900': 'var(--p-surface-900)', // text-surface-900
    },
  },
  transformers: [
    //https://unocss.dev/transformers/variant-group
    transformerVariantGroup(),

    // https://unocss.dev/transformers/directives
    transformerDirectives(),
  ],
});

// text-[var(--h-gray-1)]
//  <div class="i-icon:pacman text-(pink 36)" />
