= 1.2.20 =
* PHP 8.5 compatibility: removed every runtime deprecation and warning raised by the theme
* Verified on WordPress 7.0.2 / PHP 8.5: zero PHP notices across all templates, the customizer, the welcome screen and the block editor
* Verified alongside the Shapely Companion plugin (1.2.10): homepage widget sections, parallax, features, call-to-action and contact all render with zero PHP notices
* Replaced the Grunt build with plain npm scripts (tools/*.mjs): eliminates all 39 npm audit findings (1 critical, 24 high), which came entirely from grunt-contrib-imagemin and grunt-contrib-compress
* Replaced JSHint and the deprecated JSCS with ESLint 10; added Stylelint 17 for CSS
* Fixed the release zip shipping developer files: CLAUDE.md, .scss sources, README.md, tsconfig.json, webpack.config.js and a nested package.json were all being published to users
* Fixed image optimisation never running: the Grunt task was pointed at assets/img/, which does not exist (the images are in assets/images/)
* languages/shapely.pot is now generated with WP-CLI and filtered to the shapely text domain, dropping 83 epsilon-framework strings that could never be translated through it and picking up 19 theme strings the old task missed
* Replaced the dead Travis CI config with GitHub Actions covering PHP 7.4 through 8.5
* package-lock.json and phpcs.ruleset.xml are now tracked instead of gitignored
* Fixed the "Requires at least" header reading "WordPress 6.4" instead of "6.4". The stray prefix made WordPress' minimum-version check pass on every release, so the theme could be activated on WordPress 4.9 where it would fatal
* Added the missing "Domain Path: /languages" header
* Corrected the theme tags: removed five surplus subject tags (WordPress.org allows three), dropped custom-menu, threaded-comments and translation-ready (retired in WordPress 4.6) and three-columns/four-columns (not actual content layouts), and added custom-header, grid-layout and wide-blocks, which the theme does support
* Rewrote the style.css description: shorter, factual, and without the two typos it had carried since 2016
* Moved the version headers out of the functions.php docblock; style.css is the only file WordPress reads them from and the two copies had drifted
* Aligned readme.txt's Theme URI, Author and version fields with style.css
* Featured-image links in the blog, search and portfolio listings now carry an accessible name; when an attachment has no alt text WordPress emits alt="", which left those links unnamed
* Fixed FlexSlider and OwlCarousel calling jQuery event aliases (.blur/.focus/.resize) and jQuery.type that jQuery 4 removes
* Fixed a duplicate id="main" and a duplicate role="main" landmark on the search, 404 and portfolio archive templates
* Fixed pagination arrows using an invalid <icon> element, leaving the prev/next links with no accessible name
* Fixed the back-to-top link, related-posts carousel arrows and related-posts thumbnails having no accessible name
* Fixed the search results template hardcoding a placeholder image, ignoring the placeholder customizer settings
* Fixed an empty author byline linking to a bare /author/ URL on posts with no valid author
* Fixed pagination nesting a <nav> landmark inside another <nav>
* Fixed fatal-prone breadcrumb code that read an array offset on `false` and an undefined variable when Rank Math was active without Yoast
* Fixed `strcasecmp(): Passing null` deprecation in the nav walker that fired once per menu item on every page load
* Fixed "Attempt to read property on null" in the excerpt and thumbnail helpers when no post is in scope
* Security: escaped unescaped portfolio term names, thumbnail URLs in `style` attributes, header nav style, and nav-menu fallback markup
* Security: rebuilt the search form so it no longer reflects filtered `<form>` attributes into the page
* Fixed excerpts splitting multibyte characters mid-glyph and blanking out on single-word content
* Fixed category/archive widget counts mangling any name or URL containing a closing parenthesis
* Fixed brand icons (Twitter/X, Facebook, GitHub, Dribbble, Vimeo) rendering blank under Font Awesome 6
* Fixed the missing `fa-folder-open-o` post-category icon, removed in Font Awesome 5+
* Fixed the RSS social icon rendering blank by using the solid rather than the brands font family
* Social links now expose an accessible name; the label span was previously rendered empty
* Fixed the "Skip to content" link never moving keyboard focus (`element.trigger()` on a DOM node)
* Fixed the header search panel closing on focus; its handlers targeted ids the form never rendered
* Fixed plugin detection failing on installs with a relocated `wp-content` directory
* Fixed lazy loading being stripped from listing images by an outdated kses allowlist
* Fixed the Builder/portfolio archive missing its Bootstrap `.row` wrapper
* Fixed the wide blog layout ignoring the placeholder-image customizer settings
* Fixed malformed `</<div>` markup in the Home page template
* Replaced `get_page_by_title()`, deprecated in WordPress 6.2, in the demo importer
* Forward compatibility with jQuery 4: replaced removed event shorthands and shimmed the aliases FlexSlider still uses
* Theme class is now a singleton; it was instantiated three times, registering every admin hook and the Epsilon framework three times over
* Assets now carry the theme version so browsers pick up CSS/JS changes after an update
* Customizer CSS is attached via `wp_add_inline_style()` instead of a raw `wp_head` style block
* Added `responsive-embeds` and `align-wide` block editor support
* Removed dead code: duplicate `require` block and a plugin-callback loop that never had callbacks to run

= 1.2.19 =
* Fixed Builder Page template functionality that wasn't working properly
* Added proper initialization for the Shapely_Builder class
* Removed debug code and improved code quality
* Enhanced widget area registration for Builder Page templates
* Fixed issues with dynamic sidebar registration for Builder Pages
* Improved error handling in theme template files

= 1.2.18 =
* Fixed issue with "Import Demo Content" functionality
* Added proper null checks in contact form widget to prevent PHP warnings
* Improved error handling in demo content importer
* Enhanced AJAX response handling for better user feedback
* Fixed static frontpage setting during demo import

= 1.2.17 =
* Added a new customizer setting to control placeholder images for posts without featured images
* Added an option to upload custom placeholder images
* Added a global setting to show/hide categories across all blog layouts
* Improved customizer UI with clearer section headings for blog hero image
* Fixed issue with WP_Customize_Control class loading
* Added custom CSS for better visual separation in customizer settings
* Fixed compatibility issues with WordPress 6.8

= 1.2.16 =
* Added accessibility improvements for dropdown menu arrows
* Fixed dropdown menu arrow display for submenu items
* Improved menu item spacing for items with children
* Updated Font Awesome to version 6
* Enhanced CSS for better dropdown menu visibility
* Fixed navigation menu styling for mobile devices
* Improved theme documentation in README.md
* Added Git submodule information and setup instructions
* Added support for Kali Forms plugin
* Fixed custom excerpt function to properly handle content
* Enhanced thumbnail handling with fallback placeholder images
* Improved theme customizer with selective refresh support
* Updated styling for buttons and form elements
* Fixed header text color customization
* Added responsive design improvements

## 1.2.14
	Breadcrumbs Support For Rank Math Plugin
	Fix php 8.0 deprecation issue and more

## 1.2.13 
	Bug fixed issue #271
	updated font awesome to 5
	Merged with wpChill

## 1.2.12 
	Improves : Escaping

## 1.2.11
	Compatibility with jQuery 3.0

## 1.2.10
	Updated dependacies
	Tested with WP 5.6

## 1.2.8
	Security Fix

## 1.2.7
	Improved accesibility with keyboard navigation.
	Improved compatibility with Kali Forms plugin.

### 1.2.6
	Replace notification design with core design.
	Removed demo.json
	Fixed "About Shapely" page.

### 1.2.5
	Added Modula to recommended plugins

### 1.2.4
	Implemented milestone https://github.com/ColorlibHQ/shapely/milestone/8?closed=1

### 1.2.2
	Implemented milestone https://github.com/puikinsh/shapely/milestone/6?closed=1

### 1.2.1
	Implemented milestone https://github.com/puikinsh/shapely/milestone/5

### 1.1.6
	Implemented milestone https://github.com/puikinsh/shapely/milestone/2

### 1.1.0

	#119 - changed prefixed
	#120 - fixed
	#121 - fixed
	#122 - fixed
	#123 - fixed
	#124 - fixed
	#125 - fixed
	#126 - added a notice in readme file about this limitation
	#128 - fixed
	#129 - fixed
	#130 - fixed
	#131 - fixed
	#112 - #1 - there's nothing wrong in using abspath, it's a WordPress core define, nothing added by the theme/plugin. Changed it to incorporate MU
	#2 - removed from global scope
        #3 - removed custom sanitize for hex
	#4 - removed shapely_sanitize_strip_slashes
	#5 - escaped variable
	#6 - I don't think Colorlib and WordPress are translatable
	#7 - escaped where needed
	#8 - removed registration of menu from socialnav.php
	#9 - removed theme support for post formats
	#10 - escaped where needed
	#11 - translated
        #12 - escaped where needed
	#79 - restyled <q> a little bit ( added a bg, set font style to italic )
	#66 - woo-setup.php was not deleted from the theme files, fixed
	#63 - escaped echoes
	#52 - changed esc_html to wp_kses_post to allow some html tags
	#51 - related to #66, deleted woo-setup.php
	#47 - added support for Post thumb in page as well
	#35 - fixed in the first update
	#46 - reworked script that fixes the navbar top ( listen event, wait for a specific offset, animate it )
	#48 - added prev / next for content
	#29 - this does not happen in the current version of the theme
	#50 - Content is escaped with wp_kses_post where appropriate
	#49 - seems to be fixed in the current theme version ( also, added a clearfix after the section - just in case )
	#39 - sticky navigation removed for hamburger menus ( larger menus could not be used, you can't scroll in a fixed element )
	#30 - archive page did not implement layout styles
	#45 - added border-bottom checkbox toggle for widget
	#79 - added epsilon toggles for widgets
	#95 - changed import demo content to required action
	#103 - removed margin bottom from the widgets only in the main content
	#16 - added the first option

### 1.0.7
<a href="https://github.com/puikinsh/shapely/issues">Issues</a>
	#23 - html was missing a closing tag
	#85 - sanitized with strip_tags
	#85 - sanitized dropdown with strip_tags
	#56 - removed admin styles
	#66 - moved to plugin
	#79 - re-added the quotes for q element
	#82 - this was no longer used, widgets were moved to a plugin
	#68 - this should be in the plugin repo, fixed
	#93 #47 - Post thumb is now shown in content ( above the title )
	#63 - escapes/sanitizes where needed
	#60 - Default string is now translatable
	#58 - removed sanitization function that's no longer used
	#28 - this should be in the companion plugin, fixed.

### 1.0.6
<a href="https://github.com/puikinsh/shapely/issues">Issues</a>

 #83 - don't register widgets if jetpack is not installed/activated (testimonials and portfolio)
 #82 - changed loading files method
 #69 - changed pagination

### 1.0.5
<a href="https://github.com/puikinsh/shapely/issues">Issues</a>

 #62 - done
 #89 - in plugin
 #87 - removed from theme - ADDED TO COMPANION
 #86 - widgets are in the plugin
 #85 - sanitized the dropdown instead of escaping it
 #84 - found in the plugin
 #82 - widget files are found in the plugin, this is no longer an issue
 #81 - removed if condition in the social menu
 #80 - followed guide
 #79 - already fixed
 #78 - removed REM font size declaration, fixed
 #77 - figure had a margin left/right that was messing up the columns, changed it to padding . works
 #76 - added tags in single post
 #75 - seems to be fixed
 #74 - redone title section ( if yoast seo is not installed/breadcrumbs not used, title will have a 12 column size )
 #72 - removed custom css
 #71 - remooved from extras.php
 #67 - no longer relevant - widgets are in the companion plugin now
 #65 - moved to style.css
 #61 - prefixed
 #60 - made them translation ready
 #59 - removed sanitization
 #58 - added custom logo functionality
 #57 - moved them in the after theme setup hook
 #55 - removed one of the enqueues
 #54 - changed handler names
 #53 - license changed to gpl v3
 #52 - this should definitely be esc_html
 #51 - changed get_template_directory to get_stylesheet_directory (allowed to be overridden in child themes) - but i don`t think this is quite OK
 #50 - echo esc_html(). esc_attr is used inside html tags (value=<?php echo esc_attr() ?>, etc)
 #47 - design? or just throw it in there?
 #44 - no longer relevant
 #43 - no longer relevant ?
 #37 - fixed problems during activation
 #35 - no longer relevant, widgets moved to plugin
 #21 - added custom header image
 #25 - fixed

