# Changelog

## 4.1 - 2026-06-21

### Changes
- Gave the default theme a full facelift with Tailwind CSS v4, DaisyUI, and the new Vite-based build pipeline. See the readme.md for more information.
- Updated the navigation, form, and page templates to match the new visual direction across the default theme.
- Switched the default theme to Vite for CSS and JavaScript builds, replacing the older theme build flow with direct Blade/JS source scanning, bundled classic scripts, and manifest-driven asset publishing through `Theme::vite()` / `Theme::script()`.
- Standardized the theme workflow around `pnpm` for install, build, watch, and production commands.
- Added a Tailwind utility registry for CMS-authored and other dynamic content so layout classes can still be generated even when they are not statically visible to Tailwind.
- Began deprecating Select2 usage in favor of native selects where possible (more mobile friendly), while keeping Select2 support in place for existing forms that still depends on it. It may be replaced by Livewire or Flux UI later.
- Updated `src/js/conditionals.js` to handle select2 and native select fallback behavior more safely.
- Updated the theme configuration and asset set, including the new favicon/app-icon files and the Vite-aware package/build metadata.

### Upgrading
- Rebuild the theme assets after updating the theme source so the new Tailwind and Vite output is published.
- If you previously relied on the old build pipeline, update your theme scripts and asset references to match the new Vite output structure.
- Use `pnpm install` and `pnpm run build` / `pnpm run watch` for the default theme workflow.
- If you maintain a child theme, merge any local `src/js/script.js` or `src/js/conditionals.js` customizations carefully so the parent theme imports and classic script publishing still work.

## 4.0 - 2025-09-08

### Changes
- This is a major version update.
- Upgraded from Font Awesome 4.7.0 to Font Awesome Free 6.7.2.
- All icon references updated to new Font Awesome 6 syntax and classes.
    - Replaced fa fa-* with fa-solid fa-*, fa-regular fa-*, or fa-brands fa-* as appropriate.
    - Font files and SCSS imports updated to use @fortawesome/fontawesome-free.
- Upgraded Webpack to v5 and Laravel Mix to v6.
- Upgraded Bootstrap from 3.3.7/3.4.1 to 3.4.1 (now imported via SCSS for better customization).
- Upgraded jQuery to v3.7.1 and jQuery UI to v1.14.1.
- Bootstrap SCSS is now imported via a new _bootstrap.scss partial. Upgraded postcss, css-loader, and cssnano to latest v8/v5/v5 versions.  Updated SCSS/CSS build pipeline for compatibility with new versions. Updated SCSS variables to use sass:color and new SCSS syntax.
- Upgraded many dependencies to latest major versions (see package.json).
- Replaced deprecated packages and updated SCSS/JS imports accordingly.

### Upgrading
- You may need to rebuild your theme based on the new default theme structure.
- Use node version 22.16.0 or later.
- Replace all old Font Awesome 4 icon classes with new FA6 classes.
- Replace all fa/fa-* classes with the new style (fa-solid, fa-regular, fa-brands). Update icon names as some have changed in FA6.

## 3.2.7 - 2025-03-20

### Changes
- Updated `src/js/script.js` to prevent submit button double-clicks globally by default for themes.
- You can exclude any submit button from being auto-disabled by adding the class `submit-autodisable-exclude` to the button.

### Upgrading
- Update your `themes/<THEMENAME>/src/js/script.js` with the new changes like in `src/js/script.js`, and then node or yarn rebuild.

## 3.2.6 - 2024-04-12

### Changes

- Updated regex validation for First Name, Last Name, and City fields in enrollment form.

### Updating

- You may want to update your `enrollment.json` with the default one in this update, specifically with the regex rules for First Name, Last Name, and City fields.

## 3.2.5 - 2024-03-27

### Changes
- Updated `enrollment.json` form configuration:
    - Changed `empty_value` option from "-- choose --" to "--- select ---" for better consistency with Kris form builder.
    - Added regex validation for `first`, `last`, `city`, `postal`, and `phone` fields, to prevent "spammy" inputs and invalidate them.
- For reloadable cards:
    - Updated `form.blade.php` to include conditional inclusion of country-specific JavaScript validation based on the card's country.
    - Custom validation rules for phone numbers, state/province, and postal/zip codes for US and CA.
    - Label adjustments for Canadian forms (State to Province).
    - Added country field to the `info-fields.blade.php` form, making it read-only and pre-populated based on the card's country.

### Upgrading
- Some of the files updated are (and that you may need to merge into your program):
    - `forms/enrollment.json`
    - `views/catalog/reloadable/_partials/form.blade.php`
    - `views/catalog/reloadable/_partials/info-fields.blade.php`
- You may need to upgrade ignite/catalog to `3.4.8` to use some new methods.

## 3.2.4.3 - 2024-02-27

### Changes
- Added (missing) view blade `views/emails/batched-email-summary.blade.php` for daily transactions batched email.

## 3.2.4.2 - 2024-02-15

