# Changelog

### 1.5.2 - 2023-4-20

#### New

* Uses the `petal_framework` private package (deletes all the `_petal_framework` folders). This will allow for an easier upgrade process in the future, especially for components like the data table.
* Data Table supports `base_url_params`. Keep custom query params when changing sort order.
* Data Table is now self contained in the live view - code isn't scattered across the model and context.
* Added `mix recode` for code linting and refactoring
* Use `<.flash_group>` to show flash messages (Petal Framework 0.3.0)

#### Changes

* Enabled Wallaby tests by default (`mix test`)
* Updated Tailwind to 3.3
* Updated Erlang to 25.3
* Added `rename_project` lib to replace custom mix task

#### Breaking

* Data table API has changed slightly. See our docs <https://petal.build/components/data-table> on how to use

#### Fixed

* Data table going blank when changing page size
* Navigation problems for the Data Table when setting the `default_limit` via a schema file
* Fix Finch issue with email sending

### 1.5.1 - 2023-3-10

#### New

* Develop Petal Pro in GitHub CodeSpaces!
* Data Table column - can now filter by a select list
* Data Table column - can now filter by a float

#### Changed

* topbar.js version updated to 2.0
* mix setup no longer fetches tailwind/esbuild if they already exist
* Upgrade Petal Components to 1.0
* Data Table is now a function component

#### Fixed

* Github auth working again

### 1.5.0 - 2023-2-10

#### Changed

* Upgraded Phoenix to 1.7
* Routes use the new verified routes
* Authentication pages converted to live views
* Upgraded fully from Hericons v1 to v2
* `petal.gen.live` now uses the Data Table component
* Tesla now uses the more secure Finch over Hackney (<https://github.com/petalframework/petal\\_pro/issues/66>)
* Confirmation page will redirect to org invitations if invitation exists (<https://github.com/petalframework/petal\\_pro/issues/68>)
* Removed Petal Enhance (it was more complex than we thought)

#### Fixes

* Redirect to `/app/orgs` if an invalid org slug is used (<https://github.com/petalframework/petal\\_pro/issues/70>)
* When editing user via `/admin/users` - `patch_back_to_index` no longer crashes (<https://github.com/petalframework/petal\\_pro/issues/61>)
* Always show Data Table filters (<https://github.com/petalframework/petal\\_pro/issues/60>)

### v1.4.1

#### Added

* Add Petal Enhance (recipes)

#### Fixes

* Fix admin users modal. Clicking off the modal now works
* Change avatar\_url to text in DB for long URLs
* Whitelist Google profile picture images in CSP
* Fix Mailbluster unsubscribe route + documentation

### v1.4.0

#### Added

* Updated to LiveView 0.18 + Petal Components 0.18
* Data table component
* Local time component
* Sobelow for security checking
* Coveralls for code test coverage
* test.yml Github action for code quality
* Easily modifiable content security policy to help prevent XSS
* Added a docker-compose.yaml that adds Postgres so you don't need to install it

#### Changed

* Router significantly more streamlined
* Some routes have been moved into their own files: AdminRoutes, AuthRoutes, DevRoutes, MailblusterRoutes
* Users are forced to be confirmed to access /app routes (easily configurable)
* Use Ecto enums for org roles

#### Fixes

* Fix reset password failing when signed in
* Clean up dashboard\_live.ex - some old code unused was left in there
* Improved SEO meta tags in \_head.html.eex
* Show a warning in the logs when no title/meta\_desciprion is set on a public page
* Added `open-graph.png` (to be replaced by dev)
* Fix require\_confirmed\_user plug
* Fix landing page GSAP not working

### v1.3.0

#### Added

* Two-factor authentication using time-based one time passwords (paired with something like Google Authenticator)

#### Changed

* Decoupled DashboardLive from Orgs so you can get started quicker if you don't want orgs
* Can pass a custom header class to the public layout
* Sidebar and stacked layouts now support grouped menu items (see dev\_layout\_component.ex for an example)
* Update Tailwind to 3.1
* Split CSS into different files thanks to Tailwind 3.1

#### Fixed

* Onboarding now remembers user\_return\_to
* Fixed nav dropdown bug after modal toggle
* Fixed gettext in live views

### v1.2.0

#### Added

* Login with Google & Github - easy to add more auth providers
* Passwordless auth - register/sign in via a code sent to your email
* Orgs - create an org, invite & manage members, and more
* User lifecycle actions - run code after actions like register, sign\_in, sign\_out, password\_reset, etc
* New generator: mix petal.gen.html (same args as phx.gen.html)
* New component: <.markdown content=""> & <.pretty\_markdown content=""> (uses Tailwind Typography plugin)
* Added License and Privacy pages (with some content from a template to get you started)
* New layout: <.layout type="public">, for public marketing related pages like landing, about us, privacy, etc

#### Changed

* Simpler config access (`PetalPro.config(:app_name)` instead of `Application.get_env(:petal_pro, :app_name)`)
* Refactor <.layout> to take less props
* Refactor dark/light mode system. Much simpler now and no longer needs cookies
* Put Petal Pro Components in their own folder for easier future upgrades (can duplicate if you want to modify them)
* Sidebar and stacked layout have a new slot for the top right corner (if you want to add something like a notifications bell)

#### Fixed

* Log metadata wasn't being cast
* More user actions are logged
* Fixed petal.live generator tests
* Added tests for user settings live views

We've included Google & Github to get you started and make it super easy for you to enable login with any other OAuth provider you might want add to your app.

We've also included our very first Petal Pro component **<.social\_button>** that produces beautiful social login buttons in two variants ("solid" and "outline").&#x20;

Social button currently supports:

* Google
* Github
* Facebook
* Twitter
* Apple
* Linkedin

Users of your app can now register/sign in via a pin code sent to their email. It's simple to enable or disable at any time.

Just head over to your `config.exs` file and change `paswordless_enabled` to `true`

![config.exs](https://content.gitbook.com/content/HHjyspJsNlFy25BeBYYU/blobs/omz76oBuNyaH7VDdws1Y/CleanShot%202022-05-16%20at%2009.01.38@2x.png)

### **Organizations/Multi-tenancy**

You can now optionally create an organization, invite & manage members, and more.
