Releases: renatodeleao/a11y-vue-dialog
v0.11.1
The [workaround introduced on release v0.4.4](https://github.com/renatodeleao/a11y-vue-dialog/releases/tag/v0.4.4) came back to haunt me. Even though I could probably find another workaround not to produce a breaking change I decided to go the simpler way and fix it without workarounds.
The side-effect is now that this package requires a new rootRef binding besides the already mandatory dialogRef, and backdropRef can no longer be used as root as present in the documentation.
So new dialogs MUST HAVE the following structure
<a11y-vue-dialog #default="{ rootRef, dialogRef, backdropRef }">
<div v-bind="rootRef.props">
<div v-bind="backdropRef.props" v-on="backdropRef.listeners" /> <!-- optional -->
<div v-bind="dialogRef.props" v-on="dialogRef.listeners">
</div>
</div>
</a11y-vue-dialog>as usual, you're free to use any elements/components of your choice and everything else is optional (but not for long, since this is a11y dialog I'll be more strict and throw errors if, for example, the mandatory titleRef is not binding.
v0.9.0-beta.1 "Another focus-trap update"
focus-trap was bumped to 7.3.1 with bugfixes from the underlying tabbable package bumped to 6.1.1.
Changes are mostly related with support for HTML inert attribute.
Check their releases for more info:
v0.9.0-beta.0 "The focus trap update"
Just upgrades focus-trap dependency from 6.9.4 to 7.2.0. Since it's a breaking change from the underlying package, bump this packages version as new minor pre-release.
None of my examples/demos were impacted by this change, but if yours do, please refer to focus-trap releases
v0.8.0-beta.3
💚 with @vue/compat
this patch enables the component to work correctly when in a vue 3 environment paired @vue/compat (aka migration build).
It does so by forcing MODE: 3 in their compatConfig option, which makes vue treat it as regular vue3 component.
v0.8.0-beta.2
From this version on we provide universal support for vue 2 and vue 3 with the same package 🎊
Full Changelog: v0.8.0-beta.1...v0.8.0-beta.2
v0.8.0-beta.1
Fixing dialogs breaking when null was provided as initialFocus value. New focus-trap does not allow it.
Full Changelog: v0.8.0-beta.0...v0.8.0-beta.1
0.8.0-beta.0
Warning
This version has one bug: it requires to have at least on focusRef binding. Because focus-trap version does not accept initialFocus config to be null and breaks instead of finding the first tabbable element. Fixed in the next version.
Breaking
- Removes
portal-vueas dependency: no longer ships anyportalas a dependency, as this component should work with any user land one. closed #11 and #16 - Renamed renderless export from
A11yVueDialogRenderlessto simplyA11yDialog. We no longer provided any styled solution, so there's no need to make the name state that fact. We're assumedly headless/renderless now. - No longer ships a Vue plugin as default export: since we don't provided any styled solution, this package is no longer a plug-and-play solution and, as such, it doesn't make sense to keep it. Consumers can still provide this as a global component via
Vue.component('name', A11yDialog')which was everything that ourpluginwas doing to be honest.
Maintenance
- upgrades our only dependency
focus-trapto the latest version - build(deps): bump y18n from 3.2.1 to 3.2.2 by @dependabot in #33
- build(deps): bump ssri from 6.0.1 to 6.0.2 in /playground by @dependabot in #34
- Update name reference by @KittyGiraudel in #44
- build(deps): bump ws from 5.2.2 to 5.2.3 in /playground by @dependabot in #46
- build(deps): bump prismjs from 1.23.0 to 1.24.0 by @dependabot in #43
- build(deps): bump lodash from 4.17.19 to 4.17.21 by @dependabot in #35
- build(deps): bump hosted-git-info from 2.8.5 to 2.8.9 by @dependabot in #36
- build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 in /playground by @dependabot in #37
- build(deps): bump dns-packet from 1.3.1 to 1.3.4 in /playground by @dependabot in #40
- build(deps-dev): bump postcss from 7.0.24 to 7.0.36 by @dependabot in #41
- build(deps): bump postcss from 7.0.35 to 7.0.36 in /playground by @dependabot in #42
- build(deps): bump browserslist from 4.16.3 to 4.16.6 in /playground by @dependabot in #39
- [v0.8.0] - housekeeping by @renatodeleao in #67
- refactor!: rename component and exports to simply a11y-dialog by @renatodeleao in #69
- build(deps): bump ajv from 6.10.2 to 6.12.6 by @dependabot in #55
- build(deps): bump async from 2.6.3 to 2.6.4 by @dependabot in #62
- build(deps): bump minimist from 1.2.5 to 1.2.6 by @dependabot in #60
- build(deps): bump prismjs from 1.24.0 to 1.27.0 by @dependabot in #58
- build(deps): bump path-parse from 1.0.6 to 1.0.7 by @dependabot in #47
- build(deps): bump nanoid from 3.1.21 to 3.3.4 in /playground by @dependabot in #68
- build(deps): bump shell-quote from 1.7.2 to 1.7.3 in /playground by @dependabot in #65
- build(deps): bump async from 2.6.3 to 2.6.4 in /playground by @dependabot in #63
- build(deps): bump follow-redirects from 1.13.3 to 1.14.8 in /playground by @dependabot in #56
- build(deps): bump tmpl from 1.0.4 to 1.0.5 in /playground by @dependabot in #50
- build(deps): bump path-parse from 1.0.6 to 1.0.7 in /playground by @dependabot in #48
- build(deps): bump minimist from 1.2.5 to 1.2.6 in /playground by @dependabot in #61
Full Changelog: v0.7.0...v0.8.0-beta.0
Prevent leaking implementations
- Since we have complete freedom on markup, most common implementations apply the
v-ifon the slot content root as was suggested in readme examples. That being said, it's not wrong to applyv-ifto thea11y-vue-dialogitself, to a wrapper element, to the<portal>element or the<transition>element itself. Before this minor, if any of these cases happened, thehandleClosehandler would not be called, and some leaks could occur. Now we call it correctly onbeforeDestroy, meaning that consumers can safely implement in any way. - Now forwards the event object that triggers
@close
Also tested usage with portal-vue-simple and it works flawlessly, I will probably make this as the official peer-dependency for the official 1.0 release as it's more than enough for our dialog needs and only 3k (1.3k gzip).
v0.6.0
Remove preventBackgroundScroll prop.
- Currently it was naively applying
overflow: hiddentobodybut we all know that preventing backgroundScroll in a cross-browser/device world is far more complicated than that. - Adding
overflow:hiddentobodyassumed that the consumer app "scroller" was body, when it might not be the case. - Replaced with custom events,
@show,@hideand added example so of how to achieve previous behaviour using them in your compositions.
v0.5.2
Allow close on Esc even if role="alertdialog" as per wai-aria guideline example
Note that backdrop click to close is still prevented, because technically it's outside the dialog element (and we haven't tested another way so), probably in the next release we'll have smarter prevention.
Content authors SHOULD make alert dialogs modal by ensuring that, while the alertdialog is shown, keyboard and mouse interactions only operate within the dialog.
https://www.w3.org/TR/wai-aria-1.1/#alertdialog