Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0823f96
v22.13.0-canary.0
Mar 25, 2026
d1bbb0e
Update API docs
Mar 25, 2026
8cfc013
v22.13.0-canary.1 [skip ci]
Mar 25, 2026
1e86ae8
[chore] Adjust 22.12 changelog (#2189) [skip ci]
art-alexeyenko Mar 26, 2026
1899b92
Add Unified UI origin to allowed origins (#2192)
sc-nikolaoslazaridis Apr 6, 2026
9f12489
Update API docs
Apr 6, 2026
2a8fbad
v22.13.0-canary.2 [skip ci]
Apr 6, 2026
8e7591f
Updated Changelog (22.12.1) [skip ci]
illiakovalenko Apr 7, 2026
8e5111f
Upgrade Nextjs to v16.2 (#2193)
MenKNas Apr 9, 2026
55ae317
Update API docs
Apr 9, 2026
8166619
v22.13.0-canary.3 [skip ci]
Apr 9, 2026
de5a366
[sitecore-jss-tools] Fix `jss deploy component` command failing (#2195)
yavorsk Apr 23, 2026
b899c0d
Update API docs
Apr 23, 2026
6e17fcf
v22.13.0-canary.4 [skip ci]
Apr 23, 2026
160c9db
[create-sitecore-jss] Fix nextjs-styleguide template build failure (#…
art-alexeyenko Apr 23, 2026
c133f84
Update API docs
Apr 23, 2026
1bbe537
v22.13.0-canary.5 [skip ci]
Apr 23, 2026
d119e14
[Chore] Update glob dependency (#2194)
art-alexeyenko Apr 23, 2026
7cc9d23
Update API docs
Apr 23, 2026
29a1e8f
v22.13.0-canary.6 [skip ci]
Apr 23, 2026
0c2f41e
[sitecore-jss-react] Preserve form state and interactivity between re…
yavorsk Apr 24, 2026
e09e01f
Update API docs
Apr 24, 2026
be76f7a
v22.13.0-canary.7 [skip ci]
Apr 24, 2026
3d99ba1
Merge branch 'dev' of https://github.com/Sitecore/jss into chore/22.0…
art-alexeyenko Apr 28, 2026
1e96fe4
fix changelog, patch version, other PR comments
art-alexeyenko Apr 29, 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
  •  
  •  
  •  
188 changes: 24 additions & 164 deletions CHANGELOG.md

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
{
"lerna": "5.6.2",
"packages": ["packages/*", "samples/*"],
"version": "22.12.1",
"packages": [
"packages/*",
"samples/*"
],
"version": "22.12.2-canary.0",
"npmClient": "yarn",
"useWorkspaces": true
}
4 changes: 2 additions & 2 deletions packages/create-sitecore-jss/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-sitecore-jss",
"version": "22.12.1",
"version": "22.12.2-canary.0",
"description": "Sitecore JSS initializer",
"bin": "./dist/index.js",
"scripts": {
Expand Down Expand Up @@ -35,7 +35,7 @@
"dotenv": "^17.2.1",
"ejs": "^3.1.10",
"fs-extra": "^11.3.1",
"glob": "^10.4.5",
"glob": "^13.0.6",
"inquirer": "^8.2.4",
"minimist": "^1.2.8"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { JSX, useEffect } from 'react';
import { JSX, useEffect } from 'react';
import {
Text,
Link,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,17 @@ export const Default = (props: ImageProps): JSX.Element => {
const { sitecoreContext } = useSitecoreContext();

if (props.fields) {
const Image = () => <JssImage field={props.fields.Image} />;
const id = props.params.RenderingIdentifier;
const imageField = props.fields.Image;

return (
<div className={`component image ${props?.params?.styles}`} id={id ? id : undefined}>
<div className="component-content">
{sitecoreContext.pageState === 'edit' || !props.fields.TargetUrl?.value?.href ? (
<Image />
<JssImage field={imageField} />
) : (
<JssLink field={props.fields.TargetUrl}>
<Image />
<JssImage field={imageField} />
</JssLink>
)}
<Text
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,28 +64,30 @@ export const Default = (props: TitleProps): JSX.Element => {
const datasource = props.fields?.data?.datasource || props.fields?.data?.contextItem;
const { sitecoreContext } = useSitecoreContext();
const text: TextField = datasource?.field?.jsonValue || {};
const link: LinkField = {
const linkValue: NonNullable<LinkField['value']> = {
value: {
href: datasource?.url?.path,
title: datasource?.field?.jsonValue?.value,
},
};
}.value;

const displayText: TextField =
sitecoreContext.pageState !== 'normal' && !text?.value ? { ...text, value: 'Title field' } : text;

if (sitecoreContext.pageState !== 'normal') {
link.value.querystring = `sc_site=${datasource?.url?.siteName}`;
if (!text?.value) {
text.value = 'Title field';
link.value.href = '#';
}
linkValue.querystring = `sc_site=${datasource?.url?.siteName}`;
if (!displayText?.value) linkValue.href = '#';
}
const link: LinkField = { value: linkValue };

return (
<ComponentContent styles={props?.params?.styles} id={props?.params?.RenderingIdentifier}>
<>
{sitecoreContext.pageEditing ? (
<Text field={text} />
<Text field={displayText} />
) : (
<Link field={link}>
<Text field={text} />
<Text field={displayText} />
</Link>
)}
</>
Expand Down
34 changes: 16 additions & 18 deletions packages/create-sitecore-jss/src/templates/nextjs/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
/**
* ESLint flat config for JSS Next.js apps.
* Replaces legacy .eslintrc so scaffolded apps use ESLint 9 flat config.
* Loads eslint-config-next's published flat bundle (no FlatCompat) to avoid circular
* plugin graphs when ESLint 9 validates legacy eslintrc through @eslint/eslintrc.
*/
import { dirname } from 'path';
import { fileURLToPath } from 'url';
import { FlatCompat } from '@eslint/eslintrc';
import { createRequire } from 'module';
import eslintConfigPrettier from 'eslint-config-prettier';
import prettierPlugin from 'eslint-plugin-prettier';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({ baseDirectory: __dirname });

const nextAndPrettierLegacy = compat.extends(
'next',
'next/core-web-vitals',
'plugin:@typescript-eslint/recommended',
'prettier',
'plugin:yaml/recommended',
'plugin:prettier/recommended'
);
const require = createRequire(import.meta.url);
const coreWebVitals = require('eslint-config-next/core-web-vitals');

export default [
{ ignores: ['.generated/**', '**/*.d.ts', '**/*.js', 'node_modules', '.next', 'out'] },
...nextAndPrettierLegacy,
{
ignores: ['.generated/**', '**/*.d.ts', '**/*.js', 'node_modules', '.next', 'out'],
},
...coreWebVitals,
{
files: ['**/*.ts', '**/*.tsx'],
rules: {
Expand All @@ -37,5 +29,11 @@ export default [
'jsx-quotes': ['error', 'prefer-double'],
},
},
{
plugins: { prettier: prettierPlugin },
rules: {
'prettier/prettier': 'warn',
},
},
eslintConfigPrettier,
];
149 changes: 74 additions & 75 deletions packages/create-sitecore-jss/src/templates/nextjs/package.json
Original file line number Diff line number Diff line change
@@ -1,75 +1,74 @@
{
"name": "<%- appName %>",
"description": "Application utilizing Sitecore JavaScript Services and Next.js",
"version": "0.1.0",
"private": true,
"config": {
"appName": "<%- appName %>",
"rootPlaceholders": [
"<%- helper.getAppPrefix(appPrefix, appName) %>jss-main"
],
"sitecoreConfigPath": "/App_Config/Include/zzz",
"graphQLEndpointPath": "/sitecore/api/graph/edge",
"language": "en"
},
"author": {
"name": "Sitecore Corporation",
"url": "https://jss.sitecore.com"
},
"repository": {
"type": "git",
"url": "git+https://github.com/sitecore/jss.git"
},
"bugs": {
"url": "https://github.com/sitecore/jss/issues"
},
"license": "Apache-2.0",
"dependencies": {
"@sitecore-jss/sitecore-jss-nextjs": "<%- version %>",
"next": "^16.1.0",
"next-localization": "^0.12.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"sharp": "0.34.3"
},
"devDependencies": {
"@sitecore-jss/sitecore-jss-cli": "<%- version %>",
"@sitecore-jss/sitecore-jss-dev-tools": "<%- version %>",
"@types/node": "^24.10.4",
"@types/react": "^19.1.7",
"@types/react-dom": "^19.1.7",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.14.0",
"chalk": "~4.1.2",
"chokidar": "~4.0.3",
"constant-case": "^3.0.4",
"cross-env": "~10.0.0",
"dotenv-flow": "^4.1.0",
"@eslint/eslintrc": "^3.2.0",
"eslint": "^9.15.0",
"eslint-config-next": "^15.0.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-yaml": "^0.5.0",
"npm-run-all": "~4.1.5",
"prettier": "^2.8.3",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.1.2",
"typescript": "~5.4.0"
},
"scripts": {
"jss": "jss",
"lint": "eslint ./src/**/*.tsx ./src/**/*.ts ./scripts/**/*.ts",
"bootstrap": "ts-node --require dotenv-flow/config --project tsconfig.scripts.json scripts/bootstrap.ts",
"build": "cross-env NODE_ENV=production npm-run-all --serial bootstrap next:build",
"next:build": "next build --webpack",
"next:dev": "cross-env NODE_OPTIONS='--inspect' next dev --webpack",
"next:start": "next start",
"scaffold": "ts-node --project tsconfig.scripts.json scripts/scaffold-component/index.ts",
"start:connected": "cross-env NODE_ENV=development npm-run-all --serial bootstrap --parallel next:dev start:watch-components",
"start:production": "cross-env-shell NODE_ENV=production npm-run-all --serial bootstrap next:build next:start",
"start:watch-components": "ts-node --project tsconfig.scripts.json scripts/generate-component-builder/index.ts --watch",
"install-pre-push-hook": "ts-node --project tsconfig.scripts.json ./scripts/install-pre-push-hook.ts"
}
}
{
"name": "<%- appName %>",
"description": "Application utilizing Sitecore JavaScript Services and Next.js",
"version": "0.1.0",
"private": true,
"config": {
"appName": "<%- appName %>",
"rootPlaceholders": [
"<%- helper.getAppPrefix(appPrefix, appName) %>jss-main"
],
"sitecoreConfigPath": "/App_Config/Include/zzz",
"graphQLEndpointPath": "/sitecore/api/graph/edge",
"language": "en"
},
"author": {
"name": "Sitecore Corporation",
"url": "https://jss.sitecore.com"
},
"repository": {
"type": "git",
"url": "git+https://github.com/sitecore/jss.git"
},
"bugs": {
"url": "https://github.com/sitecore/jss/issues"
},
"license": "Apache-2.0",
"dependencies": {
"@sitecore-jss/sitecore-jss-nextjs": "<%- version %>",
"next": "^16.2.0",
"next-localization": "^0.12.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"sharp": "0.34.3"
},
"devDependencies": {
"@sitecore-jss/sitecore-jss-cli": "<%- version %>",
"@sitecore-jss/sitecore-jss-dev-tools": "<%- version %>",
"@types/node": "^24.10.4",
"@types/react": "^19.1.7",
"@types/react-dom": "^19.1.7",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.14.0",
"chalk": "~4.1.2",
"chokidar": "~4.0.3",
"constant-case": "^3.0.4",
"cross-env": "~10.0.0",
"dotenv-flow": "^4.1.0",
"eslint": "^9.15.0",
"eslint-config-next": "^16.2.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-yaml": "^0.5.0",
"npm-run-all": "~4.1.5",
"prettier": "^2.8.3",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.1.2",
"typescript": "~5.4.0"
},
"scripts": {
"jss": "jss",
"lint": "eslint ./src/**/*.tsx ./src/**/*.ts ./scripts/**/*.ts",
"bootstrap": "ts-node --require dotenv-flow/config --project tsconfig.scripts.json scripts/bootstrap.ts",
"build": "cross-env NODE_ENV=production npm-run-all --serial bootstrap next:build",
"next:build": "next build --webpack",
"next:dev": "cross-env NODE_OPTIONS='--inspect' next dev --webpack",
"next:start": "next start",
"scaffold": "ts-node --project tsconfig.scripts.json scripts/scaffold-component/index.ts",
"start:connected": "cross-env NODE_ENV=development npm-run-all --serial bootstrap --parallel next:dev start:watch-components",
"start:production": "cross-env-shell NODE_ENV=production npm-run-all --serial bootstrap next:build next:start",
"start:watch-components": "ts-node --project tsconfig.scripts.json scripts/generate-component-builder/index.ts --watch",
"install-pre-push-hook": "ts-node --project tsconfig.scripts.json ./scripts/install-pre-push-hook.ts"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
"lib/*": ["src/lib/*"],
"temp/*": ["src/temp/*"],
"assets/*": ["src/assets/*"],
"react": ["node_modules/react"]
<%_ if (helper.isDev) { _%>
"react": ["node_modules/react"],
<%_ } _%>
},
"target": "es5",
"types": ["node"],
Expand Down
2 changes: 1 addition & 1 deletion packages/sitecore-jss-angular-schematics/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sitecore-jss/sitecore-jss-angular-schematics",
"version": "22.12.1",
"version": "22.12.2-canary.0",
"description": "Scaffolding schematics for Sitecore JSS Angular apps",
"scripts": {
"build": "tsc -p tsconfig.json",
Expand Down
4 changes: 2 additions & 2 deletions packages/sitecore-jss-angular/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sitecore-jss/sitecore-jss-angular",
"version": "22.12.1",
"version": "22.12.2-canary.0",
"description": "",
"scripts": {
"build": "ng-packagr -p ng-package.json",
Expand Down Expand Up @@ -62,7 +62,7 @@
"rxjs": "~7.8.1"
},
"dependencies": {
"@sitecore-jss/sitecore-jss": "22.12.1"
"@sitecore-jss/sitecore-jss": "22.12.2-canary.0"
},
"main": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
"module": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
Expand Down
6 changes: 3 additions & 3 deletions packages/sitecore-jss-cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sitecore-jss/sitecore-jss-cli",
"version": "22.12.1",
"version": "22.12.2-canary.0",
"description": "Sitecore JSS command-line",
"main": "dist/cjs/cli.js",
"module": "dist/esm/cli.js",
Expand Down Expand Up @@ -32,7 +32,7 @@
"url": "https://github.com/sitecore/jss/issues"
},
"dependencies": {
"@sitecore-jss/sitecore-jss-dev-tools": "22.12.1",
"@sitecore-jss/sitecore-jss-dev-tools": "22.12.2-canary.0",
"chalk": "^4.1.2",
"cross-spawn": "^7.0.6",
"dotenv": "^17.2.1",
Expand All @@ -49,7 +49,7 @@
"@types/node": "^24.10.4",
"@types/readline-sync": "^1.4.8",
"@types/resolve": "^1.20.6",
"@types/sinon": "^10.0.13",
"@types/sinon": "^17.0.4",
"@types/tmp": "^0.2.6",
"@types/yargs": "^17.0.33",
"chai": "^4.3.7",
Expand Down
1 change: 1 addition & 0 deletions packages/sitecore-jss-cli/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"target": "es6",
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"outDir": "dist/cjs",
"typeRoots": ["node_modules/@types"],
"declarationDir": "./types"
Expand Down
6 changes: 3 additions & 3 deletions packages/sitecore-jss-dev-tools/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sitecore-jss/sitecore-jss-dev-tools",
"version": "22.12.1",
"version": "22.12.2-canary.0",
"description": "Utilities to assist in the development and deployment of Sitecore JSS apps.",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
Expand Down Expand Up @@ -33,14 +33,14 @@
},
"dependencies": {
"@babel/parser": "^7.28.0",
"@sitecore-jss/sitecore-jss": "22.12.1",
"@sitecore-jss/sitecore-jss": "22.12.2-canary.0",
"chalk": "^4.1.2",
"chokidar": "^4.0.3",
"del": "^6.0.0",
"express": "^5.1.0",
"form-data": "^4.0.4",
"fs-extra": "^11.3.1",
"glob": "^10.4.5",
"glob": "^13.0.6",
"import-fresh": "^3.3.1",
"joi": "^18.0.0",
"js-yaml": "^4.1.0",
Expand Down
Loading
Loading