- Add dropdown primitive
- Don't allow focus to move to listbox, when in a combbox (avoids keyboard-focusable-scroller behaviour)
- Use touch events instead of focus out on touch devices to determine when to close.
- Remove cycling options, to get closer to native behaviour
- Maintain visibility of current option after search
- Remove use of
@ember/render-modifiers
- Expose
startsWithString
search util
- Do not call
scrollIntoView
on initial render
- Use optional chaining in js land, to match behaviour of htmlbars
- Ensure changing the value via
@value
or via the API also updates the current option
- Fix an issue where on initial render the
aria-selected
option did not also havearia-current
- Convert to
.gjs
- Correct app re-export
- Run ember-cli-update
- Upgrade dependencies
- Convert tests to
.gjs
- Update
@zestia
scoped packages
- Re-release of 16.1.0 but published to GH Packages instead of NPM
- Upgrade dependencies
- Remove use of Array.at
- Improve performance of option teardown
- Only left button performs selection
- Do no scroll if space is pressed when typing
- Enter on trigger should not toggle
- Revert Fix FF tab order
- Fix pressing Enter behaviour inside a form
- Fix FF tab order
- Add
ember-auto-import
to dependencies
- Allow escape to work when nested
- Fix Enter/Space closing multiple select boxes
- Don't activate first option
- Only apply
aria-activedescendent
to the interactive element when necessary - Only add document level event listener when necessary
- Up arrow also opens the select box
- Active option is forgotten when closing
- Ensure clicking a disabled option does not close the select box
- Ensure select box does not open when pressing Enter inside the input, if a form is to be submitted
- Keep open when document is hidden
- Re-release of 16.0.0-0
- Large refactor to fix some incorrect uses of aria attributes and to dry out common select box behaviour
- Allow setting tabindex via an argument on an Option. Reason
- Allow setting class attribute via an argument on an option. Reason
- Upgrade dependencies
- Fix not being able to set initial input value via yielded API
- Doesn't render
aria-multiselectable=false
, when not relevant - Fix space character usage in
activateOptionForKeyCode
- Correct app re-exports
- Ember Auto Import 2x
- Run ember-cli-update
- Upgrade
@embroider/util
- Upgrade dependencies
- Strip whitespace from inside empty elements, to allow CSS
:empty
- REVERT change in 15.2.0.
keydown
should indeed select options. This is how a native select box works. - Allow
Space
to select an option similar toEnter
- Upgrade dependencies
- Add Embroider support
- Where possible,
keyup
is preferred overkeydown
- Upgrade dependencies
- Make sure
id
can be set
- Upgrade dependencies
- Add
group
role to groups - Add
aria-labelledby
to groups - Add
aria-labelledby
to select boxes - Add
aria-owns
to select boxes - Run speed tests as production build
- Release changes from 15.0.0-beta
- Run ember-cli-update
- Make sure yielded-template-API is the same instance as the callback-based-API.
- Drop support for Ember 3.16
- Fix failing tests in beta versions of Ember
- Upgrade dependencies
- Add regression test for typeahead with repeating character
- Simplify typeahead checks
- Upgrade dependencies
- Add some missing tests
- Correct ember-source dependancy
- Fixed backtracking issues with beta versions of Ember
- Removed
data-
attributes,@classNamePrefix
and@onBuildClassName
in a bid to reduce API surface - Removed stateful BEM class names, like
select-box__option--selected
in favour of aria attributes - Removed
onInsertElement
(@onReady
suffices) - Removed
sb.Group
for native select box.optgroup
can be used instead - Removed
@onInput
fromsb.Input
component. This action wasn't providing anything different than what can be acheived by using{{on "input"}}
- Removed ability to set a
@value
on a selected option, and activate that selected option. SelectedOption
,SelectedOptions
,Group
andOptions
are now just dumb template only components. They weren't removed altogether, because they still prove useful for higher order components with the component helper.- Upgrade dependencies
- Fix debounced searched attempts if
@searchDelayTime
is 0
- Small internal refactor around focusing
- Remove
onFocusIn
andonFocusOut
actions, these don't provide anything different than what can be acheived by using{{on "focusin"}}
and{{on "focusout"}}
. - Add
onFocusLeave
which fires when focus leaves the select box. This is useful for closing the select box when tabbing away. - Remove
onClickOutside
in favour ofonFocusLeave
. (This removed the need for event listeners on the document).
- Upgrade dependencies
- Upgrade dependencies
- Activating options no longer waits for render before attempting to scroll into view (this responsibility is shifted to the user of the addon)
- Support setting type of input when used with component helper
- Support setting role of selected option when used with component helper
- Remove custom scroll into view code, in favour of browsers' own version
- Run prettier
- Upgrade dependencies
- Release changes from 14.0.0-beta
- Fix API be re-computed during teardown causing rendering issue
- Glimmerise component
- Drop support for Ember < 3.16
- Allow tabindex to be set on selected options with a temporary fix, due to: emberjs/rfcs#497
- Upgrade dependencies
- Use capture on document listener for detecting when something outside of a select box is clicked. (This fixes an issue where it wasn't possible to close a select box onClickOutside, but also open it with a button outside of itself)
- Upgade dependencies
- Upgrade dependencies
- Prevent errors if API is used and select box is destroyed
- Improvement: Options's indexes are stable against the correct DOM order
- Internal: Add data attribute to distinguish between types of child components registered with parent select box.
- Internal: Register components on insert rather than init to ensure DOM node available
- Only prevent default if target of Enter key-down event was a select box component. (This allows children, typically hyperlinks inside options to still work by pressing Enter)
- Apply same fix for focus-in as focus-out.
- Drop support for < Ember 3.11
- Key down event is now
defaultPrevented
if pressing Enter resulted in an option being selected. (Forms can still be submitted by pressing Enter).
- Upgrade dependencies
- Adds
activateOptionForValue
- API methods that accepted a boolean option, signifying whether to scroll to an option, now accept an object with a property
{ scrollIntoView: bool }
instead.
- Rename
@onInit
to@onReady
- Switch to BEM syntax for markup
- Remove
class-name-prefix
helper
- Unpin render modifier dependancy
- Release changes from version 10.0.9-beta
- Fix performance regression
- Add regression test
- Correct use of
scheduleOnce
- Fix calling
set
on destroyed select box
- Fix use with Promise Proxy Objects
- Make sure options have element IDs so that aria-activedescendant works correctly
- Remove use of
{{on}}
helper due to lack of splattributes forwarding.
- Internal refactoring removing use of
Mixin.create()
- Internal refactoring to Angle Bracket components / splattributes
- Removed
is-searching
class name in favour ofis-busy
and/or aria attribute - Rename
stopSearching
tocancelSearch
- Removed
@open
argument. (Please use the API instead) - Change signature of
onUpdate
, now receives API as first argument - Normalise API properties with template properties
- Upgrade deps
- Add missing test case for finding matching options
- Collapse whitespace when finding matching options using
sb.activateOptionForKeyCode
- Upgrade dependencies
- Fix restroring tabindex, when disabling, then un-disabling a select box.
- Upgrade dependencies
- Add style attribute binding support for those who still use classic components
- Only attempt
activateOptionForKeyCode
if the key pressed resulted in a character being input
@onPressKey
is now backed by a key press event, rather than an abstracted key down event- Deprecated
@onPressAlphanum
. If you were using this, please swap it to@onPressKey
- Improved
activateOptionForKeyCode
to behave more like native select boxes.
- Upgrade dependencies
- Remove jQuery from dummy test app
- Remove support for automatic escaping of style attribute, this no longer makes sense after the
move to named arguments / angle bracket components. Please swap
@style=
tostyle=
- Add isDestroying guard
- Move location of test helpers to proper ember-cli location. See readme for import.
- Use alternative approach for backtracking issue
- Make input actions more fail silently if no input present
- Make sure tabindex updates automatically if
<sb.Input />
is present or not
- Fix backracking regression
- Switches from snake case arguments to camel case,
Upgrading should be an easy find-and-replace. For example:sb.selected-option
→sb.SelectedOption
class-prefix
renamed to@classNamePrefix
- Use get/set helpers
- Guard more cases where component might set when destroyed
- ARIA: Make sure input knows it controls combo box
- ARIA: Make sure attributes are strings
- Send event out with
on-click-outside
action
- Rename
@is-open
argument to@open
to align with other args.
- Phase out internal method's like
press<Key>() {}
in favour of actions, likeon-press-<key>={{action "doSomething"}}
. - Add
on-press-alphanum
action
- Listen for touchstart so that clicking outside a select box can be detected on mobile devices.
- Upgrade ember-cli
- Add missing
on-activate
action to selected options
- Fix error if no active option available to scroll into view
- Fix typo
- Move native selectbox from
{{select-box/native}}
to{{native-select-box}}
for nicer integration with angle bracket components.
- Upgrade deps
- Fix support for Ember 2.10
- Fixes to the demos
- Use named arguments and fix no implicit this
- Update to use named arguments
- Fix use of
.send
on destroyed/ing component
- Expose
isOpen
state on the yielded API as well as the template API.
- Fix an issue introduced in 6.0.2 where mousing over an option would cause it to be scrolled to.
- Updated readme to better explain the behaviour of the
activate
actions.
-
activateNextOption
andactivatePreviousOption
default to scrolling the parent element. So there is no longer the requirement to pass intrue
, likesb.activateNextOption(true)
. But, you can of course send in false if you don't want this behaviour. -
Adds a new API function
activateOptionForKeyCode
which will make your select box behave more like a native selectbox, in that by typing characters an option whosetextContent
matches will be activated. It may not be suitable to use this feature if the selectbox also has an input field as the behaviours will likely conflict, but this will depend on your usecase.
- Fixes test helpers that select multiple options
- Improvements to aria attributes (Corrects listbox role. Adds combobox role when appropriate. Adds aria-busy)
- Changes to mixin file locations
- Exposes some test helpers for selecting values
- Removes jQuery from test suite
-
Option's yielded properties are now prefixed with
is
, e.g.{{o.isSelected}}
-
Option label attribute has been removed to align better with native select boxes. To migrate, change
{{sb.option label="Foo"}}
to{{#sb.option}}Foo{{/sb.option}}
. More. -
Selected box now yields promise state of the value, e.g.
isPending
,isRejected
,isFulfilled
,isSettled
-
Native select box option now uses same template as Faux select box option template.
- Internal changes
- One way value attributes
- Remove
invokeAction
util
value
for a multiple select can now be a promise for an array, whereas originally it was always expecting an array.- Removes
on-build-selection
from native select component
-
Previously, the behaviour of selecting multiple options with the faux-select component was undefined. With the intention that developers use
sb.update(myValues)
to implement the multiple behaviour they want. But, it is rare you want anything other than to mimic a native select, by toggling the selected item from the array of values. Hence this is now the default behaviour. More info: #15. A new actionon-build-selection
allows you to customise this. -
When using a multiple select box, the
on-select
action will fire with an array of the selected values. This array is frozen, and is not the same as the one passed into the select box originally.
- Changes
scrollIntoView
signature. Now finds the first scrollable parent, and scrolls that rather than assuming the select box options will be the scrollable element.
- Make select box support style attribute
- Yield the main select box element on the api
- Run codemod on test sutie
- Change path to certain mixins
- Fix travis builds
- Fix dependencies
- Lint everything
- Add
blurInput
to API
- Minor changes to tests
- Update tests to work with Ember 2.15x as per emberjs/ember.js#15569
- Adds a
on-init
action, useful for getting the select box's api
- Don't try to re-render if destroyed
- Adds
is-multiple
class to faux select box whenmultiple=true
- Adds ability to disable a faux option
- Make input way one again (accidently introduced two-way binding in 2.0.0)
- Phases out some use of jQuery
- Select box input extends Ember's built-in text field helper
- Don't use jQuery's trim
- Adds
on-open
andon-close
actions - Update dependencies
- Use new imports
- Add better
trySet
whilst issue is still open
- Only set property if component not destroyed
- Make more reliable when toggling visibilty of options container
- Make sure toggle uses open and close actions
- Yield open state
- move ember-improved-cp to dependencies
- Eslint
- Remove use of
getAttr
- Upgrade dependencies (babel 6 etc..)
- Upgrade dependencies
- Allow more attributes on the select box input
- Fastboot fixes
- Upgrade ember-cli
- Upgrade ember-cli
- Small bug fix
- Add support for options with promise values
- A few improvements around promises
- Add fix and regression test to make sure
on-update
is firing correctly
- Make sure there is no error if select box is destroyed
- Adds support for promise values
- Add support for plain
<option>
's on native select. Read more
- Update for Glimmer 2 compat
- Fix adding class to
classNames
(which is frozen in future versions of Ember)
- Add
required
attribute binding for native select box
- Add
autofocus
attribute binding for native select box
- Bug fix
open
action not working in combination withis-open
attr
- Add title attribute to native select box
- Make compatible with Glimmer Alpha
- Adds ability to set
selected
attribute of options
- Upgrade ember-cli
- Upgrade ember-cli
- Dodgy build
- Phase out use of
didInitAttrs
- Bugfix - make sure
on-update
only fires whenvalue
changes
- Add
name
attribute to native select box
- Upgrade addon to ember-cli 2.3.0
- Add more aria attributes
- Prevent content security warnings in test suite
- Upgrade devDependencies
- Improve slow search detection
- Add
stopSearching
- Remove
on-activate
from selected options - Fix
on-activate
usage for exposed api
- Add
on-activate
to options and selected options
setInputValue
no longer triggers input event
- Add
autocomplete="off"
to search input
- Improve
scrollIntoView
- Fix
setInputValue
not working correctly
- Remove
on-ready
andon-after-update
in favour ofon-update
- Initial release