Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
3eaa9ae
Revert "feat: added support for slots in dynamic modal (#734)"
FeBe95 May 22, 2025
37b0479
(plugin) replace private registry with default npm registry
FeBe95 Apr 17, 2025
8ed817f
(plugin) set `lockfile-version` to `1` for minimal impact
FeBe95 Apr 17, 2025
dbbc415
(plugin) update `caniuse-lite`
FeBe95 Apr 17, 2025
89b4761
(plugin) fix `unsupported encryption` build error
FeBe95 Apr 17, 2025
7e7744a
(plugin) rebuild project - still Vue 2
FeBe95 Apr 17, 2025
8ecb612
(demo) fix `unsupported encryption` build error
FeBe95 Apr 17, 2025
35d06e7
(demo) set `lockfile-version` to `1` for minimal impact
FeBe95 Apr 17, 2025
5ba67d4
(demo) upgrade `vue` from `2.6.11` to `3.5.13`
FeBe95 Apr 17, 2025
75d1a78
(demo) use `@vue/compat`
FeBe95 Apr 17, 2025
1cb4b3d
(demo) fix feature flag warning
FeBe95 Apr 17, 2025
f16e56c
(demo) migrate vue app instantiation
FeBe95 Apr 17, 2025
908abdc
(plugin) upgrade `vue` from `2.6.11` to `3.5.13`
FeBe95 Apr 22, 2025
e0fde89
(plugin) fix import of `VueLoaderPlugin`
FeBe95 Apr 22, 2025
7077f98
(plugin) upgrade `@vue/test-utils` from `1.0.0-beta.31` to `2.4.6`
FeBe95 Apr 22, 2025
7f14f92
(plugin) replace `uglifyjs-webpack-plugin` with `terser-webpack-plugin`
FeBe95 Apr 22, 2025
8895a61
(plugin) replace `UglifyJsPlugin` with `TerserPlugin`
FeBe95 Apr 22, 2025
9f51553
(plugin) install and use `tiny-emitter` as a global event bus
FeBe95 Apr 22, 2025
cbf82d8
(plugin) fix `Unexpected token` build error
FeBe95 Apr 22, 2025
54e500e
(plugin) upgrade `vue-jest` from `3.0.1` to `5.0.0-alpha.10`
FeBe95 Apr 22, 2025
5f4bf51
(plugin) remove redundand button title
FeBe95 Apr 23, 2025
38f67bb
(plugin) add `emits` option
FeBe95 Apr 23, 2025
ec42dd6
(plugin) migrate lifecycle hooks
FeBe95 Apr 23, 2025
3d63fcb
(plugin) move leftover doc block
FeBe95 Apr 23, 2025
9592377
(plugin) migrate transition class naming
FeBe95 Apr 23, 2025
a6d7440
(demo) migrate transition class naming
FeBe95 Apr 23, 2025
8bd0570
(plugin) remove `vuepress`
FeBe95 May 5, 2025
9c93e05
(plugin) install `@babel/plugin-proposal-nullish-coalescing-operator`
FeBe95 May 5, 2025
209254c
(plugin) migrate plugin installation
FeBe95 May 5, 2025
44c4db6
(plugin) remove `$listeners`
FeBe95 May 5, 2025
efc3a4b
(plugin) make dynamic components non-reactive
FeBe95 May 5, 2025
371ef18
(plugin) fix `this.$refs.modal` undefined
FeBe95 May 5, 2025
38fc857
(demo) use plugin
FeBe95 May 5, 2025
654f9c8
(plugin) remove `vue` from build
FeBe95 May 5, 2025
5169ccf
(demo) fix "missing ref owner context"
FeBe95 May 5, 2025
45413b7
(plugin) fix backwarts-compatible DOM structure
FeBe95 May 5, 2025
febde63
(demo) fix backwarts-compatible DOM structure
FeBe95 May 5, 2025
bb76925
(demo) migrate `slot` syntax
FeBe95 May 5, 2025
fc706ff
(plugin) fix SSR builds
FeBe95 May 5, 2025
c2edf23
(ssr) fix `unsupported encryption` build error
FeBe95 May 5, 2025
e15d3b5
(plugin) remove `@vue/compat`
FeBe95 May 5, 2025
9f11b5c
(demo) remove `@vue/compat`
FeBe95 May 5, 2025
6d2f7bb
(plugin) rebuild for Vue 3
FeBe95 May 5, 2025
2d628b2
(plugin) update readme
FeBe95 May 5, 2025
af5e674
(plugin) update `package.json` for NPM publishing
FeBe95 May 22, 2025
94d4fb8
(all) replace `euvl` with `febe95`
FeBe95 May 22, 2025
52a146a
(docs) remove `other projects` section
FeBe95 May 22, 2025
7ae4f21
(plugin) node 23+ compatibility
FeBe95 May 22, 2025
1630d92
(demo) node 23+ compatibility
FeBe95 May 22, 2025
e253cac
(plugin) rebuild project
FeBe95 May 22, 2025
fd71283
(demo) remove `dist` folder from `.gitignore`
FeBe95 May 22, 2025
d4e3075
(demo) build project
FeBe95 May 22, 2025
63b6cb7
(plugin) force LF line-endings
FeBe95 May 22, 2025
f48cfc6
(demo) force LF line-endings
FeBe95 May 22, 2025
df98c1c
(plugin) upgrade ESLint setup
FeBe95 May 22, 2025
9649036
(plugin) migrate ESLint config
FeBe95 May 22, 2025
6899299
(plugin) apply ESLint fixes (automatic)
FeBe95 May 22, 2025
456d191
(plugin) apply ESLint fixes (manual)
FeBe95 May 22, 2025
9fb19bd
(plugin) fix tests
FeBe95 May 22, 2025
08054b5
(plugin) fix type tests
FeBe95 May 22, 2025
c23c553
(plugin) add more type tests
FeBe95 May 22, 2025
8c958e7
(plugin) add types test descriptions
FeBe95 May 22, 2025
d0f169d
(plugin) rebuild project
FeBe95 May 22, 2025
e3527b4
(plugin) upgrade `webpack` + tools
FeBe95 May 22, 2025
81a4db6
(demo) upgrade `webpack` + tools
FeBe95 May 22, 2025
6a1627b
(plugin) migrate scripts to webpack 5
FeBe95 May 22, 2025
daa6397
(demo) migrate scripts to webpack 5
FeBe95 May 22, 2025
82d3923
(plugin) migrate configs to webpack 5
FeBe95 May 22, 2025
d6782a0
(demo) migrate configs to webpack 5
FeBe95 May 22, 2025
39acfca
(plugin) install vuepress v2
FeBe95 May 22, 2025
cc86fc8
(plugin) migrate vuepress config
FeBe95 May 22, 2025
adf83be
(plugin) update vuepress config
FeBe95 May 22, 2025
6a612af
(plugin) add vuepress temp & cache to gitignore
FeBe95 May 22, 2025
060b200
(docs) add landing page
FeBe95 May 22, 2025
0ffbc28
(docs) add link to forked Vue 2 project
FeBe95 May 22, 2025
afc8167
(demo) upgrade `cross-env`
FeBe95 May 22, 2025
7803df9
(plugin) upgrade webpack tools
FeBe95 May 23, 2025
67f541a
(plugin) migrate webpack config
FeBe95 May 23, 2025
7ed5316
(demo) upgrade webpack tools
FeBe95 May 23, 2025
38e7d1a
(demo) add webpack minification config
FeBe95 May 23, 2025
91ea858
(plugin) increase default modal transition duration
FeBe95 May 23, 2025
ee593b7
(plugin) improve webpack configs
FeBe95 May 23, 2025
750fc97
(demo) improve webpack config
FeBe95 May 23, 2025
d11eb0e
(plugin) move webpack configs to `config/` folder
FeBe95 May 23, 2025
8b0c027
(plugin) fix browserlist definition
FeBe95 May 23, 2025
b011266
(plugin) remove `openssl-legacy-provider` flag
FeBe95 May 23, 2025
7fffcb2
(demo) remove `openssl-legacy-provider` flag
FeBe95 May 23, 2025
b1c0285
(plugin) fix build
FeBe95 May 23, 2025
b26f919
(plugin) rebuild project
FeBe95 May 23, 2025
6573047
(demo) rebuild project
FeBe95 May 23, 2025
15288f9
(docs) migrate docs
FeBe95 May 23, 2025
e921876
(docs) add example links
FeBe95 May 23, 2025
079ffa3
(ssr) upgrade to nuxt 3
FeBe95 May 23, 2025
db14994
(ssr) migrate nuxt config & setup
FeBe95 May 23, 2025
3a4fce6
(ssr) remove `openssl-legacy-provider` flag
FeBe95 May 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions .eslintrc.js

