# elementor/4.3.0-beta3/modules/atomic-widgets/plain-resolvers/plain-resolver-base.php

Elementor Website Builder – more than just a page builder, version 4.3.0-beta3. 25 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/atomic-widgets/plain-resolvers/plain-resolver-base.php
- Raw: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/raw/modules/atomic-widgets/plain-resolvers/plain-resolver-base.php
- Modified: 2026-09-01T11:47:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/atomic-widgets/plain-resolvers/plain-resolver-base.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\AtomicWidgets\PlainResolvers;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Converts a plain LLM-supplied value into a form the walker can attach to a `Prop_Type` tree.
 *
 * Implementations MAY return either:
 * - A **raw value** (scalar or shape-only array) — leaves like `String`, `Number`, `Html_V3`
 *   do this. `Plain_Values_Resolver::normalize_resolver_output` will wrap the result with
 *   `Prop_Type::generate()` to produce the `{ $$type, value }` envelope.
 * - A **fully-formed envelope** (`[ '$$type' => ..., 'value' => ... ]`) — composite resolvers like
 *   `Dynamic` do this when the resolver alone knows the exact key/shape and short-circuits the walker.
 *
 * Return `null` to signal that the input can't be resolved for this prop type; the walker will
 * treat it as a skip (or drop the field from the parent object/array).
 */
abstract class Plain_Resolver_Base {
	abstract public function resolve( $plain_value );
}

```
