# Source code and development

The editable source of Prajesh FAQ Organizer is included in this plugin and is licensed under GPLv2 or later. The runtime files themselves are the source, not generated outputs. They are distributed publicly with each WordPress.org release.

## Runtime source

- `prajesh-faq-organizer.php`: WordPress hooks, FAQ records, selections, search, usage reporting and rendering.
- `assets/admin.js`: dashboard and page selector, written directly as plain JavaScript calls to `wp.element.createElement`. There is no JSX compilation or hidden source counterpart.
- `assets/view.js`: native ES module importing `store` and `getContext` from `@wordpress/interactivity`. WordPress resolves this dependency through its script-module API.
- `assets/admin.css` and `assets/frontend.css`: ordinary editable CSS stylesheets.

## Build requirements

There is no required build pipeline. No npm installation, webpack configuration, transpilation, bundling, minification or source-map generation is needed. Editing a runtime source file directly changes the plugin's implementation. PHP is executed directly by WordPress.

An optional code formatter can change whitespace for readability; it is not needed to produce or regenerate executable files. The release source uses descriptive names and expanded formatting.

WordPress supplies `wp-element`, `wp-components`, `wp-i18n`, `wp-data` and the `@wordpress/interactivity` module. No third-party implementation of these packages is bundled or fetched from an external CDN.

## Translation template

`languages/prajesh-faq-organizer.pot` lists translatable strings as a development reference. WordPress.org manages locale-specific language packs through translate.wordpress.org. JavaScript translations are registered using `wp_set_script_translations()`; PHP translations are loaded automatically by WordPress.

To refresh the reference POT with WP-CLI: `wp i18n make-pot . languages/prajesh-faq-organizer.pot`. This extracts strings only; it does not build runtime JavaScript or CSS.