### Changes
- Added new `@section('reloadable-form')` to wrap the form content in `form.blade.php`, improving structure and readability.
- Moved JavaScript code related to form validation and behavior from `create.blade.php` to `form.blade.php`, centralizing the script logic related to the reloadable form.
- Adjusted column widths in create.blade.php by adding IDs #card-info and #card-form for better targeting and potentially more precise styling or scripting.

## 3.2.4.1 - 2024-02-11

### Changes
- In `form.blade.php`, the content of a span element were changed from `amount-dollars` to `amount-points` to correctly represent what is being displaying.
- In `create.blade.php`, refactoring was done to:
    - Correctly replaced `$X` in the item description, as well as `X points|dollars`.
    - Introduced `@section` directives for various parts (`title`, `image`, `description`, and `terms of use`), allowing for more flexible customization.
    - Moved the terms section closer to the card info.
- In `_states.blade.php`, the placeholder text in the state selection dropdown was standardized for consistency.

## 3.2.4 - 2023-12-18

### Changes
- Update the reloadable card pages with better format and messaging, especially for points threshold with markup considered.
    - Blade files`views/catalog/reloadable/_partials/form.blade.php` and  `views/catalog/reloadable/create.blade.php` updated.
- Add phone validation to `enrollment.json`

### Upgrading
- If using Ignite Catalog module, you may need to upgrade to version `3.4.5` to use some new methods.

## 3.2.3 - 2023-10-01

### Changes
- Updated the default `forms\enrollment.json`.

## 3.2.2 - 2023-08-18

### Changes
- Update some catalog view blades to accommodate for TTL. Some are for reloadable card views. ([WDS-3932](https://brightspot.atlassian.net/browse/WDS-3932))

### Upgrading
- If using Catalog module, you may need to upgrade to version `3.4.2` for some new methods.
- If you have a replacement for `views/catalog/order/index.blade.php`, `views/catalog/reloadable/_partials/form.blade.php`, or `views/catalog/reloadable/create.blade.php` in your program, you may need to merge in the changes.

## 3.2.1 - 2023-07-03

### Changes
- Updated `views/partials/_catalog/cart/item.blade.php` to not allow changing the quantity after it is in the cart for certain item. This is needed for Tango for now, since their API can only order one at a time.

### Upgrading
- If using Catalog module, you may need to upgrade to version 3.3.1 to make sure Catalog\Entities\CartItem::canModifyQuantity() exists.
- If you have a replacement for `views/partials/_catalog/cart/item.blade.php` in your program, you may need to merge in the changes, especially if using the Tango catalog.

## 3.2.0 - 2023-06-08

### Changes
- Added blade views and its associated partials for reloadable card.
- Fix a bug where if a catalog item does not have a (appropriate) link to the item, then it should not link to another page.

### Upgrading
- If using Catalog module, you may need to upgrade to version 3.3.0 to make sure Catalog\Entities\Item::hasUrl() exists.

## 3.1.0 - 2023-06-06

### Changes
- Added disclaimer text (for Tango cards) to `views/catalog/item/show.blade.php`.

### Upgrading
- If you have a local copy of the `views/catalog/item/show.blade.php` file in your program theme, then you may need to merge the changes.

## 3.0.15.1 - 2023-03-26

### Changes
- Hotfix to `views/partials/_components/analytics.blade.php` to make G4 to GA4 for consistency.

## 3.0.15 - 2023-01-19

### Changes
- Added `transaction-points-update.blade.php` for `Ignite\Core\Notifications\NotifyParticipantWithTransactionPointsStatus`. This blade template is to send email when a participant receives points during transaction import.

## 3.0.14.1 - 2023-01-11

### Changes
- We were missing a layout file `layouts.mail` for `post-import-details.blade.php`. It is updated so that the blade file now uses the same mail layout (`@component('mail::message')`) as the other emails, and is a markdown format file now.

## 3.0.14 - 2023-01-05

### Changes
- Added `post-import-details.blade.php` for `Ignite\Core\Notifications\NotifyProgramManagerWithPostImportInfo`.

## 3.0.13 - 2022-12-21

### Changes
- Fixed `views/emails/general.php` to `views/emails/general.blade.php`
- Updated `views/partials/_components/favicon.blade.php`

## 3.0.11 - 2022-08-22

### Changes
- Updated CSS to include a red asterisk after required fields, like the backend. ([BSDP-13](https://brightspot.atlassian.net/browse/BSDP-13))

### Upgrading
- The red asterisk for required fields may automatically appear in your program admin back-end, but for it to appear in your front-end forms (like enrollment), you may have to re-compile your theme. Go to your theme folder and redo npm or yarn install and run to update your public stylesheet files.
- Also, if your forms tries to over-write the labels by adding asterisks manually, you may need to undo those.

## 3.0.10 - 2022-06-04

### Changes
- Updated catalog item show and item to present class name on catalog item.

## 3.0.9 - 2022-05-25

### Changes
- Added dist/javascripts/scripts.js and dist/mix-manifest.json for new sites that will be using the default theme instead of their own theme.
- Fixed a JS error in views/participant/profile/edit.blade.php with datetimepicker.

## 3.0.8 - 2022-05-04

### Changes
- Change Order on "My Transactions Page" -- Updated transaction index to include moment.js and order dates by 'd/m/YYYY'
