=== SproutOS — Source Code & Build Information ===

SproutOS is open source (GPLv2 or later). This file documents where the
human-readable source for every compiled/minified asset in the plugin lives,
and how to regenerate those compiled files. Nothing in this plugin is
obfuscated.


== 1. Public source repository ==

The full, human-readable source is maintained publicly at:

https://github.com/posimyth/sproutos/tree/sproutos-source

We keep this repository updated alongside every release. Feel free to review,
study, fork, or modify the code there.


== 2. Compiled JavaScript & CSS (admin dashboards) ==

Two React apps are compiled — the Manage dashboard and the Create Mode app.
Only the compiled bundles ship in this plugin; the complete un-minified source
and the build configuration live in the public repository listed in section 1.

Compiled file (ships in plugin)   Source (in the repository)
-------------------------------   --------------------------------------------
build/index.js                    src/  (entry: src/index.js)                     [webpack]
build/index.css                   src/  SCSS, compiled by webpack                 [webpack]
build/index-rtl.css               src/  SCSS, right-to-left variant               [webpack]
build/index.asset.php             generated by the build (dependency + version map)
build/sprout-os-admin.js          src/create-src/  (entry: src/create-src/main.jsx) [vite]
build/sprout-os-admin.css         src/create-src/  SCSS, compiled by vite          [vite]

Build tools:
  - Manage dashboard: @wordpress/scripts (webpack)
    config: webpack.config.js , package.json
    ( https://www.npmjs.com/package/@wordpress/scripts )
  - Create Mode app:  Vite
    config: create-mode/vite.config.js
    ( https://vitejs.dev/ )

Build steps (clone the repository, then from its root run):

    npm install
    npm run build          # Manage dashboard  -> build/index.*
    npm run build:create   # Create Mode app   -> build/sprout-os-admin.*
    npm run build:all      # (both of the above)

This produces the exact build/index.* and build/sprout-os-admin.* files shipped
here.

Additional CSS ships as plain, un-minified source (no build step) and is
enqueued directly: sprout-ui/admin-design-system.css and
sprout-core/assets/css/*.css.


== 3. Third-party libraries bundled in the compiled JavaScript ==

The original, un-minified source for every bundled library is available at the
links below (all MIT licensed).

--- build/index.js (Manage dashboard) ---

react, react-dom, and react/jsx-runtime are NOT bundled here — they are provided
by WordPress core and loaded as registered script dependencies (see
build/index.asset.php). Bundled libraries:

1. react-router-dom 6.30.4 — https://github.com/remix-run/react-router
   ( client-side routing between the dashboard tabs; includes react-router
     6.30.4 and @remix-run/router 1.23.3 )
2. redux 5.0.1 — https://github.com/reduxjs/redux
   ( dashboard state store )
3. react-redux 9.3.0 — https://github.com/reduxjs/react-redux
   ( React bindings for the store )
4. axios 1.17.0 — https://github.com/axios/axios
   ( HTTP client used for admin-ajax.php requests )
5. lottie-web 5.13.0 — https://github.com/airbnb/lottie-web
   ( dashboard animations; the "light" player is used )

--- build/sprout-os-admin.js (Create Mode app) ---

Only @wordpress/i18n is external (WordPress provides it as the wp.i18n global);
everything else is bundled:

1. react 18.3.1 — https://github.com/facebook/react
2. react-dom 18.3.1 — https://github.com/facebook/react
3. react-router-dom 6.30.4 — https://github.com/remix-run/react-router
   ( includes react-router 6.30.4 and @remix-run/router 1.23.3 )
4. lottie-web 5.13.0 — https://github.com/airbnb/lottie-web
   ( animations; the "light" player is used )

== 5. PHP and other JavaScript ==

All PHP (plugin root, sprout-core/, sprout-ui/, create-mode/) is plain,
un-obfuscated source and requires no build step.

The JavaScript at sprout-core/assets/js/sproutos-admin.js is hand-written,
un-minified source and is used directly — it is not generated by any build
tool.


== Contact ==

If you need access to any source file you cannot find inside the plugin or the
repository above, contact us and we will be happy to assist.