Add: Team Member CPT (apbl_team_member) — title, editor, thumbnail, menu-order; position and social profiles meta; REST-enabled.
Add: Department taxonomy (apbl_department) — hierarchical, attached to both team members and WordPress users; REST-enabled.
Add: AuthorDataProvider service — normalises WP Users and Team Members into a shared author shape; result cache cleared on profile update and team-member save.
Add: 6 new user meta fields — department, skills, location, phone, availability, website label; all REST-exposed and shown on the WP profile screen.
Add: Four shortcodes — [apbl_profile], [apbl_grid], [apbl_list], [apbl_carousel] — all supporting source, style, and display toggle attributes.
Add: Author Profile classic widget — wraps [apbl_profile] with author picker, style selector, and show-socials/show-bio toggles.
Add: WordPress Playground blueprint for live preview on WordPress.org.
1.0.4
Fix: blocks render blank on frontend when no author selected (error div was leaking to visitors).
Fix: carousel broken on classic themes — jquery declared as dependency so Slick initialises correctly.
Fix: production zip was missing vendor/autoload.php on fresh installs from WordPress.org.
Fix: CSS color/length injection — all color and length attributes now pass through sanitization helpers.
Fix: dead duplicate –author-custom-var-1/2 CSS variable block removed.
Fix: template arbitrary file inclusion — get_template() now validates path is within plugin, active theme, or child theme.
Fix: raw $_POST no longer passed as argument to do_action(‘author_profile_blocks_save_profile_fields’).
Fix: extract() in get_template() replaced with explicit foreach loop for wp.org review compliance.
Fix: registration date displayed in wrong timezone — now uses mysql2date() for correct UTC to local conversion.
Update: tested up to WordPress 6.9.
1.0.3
Refactor: split AuthorBlockBase god-class into 7 focused traits under includes/Blocks/Concerns/.
Refactor: promoted 5 inspector components to shared src/supports/js/components/inspector/.
Refactor: extracted loadGoogleFont into shared useGoogleFont hook.