Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
23638f2
[Seven] Add Maps block
cihanandac Mar 17, 2026
96d0211
Add news items
cihanandac Mar 19, 2026
42a6719
Add video block view in seven (#8004)
tedw87 Mar 19, 2026
2f4ce64
[Seven] Moved basic data fetching to a middleware (#8022)
pnicolli Mar 19, 2026
5cdfff4
Refactored runtime migrations to match the somersault editor (#8021)
sneridagh Mar 20, 2026
a6436ca
Floating toolbar icon for the width plugin do not appear if there's a…
sneridagh Mar 25, 2026
4c6a5e5
Fixed flattenToAppURL usage in the middleware
pnicolli Mar 26, 2026
53f790f
Remove h1 option, since this is the title (#8056)
sneridagh Mar 27, 2026
cb4329b
Add always visible placeholder for the title block (#8057)
sneridagh Mar 27, 2026
f640fcc
Refactored blockwidth (#8053)
sneridagh Mar 31, 2026
4974e08
Refactor Slash menu for making it extensible using a factory (#8054)
sneridagh Mar 31, 2026
6d8d430
Added remaining blocks inner wrappers (#8069)
sneridagh Apr 1, 2026
3294c80
Added runtime migration for blockWidths (#8071)
sneridagh Apr 1, 2026
9e9949c
Quick fixes typo styling (#8076)
sneridagh Apr 2, 2026
14b5397
Remove legacy Icon component used in slash menu for Volto versions
sneridagh Apr 2, 2026
c94651e
Fix backward compat in @plone/client (#8063) (#8079)
sneridagh Apr 5, 2026
083887d
Fixed SOMERSAULT_KEY constant all over the place (#8078)
sneridagh Apr 7, 2026
c4f5ec1
Improve block widths implementation (#8099)
sneridagh Apr 9, 2026
3911b3a
Fixed discussion kit render placement aboveNodes->belowNodes (#8101)
sneridagh Apr 9, 2026
9e526f4
Fix missing import
sneridagh Apr 9, 2026
d48fb72
Remove the H1 from the turninto component
sneridagh Apr 9, 2026
8d6b57a
Remove H5 and H6 from turn-into
sneridagh Apr 10, 2026
07f2dac
Fixed @platejs/playwright dependency in @plone/plate
sneridagh Apr 10, 2026
58077f8
Vite 8 (#8106)
sneridagh Apr 11, 2026
740fe94
[Seven] Added user data in the context for authenticated users (#8030)
pnicolli Apr 12, 2026
a1471b9
Moved initialized client to the middleware (#8108)
sneridagh Apr 12, 2026
05f7f6f
Normalize client login arguments to follow all non-get argument shape…
sneridagh Apr 12, 2026
ff0eaa0
Fixed inconsistent use of username argument instead of login in the l…
sneridagh Apr 12, 2026
ed8087e
Align REST client path param names with REST API response semantics (…
sneridagh Apr 13, 2026
4d616d0
Get rid of `dash.js` (#8115)
sneridagh Apr 14, 2026
7054f04
Add addon-driven Vite extension support (#8116)
sneridagh Apr 14, 2026
94d9fe9
Clean up #8116 (#8117)
stevepiercy Apr 14, 2026
4479e2b
[components] Refactor some components to match closely RAC implementa…
sneridagh Apr 14, 2026
46c3c05
[Seven] Updated packages configuration for vite 8 (#8119)
pnicolli Apr 16, 2026
54cf70e
[Seven] Added `@@add` view (#8118)
pnicolli Apr 16, 2026
81e0b49
Update RAC to 1.17.0 (#8120)
sneridagh Apr 16, 2026
7bb9112
Fix CI config not to unnecessarily use acceptance setup (#8121)
sneridagh Apr 16, 2026
5d76b64
Forward port @plone/types 2a16 (#8123)
sneridagh Apr 16, 2026
317e602
Forwardport registry
sneridagh Apr 16, 2026
208b0ea
Release @plone/client 2.0.0-alpha.3
sneridagh Apr 16, 2026
3498dcc
Release @plone/components 4.0.0-alpha.7
sneridagh Apr 16, 2026
c632cda
Release @plone/helpers 2.0.0-alpha.3
sneridagh Apr 16, 2026
68d20bd
Release @plone/react-router 2.0.0-alpha.3
sneridagh Apr 16, 2026
6026c51
Prepare for release @plone/plate
sneridagh Apr 16, 2026
77a0348
Release @plone/plate 1.0.0-alpha.3
sneridagh Apr 16, 2026
83217ca
Release @plone/blocks 1.0.0-alpha.7
sneridagh Apr 16, 2026
b6c0074
Release @plone/layout 1.0.0-alpha.5
sneridagh Apr 16, 2026
5f94109
Release @plone/theming 1.0.0-alpha.4
sneridagh Apr 16, 2026
d458300
Release @plone/agave 1.0.0-alpha.4
sneridagh Apr 16, 2026
0310426
Release @plone/cmsui 1.0.0-alpha.2
sneridagh Apr 16, 2026
56cf380
Release @plone/publicui 1.0.0-alpha.2
sneridagh Apr 16, 2026
ea50da0
Release Seven 1.0.0-alpha.2
sneridagh Apr 16, 2026
e07944f
Unify TS config + Fix TS across the repo + CI check (#8127)
sneridagh Apr 20, 2026
652f868
Fixed title block placeholder and sync bugs (#8138)
sneridagh Apr 23, 2026
8df0e15
Fixed dependencies in several packages (#8150)
sneridagh Apr 27, 2026
92da837
[Seven] Added AGENTS.md files in the root and in every package (#8152)
pnicolli Apr 28, 2026
896b5a8
Cleanup a bit the house (#8157)
sneridagh Apr 28, 2026
b2d9957
Remove .codex folder from repo
sneridagh Apr 28, 2026
6b4f2b5
Fixed AGENTS.md mentions to TS check check-ts -> check:ts
sneridagh Apr 28, 2026
382c558
Added missing exports (#8160)
sneridagh Apr 29, 2026
0cf27f9
Backend for comments and suggestions (#8158)
sneridagh May 4, 2026
8679f18
Remove dangling file
sneridagh May 7, 2026
3d1bdac
Release @plone/types 3.0.0-alpha.0
sneridagh May 7, 2026
366e468
Release @plone/client 2.0.0-alpha.4
sneridagh May 7, 2026
c11fbf9
Release @plone/components 5.0.0-alpha.0
sneridagh May 7, 2026
fcf1f7a
Release @plone/registry 4.0.0-alpha.0
sneridagh May 7, 2026
65a0318
Release @plone/helpers 2.0.0-alpha.4
sneridagh May 7, 2026
a69b838
Release @plone/react-router 2.0.0-alpha.4
sneridagh May 7, 2026
276b2a1
Release @plone/plate 1.0.0-alpha.4
sneridagh May 7, 2026
fe8188c
Release @plone/blocks 1.0.0-alpha.8
sneridagh May 7, 2026
8c4997a
Release @plone/layout 1.0.0-alpha.6
sneridagh May 7, 2026
87caf6b
Release @plone/theming 1.0.0-alpha.5
sneridagh May 7, 2026
5f77a87
Release @plone/agave 1.0.0-alpha.5
sneridagh May 7, 2026
9d1b67b
Release @plone/cmsui 1.0.0-alpha.3
sneridagh May 7, 2026
74fa7f2
Release @plone/publicui 1.0.0-alpha.3
sneridagh May 7, 2026
0458717
Release Seven 1.0.0-alpha.3
sneridagh May 7, 2026
c19f78a
Improved prereleaser script
sneridagh May 7, 2026
c2b1a4e
Fixed import from repo in @plone/plate (#8183)
sneridagh May 7, 2026
647fe24
Release @plone/plate 1.0.0-alpha.5
sneridagh May 7, 2026
9a2cbce
[Seven] Style fields (#8175)
sneridagh May 8, 2026
7d0a7d5
Release @plone/types 3.0.0-alpha.1
sneridagh May 8, 2026
4ce27c0
Release @plone/helpers 2.0.0-alpha.5
sneridagh May 8, 2026
7bf060b
Release @plone/plate 1.0.0-alpha.6
sneridagh May 8, 2026
eaf7af8
Release @plone/blocks 1.0.0-alpha.9
sneridagh May 8, 2026
fe044fc
Release @plone/layout 1.0.0-alpha.7
sneridagh May 8, 2026
4f0aedc
Fixed toolbar button if a single option is shown (#8186)
sneridagh May 8, 2026
fdfea34
Release @plone/plate 1.0.0-alpha.7
sneridagh May 8, 2026
c265e84
[Seven] Make style fields first-class and preserve block width fallba…
sneridagh May 13, 2026
fe313f6
Make the import for the styleFields helper resilient and Volto-compat…
sneridagh May 13, 2026
516d78f
Release @plone/helpers 2.0.0-alpha.6
sneridagh May 13, 2026
38540d1
Release @plone/plate 1.0.0-alpha.8
sneridagh May 13, 2026
892bcb8
Release @plone/blocks 1.0.0-alpha.10
sneridagh May 13, 2026
c150133
Release @plone/layout 1.0.0-alpha.8
sneridagh May 13, 2026
2743936
Release Seven 1.0.0-alpha.4
sneridagh May 13, 2026
08227ca
[codex] Handle stale auth cookies on public requests (#8216)
sneridagh May 15, 2026
8a47359
Upgrade to storybook 10 (Vite 8) (#8225)
sneridagh May 17, 2026
1030471
fix 'Maximum update depth exceeded' errors on @@edit. (#8231)
frapell May 18, 2026
41bc90e
Keep block naming conventions as and .
frapell May 19, 2026
cf327ed
[Seven] New Quanta components Modal, Dialog and Form (#8240)
pnicolli May 20, 2026
85a35c7
[Seven] Fix the sidebar to take 100% vertical space (#8248)
frapell May 20, 2026
be04303
[Seven] Improved toolbar color transitions and added secondary color …
pnicolli May 20, 2026
bcf23c0
[Seven] Fixed toolbar edit and back button (#8249)
iFlameing May 21, 2026
c5a933d
[Seven] Fixed objectbrowser and Teaser block (#8260)
iFlameing May 21, 2026
cd84573
[Seven] Removed the native Plate Image block from the slash menu (#8233)
iFlameing May 21, 2026
f472227
[Seven] Added view for content type Link (#7534)
arybakov05 May 22, 2026
8d0f71b
[Seven] Added Component component (#8257)
arybakov05 May 22, 2026
5a5378d
[Seven] Added view for content type Event (#7529)
arybakov05 May 22, 2026
dcaa15f
[Seven] Add DialogTrigger component (#8270)
jnptk May 23, 2026
7284708
[Seven] Added link view redirects and handled redirects from the back…
pnicolli May 23, 2026
528b4d1
Refactored the `Content` type to allow TypeScript to narrow this type…
pnicolli May 24, 2026
04c6b8a
[Seven] Added link and button cross variants (#7379)
pnicolli May 24, 2026
55aa455
Fix Nick usage of babel/core, add bcrypt and node-gyp to the external…
sneridagh May 26, 2026
55de772
Integrate links with ObjectBrowser (#8246)
sneridagh May 31, 2026
a7a0501
`@plone/contents` for Seven (#6757)
sneridagh Jun 1, 2026
38a20f0
[Seven] Login layout implementation (#8271)
arybakov05 Jun 1, 2026
61418e2
Unify Makefile files across the packages (#8298)
ionlizarazu Jun 1, 2026
e6aee89
Recurrence widget (#7200)
sabrina-bongiovanni Jun 2, 2026
c830ad7
[Seven] Add `renderEmptyState` to `Table` component (#8308)
jnptk Jun 3, 2026
4d33dce
lint
sneridagh Jun 4, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .github/actions/node_env_setup/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Set up Node.js environment
description: 'Set up Node.js environment'

runs:
using: "composite"
Expand All @@ -25,6 +26,10 @@ runs:
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
shell: bash
run: make install

inputs:
node-version:
description: 'Node.js version'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/acceptance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ jobs:
matrix:
node-version: [24.x]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
with:
node-version: ${{ matrix.node-version }}

- uses: JarvusInnovations/background-action@v1
name: Start Servers - Volto and Plone
name: Start Servers - Plone 7 frontend and backend
with:
run: |
make ci-acceptance-backend-start &
Expand Down
12 changes: 1 addition & 11 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
towncrier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
# Fetch all history
fetch-depth: '0'
Expand All @@ -38,8 +38,6 @@ jobs:
- 'packages/helpers/**'
types:
- 'packages/types/**'
providers:
- 'packages/providers/**'
publicui:
- 'packages/publicui/**'
plate:
Expand Down Expand Up @@ -111,14 +109,6 @@ jobs:
env:
BASE_BRANCH: ${{ github.base_ref }}

- name: Providers changelog check
if: steps.filter.outputs.providers == 'true'
run: |
git fetch --no-tags origin seven
towncrier check --compare-with origin/seven --dir packages/providers
env:
BASE_BRANCH: ${{ github.base_ref }}

- name: Public UI changelog check
if: steps.filter.outputs.publicui == 'true'
run: |
Expand Down
46 changes: 33 additions & 13 deletions .github/workflows/code-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,43 @@ env:
node-version: 24.x

jobs:
typescript:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: TypeScript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ env.node-version }}

- name: Seven app TypeScript check
run: pnpm --filter seven exec init-loaders && pnpm --filter seven run typecheck

- name: Package TypeScript checks
run: |
pnpm --filter @plone/types run check:ts
pnpm --filter @plone/client run check:ts
pnpm --filter @plone/components run check:ts
pnpm --filter @plone/registry run check:ts
pnpm --filter @plone/blocks run check:ts
pnpm --filter @plone/cmsui run check:ts
pnpm --filter @plone/layout run check:ts
pnpm --filter @plone/plate run check:ts
pnpm --filter @plone/publicui run check:ts

prettier:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ env.node-version }}

- run: pnpm i

- name: Prettier check
run: pnpm prettier

Expand All @@ -26,14 +50,12 @@ jobs:
name: ESlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ env.node-version }}

- run: pnpm i

- name: Main ESlint check
run: pnpm lint

Expand All @@ -44,15 +66,13 @@ jobs:
strategy:
fail-fast: false
matrix:
name: ["@plone/components", "@plone/theming", "@plone/layout"]
name: ['@plone/components', '@plone/theming', '@plone/layout']
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ env.node-version }}

- run: pnpm i

- name: Stylelint check ${{ matrix.name }}
run: pnpm --filter ${{ matrix.name }} stylelint
4 changes: 2 additions & 2 deletions .github/workflows/cookieplone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ jobs:
matrix:
node-version: [24.x]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ matrix.node-version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
matrix:
python-version: ['3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
Expand Down
16 changes: 6 additions & 10 deletions .github/workflows/unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,14 @@ jobs:
- '@plone/registry'
node-version: [24.x]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ matrix.node-version }}

- run: pnpm i

- name: Run unit tests ${{ matrix.name }}
run: pnpm --filter ${{ matrix.name }} test
run: pnpm --filter seven exec init-loaders && pnpm --filter ${{ matrix.name }} test

client:
name: '@plone/client'
Expand All @@ -41,7 +39,7 @@ jobs:
matrix:
node-version: [24.x]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
with:
Expand Down Expand Up @@ -76,14 +74,12 @@ jobs:
matrix:
node-version: [24.x]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Node.js environment
uses: ./.github/actions/acceptance_tests_node_env_setup
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ matrix.node-version }}

- run: pnpm i

- run: make build-deps

- run: pnpm --filter seven test
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ build

# Other
.vscode
.codex
/cache
.yarn/
.DS_Store
Expand Down Expand Up @@ -65,6 +66,7 @@ public/critical.css
packages/volto/data
storybook-static/
/playwright
/racTailwind

# Documentation
_build/
Expand Down
93 changes: 93 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# AGENTS.md

This file applies to the entire monorepo root and all of its packages.
Each package also has its own `AGENTS.md` with more specific guidance — always prefer the package-level file when working inside a specific package.

## Repository Overview

This is a **pnpm monorepo** (`pnpm-workspace.yaml`) containing:

- `apps/seven` — the main Seven (Plone 7) application
- `packages/*` — shared libraries that make up the Seven stack and tooling

The package manager is **pnpm**. Do not use `npm` or `yarn`.

## Two Stacks in This Repo

### Seven (Plone 7) — the active stack

Every package except `volto` and `volto-slate` belongs to the **Seven** stack, an API-first, React-based frontend for Plone 7.
Seven is composed of focused packages that are assembled into `apps/seven`:

| Layer | Packages |
| -------------------------- | ----------------------------------------------------------------------------------- |
| App shell | `apps/seven` |
| Public UI (visitor-facing) | `@plone/publicui`, `@plone/layout`, `@plone/blocks` |
| CMS UI (editor-facing) | `@plone/cmsui`, `@plone/contents`, `@plone/plate`, `@plone/blocks`, `@plone/layout` |
| Shared infrastructure | `@plone/client`, `@plone/registry`, `@plone/react-router` |
| Utilities and types | `@plone/helpers`, `@plone/types` |
| Theming | `@plone/theming`, `@plone/agave`, `@plone/components` |
| Tooling | `@plone/tooling`, `@plone/scripts`, `tsconfig` |

### Volto (Plone 6) — reference only

`packages/volto` and `packages/volto-slate` are the stable Plone 6 frontend.
They are present **for reference only** during Seven development and will be deleted once they are no longer useful.
Do not make significant changes to these packages.

## Working in a Package

Always scope your commands to the package you are working in using pnpm's `--filter` flag:

```sh
pnpm --filter @plone/<package> test --run
pnpm --filter @plone/<package> build
pnpm --filter @plone/<package> check:ts
```

Each package has its own `AGENTS.md` describing its purpose, architecture, and the exact validation commands to run.

## Global Commands

Run these from the repo root when working across multiple packages or on the full app:

```sh
# Install dependencies
pnpm install

# Build all publishable packages (registry, client, components, react-router, helpers)
pnpm build:deps

# Lint the entire repo
pnpm lint

# Run all package tests
pnpm test:ci

# Format all TypeScript/JavaScript files
pnpm prettier:fix

# Lint and auto-fix CSS
pnpm stylelint:fix

# Run Playwright acceptance tests
pnpm acceptance-test

# Check typings
pnpm check:ts
```

## General Conventions

- **TypeScript** is the default for all new code. Avoid adding plain `.js` files to Seven packages.
- **Vitest** is the test runner across all Seven packages (not Jest).
- **Vite** is the bundler for application code; **tsup** is used for library packages.
- Keep changes **package-local** unless there is a clear cross-cutting reason.
- When adding a new package dependency, check whether it already exists in a sibling package or the workspace root before adding it.
- Do not commit secrets, credentials, or environment-specific values.

## Editing Rules

- Read the package-level `AGENTS.md` before touching code in any package.
- Prefer targeted, package-scoped validation over global runs when iterating.
- Do not modify `volto` or `volto-slate` unless explicitly instructed — they are reference code.
Loading
Loading