# AGENTS.md - Dependency Extraction Webpack Plugin

Package-specific guidance for `@gravityforms/dependency-extraction-webpack-plugin`. See root `AGENTS.md` for shared conventions.

## Purpose

Extends `@wordpress/dependency-extraction-webpack-plugin` to automatically handle `@gravityforms/*` packages as WordPress externals. Ensures monorepo packages are not bundled into every script — instead they reference the shared globals enqueued by the plugin.

## Key Files

- `src/index.js` — Main plugin logic; maps `@gravityforms/*` imports to `gform.*` global variables

## How It Works

When webpack encounters an import like:

```javascript
import Button from '@gravityforms/components/react/admin/elements/Button';
```

This plugin maps it to the WordPress external `gform.components.admin.react.elements.Button`, preventing duplicate bundling.

## Component Mapping

Component-level mappings are driven by `package-config.js` files inside each component directory in `packages/npm/storybooks/`. These define:

- `defaultExport` — The component's default export name
- `importPath` — The import subpath (e.g., `react/admin/elements/`)
- `externalPath` — The WordPress global path (e.g., `components.admin.react.elements`)

## Dependencies

- `@wordpress/dependency-extraction-webpack-plugin`
