Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eleventyignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ mockup/tests
mockup/node_modules/bootstrap/docs/
mockup/node_modules/bootstrap/grunt/
mockup/node_modules/bootstrap/js/tests/
src/pat/filemanager/pat-filemanager-spec.md
33 changes: 4 additions & 29 deletions .github/workflows/coredev-robot-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,21 +103,11 @@ jobs:
cache: pip
cache-dependency-path: tests/requirements.txt

- name: Mark plone.staticresources as source checkout for mxdev
working-directory: tests
- name: Mark plone.staticresources as source checkout
run: |
python3 -c "
import configparser
cfg = configparser.ConfigParser()
cfg.read('mxcheckouts.ini')
if not cfg.has_section('plone.staticresources'):
cfg.add_section('plone.staticresources')
cfg.set('plone.staticresources', 'use', 'true')
with open('mxcheckouts.ini', 'w') as f:
cfg.write(f)
"

- name: make install (checks out plone.staticresources via mxdev)
echo " plone.staticresources" >> tests/checkouts.cfg

- name: Install (checks out plone.staticresources via mxdev)
working-directory: tests
run: make install

Expand All @@ -130,21 +120,6 @@ jobs:
working-directory: tests
run: .venv/bin/rfbrowser init chromium

# ── 5. Coredev robot tests ───────────────────────────────────────────────
- name: Mark plone.staticresources as source checkout for mxdev (again - this somehow gets lost?)
working-directory: tests
run: |
python3 -c "
import configparser
cfg = configparser.ConfigParser()
cfg.read('mxcheckouts.ini')
if not cfg.has_section('plone.staticresources'):
cfg.add_section('plone.staticresources')
cfg.set('plone.staticresources', 'use', 'true')
with open('mxcheckouts.ini', 'w') as f:
cfg.write(f)
"

- name: Run Coredev robot tests
working-directory: tests
run: ROBOTSUITE_PREFIX=ONLYROBOT TEST_ARGS="--all -t ONLYROBOT" make test
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
!devsrc/.gitkeep
.claude/
.env
.vscode
/docs/external/pat-*
Expand All @@ -15,3 +16,4 @@ docs/mockup/patterns
node_modules/
stats.json
/_site/*
/stamp-yarn
24 changes: 24 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@



## [5.7.0-alpha.0](https://github.com/plone/mockup/compare/5.6.6...5.7.0-alpha.0) (2026-06-08)

### Features


* **pat-filemanager:** add Svelte 5 folder-contents pattern ([1e3a5d0](https://github.com/plone/mockup/commit/1e3a5d0085085506cc4bded6996ed3ab54fb5c5e))

A plone.restapi-only rewrite of pat-structure's folder contents, built on
Svelte 5 runes. Table and photo-grid views; selection, clipboard
(cut/copy/paste), delete with link-integrity check, drag-and-drop
reordering and drag-into-folder; multi-upload via @tus-upload — including
dropping a whole folder to recreate its tree behind a preview/approval
step; in-app folder browsing with breadcrumbs and live header sync; column
configuration, free-text and advanced querystring filtering; batch actions
(workflow, tags, properties, rename); cookie persistence, i18n and
accessibility. No Backbone, underscore, DataTables or custom Plone views.

## [5.6.6](https://github.com/plone/mockup/compare/5.6.5...5.6.6) (2026-06-08)

### Bug Fixes


* **pat querystring:** fix issue with the new select2 native events where `e.val` is undefined ([cb83396](https://github.com/plone/mockup/commit/cb833967047a1467360072f657eb9900aa7422ac))

## [5.6.5](https://github.com/plone/mockup/compare/5.6.4...5.6.5) (2026-06-08)

### Features
Expand Down
16 changes: 15 additions & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
module.exports = require("@patternslib/dev/babel.config.js");
const base = require("@patternslib/dev/babel.config.js");

// Extend the Patternslib base babel config with TypeScript support.
// preset-typescript only acts on .ts/.tsx files (by extension), so plain .js
// is unaffected. This covers plain .ts modules in webpack and all .ts files
// under babel-jest. Runes-in-module files (.svelte.ts) are handled separately
// in webpack/jest, not here.
module.exports = (api) => {
const config = base(api);
config.presets = [
...(config.presets || []),
["@babel/preset-typescript", { allowDeclareFields: true }],
];
return config;
};
5 changes: 5 additions & 0 deletions claude.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# important rules

- use svelte 5 runes and $state/$derived patterns, not stores!
- use this for testing: http://localhost:8080/Plone12/ use admin:admin
- use svelte animations
12 changes: 10 additions & 2 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,16 @@ config.transformIgnorePatterns = [
"/node_modules/.pnpm/(?!@patternslib)(?!@plone)(?!preact)(?!screenfull)(?!sinon)(?!bootstrap)(?!datatable)(?!svelte)(?!esm-env)",
];

// add svelte-jester
config.transform["^.+\\.svelte$"] = "svelte-jester";
// Transforms. Order matters: Jest uses the first matching pattern, so the
// runes-in-module rule (.svelte.ts / .svelte.js) must precede the generic
// babel rule (which would otherwise also match `.svelte.ts`).
config.transform = {
"^.+\\.svelte\\.(js|ts)$": path.resolve(__dirname, "./tools/jest-svelte-module.cjs"),
// svelte-jester refuses to run in Jest's CJS mode, so use a custom client
// compile + ESM->CJS transformer (see the tool for the rationale).
"^.+\\.svelte$": path.resolve(__dirname, "./tools/jest-svelte-component.cjs"),
...config.transform,
};

// console.log(JSON.stringify(config, null, 4));
module.exports = config;
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@plone/mockup",
"version": "5.6.5",
"version": "5.7.0-alpha.0",
"description": "A collection of client side patterns for faster and easier web development",
"license": "BSD-3-Clause",
"main": "./src/patterns.js",
Expand Down Expand Up @@ -52,6 +52,7 @@
"@11ty/eleventy": "^3.1.6",
"@11ty/eleventy-navigation": "^1.0.5",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
"@babel/preset-typescript": "^7.29.7",
"@patternslib/dev": "^4.0.0",
"@testing-library/jest-dom": "^6.9.1",
"@types/sinon": "^10.0.20",
Expand All @@ -62,8 +63,10 @@
"svelte": "^5.56.3",
"svelte-jester": "^5.0.0",
"svelte-loader": "^3.2.4",
"svelte-preprocess": "^6.0.5",
"svelte-scrollto": "^0.2.0",
"svg-inline-loader": "^0.8.2"
"svg-inline-loader": "^0.8.2",
"typescript": "^6.0.3"
},
"resolutions": {
"@patternslib/patternslib": "9.10.6",
Expand Down
Loading
Loading