diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml
index ba52c68d223d..db5200824ca1 100644
--- a/.github/workflows/update_version.yml
+++ b/.github/workflows/update_version.yml
@@ -59,7 +59,7 @@ jobs:
git config --global user.name "DX Robot"
- name: Bump version
- run: pnpm run all:update-version -- ${{ inputs.version }}
+ run: pnpm run all:update-version ${{ inputs.version }}
- name: Commit changes and make PR
env:
diff --git a/README.md b/README.md
index 7f920ee7cf24..e8f65f4b59e9 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ The DevExtreme website includes "Getting Started" guides for every aspect of Dev
- [Demo Gallery](https://js.devexpress.com/Demos/WidgetsGallery)
- [Responsive UI Templates](https://js.devexpress.com/Templates/UITemplates)
- [Documentation](https://js.devexpress.com/Documentation)
-- [Examples on GitHub](https://github.com/DevExpress/DevExtreme-examples)
+- [Examples on GitHub](https://github.com/DevExpress-Examples)
- [YouTube videos](https://www.youtube.com/playlist?list=PL8h4jt35t1wjGvgflbHEH_e3b23AA30-z)
## Contributing
diff --git a/apps/angular/package.json b/apps/angular/package.json
index dd3ca1f02ed0..7475db83a5a3 100644
--- a/apps/angular/package.json
+++ b/apps/angular/package.json
@@ -2,7 +2,7 @@
"name": "devextreme-angular-playground",
"description": "DevExtreme Angular UI and Visualization Components",
"private": true,
- "version": "24.2.2",
+ "version": "24.2.3",
"author": "Developer Express Inc.",
"license": "MIT",
"dependencies": {
diff --git a/apps/demos/Demos/Chat/Customization/description.md b/apps/demos/Demos/Chat/Customization/description.md
new file mode 100644
index 000000000000..d2a48de2bfb3
--- /dev/null
+++ b/apps/demos/Demos/Chat/Customization/description.md
@@ -0,0 +1,14 @@
+Use the following properties to customize the Chat component:
+
+- To display/hide Chat UI elements:
+ - [showAvatar](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#showAvatar)
+ - [showUserName](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#showUserName)
+ - [showDayHeaders](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#showDayHeaders)
+ - [showMessageTimestamp](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#showMessageTimestamp)
+
+- To modify date/time formats:
+ - [dayHeaderFormat](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#dayHeaderFormat)
+ - [messageTimestampFormat](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#messageTimestampFormat)
+
+- To deactivate Chat, use the [disabled](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#disabled) property.
+
\ No newline at end of file
diff --git a/apps/demos/Demos/Pagination/Overview/React/App.tsx b/apps/demos/Demos/Pagination/Overview/React/App.tsx
index e453a174cbfa..43ffc99aae3b 100644
--- a/apps/demos/Demos/Pagination/Overview/React/App.tsx
+++ b/apps/demos/Demos/Pagination/Overview/React/App.tsx
@@ -1,13 +1,32 @@
-import React from "react";
-import Pagination from "devextreme-react/pagination";
-import { customers } from "./data.ts";
+import React, { useState } from 'react';
+import Pagination from 'devextreme-react/pagination';
+import EmployeeGallery from './EmployeesGallery.tsx';
-const columns = ["CompanyName", "City", "State", "Phone", "Fax"];
+import { employees } from './data.ts';
+
+const PAGE_SIZES = [4, 6];
const App = () => {
+ const [pageSize, setPageSize] = useState(4);
+ const [pageIndex, setPageIndex] = useState(1);
+
return (
<>
-
+
+
>
);
};
diff --git a/apps/demos/Demos/Pagination/Overview/React/EmployeeCard.tsx b/apps/demos/Demos/Pagination/Overview/React/EmployeeCard.tsx
new file mode 100644
index 000000000000..cf450dd52775
--- /dev/null
+++ b/apps/demos/Demos/Pagination/Overview/React/EmployeeCard.tsx
@@ -0,0 +1,38 @@
+import React from 'react';
+import { Employee } from './data';
+
+interface EmployeeCardProps {
+ employee: Employee;
+}
+
+const EmployeeCard = ({ employee }: EmployeeCardProps) => {
+ return (
+
+
+
+
+
+
+ Full Name:
+ {employee.FullName}
+
+
+
+ Position:
+ {employee.Title}
+
+
+
+ Phone:
+ {employee.MobilePhone}
+
+
+
+ );
+};
+
+export default EmployeeCard;
diff --git a/apps/demos/Demos/Pagination/Overview/React/EmployeesGallery.tsx b/apps/demos/Demos/Pagination/Overview/React/EmployeesGallery.tsx
new file mode 100644
index 000000000000..c8667c9b344f
--- /dev/null
+++ b/apps/demos/Demos/Pagination/Overview/React/EmployeesGallery.tsx
@@ -0,0 +1,27 @@
+import React from 'react';
+import EmployeeCard from './EmployeeCard.tsx';
+import { Employee } from './data';
+
+interface EmployeeGalleryProps {
+ employees: Employee[];
+ pageSize: number;
+ pageIndex: number;
+}
+
+const EmployeeGallery = ({ employees, pageSize, pageIndex }: EmployeeGalleryProps) => {
+ const cardsNumber = pageSize === 4 ? 'employees--forth' : 'employees--six';
+ const pageEmployees = employees.slice((pageIndex - 1) * pageSize, pageIndex * pageSize);
+
+ return (
+
+ {pageEmployees.map((employee) => (
+
+ ))}
+
+ );
+};
+
+export default EmployeeGallery;
diff --git a/apps/demos/Demos/Pagination/Overview/React/data.ts b/apps/demos/Demos/Pagination/Overview/React/data.ts
index 6380157422df..bd2e43e18ba2 100644
--- a/apps/demos/Demos/Pagination/Overview/React/data.ts
+++ b/apps/demos/Demos/Pagination/Overview/React/data.ts
@@ -1,121 +1,419 @@
-export const customers = [{
- ID: 1,
- CompanyName: 'Super Mart of the West',
- Address: '702 SW 8th Street',
- City: 'Bentonville',
- State: 'Arkansas',
- Zipcode: 72716,
- Phone: '(800) 555-2797',
- Fax: '(800) 555-2171',
- Website: 'http://www.nowebsitesupermart.dx',
-}, {
- ID: 2,
- CompanyName: 'Electronics Depot',
- Address: '2455 Paces Ferry Road NW',
- City: 'Atlanta',
- State: 'Georgia',
- Zipcode: 30339,
- Phone: '(800) 595-3232',
- Fax: '(800) 595-3231',
- Website: 'http://www.nowebsitedepot.dx',
-}, {
- ID: 3,
- CompanyName: 'K&S Music',
- Address: '1000 Nicllet Mall',
- City: 'Minneapolis',
- State: 'Minnesota',
- Zipcode: 55403,
- Phone: '(612) 304-6073',
- Fax: '(612) 304-6074',
- Website: 'http://www.nowebsitemusic.dx',
-}, {
- ID: 4,
- CompanyName: "Tom's Club",
- Address: '999 Lake Drive',
- City: 'Issaquah',
- State: 'Washington',
- Zipcode: 98027,
- Phone: '(800) 955-2292',
- Fax: '(800) 955-2293',
- Website: 'http://www.nowebsitetomsclub.dx',
-}, {
- ID: 5,
- CompanyName: 'E-Mart',
- Address: '3333 Beverly Rd',
- City: 'Hoffman Estates',
- State: 'Illinois',
- Zipcode: 60179,
- Phone: '(847) 286-2500',
- Fax: '(847) 286-2501',
- Website: 'http://www.nowebsiteemart.dx',
-}, {
- ID: 6,
- CompanyName: 'Walters',
- Address: '200 Wilmot Rd',
- City: 'Deerfield',
- State: 'Illinois',
- Zipcode: 60015,
- Phone: '(847) 940-2500',
- Fax: '(847) 940-2501',
- Website: 'http://www.nowebsitewalters.dx',
-}, {
- ID: 7,
- CompanyName: 'StereoShack',
- Address: '400 Commerce S',
- City: 'Fort Worth',
- State: 'Texas',
- Zipcode: 76102,
- Phone: '(817) 820-0741',
- Fax: '(817) 820-0742',
- Website: 'http://www.nowebsiteshack.dx',
-}, {
- ID: 8,
- CompanyName: 'Circuit Town',
- Address: '2200 Kensington Court',
- City: 'Oak Brook',
- State: 'Illinois',
- Zipcode: 60523,
- Phone: '(800) 955-2929',
- Fax: '(800) 955-9392',
- Website: 'http://www.nowebsitecircuittown.dx',
-}, {
- ID: 9,
- CompanyName: 'Premier Buy',
- Address: '7601 Penn Avenue South',
- City: 'Richfield',
- State: 'Minnesota',
- Zipcode: 55423,
- Phone: '(612) 291-1000',
- Fax: '(612) 291-2001',
- Website: 'http://www.nowebsitepremierbuy.dx',
-}, {
- ID: 10,
- CompanyName: 'ElectrixMax',
- Address: '263 Shuman Blvd',
- City: 'Naperville',
- State: 'Illinois',
- Zipcode: 60563,
- Phone: '(630) 438-7800',
- Fax: '(630) 438-7801',
- Website: 'http://www.nowebsiteelectrixmax.dx',
-}, {
- ID: 11,
- CompanyName: 'Video Emporium',
- Address: '1201 Elm Street',
- City: 'Dallas',
- State: 'Texas',
- Zipcode: 75270,
- Phone: '(214) 854-3000',
- Fax: '(214) 854-3001',
- Website: 'http://www.nowebsitevideoemporium.dx',
-}, {
- ID: 12,
- CompanyName: 'Screen Shop',
- Address: '1000 Lowes Blvd',
- City: 'Mooresville',
- State: 'North Carolina',
- Zipcode: 28117,
- Phone: '(800) 445-6937',
- Fax: '(800) 445-6938',
- Website: 'http://www.nowebsitescreenshop.dx',
-}];
+export interface Employee {
+ ID: number;
+ FullName: string;
+ Title: string;
+ Employee_Picture: string;
+ Picture: string;
+ MobilePhone: string;
+}
+
+export const employees: Employee[] = [
+ {
+ ID: 1,
+ FullName: 'John Heart',
+ Title: 'CEO',
+ Employee_Picture: '01.png',
+ Picture: '../../../../images/employees/01.png',
+ MobilePhone: '2135559392',
+ },
+ {
+ ID: 2,
+ FullName: 'Samantha Bright',
+ Title: 'COO',
+ Employee_Picture: '30.png',
+ Picture: '../../../../images/employees/30.png',
+ MobilePhone: '2135552858',
+ },
+ {
+ ID: 3,
+ FullName: 'Arthur Miller',
+ Title: 'CTO',
+ Employee_Picture: '10.png',
+ Picture: '../../../../images/employees/10.png',
+ MobilePhone: '3105558583',
+ },
+ {
+ ID: 4,
+ FullName: 'Robert Reagan',
+ Title: 'CMO',
+ Employee_Picture: '03.png',
+ Picture: '../../../../images/employees/03.png',
+ MobilePhone: '8185552387',
+ },
+ {
+ ID: 5,
+ FullName: 'Greta Sims',
+ Title: 'HR Manager',
+ Employee_Picture: '04.png',
+ Picture: '../../../../images/employees/04.png',
+ MobilePhone: '8185556546',
+ },
+ {
+ ID: 6,
+ FullName: 'Brett Wade',
+ Title: 'IT Manager',
+ Employee_Picture: '05.png',
+ Picture: '../../../../images/employees/05.png',
+ MobilePhone: '6265550358',
+ },
+ {
+ ID: 7,
+ FullName: 'Sandra Johnson',
+ Title: 'Controller',
+ Employee_Picture: '06.png',
+ Picture: '../../../../images/employees/06.png',
+ MobilePhone: '5625552082',
+ },
+ {
+ ID: 8,
+ FullName: 'Ed Holmes',
+ Title: 'Sales Manager',
+ Employee_Picture: '11.png',
+ Picture: '../../../../images/employees/11.png',
+ MobilePhone: '3105551288',
+ },
+ {
+ ID: 9,
+ FullName: 'Barb Banks',
+ Title: 'Support Manager',
+ Employee_Picture: '20.png',
+ Picture: '../../../../images/employees/20.png',
+ MobilePhone: '3105553355',
+ },
+ {
+ ID: 10,
+ FullName: 'Kevin Carter',
+ Title: 'Shipping Manager',
+ Employee_Picture: '07.png',
+ Picture: '../../../../images/employees/07.png',
+ MobilePhone: '2135552840',
+ },
+ {
+ ID: 11,
+ FullName: 'Cindy Stanwick',
+ Title: 'HR Assistant',
+ Employee_Picture: '08.png',
+ Picture: '../../../../images/employees/08.png',
+ MobilePhone: '8185556655',
+ },
+ {
+ ID: 12,
+ FullName: 'Sammy Hill',
+ Title: 'Sales Assistant',
+ Employee_Picture: '12.png',
+ Picture: '../../../../images/employees/12.png',
+ MobilePhone: '6265557292',
+ },
+ {
+ ID: 13,
+ FullName: 'Davey Jones',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '13.png',
+ Picture: '../../../../images/employees/13.png',
+ MobilePhone: '6265550281',
+ },
+ {
+ ID: 14,
+ FullName: 'Victor Norris',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '14.png',
+ Picture: '../../../../images/employees/14.png',
+ MobilePhone: '2135559278',
+ },
+ {
+ ID: 15,
+ FullName: 'Mary Stern',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '15.png',
+ Picture: '../../../../images/employees/15.png',
+ MobilePhone: '8185557857',
+ },
+ {
+ ID: 16,
+ FullName: 'Robin Cosworth',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '16.png',
+ Picture: '../../../../images/employees/16.png',
+ MobilePhone: '8185550942',
+ },
+ {
+ ID: 17,
+ FullName: 'Kelly Rodriguez',
+ Title: 'Support Assistant',
+ Employee_Picture: '17.png',
+ Picture: '../../../../images/employees/17.png',
+ MobilePhone: '8185559248',
+ },
+ {
+ ID: 18,
+ FullName: 'James Anderson',
+ Title: 'Support Assistant',
+ Employee_Picture: '18.png',
+ Picture: '../../../../images/employees/18.png',
+ MobilePhone: '3235554702',
+ },
+ {
+ ID: 19,
+ FullName: 'Antony Remmen',
+ Title: 'Support Assistant',
+ Employee_Picture: '19.png',
+ Picture: '../../../../images/employees/19.png',
+ MobilePhone: '3105556625',
+ },
+ {
+ ID: 20,
+ FullName: 'Olivia Peyton',
+ Title: 'Sales Assistant',
+ Employee_Picture: '09.png',
+ Picture: '../../../../images/employees/09.png',
+ MobilePhone: '3105552728',
+ },
+ {
+ ID: 21,
+ FullName: 'Taylor Riley',
+ Title: 'Network Admin',
+ Employee_Picture: '21.png',
+ Picture: '../../../../images/employees/21.png',
+ MobilePhone: '3105557276',
+ },
+ {
+ ID: 22,
+ FullName: 'Amelia Harper',
+ Title: 'Network Admin',
+ Employee_Picture: '22.png',
+ Picture: '../../../../images/employees/22.png',
+ MobilePhone: '2135554276',
+ },
+ {
+ ID: 23,
+ FullName: 'Wally Hobbs',
+ Title: 'Programmer',
+ Employee_Picture: '23.png',
+ Picture: '../../../../images/employees/23.png',
+ MobilePhone: '8185558872',
+ },
+ {
+ ID: 24,
+ FullName: 'Brad Jameson',
+ Title: 'Programmer',
+ Employee_Picture: '24.png',
+ Picture: '../../../../images/employees/24.png',
+ MobilePhone: '8185554646',
+ },
+ {
+ ID: 25,
+ FullName: 'Karen Goodson',
+ Title: 'Programmer',
+ Employee_Picture: '25.png',
+ Picture: '../../../../images/employees/25.png',
+ MobilePhone: '6265550908',
+ },
+ {
+ ID: 26,
+ FullName: 'Marcus Orbison',
+ Title: 'Travel Coordinator',
+ Employee_Picture: '26.png',
+ Picture: '../../../../images/employees/26.png',
+ MobilePhone: '2135557098',
+ },
+ {
+ ID: 27,
+ FullName: 'Sandy Bright',
+ Title: 'Benefits Coordinator',
+ Employee_Picture: '27.png',
+ Picture: '../../../../images/employees/27.png',
+ MobilePhone: '8185550524',
+ },
+ {
+ ID: 28,
+ FullName: 'Morgan Kennedy',
+ Title: 'Graphic Designer',
+ Employee_Picture: '28.png',
+ Picture: '../../../../images/employees/28.png',
+ MobilePhone: '8185558238',
+ },
+ {
+ ID: 29,
+ FullName: 'Violet Bailey',
+ Title: 'Jr Graphic Designer',
+ Employee_Picture: '29.png',
+ Picture: '../../../../images/employees/29.png',
+ MobilePhone: '8185552478',
+ },
+ {
+ ID: 30,
+ FullName: 'Ken Samuelson',
+ Title: 'Ombudsman',
+ Employee_Picture: '02.png',
+ Picture: '../../../../images/employees/02.png',
+ MobilePhone: '5625559282',
+ },
+ {
+ ID: 31,
+ FullName: 'Nat Maguiree',
+ Title: 'Trainer',
+ Employee_Picture: '31.png',
+ Picture: '../../../../images/employees/31.png',
+ MobilePhone: '5625558377',
+ },
+ {
+ ID: 32,
+ FullName: 'Bart Arnaz',
+ Title: 'Director of Engineering',
+ Employee_Picture: '32.png',
+ Picture: '../../../../images/employees/32.png',
+ MobilePhone: '7145552000',
+ },
+ {
+ ID: 33,
+ FullName: 'Leah Simpson',
+ Title: 'Test Coordinator',
+ Employee_Picture: '33.png',
+ Picture: '../../../../images/employees/33.png',
+ MobilePhone: '5625595830',
+ },
+ {
+ ID: 34,
+ FullName: 'Arnie Schwartz',
+ Title: 'Engineer',
+ Employee_Picture: '34.png',
+ Picture: '../../../../images/employees/34.png',
+ MobilePhone: '7145558882',
+ },
+ {
+ ID: 35,
+ FullName: 'Billy Zimmer',
+ Title: 'Engineer',
+ Employee_Picture: '51.png',
+ Picture: '../../../../images/employees/51.png',
+ MobilePhone: '9095556939',
+ },
+ {
+ ID: 36,
+ FullName: 'Samantha Piper',
+ Title: 'Engineer',
+ Employee_Picture: '35.png',
+ Picture: '../../../../images/employees/35.png',
+ MobilePhone: '3235554512',
+ },
+ {
+ ID: 37,
+ FullName: 'Maggie Boxter',
+ Title: 'Engineer',
+ Employee_Picture: '36.png',
+ Picture: '../../../../images/employees/36.png',
+ MobilePhone: '7145557239',
+ },
+ {
+ ID: 38,
+ FullName: 'Terry Bradley',
+ Title: 'QA Engineer',
+ Employee_Picture: '37.png',
+ Picture: '../../../../images/employees/37.png',
+ MobilePhone: '8055552788',
+ },
+ {
+ ID: 39,
+ FullName: 'Gabe Jones',
+ Title: 'Retail Coordinator',
+ Employee_Picture: '38.png',
+ Picture: '../../../../images/employees/38.png',
+ MobilePhone: '3105555395',
+ },
+ {
+ ID: 40,
+ FullName: 'Lucy Ball',
+ Title: 'Sales Assistant',
+ Employee_Picture: '39.png',
+ Picture: '../../../../images/employees/39.png',
+ MobilePhone: '3105553357',
+ },
+ {
+ ID: 41,
+ FullName: 'Jim Packard',
+ Title: 'Retail Sales Manager',
+ Employee_Picture: '40.png',
+ Picture: '../../../../images/employees/40.png',
+ MobilePhone: '6615558224',
+ },
+ {
+ ID: 42,
+ FullName: 'Hannah Brookly',
+ Title: 'Online Sales Manager',
+ Employee_Picture: '41.png',
+ Picture: '../../../../images/employees/41.png',
+ MobilePhone: '8055553627',
+ },
+ {
+ ID: 43,
+ FullName: 'Harv Mudd',
+ Title: 'Retail Sales Manager',
+ Employee_Picture: '42.png',
+ Picture: '../../../../images/employees/42.png',
+ MobilePhone: '8315553895',
+ },
+ {
+ ID: 44,
+ FullName: 'Clark Morgan',
+ Title: 'Retail Sales Manager',
+ Employee_Picture: '43.png',
+ Picture: '../../../../images/employees/43.png',
+ MobilePhone: '9255552525',
+ },
+ {
+ ID: 45,
+ FullName: 'Todd Hoffman',
+ Title: 'Retail Sales Manager',
+ Employee_Picture: '44.png',
+ Picture: '../../../../images/employees/44.png',
+ MobilePhone: '9255553579',
+ },
+ {
+ ID: 46,
+ FullName: 'Jackie Garmin',
+ Title: 'Support Assistant',
+ Employee_Picture: '45.png',
+ Picture: '../../../../images/employees/45.png',
+ MobilePhone: '2135551824',
+ },
+ {
+ ID: 47,
+ FullName: 'Lincoln Bartlett',
+ Title: 'Sales Assistant',
+ Employee_Picture: '46.png',
+ Picture: '../../../../images/employees/46.png',
+ MobilePhone: '2135558272',
+ },
+ {
+ ID: 48,
+ FullName: 'Brad Farkus',
+ Title: 'Engineer',
+ Employee_Picture: '47.png',
+ Picture: '../../../../images/employees/47.png',
+ MobilePhone: '2135553626',
+ },
+ {
+ ID: 49,
+ FullName: 'Jenny Hobbs',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '48.png',
+ Picture: '../../../../images/employees/48.png',
+ MobilePhone: '3105552668',
+ },
+ {
+ ID: 50,
+ FullName: 'Dallas Lou',
+ Title: 'Shipping Assistant',
+ Employee_Picture: '49.png',
+ Picture: '../../../../images/employees/49.png',
+ MobilePhone: '2135558357',
+ },
+ {
+ ID: 51,
+ FullName: 'Stu Pizaro',
+ Title: 'Engineer',
+ Employee_Picture: '50.png',
+ Picture: '../../../../images/employees/50.png',
+ MobilePhone: '2135552552',
+ },
+];
\ No newline at end of file
diff --git a/apps/demos/Demos/Pagination/Overview/React/index.html b/apps/demos/Demos/Pagination/Overview/React/index.html
index bc116ceea64c..637762a048ae 100644
--- a/apps/demos/Demos/Pagination/Overview/React/index.html
+++ b/apps/demos/Demos/Pagination/Overview/React/index.html
@@ -6,6 +6,7 @@
+
@@ -17,7 +18,7 @@