src/properties/class-papi-property-link.php
public function html() {
		$value  = $this->get_value();
		$value  = is_array( $value ) || is_object( $value ) ? $value : [];
		$value  = (object) $value;
		$exists = ! empty( $value->url );
		?>
		<div class="papi-property-link" data-replace-slug="true" data-slug="<?php echo esc_attr( $this->html_name() ); ?>">
			<input type="hidden" name="<?php echo esc_attr( $this->html_name() ); ?>" value="<?php echo $exists ? 1 : ''; ?>">

			<?php if ( $exists ): ?>
				<table class="papi-table link-table">
					<tbody>
						<tr>
							<td><?php esc_html_e( 'URL', 'papi' ); ?></td>
							<td>
								<a href="<?php echo esc_attr( $value->url ); ?>" target="_blank"><?php echo esc_attr( $value->url ); ?></a>
								<input type="hidden" value="<?php echo esc_attr( $value->title . ' - ' . $value->url ); ?>" data-papi-rule="<?php echo esc_attr( $this->html_name() ); ?>">
								<input class="wp-link-url" type="hidden" value="<?php echo esc_attr( $value->url ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[url]">
							</td>
						</tr>
						<tr>
							<td><?php esc_html_e( 'Title', 'papi' ); ?></td>
							<td>
								<?php echo esc_html( $value->title ); ?>
								<input class="wp-link-text" type="hidden" value="<?php echo esc_attr( $value->title ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[title]">
							</td>
						</tr>
						<tr>
							<td><?php esc_html_e( 'Target', 'papi' ); ?></td>
							<td>
								<?php echo $value->target === '_blank' ? esc_html_e( 'New window', 'papi' ) : esc_html_e( 'Same window', 'papi' ); ?>
								<input class="wp-link-target" type="hidden" value="<?php echo esc_attr( $value->target ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[target]">
							</td>
						</tr>
					</tbody>
				</table>
			<?php endif; ?>

			<p class="papi-file-select">
				<span class="<?php echo empty( $value->url ) ? '' : 'papi-hide'; ?>">
					<?php esc_html_e( 'No link selected', 'papi' ); ?>
					<button class="button" data-link-action="add"><?php esc_html_e( 'Add link', 'papi' ); ?></button>
				</span>
				<span class="<?php echo empty( $value->url ) ? 'papi-hide' : ''; ?>">
					<button class="button" data-link-action="edit"><?php esc_html_e( 'Edit link', 'papi' ); ?></button>
					<button class="button" data-link-action="remove"><?php esc_html_e( 'Remove link', 'papi' ); ?></button>
				</span>
			</p>
		</div>
		<?php
	}
public function html() {
		$value  = $this->get_value();
		$value  = is_array( $value ) || is_object( $value ) ? $value : [];
		$value  = (object) $value;
		$exists = ! empty( $value->url );
		?>
		<div class="papi-property-link" data-replace-slug="true" data-slug="<?php echo esc_attr( $this->html_name() ); ?>">
			<input type="hidden" name="<?php echo esc_attr( $this->html_name() ); ?>" value="<?php echo $exists ? 1 : ''; ?>">

			<?php if ( $exists ): ?>
				<table class="papi-table link-table">
					<tbody>
						<tr>
							<td><?php esc_html_e( 'URL', 'papi' ); ?></td>
							<td>
								<a href="<?php echo esc_attr( $value->url ); ?>" target="_blank"><?php echo esc_attr( $value->url ); ?></a>
								<input type="hidden" value="<?php echo esc_attr( $value->title . ' - ' . $value->url ); ?>" data-papi-rule="<?php echo esc_attr( $this->html_name() ); ?>">
								<input class="wp-link-url" type="hidden" value="<?php echo esc_attr( $value->url ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[url]">
							</td>
						</tr>
						<tr>
							<td><?php esc_html_e( 'Title', 'papi' ); ?></td>
							<td>
								<?php echo esc_html( $value->title ); ?>
								<input class="wp-link-text" type="hidden" value="<?php echo esc_attr( $value->title ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[title]">
							</td>
						</tr>
						<tr>
							<td><?php esc_html_e( 'Target', 'papi' ); ?></td>
							<td>
								<?php echo $value->target === '_blank' ? esc_html_e( 'New window', 'papi' ) : esc_html_e( 'Same window', 'papi' ); ?>
								<input class="wp-link-target" type="hidden" value="<?php echo esc_attr( $value->target ); ?>" name="<?php echo esc_attr( $this->html_name() ); ?>[target]">
							</td>
						</tr>
					</tbody>
				</table>
			<?php endif; ?>

			<p class="papi-file-select">
				<span class="<?php echo empty( $value->url ) ? '' : 'papi-hide'; ?>">
					<?php esc_html_e( 'No link selected', 'papi' ); ?>
					<button class="button" data-link-action="add"><?php esc_html_e( 'Add link', 'papi' ); ?></button>
				</span>
				<span class="<?php echo empty( $value->url ) ? 'papi-hide' : ''; ?>">
					<button class="button" data-link-action="edit"><?php esc_html_e( 'Edit link', 'papi' ); ?></button>
					<button class="button" data-link-action="remove"><?php esc_html_e( 'Remove link', 'papi' ); ?></button>
				</span>
			</p>
		</div>
		<?php
	}
Render property html.