CHANGELOG.md 21 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

9.0.2 - 2021-10-11

Fixed

  • Fixed sketcher behaviours augmenting in the wrong order, which prevented behaviours being revoked.
  • Fixed debugging throwing errors.
  • Docking state could end up incorrect internally, which caused Docking.refresh() to not work.

9.0.0 - 2021-08-26

Added

  • Added new focus property to the Blocking behaviour config.
  • Added a new preserve option to LayoutInset which will preserve the previous placement inside the component.
  • Added a new flip option to LayoutInset which will swap the previous placement to the opposite direction inside the component.
  • Added the alwaysFit layout property which allows for the layout to specify if it should always claim to fit, no matter what.
  • Bubble can include an optional inset class to be added when using an inset layout.
  • The Positioning behaviour now supports transitioning when changing the position of a component.
  • Added a new reset API to the Positioning behaviour to reset the component back to it's original position.
  • The transitioncancel event can now be listened to by the alloy event system.

Improved

  • Improved the performance of constructing event handlers and components.
  • Improved the performance of split toolbars when there were no groups to render.

Changed

  • All components now expose their uid.
  • Changed disconnected components to log a warning instead of throwing an error when triggering or broadcasting events.
  • Renamed LayoutInside to LayoutInset to better reflect what it does.
  • Changed LayoutInset rendering behaviour, as it was inconsistent with other layouts. It will now mirror the Layout logic for each direction.
  • Renamed the anchor property in anchor specs to type.
  • Changed the Positioning behaviour APIs to require a PlacementSpec instead of an AnchorSpec.
  • Changed the Positioning behaviour to store the last placement state of each placee component. This is used for determining how a component should transition.
  • Upgraded to Katamari 8.0, which includes breaking changes to the Optional API used in this module.

Fixed

  • Fixed a number of positioning bugs when using an "inset" layout, especially any that renders at the bottom.
  • LayoutInset bubble classes were applied incorrectly, causing the bubble arrows to show on the opposite side.
  • MakeshiftAnchorSpec did not extend HasLayoutAnchorSpec which meant layouts couldn't be used for makeshift anchors.
  • TieredMenu child menus were incorrectly opened when the parent menu item was disabled.
  • Fixed selection box creation in SelectionAnchor to avoid context menu covering text when multiple lines are selected.

8.2.0 - 2021-05-06

Added

  • Added a new setValue method to the SliderUi. This allows the slider value to be modified without firing a change event.

8.1.0 - 2020-11-18

Added

  • Added a Blocking behaviour for elements that can enter a busy state

8.0.0 - 2020-09-29

Changed

  • Changed some public APIs (eg Components, Custom Events) to no longer be thunked.

Added

  • Added new isOpen API to the SplitFloatingToolbar and SplitSlidingToolbar components.

Fixed

  • Fixed AriaOwner not able to find the owner component when rendered within a ShadowRoot.
  • Fixed AriaFocus not preserving focus when the component is rendered within a ShadowRoot.

7.0.2 - 2020-05-25

Fixed

  • Fixed Tooltipping behaviour failing to run due to not being listed in the default alloy.receive events.

7.0.0 - 2020-05-21

Added

  • Added new isExtraPart property to InlineView. This allows the component to declare an external component as part of itself for dismissal events.
  • Added new getModes and setModes API to the docking behaviour.
  • Exposed the AriaVoice voice module in the API.

Changed

  • The AriaOwner module, Boxes module, Pinching behaviour and SnapConfig/SnapOutput specs no longer use thunked functions and instead use the variable directly.
  • All uses of Struct.immutableBag and Struct.immutable have been replaced with readonly interfaces.
  • Changed the Disabling behaviour to use a lazy disabled configuration to determine if the component should be disabled on initial load.

6.1.0 - 2020-03-16

Added

  • Added new isExtraPart property to InlineView. This allows the component to declare an external component as part of itself for dismissal events.

6.0.1 - 2020-03-02

Fixed

  • Fixed Bounder incorrectly calculating the bottom/right limits, due to not taking into account the element size.
  • Fixed LayoutInside incorrectly placing items in the opposite direction.