This file was deleted.

1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github: euvl
github: febe95
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
*.map
node_modules/
npm-debug.log
demo/dist/*
docs/.vuepress/dist
docs/.vuepress/.cache
docs/.vuepress/.temp
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lockfile-version=1
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2017 Yev Vlasenko
Copyright (c) 2025 Felix Bernhard

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
42 changes: 12 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,38 @@
<p align="center">

# Vue.js modal
# Vue.js modal (Vue 3)

Easy to use, highly customizable Vue.js modal library.

> [!NOTE]
> This is a fork of the original [`vue-js-modal`](https://github.com/euvl/vue-js-modal) by [euvl](https://github.com/euvl).
> The fork is based on the 2.0.1 branch. The `master` branch contains some new but broken functionality (slots in dynamic modals).

### 😎 [Examples](http://vue-js-modal.yev.io/)

### 🤓 [Documentation](https://euvl.github.io/vue-js-modal/)

### 🤖 [Changelog](https://github.com/euvl/vue-js-modal/releases/tag/2.0.0-rc4)

### 🙌 [Looking for maintainers](https://github.com/euvl/vue-js-modal/issues/588)
### 🤖 [Changelog](https://github.com/febe95/vue-js-modal/releases/)

### 💰 [Sponsorship](https://github.com/sponsors/euvl)
### 💰 [Sponsorship](https://github.com/sponsors/febe95))

[![npm version](https://badge.fury.io/js/vue-js-modal.svg)](https://badge.fury.io/js/vue-js-modal)
[![npm](https://img.shields.io/npm/dm/vue-js-modal.svg)](https://www.npmjs.com/package/vue-js-modal)
[![npm](https://img.shields.io/npm/dt/vue-js-modal.svg)](https://www.npmjs.com/package/vue-js-modal)

# ⚠️⚠️⚠️ 2.0.0-rc.X version:

Version 2.0.0 release candidates will have breaking changes until it is 2.0.1. If you need a more stable version, please use 1.3.34.

If you notice any bugs or regressings please do not hesitate to report any issues.

<p align="right">
<a href="https://www.buymeacoffee.com/yev" target="_blank">
<img width="200" alt="screen shot 2018-03-01 at 10 33 39" src="https://user-images.githubusercontent.com/1577802/36840220-21beb89c-1d3c-11e8-98a4-45fc334842cf.png">
</a>
</p>

<p align="center">
<img src="https://media.giphy.com/media/3oKIPco1eNxAA1rD4Q/giphy.gif">
</p>

---

# Sponsorship & support

**If you are using this project please consider sponsoring it's further development & bug fixes**

Links: https://github.com/sponsors/euvl, https://www.buymeacoffee.com/yev

## This library is contributor-driven

**This library is contributor-driven**. It is not backed by any company, which means that all contributions are voluntary and done by the people who need them. If you need something improved, added, or fixed, please contribute it yourself. Please keep in mind that maintainers volunteer their free time to work on this project and have no obligation to reply on the issues, tailor library for specific use-cases or perform customer support.

## Other projects

Check out my other projects:
## Vue 3 Compatibility

- https://github.com/euvl/vue-notification
- https://github.com/euvl/vue-js-toggle-button
- https://github.com/euvl/vue-js-popover
- https://github.com/euvl/v-clipboard
- ✅ Main Package
- ✅ Demo
- ❌ Docs
- ❌ SSR examples (Nuxt)
1 change: 1 addition & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module.exports = function(babel) {
return {
presets: ['@babel/preset-env'],
plugins: [
'@babel/plugin-proposal-nullish-coalescing-operator',
'@babel/plugin-proposal-object-rest-spread',
'@babel/plugin-proposal-optional-chaining'
]
Expand Down
56 changes: 0 additions & 56 deletions build/webpack.client-no-css.config.js

This file was deleted.

8 changes: 0 additions & 8 deletions build/webpack.client.config.js

This file was deleted.

51 changes: 0 additions & 51 deletions build/webpack.ssr-no-css.config.js

This file was deleted.

9 changes: 0 additions & 9 deletions build/webpack.ssr.config.js

This file was deleted.

11 changes: 0 additions & 11 deletions build/webpack.test.config.js

This file was deleted.

31 changes: 31 additions & 0 deletions config/webpack.base-no-css.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const { mergeWithRules } = require('webpack-merge')
const base = require('./webpack.base.config')

const mergeRules = {
module: {
rules: {
test: 'match',
use: 'replace'
}
}
}

/** @type {import('webpack').Configuration} */
const webpackConfig = mergeWithRules(mergeRules)(base, {
module: {
rules: [
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader']
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'styles.css'
})
]
})

