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-vue
as dependency: no longer ships anyportal
as a dependency, as this component should work with any user land one. closed #11 and #16 - Renamed renderless export from
A11yVueDialogRenderless
to 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 ourplugin
was doing to be honest.
Maintenance
- upgrades our only dependency
focus-trap
to 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-if
on the slot content root as was suggested in readme examples. That being said, it's not wrong to applyv-if
to thea11y-vue-dialog
itself, to a wrapper element, to the<portal>
element or the<transition>
element itself. Before this minor, if any of these cases happened, thehandleClose
handler 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: hidden
tobody
but we all know that preventing backgroundScroll in a cross-browser/device world is far more complicated than that. - Adding
overflow:hidden
tobody
assumed that the consumer app "scroller" was body, when it might not be the case. - Replaced with custom events,
@show
,@hide
and 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