# Atomic Slider

Elementor slider widgets with a React WordPress dashboard that shares the Atomic Addons dashboard design.

## Development

- `npm install`
- `npm run build` builds widget JavaScript, SCSS/RTL styles, and the React dashboard.
- `npm run dev` watches sources. Run `npm run build` once before starting the watcher on a fresh checkout.

Dashboard app: `src/admin/` (entry `index.jsx`; Home in `pages/`, the Widgets screen and shell in `components/`).
Dashboard styles: `src/scss/admin.scss` and the `_dash-*.scss` partials, ported from the Atomic Addons dashboard (atomic-elements `src/scss/_dash-*.scss`) with the `asa-dash` prefix. Keep the two in step.
WordPress catalog, widget categories (Content, Posts / Dynamic, WooCommerce), the dashboard payload, usage detection and nonce-protected saving: `includes/admin.php`.
The dashboard runs on WordPress' own React (`react` / `react-dom` script handles, aliased in `src/admin/wp`), is bundled by esbuild, and loads only on the plugin's Home and Widgets screens.

## Pro widgets

Oriva and Aevon are Pro (`'type' => 'pro'` in `atomicslider_widget_catalog()`). Their files are listed under `@fs_premium_only` in `atomic-slider.php`, so Freemius leaves them out of the free build; a new Pro widget's files go on that list too. They register only when `atomicslider_has_pro()` is true (an active Freemius licence or trial, filterable with `atomicslider_has_pro`). Otherwise the dashboard shows them locked and opens the upgrade dialog.

Demo links come from `atomicslider_product_url()`: the landing page is https://oyorox.com/products/atomic-slider/ and each widget's demo is `<landing page>/<widget key>/`.
