aboutsummaryrefslogtreecommitdiffstats
path: root/ui
Commit message (Collapse)AuthorAgeFilesLines
* Build: Update ESLint to v9, migrate to flat config, lint dist filesMichał Gołębiowski-Owczarek2025-03-039-61/+9
| | | | | Dist files linting is limited to checking if they're proper ES5. Closes gh-2336
* Widget: Don't let widget name affect `$.ui` prototype & constructorMichał Gołębiowski-Owczarek2024-10-301-0/+3
| | | | | | This is an edge case and it only affects code accepting untrusted input as a widget name, but it's still technically correct to filter these out. Closes gh-2310
* Tabs: Use `CSS.escape` for sanitizing selectorsMichał Gołębiowski-Owczarek2024-10-271-10/+6
| | | | | | The previous private `_sanitizeSelector` API was not correctly escaping backslashes and is now removed. The native API should always be correct. Closes gh-2307
* Build: Fix the ESLint config for demosMichał Gołębiowski-Owczarek2024-10-171-0/+4
| | | | | | | | The ESLint config for `demos` extends the one for the `ui` directory. However, the `ui` one used to not be a root one, making the `demos` one effectively not depend on the `jquery` preset. Fix that and fix lots of lint violations in `demos/search.js`. Closes gh-2303
* Resizable: Fix content shrink on resizeDaniel García2024-09-091-10/+68
| | | | | | | Make resizable elements not shrink on resize when they have scrollbars and "box-sizing: content-box". Fixes: gh-2277 Closes gh-2281
* Dialog: Add option to put the dialog title in a header elementRalf Koller2024-09-091-1/+8
| | | | | | | | | Implement a new option: `uiDialogTitleHeadingLevel`, allowing to change the `span` wrapping the dialog title into a heading element (`h1`-`h6`). Value `0` represents the `span`, values 1-6 - a heading at the specified level. Fixes gh-2271 Closes gh-2275
* Datepicker: Hide the UI on destroyPorter Clevidence2024-08-051-0/+1
| | | | | | | | | | | | When the datepicker UI is shown and then destroyed programmatically: ```js $( "#datepicker" ).datepicker( "destroy" ); ``` hide the datepicker UI without the need for an explicit user action. Previously, in 1.12 the UI would not disappear immediately but only after the first `mousedown`. In later 1.13 versions, the UI would not disappear at all. Fixes gh-2178 Closes gh-2268
* Dialog: Add aria-modal supportRalf Koller2024-06-141-1/+6
| | | | | | | | | | | | Reflect the `modal` dialog option into the `aria-modal` attribute - when `modal` is `true`, set `aria-modal` to `"true"`. This helps some accessibility tools like VoiceOver with their rotor functionality as it reduces the number of elements presented. Fixes gh-2246 Closes gh-2257 Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
* Effect: Update jQuery Color from 2.2.0 to 3.0.0Michał Gołębiowski-Owczarek2024-05-151-49/+18
| | | | | | | | | | Breaking changes applicable to jQuery UI: * Use a space when serializing, remove the transparent case ([#88](https://github.com/jquery/jquery-color/issues/88), [aaf03cc](https://github.com/jquery/jquery-color/commit/aaf03ccec3bd8c15733d8e72e214cf63150a2569)) See https://github.com/jquery/jquery-color/releases/tag/3.0.0 for more information. Fixes gh-2240
* All: Remove the deprecated `ui/core.js` fileMichał Gołębiowski-Owczarek2024-05-151-18/+0
| | | | | | Also, fix checkboxradio visual tests. Ref gh-2249
* All: Stop relying on jquery-patch.js internally, add testsMichał Gołębiowski-Owczarek2024-05-157-32/+20
| | | | | | | | | | | | Avoid relying on jQuery patches. Instead: * use `CSS.escape` instead of `jQuery.escapeSelector` * use `.filter()` with a proper handler instead of `.even()` Keep `jquery-patch.js` for backwards compatibility, though. Also, add tests for jquery-patch. Ref gh-2249
* Sortable: Rename `storedStylesheet` to `_storedStylesheet`Michał Gołębiowski-Owczarek2024-05-151-3/+4
| | | | | | This follows the naming strategy for other internal properties. Ref gh-2249
* All: Drop support for IE & some other browsers (but mostly IE)Michał Gołębiowski-Owczarek2024-05-1523-370/+71
| | | | Closes gh-2249
* All: Drop support for jQueries different than the latest for each majorMichał Gołębiowski-Owczarek2024-05-156-70/+12
| | | | | | Also, remove the ability to run the test suite in jQuery <1.12.4 & <2.2.4. Closes gh-2249
* Core: Make back compat disabled by defaultMichał Gołębiowski-Owczarek2024-05-139-10/+10
| | | Closes gh-2250
* Docs: Update leftover HTTP Trac URLs to HTTPSMichał Gołębiowski-Owczarek2024-04-261-1/+1
|
* Docs: Change a few most common domains from HTTP to HTTPSMichał Gołębiowski-Owczarek2024-04-2652-190/+190
| | | | | Also, update a few stale URLs to what they redirect now to. Closes gh-2244
* Dialog: Fix IE tests about interactions with other dialogsMichał Gołębiowski-Owczarek2023-05-101-5/+8
| | | | | | | | | | The workaround triggering a second delayed focus to a tabbable element was applied in jQueries 3.4 & 3.5 to fix IE issues. It also needs to be applied in jQuery 3.6 which this commit adds. This will no longer be needed in jQuery 3.7 and jQuery 3.x-git tests are already passing because of that. Closes gh-2160
* Selectmenu: Fix selecting options following hidden onesMichał Gołębiowski-Owczarek2023-05-101-5/+7
| | | | | | | | | | | Change a2b25ef6caae3e1a272214839b815a6387618124 made options with the `hidden` attribute skipped when rendering. However, that makes indexes misaligned with native options as hidden ones maintain their index values. Instead, don't skip hidden options but add the `hidden` attribute to the respective jQuery UI elements as well. Fixes gh-2082 Closes gh-2144 Ref a2b25ef6caae3e1a272214839b815a6387618124
* Resizable: Fix resizing of elems with `box-sizing: border-box`Matías Cánepa2022-10-101-3/+6
| | | | Fixes gh-1979 Closes gh-2012
* Core: Fix dependencies in ui/core.jsMichał Gołębiowski-Owczarek2022-08-181-1/+1
| | | | | | | The `jquery-patch` reference was included with the `.js` extension which is not allowed in AMD. Fixes gh-2107 Closes gh-2109
* All: Update JS Foundation mentions to OpenJS FoundationMichał Gołębiowski-Owczarek2022-07-1948-48/+48
| | | Closes gh-2104
* Checkboxradio: Don't re-evaluate text labels as HTMLMichał Gołębiowski-Owczarek2022-07-141-8/+13
| | | | | | | | | | | | | If you generate a Checkboxradio from a checkbox/radio with a label that contains encoded HTML, e.g. `&lt;em&gt;test&lt;/em&gt;` this will work fine at first. If, however a refresh is triggered on that instance (explicitly or e.g. by turning it into a `Controlgroup`), the previously escaped HTML will now be evaluated. If the label was created based on some user input, this could lead to unexpected code execution even though the initial output was escaped. Fixes gh-2101 Closes gh-2102
* Datepicker: Capitalize some Indonesian wordsDenny Septian Panggabean2022-07-141-5/+6
| | | Closes gh-2067
* Selectmenu: Remove a call to the deprecated .focus() methodJames Hinderks2022-07-141-1/+1
| | | | | | Replaces a call to the deprecated jQuery `.focus()` method with `.trigger("focus")`. Closes gh-2053
* Datepicker: Add missing localization for prevText and nextTextFelix Nagel2022-07-148-16/+16
| | | | | | Fixes gh-2048 Closes gh-2050 Closes gh-2100
* Datepicker: Remove symbols in localizationFelix Nagel2022-07-147-11/+11
| | | | | | | Follow-up to dfff5e7e999453f5d080c184bd4e3fdbfc93b83e Fixes gh-2048 Closes gh-2050
* Datepicker: Remove symbols in localizationAdam Lidén Hällgren2022-07-1453-106/+106
| | | | | | Fixes gh-2048 Closes gh-2050 Ref gh-2067
* Widget: Optimize attachment of the _untrackClassesElement listenerMichał Gołębiowski-Owczarek2022-01-151-3/+7
| | | | | | | | | | | | | | | jQuery UI 1.13.0 changed the logic attaching the `_untrackClassesElement` listener in the `_classes` widget method; one of the side effects was calling `this._on` for each node that needed the listener. That caused a severe performance degradation for large comboboxes as each `_on` jQuery UI call causes a jQuery `add` call that calls Sizzle's `uniqueSort` underneath. Instead, collect the nodes that need the listener and then, outside of the loop, create a jQuery object out of them and attach the listener once. That's still slower than the jQuery 1.12 version but only slightly: 936 ms to 1.03s on a very large list on a recent MacBook Pro, compared to ~30 seconds before this patch. Fixes gh-2014 Closes gh-2037
* Autocomplete: Rewrite with a delay instead of appending the live regionBen Mullins2022-01-051-4/+9
| | | | | | | | | This fixes the issue caused by https://bugs.jqueryui.com/ticket/9357. We now empty the live region instead of appending to it, and we do so after a brief timeout so the live region isn't updated on every mousemove event or when quickly traversing through options. Fixes gh-2002 Closes gh-2031
* Widget: Make contextless widget construction workMichał Gołębiowski-Owczarek2021-11-191-1/+1
| | | | | | | | | | | | | | Due to the fact the widget factory code is now in strict mode, the check for being called without using the `new` keyword started breaking if you save the widget constructor to a variable before calling it: ```js var customWidget = $.custom.customWidget; customWidget( {}, elem ); ``` as then `this` is undefined and checking for `this._createWidget` crashes. Account for that with an additional check. Fixes gh-2015 Closes gh-2019
* Sortable: Fix positioning when moving a Draggable item into a SortableMichał Gołębiowski-Owczarek2021-11-151-0/+6
| | | | | | | | | PR gh-1793 removed setting `this.offset.parent` in the Draggable `refreshPositions` method which broke position calculations when moving a Draggable item into a connected Sortable. restore that assignment. Ref gh-1793 Fixes gh-2001 Closes gh-2009
* Sortable: Allow 0-height containers to be sortable as in 1.12.1Michał Gołębiowski-Owczarek2021-11-081-64/+57
| | | | | | | | | Note that container specific events will not fire when the dragged element is interacting with zero height containers. Fixes gh-1998 Closes gh-2008 Co-authored-by: A. Wells <borgboyone@users.noreply.github.com>
* Tooltip: Don't crash on empty contentJosep Sanz2021-11-081-1/+4
| | | | | | | | | | | | | | | Commit 1f2011ece removed a `try-catch` around triggering the `remove` handlers in the `jQuery.cleanData` override. The `try-catch` was meant for old IE but it was also catching an error coming from the tooltip `remove` handler depending on being able to find a relevant tooltip. The `_find` method returns `null`, though, when the tooltip cotent is empty. Instead of restoring the `try-catch`, handle the `null` case in the `remove` handler. Fixes gh-1990 Closes gh-1994 Co-authored-by: Claas Augner <github@caugner.de> Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
* Effect: Define the jQuery variable before jQuery Color gets importedMichał Gołębiowski-Owczarek2021-09-032-5/+24
| | | | | | | | | | We need to create a local jQuery because jQuery Color relies on it and the global may not exist with AMD and a custom build (trac-10199). This worked in UI 1.12 but stopped in 1.13 as jQuery Color is now sourced as an AMD module and the variable started being defined after jQuery Color code. To restore the proper order, move the variable declaration to a separate small module loaded before jQuery Color. Closes gh-1973
* Docs: Update removal comments to mention 1.14, not 1.13Michał Gołębiowski-Owczarek2021-08-263-3/+3
| | | | | | | | | We're not removing any deprecated API or legacy browser support in 1.13, re-target comments to mention 1.14. It's not guaranteed 1.14 will ever get released but if it will, it sounds like a good moment to do those removals. Closes gh-1970
* Datepicker: Get selectedDay from data-date instead of element contentsc-lambert2021-07-121-1/+2
| | | | | This makes datepicker work fine even if translation software modifies texts on the page. Closes gh-1943
* Build: Migrate from JSHint & JSCS to ESLintMichał Gołębiowski-Owczarek2021-06-07132-721/+1180
| | | | | Fixes #15393 Closes gh-1958
* Datepicker: Add option for onUpdateDatepicker callbackPatrick McKay2021-05-211-1/+7
| | | | | | Add a new option named onUpdateDatepicker that allows a custom callback to be provided. If provided, the callback is called at the end of $.datepicker._updateDatepicker.
* Fix: Adapt datpicker.js for a11yMikolaj Wolicki2021-05-151-4/+9
|
* All: Drop $.ui.escapeSelector in favor of $.escapeSelectorMichał Gołębiowski-Owczarek2021-05-146-29/+35
| | | | Fixes #14991 Closes gh-1957
* Datepicker: Make sure text option are text, shorten HTML stringsMichał Gołębiowski-Owczarek2021-05-121-21/+115
| | | | | | | | Instead of using enormous HTML strings, various elements are now constructed using jQuery APIs. This makes it more obvious user-provided data is used correctly. Fixes #15284 Closes gh-1953
* Position: Make sure `of` is treated as a CSS selectorMichał Gołębiowski-Owczarek2021-05-041-1/+6
| | | Closes gh-1955
* Datepicker: Make sure altField is treated as a CSS selectorMichał Gołębiowski-Owczarek2021-05-041-1/+1
| | | Closes gh-1954
* Dialog: Workaround broken focus re-triggering in jQuery 3.4/3.5Michał Gołębiowski-Owczarek2021-02-221-10/+22
| | | | | | | | | | | Focus re-triggering in jQuery 3.4/3.5 makes the original element have its focus event propagated last, breaking the re-targeting. Trigger focus in a delay in addition if needed to avoid the issue. This fixes the "interaction between overlay and other dialogs" core dialog test when tested against jQuery 3.4/3.5. Closes gh-1946 Ref jquery/jquery#4382
* Focusable: Fix handling of `visibility: collapse`Paul Capron2020-10-141-1/+1
| | | | | | | | | | | | | | "collapse" is similar to "hidden", with a slight difference in the case of tr/tbody/td/colgroup elements. See https://www.w3.org/TR/CSS22/visufx.html#visibility See https://www.w3.org/TR/CSS22/tables.html#dynamic-effects See https://developer.mozilla.org/en-US/docs/Web/CSS/visibility#Table_example "visibility: collapse" elements are always not focusable, though. Commit d3025968f34 introduced a regression by testing with `!== "hidden"` instead of `=== "visible"`. Closes gh-1843
* Widget: Fix boolean option when under use strictHrvoje Novosel2020-10-061-0/+2
| | | | | | | | | | | | | | Fix for `options === true` when using jQuery UI under `use strict`, which throws: ``` Uncaught TypeError: Cannot create property 'complete' on boolean 'true' ``` on line: ```js options.complete = callback; ``` Closes gh-1931
* Resizable: Fix CSP violation (style unsafe-inline)Jérémy Munsch2020-08-111-2/+3
|
* All: Remove a leftover empty fileMichał Gołębiowski-Owczarek2020-07-241-0/+0
| | | Closes gh-1933
* Menu: Account for scrollbars in jQuery 3.2Michał Gołębiowski-Owczarek2020-07-231-2/+14
| | | | | | | | | | jQuery >=3.2 doesn't include scrollbars in `.height()`, this commit switches it to `.innerHeight()` which does so in jQuery >=3.3. In jQuery 3.2 it doesn't either so include scrollbars in innerHeight, add it back. Using `.innerHeight()` instead of `.height()` should be fine as menu doesn't define padding styles. Closes gh-1929