slim-select 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/example.html ADDED
@@ -0,0 +1,25 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>SlimSelect Example</title>
7
+ <script src="https://unpkg.com/slim-select@latest/dist/slimselect.js"></script>
8
+ <link href="https://unpkg.com/slim-select@latest/dist/slimselect.css" rel="stylesheet" />
9
+ </head>
10
+ <body>
11
+ <h1>SlimSelect Test</h1>
12
+
13
+ <select id="selectElement">
14
+ <option>Option 1</option>
15
+ <option>Option 2</option>
16
+ <option>Option 3</option>
17
+ </select>
18
+
19
+ <script>
20
+ new SlimSelect({
21
+ select: '#selectElement'
22
+ })
23
+ </script>
24
+ </body>
25
+ </html>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "slim-select",
3
3
  "description": "Slim advanced select dropdown",
4
- "version": "3.0.1",
4
+ "version": "3.0.2",
5
5
  "type": "module",
6
6
  "author": "Brian Voelker <brian@webiswhatido.com> (http://webiswhatido.com)",
7
7
  "homepage": "https://slimselectjs.com",
@@ -53,7 +53,9 @@
53
53
  "build:clean": "rimraf ./dist/* && rimraf ./docs/*",
54
54
  "build:docs": "vite build --config vite.config.docs.mts",
55
55
  "build:library": "npm run build:library:js && npm run build:library:vue && npm run build:library:react && npm run build:library:css",
56
- "build:library:js": "vite build --config vite.config.lib.mts",
56
+ "build:library:js": "npm run build:es-cjs && npm run build:umd-iife",
57
+ "build:es-cjs": "vite build --config vite.config.lib.es-cjs.ts",
58
+ "build:umd-iife": "vite build --config vite.config.lib.umd-iife.ts",
57
59
  "build:library:vue": "vite build --config vite.config.vue.mts",
58
60
  "build:library:react": "vite build --config vite.config.react.mts",
59
61
  "build:library:css": "sass src/slim-select/slimselect.scss dist/slimselect.css --style=compressed",
@@ -0,0 +1,8 @@
1
+ // UMD entry point - only exports the default SlimSelect class
2
+ // This avoids the mixed exports issue for UMD/IIFE builds
3
+ import SlimSelect, * as namedExports from './index'
4
+
5
+ // Attach all named exports as properties on the default export
6
+ Object.assign(SlimSelect, namedExports)
7
+
8
+ export default SlimSelect
@@ -12,16 +12,11 @@ export default defineConfig({
12
12
  build: {
13
13
  minify: true,
14
14
  sourcemap: true,
15
+ emptyOutDir: false, // package.json rimraf ./dist/*
15
16
  lib: {
16
17
  entry: path.resolve(__dirname, 'src/slim-select/index.ts'),
17
- name: 'SlimSelect',
18
- formats: ['es', 'cjs', 'umd', 'iife'],
19
- fileName: (format) => {
20
- if (format === 'es') return 'slimselect.es.js'
21
- if (format === 'cjs') return 'slimselect.cjs.js'
22
- if (format === 'iife') return 'slimselect.iife.js'
23
- return 'slimselect.js' // UMD minified (default)
24
- }
18
+ formats: ['es', 'cjs'],
19
+ fileName: (format) => (format === 'es' ? 'slimselect.es.js' : 'slimselect.cjs.js')
25
20
  },
26
21
  outDir: path.resolve(__dirname, 'dist'),
27
22
  rollupOptions: {
@@ -30,10 +25,7 @@ export default defineConfig({
30
25
  assetFileNames: (assetInfo) => {
31
26
  if (assetInfo.name === 'style.css') return 'slimselect.css'
32
27
  return assetInfo.name || 'asset'
33
- },
34
- // Prevent Rollup from automatically splitting the library into multiple chunks
35
- // This ensures we get single files per format (UMD, ES, CJS, IIFE)
36
- manualChunks: undefined
28
+ }
37
29
  }
38
30
  }
39
31
  },
@@ -0,0 +1,34 @@
1
+ import { defineConfig } from 'vite'
2
+ import path from 'path'
3
+
4
+ export default defineConfig({
5
+ publicDir: false,
6
+ resolve: {
7
+ alias: {
8
+ '@': path.resolve(__dirname, 'src')
9
+ }
10
+ },
11
+ build: {
12
+ minify: true,
13
+ sourcemap: true,
14
+ emptyOutDir: false, // package.json rimraf ./dist/*
15
+ lib: {
16
+ entry: path.resolve(__dirname, 'src/slim-select/index.umd.ts'),
17
+ name: 'SlimSelect',
18
+ formats: ['umd', 'iife'],
19
+ fileName: (format) => (format === 'iife' ? 'slimselect.iife.js' : 'slimselect.js')
20
+ },
21
+ outDir: path.resolve(__dirname, 'dist'),
22
+ rollupOptions: {
23
+ output: {
24
+ exports: 'default',
25
+ assetFileNames: (assetInfo) => {
26
+ if (assetInfo.name === 'style.css') return 'slimselect.css'
27
+ return assetInfo.name || 'asset'
28
+ },
29
+ banner: '/*! SlimSelect - Advanced select dropdown */',
30
+ footer: '/*! End SlimSelect */'
31
+ }
32
+ }
33
+ }
34
+ })
@@ -11,6 +11,7 @@ export default defineConfig({
11
11
  }
12
12
  },
13
13
  build: {
14
+ emptyOutDir: false, // package.json rimraf ./dist/*
14
15
  lib: {
15
16
  entry: path.resolve(__dirname, 'src/slim-select/react/index.tsx'),
16
17
  name: 'SlimSelectReact',
@@ -11,6 +11,7 @@ export default defineConfig({
11
11
  }
12
12
  },
13
13
  build: {
14
+ emptyOutDir: false, // package.json rimraf ./dist/*
14
15
  lib: {
15
16
  entry: path.resolve(__dirname, 'src/slim-select/vue/index.ts'),
16
17
  name: 'SlimSelectVue',