import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../node_modules/.vite/packages/react-ui", plugins: [ react(), dts({ entryRoot: "src", tsconfigPath: "./tsconfig.lib.json", insertTypesEntry: true, }), ], build: { outDir: "./dist", emptyOutDir: true, reportCompressedSize: true, sourcemap: true, lib: { entry: { index: "src/index.ts", "errors/index": "src/errors/index.ts", "observability/react-ui-metrics": "src/observability/react-ui-metrics.ts", "locales/index": "src/locales/index.ts", "theme/index": "src/theme/index.ts", "theme/theme-provider/theme-provider": "src/theme/theme-provider/theme-provider.tsx", "theme/use-theme/use-theme": "src/theme/use-theme/use-theme.ts", "theme/use-theme-tokens/use-theme-tokens": "src/theme/use-theme-tokens/use-theme-tokens.ts", "theme/use-themed-variants/use-themed-variants": "src/theme/use-themed-variants/use-themed-variants.ts", "theme/use-theme-mutator/use-theme-mutator": "src/theme/use-theme-mutator/use-theme-mutator.ts", "theme/use-resolved-theme-tokens/use-resolved-theme-tokens": "src/theme/use-resolved-theme-tokens/use-resolved-theme-tokens.ts", "theme/layer-stack/index": "src/theme/layer-stack/index.ts", "theme/theme-switcher/theme-switcher": "src/theme/theme-switcher/theme-switcher.tsx", "theme/themes/light": "src/theme/themes/light.ts", "theme/themes/dark": "src/theme/themes/dark.ts", "theme/themes/high-contrast": "src/theme/themes/high-contrast.ts", "pack/index": "src/pack/index.ts", "pack/pack-registry-provider/pack-registry-provider": "src/pack/pack-registry-provider/pack-registry-provider.tsx", "pack/use-pack-component/use-pack-component": "src/pack/use-pack-component/use-pack-component.ts", "provider/react-ui-provider/react-ui-provider": "src/provider/react-ui-provider/react-ui-provider.tsx", "hooks/use-mobile/use-mobile": "src/hooks/use-mobile/use-mobile.ts", "hooks/use-toast/use-toast": "src/hooks/use-toast/use-toast.ts", "hooks/use-direction/index": "src/hooks/use-direction/index.ts", "utils/cn/cn": "src/utils/cn/cn.ts", "utils/motion/motion": "src/utils/motion/motion.ts", "variants/variants": "src/variants/variants.ts", "components/alert-dialog/alert-dialog": "src/components/alert-dialog/alert-dialog.tsx", "components/button/button": "src/components/button/button.tsx", "components/context-menu/context-menu": "src/components/context-menu/context-menu.tsx", "components/dialog/dialog": "src/components/dialog/dialog.tsx", "components/drawer/drawer": "src/components/drawer/drawer.tsx", "components/hover-card/hover-card": "src/components/hover-card/hover-card.tsx", "components/input/input": "src/components/input/input.tsx", "components/label/label": "src/components/label/label.tsx", "components/popover/popover": "src/components/popover/popover.tsx", "components/separator/separator": "src/components/separator/separator.tsx", "components/sheet/sheet": "src/components/sheet/sheet.tsx", "components/skeleton/skeleton": "src/components/skeleton/skeleton.tsx", "components/tooltip/tooltip": "src/components/tooltip/tooltip.tsx", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@opentelemetry/api", "@radix-ui/react-alert-dialog", "@radix-ui/react-checkbox", "@radix-ui/react-context-menu", "@radix-ui/react-dialog", "@radix-ui/react-direction", "@radix-ui/react-hover-card", "@radix-ui/react-label", "@radix-ui/react-popover", "@radix-ui/react-radio-group", "@radix-ui/react-separator", "@radix-ui/react-slot", "@radix-ui/react-switch", "@radix-ui/react-toggle", "@radix-ui/react-toggle-group", "@radix-ui/react-tooltip", "@suaveplan/error", "@suaveplan/events", "@suaveplan/i18n", "@suaveplan/i18n/plugin", /^@suaveplan\/i18n-icu-parser(\/.*)?$/, "@suaveplan/locale-data", "@suaveplan/logger", "@suaveplan/react-i18n", "@suaveplan/types", "class-variance-authority", "clsx", "lucide-react", "react", "react-dom", "react/jsx-runtime", "semver", "sonner", "tailwind-merge", "tslib", "vaul", "zod", /^node:/, ], }, }, });