Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
5c53d6b
Revert "CI: Replace push triggers with merge_group in workflow files"…
r-farkhutdinov Jul 8, 2026
a3fa57b
Scheduler/PivotGrid: align @default tags with option types in public …
aleksei-semikozov Jul 10, 2026
eebf947
Add DataGrid - Semantic Search Demo (#34098)
flagmanAndrew Jul 13, 2026
117e14b
e2e tests: collect unstable tests statistics (#34300)
EugeniyKiyashko Jul 14, 2026
58fab80
branch dxdsfluent
EugeniyKiyashko Jul 16, 2026
d69da79
add package with tokens tokents
EugeniyKiyashko Jul 16, 2026
8f659f6
map button colors to design tokens
EugeniyKiyashko Jul 17, 2026
4c644cb
migrate texteditors
EugeniyKiyashko Jul 17, 2026
91e554c
add sizing support
EugeniyKiyashko Jul 17, 2026
871f42a
migrate switch, radioGroup, progressBar, slider, badge, loadIndicator
EugeniyKiyashko Jul 17, 2026
1f87192
migrate menu, list, calendar, tabs, popup, tooltip
EugeniyKiyashko Jul 18, 2026
fd504f5
migrate acordion, chat, colorBox, colorView, fileUploader, filterBuil…
EugeniyKiyashko Jul 18, 2026
43a40ea
migrate grids
EugeniyKiyashko Jul 20, 2026
7b761d7
run dxdsfluent theme testing
EugeniyKiyashko Jul 20, 2026
738e2c6
Revert "CI: Replace push triggers with merge_group in workflow files"…
r-farkhutdinov Jul 8, 2026
304246a
Scheduler/PivotGrid: align @default tags with option types in public …
aleksei-semikozov Jul 10, 2026
70875c9
e2e tests: collect unstable tests statistics (#34300)
EugeniyKiyashko Jul 14, 2026
b8e81dd
branch dxdsfluent
EugeniyKiyashko Jul 16, 2026
6f13d66
add package with tokens tokents
EugeniyKiyashko Jul 16, 2026
1a58dec
map button colors to design tokens
EugeniyKiyashko Jul 17, 2026
7598dd9
migrate texteditors
EugeniyKiyashko Jul 17, 2026
d6078f4
add sizing support
EugeniyKiyashko Jul 17, 2026
a554196
migrate switch, radioGroup, progressBar, slider, badge, loadIndicator
EugeniyKiyashko Jul 17, 2026
5b67c0c
migrate menu, list, calendar, tabs, popup, tooltip
EugeniyKiyashko Jul 18, 2026
48afc1f
migrate acordion, chat, colorBox, colorView, fileUploader, filterBuil…
EugeniyKiyashko Jul 18, 2026
dd6c136
migrate grids
EugeniyKiyashko Jul 20, 2026
1585b68
Merge branch '26_2_design_tokens' of https://github.com/EugeniyKiyash…
EugeniyKiyashko Jul 20, 2026
a631757
add jobs to avoid timeout
EugeniyKiyashko Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 19 additions & 1 deletion .github/workflows/build_all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]
workflow_dispatch:

concurrency:
Expand Down Expand Up @@ -104,6 +105,23 @@ jobs:
artifacts/npm/*.tgz
retention-days: 1

- name: Build SBOMs
if: ${{ github.event_name == 'push' || github.event.inputs.SBOM == 'true' }}
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pnpm set //npm.pkg.github.com/:_authToken="$NODE_AUTH_TOKEN";
pnpm nx build sbom;

- name: Upload SBOM artifacts
if: ${{ github.event_name == 'push' || github.event.inputs.SBOM == 'true' }}
uses: actions/upload-artifact@v7
with:
name: sbom
path: |
packages/sbom/dist/**/*
retention-days: 1

custom_bundles:
runs-on: devextreme-shr2
needs: build
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/default_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches:
- "[0-9][0-9]_[0-9]"

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/demos_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]
workflow_dispatch:

env:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/paths.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
MAX_LENGTH: 170
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/playgrounds_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/qunit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]
workflow_dispatch:

env:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/renovation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/styles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/testcafe_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]
workflow_dispatch:

env:
Expand Down Expand Up @@ -248,6 +249,7 @@ jobs:
style_dependent_matrix=$(cat <<'JSON'
[
{ "componentFolder": "accessibility", "name": "accessibility - fluent.dark", "theme": "fluent.blue.dark", "concurrency": 6 },
{ "componentFolder": "accessibility", "name": "accessibility - dxdsfluent.dark", "theme": "dxdsfluent.blue.dark", "concurrency": 6 },
{ "componentFolder": "accessibility", "name": "accessibility - material.light", "theme": "material.blue.light", "concurrency": 6 },
{ "componentFolder": "accessibility", "name": "accessibility - material.dark", "theme": "material.blue.dark", "concurrency": 6 }
]
Expand All @@ -259,7 +261,15 @@ jobs:
--argjson baseEnd "$base_matrix_end" \
--argjson styleDependent "$style_dependent_matrix" \
--arg stylesChanged "${{ needs.check-should-run.outputs.styles-changed }}" \
'{ include: ($baseStart + (if $stylesChanged == "true" then $styleDependent else [] end) + $baseEnd) }')
'{ include: (
$baseStart
+ (if $stylesChanged == "true" then $styleDependent else [] end)
+ $baseEnd
+ (($baseStart + $baseEnd) | map(
select(.theme == null)
| . + { name: (.name + " - dxdsfluent"), theme: "dxdsfluent.blue.light" }
))
) }')

