=== ZLADNO ===
Contributors: aihubmarket
Tags: project management, kanban, collaboration, task management, workflow
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 2.0.11
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Private collaborative workspaces, boards, lists and cards inside WordPress.

== Description ==

ZLADNO provides a useful standalone board experience without requiring a page builder, a specific theme, a remote SaaS account or ZLADNO Pro.

The Free plugin includes:

* Workspaces, boards, lists and cards.
* Basic members and teams.
* Labels, dates, checklists, attachments and covers.
* Plain card comments and basic notifications.
* Search, profile settings, light/dark themes, Ukrainian and English.

Optional ZLADNO Pro capabilities are delivered by a separate add-on. The Free application shows only working Free controls; add-on controls are supplied only while the add-on is active. Premium module code and editor vendor bundles are not included in this package. Existing add-on data is retained when the add-on is deactivated.

ZLADNO 2.0.11 keeps the SQL hardening from 2.0.10 and restores card-cover rendering inside the card modal, including a compact top-strip layout.

== Installation ==

1. Upload the `zladno` directory to `/wp-content/plugins/` or install the ZIP in Plugins > Add New.
2. Activate ZLADNO.
3. Open Settings > ZLADNO or visit the generated board route.

A normal installation starts empty. Demo content is never installed automatically by the Free plugin.

== Frequently Asked Questions ==

= Does ZLADNO require Elementor or a particular theme? =

No. The application route loads its own scoped interface and works with a standard WordPress installation.

= What happens when the optional ZLADNO Pro add-on is disabled? =

Free boards continue working, add-on controls disappear, and existing add-on data remains stored for later reactivation.

= Does uninstall delete my data? =

Not by default. Enable “Remove all ZLADNO data on uninstall” in the settings before uninstalling only if you intentionally want permanent deletion.

== Upgrade Notice ==

= 2.0.11 =

Restores visible card-modal image covers and a compact top-strip layout without changing stored cover data.

= 2.0.10 =

Uses WordPress `%i` identifier placeholders for dynamic SQL identifiers and removes broad SQL-analysis suppressions while preserving behavior.

= 2.0.9 =

Uses WordPress database placeholders for every dynamic SQL value, including dynamic ID lists.

= 2.0.8 =

Keeps A to B to A card-title edits ordered while retaining duplicate-submit deduplication and safe rollback.

= 2.0.7 =

Protects drafts and rapid title edits on slow or failed requests, secures saved language preferences and verifies private storage guards before upload.

= 2.0.6 =

Speeds up board and card opening, removes duplicate saves, and keeps common list and card actions responsive while WordPress confirms them.

= 2.0.5 =

Fixes the inline Add card action at narrow widths and keeps save status visible below the global navigation.

= 2.0.4 =

Critical visual regression fix that restores the board layout, menus, labels and switcher presentation without reverting the WordPress.org prefix hardening.

= 2.0.3 =

WordPress.org review fix with WordPress-native uploads, canonical ZLADNO identifiers, safe legacy migration and public reproducible source.

= 2.0.2 =

WordPress.org preparation release with a Free-only workflow, cross-theme button hardening and compact modal scrolling fixes.

= 2.0.1 =

WordPress.org review hardening release with a physically smaller Free runtime, plain-text comments and extension hooks for optional add-ons.

= 2.0.0 =

Architecture release that separates the standalone Free core from the optional Pro add-on while preserving 1.23.x data.

== Screenshots ==

1. A ZLADNO Free team board with lists, cards, members, labels and due dates.

== Development / Source Code ==

The human-readable Free browser source is included at `src/board.js`. The runtime file is `assets/board.js`; both files are intentionally unminified. No Pro implementation or Pro editor source is included in this package.

From the `zladno` plugin directory, reproduce the runtime asset with:

`node tools/build-board.mjs`

The command copies `src/board.js` to `assets/board.js` without minification or transformation, then verifies that both files are byte-identical. PHP and CSS are maintained directly in `zladno.php`, `includes/`, and `assets/board.css`; they require no build step.

== Changelog ==

= 2.0.11 =

* Restored image covers inside the card modal by using the same background-image rendering path as the working cover previews.
* Restored the compact cover as a top strip while retaining the taller full-cover layout.
* Kept SQL hardening, JavaScript behavior, database schema, migrations and stored cover data unchanged from 2.0.10.