6.0.0 - 2020-02-13

Removed

  • Removed getMoreButton and getOverflow methods from the SplitSlidingToolbar component.
  • Removed getMoreButton method from the SplitFloatingToolbar component.
  • Removed getAnchor configuration from the SplitFloatingToolbar component.
  • Removed SugarEvent from exports list.
  • Removed leftAttr, topAttr and positionAttr options from the Docking behavior.

Added

  • Added new FloatingToolbar component.
  • Added new vertical directionality for layouts
  • Added setGroups and toggle methods and getBounds configuration to the FloatingToolbarButton component.

Changed

  • Moved modules from "alien" folder into Sugar, Katamari and other folders in Alloy.
  • Changed Docking to use bottom instead of top when docking to the bottom of the viewport.
  • Changed Docking to restore the position when undocking using styles which it was previously positioned with.

5.1.0 - 2019-12-17

Added

  • Added new mouseOrTouch mode to dragging to support dragging for both mouse and touch events.

Changed

  • Changed touch/mouse event handling to work with hybrid devices that accept both mouse and touch events.
  • Changed AlloyEvents.runActionExtra() to pass the simulated event to the callback.

Fixed

  • Fixed the Slider component not working in some cases on touch devices.

5.0.7 - 2019-12-02

Fixed

  • Improved Docking scroll performance by only calculating the offset origin as required.

5.0.2 - 2019-11-11

Fixed

  • Fixed TouchDragging behaviour triggering drag on any document touchmove event.
  • Fixed dragging updating start state on window scroll, when dragging hadn't started.
  • Fixed menu item execute not killing the original mouse or touch event.
  • Fixed touchstart events bubbling up from buttons.

5.0.1 - 2019-10-25

Fixed

  • Fixed clicking on the modal dialog blocker component focusing the document body.

5.0.0 - 2019-10-17

Added

  • Added mustSnap configuration to Dragging to force draggables to snapping points.
  • Added the ability to calculate a max width to Bounder though defaulted it to a no-op.
  • Added MaxWidth export for use in anchor overrides.
  • Added onDocked, onUndocked, onShow, onShown, onHide and onHidden configuration callbacks for the Docking behaviour.
  • Added modes configuration to Docking to control where the component should be docked. eg: top or bottom of the viewport.
  • Added isDocked and reset APIs to Docking to check if a component is docked and to reset the stored original position and state.
  • Added reposition APIs for TieredMenu, Dropdown, InlineView, SplitDropdown and SplitFloatingToolbar components.
  • Added new reposition channel to notify sandboxed components that they should reposition.
  • Added onOpened and onClosed configuration callbacks for the SplitSlidingToolbar component.
  • Added getOverflowBounds configuration to the SplitFloatingToolbar component.

Changed

  • Reworked the Docking behaviour to support both absolute and static positioning.
  • Changed the Docking behaviours lazyContext configuration to require a Bounds be returned instead of an Element.
  • Changed the Positioning behaviours useFixed configuration to require a Function instead of a boolean.
  • Changed Boxes.win to use the visual viewport API where available to determine the window bounds.

Fixed

  • Fixed Docking not undocking to the correct position when a parent was using position: relative.
  • Fixed Docking not undocking to the correct position when the window has been resized.
  • Fixed replacing and reflecting losing component state when replacing with the same components.
  • Fixed MakeshiftAnchor incorrectly calculating the anchor coordinates in fixed position mode.
  • Fixed custom position bounds being ignored in fixed position mode.
  • Fixed incorrect right/bottom positioning in fixed mode when a scrollbar is visible.
  • Fixed Positioning placing the element off the page or out of view when the anchor point is out of bounds.

4.15.25 - 2019-09-18

Fixed

  • Fixed dragging being blocked when scrolled and not at the bottom of the viewport.

4.15.2 - 2019-07-31

Added

  • Added useNative option to Disabling to allow for buttons, textareas, inputs and select to be "fake-disabled" instead of using the native disabled attribute.

4.15.1 - 2019-07-30

Changed

  • Changed tabbing behaviour to not try to tab to disabled elements by default.

