Commit Graph
24 Commits
Author SHA1 Message Date
Keith Solomon 3a2d01564e 📄 docs: Add readme, update author name 2026-08-06 18:33:35 -05:00
Keith Solomon b738d7d6da fix: use linear interpolation for intensity so intensity=0 is filter:none 2026-08-06 15:51:41 -05:00
Keith Solomon 4572abfcd1 test: add SCSS snapshot test for intensity math shape 2026-08-06 15:41:36 -05:00
Keith Solomon b8961ad1ce docs: add intensity math implementation plan 2026-08-06 15:36:06 -05:00
Keith Solomon 48f83c82b3 docs: add intensity math design spec 2026-08-06 15:31:03 -05:00
Keith Solomon 9ea16bf650 fix: mount filter controls in sidebar via InspectorControls
The FilterPanel was being mounted as a free-floating sibling of the block via an `editor.BlockEdit` HOC. In WordPress, a `PanelBody` only renders in the sidebar when wrapped in `<InspectorControls>`; without that wrapper, the panel renders wherever it lands in the React tree, which here was the editor canvas.

Move the InspectorControls mount into the Edit component itself (the idiomatic place for an own block to expose sidebar controls), and drop the `editor.BlockEdit` filter from `src/index.js`. Add an Edit test that pins the contract: the filter panel must mount inside InspectorControls and never float outside it. Add a manual jest mock for @wordpress/block-editor so the Edit test can render in an environment without WordPress globals.
2026-08-06 15:21:25 -05:00
Keith Solomon 860a192aff fix: return createBlock instances from block transforms and fix filter CSS selectors
Two related bug fixes:

- Transforms: `type: 'block'` callbacks must return a block instance created by createBlock; the previous code returned raw attribute objects which WordPress silently ignored, so the toolbar block-switcher transforms never fired. Update tests to assert on `result.name` and `result.attributes`. Add a manual jest mock for @wordpress/blocks since the package is provided at runtime via dependency-extraction-webpack-plugin.

- Filter CSS: the SCSS used a descendant combinator (`.wp-block-ksolo-image-filter .has-filter-warm img`) but the JSX puts both classes on the same element, so the filter rule never matched and picking a filter had no visual effect on the editor or the front end. Target the inner <img> by its stable class pair (`.ksolo-image-filter-img.has-filter-<slug>`) instead. Add a regression test that reads the compiled CSS and asserts the selectors are present for every preset.
2026-08-06 15:19:50 -05:00
Keith Solomon e55a747adc feat: mirror retuned cssFilter values in style.scss 2026-08-06 15:03:53 -05:00
Keith Solomon 0837ecc569 feat: retune warm, cool, vivid, fade cssFilter values 2026-08-06 14:57:33 -05:00
Keith Solomon 24a3935e1c test: add preset/css lockstep regression test 2026-08-06 14:50:43 -05:00
Keith Solomon 38c2ecfa01 docs: add filter retune implementation plan 2026-08-06 14:42:52 -05:00
Keith Solomon b774a83dfc docs: add filter retune design spec 2026-08-06 14:35:47 -05:00
Keith Solomon bf3ee12e51 Rename plugin to SoloFilters Image Enhancements to avoid slug collision 2026-08-05 18:37:07 -05:00
Keith Solomon c2843f724a fix: retune SCSS intensity formulas to match canonical cssFilter at full intensity 2026-08-05 17:25:55 -05:00
Keith Solomon a075523287 Add Playwright e2e smoke test and accessibility checklist 2026-08-05 17:08:18 -05:00
Keith Solomon 151b09ba90 Add transforms to and from core Image block 2026-08-05 16:56:27 -05:00
Keith Solomon d21d3c9ac2 Wire up the Filtered Image block end-to-end 2026-08-05 16:48:03 -05:00
Keith Solomon c2a0ae2d8c Add inspector panel with preset grid and intensity slider 2026-08-05 16:37:53 -05:00
Keith Solomon 2c73f8472f Add filter and editor styles for the Filtered Image block 2026-08-05 16:11:24 -05:00
Keith Solomon c485816135 Add presets.js as single source of truth for filter definitions 2026-08-05 16:05:13 -05:00
Keith Solomon dfd2bbe3a3 Fix jest.config.js path to match wp-scripts 27 export shape 2026-08-05 16:01:39 -05:00
Keith Solomon 4881dcabf0 Bootstrap image-filters plugin with wp-scripts and jest 2026-08-05 15:51:43 -05:00
Keith Solomon dbe5ef9c4a Add implementation plan for Filtered Image block 2026-08-05 12:14:43 -05:00
Keith Solomon c7b2c38eb9 Add design spec for Filtered Image block plugin 2026-08-05 12:09:36 -05:00