= 2.0.10 =

* Replaced runtime, migration and uninstall SQL identifier concatenation with WordPress `%i` identifier placeholders.
* Removed broad PreparedSQL/DirectDB SQL-analysis suppressions; dynamic values continue to use `%d`, `%f` and `%s` placeholders.
* Kept CSS, JavaScript, DOM selectors, schema and product behavior unchanged from 2.0.9.

= 2.0.9 =

* Replaced concatenated dynamic ID values in SQL `IN` clauses with one `%d` placeholder per normalized ID.
* Completed a source-wide SQL safety audit without changing UI, JavaScript behavior, storage, schema or migrations.

= 2.0.8 =

* Reused an unfinished duplicate title request only while it remains the latest queued mutation for that card.
* Preserved the final title in A to B to A sequences without changing the existing UI, storage or migration behavior.

= 2.0.7 =

* Preserved the active comment draft and editor focus while an initially opened card hydrates from a slow response.
* Serialized rapid card-title mutations so an older success or failure cannot overwrite or roll back the newest title.
* Required a dedicated nonce before a URL language choice is persisted to a cookie or user profile; unsigned choices remain request-only.
* Verified private storage deny files and the empty index guard before handing a private upload to WordPress.
* Limited legacy `AIB_*` PHP aliases to the known ZLADNO Pro 2.0.0–2.0.2 dependency bridge without changing `aib-*` presentation selectors.

= 2.0.6 =

* Loaded the requested board in parallel with the application bootstrap instead of waiting for two sequential REST requests.
* Opened cards immediately from the board preview and hydrated extended details in the background.
* Deduplicated title saves and removed redundant card and board reloads after uploads, list changes and card moves.
* Added optimistic feedback with rollback for card completion, list colour, list title and card movement actions.

= 2.0.5 =

* Prevented the Add card text action from inheriting the legacy 37-pixel icon-button width and wrapping onto multiple lines.
* Moved the global save-status indicator below the top navigation and raised it above application stacking contexts.
* Added an explicit submit type to the inline card composer action.

= 2.0.4 =

* Restored the established `aib-*` DOM/CSS presentation selectors and board custom properties accidentally renamed during the 2.0.3 WordPress-prefix refactor.
* Restored horizontal lists, the right-side add-list control, styled board menu, labels manager, board settings and pinned board switcher.
* Added an automated JavaScript-to-CSS presentation-contract test to prevent selector and custom-property drift.
* Kept all canonical `ZLADNO_` / `zladno_` PHP, hook, option, route, metadata and database prefixes unchanged.

= 2.0.3 =

* Replaced every uploaded-file move with the standard WordPress upload handler and scoped upload directories.
* Added canonical `uploads/zladno/private` and `uploads/zladno/avatars` storage with private server guards and an empty index file.
* Migrated known legacy database, option, user-meta, cron, role and API identifiers to the unique `zladno_` prefix.
* Replaced broad uninstall matching with exact ZLADNO allow-lists.
* Removed raw script and style output from the page head.
* Included readable Free-only browser source and a reproducible build command.

= 2.0.2 =

* Prevented text buttons with a leading SVG icon from being mistaken for icon-only controls.
* Isolated primary and disabled button colors from WordPress theme overrides in light and dark mode.
* Kept first-board and other compact dialogs fully visible and scrollable at browser zoom and short viewport heights.
* Removed all locked, disabled and badge-only add-on controls from the Free application workflow.
* Added a discreet Free-versus-Pro comparison under Settings > ZLADNO, outside the board workflow.
* Kept the explicit Ukrainian/English application switch independent of bundled translation catalogs.

= 2.0.1 =

* Removed executable Pro feature implementations from the Free JavaScript and REST runtime.
* Kept the Free comment composer plain text only.
* Added neutral extension hooks so optional add-ons own their payloads and processing.
* Moved AIHubMarket product-site shortcodes, styles and screenshots out of the public plugin.
* Preserved existing `zladno_*` data when the Pro add-on is inactive.

= 2.0.0 =

* Added a centralized feature policy shared by PHP, REST and browser UI.
* Separated communication, knowledge, document and spreadsheet modules into ZLADNO Pro.
* Removed automatic starter-data creation from normal Free activation.
* Added explicit, opt-in data removal on uninstall.
* Kept legacy database and REST prefixes for lossless upgrades.
