Skip to content

Memml Calendar 0.2.0

Choose a tag to compare

@jasonbyrne jasonbyrne released this 28 Aug 23:46
· 8 commits to main since this release
Release 0.2.0: UX, accessibility, and resilience improvements

Raise the minimum WordPress version to 6.6. The block editor bundle depends
on the react-jsx-runtime script handle, which core does not register before
6.6, so on the previously declared minimum the bundle never loaded and the
blocks had no editing interface at all. The wp-env smoke test now asserts
every dependency in build/index.asset.php is registered.

Visitor experience:

* Render every control as a link over the query parameters the server
  already understood, so the calendar works without JavaScript and views can
  be opened in a new tab. JavaScript still handles plain clicks in place.
* Preview blocks in the editor with the server-side renderer, wrapped in
  Disabled so preview links cannot navigate the editor away.
* Add a Maximum items block setting and shortcode `limit` property for lists.
  Month view is unaffected, since a grid with items missing would
  misrepresent the calendar.
* Mark today in month view, make the month grid keyboard reachable, add
  visible focus styles, and drop the opacity on cancelled events that put
  their text below the contrast minimum.
* Stop theme global styles from restyling the controls as body links, which
  had removed the primary button's contrast against its accent fill.
* Keep a single card at card width rather than stretching it full width.

Administration:

* Add a Clear cached data button, the feed URLs the site reads, and shortcode
  reference to the settings screen, plus a Settings link on the Plugins
  screen and a setup notice until a key is saved.
* Keep the saved organization key when an invalid one is submitted, instead
  of discarding it and breaking every calendar on the site.

Resilience:

* Back off after a failed Memml request rather than retrying on every page
  view, serving the last known-good response meanwhile. A 404 backs off too
  but never serves stale data, so Test connection still distinguishes a bad
  key.
* Memoize feed results per request so several blocks on a page share one
  lookup.
* Remove settings and cached feed data on uninstall.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>