module.exports = webpackConfig
39 changes: 25 additions & 14 deletions build/webpack.base.config.js → config/webpack.base.config.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,43 @@
const path = require('path')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const TerserPlugin = require('terser-webpack-plugin')
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
const { VueLoaderPlugin } = require('vue-loader')

module.exports = {
/** @type {import('webpack').Configuration} */
const webpackConfig = {
mode: 'production',
target: 'web',
entry: path.resolve(__dirname, '../src/index.js'),
devtool: 'source-map',
experiments: {
outputModule: false
},
output: {
library: 'vue-js-modal',
libraryTarget: 'umd',
library: {
name: 'vue-js-modal',
type: 'umd'
},
filename: 'dummy.js', // will be overwritten by the other webpack config implementations
path: path.resolve(__dirname, '../dist'),
publicPath: '/dist/'
},
externals: {
vue: 'vue'
},
resolve: {
extensions: ['.ts', '.js']
},
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: true,
new TerserPlugin({
extractComments: false,
parallel: true,
sourceMap: true
// compress: {
// pure_funcs: ['console.log']
// }
terserOptions: {
module: false,
sourceMap: true
}
}),
new OptimizeCSSAssetsPlugin({
canPrint: true
})
new CssMinimizerPlugin()
]
},
module: {
Expand Down Expand Up @@ -58,3 +67,5 @@ module.exports = {
},
plugins: [new VueLoaderPlugin()]
}

module.exports = webpackConfig
11 changes: 11 additions & 0 deletions config/webpack.client-no-css.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const { merge } = require('webpack-merge')
const baseNoCss = require('./webpack.base-no-css.config')

/** @type {import('webpack').Configuration} */
const webpackConfig = merge(baseNoCss, {
output: {
filename: 'index.nocss.js'
}
})

module.exports = webpackConfig
11 changes: 11 additions & 0 deletions config/webpack.client.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const { merge } = require('webpack-merge')
const base = require('./webpack.base.config')

/** @type {import('webpack').Configuration} */
const webpackConfig = merge(base, {
output: {
filename: 'index.js'
}
})

module.exports = webpackConfig
Loading