YUILibrary - Open source JavaScript and CSS for building richly interactive software.
Fork YUI on GitHub

YUI 2.x

YUI 3.0.0 README Digest

This document is a summary of the YUI 3.0.0 update information that has been added to the respective README files included within each component folder. Please refer the README files for the components you are using for a full change history of each component.

  • Animation
    • No changes.
  • Async-queue
    • Enhancements / Changes
      • queue-base is now part of yui. queue-run was renamed async-queue and both async-queue and queue-promote are now independent modules
      • AsyncQueue defaults to asynchronous callback execution (again)
  • Attribute
    • Enhancements / Changes
      • set/get can now be called for ad-hoc attributes (attributes which have not been added/configured).
      • Limited the case for which an attribute will not notify after listeners, if the value is unchanged after a set, to primitive values (values for which Lang.isObject(newVal) returns false). This allows after listeners to be invoked, when resetting the value to the same object reference, which has properties updated, or arrays with elements modified.
      • Attribute broken up into attribute-base and attribute-complex submodules. attribute-complex adds support for complex attributes ({x.y.z : 5}) to addAttrs.
    • Bug Fixes
      • Fixed issue where custom getters were being called with undefined values, for the initial set.
  • Base
    • Enhancements / Changes
      • Plugin.Host removed from base-base module and delivered as it's own module - "pluginhost"
      • base broken up into:
        • base-base: Provides class hierarchy support for ATTRS and initialization
        • base-build: Provides Extension support in the form of Base.build
        • base-pluginhost: Augments Plugin.Host to Base, adding plugin support
    • Bug Fixes
      • Fixed hasImpl method on built classes, to look up the class hierarchy for applied extensions.
  • Cache
    • Enhancements / Changes
      • Added uniqueKeys Attribute.
  • ClassNameManager
    • No changes.
  • Collection
    • Enhancements / Changes
      • unique with sort works.
  • Console
    • Enhancements / Changes
      • Added attribute 'style' to allow inline-block, block, or absolute positioning
      • Moved the hidden state css to the sam skin and increased rule specificity
      • Removed 'label' property from normalized message object since it was just a copy of category
      • Moved collapsed class to the boundingBox and now collapse resizes the boundingBox accordingly
      • Added useBrowserConsole attribute as a pass through to the YUI config. Default to false so when a Console is instantiated messages are redirected to Console rather than duplicated there.
      • collapse(), expand(), and log(..) are now chainable
    • Bug Fixes
      • printBuffer no longer throws an error when called against an empty buffer
  • Console-Filters
    • Enhancements / Changes
      • Adding attribute cacheLimit to limit memory overrun from holding onto all log messages
  • Cookie
    • No changes.
  • CSS Base
    • No changes.
  • CSS Fonts
    • No changes.
  • CSS Grids
    • Deprecated for YUI 3.
  • CSS Reset
    • No changes.
  • DataSchema
    • Enhancements / Changes
      • Support for DOM elements in DataSchema.XML.
  • DataSource
    • Enhancements / Changes
      • DataSource.IO now passes request value to IO.
      • DataSource.Function now catches exception and fires error event.
  • DataType
    • No changes.
  • Drag & Drop
    • Enhancements / Changes
      • #2528096 Updated initialization routine so plugins load before DD attachs to the node.
      • #2528119 Added SELECT selector to invalidHandles.
    • Bug Fixes
      • #2528124 Fixed issue with creating more than one DD instance on a node.
      • #2528149 Fixed _noShim use case
  • DOM
    • Enhancements / Changes
      • Selector now using native querySelector/All when available
      • Selector.test now accepts optional root argument
  • Dump
    • Enhancements / Changes
      • Better handling of HTML elements.
  • Event
    • Enhancements / Changes
      • Added onreadystatechange fork in domready to handle the event in IE when YUI is hosted in an iframe.
      • Added mousewheel support.
      • Added Y.delegate function that is a bit easier to use than Y.on('delegate'...
      • Default scope of mouseenter and mouseleave events is the Node instance to which the listener is attached
      • Default scope of delegated event listeners is the Node instance that matched the supplied CSS selector
      • All special DOM event handlers (focus/blur/mousewheel,resize,delegate,etc) are broken down into submodules. Core DOM event functionality is provided in event-base.js, and all of the functionality is rolled into event.js.
      • Additional Safari key remapping.
      • Special DOM events can now be routed through delegate.
      • Y.on can target Node and NodeList references correctly.
      • When configured to return a detach handle, a single object is always returned. Previously requests that resolved to multiple listeners returned an array.
    • Bug Fixes
      • Fixed onAvailable lazy DOM listener detach handles.
  • Event-Custom
    • Enhancements / Changes
      • Broken into core base and complex modules.
      • broadcast works for simple events.
      • If configured to return an event handle, the return value will always be a single object, regardless of how many listeners were attached. Previously, multiple listeners provided an array of detach handles.
  • Event-Simulate
    • No changes.
  • History
    • Bug Fixes
      • Fix #2528198: window.onhashchange now used for IE8 in IE7 mode for proper click detection.
      • Fix #2528051: fix bug in hash encoding/decoding
  • ImageLoader
    • No changes.
  • IO
    • Enhancements / Changes
      • Native cross-domain transactions are now supported in io-xdr. To specify an XDR transaction, set the configuration object with the following properties:
        • use: Specify either 'native' or 'flash' as the desired XDR transport.
        • credentials: Set to true if cookies are to be sent with the request. Does not work with XDomainRequest(e.g., IE8) or the Flash transport.
        • datatType: Set to 'xml' if the response is an XML document.

For example:
var configuration.xdr = {
use: 'flash', //Required -- 'flash' or 'native'.
credentials: true, //Optional.
dataType: 'xml' //Optional.
}

      • The 'use' property is required. The others are optional or functionality-specific.
      • When using the native transport, io will fallback to the Flash transport if the browser is not capable of supporting the native mode. Make sure the resource responds with the correct "Access-Control-Allow-Origin" header before attempting a native XDR request.
    • The sub-module 'datatype-xml' is now a dependency for io-xdr, to support XML response data in XDR transactions.
    • XDR transport initialization is simplified to one required value -- the path to Flash transport. For example: Y.io.transport({ src:'io.swf' });
  • JSON
    • Enhancements / Changes
      • Leverages native JSON.stringify if available
      • Added Y.JSON.useNativeParse and useNativeStringify properties that can be set to false to use the JavaScript implementations. Use these if your use case triggers an edge case bug in one of the native implementations. Hopefully these will be unnecessary in a few minor versions of the A grade browsers.
      • Added support for toJSON methods on obects being stringified
      • Moved Date stringification before replacer to be in accordance with ES5
  • Loader
    • Extracted from the YUI seed. Now fetched dynamically if there are missing dependencies if not included.
      • Reads metadata from on-page modules registered via Y.add if the module is not already known.
  • Node
    • Enhancements / Changes
      • Node no longer extends Base or augments Attribute
      • set() no longer fires attribute change events
      • Y.get -> Y.one
      • Node::query -> Node::one
      • Node::queryAll -> Node::all
      • NodeList::get now returns a NodeList for DOM values (e.g. nodelist.get('parentNode'))
      • Added Node::replace, purge, and destroy
  • Node-FocusManager
    • Bug Fixes
      • Fixed issue where mousing down on a child node of a descendant would result in the descendant losing focus
  • Node-MenuNav
    • No changes.
  • OOP
    • No functional change.
  • Overlay
    • Enhancements / Changes
      • Modified progressive enhancement use case, to use document fragments instead of innerHTML to preserve event listeners.
    • Bug Fixes
      • Fixed use of centered, x and y in the constructor. These all needed 'lazyAdd' configuration since they had setters which modified other attribute state.
  • Plugin
    • No changes.
  • Pluginhost
    • Enhancements / Changes
      • Split out of "base" as a standalone module, for use by Node.
  • Profiler
    • Bug Fixes
      • Fixed missing return value (# 2527921)
  • Queue-promote
    • Enhancements / Changes
      • queue-base is now part of yui, queue-run and queue-promote are independent modules
  • Slider
    • Enhancements / Changes
      • Removed noop _setValueFn and the setter config for the value attribute
      • Renamed static protected AXIS_KEYS to _AXIS_KEYS
      • Renamed _defUpdateValueFromDD to _defThumbDragFn per naming conventions
      • Added _convertOffsetToValue to mirror _convertValueToOffset
  • StyleSheet
    • No changes.
  • Substitute
    • No changes.
  • Test
    • Enhancements / Changes
      • Added missing space in assert failure message (trac #2528058).
      • Failed tests now output "failed" into the log (trac #2527916).
      • Added chainability for the add() method on Y.Test.Runner and Y.Test.Suite (trac #2527899).
    • Bug Fixes
      • Fixed ArrayAssert errors (trac #2528142).
  • Widget
    • No changes.
  • Widget-position
    • Bug Fixes
      • Fixed ability to set individual x, y values.
  • Widget-position-ext
    • No changes.
  • Widget-stack
    • Enhancements / Changes
      • Recreate iframe shim from TEMPLATE for each instance, instead of cloning a class level cached Node instance, so that ownerDocument can be set to match the bounding box.
  • Widget-stdmod
    • Enhancements / Changes
      • Cleaned up the way headerContent, bodyContent, footerContent are configured, so that the actual stored value is always accurate, without the need for a getter which talks to the DOM directly.
      • Recreate sections from TEMPLATE string for each instance, instead of cloning a class level cached Node instance, so that ownerDocument can be set to match the content box.
      • Replaced use of innerHTML for progressive enhancement use case with document fragment when parsing and then setting headerContent, bodyContent, footerContent in HTML_PARSER impl, to maintain event listeners etc.
  • YUI
    • Enhancements / Changes
      • Extracted the loader from the seed file. Instead, if loader not included, 'get' is included, and dependencies are missing, the loader will be fetched before continuing.
      • User agent detection is more granular. e.g., FireFox 3.5 reports gecko 1.91 rather than 1.9.
      • Added additional mobile device detection.
      • Get utility attribute cleanup before purging nodes.
      • cached accepts a parameter to refresh a cached value.
      • yui-log and yui-later are now optional modules that are included with yui.js.
      • queue-base is no longer a submodule of queue -- it is part of yui-base.
      • All YUI submodules end up in the yui build directory.
      • Dynamic loading can be disabled by setting the 'bootstrap' config to false.
      • Automatic fetching of CSS files can be disabled by setting 'fetchCSS' to false.
    • Bug Fixes
      • Fixed UA.os.