4.15.0 - 2019-07-23

Added

  • Added getBounds property to the dragging behaviour to prevent dragging outside the specified bounds.

Changed

  • Changed dragging behaviour to prevent dragging outside the window by default.

4.14.0 - 2019-07-11

Added

  • Added onDisabled and onEnabled callbacks to the disabling behaviour.
  • Added new positionWithinBounds positioning API to allow positioning with a custom bounding box.
  • Exposed Boxes module and Bounds type in api main entry point.

Fixed

  • Fixed disabling select elements not using the disabled attribute.
  • Fixed LayoutInside bubbling inverting where the bubble should be placed.

4.13.0 - 2019-06-06

Added

  • Added new Custom List ui component.

4.12.1 - 2019-05-17

Added

  • Exposed the DragnDrop behaviour in the api main entry point.

4.12.0 - 2019-04-30

Changed

  • Broke the SplitToolbar component into separate self contained components, so it now has a separate component for floating (SplitFloatingToolbar) and sliding (SplitSlidingToolbar).

Fixed

  • Improved the SplitToolbar component accessibility for floating toolbars.

4.11.18 - 2019-04-30

Added

  • Added AnchorOverrides to all remaining Anchors and AnchorSpecs, as well as dropdowns

4.11.15 - 2019-04-26

Fixed

  • Fixed aria attributes for typeahead text fields

Added

  • Added AnchorOverrides to the SubmenuAnchor and SubmenuAnchorSpec

4.11.11 - 2019-04-16

Added

  • Added new AllowBubbling behaviour

4.11.9 - 2019-04-15

Added

  • Added Disabling.set(comp, disabled) function to handle setting the disabled state based on a boolean value

4.11.7 - 2019-04-12

Added

  • Tests for native DragnDrop behaviour

Changed

  • Draggable items without a provided setData function will no longer mutate dataTransfer

4.11.1 - 2019-04-10

Changed

  • Made footers an optional part in modal dialogs

4.11.0 - 2019-04-04

Added

  • Added new DragnDrop behaviour for support of browser native drag/drop

4.10.7 - 2019-03-15

Added

  • Keyboard navigation for sliding split toolbars

4.10.4 - 2019-03-04

Fixed

  • Input components defaulted to using an invalid type attribute

4.10.0 - 2019-02-26

Added

  • Floating mode for SplitToolbars

4.9.15 - 2019-02-19

Added

  • Aria-describedby to be set as content id on modal dialogs

4.9.11 - 2019-02-12

Added

  • Toggling behaviour to SplitToolbar's overflow button

4.9.4 - 2019-02-07

Added

  • Refresh method to Sliding behaviour

4.9.1 - 2019-01-31

Added

  • Exported additional types used in TinyMCE 5
  • GuiSetup and TestStore are now available under a "TestHelpers" export, very useful for testing projects that use Alloy UI

4.8.5 - 2019-01-31

Changed

  • All fetch callbacks now return a Future Option

4.8.3 - 2019-01-29

Added

  • Added the windowResize system event

4.8.0 - 2019-01-18

Added

  • New events for highlight and dehighlight

Changed

  • Tooltips can now follow highlights by setting the mode to 'follow-highlight'

Fixed

  • Listed additional events in the event ordering
  • Ensured that a highlighted item will not be first dehighlighted

4.7.3 - 2019-01-24

Added

  • Added bubble support for hotspot anchors

4.7.0 - 2019-01-18

Added

  • Added more flexible tooltip behaviour.

4.6.11 - 2019-01-10

Added

  • Added postPaste event to SystemEvents.

4.6.8 - 2019-01-10

Changed

  • Dropdowns now default the type attribute to "button" when the dom tag is a button

4.6.2 - 2018-12-12

Fixed

  • SplitButtons now use span elements for their buttons for accessibility

4.6.0 - 2018-12-11

Added

  • New configuration parameter for Keying configs which controls when to focus inside: "focusInside"

Changed

  • Handling of focusIn for keying configs

4.5.1 - 2018-12-06

