## RELEASE NOTES ### Version 2.2.0 - XX XX, 2016 **Project Features** - **jQuery** - Semantic UI is now fully compatible with jQuery `3.0` - **Webpack** - All css is now webpack-compatible - **NPM** - NPM dependencies have all been updated to latest stable releases **New UI Features** - **All UI** - Components that use event handlers on `document`, `body`, or a `settings.context` now all use DOM mutation observers to detect removal and prevent memory leaks - **All UI** - All UI now include _all_ sizing variations, `mini`, `tiny`, `small`, `large`, `big`, `huge`, `massive`. Headers remain with only 5 sizes `small-huge` to match `H1-H5` - **Dropdown** - Dropdown now changes user selection on keyboard shortcuts immediately, this will save the extra `enter` key press to confirm selection in most cases. To enable previous pre `2.2` selection style use the setting `selectOnKeydown: false` **Documentation forthcoming** - **Dropdown** - Dropdown will now automatically focus on `search` inside of a dropdown menu after it is opened. - **Dropdown** - Multiple select dropdown now sizes current dropdown input based on rendered width of a hidden element, not using an estimate based on character count. This means search will never break to a second line earlier than would normally fit in current line. - **Progress** - Progress now uses a polling interval for updates. Rapidly updating the progress bar over a period quicker than the animation duration (for example with xhr `onprogress` events say every 50ms) will now appear smooth as butter. **New Features** - **All UI** - Added new setting `silent` to all modules which allows you to disable all console output including errors. This can be useful for preventing known errors, like a popup which cannot place itself on screen, or `sticky` content which initializes before it is visible #3713 - **Button** - Added compatibility with `primary` `secondary` `positive` `negative` buttons with the `basic` styling variation. #3756 - **Card** - Added `raised` card variation **Thanks @yordis** #2955 - **Dropdown** - All dropdowns, not just `selection dropdown`, will now select the first `menu item` that starts with a pressed keyboard key, for example "N" will select "New" - **Icons** - Icons now use the latest Font Awesome `4.6.3` Icons. 80+ new icons+ are included. Thanks @BreadMaker for the PR and @davegandy for the font! - **Popup** - Added new `tooltip` popup type that works without javascript. Tooltips can specify positioning and some variations using `data` attributes, and will handle positioning automatically with CSS only. - **Table** - `definition table` now includes additional class names for forcing, or ignoring definition cell styles **New Settings** - **Build Tools** - Added new `autoInstall` option to allow for Semantic to be installed without user interaction. See [docs explanation](http://www.semantic-ui.com/introduction/advanced-usage.html#Auto-Install) for how to use. #3616 **Thanks @algorithme** - **Dropdown** - Added `fullSearchSearch: 'exact'` setting, which requires exact matches for dropdown values #3085 #3994 **Thanks @ShawnCholeva** - **Dropdown** - Added new setting for search selection `hideAdditions` this will remove showing user additions inside the menu, making for a more intuitive adding process. Dropdowns now have a new state `empty` which will format an active dropdown with empty results. #3791 - **Dropdown** - Adds new `allowReselection` option to trigger `onChange` events even when reselecting same value ***NEEEDS DOCUMENTATION*** - **Dropdown** - Adds new setting `minCharacters` which sets the minimum number of characters required to start filtering results #3886 - **Form Validation** - Added `depends` validation rule setting which will only validate a field if another specified field is not empty - **Popup** - Added new setting `boundary` and `scrollContext`. `boundary` lets you specify an element that the popup will try to position itself to be contained inside of. `scrollContext` lets you specify the element which when scrolled should hide the popup - **Popup** - Added new settings `observeChanges`, which is enabled by default. This will add special mutation observers to trigger `destroy` when the element is removed from the document, preventing memory leaks. - **Progress** - Added `onLabelUpdate` callback, this can be used to specify the exact text that should appear on the actual progress update, perhaps based on some external conditions - **Rating** - Added new setting `fireOnInit` for rating, which defaults to `false`. When set to true `onRate` will fire when rating is initialized #3712 - **Search** - Added a new option `selectFirstResult`, which defaults to `false`. Will automatically highlight first result on search **Documentation forthcoming** - **Search** - Search now includes a `showNoResults` setting for determining whether no results messages should be shown **Documentation forthcoming** - **Shape** - Shape now lets you specify next side width using setting `width`, can use `next` or `initial` to specify whether it should use old or new side size **Documentation forthcoming** - **Tab** - Added new setting `cacheType`, can either be `html` or `response` (default). HTML will cache resulting html after callbacks, `response` will cache the original response so that it can be played back identically on future loads #2534 - **Tabs** - Added new option `deactivate`, defaults to `siblings` which will only deactivate tab activators that are DOM siblings elements to the activating element. Setting it to 'all' will deactivate any other tab element initialized at the same time. - **Visibility** - Added `onFixed` and `onUnfixed` callbacks for visibility `type: 'fixed'` **Documentation forthcoming** - **Visibility** - Added `onLoad` and `onAllLoaded` callback for `type: 'image'` visibility - **Visibility** - Added `zIndex` setting for specifying zindex with `type: 'fixed'` #3370 **New Behaviors** - **Dropdown** - Added new convenience method `restore placeholder text` - **Image** - `transition hidden image` now shows correctly as `visibility: hidden;` and not `display: none`. This will allow `offset` with `visibility` and `sticky` to work more seamlessly. `hidden image` will still remain `display: none;` - **Progress** - Added progress `is complete` for returning whether success, warning, or error conditions are met **CSS Enhancements** - **All UI** Extended variables which return exact pixel values in em (`@relativePX` and @px) up to 40px to allow for simple theming with exact values - **Button** - Added variables for configuring `disabled` background image and box shadow. - **Site** - Added colored box shadow defaults. `ui message` now includes individual colored border shadows based on new site defaults. - **Site** - Added new `@inputColor` and `@inputPlaceholderColor` global variables that now control placeholder text styles across all components. - **Table** - `definition table` now supports `definition` variation to specify definition styles on an element that is not `:first-child` - **Table** - `definition table` now supports `ignored` variation to force a `first-child` to ignore its default definition stylings **Critical Bug Fixes** - **All UI** - Using `component('setting, {})` to add multiple settings as an object literal, for example `error: {}`, will now deep extend the existing object instead of replacing it. - **API** - `beforeSend` would not correctly cancel request when `return false;` is used in callback. #3660 - **API** - `cache: 'local'` would not return the localstorage cached results in some cases - **Divider** - Descenders like "g" are cut off in `horizontal divider` #3585 - **Dropdown** - `forceSelection` will now automatically select values with multi dropdowns. When using `userAdditions` setting it will now automatically tokenize the current entered value - **Dropdown** - `search selection` would not let you move back in an entered search string with left arrow #3596 **Thanks @Sanjo** - **Dropdown** - Fixed issue where value set using javascript DOM metadata would be cleared when a message or user addition triggered `refresh` #3879 #3622 **Thanks @mdehoog** - **Form Validation / Dropdown** - Using "enter" key in a `search dropdown` could cause a form to be submitted #3676 - **Form Validation** - Fix issue with some foreign email addresses with extended charsets causing email validation to fail #3955 #3755 - **Form Validation** - Revalidating a field `on: blur` could cause fields not yet interacted with to be validated #3606 - **Form** - Fixed issue with `(x) fields` and `equal width` fields where middle rows would be slightly smaller because they include both left and right padding in % width. (Edges only have one side padding). Field groups now use negative margins instead. - **Popup** - Fixed issue where clicking element inside popup removed from DOM (like clicking a multi select label) would cause popup to close #3887 - **Rail** - Fixed incorrect width for `close rail` and `very close rail` caused by variable addition with mixed units `px` + `em` #3835 - **Search** - A previous unfinished XHR query aborting would cause the next query to fail #2779 - **Search** - Fixed an issue where `onResult` returning `false` would not prevent the search menu from hiding. Clicking on an empty results message will also no longer close the search results. #3856 #3870 - **Sticky/Visibility** - Added mutation observer to teardown element with `destroy` if removed from DOM context, fixing a possible memory leak - **Video** - Fixed issue with `change` behavior not working properly when correctly to change videos. **Bugs** - **API** - Using `onResponse` with `dataType` other than JSON or JSONP would cause an error. (Not allowing plain text responses to be translated) #3653 - **Build Tools** - Fixed gulp help text incorrect for RTL tasks in build tools #3858 - **Button** - `right icon` like `right arrow icon` would have additional margin inside an `icon button` #3525 - **Button** - Fixed issue where `disabled loading button` would not remove `pointer-events` #2933 - **Button** - Fixed typo in `green inverted button` #3873 - **Button/Dropdown** - Button dropdowns using `default text` no longer receive incorrect font styling for placeholder text - **Checkbox** - Fixed issue where docs refer to `onEnable` and `onDisable` with checkbox but callback was called `onEnabled` and `onDisabled`, both callbacks will now be valid until 3.0 #3761 #3763 - **Checkbox** - Radio buttons received `indeterminate` styles when user has not yet interacted with the page in Chrome - **Dropdown** - `apiSettings` was not defaulting to use `cache: 'local'` as specified in the docs - **Dropdown** - `get value` would not return correct value when value was blank #3766 - **Dropdown** - Added `1px` offset for current text so that the blinking text position cursor does not overlap first pixel of underlayed text. - **Dropdown** - Dropdown would open when an label delete x was clicked when not using `search selection` #3789 - **Dropdown** - Dropdowns no longer re-open on selection when nested inside of a `