Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
013dc64
feat(pat filemanager): add Svelte-based filemanager pattern
MrTango May 27, 2026
9f8d06b
maint(pat filemanager): add filemanager spec and project notes
MrTango May 27, 2026
7708b62
feat(pat filemanager): persist batch size and columns in a cookie
MrTango May 27, 2026
054ef69
feat(pat filemanager): animate row and column reordering with flip
MrTango May 27, 2026
671a64b
maint(pat filemanager): document flip animations and cookie persistence
MrTango May 27, 2026
71fa59c
feat(pat filemanager): select rows by click for multi-item drag
MrTango May 28, 2026
46648f7
feat(pat filemanager): merge upload progress into the status block
MrTango May 29, 2026
8272900
feat(pat filemanager): switchable table and grid views
MrTango May 29, 2026
de2fdb4
feat(pat filemanager): batch-action host as a native <dialog>
MrTango May 29, 2026
1967804
feat(pat filemanager): column settings as a 3-dots header icon
MrTango May 29, 2026
51dec13
feat(pat filemanager): advanced querystring filter builder
MrTango May 29, 2026
f7d5eb3
feat(pat filemanager): animated reorder, multi-item drag, grid select…
MrTango May 29, 2026
8ade7a6
feat(pat filemanager): icon action toolbar, confirm dialog, filter la…
MrTango May 29, 2026
5e5ed55
feat(pat filemanager): join search and advanced filter into one input…
MrTango May 30, 2026
d65c2d3
maint(pat filemanager): solid red delete action button with white icon
MrTango May 30, 2026
eddf2a5
feat(pat filemanager): reorder table columns by dragging headers
MrTango May 30, 2026
6a6f37b
feat(pat filemanager): progress reporting and progress dialog for bat…
MrTango May 30, 2026
bbb5647
feat(pat filemanager): drag and upload items into the parent folder
MrTango May 30, 2026
5af54ad
fix(pat filemanager): reorder folders and move into folders via drag …
MrTango May 30, 2026
29f9c30
feat(pat filemanager): scroll to top when browsing to another folder
MrTango May 30, 2026
87cea6d
maint(pat filemanager): document drop-zone move-into, move-into-paren…
MrTango May 30, 2026
c04ad10
feat(pat filemanager): move breadcrumbs below the toolbar and scope n…
MrTango May 30, 2026
c4efb6a
feat(pat filemanager): add an image-size slider to the grid view
MrTango May 30, 2026
3e3dec1
feat(pat filemanager): improve grid card interaction (reorder marker,…
MrTango May 30, 2026
5ec5f50
maint: ignore local .claude agent config directory
MrTango May 30, 2026
cfd4191
feat(pat filemanager): use sortablejs for drag-and-drop in table and …
MrTango May 30, 2026
70fccc1
maint(pat filemanager): give the select-all control a border like the…
MrTango May 30, 2026
11b84dd
feat(pat filemanager): icon pager and segmented batch-size buttons
MrTango May 30, 2026
1de4a42
feat(pat filemanager): skeleton placeholders while loading to avoid l…
MrTango May 30, 2026
66c0df3
fix(pat filemanager): reserve icon size to prevent layout shift on load
MrTango May 30, 2026
12e0ea0
feat(pat filemanager): keyboard move-mode for grid cards
MrTango May 30, 2026
72e919a
fix(pat filemanager): keyboard move-mode stalled after a step or two
MrTango May 30, 2026
f70d98b
maint(pat filemanager): remove keyboard move-mode for grid cards
MrTango May 30, 2026
fe58653
fix(pat filemanager): implement rearrange functionality
petschki May 31, 2026
208d6f8
fix eslint
petschki May 31, 2026
40036b2
fix(pat filemanager): linkintegrity implementation, icon and UI polis…
petschki May 31, 2026
b62d7cc
update .eleventyignore
petschki May 31, 2026
de8f0af
fix(pat filemanager): add exclude_from_navigation information.
petschki May 31, 2026
7e79f09
fix(pat filemanager): grid view max 2columns.
petschki May 31, 2026
7946f98
docs(pat filemanager): document linkintegrity and rearrange in spec
petschki Jun 1, 2026
fc72849
feat(pat filemanager): drop a folder to recreate it and upload its co…
petschki Jun 1, 2026
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
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
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;
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
"@11ty/eleventy": "^3.1.5",
"@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 @@ -60,8 +61,10 @@
"svelte": "^5.55.7",
"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.4",
Expand Down
Loading
Loading