Fixed

  • ModalDialog now correctly sets the "aria-modal" attribute

4.5.0 - 2018-12-05

Added

  • Tiered menus handle toggling aria-expanded as submenus are opened and closed

Changed

  • Updated the toggling behaviour to make the toggleClass optional
  • Reworked SplitDropdown so that it's treated as a single button from keyboard navigation and aria perspectives

4.4.3 - 2018-11-26

Changed

  • alloy UIDs are random (again) to prevent issues with nested motherships loaded with different scripts

Fixed

  • Sliding shrinking and growing classes were not being removed when toggling mid-animation

4.4.1 - 2018-11-22

Changed

  • Bounder will now attempt to corral the element within the provided bounds

4.4.0 - 2018-11-21

Changed

  • Dropdowns no longer set the aria-pressed attribute on the button

4.3.0 - 2018-11-05

Added

  • Exposed a new LazySink type

Changed

  • The lazySink function now takes a component as an argument
  • A new getApis() method for running individual APIs on components

4.2.0 - 2018-11-02

Added

  • Exposed NodeAnchorSpec type

4.1.0 - 2018-11-01

Added

  • Typeahead specification now may have an onSetValue handler

4.0.0 - 2018-10-30

Changed

  • All sketcher configs are no longer wrapped in functions
  • Only non-button HTML tags get a role of button
  • TieredMenu submenus are built on-demand and then cached

3.52.0 - 2018-10-25

Added

  • Label part for sliders

3.51.0 - 2018-10-25

Changed

  • Window scroll events are not automatically detected by the mothership

3.50.0 - 2018-10-22

Added

  • NodeAnchor positioning mode

3.49.0 - 2018-10-18

Fixed

  • Backspace keys are no longer swallowed in content-editable sections

3.48.0 - 2018-10-17

Added

  • positionWithin API to Positioning behaviour and showWithin API to InlineView sketcher, allowing positioning within bounds without prior configuration

3.47.0 - 2018-10-10

Added

  • layouts property to dropdown, split dropdown and type ahead specs, to modify the position of the resulting menu of these components.

3.46.0 - 2018-09-28

Added

  • useMinWidth property to dropdown and split dropdown specs, to modify matchWidth's behaviour. When true, matchWidth sets min-width, when false it sets width.

3.45.6 - 2018-09-28

Remove

  • Hard-coded background color of blocker

3.45.4 - 2018-09-25

Fixed

  • Origins are calculated after preprocessing both the positioning container and the component to be placed

3.45.2 - 2018-09-25

Fixed

  • East and West layouts now have a top value

3.45.0 - 2018-09-24

Changed

  • When previewing in a typeahead, pressing enter fires an execute

3.44.0 - 2018-09-21

Fixed

  • Keyboard navigating through the toolbar now skips disabled buttons.

3.43.0 - 2018-09-21

Added

  • ModalDialog blocker part now can take components to put before dialog

Changed

  • Group Part types now use a factory if present

3.42.0 - 2018-09-20

Added

  • Alloy listens to the keyup event

Changed

  • Keying behaviours that handle space cancel space on keyup. Helps to prevent a firefox issue with buttons

3.41.0 - 2018-09-20

Added

  • Exposed Layout and Bubble through Main
  • Additional Layout options: east and west
  • Configuration classes for different bubbles positions

Changed

  • Layout names in the private API have changed
  • Bubble data structure format

3.40.0 - 2018-09-20

Changed

  • Positioning logic refactor.

3.39.3 - 2018-09-19

Fixed

  • Correct argument is passed through for item in itemExecute in Typeahead
  • Internal event Typeahead itemExecute is handled when dismissOnBlur is false

3.39.0 - 2018-09-17

Removed

  • Shorthands type and placeholder from Input

3.38.0 - 2018-09-17

Added

  • Function onItemExecute to Typeahead

3.37.0 - 2018-09-17

Added

  • Event focusout to NativeEvents

3.36.0 - 2018-09-14

Added

  • InlineView has new API method: setContent

3.35.0 - 2018-09-14

Changed

  • Typeahead now lets onEscape and onEnter events bubble when sandbox is closed