echo "matrix=$matrix" >> $GITHUB_OUTPUT

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/themebuilder_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/ts_declarations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

jobs:
check-ts-bundle:
Expand Down
31 changes: 20 additions & 11 deletions .github/workflows/visual-tests-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]
workflow_dispatch:

env:
Expand Down Expand Up @@ -112,24 +113,32 @@ jobs:
- name: Build matrix
id: matrix
run: |
# Temporarily disabled screenshot shards:
# - material.blue.light: jquery(1/3), jquery(2/3), jquery(3/3)
# - fluent.blue.light: jquery(1/3), jquery(2/3), jquery(3/3)
base_matrix=$(cat <<'JSON'
[
{ "STRATEGY": "screenshots", "THEME": "material.blue.light", "CONSTEL": "jquery(1/3)" },
{ "STRATEGY": "screenshots", "THEME": "material.blue.light", "CONSTEL": "jquery(2/3)" },
{ "STRATEGY": "screenshots", "THEME": "material.blue.light", "CONSTEL": "jquery(3/3)" },
{ "STRATEGY": "screenshots", "THEME": "fluent.blue.light", "CONSTEL": "jquery(1/3)" },
{ "STRATEGY": "screenshots", "THEME": "fluent.blue.light", "CONSTEL": "jquery(2/3)" },
{ "STRATEGY": "screenshots", "THEME": "fluent.blue.light", "CONSTEL": "jquery(3/3)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(1/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(2/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(3/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(4/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(5/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(6/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(7/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(8/9)" },
{ "STRATEGY": "screenshots", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery(9/9)" },
{ "STRATEGY": "accessibility", "THEME": "material.blue.light", "CONSTEL": "jquery" },
{ "STRATEGY": "accessibility", "THEME": "fluent.blue.light", "CONSTEL": "jquery" }
{ "STRATEGY": "accessibility", "THEME": "fluent.blue.light", "CONSTEL": "jquery" },
{ "STRATEGY": "accessibility", "THEME": "dxdsfluent.blue.light", "CONSTEL": "jquery" }
]
JSON
)

dark_accessibility_matrix=$(cat <<'JSON'
[
{ "STRATEGY": "accessibility", "THEME": "material.blue.dark", "CONSTEL": "jquery" },
{ "STRATEGY": "accessibility", "THEME": "fluent.blue.dark", "CONSTEL": "jquery" }
{ "STRATEGY": "accessibility", "THEME": "fluent.blue.dark", "CONSTEL": "jquery" },
{ "STRATEGY": "accessibility", "THEME": "dxdsfluent.blue.dark", "CONSTEL": "jquery" }
]
JSON
)
Expand Down Expand Up @@ -860,7 +869,7 @@ jobs:
angular(9/10),
angular(10/10),
]
THEME: ['fluent.blue.light']
THEME: ['fluent.blue.light', 'dxdsfluent.blue.light']

runs-on: devextreme-shr2
name: ${{ matrix.CONSTEL }}-screenshots-${{ matrix.THEME }}
Expand Down Expand Up @@ -989,7 +998,7 @@ jobs:
fail-fast: false
matrix:
CONSTEL: [react, vue, angular]
THEME: ['fluent.blue.light']
THEME: ['fluent.blue.light', 'dxdsfluent.blue.light']

