From 2a77d4c9dc430fc3e626a5808f72ec163aa71b48 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 27 Aug 2024 13:26:30 -0400
Subject: [PATCH 01/18] Bump org.jboss.weld.servlet:weld-servlet-core (#12527)

Bumps org.jboss.weld.servlet:weld-servlet-core from 5.1.2.Final to 5.1.3.Final.

---
updated-dependencies:
- dependency-name: org.jboss.weld.servlet:weld-servlet-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-integration-tests-jakarta/pom.xml | 2 +-
 primefaces-showcase/pom.xml                  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/primefaces-integration-tests-jakarta/pom.xml b/primefaces-integration-tests-jakarta/pom.xml
index 0168f01e31..03ff4daa95 100644
--- a/primefaces-integration-tests-jakarta/pom.xml
+++ b/primefaces-integration-tests-jakarta/pom.xml
@@ -72,7 +72,7 @@
         <dependency>
             <groupId>org.jboss.weld.servlet</groupId>
             <artifactId>weld-servlet-core</artifactId>
-            <version>5.1.2.Final</version>
+            <version>5.1.3.Final</version>
             <exclusions>
                 <exclusion>
                     <groupId>jakarta.el</groupId>
diff --git a/primefaces-showcase/pom.xml b/primefaces-showcase/pom.xml
index 3663f978f6..1c3efd26ce 100644
--- a/primefaces-showcase/pom.xml
+++ b/primefaces-showcase/pom.xml
@@ -22,7 +22,7 @@
         <myfaces.version>4.0.2</myfaces.version>
         <resteasy.version>6.2.8.Final</resteasy.version>
         <jetty.version>12.0.12</jetty.version>
-        <weld.version>5.1.2.Final</weld.version>
+        <weld.version>5.1.3.Final</weld.version>
         <jsf.project.stage>Production</jsf.project.stage>
     </properties>
 

From f56b871fbc1cee35390536d996e8db0383a95ac3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 27 Aug 2024 13:26:38 -0400
Subject: [PATCH 02/18] Bump org.apache.maven.plugins:maven-surefire-plugin
 from 3.4.0 to 3.5.0 (#12528)

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.4.0...surefire-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 pom.xml            | 2 +-
 primefaces/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8e9a5e3087..53f89bff41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,7 +194,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.4.0</version>
+                <version>3.5.0</version>
             </plugin>
 
             <plugin>
diff --git a/primefaces/pom.xml b/primefaces/pom.xml
index 7676280aab..00da7b9de5 100644
--- a/primefaces/pom.xml
+++ b/primefaces/pom.xml
@@ -1277,7 +1277,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.4.0</version>
+                <version>3.5.0</version>
             </plugin>
         </plugins>
     </build>

From 7aee87e24b566765965f0fd2744f8b9f5aadd66e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 27 Aug 2024 13:26:45 -0400
Subject: [PATCH 03/18] Bump org.apache.maven.plugins:maven-failsafe-plugin
 from 3.4.0 to 3.5.0 (#12530)

Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.4.0...surefire-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-failsafe-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 53f89bff41..afee6c4f2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -188,7 +188,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-failsafe-plugin</artifactId>
-                <version>3.4.0</version>
+                <version>3.5.0</version>
             </plugin>
 
             <plugin>

From 9167192aaff8fcf0e39b7ecbc4d195d22a558f2d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 27 Aug 2024 13:26:52 -0400
Subject: [PATCH 04/18] Bump org.apache.maven.plugins:maven-javadoc-plugin from
 3.8.0 to 3.10.0 (#12529)

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.8.0 to 3.10.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.8.0...maven-javadoc-plugin-3.10.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index afee6c4f2e..ebd2617ebc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -152,7 +152,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.8.0</version>
+                <version>3.10.0</version>
                 <configuration>
                     <sourcepath>${basedir}/src/main/java;</sourcepath>
                     <doclint>none</doclint>

From 60fa909aa7b4c7656ef331784b86bbaddf1a4c2d Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Tue, 27 Aug 2024 16:02:19 -0400
Subject: [PATCH 05/18] Fix #12429: jQuery UI 1.14.0 (#12433)

* Fix #12429: jQuery UI 1.14.0

* Update 0-jquery.ui.datepicker.js

* Dialog replace transfer effect with transfer method

* Update jquery.ui.js
---
 docs/15_0_0/core/thirdpartylibs.md            |   2 +-
 .../calendar/0-jquery.ui.datepicker.js        |  55 +-
 .../resources/primefaces/dialog/dialog.js     |  14 +-
 .../resources/primefaces/jquery/jquery.ui.js  | 475 +++++++-----------
 4 files changed, 207 insertions(+), 339 deletions(-)

diff --git a/docs/15_0_0/core/thirdpartylibs.md b/docs/15_0_0/core/thirdpartylibs.md
index 67d7391d66..bcae77885f 100644
--- a/docs/15_0_0/core/thirdpartylibs.md
+++ b/docs/15_0_0/core/thirdpartylibs.md
@@ -25,7 +25,7 @@ are many other third party libraries and plugins used to support features.
 | [jQuery Rangy](../jsdocs/modules/src_PrimeFaces.JQueryRangy.html) | 1.2.0 | https://github.com/timdown/rangyinputs |
 | [jQuery Timepicker Addon](../jsdocs/interfaces/src_PrimeFaces.JQuery-1.html#timepicker) | 1.6.3 | http://trentrichardson.com/examples/timepicker |
 | [jQuery UI Touch Punch](../jsdocs/interfaces/src_PrimeFaces.JQuery-1.html#touchpunch) | 1.1.5 | https://github.com/RWAP/jquery-ui-touch-punch |
-| [jQuery UI](../jsdocs/modules/node_modules__types_jqueryui.html) | 1.13.3 | https://github.com/jquery/jquery-ui |
+| [jQuery UI](../jsdocs/modules/node_modules__types_jqueryui.html) | 1.14.0 | https://github.com/jquery/jquery-ui |
 | [jQuery](../jsdocs/interfaces/src_PrimeFaces.JQuery-1.html) | 4.0.0 | https://jquery.com/ |
 | [jScrollPane](../jsdocs/interfaces/src_PrimeFaces.JQuery-1.html#jScrollPane) | 2.2.3 | https://github.com/vitch/jScrollPane |
 | [JSPlumb Diagram](../jsdocs/modules/node_modules_jsplumb.export_.html) | 2.15.6 | https://github.com/jsplumb/jsplumb |
diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/calendar/0-jquery.ui.datepicker.js b/primefaces/src/main/resources/META-INF/resources/primefaces/calendar/0-jquery.ui.datepicker.js
index 050b2ef597..19c9815860 100644
--- a/primefaces/src/main/resources/META-INF/resources/primefaces/calendar/0-jquery.ui.datepicker.js
+++ b/primefaces/src/main/resources/META-INF/resources/primefaces/calendar/0-jquery.ui.datepicker.js
@@ -1,11 +1,11 @@
-/*! jQuery UI - v1.13.2 - 2022-08-09
-* http://jqueryui.com
+/* jQuery UI - v1.14.0 - 2024-08-08
+* https://jqueryui.com
 * Includes: keycode.js, widgets/datepicker.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
+* Copyright OpenJS Foundation and other contributors; Licensed MIT */
 
 ( function( factory ) {
 	"use strict";
-	
+
 	if ( typeof define === "function" && define.amd ) {
 
 		// AMD. Register as an anonymous module.
@@ -20,22 +20,22 @@
 
 $.ui = $.ui || {};
 
-var version = $.ui.version = "1.13.2";
+var version = $.ui.version = "1.14.0";
 
 
-/*!
- * jQuery UI Keycode 1.13.2
- * http://jqueryui.com
+/*
+ * jQuery UI Keycode 1.14.0
+ * https://jqueryui.com
  *
- * Copyright jQuery Foundation and other contributors
+ * Copyright OpenJS Foundation and other contributors
  * Released under the MIT license.
- * http://jquery.org/license
+ * https://jquery.org/license
  */
 
 //>>label: Keycode
 //>>group: Core
 //>>description: Provide keycodes as keynames
-//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
+//>>docs: https://api.jqueryui.com/jQuery.ui.keyCode/
 
 
 var keycode = $.ui.keyCode = {
@@ -59,26 +59,26 @@ var keycode = $.ui.keyCode = {
 
 
 /* eslint-disable max-len, camelcase */
-/*!
- * jQuery UI Datepicker 1.13.2
- * http://jqueryui.com
+/*
+ * jQuery UI Datepicker 1.14.0
+ * https://jqueryui.com
  *
- * Copyright jQuery Foundation and other contributors
+ * Copyright OpenJS Foundation and other contributors
  * Released under the MIT license.
- * http://jquery.org/license
+ * https://jquery.org/license
  */
 
 //>>label: Datepicker
 //>>group: Widgets
 //>>description: Displays a calendar from an input or inline for selecting dates.
-//>>docs: http://api.jqueryui.com/datepicker/
-//>>demos: http://jqueryui.com/datepicker/
+//>>docs: https://api.jqueryui.com/datepicker/
+//>>demos: https://jqueryui.com/datepicker/
 //>>css.structure: ../../themes/base/core.css
 //>>css.structure: ../../themes/base/datepicker.css
 //>>css.theme: ../../themes/base/theme.css
 
 
-$.extend( $.ui, { datepicker: { version: "1.13.2" } } );
+$.extend( $.ui, { datepicker: { version: "1.14.0" } } );
 
 var datepicker_instActive;
 
@@ -155,7 +155,7 @@ function Datepicker() {
 		showOptions: {}, // Options for enhanced animations
 		defaultDate: null, // Used when field is blank: actual date,
 			// +/-number for offset from today, null for today
-		appendText: "", // Display text following the input box, e.g., showing the format
+		appendText: "", // Display text following the input box, e.g. showing the format
 		buttonText: "...", // Text for trigger button
 		buttonImage: "", // URL for trigger button image
 		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
@@ -181,7 +181,7 @@ function Datepicker() {
 		duration: "fast", // Duration of display/closure
 		beforeShowDay: null, // Function that takes a date and returns an array with
 			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
-			// [2] = cell title (optional), e.g., $.datepicker.noWeekends
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
 		beforeShow: null, // Function that takes an input field and
 			// returns a set of custom settings for the date picker
 		onSelect: null, // Define a callback function when a date is selected
@@ -395,7 +395,7 @@ $.extend( Datepicker.prototype, {
 		}
 
 		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
-		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
+		// https://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
 		inst.dpDiv.css( "display", "block" );
 	},
 
@@ -477,6 +477,7 @@ $.extend( Datepicker.prototype, {
 			$target.removeClass( this.markerClassName ).empty();
 		}
 
+		$.datepicker._hideDatepicker();
 		if ( datepicker_instActive === inst ) {
 			datepicker_instActive = null;
 			this._curInst = null;
@@ -952,9 +953,6 @@ $.extend( Datepicker.prototype, {
 		}
 	},
 
-	// #6694 - don't focus the input if it's already focused
-	// this breaks the change event in IE
-	// Support: IE and jQuery <1.9
 	_shouldFocusInput: function( inst ) {
 		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
 	},
@@ -1013,8 +1011,7 @@ $.extend( Datepicker.prototype, {
 				$.datepicker._tidyDialog( inst );
 			};
 
-			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
-			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
+			if ( $.effects && ( $.effects.effect[ showAnim ] ) ) {
 				inst.dpDiv.hide( showAnim, $.datepicker._get( inst, "showOptions" ), duration, postProcess );
 			} else {
 				inst.dpDiv[ ( showAnim === "slideDown" ? "slideUp" :
@@ -2275,11 +2272,11 @@ $.fn.datepicker = function( options ) {
 $.datepicker = new Datepicker(); // singleton instance
 $.datepicker.initialized = false;
 $.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.13.2";
+$.datepicker.version = "1.14.0";
 
 var widgetsDatepicker = $.datepicker;
 
 
 
 
-} );
\ No newline at end of file
+} );
diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/dialog/dialog.js b/primefaces/src/main/resources/META-INF/resources/primefaces/dialog/dialog.js
index e35d7957fc..56cf97cd4b 100644
--- a/primefaces/src/main/resources/META-INF/resources/primefaces/dialog/dialog.js
+++ b/primefaces/src/main/resources/META-INF/resources/primefaces/dialog/dialog.js
@@ -716,13 +716,13 @@ PrimeFaces.widget.Dialog = PrimeFaces.widget.DynamicOverlayWidget.extend({
             }
 
             if(animate) {
-                this.jq.effect('transfer', {
-                                to: dockingZone
-                                ,className: 'ui-dialog-minimizing'
-                                }, 500,
-                                function() {
-                                    $this.dock(dockingZone);
-                                });
+                this.jq.transfer({
+                    to: dockingZone,
+                    className: 'ui-dialog-minimizing',
+                    duration: 500
+                    }, function () {
+                        $this.dock(dockingZone);
+                    });
             }
             else {
                 this.dock(dockingZone);
diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/jquery/jquery.ui.js b/primefaces/src/main/resources/META-INF/resources/primefaces/jquery/jquery.ui.js
index edb9c4fe4b..d025a6c56c 100644
--- a/primefaces/src/main/resources/META-INF/resources/primefaces/jquery/jquery.ui.js
+++ b/primefaces/src/main/resources/META-INF/resources/primefaces/jquery/jquery.ui.js
@@ -1,11 +1,11 @@
-/* jQuery UI - v1.13.3 - 2024-04-26
+/* jQuery UI - v1.14.0 - 2024-08-08
 * https://jqueryui.com
 * Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/mouse.js, widgets/slider.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js
 * Copyright OpenJS Foundation and other contributors; Licensed MIT */
 
 ( function( factory ) {
 	"use strict";
-	
+
 	if ( typeof define === "function" && define.amd ) {
 
 		// AMD. Register as an anonymous module.
@@ -19,12 +19,13 @@
 "use strict";
 
 $.ui = $.ui || {};
+$.uiBackCompat = true;
 
-var version = $.ui.version = "1.13.3";
+var version = $.ui.version = "1.14.0";
 
 
 /*
- * jQuery UI Widget 1.13.3
+ * jQuery UI Widget 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -766,7 +767,7 @@ var widget = $.widget;
 
 
 /*
- * jQuery UI Position 1.13.3
+ * jQuery UI Position 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1263,7 +1264,7 @@ var position = $.ui.position;
 
 
 /*
- * jQuery UI :data 1.13.3
+ * jQuery UI :data 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1278,21 +1279,15 @@ var position = $.ui.position;
 
 
 var data = $.extend( $.expr.pseudos, {
-	data: $.expr.createPseudo ?
-		$.expr.createPseudo( function( dataName ) {
-			return function( elem ) {
-				return !!$.data( elem, dataName );
-			};
-		} ) :
-
-		// Support: jQuery <1.8
-		function( elem, i, match ) {
-			return !!$.data( elem, match[ 3 ] );
-		}
+	data: $.expr.createPseudo( function( dataName ) {
+		return function( elem ) {
+			return !!$.data( elem, dataName );
+		};
+	} )
 } );
 
 /*
- * jQuery UI Disable Selection 1.13.3
+ * jQuery UI Disable Selection 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1327,7 +1322,7 @@ var disableSelection = $.fn.extend( {
 
 
 /*
- * jQuery UI Focusable 1.13.3
+ * jQuery UI Focusable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1376,20 +1371,10 @@ $.ui.focusable = function( element, hasTabindex ) {
 		focusableIfVisible = hasTabindex;
 	}
 
-	return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
+	return focusableIfVisible && $( element ).is( ":visible" ) &&
+		$( element ).css( "visibility" ) === "visible";
 };
 
-// Support: IE 8 only
-// IE 8 doesn't resolve inherit to visible/hidden for computed values
-function visible( element ) {
-	var visibility = element.css( "visibility" );
-	while ( visibility === "inherit" ) {
-		element = element.parent();
-		visibility = element.css( "visibility" );
-	}
-	return visibility === "visible";
-}
-
 $.extend( $.expr.pseudos, {
 	focusable: function( element ) {
 		return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
@@ -1399,17 +1384,8 @@ $.extend( $.expr.pseudos, {
 var focusable = $.ui.focusable;
 
 
-
-// Support: IE8 Only
-// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
-// with a string, so we need to find the proper form.
-var form = $.fn._form = function() {
-	return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
-};
-
-
 /*
- * jQuery UI Form Reset Mixin 1.13.3
+ * jQuery UI Form Reset Mixin 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1437,7 +1413,7 @@ var formResetMixin = $.ui.formResetMixin = {
 	},
 
 	_bindFormResetHandler: function() {
-		this.form = this.element._form();
+		this.form = $( this.element.prop( "form" ) );
 		if ( !this.form.length ) {
 			return;
 		}
@@ -1471,7 +1447,7 @@ var formResetMixin = $.ui.formResetMixin = {
 
 
 /*
- * jQuery UI Support for jQuery core 1.8.x and newer 1.13.3
+ * jQuery UI Legacy jQuery Core patches 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1480,50 +1456,17 @@ var formResetMixin = $.ui.formResetMixin = {
  *
  */
 
-//>>label: jQuery 1.8+ Support
+//>>label: Legacy jQuery Core patches
 //>>group: Core
-//>>description: Support version 1.8.x and newer of jQuery core
-
-
-// Support: jQuery 1.9.x or older
-// $.expr[ ":" ] is deprecated.
-if ( !$.expr.pseudos ) {
-	$.expr.pseudos = $.expr[ ":" ];
-}
+//>>description: Backport `.even()`, `.odd()` and `$.escapeSelector` to older jQuery Core versions (deprecated)
 
-// Support: jQuery 1.11.x or older
-// $.unique has been renamed to $.uniqueSort
-if ( !$.uniqueSort ) {
-	$.uniqueSort = $.unique;
-}
 
 // Support: jQuery 2.2.x or older.
 // This method has been defined in jQuery 3.0.0.
 // Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js
 if ( !$.escapeSelector ) {
-
-	// CSS string/identifier serialization
-	// https://drafts.csswg.org/cssom/#common-serializing-idioms
-	var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
-
-	var fcssescape = function( ch, asCodePoint ) {
-		if ( asCodePoint ) {
-
-			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
-			if ( ch === "\0" ) {
-				return "\uFFFD";
-			}
-
-			// Control characters and (dependent upon position) numbers get escaped as code points
-			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
-		}
-
-		// Other potentially-special ASCII characters get backslash-escaped
-		return "\\" + ch;
-	};
-
-	$.escapeSelector = function( sel ) {
-		return ( sel + "" ).replace( rcssescape, fcssescape );
+	$.escapeSelector = function( id ) {
+		return CSS.escape( id + "" );
 	};
 }
 
@@ -1546,7 +1489,7 @@ if ( !$.fn.even || !$.fn.odd ) {
 
 ;
 /*
- * jQuery UI Keycode 1.13.3
+ * jQuery UI Keycode 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1581,7 +1524,7 @@ var keycode = $.ui.keyCode = {
 
 
 /*
- * jQuery UI Labels 1.13.3
+ * jQuery UI Labels 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1607,9 +1550,8 @@ var labels = $.fn.labels = function() {
 		return this.pushStack( this[ 0 ].labels );
 	}
 
-	// Support: IE <= 11, FF <= 37, Android <= 2.3 only
-	// Above browsers do not support control.labels. Everything below is to support them
-	// as well as document fragments. control.labels does not work on document fragments
+	// If `control.labels` is empty - e.g. inside of document fragments - find
+	// the labels manually
 	labels = this.eq( 0 ).parents( "label" );
 
 	// Look for the label based on the id
@@ -1624,7 +1566,7 @@ var labels = $.fn.labels = function() {
 		ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
 
 		// Create a selector for the label based on the id
-		selector = "label[for='" + $.escapeSelector( id ) + "']";
+		selector = "label[for='" + CSS.escape( id ) + "']";
 
 		labels = labels.add( ancestors.find( selector ).addBack( selector ) );
 
@@ -1636,7 +1578,7 @@ var labels = $.fn.labels = function() {
 
 
 /*
- * jQuery UI Scroll Parent 1.13.3
+ * jQuery UI Scroll Parent 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1670,7 +1612,7 @@ var scrollParent = $.fn.scrollParent = function( includeHidden ) {
 
 
 /*
- * jQuery UI Tabbable 1.13.3
+ * jQuery UI Tabbable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1694,7 +1636,7 @@ var tabbable = $.extend( $.expr.pseudos, {
 
 
 /*
- * jQuery UI Unique ID 1.13.3
+ * jQuery UI Unique ID 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1731,12 +1673,8 @@ var uniqueId = $.fn.extend( {
 } );
 
 
-
-// This file is deprecated
-var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
-
 /*
- * jQuery UI Mouse 1.13.3
+ * jQuery UI Mouse 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -1756,7 +1694,7 @@ $( document ).on( "mouseup", function() {
 } );
 
 var widgetsMouse = $.widget( "ui.mouse", {
-	version: "1.13.3",
+	version: "1.14.0",
 	options: {
 		cancel: "input, textarea, button, select, option",
 		distance: 1,
@@ -1808,12 +1746,10 @@ var widgetsMouse = $.widget( "ui.mouse", {
 		this._mouseDownEvent = event;
 
 		var that = this,
-			btnIsLeft = ( event.which === 1 ),
-
-			// event.target.nodeName works around a bug in IE 8 with
-			// disabled inputs (#7620)
-			elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
-				$( event.target ).closest( this.options.cancel ).length : false );
+			btnIsLeft = event.which === 1,
+			elIsCancel = typeof this.options.cancel === "string" ?
+				$( event.target ).closest( this.options.cancel ).length :
+				false;
 		if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
 			return true;
 		}
@@ -1859,28 +1795,17 @@ var widgetsMouse = $.widget( "ui.mouse", {
 	_mouseMove: function( event ) {
 
 		// Only check for mouseups outside the document if you've moved inside the document
-		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
-		// fire a mousemove event if content is placed under the cursor. See #7778
-		// Support: IE <9
-		if ( this._mouseMoved ) {
-
-			// IE mouseup check - mouseup happened when mouse was out of window
-			if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
-					!event.button ) {
+		// at least once.
+		if ( this._mouseMoved && !event.which ) {
+
+			// Support: Safari <=8 - 9
+			// Safari sets which to 0 if you press any of the following keys
+			// during a drag (#14461)
+			if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
+					event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
+				this.ignoreMissingWhich = true;
+			} else if ( !this.ignoreMissingWhich ) {
 				return this._mouseUp( event );
-
-			// Iframe mouseup check - mouseup occurred in another document
-			} else if ( !event.which ) {
-
-				// Support: Safari <=8 - 9
-				// Safari sets which to 0 if you press any of the following keys
-				// during a drag (#14461)
-				if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
-						event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
-					this.ignoreMissingWhich = true;
-				} else if ( !this.ignoreMissingWhich ) {
-					return this._mouseUp( event );
-				}
 			}
 		}
 
@@ -1986,49 +1911,8 @@ var plugin = $.ui.plugin = {
 };
 
 
-
-var safeActiveElement = $.ui.safeActiveElement = function( document ) {
-	var activeElement;
-
-	// Support: IE 9 only
-	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
-	try {
-		activeElement = document.activeElement;
-	} catch ( error ) {
-		activeElement = document.body;
-	}
-
-	// Support: IE 9 - 11 only
-	// IE may return null instead of an element
-	// Interestingly, this only seems to occur when NOT in an iframe
-	if ( !activeElement ) {
-		activeElement = document.body;
-	}
-
-	// Support: IE 11 only
-	// IE11 returns a seemingly empty object in some cases when accessing
-	// document.activeElement from an <iframe>
-	if ( !activeElement.nodeName ) {
-		activeElement = document.body;
-	}
-
-	return activeElement;
-};
-
-
-
-var safeBlur = $.ui.safeBlur = function( element ) {
-
-	// Support: IE9 - 10 only
-	// If the <body> is blurred, IE will switch windows, see #9420
-	if ( element && element.nodeName.toLowerCase() !== "body" ) {
-		$( element ).trigger( "blur" );
-	}
-};
-
-
 /*
- * jQuery UI Draggable 1.13.3
+ * jQuery UI Draggable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -2045,7 +1929,7 @@ var safeBlur = $.ui.safeBlur = function( element ) {
 
 
 $.widget( "ui.draggable", $.ui.mouse, {
-	version: "1.13.3",
+	version: "1.14.0",
 	widgetEventPrefix: "drag",
 	options: {
 		addClasses: true,
@@ -2152,7 +2036,7 @@ $.widget( "ui.draggable", $.ui.mouse, {
 	},
 
 	_blurActiveElement: function( event ) {
-		var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+		var activeElement = this.document[ 0 ].activeElement,
 			target = $( event.target );
 
 		// Don't blur if the event occurred on an element that is within
@@ -2163,7 +2047,7 @@ $.widget( "ui.draggable", $.ui.mouse, {
 		}
 
 		// Blur any element that currently has focus, see #4261
-		$.ui.safeBlur( activeElement );
+		$( activeElement ).trigger( "blur" );
 	},
 
 	_mouseStart: function( event ) {
@@ -3263,7 +3147,7 @@ var widgetsDraggable = $.ui.draggable;
 
 
 /*
- * jQuery UI Droppable 1.13.3
+ * jQuery UI Droppable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -3279,7 +3163,7 @@ var widgetsDraggable = $.ui.draggable;
 
 
 $.widget( "ui.droppable", {
-	version: "1.13.3",
+	version: "1.14.0",
 	widgetEventPrefix: "drop",
 	options: {
 		accept: "*",
@@ -3707,7 +3591,7 @@ $.ui.ddmanager = {
 
 // DEPRECATED
 // TODO: switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
+if ( $.uiBackCompat === true ) {
 
 	// Backcompat for activeClass and hoverClass options
 	$.widget( "ui.droppable", $.ui.droppable, {
@@ -3746,7 +3630,7 @@ var widgetsDroppable = $.ui.droppable;
 
 
 /*
- * jQuery UI Resizable 1.13.3
+ * jQuery UI Resizable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -3765,7 +3649,7 @@ var widgetsDroppable = $.ui.droppable;
 
 
 $.widget( "ui.resizable", $.ui.mouse, {
-	version: "1.13.3",
+	version: "1.14.0",
 	widgetEventPrefix: "resize",
 	options: {
 		alsoResize: false,
@@ -3806,9 +3690,13 @@ $.widget( "ui.resizable", $.ui.mouse, {
 
 	_hasScroll: function( el, a ) {
 
-		if ( $( el ).css( "overflow" ) === "hidden" ) {
+		var overflow = $( el ).css( "overflow" );
+		if ( overflow === "hidden" ) {
 			return false;
 		}
+		if ( overflow === "scroll" ) {
+			return true;
+		}
 
 		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
 			has = false;
@@ -3875,9 +3763,8 @@ $.widget( "ui.resizable", $.ui.mouse, {
 			};
 
 			this.element.css( margins );
-			this.originalElement.css( "margin", 0 );
 
-			// support: Safari
+			// Support: Safari
 			// Prevent Safari textarea resize
 			this.originalResizeStyle = this.originalElement.css( "resize" );
 			this.originalElement.css( "resize", "none" );
@@ -3888,10 +3775,6 @@ $.widget( "ui.resizable", $.ui.mouse, {
 				display: "block"
 			} ) );
 
-			// Support: IE9
-			// avoid IE jump (hard set the margin)
-			this.originalElement.css( margins );
-
 			this._proportionallyResize();
 		}
 
@@ -4111,21 +3994,26 @@ $.widget( "ui.resizable", $.ui.mouse, {
 
 		this.offset = this.helper.offset();
 		this.position = { left: curleft, top: curtop };
+		
+		var calculatedSize = undefined;
+		if ( !this._helper ) {
+			calculatedSize = this._calculateAdjustedElementDimensions( el );
+		}
 
 		this.size = this._helper ? {
 				width: this.helper.width(),
 				height: this.helper.height()
 			} : {
-				width: el.width(),
-				height: el.height()
+				width: calculatedSize.width,
+				height: calculatedSize.height
 			};
 
 		this.originalSize = this._helper ? {
 				width: el.outerWidth(),
 				height: el.outerHeight()
 			} : {
-				width: el.width(),
-				height: el.height()
+				width: calculatedSize.width,
+				height: calculatedSize.height
 			};
 
 		this.sizeDiff = {
@@ -4421,6 +4309,50 @@ $.widget( "ui.resizable", $.ui.mouse, {
 		};
 	},
 
+	_calculateAdjustedElementDimensions: function( element ) {
+		var ce = element.get( 0 );
+
+		if ( element.css( "box-sizing" ) !== "content-box" ||
+			( !this._hasScroll( ce ) && !this._hasScroll( ce, "left" ) ) ) {
+				return {
+					height: parseFloat( element.css( "height" ) ),
+					width: parseFloat( element.css( "width" ) )
+				};
+		}
+
+		// Check if CSS inline styles are set and use those (usually from previous resizes)
+		var elWidth = parseFloat( ce.style.width );
+		var elHeight = parseFloat( ce.style.height );
+
+		var paddingBorder = this._getPaddingPlusBorderDimensions( element );
+		elWidth = isNaN( elWidth ) ?
+			this._getElementTheoreticalSize( element, paddingBorder, "width" ) :
+			elWidth;
+		elHeight = isNaN( elHeight ) ?
+			this._getElementTheoreticalSize( element, paddingBorder, "height" ) :
+			elHeight;
+
+		return {
+			height: elHeight,
+			width: elWidth
+		};
+	},
+
+	_getElementTheoreticalSize: function( element, extraSize, dimension ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		var size = Math.max( 0, Math.ceil(
+			element.get( 0 )[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			extraSize[ dimension ] -
+			0.5
+
+		// If offsetWidth/offsetHeight is unknown, then we can't determine theoretical size.
+		// Use an explicit zero to avoid NaN (gh-3964)
+		) ) || 0;
+
+		return size;
+	},
+
 	_proportionallyResize: function() {
 
 		if ( !this._proportionallyResizeElements.length ) {
@@ -4776,8 +4708,9 @@ $.ui.plugin.add( "resizable", "alsoResize", {
 
 		$( o.alsoResize ).each( function() {
 			var el = $( this );
+			var elSize = that._calculateAdjustedElementDimensions( el );
 			el.data( "ui-resizable-alsoresize", {
-				width: parseFloat( el.css( "width" ) ), height: parseFloat( el.css( "height" ) ),
+				width: elSize.width, height: elSize.height,
 				left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
 			} );
 		} );
@@ -4839,7 +4772,7 @@ $.ui.plugin.add( "resizable", "ghost", {
 
 		// DEPRECATED
 		// TODO: remove after 1.12
-		if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
+		if ( $.uiBackCompat === true && typeof that.options.ghost === "string" ) {
 
 			// Ghost option
 			that.ghost.addClass( this.options.ghost );
@@ -4947,7 +4880,7 @@ var widgetsResizable = $.ui.resizable;
 
 
 /*
- * jQuery UI Selectable 1.13.3
+ * jQuery UI Selectable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -4964,7 +4897,7 @@ var widgetsResizable = $.ui.resizable;
 
 
 var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
-	version: "1.13.3",
+	version: "1.14.0",
 	options: {
 		appendTo: "body",
 		autoRefresh: true,
@@ -5245,7 +5178,7 @@ var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
 
 
 /*
- * jQuery UI Sortable 1.13.3
+ * jQuery UI Sortable 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -5262,7 +5195,7 @@ var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
 
 
 var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
-	version: "1.13.3",
+	version: "1.14.0",
 	widgetEventPrefix: "sort",
 	ready: false,
 	options: {
@@ -5500,11 +5433,7 @@ var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
 		if ( o.cursor && o.cursor !== "auto" ) { // cursor option
 			body = this.document.find( "body" );
 
-			// Support: IE
-			this.storedCursor = body.css( "cursor" );
-			body.css( "cursor", o.cursor );
-
-			this.storedStylesheet =
+			this._storedStylesheet =
 				$( "<style>*{ cursor: " + o.cursor + " !important; }</style>" ).appendTo( body );
 		}
 
@@ -6421,11 +6350,9 @@ var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
 			po.top += this.scrollParent.scrollTop();
 		}
 
-		// This needs to be actually done for all browsers, since pageX/pageY includes this
-		// information with an ugly IE fix
-		if ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||
-				( this.offsetParent[ 0 ].tagName &&
-				this.offsetParent[ 0 ].tagName.toLowerCase() === "html" && $.ui.ie ) ) {
+		// This needs to be actually done for all browsers, since pageX/pageY includes
+		// this information.
+		if ( this.offsetParent[ 0 ] === this.document[ 0 ].body ) {
 			po = { top: 0, left: 0 };
 		}
 
@@ -6773,9 +6700,9 @@ var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
 		}
 
 		//Do what was originally in plugins
-		if ( this.storedCursor ) {
-			this.document.find( "body" ).css( "cursor", this.storedCursor );
-			this.storedStylesheet.remove();
+		if ( this._storedStylesheet ) {
+			this._storedStylesheet.remove();
+			this._storedStylesheet = null;
 		}
 		if ( this._storedOpacity ) {
 			this.helper.css( "opacity", this._storedOpacity );
@@ -6838,7 +6765,7 @@ var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
 
 
 /*
- * jQuery UI Slider 1.13.3
+ * jQuery UI Slider 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -6857,7 +6784,7 @@ var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
 
 
 var widgetsSlider = $.widget( "ui.slider", $.ui.mouse, {
-	version: "1.13.3",
+	version: "1.14.0",
 	widgetEventPrefix: "slide",
 
 	options: {
@@ -7581,18 +7508,17 @@ var jQuery = $;
 
 
 /*
- * jQuery Color Animations v2.2.0
+ * jQuery Color Animations v3.0.0
  * https://github.com/jquery/jquery-color
  *
  * Copyright OpenJS Foundation and other contributors
  * Released under the MIT license.
  * https://jquery.org/license
  *
- * Date: Sun May 10 09:02:36 2020 +0200
+ * Date: Wed May 15 16:49:44 2024 +0200
  */
 
 
-
 	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " +
 		"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
 
@@ -7717,10 +7643,6 @@ var jQuery = $;
 			floor: true
 		}
 	},
-	support = color.support = {},
-
-	// element for support tests
-	supportElem = jQuery( "<p>" )[ 0 ],
 
 	// colors = jQuery.Color.names
 	colors,
@@ -7728,10 +7650,6 @@ var jQuery = $;
 	// local aliases of functions called often
 	each = jQuery.each;
 
-// determine rgba support immediately
-supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
-support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
-
 // define cache name and alpha properties
 // for rgba and hsla spaces
 each( spaces, function( spaceName, space ) {
@@ -7769,12 +7687,6 @@ function clamp( value, prop, allowEmpty ) {
 	// ~~ is an short way of doing floor for positive numbers
 	value = type.floor ? ~~value : parseFloat( value );
 
-	// IE will pass in empty strings as value for alpha,
-	// which will hit this case
-	if ( isNaN( value ) ) {
-		return prop.def;
-	}
-
 	if ( type.mod ) {
 
 		// we add mod before modding to make sure that negatives values
@@ -7887,7 +7799,10 @@ color.fn = jQuery.extend( color.prototype, {
 					} );
 
 					// everything defined but alpha?
-					if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
+					if ( inst[ cache ] && jQuery.inArray(
+						null,
+						inst[ cache ].slice( 0, 3 )
+					) < 0 ) {
 
 						// use the default of 1
 						if ( inst[ cache ][ 3 ] == null ) {
@@ -7999,7 +7914,7 @@ color.fn = jQuery.extend( color.prototype, {
 			prefix = "rgb(";
 		}
 
-		return prefix + rgba.join() + ")";
+		return prefix + rgba.join( ", " ) + ")";
 	},
 	toHslaString: function() {
 		var prefix = "hsla(",
@@ -8019,7 +7934,7 @@ color.fn = jQuery.extend( color.prototype, {
 			hsla.pop();
 			prefix = "hsl(";
 		}
-		return prefix + hsla.join() + ")";
+		return prefix + hsla.join( ", " ) + ")";
 	},
 	toHexString: function( includeAlpha ) {
 		var rgba = this._rgba.slice(),
@@ -8032,12 +7947,11 @@ color.fn = jQuery.extend( color.prototype, {
 		return "#" + jQuery.map( rgba, function( v ) {
 
 			// default to 0 when nulls exist
-			v = ( v || 0 ).toString( 16 );
-			return v.length === 1 ? "0" + v : v;
+			return ( "0" + ( v || 0 ).toString( 16 ) ).substr( -2 );
 		} ).join( "" );
 	},
 	toString: function() {
-		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
+		return this.toRgbaString();
 	}
 } );
 color.fn.parse.prototype = color.fn;
@@ -8204,37 +8118,15 @@ color.hook = function( hook ) {
 	each( hooks, function( _i, hook ) {
 		jQuery.cssHooks[ hook ] = {
 			set: function( elem, value ) {
-				var parsed, curElem,
-					backgroundColor = "";
+				var parsed;
 
-				if ( value !== "transparent" && ( getType( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) {
+				if ( value !== "transparent" &&
+					( getType( value ) !== "string" ||
+						( parsed = stringParse( value ) ) ) ) {
 					value = color( parsed || value );
-					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
-						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
-						while (
-							( backgroundColor === "" || backgroundColor === "transparent" ) &&
-							curElem && curElem.style
-						) {
-							try {
-								backgroundColor = jQuery.css( curElem, "backgroundColor" );
-								curElem = curElem.parentNode;
-							} catch ( e ) {
-							}
-						}
-
-						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
-							backgroundColor :
-							"_default" );
-					}
-
 					value = value.toRgbaString();
 				}
-				try {
-					elem.style[ hook ] = value;
-				} catch ( e ) {
-
-					// wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'
-				}
+				elem.style[ hook ] = value;
 			}
 		};
 		jQuery.fx.step[ hook ] = function( fx ) {
@@ -8293,7 +8185,7 @@ colors = jQuery.Color.names = {
 
 
 /*
- * jQuery UI Effects 1.13.3
+ * jQuery UI Effects 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -8356,26 +8248,14 @@ function camelCase( string ) {
 
 function getElementStyles( elem ) {
 	var key, len,
-		style = elem.ownerDocument.defaultView ?
-			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
-			elem.currentStyle,
+		style = elem.ownerDocument.defaultView.getComputedStyle( elem ),
 		styles = {};
 
-	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
-		len = style.length;
-		while ( len-- ) {
-			key = style[ len ];
-			if ( typeof style[ key ] === "string" ) {
-				styles[ camelCase( key ) ] = style[ key ];
-			}
-		}
-
-	// Support: Opera, IE <9
-	} else {
-		for ( key in style ) {
-			if ( typeof style[ key ] === "string" ) {
-				styles[ key ] = style[ key ];
-			}
+	len = style.length;
+	while ( len-- ) {
+		key = style[ len ];
+		if ( typeof style[ key ] === "string" ) {
+			styles[ camelCase( key ) ] = style[ key ];
 		}
 	}
 
@@ -8400,15 +8280,6 @@ function styleDifference( oldStyle, newStyle ) {
 	return diff;
 }
 
-// Support: jQuery <1.8
-if ( !$.fn.addBack ) {
-	$.fn.addBack = function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter( selector )
-		);
-	};
-}
-
 $.effects.animateClass = function( value, duration, easing, callback ) {
 	var o = $.speed( duration, easing, callback );
 
@@ -8548,7 +8419,7 @@ if ( $.expr && $.expr.pseudos && $.expr.pseudos.animated ) {
 	} )( $.expr.pseudos.animated );
 }
 
-if ( $.uiBackCompat !== false ) {
+if ( $.uiBackCompat === true ) {
 	$.extend( $.effects, {
 
 		// Saves a set of properties in a data storage
@@ -8677,7 +8548,7 @@ if ( $.uiBackCompat !== false ) {
 }
 
 $.extend( $.effects, {
-	version: "1.13.3",
+	version: "1.14.0",
 
 	define: function( name, mode, effect ) {
 		if ( !effect ) {
@@ -9034,7 +8905,7 @@ $.fn.extend( {
 			// as toggle can be either show or hide depending on element state
 			args.mode = modes.shift();
 
-			if ( $.uiBackCompat !== false && !defaultMode ) {
+			if ( $.uiBackCompat === true && !defaultMode ) {
 				if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
 
 					// Call the core method to track "olddisplay" properly
@@ -9245,7 +9116,7 @@ var effect = $.effects;
 
 
 /*
- * jQuery UI Effects Blind 1.13.3
+ * jQuery UI Effects Blind 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9300,7 +9171,7 @@ var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, d
 
 
 /*
- * jQuery UI Effects Bounce 1.13.3
+ * jQuery UI Effects Bounce 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9395,7 +9266,7 @@ var effectsEffectBounce = $.effects.define( "bounce", function( options, done )
 
 
 /*
- * jQuery UI Effects Clip 1.13.3
+ * jQuery UI Effects Clip 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9445,7 +9316,7 @@ var effectsEffectClip = $.effects.define( "clip", "hide", function( options, don
 
 
 /*
- * jQuery UI Effects Drop 1.13.3
+ * jQuery UI Effects Drop 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9499,7 +9370,7 @@ var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, don
 
 
 /*
- * jQuery UI Effects Explode 1.13.3
+ * jQuery UI Effects Explode 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9595,7 +9466,7 @@ var effectsEffectExplode = $.effects.define( "explode", "hide", function( option
 
 
 /*
- * jQuery UI Effects Fade 1.13.3
+ * jQuery UI Effects Fade 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9627,7 +9498,7 @@ var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, d
 
 
 /*
- * jQuery UI Effects Fold 1.13.3
+ * jQuery UI Effects Fold 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9701,7 +9572,7 @@ var effectsEffectFold = $.effects.define( "fold", "hide", function( options, don
 
 
 /*
- * jQuery UI Effects Highlight 1.13.3
+ * jQuery UI Effects Highlight 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9743,7 +9614,7 @@ var effectsEffectHighlight = $.effects.define( "highlight", "show", function( op
 
 
 /*
- * jQuery UI Effects Size 1.13.3
+ * jQuery UI Effects Size 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9921,7 +9792,7 @@ var effectsEffectSize = $.effects.define( "size", function( options, done ) {
 
 
 /*
- * jQuery UI Effects Scale 1.13.3
+ * jQuery UI Effects Scale 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9961,7 +9832,7 @@ var effectsEffectScale = $.effects.define( "scale", function( options, done ) {
 
 
 /*
- * jQuery UI Effects Puff 1.13.3
+ * jQuery UI Effects Puff 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -9987,7 +9858,7 @@ var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, don
 
 
 /*
- * jQuery UI Effects Pulsate 1.13.3
+ * jQuery UI Effects Pulsate 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -10036,7 +9907,7 @@ var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( option
 
 
 /*
- * jQuery UI Effects Shake 1.13.3
+ * jQuery UI Effects Shake 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -10095,7 +9966,7 @@ var effectsEffectShake = $.effects.define( "shake", function( options, done ) {
 
 
 /*
- * jQuery UI Effects Slide 1.13.3
+ * jQuery UI Effects Slide 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -10156,7 +10027,7 @@ var effectsEffectSlide = $.effects.define( "slide", "show", function( options, d
 
 
 /*
- * jQuery UI Effects Transfer 1.13.3
+ * jQuery UI Effects Transfer 1.14.0
  * https://jqueryui.com
  *
  * Copyright OpenJS Foundation and other contributors
@@ -10172,7 +10043,7 @@ var effectsEffectSlide = $.effects.define( "slide", "show", function( options, d
 
 
 var effect;
-if ( $.uiBackCompat !== false ) {
+if ( $.uiBackCompat === true ) {
 	effect = $.effects.define( "transfer", function( options, done ) {
 		$( this ).transfer( options, done );
 	} );
@@ -10182,4 +10053,4 @@ var effectsEffectTransfer = effect;
 
 
 
-} );
\ No newline at end of file
+} );

From 2210568f05f86b19fe7f27d5c0521be3cee861f6 Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Wed, 28 Aug 2024 12:13:54 -0400
Subject: [PATCH 06/18] XDev 2.1.0 (#12532)

---
 primefaces-showcase/pom.xml                                | 2 +-
 .../org/primefaces/showcase/view/chartjs/ChartView.java    | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/primefaces-showcase/pom.xml b/primefaces-showcase/pom.xml
index 1c3efd26ce..4430930719 100644
--- a/primefaces-showcase/pom.xml
+++ b/primefaces-showcase/pom.xml
@@ -143,7 +143,7 @@
         <dependency>
            <groupId>software.xdev</groupId>
            <artifactId>chartjs-java-model</artifactId>
-           <version>2.0.1</version>
+           <version>2.1.0</version>
         </dependency>
 
         <!-- Conflict with resteasy-jackson2-provider -->
diff --git a/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java b/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
index 1b47dcf008..00d6771c25 100644
--- a/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
+++ b/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
@@ -27,13 +27,14 @@
 import java.math.BigDecimal;
 import java.util.List;
 
-import org.primefaces.event.ItemSelectEvent;
-
 import jakarta.annotation.PostConstruct;
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.faces.application.FacesMessage;
 import jakarta.faces.context.FacesContext;
 import jakarta.inject.Named;
+
+import org.primefaces.event.ItemSelectEvent;
+
 import software.xdev.chartjs.model.charts.*;
 import software.xdev.chartjs.model.color.Color;
 import software.xdev.chartjs.model.data.*;
@@ -220,7 +221,7 @@ public void createBarModel() {
                 .setOptions(new BarOptions()
                         .setResponsive(true)
                         .setMaintainAspectRatio(false)
-                        .setIndexAxis(BarOptions.IndexAxis.X)
+                        .setIndexAxis(IndexAxis.X)
                         .setScales(new Scales().addScale(Scales.ScaleAxis.Y, new CartesianScaleOptions()
                                 .setStacked(false)
                                 .setTicks(new CartesianTickOptions()

From ed8979aaebd14fe7281a3cb0d8f1fecf4e18a519 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 28 Aug 2024 14:22:56 -0400
Subject: [PATCH 07/18] Bump org.mockito:mockito-core from 5.12.0 to 5.13.0
 (#12535)

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.12.0 to 5.13.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.12.0...v5.13.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/primefaces/pom.xml b/primefaces/pom.xml
index 00da7b9de5..3cc48dd5e7 100644
--- a/primefaces/pom.xml
+++ b/primefaces/pom.xml
@@ -20,7 +20,7 @@
         <minify.disabled>true</minify.disabled>
         <jakarta.jar.skip>false</jakarta.jar.skip>
         <resources.dir.compressed>${project.build.directory}/classes/META-INF/resources/primefaces</resources.dir.compressed>
-        <mockito.version>5.12.0</mockito.version>
+        <mockito.version>5.13.0</mockito.version>
         <sonar.sources>src/main/java,src/main/resources</sonar.sources>
     </properties>
 

From 6f95525792d83a3df4b6678a2732f24ca36f6f48 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 28 Aug 2024 14:23:07 -0400
Subject: [PATCH 08/18] Bump org.seleniumhq.selenium:selenium-java from 4.23.1
 to 4.24.0 (#12533)

Bumps [org.seleniumhq.selenium:selenium-java](https://github.com/SeleniumHQ/selenium) from 4.23.1 to 4.24.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.24.0)

---
updated-dependencies:
- dependency-name: org.seleniumhq.selenium:selenium-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-selenium/primefaces-selenium-core/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/primefaces-selenium/primefaces-selenium-core/pom.xml b/primefaces-selenium/primefaces-selenium-core/pom.xml
index b9c7b12e5d..94c857d79f 100644
--- a/primefaces-selenium/primefaces-selenium-core/pom.xml
+++ b/primefaces-selenium/primefaces-selenium-core/pom.xml
@@ -50,7 +50,7 @@
         <dependency>
             <groupId>org.seleniumhq.selenium</groupId>
             <artifactId>selenium-java</artifactId>
-            <version>4.23.1</version>
+            <version>4.24.0</version>
         </dependency>
 
         <!-- org.seleniumhq.selenium and com.googlecode.owasp-java-html-sanitizer need guava; resolved version-conflicts -->

From dcca79a79ecd40bf7d515d4706e2322dd9d5c70a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 29 Aug 2024 13:10:08 -0400
Subject: [PATCH 09/18] Bump net.bytebuddy:byte-buddy from 1.15.0 to 1.15.1
 (#12536)

Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.15.0 to 1.15.1.
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.15.0...byte-buddy-1.15.1)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-selenium/primefaces-selenium-core/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/primefaces-selenium/primefaces-selenium-core/pom.xml b/primefaces-selenium/primefaces-selenium-core/pom.xml
index 94c857d79f..f69f378013 100644
--- a/primefaces-selenium/primefaces-selenium-core/pom.xml
+++ b/primefaces-selenium/primefaces-selenium-core/pom.xml
@@ -69,7 +69,7 @@
         <dependency>
             <groupId>net.bytebuddy</groupId>
             <artifactId>byte-buddy</artifactId>
-            <version>1.15.0</version>
+            <version>1.15.1</version>
         </dependency>
     </dependencies>
 </project>

From 30f783d40cda644957177805d11d65c4fd84f4aa Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Fri, 30 Aug 2024 10:12:32 -0400
Subject: [PATCH 10/18] Fix Sonar Quality Gate failures (#12538)

---
 .../org/primefaces/component/autoupdate/AutoUpdateListener.java | 2 ++
 .../primefaces/component/outputlabel/OutputLabelRenderer.java   | 2 +-
 .../org/primefaces/util/PropertyDescriptorResolverTest.java     | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/primefaces/src/main/java/org/primefaces/component/autoupdate/AutoUpdateListener.java b/primefaces/src/main/java/org/primefaces/component/autoupdate/AutoUpdateListener.java
index eddd5e0e50..73c9c425b1 100644
--- a/primefaces/src/main/java/org/primefaces/component/autoupdate/AutoUpdateListener.java
+++ b/primefaces/src/main/java/org/primefaces/component/autoupdate/AutoUpdateListener.java
@@ -41,6 +41,8 @@
  */
 public class AutoUpdateListener implements ComponentSystemEventListener, Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     private static final String COMPONENT_CLIENT_IDS = AutoUpdateListener.class.getName() + ".COMPONENT_CLIENT_IDS";
 
     private static final AutoUpdateListener INSTANCE = new AutoUpdateListener();
diff --git a/primefaces/src/main/java/org/primefaces/component/outputlabel/OutputLabelRenderer.java b/primefaces/src/main/java/org/primefaces/component/outputlabel/OutputLabelRenderer.java
index a507d066ab..6485ca439b 100644
--- a/primefaces/src/main/java/org/primefaces/component/outputlabel/OutputLabelRenderer.java
+++ b/primefaces/src/main/java/org/primefaces/component/outputlabel/OutputLabelRenderer.java
@@ -94,7 +94,7 @@ public void encodeEnd(FacesContext context, UIComponent component) throws IOExce
         renderDomEvents(context, label, HTML.LABEL_EVENTS);
         renderRTLDirection(context, label);
 
-        if (!isValueBlank(_for)) {
+        if (!isValueBlank(_for) && forState != null) {
             writer.writeAttribute("for", forState.getClientId(), "for");
         }
 
diff --git a/primefaces/src/test/java/org/primefaces/util/PropertyDescriptorResolverTest.java b/primefaces/src/test/java/org/primefaces/util/PropertyDescriptorResolverTest.java
index c5f1d2d3fd..aa0632142d 100644
--- a/primefaces/src/test/java/org/primefaces/util/PropertyDescriptorResolverTest.java
+++ b/primefaces/src/test/java/org/primefaces/util/PropertyDescriptorResolverTest.java
@@ -106,6 +106,7 @@ void setValue() {
         D d = new D("d", false, Boolean.FALSE, DummyEnum.Z, 123);
         C c = new C(d);
 
+        assertNotNull(b);
         assertEquals(123, propResolver.getValue(c, "b.foo"));
         propResolver.setValue(c, "b.foo", 124);
         assertEquals(124, propResolver.getValue(c, "b.foo"));

From fe018bfae89aa919c8deb6e9fa52468fc5d20030 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 30 Aug 2024 12:43:20 -0400
Subject: [PATCH 11/18] Bump org.apache.commons:commons-lang3 from 3.16.0 to
 3.17.0 (#12540)

Bumps org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-integration-tests-jakarta/pom.xml | 2 +-
 primefaces-integration-tests/pom.xml         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/primefaces-integration-tests-jakarta/pom.xml b/primefaces-integration-tests-jakarta/pom.xml
index 03ff4daa95..969faf693f 100644
--- a/primefaces-integration-tests-jakarta/pom.xml
+++ b/primefaces-integration-tests-jakarta/pom.xml
@@ -91,7 +91,7 @@
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
-            <version>3.16.0</version>
+            <version>3.17.0</version>
             <scope>runtime</scope>
         </dependency>
 
diff --git a/primefaces-integration-tests/pom.xml b/primefaces-integration-tests/pom.xml
index d588164fd9..8b91599473 100644
--- a/primefaces-integration-tests/pom.xml
+++ b/primefaces-integration-tests/pom.xml
@@ -216,7 +216,7 @@
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
-            <version>3.16.0</version>
+            <version>3.17.0</version>
             <scope>runtime</scope>
         </dependency>
         

From eca7b1a8db949c721d7ba5c748ec2eb4961bf0a6 Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Fri, 30 Aug 2024 14:13:25 -0400
Subject: [PATCH 12/18] Fix #12541: DatePicker enabledDates taglib.xml (#12542)

---
 .../component/datepicker/DatePickerBase.java  | 80 +++++++++----------
 .../resources/META-INF/primefaces.taglib.xml  |  8 ++
 2 files changed, 48 insertions(+), 40 deletions(-)

diff --git a/primefaces/src/main/java/org/primefaces/component/datepicker/DatePickerBase.java b/primefaces/src/main/java/org/primefaces/component/datepicker/DatePickerBase.java
index b7a33420ac..e3a2c694df 100644
--- a/primefaces/src/main/java/org/primefaces/component/datepicker/DatePickerBase.java
+++ b/primefaces/src/main/java/org/primefaces/component/datepicker/DatePickerBase.java
@@ -51,57 +51,57 @@ public abstract class DatePickerBase extends UICalendar implements Widget, Input
 
     public enum PropertyKeys {
 
-        placeholder,
-        widgetVar,
-        timeOnly,
-        inline,
-        buttonTabindex,
-        showIcon,
+        appendTo,
+        autoDetectDisplay,
+        autoMonthFormat,
         beforeShow,
+        buttonTabindex,
+        dateTemplate,
+        disabledDates,
+        disabledDays,
+        enabledDates,
+        flex,
         focusOnSelect,
-        yearRange,
-        selectionMode,
-        showOtherMonths,
+        hideOnDateTimeSelect,
+        hideOnRangeSelection,
+        hourFormat,
+        inline,
+        keepInvalid,
+        maxDateCount,
+        model,
+        monthNavigator,
+        numberOfMonths,
+        onMonthChange,
+        onYearChange,
+        panelStyle,
+        panelStyleClass,
+        placeholder,
+        responsiveBreakpoint,
         selectOtherMonths,
-        showOnFocus,
+        selectionMode,
         shortYearCutoff,
-        monthNavigator,
-        yearNavigator,
-        showTime,
-        hourFormat,
-        showSeconds,
+        showButtonBar,
+        showIcon,
         showMilliseconds,
+        showMinMaxRange,
+        showOnFocus,
+        showOtherMonths,
+        showSeconds,
+        showTime,
+        showWeek,
         stepHour,
+        stepMillisecond,
         stepMinute,
         stepSecond,
-        stepMillisecond,
-        showButtonBar,
-        panelStyleClass,
-        panelStyle,
-        keepInvalid,
-        hideOnDateTimeSelect,
-        hideOnRangeSelection,
-        maxDateCount,
-        numberOfMonths,
-        view,
-        autoDetectDisplay,
-        responsiveBreakpoint,
+        timeInput,
+        timeOnly,
         touchUI,
-        dateTemplate,
-        appendTo,
         triggerButtonIcon,
-        disabledDates,
-        enabledDates,
-        disabledDays,
-        onMonthChange,
-        onYearChange,
-        timeInput,
-        showWeek,
+        view,
         weekCalculator,
-        showMinMaxRange,
-        autoMonthFormat,
-        model,
-        flex
+        widgetVar,
+        yearNavigator,
+        yearRange
     }
 
     public DatePickerBase() {
diff --git a/primefaces/src/main/resources/META-INF/primefaces.taglib.xml b/primefaces/src/main/resources/META-INF/primefaces.taglib.xml
index 230256a8a7..9a2f57d437 100644
--- a/primefaces/src/main/resources/META-INF/primefaces.taglib.xml
+++ b/primefaces/src/main/resources/META-INF/primefaces.taglib.xml
@@ -32353,6 +32353,14 @@
             <required>false</required>
             <type>java.util.List</type>
         </attribute>
+        <attribute>
+            <description>
+                <![CDATA[List with dates that should be enabled, the others will be disabled (not selectable).]]>
+            </description>
+            <name>enabledDates</name>
+            <required>false</required>
+            <type>java.util.List</type>
+        </attribute>
         <attribute>
             <description>
                 <![CDATA[Callback to invoke when a month is changed using the navigators.]]>

From 4f464f909c54c7581e78734a6816ed8c7b457938 Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Tue, 3 Sep 2024 08:14:58 -0400
Subject: [PATCH 13/18] Fix #12274: CellEditor update cell editors after any
 AJAX update (#12546)

---
 .../resources/primefaces/datatable/datatable.js   | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/datatable/datatable.js b/primefaces/src/main/resources/META-INF/resources/primefaces/datatable/datatable.js
index f0092f3d84..c5cee22799 100644
--- a/primefaces/src/main/resources/META-INF/resources/primefaces/datatable/datatable.js
+++ b/primefaces/src/main/resources/META-INF/resources/primefaces/datatable/datatable.js
@@ -257,6 +257,11 @@ PrimeFaces.widget.DataTable = PrimeFaces.widget.DeferredWidget.extend({
 
         if(this.cfg.editable) {
             this.bindEditEvents();
+            // ensure DOM memory is cleaned up by releasing document event handlers
+            this.addDestroyListener(function () {
+                $(document).off(namespace);
+                $(document).off('mouseup.datatable-cell-blur' + this.id);
+            });
         }
 
         if(this.cfg.draggableRows) {
@@ -379,6 +384,10 @@ PrimeFaces.widget.DataTable = PrimeFaces.widget.DeferredWidget.extend({
      * @private
      */
     postUpdateData: function() {
+        if (this.cfg.editable) {
+            this.bindEditEvents();
+        }
+
         if(this.cfg.draggableRows) {
             this.makeRowsDraggable();
         }
@@ -3563,12 +3572,6 @@ PrimeFaces.widget.DataTable = PrimeFaces.widget.DeferredWidget.extend({
         // #3571 Set all fields to disabled by default
         this.disableCellEditors();
         
-        // ensure DOM memory is cleaned up by releasing document event handlers
-        this.addDestroyListener(function() {
-            $(document).off(namespace);
-            $(document).off('mouseup.datatable-cell-blur' + this.id);
-        });
-
         if(this.cfg.editMode === 'row') {
             var rowEditorSelector = '> tr > td > div.ui-row-editor > a';
             

From a7ca4be3955745f86f25040e10fc4f5d52dc7f46 Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Wed, 4 Sep 2024 08:07:48 -0400
Subject: [PATCH 14/18] Fix #12551: Validator allowTypes regex with flags
 (#12553)

---
 .../primefaces/validation/validation.validators.js          | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/validation/validation.validators.js b/primefaces/src/main/resources/META-INF/resources/primefaces/validation/validation.validators.js
index 0dee66c105..eb1d85086f 100644
--- a/primefaces/src/main/resources/META-INF/resources/primefaces/validation/validation.validators.js
+++ b/primefaces/src/main/resources/META-INF/resources/primefaces/validation/validation.validators.js
@@ -123,8 +123,10 @@ if (window.PrimeFaces) {
                 if (allowtypes) {
                     // normally a regex is a object like /(\.|\/)(csv)$/
                     // but as we parse the data-attribute from string to RegEx object, we must remove leading and ending slashes
-                    var transformedAllowtypes = allowtypes.substring(1, allowtypes.length - 1);
-                    allowtypesRegExp = new RegExp(transformedAllowtypes);
+                    var regexParts = allowtypes.match(/^\/(.*)\/([a-z]*)$/);
+                    var transformedAllowtypes = regexParts[1];
+                    var flags = regexParts[2];
+                    allowtypesRegExp = new RegExp(transformedAllowtypes, flags);
                 }
 
                 if (filelimit && value.length > filelimit) {

From 7b728ffef03cc6e69f1b99c0dea3bcb927ac2aca Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 4 Sep 2024 12:35:45 -0400
Subject: [PATCH 15/18] Bump org.eclipse.jetty:jetty-maven-plugin (#12558)

Bumps org.eclipse.jetty:jetty-maven-plugin from 9.4.55.v20240627 to 9.4.56.v20240826.

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-integration-tests-jakarta/pom.xml | 2 +-
 primefaces-integration-tests/pom.xml         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/primefaces-integration-tests-jakarta/pom.xml b/primefaces-integration-tests-jakarta/pom.xml
index 969faf693f..2cb7b41bf1 100644
--- a/primefaces-integration-tests-jakarta/pom.xml
+++ b/primefaces-integration-tests-jakarta/pom.xml
@@ -31,7 +31,7 @@
         <!-- dependency versions -->
         <lombok.version>1.18.34</lombok.version>
         <tomcat.version>10.1.28</tomcat.version>
-        <jetty.version>9.4.55.v20240627</jetty.version>
+        <jetty.version>9.4.56.v20240826</jetty.version>
     </properties>
 
     <dependencies>
diff --git a/primefaces-integration-tests/pom.xml b/primefaces-integration-tests/pom.xml
index 8b91599473..d82746b69d 100644
--- a/primefaces-integration-tests/pom.xml
+++ b/primefaces-integration-tests/pom.xml
@@ -35,7 +35,7 @@
         <tomcat.version>9.0.93</tomcat.version>
         <resteasy.version>5.0.9.Final</resteasy.version>
         <owb.version>2.0.27</owb.version>
-        <jetty.version>9.4.55.v20240627</jetty.version>
+        <jetty.version>9.4.56.v20240826</jetty.version>
     </properties>
 
     <dependencies>

From a6be30e8122c87e6b05d35dde53cf2df8e8604b0 Mon Sep 17 00:00:00 2001
From: Melloware <mellowaredev@gmail.com>
Date: Wed, 4 Sep 2024 12:36:09 -0400
Subject: [PATCH 16/18] XDev 2.2.0 change Color to RGBAColor (#12556)

---
 docs/14_0_0/components/chart.md               |  2 +-
 docs/15_0_0/components/chart.md               |  2 +-
 primefaces-showcase/pom.xml                   |  2 +-
 .../showcase/view/chartjs/ChartView.java      | 70 +++++++++----------
 4 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/docs/14_0_0/components/chart.md b/docs/14_0_0/components/chart.md
index 462c756cae..2874a30375 100644
--- a/docs/14_0_0/components/chart.md
+++ b/docs/14_0_0/components/chart.md
@@ -213,7 +213,7 @@ public void createLineModel() {
             .addDataset(new LineDataset()
                     .setData(65, 59, 80, 81, 56, 55, 40)
                     .setLabel("My First Dataset")
-                    .setBorderColor(new Color(75, 192, 192))
+                    .setBorderColor(new RGBAColor(75, 192, 192))
                     .setLineTension(0.1f)
                     .setFill(new Fill<Boolean>(false)))
             .setLabels("January", "February", "March", "April", "May", "June", "July"))
diff --git a/docs/15_0_0/components/chart.md b/docs/15_0_0/components/chart.md
index 462c756cae..2874a30375 100644
--- a/docs/15_0_0/components/chart.md
+++ b/docs/15_0_0/components/chart.md
@@ -213,7 +213,7 @@ public void createLineModel() {
             .addDataset(new LineDataset()
                     .setData(65, 59, 80, 81, 56, 55, 40)
                     .setLabel("My First Dataset")
-                    .setBorderColor(new Color(75, 192, 192))
+                    .setBorderColor(new RGBAColor(75, 192, 192))
                     .setLineTension(0.1f)
                     .setFill(new Fill<Boolean>(false)))
             .setLabels("January", "February", "March", "April", "May", "June", "July"))
diff --git a/primefaces-showcase/pom.xml b/primefaces-showcase/pom.xml
index 4430930719..9e6cb56581 100644
--- a/primefaces-showcase/pom.xml
+++ b/primefaces-showcase/pom.xml
@@ -143,7 +143,7 @@
         <dependency>
            <groupId>software.xdev</groupId>
            <artifactId>chartjs-java-model</artifactId>
-           <version>2.1.0</version>
+           <version>2.2.0</version>
         </dependency>
 
         <!-- Conflict with resteasy-jackson2-provider -->
diff --git a/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java b/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
index 00d6771c25..96cb591f42 100644
--- a/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
+++ b/primefaces-showcase/src/main/java/org/primefaces/showcase/view/chartjs/ChartView.java
@@ -36,7 +36,7 @@
 import org.primefaces.event.ItemSelectEvent;
 
 import software.xdev.chartjs.model.charts.*;
-import software.xdev.chartjs.model.color.Color;
+import software.xdev.chartjs.model.color.RGBAColor;
 import software.xdev.chartjs.model.data.*;
 import software.xdev.chartjs.model.datapoint.BubbleDataPoint;
 import software.xdev.chartjs.model.datapoint.ScatterDataPoint;
@@ -94,7 +94,7 @@ private void createPieModel() {
                 .addDataset(new PieDataset()
                         .setData(BigDecimal.valueOf(300), BigDecimal.valueOf(50), BigDecimal.valueOf(100))
                         .setLabel("My First Dataset")
-                        .addBackgroundColors(new Color(255, 99, 132), new Color(54, 162, 235), new Color(255, 205, 86))
+                        .addBackgroundColors(new RGBAColor(255, 99, 132), new RGBAColor(54, 162, 235), new RGBAColor(255, 205, 86))
                 )
                 .setLabels("Red", "Blue", "Yellow"))
                 .toJson();
@@ -111,11 +111,11 @@ private void createPolarAreaModel() {
                                 BigDecimal.valueOf(14))
                         .setLabel("My First Dataset")
                         .addBackgroundColors(
-                                new Color(255, 99, 132),
-                                new Color(75, 192, 192),
-                                new Color(255, 205, 86),
-                                new Color(201, 203, 207),
-                                new Color(54, 162, 235)
+                                new RGBAColor(255, 99, 132),
+                                new RGBAColor(75, 192, 192),
+                                new RGBAColor(255, 205, 86),
+                                new RGBAColor(201, 203, 207),
+                                new RGBAColor(54, 162, 235)
                         )
                 )
                 .setLabels("Red", "Green", "Yellow", "Grey", "Blue" ))
@@ -128,7 +128,7 @@ public void createLineModel() {
                 .addDataset(new LineDataset()
                         .setData(65, 59, 80, 81, 56, 55, 40)
                         .setLabel("My First Dataset")
-                        .setBorderColor(new Color(75, 192, 192))
+                        .setBorderColor(new RGBAColor(75, 192, 192))
                         .setLineTension(0.1f)
                         .setFill(new Fill<Boolean>(false)))
                 .setLabels("January", "February", "March", "April", "May", "June", "July"))
@@ -154,7 +154,7 @@ public void createScatterModel() {
                         .addData(new ScatterDataPoint(13, 7))
                         .addData(new ScatterDataPoint(6, 9))
                         .setLabel("Red Dataset")
-                        .setBorderColor(new Color(249, 24, 24))
+                        .setBorderColor(new RGBAColor(249, 24, 24))
                         .setShowLine(Boolean.FALSE)
                         .setFill(new Fill<Boolean>(true)))
                 )
@@ -207,14 +207,14 @@ public void createBarModel() {
                 .addDataset(new BarDataset()
                         .setData(65, 59, 80, 81, 56, 55, 40)
                         .setLabel("My First Dataset")
-                        .setBackgroundColor(new Color(255, 99, 132, 0.2))
-                        .setBorderColor(new Color(255, 99, 132))
+                        .setBackgroundColor(new RGBAColor(255, 99, 132, 0.2))
+                        .setBorderColor(new RGBAColor(255, 99, 132))
                         .setBorderWidth(1))
                 .addDataset(new BarDataset()
                         .setData(85, 69, 20, 51, 76, 75, 10)
                         .setLabel("My Second Dataset")
-                        .setBackgroundColor(new Color(255, 159, 64, 0.2))
-                        .setBorderColor(new Color(255, 159, 64))
+                        .setBackgroundColor(new RGBAColor(255, 159, 64, 0.2))
+                        .setBorderColor(new RGBAColor(255, 159, 64))
                         .setBorderWidth(1)
                 )
                 .setLabels("January", "February", "March", "April", "May", "June", "July"))
@@ -241,15 +241,15 @@ public void createStackedBarModel() {
                 .addDataset(new BarDataset()
                         .setData(62, -58, -49, 25, 4, 77, -41)
                         .setLabel("Dataset 1")
-                        .setBackgroundColor(new Color(255, 99, 132)))
+                        .setBackgroundColor(new RGBAColor(255, 99, 132)))
                 .addDataset(new BarDataset()
                         .setData(-1, 32, -52, 11, 97, 76, -78)
                         .setLabel("Dataset 2")
-                        .setBackgroundColor(new Color(54, 162, 235)))
+                        .setBackgroundColor(new RGBAColor(54, 162, 235)))
                 .addDataset(new BarDataset()
                         .setData(-44, 25, 15, 92, 80, -25, -11)
                         .setLabel("Dataset 3")
-                        .setBackgroundColor(new Color(75, 192, 192)))
+                        .setBackgroundColor(new RGBAColor(75, 192, 192)))
                 .setLabels("January", "February", "March", "April", "May", "June", "July"))
                 .setOptions(new BarOptions()
                         .setResponsive(true)
@@ -281,13 +281,13 @@ public void createRadarModel() {
                                 BigDecimal.valueOf(3))
                         .setLabel("P.Practitioner")
                         .setLineTension(0.1f)
-                        .setBackgroundColor(new Color(102, 153, 204, 0.2))
-                        .setBorderColor(new Color(102, 153, 204, 1))
-                        .setPointBackgroundColor(List.of(new Color(102, 153, 204, 1)))
-                        .setPointBorderColor(List.of(Color.WHITE))
+                        .setBackgroundColor(new RGBAColor(102, 153, 204, 0.2))
+                        .setBorderColor(new RGBAColor(102, 153, 204, 1))
+                        .setPointBackgroundColor(List.of(new RGBAColor(102, 153, 204, 1)))
+                        .setPointBorderColor(List.of(RGBAColor.WHITE))
                         .setPointHoverRadius(List.of(5))
-                        .setPointHoverBackgroundColor(List.of(Color.WHITE))
-                        .setPointHoverBorderColor(List.of(new Color(102, 153, 204, 1))))
+                        .setPointHoverBackgroundColor(List.of(RGBAColor.WHITE))
+                        .setPointHoverBorderColor(List.of(new RGBAColor(102, 153, 204, 1))))
                 .addDataset(new RadarDataset()
                         .setData(BigDecimal.valueOf(2.1),
                                 BigDecimal.valueOf(3),
@@ -296,13 +296,13 @@ public void createRadarModel() {
                                 BigDecimal.valueOf(3))
                         .setLabel("P.Manager")
                         .setLineTension(0.1f)
-                        .setBackgroundColor(new Color(255, 204, 102, 0.2))
-                        .setBorderColor(new Color(255, 204, 102, 1))
-                        .setPointBackgroundColor(List.of(new Color(255, 204, 102, 1)))
-                        .setPointBorderColor(List.of(Color.WHITE))
+                        .setBackgroundColor(new RGBAColor(255, 204, 102, 0.2))
+                        .setBorderColor(new RGBAColor(255, 204, 102, 1))
+                        .setPointBackgroundColor(List.of(new RGBAColor(255, 204, 102, 1)))
+                        .setPointBorderColor(List.of(RGBAColor.WHITE))
                         .setPointHoverRadius(List.of(5))
-                        .setPointHoverBackgroundColor(List.of(Color.WHITE))
-                        .setPointHoverBorderColor(List.of(new Color(255, 204, 102, 1))))
+                        .setPointHoverBackgroundColor(List.of(RGBAColor.WHITE))
+                        .setPointHoverBorderColor(List.of(new RGBAColor(255, 204, 102, 1))))
                 .setLabels("Process Excellence", "Problem Solving", "Facilitation", "Project Mgmt", "Change Mgmt"))
                 .setOptions(new RadarOptions()
                         .setResponsive(true)
@@ -311,12 +311,12 @@ public void createRadarModel() {
                                 .setAngleLines(new AngleLines()
                                         .setDisplay(Boolean.TRUE)
                                         .setLineWidth(BigDecimal.valueOf(0.5))
-                                        .setColor(new Color(128, 128, 128, 0.2)))
+                                        .setColor(new RGBAColor(128, 128, 128, 0.2)))
                                 .setPointLabels(new PointLabels().setFont(new Font()
                                         .setSize(BigDecimal.valueOf(14))
                                         .setStyle(FontStyle.NORMAL)
                                         .setFamily("Lato, sans-serif"))
-                                        .setColor(new Color(204, 204, 204, 1)))
+                                        .setColor(new RGBAColor(204, 204, 204, 1)))
                                 .setTicks(new RadialTickOptions()
                                         .setDisplay(false)
                                         .setStepSize(BigDecimal.valueOf(0.2))
@@ -337,8 +337,8 @@ public void createBubbleModel() {
                         .addData(new BubbleDataPoint(BigDecimal.valueOf(20), BigDecimal.valueOf(30), BigDecimal.valueOf(15)))
                         .addData(new BubbleDataPoint(BigDecimal.valueOf(40), BigDecimal.valueOf(10), BigDecimal.valueOf(10)))
                         .setLabel("My First Dataset")
-                        .setBackgroundColor(new Color(255, 99, 132))
-                        .setBorderColor(new Color(255, 99, 132))
+                        .setBackgroundColor(new RGBAColor(255, 99, 132))
+                        .setBorderColor(new RGBAColor(255, 99, 132))
                 )).toJson();
     }
 
@@ -350,9 +350,9 @@ public void createDonutModel() {
                                 BigDecimal.valueOf(50),
                                 BigDecimal.valueOf(100))
                         .addBackgroundColors(
-                                new Color(255, 99, 132),
-                                new Color(54, 162, 235),
-                                new Color(255, 205, 86))
+                                new RGBAColor(255, 99, 132),
+                                new RGBAColor(54, 162, 235),
+                                new RGBAColor(255, 205, 86))
                 )
                 .setLabels("Red", "Blue", "Yellow"))
                 .setOptions(new DoughnutOptions().setMaintainAspectRatio(Boolean.FALSE))

From 9c4cc6a4e2aa02a165a870ee1b0655a7d99fb78d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20Stra=C3=9Fer?= <christoph.strasser78@gmail.com>
Date: Fri, 6 Sep 2024 22:26:32 +0200
Subject: [PATCH 17/18] CI / Github Actions - make filename for screenshots
 unique (#12563)

* CI / Github Actions - make filename for screenshots unique
---
 .github/workflows/nightly.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 2ddf16a803..36d2f746fc 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -40,6 +40,6 @@ jobs:
         uses: actions/upload-artifact@v4
         if: always()
         with:
-          name: failed_tests_screenshots_java${{ matrix.java }}_${{ matrix.facesimpl }}
+          name: failed_tests_screenshots_java${{ matrix.java }}_${{ matrix.profile }}
           if-no-files-found: ignore
           path: /tmp/pf_it/

From a6228f888d0d3583418cc18157923fccddc33793 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 7 Sep 2024 08:42:06 -0400
Subject: [PATCH 18/18] Bump jetty.version from 12.0.12 to 12.0.13 (#12562)

Bumps `jetty.version` from 12.0.12 to 12.0.13.

Updates `org.eclipse.jetty.ee10:jetty-ee10-cdi` from 12.0.12 to 12.0.13

Updates `org.eclipse.jetty.ee10:jetty-ee10-maven-plugin` from 12.0.12 to 12.0.13

---
updated-dependencies:
- dependency-name: org.eclipse.jetty.ee10:jetty-ee10-cdi
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty.ee10:jetty-ee10-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 primefaces-showcase/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/primefaces-showcase/pom.xml b/primefaces-showcase/pom.xml
index 9e6cb56581..f909f0bcff 100644
--- a/primefaces-showcase/pom.xml
+++ b/primefaces-showcase/pom.xml
@@ -21,7 +21,7 @@
         <mojarra.version>4.0.7</mojarra.version>
         <myfaces.version>4.0.2</myfaces.version>
         <resteasy.version>6.2.8.Final</resteasy.version>
-        <jetty.version>12.0.12</jetty.version>
+        <jetty.version>12.0.13</jetty.version>
         <weld.version>5.1.3.Final</weld.version>
         <jsf.project.stage>Production</jsf.project.stage>
     </properties>