import { resolve } from 'node:path'; import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; export default defineConfig({ plugins: [ dts({ include: ['**/*.ts'], exclude: ['**/*.test.ts', 'copy-assets.mjs', 'vite.config.ts'], }), ], build: { outDir: 'dist', emptyOutDir: true, lib: { entry: { index: resolve(__dirname, 'index.ts'), 'form/index': resolve(__dirname, 'form/index.ts'), 'command-palette/index': resolve(__dirname, 'command-palette/index.ts'), 'carousel/index': resolve(__dirname, 'carousel/index.ts'), 'kanban/index': resolve(__dirname, 'kanban/index.ts'), 'rich-text-editor/index': resolve(__dirname, 'rich-text-editor/index.ts'), 'calendar/index': resolve(__dirname, 'calendar/index.ts'), 'accordion/index': resolve(__dirname, 'accordion/index.ts'), 'tabs/index': resolve(__dirname, 'tabs/index.ts'), 'toast/index': resolve(__dirname, 'toast/index.ts'), 'drawer/index': resolve(__dirname, 'drawer/index.ts'), 'select/index': resolve(__dirname, 'select/index.ts'), 'choice/index': resolve(__dirname, 'choice/index.ts'), 'pagination/index': resolve(__dirname, 'pagination/index.ts'), 'avatar/index': resolve(__dirname, 'avatar/index.ts'), 'avatar-group/index': resolve(__dirname, 'avatar-group/index.ts'), 'skeleton/index': resolve(__dirname, 'skeleton/index.ts'), 'clipboard/index': resolve(__dirname, 'clipboard/index.ts'), 'alert/index': resolve(__dirname, 'alert/index.ts'), 'progress/index': resolve(__dirname, 'progress/index.ts'), 'popover/index': resolve(__dirname, 'popover/index.ts'), 'slider/index': resolve(__dirname, 'slider/index.ts'), 'nav/index': resolve(__dirname, 'nav/index.ts'), 'mega-menu/index': resolve(__dirname, 'mega-menu/index.ts'), 'sortable-table/index': resolve(__dirname, 'sortable-table/index.ts'), 'tooltip/index': resolve(__dirname, 'tooltip/index.ts'), 'dropdown/index': resolve(__dirname, 'dropdown/index.ts'), 'modal/index': resolve(__dirname, 'modal/index.ts'), 'tags-input/index': resolve(__dirname, 'tags-input/index.ts'), 'combobox/index': resolve(__dirname, 'combobox/index.ts'), 'tree/index': resolve(__dirname, 'tree/index.ts'), 'stepper/index': resolve(__dirname, 'stepper/index.ts'), 'gallery/index': resolve(__dirname, 'gallery/index.ts'), 'date-picker/index': resolve(__dirname, 'date-picker/index.ts'), 'time-picker/index': resolve(__dirname, 'time-picker/index.ts'), 'file-dropzone/index': resolve(__dirname, 'file-dropzone/index.ts'), 'data-view/index': resolve(__dirname, 'data-view/index.ts'), 'color-picker/index': resolve(__dirname, 'color-picker/index.ts'), 'nested-select/index': resolve(__dirname, 'nested-select/index.ts'), 'textarea-emoji/index': resolve(__dirname, 'textarea-emoji/index.ts'), 'whatsapp-editor/index': resolve(__dirname, 'whatsapp-editor/index.ts'), 'sms-editor/index': resolve(__dirname, 'sms-editor/index.ts'), 'image-viewer/index': resolve(__dirname, 'image-viewer/index.ts'), }, formats: ['es'], }, rollupOptions: { external: [/^@floating-ui/, /^@atlaskit\/pragmatic-drag-and-drop/, /^embla-carousel/], output: { entryFileNames: '[name].js', chunkFileNames: 'shared/[name].js', }, }, }, });