runs-on: devextreme-shr2
name: ${{ matrix.CONSTEL }}-screenshots-${{ matrix.THEME }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/wrapper_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
merge_group:
push:
branches: [26_1]

concurrency:
group: wf-${{github.event.pull_request.number || github.ref || github.sha}}-${{github.workflow}}
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/wrapper_tests_e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ on:
paths-ignore:
- 'apps/**/*.md'
push:
branches: [24_2, 25_*]
merge_group:
branches: [24_2, 25_*, 26_*]
workflow_dispatch:

env:
Expand Down
16 changes: 9 additions & 7 deletions apps/demos/utils/visual-tests/helpers/theme-utils.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
export const THEME = {
generic: 'generic.light',
fluent: 'fluent.blue.light',
dxdsfluent: 'dxdsfluent.blue.light',
material: 'material.blue.light',
};

export const DEFAULT_THEME_NAME = THEME.fluent;

export const isMaterial = (theme = process.env.THEME) => theme?.startsWith('material');
export const isFluent = (theme = process.env.THEME) => theme?.startsWith('fluent');
export const isFluent = (theme = process.env.THEME) => /^(dxds)?fluent/.test(theme ?? DEFAULT_THEME_NAME);
export const getEtalonThemeName = (theme = DEFAULT_THEME_NAME) => theme.replace(/^dxdsfluent/, 'fluent');
export const getThemePostfix = (theme = DEFAULT_THEME_NAME) => ` (${theme})`;

export const getScreenshotName = (baseName, theme) => {
Expand All @@ -24,19 +26,19 @@ export async function testScreenshot(
element,
comparisonOptions,
) {
const testTheme = process.env.THEME;
const testTheme = getEtalonThemeName(process.env.THEME);

const themeOptions = {
looksSameComparisonOptions: {
tolerance: 20,
antialiasingTolerance: 20,
},
// looksSameComparisonOptions: {
// tolerance: 20,
// antialiasingTolerance: 20,
// },
textDiffTreshold: 0.2,
};

const finalOptions = {
...comparisonOptions,
...themeOptions,
// ...themeOptions,
};

await t
Expand Down
6 changes: 4 additions & 2 deletions e2e/testcafe-devextreme/helpers/themeUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ import { changeTheme } from './changeTheme';

const defaultThemeName = 'fluent.blue.light';

const getEtalonThemeName = (themeName: string): string => themeName.replace(/^dxdsfluent/, 'fluent');

export const getThemePostfix = (theme?: string): string => {
const themeName = (theme ?? process.env.theme) ?? defaultThemeName;
const themeName = getEtalonThemeName((theme ?? process.env.theme) ?? defaultThemeName);
return ` (${themeName})`;
};

Expand All @@ -18,7 +20,7 @@ export const getCurrentTheme = async (t: TestController): Promise<string> => {

export const isMaterial = (): boolean => (process.env.theme ?? defaultThemeName).startsWith('material');

export const isFluent = (): boolean => (process.env.theme ?? defaultThemeName).startsWith('fluent');
export const isFluent = (): boolean => /^(dxds)?fluent/.test(process.env.theme ?? defaultThemeName);

export const isMaterialBased = (): boolean => isMaterial() || isFluent();

Expand Down
12 changes: 9 additions & 3 deletions e2e/testcafe-devextreme/runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ function setTestingTheme(args: ParsedArgs): void {
process.env.theme = args.theme || 'fluent.blue.light';
}

const normalizeThemeForMatching = (themeName?: string): string | undefined => themeName?.replace(/^dxdsfluent/, 'fluent');

const matchTheme = (actualTheme: string | undefined, expectedTheme: string | undefined): boolean => (
normalizeThemeForMatching(actualTheme) === normalizeThemeForMatching(expectedTheme)
);

function setShadowDom(args: ParsedArgs): void {
process.env.shadowDom = args.shadowDom.toString();
}
Expand Down Expand Up @@ -287,7 +293,7 @@ async function main() {
testMeta?: any,
) => {
if (testMeta?.runInTheme) {
return testMeta.runInTheme === process.env.theme;
return matchTheme(testMeta.runInTheme, process.env.theme);
}
return true;
});
Expand All @@ -299,15 +305,15 @@ async function main() {
_fixturePath: string,
testMeta?: any,
) => {
if (testMeta?.runInTheme === process.env.theme) {
if (matchTheme(testMeta?.runInTheme, process.env.theme)) {
return true;
}

if (!testMeta?.themes || !Array.isArray(testMeta.themes)) {
return false;
}

return testMeta.themes.includes(args.theme);
return testMeta.themes.some((themeName: string) => matchTheme(themeName, args.theme));
});
}

Expand Down
3 changes: 3 additions & 0 deletions e2e/testcafe-devextreme/tests/container-ai-integration.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
<link rel="dx-theme" data-theme="fluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light" href="../../../packages/devextreme/artifacts/css/dx.light.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light.compact" href="../../../packages/devextreme/artifacts/css/dx.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="material.blue.light" href="../../../packages/devextreme/artifacts/css/dx.material.blue.light.css" data-active="true">
Expand Down
3 changes: 3 additions & 0 deletions e2e/testcafe-devextreme/tests/container-extended.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
<link rel="dx-theme" data-theme="fluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light" href="../../../packages/devextreme/artifacts/css/dx.light.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light.compact" href="../../../packages/devextreme/artifacts/css/dx.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="material.blue.light" href="../../../packages/devextreme/artifacts/css/dx.material.blue.light.css" data-active="true">
Expand Down
3 changes: 3 additions & 0 deletions e2e/testcafe-devextreme/tests/container.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
<link rel="dx-theme" data-theme="fluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="fluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.fluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.dark" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.dark.css" data-active="false">
<link rel="dx-theme" data-theme="dxdsfluent.blue.light.compact" href="../../../packages/devextreme/artifacts/css/dx.dxdsfluent.blue.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light" href="../../../packages/devextreme/artifacts/css/dx.light.css" data-active="false">
<link rel="dx-theme" data-theme="generic.light.compact" href="../../../packages/devextreme/artifacts/css/dx.light.compact.css" data-active="false">
<link rel="dx-theme" data-theme="material.blue.light" href="../../../packages/devextreme/artifacts/css/dx.material.blue.light.css" data-active="true">
Expand Down
Loading
Loading