Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
8080ef3
chore(deps): Bump @gouvfr/dsfr from 1.15.2 to 1.15.3
dependabot[bot] Sep 18, 2026
a4e32e8
chore(sync): carry beta back into development
github-actions[bot] Sep 22, 2026
728d1ce
Merge pull request #641 from ConductionNL/sync/beta-to-development-20…
rubenvdlinde Sep 22, 2026
71a8f06
chore(deps-dev): Bump twig/twig from 3.28.0 to 3.29.0
dependabot[bot] Sep 22, 2026
fe2f145
chore(deps-dev): Bump nextcloud/ocp from 34.0.4 to 35.0.0
dependabot[bot] Sep 22, 2026
fe2e6b2
chore(deps-dev): Bump vitest from 5.0.0 to 5.0.1
dependabot[bot] Sep 22, 2026
1515d27
chore(deps-dev): Bump @vitest/coverage-v8 from 5.0.0 to 5.0.1
dependabot[bot] Sep 22, 2026
c7523e8
chore(deps-dev): Bump @conduction/nextcloud-vue from 2.52.0 to 2.55.1
dependabot[bot] Sep 22, 2026
af5953e
chore(deps-dev): Bump jsdom from 30.0.1 to 30.1.0
dependabot[bot] Sep 22, 2026
74b6236
Merge branch 'development' into fix/frontend-changes
remko48 Sep 23, 2026
1993b28
feat(tokens): add the component token mapping and its generator
remko48 Sep 23, 2026
f4028a0
feat(tokens): paint the nldesign layers from the component tokens
remko48 Sep 23, 2026
7bcb7e6
feat(tokens): serve the component layer and gate it behind a setting
remko48 Sep 23, 2026
7292fbb
feat(settings): group the editor by component and lock the driven rows
remko48 Sep 23, 2026
ca04a85
fix(playground): point every chip at its own component token
remko48 Sep 23, 2026
bd9d1ba
test(tokens): assert every chip token reaches the component it names
remko48 Sep 23, 2026
a4732c3
docs(openspec): record the component-scoped tokens change
remko48 Sep 23, 2026
f27344b
fix(audit): scroll the audit table sideways at every width
remko48 Sep 23, 2026
1e2c3d9
feat(compat): declare support for Nextcloud 35
remko48 Sep 23, 2026
bc28700
chore(tokens): regenerate the dark palettes that drifted from their s…
remko48 Sep 23, 2026
ad3b83e
style: run prettier over the three files it rewrites
remko48 Sep 23, 2026
bcb3d7e
fix(tokens): declare the global key the component layer carries
remko48 Sep 23, 2026
c30f78f
refactor(settings): read the panel's flags through one helper
remko48 Sep 23, 2026
65946d2
fix(tokens): emit component-scopes as a set layer, not beside them
remko48 Sep 23, 2026
b68d545
ci: run a stable35 leg for the version info.xml now declares
remko48 Sep 23, 2026
3acc7c3
docs(ci): say where MAX_SUPPORTED_NC actually lives
remko48 Sep 23, 2026
7eb0bd2
test: let the ISimpleFolder fakes load on Nextcloud 35
remko48 Sep 23, 2026
80df803
Merge pull request #653 from ConductionNL/fix/nc35-simplefolder-fakes
remko48 Sep 23, 2026
00c7030
Merge remote-tracking branch 'origin/development' into fix/frontend-c…
remko48 Sep 23, 2026
e1250c1
fix(settings): call the flag helper with named parameters
remko48 Sep 23, 2026
cbfebac
fix(playground): hold the search button still under reduced motion
remko48 Sep 23, 2026
ca939bc
test(tokens): cover the code the component layer adds
remko48 Sep 23, 2026
7ce453e
Merge pull request #652 from ConductionNL/fix/frontend-changes
remko48 Sep 23, 2026
cf1ce76
Merge branch 'development' into dependabot/composer/development/nextc…
remko48 Sep 23, 2026
12305be
Merge branch 'development' into dependabot/composer/development/twig/…
remko48 Sep 23, 2026
f8a7196
Merge branch 'development' into dependabot/npm_and_yarn/development/c…
remko48 Sep 23, 2026
8f414b1
Merge branch 'development' into dependabot/npm_and_yarn/development/g…
remko48 Sep 23, 2026
062b4eb
Merge branch 'development' into dependabot/npm_and_yarn/development/j…
remko48 Sep 23, 2026
60ab78a
Merge branch 'development' into dependabot/npm_and_yarn/development/v…
remko48 Sep 23, 2026
a54ab25
Merge branch 'development' into dependabot/npm_and_yarn/development/v…
remko48 Sep 23, 2026
f439b28
Merge pull request #645 from ConductionNL/dependabot/composer/develop…
remko48 Sep 23, 2026
6c0c372
Merge pull request #644 from ConductionNL/dependabot/composer/develop…
remko48 Sep 23, 2026
cce76f5
Merge pull request #608 from ConductionNL/dependabot/npm_and_yarn/dev…
remko48 Sep 23, 2026
459f9a5
Merge pull request #649 from ConductionNL/dependabot/npm_and_yarn/dev…
remko48 Sep 23, 2026
97e8ccb
Merge pull request #650 from ConductionNL/dependabot/npm_and_yarn/dev…
remko48 Sep 23, 2026
62d2935
Merge pull request #646 from ConductionNL/dependabot/npm_and_yarn/dev…
remko48 Sep 23, 2026
bdeca51
Merge pull request #647 from ConductionNL/dependabot/npm_and_yarn/dev…
remko48 Sep 23, 2026
c13f0c1
Merge remote-tracking branch 'origin/development' into fix/frontend-c…
remko48 Sep 24, 2026
fa7117c
chore(deps-dev): Bump prettier from 3.9.6 to 3.9.8 (#651)
dependabot[bot] Sep 25, 2026
352868e
fix(tokens): capture the globals on body, not :root
remko48 Sep 25, 2026
76efc80
feat(settings): save the running theme as a theme
remko48 Sep 25, 2026
0e356fd
docs(parity): start the capability matrix, systems, areas and 154 unr…
rubenvdlinde Sep 26, 2026
8c5d30d
docs(parity): first reader packs folded in (wip)
rubenvdlinde Sep 26, 2026
c80550e
docs(parity): reader-b pack folded in, two safety rows reworded to wh…
rubenvdlinde Sep 26, 2026
3ffae5e
docs(parity): reader-a pack folded in (wip)
rubenvdlinde Sep 26, 2026
992ca04
docs(parity): reader-d pack folded in (wip)
rubenvdlinde Sep 26, 2026
4e2bcc0
docs(parity): reader-c pack folded in, all code readings in (wip)
rubenvdlinde Sep 26, 2026
1398f51
docs(parity): microsoft 365 and liferay columns folded in, docs-only …
rubenvdlinde Sep 26, 2026
6202b4e
docs(parity): nextcloud theming column folded in, docs-only from sour…
rubenvdlinde Sep 26, 2026
9341ff5
docs(parity): capability matrix for thematiq, 154 rows against five c…
rubenvdlinde Sep 26, 2026
02dd87c
Merge pull request #658 from ConductionNL/feat/parity-capability-matrix
rubenvdlinde Sep 26, 2026
a964f70
fix(parity): rate thematiq's not-checked competitor cells unknown unl…
rubenvdlinde Sep 26, 2026
45935e0
Merge pull request #667 from ConductionNL/chore/parity-thematiq-not-c…
rubenvdlinde Sep 26, 2026
138fa42
docs(parity): nextcloud-theming and opendesk re-read from source, sou…
rubenvdlinde Sep 26, 2026
92d9311
docs(parity): nextcloud-theming rated on the mined rows (wip)
rubenvdlinde Sep 26, 2026
9959296
docs(parity): tokens-studio re-read from source at 2.12.1, its source…
rubenvdlinde Sep 26, 2026
fa1e3ce
docs(parity): ninth tokens-studio mined row, theme switching without …
rubenvdlinde Sep 26, 2026
6b595e9
docs(parity): opendesk and nextcloud-theming rated on the mined rows …
rubenvdlinde Sep 26, 2026
89c9e64
docs(parity): m365-branding re-read from public docs, its sources obj…
rubenvdlinde Sep 26, 2026
3420002
docs(parity): the eight m365-mined rows rated for nextcloud-theming, …
rubenvdlinde Sep 26, 2026
eeac943
docs(parity): liferay-dxp re-read from public docs, its sources objec…
rubenvdlinde Sep 26, 2026
fd9e662
Merge pull request #669 from ConductionNL/parity/wave5-source-reads
rubenvdlinde Sep 26, 2026
b4e7568
chore(deps): move @conduction/nextcloud-vue to 2.57.1 (Dexie loads on…
rubenvdlinde Sep 27, 2026
3f4c100
docs(openspec): OpenSpec pass part 1, 12 changes for 14 gap rows, dec…
rubenvdlinde Sep 27, 2026
fd992ea
docs(openspec): OpenSpec pass part 2, 5 authoring changes for 8 gap r…
rubenvdlinde Sep 27, 2026
551954e
docs(parity): corrections round 8, 4 rows re-read against their issue…
rubenvdlinde Sep 28, 2026
e7df182
fix(overrides): refuse a save that would drop tokens, and keep the fi…
rubenvdlinde Sep 28, 2026
19e4c49
fix(import): apply the sRGB transfer function to srgb-linear colours …
rubenvdlinde Sep 28, 2026
a85fc76
fix(contrast): measure translucent colours as they render, and keep a…
rubenvdlinde Sep 28, 2026
dc4d911
fix(theme): time the theme's transitions with the names the token edi…
rubenvdlinde Sep 28, 2026
64a0918
fix(overrides): give brand colour overrides the dark scopes, so every…
rubenvdlinde Sep 28, 2026
a59d207
fix(overrides): give a set on no design system an overrides file of i…
remko48 Sep 29, 2026
48a364e
feat(tokens): read and write r, g, b triplets for the -rgb tokens
remko48 Sep 29, 2026
5a9b18c
chore(tokens): name the stock set "Nextcloud (Base)"
remko48 Sep 29, 2026
8da9f2b
fix(tokens): make every component token reach what Nextcloud paints
remko48 Sep 29, 2026
d548f89
feat(themes): keep Nextcloud's branding with a theme when it is saved
remko48 Sep 29, 2026
44448ae
feat(editor): make the token editor and playground show and keep what…
remko48 Sep 29, 2026
6eebae2
Merge remote-tracking branch 'origin/development' into fix/frontend-c…
remko48 Sep 29, 2026
91bd26f
style: format frontend sources with prettier
remko48 Sep 29, 2026
34b5671
fix(l10n): add the new editor and playground strings to en.json
remko48 Sep 29, 2026
d246ab5
fix(css): stop emitting duplicate selectors and empty rules in the st…
remko48 Sep 29, 2026
7e98f9d
test(themes): cover the per-set overrides file and the branding capture
remko48 Sep 29, 2026
68e4329
chore(phpstan): regenerate the baseline for the branding-capture calls
remko48 Sep 29, 2026
57a25e7
refactor(themes): split upload, applyColors and getAvailableTokenSets…
remko48 Sep 29, 2026
3102dc6
docs(themes): link the branding capture methods to the theming-sync spec
remko48 Sep 29, 2026
20ca4d9
fix(a11y): mark the preview table's header cells as column headers
remko48 Sep 29, 2026
74a61d7
fix(gates): add @spec tags to the branding capture service, scope the…
remko48 Sep 29, 2026
2ddad41
Merge pull request #707 from ConductionNL/fix/frontend-changes
remko48 Sep 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
  •  
  •  
  •  
20 changes: 13 additions & 7 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ jobs:
# entirely on the version openregister cannot load.
#
# EVERY MAJOR IN THE DECLARED RANGE, NOT JUST ITS ENDS. appinfo/info.xml declares
# <nextcloud min-version="32" max-version="34"/>, and
# <nextcloud min-version="32" max-version="35"/>, and
# tests/Unit/ClaimAccuracyTest::testDeclaredNextcloudRangeMatchesTheTestedMatrix
# asserts that the lowest ref here EQUALS that floor. A matrix of stable34
# alone therefore advertises 32 and 33 to the app store while exercising
Expand All @@ -187,14 +187,20 @@ jobs:
# in the LOOSER direction, which this fleet does not take. The floor is still
# 32, so ClaimAccuracyTest's lowest-ref-equals-floor assertion is unaffected.
#
# stable34 is FIRST deliberately. Playwright is the job that reads [0], and
# stable35 is FIRST deliberately, and moved there when max-version rose to
# 35. Playwright is the job that reads [0], and
# tests/e2e/spec-coverage/selector-liveness.spec.ts is a cross-version
# stylesheet audit whose SINCE deferrals expire only once the survey
# reaches the newest supported major (MAX_SUPPORTED_NC). Surveying 32 would
# defer the NC33+ header selectors indefinitely; surveying 34 forces them
# to be proven live — which is how the eight dead NC 32/33-only selectors
# now recorded in that file's ALLOWED list were found.
nextcloud-test-refs: '["stable34", "stable32", "stable33"]'
# reaches the newest supported major (MAX_SUPPORTED_NC, a constant in that
# spec file that mirrors info.xml BY HAND — it still reads 34, so raising
# it is a separate decision: it expires that file's SINCE deferrals).
# Surveying 32 would defer the NC33+ header selectors
# indefinitely; surveying the newest major forces them to be proven live —
# which is how the eight dead NC 32/33-only selectors now recorded in that
# file's ALLOWED list were found. Leaving stable34 in front of a declared
# 35 would put the survey one major behind the claim and start that drift
# over again.
nextcloud-test-refs: '["stable35", "stable32", "stable33", "stable34"]'
# These three were `false`, and that is worse than it sounds. The shared
# workflow builds one matrix leg per tool unconditionally; a disabled leg
# prints "<tool> is disabled — skipping." and `exit 0`. The job therefore
Expand Down
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,17 @@
# boot, so it must never be committed (a stray test value here restyles the
# whole instance the moment the app is activated).
/css/custom-overrides.css
# The same, per set, for every set on no design system: the stock Nextcloud
# theme (custom-overrides-nextcloud.css) and the themes saved off it. Only that
# set loads its file, so emptying the stock one (the reset) gives stock back.
/css/custom-overrides-*.css

# Runtime theme state — Nextcloud's own logos, favicon and background image,
# copied into a theme when it is saved from the editor (BrandingCaptureService)
# so applying the theme brings them back. They are an admin's uploads on one
# instance, never part of the app.
/img/logos/*-captured-*
/img/backgrounds/*-captured-*

# Runtime theme state — written by the freeform custom-CSS editor at runtime
# (CustomCssService::write(), atomic temp-file + rename). Unlike
Expand Down
7 changes: 7 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,10 @@ scripts/sources/
# file — so the validation tests have something to reject. Formatting them
# would remove the very defect under test.
tests/integration/fixtures/

# Same contract again: both emitted by scripts/generate-component-scopes.mjs
# from scripts/mapping/component-tokens.json and byte-compared against the
# committed copies by `npm run test:component-scopes`. Prettier would rewrap
# the var() fallback chains and fail that check on a file nobody edited.
css/component-scopes.css
css/primary-lock.css
2 changes: 2 additions & 0 deletions appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
['name' => 'settings#getTokenSet', 'url' => '/settings/tokenset', 'verb' => 'GET'],
['name' => 'settings#setSloganSetting', 'url' => '/settings/slogan', 'verb' => 'POST'],
['name' => 'settings#setMenuLabelsSetting', 'url' => '/settings/menulabels', 'verb' => 'POST'],
['name' => 'settings#setPrimaryDrivesComponentsSetting', 'url' => '/settings/primary-drives-components', 'verb' => 'POST'],
['name' => 'settings#setSaveConfirmSettings', 'url' => '/settings/save-confirmations', 'verb' => 'POST'],
['name' => 'settings#getThemingValues', 'url' => '/settings/theming', 'verb' => 'GET'],
['name' => 'settings#updateThemingValues', 'url' => '/settings/theming', 'verb' => 'POST'],
// Resetting core theming to stock deliberately has NO route of its own:
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"conduction/hydra-gates": "^1.8.2",
"cyclonedx/cyclonedx-php-composer": "^6.2",
"edgedesign/phpqa": "^1.27",
"nextcloud/ocp": "^34.0",
"nextcloud/ocp": "^35.0",
"phpcsstandards/phpcsextra": "^1.4",
"phpmd/phpmd": "^2.15",
"phpmetrics/phpmetrics": "^2.8",
Expand Down
Loading
Loading