3.34.0 - 2018-09-13

Added

  • Function attachSystemAfter to Attachment so a GuiSystem can be attached as a sibling

3.33.0 - 2018-09-12

Added

  • Group parts have a preprocess configuration

Fixed

  • Sliding listens to transition events from itself, not the animation root

Changed

  • Modal Dialog busy container is now inside the Modal Dialog container
  • ModalDialog callback in setBusy API is no longer passed the existing dialog styles

Removed

  • Menu movement configuration options for laying out item components. Use group preprocess instead

3.32.0 - 2018-09-11

Fixed

  • Sliding behaviour now handles rapidly switching between expanding and shrinking

3.31.0 - 2018-09-11

Changed

  • text property is now in meta for Items

3.30.0 - 2018-09-10

Added

  • Created a Dropdown API with isOpen, close, expand, open
  • New event focusShifted that is fired by the FocusManager in Keying
  • Representing config to the Dropdown sandbox to store the triggering Dropdown

Changed

  • Hover behaviour on menus now shows the expanded menu, but doesn't focus it
  • Renamed unused config openImmediately to highlightImmediately and made TieredMenus always open

3.29.0 - 2018-09-07

Added

  • Docking.refresh() to recalculate the component's position and visibility

3.28.0 - 2018-09-06

Added

  • Expanded the SlotContainer API to add:

    • getSlotNames
    • isShowing
    • hideAllSlots

      Fixed

    • Sandbox cloaking no longer enforces position when no position attributes are applied.

3.27.0 - 2018-09-06

Fixed

  • Fixed Sliding behaviour responding to transitionend on nested elements
  • Fixed types on Sliding behavior API

3.26.0 - 2018-09-05

Added

  • data alloy identifiers to the DOM nodes themselves. They are no longer in the visible HTML

3.25.0 - 2018-09-05

Added

  • dynamic configuration of debugging modes

3.24.0 - 2018-09-04

Added

  • InlineView.showMenuAt() to special-case positioning for inline menus
  • Sandboxing.openWhileCloaked() convenience method

3.23.0 - 2018-08-31

Added

  • eventOrder for Dropdowns
  • extra debugging information

3.22.0 - 2018-08-29

Added

  • dragging behaviour flag for repositionTarget (defaults to true)
  • dragging behaviour handler (onDrag)

3.21.0 - 2018-08-29

Added

  • onChoose event to Sliders

3.20.0 - 2018-08-28

Added

  • Replacing.replaceAt and Replacing.replaceBy

3.19.0 - 2018-08-23

Added

  • Tooltipping API access to hideAllExclusive, and tooltipComponents in config
  • DomFactory.simple and DomFactory.dom for quick generation of basic AlloySpec objects
  • InlineView API: getContent
  • Readable state for Flatgrid Keying types
  • Support for matrix-style menus
  • Consistent definitions for itemBehaviours and widgetBehaviours
  • IgnoreFocus capability for item widgets
  • Exposing onChangeTab and onDismissTab through TabSectionTypes
  • Chain methods for TestStore

3.18.0 - 2018-08-20

Added

  • selectClasses and selectAttributes to HtmlSelect sketcher

3.17.0 - 2018-08-10

Added

  • Configuration for InlineView: fireDismissalEventInstead
  • SystemEvents.dismissRequested()

3.16.0 - 2018-08-08

Added

  • Reflecting behaviour
  • ModalDialog getFooter API
  • Exported AlloyComponent and renamed MomentoRecord to MementoRecord

3.15.0 - 2018-08-03

Added

  • Typeahead, SplitDropdown: getHotspot option

3.14.0 - 2018-08-01

Added

  • SlotContainer: new sketcher

3.13.0 - 2018-08-01

Added

  • ModalDialog setIdle and setBusy API

3.12.0 - 2018-08-01

Added

  • Alloy listens to paste event

3.11.0 - 2018-07-31

Added

  • Highlighting.getCandidates API
  • TabSection showTab API

3.10.0 - 2018-07-31

Added

  • Changelog.
  • The capability to set dropdown anchor points to something other than the drop button.