AWC Vehicle Fitment Search - Roadmap
=====================================

Delivery rule
-------------
Each phase must be implemented, tested, documented, and marked complete before work begins on the next phase.
Every roadmap item uses [ ] while outstanding and [x] when complete. Completed items must include the plugin version in the format: [x] Item description - Confirmed working in version X.Y.Z.
Every plugin edit must include a new plugin version number in the same change.
Every plugin version must also receive a matching entry in CHANGELOG.md in the same change.

Phase 1 - Widget foundation and layout stability
------------------------------------------------
- [x] Establish the single AWC Vehicle Fitment Selector widget as the shared implementation. - Confirmed working in version 0.3.7.
- [x] Preserve vertical and horizontal selector layouts through one layout setting. - Confirmed working in version 0.3.7.
- [x] Confirm existing search, filter, Garage, restriction, shortcode, and saved widget settings continue to work. - Confirmed working in version 0.3.7; Garage toggle persistence remains a follow-up investigation.
- [x] Define the widget's public settings, defaults, internal identifiers, and backward-compatibility requirements. - Confirmed working in version 0.3.7.
- [x] Test the widget in vertical and horizontal layouts on desktop and mobile. - Confirmed working in version 0.3.7.
- [x] Test existing installations and newly added widgets before marking the phase complete. - Confirmed working in version 0.3.7.

Phase 2 - Shared builder integration
-------------------------------------
- [x] Investigate PageLayer compatibility and integration options. - Confirmed in version 0.5.3; PageLayer imports the shared WordPress widget and persists explicit On/Off values.
- [x] Investigate Elementor compatibility and integration options. - Confirmed in version 0.5.3; Elementor imports the shared WordPress widget.
- [x] Define PageLayer and Elementor support requirements, including widget placement, styling, responsive behavior, and editor compatibility. - Confirmed working in version 0.5.3.
- [x] Add PageLayer support through the shared WordPress widget integration. - Confirmed working in version 0.5.3; the builder exposes one shared AWC widget.
- [x] Add Elementor support through the shared WordPress widget integration. - Confirmed working in version 0.5.3; the builder exposes one shared AWC widget.
- [x] Map the selector settings to the shared widget editor controls. - Confirmed working in version 0.5.3, including On/Off controls.
- [x] Preserve sensible plugin defaults outside the builders. - Confirmed working in version 0.5.3.
- [x] Test editor insertion, editing, preview, save, responsive controls, and frontend rendering in PageLayer. - Confirmed working in version 0.5.3.
- [x] Test editor insertion, editing, preview, save, responsive controls, and frontend rendering in Elementor. - Confirmed working in version 0.5.3.

Phase 3 - Selector title and general styling controls
------------------------------------------------------
- [x] Reorganize the native PageLayer and Elementor widget controls into the current accordion structure. PageLayer and Elementor structure, Forms & Boxes controls, and native Elementor Normal/Hover and Normal/Focus tabs confirmed working in version 0.7.59:
			- Style
				- Theme Alignment
				- Selector Layout
				- Filter Products on Category Page
				- Enable Garage Feature
				- Enable "Remove from Garage" Link
				- Search Box Title
				- Filter Box Title
			- Typography
				- Forms Typography
				- Forms Normal and Focus
				- Forms Colour
				- Forms Focus Colour
				- Garage Typography
				- Garage Colour
				- Remove from Garage Button Typography
				- Remove from Garage Button Normal and Hover Text Colour
				- Search Button Typography
				- Search Button Normal and Hover
				- Search Button Text Colour
				- Search Button Hover Text Colour
			- Forms & Boxes
				- Box Border (border of the closed dropdown box itself; does not include the opened dropdown options list)
					- Border
					- Border Radius
					- Normal/Focus
					- Border Colour
				- Box (background of the closed dropdown box itself; does not include the opened dropdown options list)
					- Normal/Focus
					- Box Colour
				- Form Hover Colour (the highlighted option in the opened dropdown options list)
			- Buttons
				- Search Button Background
				- Normal/Hover (for Search Button Background)
				- Search Button Border
				- Search Button Radius
				- Remove from Garage Button Background
				- Normal/Hover (for Remove from Garage Button Background)
				- Remove from Garage Button Border
				- Remove from Garage Button Border Thickness
				- Remove from Garage Button Radius
				- Search Button SVG Icon - Implemented in version 0.7.46.
				- Search Button Icon Position (Left/Right) - Implemented in version 0.7.46.
				- Search Button Icon Colour - Implemented in version 0.7.54.
				- Remove from Garage Button SVG Icon - Implemented in version 0.7.46.
				- Remove from Garage Button Icon Position (Left/Right) - Implemented in version 0.7.46.
				- Remove from Garage Button Icon Colour - Implemented in version 0.7.54.
