v1.1.0
There are breaking changes in this release. Read through and update your usage where required. The upgrade should take less than an hour. If you find any changes not documented here, please file a new issue.
Note: currently Keen UI doesn't follow semver, and there may be breaking changes in minor x.x releases. To avoid these breaking changes, use the ~ version constraint to lock to a specific minor version, restricting updates to patch releases only. Example, in package.json:
-"keen-ui": "^1.1.0",
+"keen-ui": "~1.0.0",General
- Breaking: Bumped required Vue version to
v2.5or later, due to this scoped slot change. - Breaking: Rewrote global prop configuration system to be simpler and more reliable. See updated Customization guide for details.
- Rewrote Sass customization guide for clarity.
UiAlert
- Add new prop
disableAnimationto disable the show/hide animation.
UiAutocomplete
- Add new method
focus()to focus programmatically. - Add new prop
sortfor a custom sort function. - Pass default filter function as third parameter to
filterprop.
UiButton
- Breaking: Accepted values for prop
dropdownPositionhave changed to match Tippy.js. See docs for new values. - Fix ripple position starting off when directly clicking an inner element. Fixes #220.
- Add
tooltip,tooltipPositionandopenTooltipOnprops. - Make focus ring transition to fill the button. Previously, it stopped halfway. Fixes #205.
- Remove UiProgressCircular from the DOM when
loadingis false. Previously, it was hidden withdisplay: none. - Remove pointer cursor, to match default HTML buttons. If you want the hand pointer on buttons by default, add:
.ui-button { cursor: pointer; }
- For secondary buttons, use button color as background for hover and focus.
- Add new prop
href. Setting this prop will render an anchor tag.
UiCollapsible
- Breaking: Remove no longer needed
refreshHeight()method. - Refactor toggle transition to be smoother and less janky.
UiConfirm
- Breaking: Default transition
scaleis nowscale-down. If you didn't usesize="scale", this will not affect you. - Add new prop
size. - Document
revealandhideevents.
UiDatepicker
- Breaking: The month of the submitted value now starts at
1, instead of JavaScript's default which starts at0. So, January is now1instead of0, February is2, etc. - Allow a string for
valueprop. See #45. - Add new prop
startOfWeekto change the starting day of the week in the calendar shown. - Add new method
clearto clear the selected date.
UiFab
- Breaking:
tooltipPositionprop accepted values have changed to match Tippy.js. See docs for new values.
UiFileupload
- Add new method
openPicker()to open the file picker programmatically. - Add new method
clear()to clear the selected file, if any.
UiIconButton
- Breaking: Accepted values for prop
dropdownPositionhave changed to match Tippy.js. See docs for new values. - Breaking:
tooltipPositionprop accepted values have changed to match Tippy.js. See docs for new values. - Remove UiProgressCircular from the DOM when
loadingis false. Previously, it was hidden withdisplay: none. - Remove pointer cursor, to match default HTML buttons.
- For secondary icon buttons, use button color as background for hover and focus.
- Add new size:
mini. - Add
hrefprop. Setting this prop will render an anchor tag.
UiMenu and UiMenuOption
- Add new props
hrefandtargetfor menu options. Setting thehrefprop will render the menu option as an anchor tag. - Fix focus containment when tabbing backwards.
UiModal
- Breaking: Default transition
scaleis nowscale-down. If you didn't usesize="scale", this will not affect you. - Add new props
alignTopandalignTopMargin, for creating modals that are vertically aligned to the top of the viewport. - Add new size
fullscreen. - Add new transition
scale-up.
UiPopover
- Breaking: Switch positioning library to Tippy.js, which uses Popper.js.
- Breaking:
triggerprop is now a DOM Element, VueComponent instance, or selector string. If no trigger is provided or the selector doesn't match any element, the popover's immediate parent element is used as the trigger.<!-- Instead of: ref + trigger --> <button ref="button">My Button</button> <ui-popover trigger="button">My Popover</ui-popover> <!-- Use: nested <ui-popover> in target element --> <button> My Button <ui-popover>My Popover</ui-popover> </button>
- Breaking: Rename
dropdownPositionprop toposition, to match UiTooltip. Accepted values have changed to match Tippy.js. See docs for new values. - Remove prop
removeOnClose, no longer needed. All popovers are now removed from the DOM on close. - Add new prop
animationto choose animation style. - Add new prop
closeOnScrollto close an open popover on external scroll. - Add new prop
appendToBody, to choose between appending popover todocument.bodyor the local parent element. - Add new method
isOpen(), used to determine if the popover is open. - Add new events
revealandhide. - Add new prop
disabled, to disable the popover. - Add new prop
offset, to change the popover's offset from the trigger element.
UiProgressLinear
- Rewrite animation to use
transformonly (GPU accelerated), remove ::before/::after pseudo elements used for previous animation.
UiRippleInk
- Breaking:
triggerprop is now a DOM Element instance or selector string. If no trigger is provided or the selector doesn't match any element, the ripple's immediate parent element is used as the trigger. - Fix incorrect ripple position when clicking directly on trigger's inner elements. Fixes #220.
UiSelect
- Add new method
clearSelection()to clear the current selection. - Add new method
clearQuery()to clear the current search query. - Add new method
focus()to focus programmatically. - Add new prop
sortfor a custom sort function. - Pass default filter function as third parameter to
filterprop.
UiSlider
- Add new method
focus()to focus programmatically. - Add new props
minandmaxto specify a custom slider range. See #368.
UiSnackbarContainer
- Add new event
queue-end, emitted when the last snackbar in a queue is hidden.
UiTabs and UiTab
-
UiTabs
- Breaking: argument passed to
tab-changeevent handler is now the tab instance, not the id. To get the id, usetab.id. - Breaking: Remove
refreshIndicatormethod, no longer needed. - Change active tab indicator animation, to fix issues related to window resizing and initially hidden tabs. Fixes #328.
- Add new event
tab-click, emitted when a tab is clicked, whether or not the tab is selected. - Add new prop
confirmTabChange, A function that will be called for confirmation when the user attempts to change tabs.
- Breaking: argument passed to
-
UiTab
- Breaking: Remove
showprop, usev-forwith a filtered array of tabs instead. - Breaking: Remove
icon(string) andiconProps(object) props, use theheaderslot instead. - Tabs can now be created using
v-for. Fixes #349. - HTML can now be used in tab headers, using the
headerslot.
- Breaking: Remove
UiTextbox
- Add new method
focus()to focus programmatically.
UiTooltip
- Breaking: Switch positioning library to Tippy.js, which uses Popper.js.
- Breaking:
triggerprop is now a DOM Element, VueComponent instance, or selector string. If no trigger is provided or the selector doesn't match any element, the tooltip's immediate parent element is used as the trigger.<!-- Instead of: ref + trigger --> <button ref="button">My Button</button> <ui-tooltip trigger="button">My Tooltip</ui-tooltip> <!-- Use: nested <ui-tooltip> in target element --> <button> My Button <ui-tooltip>My Tooltip</ui-tooltip> </button>
- Breaking:
positionprop accepted values have changed to match Tippy.js. See docs for new values. - Add new prop
animationto choose animation style. - Add new prop
appendToBody, to choose between appending tooltip todocument.bodyor the local parent element.