- [x] Add selector box border color editing. - PageLayer control implemented in version 0.7.30; Elementor control confirmed working in version 0.7.58.
- [x] Add selector box border thickness editing. - PageLayer control implemented in version 0.7.30; Elementor control confirmed working in version 0.7.58.
- [x] Add selector box border style editing. - PageLayer control implemented in version 0.7.30; Elementor control confirmed working in version 0.7.58.
- [x] Add selector box border radius editing. - PageLayer control implemented in version 0.7.30; Elementor control confirmed working in version 0.7.58.
- [x] Keep the horizontal Garage selector and Remove from Garage button side by side with consistent spacing. - Confirmed working in version 0.7.61.
- [x] Test defaults. - Confirmed working in version 0.7.61.

Phase 4 - Account-linked Garage
-------------------------------
- [x] Investigate Garage settings that re-enable themselves after being disabled, including the Enable Garage Feature and Enable Remove From Garage Link options. - Confirmed working in version 0.8.0.
- [x] Connect the Garage feature to the customer's user account when they are logged in. - Confirmed working in version 0.8.0.
- [x] Allow customers to save and manage Garage vehicles from their account dashboard. - Confirmed working in version 0.8.0.
- [x] Add an account dashboard view for saved vehicles, including edit and remove actions. - Confirmed working in version 0.8.0.
- [x] Define guest Garage behavior and migration of saved guest vehicles when a customer creates or logs into an account. - Confirmed working in version 0.8.0.
- [x] Define storage, privacy, permissions, and deletion behavior for account-linked Garage data. - Confirmed working in version 0.8.0.
- [x] Test guest, logged-in, registration, login, logout, multi-device, and account-deletion flows. - Confirmed working in version 0.8.0.

Phase 5 - Admin and release hardening
--------------------------------------
- [ ] Review the product-data Vehicle Fitment panel and related admin controls for clarity and consistency.
- [ ] Add admin settings controls to customize the My Garage Make, Model, and Year add-vehicle form.
- [ ] Verify translation strings and editor-facing labels.
- [ ] Review compatibility with supported WordPress and WooCommerce versions.
- [ ] Test activation, upgrade, uninstall, database setup, and database upgrade behavior.
- [ ] Test migration from previous widget versions and configurations.
- [ ] Run PHP syntax checks, workspace diagnostics, and focused regression tests.
- [ ] Update the plugin version and release documentation after all phase tests pass.

Investigation - Post-release
----------------------------
- [ ] Investigate live PageLayer widget layout synchronization after release. - Due to limitations with PageLayer, layout changes currently require saving the page and refreshing the builder preview before the new layout is displayed; Elementor layout switching is confirmed working.

Phase 6 - Universal widget fallback
-----------------------------------
- [ ] Add universal widget support for sites without PageLayer or Elementor.
- [ ] Build a custom widget customization UI as the fallback for unsupported builders.
- [ ] Display the custom fallback UI only when neither Elementor nor PageLayer is installed.
- [ ] Define builder detection, precedence, and behavior when either builder is installed but inactive or unavailable for the current widget area.
- [ ] Avoid showing duplicate or conflicting customization controls.
- [ ] Test fallback widget creation, editing, saving, rendering, and migration from existing widget settings.

Phase 7 - Number plate search
------------------------------------
- [ ] Investigate number plate search as an alternative vehicle lookup method.
- [ ] Identify reliable registration-data providers and supported jurisdictions.
- [ ] Confirm whether a number plate can be mapped to the make, model, year, and other fitment attributes required by the plugin.
- [ ] Evaluate API access, pricing, rate limits, uptime, caching, and fallback behavior.
- [ ] Review privacy, data-protection, consent, and number-plate handling requirements.
- [ ] Design the number plate search flow for both logged-in and guest customers.
- [ ] Do not schedule implementation until the investigation confirms a viable provider, coverage, cost, legal basis, and fitment-data quality.
